commit 76968fb
Devine Lu Linvega
·
2026-07-10 18:26:46 +0000 UTC
parent b5f738a
Fixed crash with screen device
5 files changed,
+239,
-220
+11,
-1
1@@ -35,6 +35,16 @@
2 [ LIT2 80 -System/halt ] DEO
3 [ LIT2 01 -System/halt ] DEO
4 [ LIT2 00 -System/halt ] DEO
5+ ( | Distant pixels )
6+ #8000 .Screen/x DEO2
7+ #8000 .Screen/y DEO2
8+ [ LIT2 00 -Screen/pixel ] DEO
9+ [ LIT2 40 -Screen/pixel ] DEO
10+ [ LIT2 80 -Screen/pixel ] DEO
11+ [ LIT2 c0 -Screen/pixel ] DEO
12+ [ LIT2 d0 -Screen/pixel ] DEO
13+ [ LIT2 e0 -Screen/pixel ] DEO
14+ [ LIT2 f0 -Screen/pixel ] DEO
15 ( | Find center )
16 .Screen/width DEI2 #01 SFT2 .center/x STZ2
17 .Screen/height DEI2 #01 SFT2 .center/y STZ2
18@@ -48,7 +58,7 @@
19 @meta 00 "Perifs 0a
20 ( details ) "A 20 "Peripherals 20 "Test 0a
21 ( author ) "By 20 "Hundred 20 "Rabbits 0a
22- ( date ) "24 20 "Jun 20 "2026 00
23+ ( date ) "10 20 "Jul 20 "2026 00
24 ( . ) 02
25 ( - ) 56 =Varvara/version
26 ( - ) 83 =appicon
+187,
-187
1@@ -1,190 +1,190 @@
2-a001 1b80 0637 a001 7780 1037 8017 2000
3-06a0 015c 600a e860 009c 0000 4472 6966
4+a001 1b80 0637 a001 7880 1037 8017 2000
5+06a0 015d 600a f460 00a2 0000 4472 6966
6 626c 696d 0a55 786e 7461 6c28 3534 4b29
7 2041 7373 656d 626c 6572 0a42 7920 4465
8 7669 6e65 204c 7520 4c69 6e76 6567 610a
9-3620 4a75 6c20 3230 3236 0a0a 5573 6167
10-653a 2069 6e2e 7461 6c20 6f75 742e 726f
11-6d0a 0001 5600 5080 1216 6000 0e80 0480
12-1716 0920 0004 a080 0f17 0006 8021 0b20
13-0004 a001 f92c a000 0008 0680 fa13 2000
14-0ca0 01f9 80ec 3360 00c8 4000 3aa0 0219
15-80e0 3340 005a a001 dd80 b837 a000 0180
16-ba37 a001 d680 bc37 80b3 1620 0001 6ca0
17-0000 8010 3780 0060 ffb1 40ff e52e 6472
18-6966 626c 696d 00a0 0010 13a0 0000 116c
19-60ff f4a0 01f9 4009 0aa0 0000 0680 3f09
20-2000 0722 a000 0040 01a4 8180 ed13 316c
21-a040 0713 a000 4011 6ca0 0040 0680 7f09
22-2000 0722 a000 4040 0184 8180 ed13 316c
23-a002 1940 08cd a00c d4a0 076a 35a0 0000
24-a007 6235 6ca0 0dd4 a004 cc35 a000 00a0
25-0dd4 356c a01d d4a0 09af 35a0 0000 a01d
26-d435 6ca0 4dd4 a008 6635 a000 00a0 4dd4
27-356c 6000 3e60 ffdc 60ff e860 ffb8 60ff
28-c460 01a0 6001 50a0 0000 6000 e4a0 0ade
29-34a0 0100 2920 0006 a000 0060 0110 6009
30-8920 000a 6001 3660 0980 2000 016c a001
31-0f17 6ca0 02c6 8002 37a0 0100 a00a de35
32-a001 0040 0839 00ff 0000 0100 0000 800f
33-3380 0e13 a002 db80 0237 6c00 0001 0001
34-0000 0001 0001 0001 0000 0000 02ee 00a0
35-0c2d 6009 02a0 0040 6009 04a0 0c37 6008
36-fea0 0ade 3426 a000 ff39 6008 f8a0 0c3c
37-6008 eca0 0040 80a8 37a0 0001 80aa 37a0
38-00ff 2126 80c1 33a0 02e3 8002 37a0 02ee
39-80ae 37a9 20ff eb22 22a0 03d2 60fe f1a0
40-0040 80a8 37a0 0866 34a0 4dd4 a000 0280
41-aa37 2680 ae37 a000 0338 9480 0004 af80
42-aa37 2126 80ae 376f 38aa 20ff df22 226c
43-2126 a000 0028 2000 0426 60fe 7380 a837
44-a000 0126 80aa 37a0 0532 3560 0187 6008
45-9920 0019 a003 a680 ac37 80a3 1620 0005
46-800a 4001 7980 0060 0174 40ff e16c 6008
47-74a0 03cc 6008 48a0 0ca7 6008 42a0 0c4e
48-6008 3c60 0839 800a 8019 176c 5061 7468
49-2000 2e73 796d 00a0 0cd0 4001 9080 4132
50-a004 5a29 2000 09a0 0ccb a00c 8e60 07d5
51-802e 32a0 0499 2920 0009 a00c cba0 0c7c
52-6007 c260 0824 2000 0c60 05f1 6008 1b20
53-0003 4004 e46c 8008 336c 9020 0002 226c
54-a004 2a2c a004 2a40 ffec 6007 3120 066a
55-6002 4f20 064f 9060 0166 a11d 2000 0d22
56-6000 a2a1 1d20 00c0 2240 01d3 2134 2c22
57-a001 0913 a004 5a40 ffbc 3426 c000 a028
58-0028 0f58 a029 0028 0f59 cfc0 ef53 2000
59-0340 ffb0 6c60 0340 6000 4a80 0060 004b
60-a004 8640 ff90 34a0 7b00 2920 000a a001
61-0a13 a004 9940 ff7e 6cb4 26c0 0080 7b08
62-0480 7b08 1d0f 58a0 7d00 280f 59cf c0eb
63-5320 0009 2280 0060 0011 40ff 6760 0005
64-8020 4000 06a0 04cb 4006 38a0 0dd4 a126
65-a01d d42b 2000 09a0 0c9e a00c 7560 06e5
66-80e9 3315 6c60 030d af80 e032 a00d d426
67-ef60 0682 2000 0e60 0676 6006 73aa 20ff
68-ee22 a0ff ff23 626c 2360 0009 6006 61a0
69-051e 4005 eea0 c024 13a0 00c0 116c 0680
70-200a 2000 16a0 00c0 60fe ef80 0a09 20ff
71-e4a0 0001 2180 fa33 40ff daa0 00c0 8106
72-80ff 0b20 0009 a00c 9ea0 0c82 6006 7680
73-eb13 316c a000 8081 0680 bf0b 2000 09a0
74-0c9e a00c 6e60 065d 80eb 1331 6c26 a080
75-e413 9480 2f08 2000 0994 60ff d721 9420
76-fff0 2280 d012 8005 1340 027f 21a0 00c5
77-1380 2f60 ffbe a000 8024 a005 5440 0563
78-0fa0 0642 94cf 0820 000c a000 0338 9420
79-fff2 22a0 ffff 426c 226c 2240 01d0 40fe
80-8e60 006c 40fe ae60 0066 6003 0b40 052f
81-6000 5d60 0302 4005 2260 0054 40ff 8e60
82-ffaa 4002 2680 8060 04eb 6000 4360 03e6
83-4004 e280 8060 04dd 6000 3560 03ca 4004
84-d480 a060 04cf 6000 2760 03c4 4004 c260
85-001e 8020 4004 b460 0016 8040 4004 ac80
86-6040 04a7 6000 0940 0461 6000 0340 044f
87-2194 8020 0a20 0009 a00c a7a0 0c82 4005
88-846c 7c05 c724 05d0 4005 d926 05df 2c05
89-e55f 05ea 2e05 f32d 05f8 3b06 013d 0606
90-2106 173f 060f 2306 2422 062a 7d05 ba7e
91-0370 2805 be29 05b8 5b05 b85d 05b8 2505
92-c100 2660 000e 8000 090f 26a0 075c 6004
93-e54f 1d6c e01f 00a0 06fc a4a0 0003 2460
94-04dd 2000 0f41 a000 0338 9420 ffec 2222
95-6280 006c 225c b4a0 4c49 2880 701f 0f5d
96-a000 0338 9480 210b 2000 2e94 8032 0920
97-0005 c020 4000 1d94 8072 0920 0005 c040
98-4000 1194 806b 0920 0005 c080 4000 0522
99-4280 006c 5d21 40ff cb22 4f6c 4c49 5449
100-4e43 504f 504e 4950 5357 5052 4f54 4455
101-504f 5652 4551 554e 4551 4754 484c 5448
102-4a4d 504a 434e 4a53 5253 5448 4c44 5a53
103-545a 4c44 5253 5452 4c44 4153 5441 4445
104-4944 454f 4144 4453 5542 4d55 4c44 4956
105-414e 444f 5241 454f 5253 4654 4252 4b00
106-22a0 0000 a180 fa33 26a0 0cd4 a121 80f9
107-3335 6000 0e05 6000 0a80 3733 8036 33a0
108-07b1 6c06 8004 1f60 0389 0440 0385 80d9
109-3226 a00c d429 2000 09a0 0ca7 a00c 6e60
110-0423 a000 0239 b460 ffc8 6000 5e80 ba33
111-6cce bb2e 2e2e 2e00 6003 a320 0025 9480
112-7b08 2000 1e94 60fd d721 1d20 0015 60fd
113-1421 1d20 0016 6000 a621 1d20 000e 60fe
114-a10c 6ca0 0ca7 a00c 8240 03d9 a00c afa0
115-0c82 4003 d094 807b 0820 ff64 9480 2f08
116-20fd 8994 8026 0820 fd82 6c60 0071 a11d
117-2000 1022 a008 6634 6002 5080 0260 02d7
118-4000 1d23 2660 0243 6001 3320 0008 6002
119-c627 3540 0139 22a0 0caf a00c 6e40 0385
120-0460 0021 6000 1e60 001b e008 66f4 8000
121-6000 1260 ff62 a008 6560 02a7 6474 6779
122-6455 4280 00a0 4dd4 a126 a095 d42b 2000
123-09a0 0c9e a00c 6660 034b 80e9 3315 6c26
124-801c 3360 02cf 010f 80db 32a0 4dd4 a820
125-0023 26a0 0003 3894 cf09 2000 0aa1 a000
126-0060 02d2 2000 1522 a000 0338 9480 0004
127-0138 40ff d922 22a0 ffff 426c 2223 426c
128-60ff bca1 1d20 000e 22a0 0866 3424 8001
129-a0ff ff40 ff6a 236c 6002 8320 0262 60ff
130-1460 ff9b 6000 6f20 0009 a00c a7a0 0c6e
131-6002 d260 006f 3423 6ca0 0866 34a0 4dd4
132-a121 1480 011c 2000 27b4 a001 0028 2000
133-1f26 a000 0438 9480 4119 801a 0b20 000f
134-a00c 4560 02d9 2660 02d5 800a 60fa 9922
135-a000 0338 9480 0004 0138 aa20 ffc2 2222
136-40f9 ac26 a000 8038 0220 0001 6ca0 0cb9
137-a00c 6e40 026f a11d 2000 0380 006c a121
138-1480 021c 6ca1 21af 1480 011d 6f15 6c21
139-21af 1480 021d 6f15 6c80 1733 60fe 7660
140-ff3e 60ff d920 001d 2660 016b 6000 1b60
141-0018 a000 0060 0012 a000 0060 000c a005
142-3234 6000 0560 ffbd 346c 0460 0000 a01d
143-d4a1 26a0 4dd4 2b20 0009 a00c 9ea0 0c51
144-6002 0280 e933 156c a00a 3260 ffab 036c
145-a00a 3a40 ffa3 a00a 4160 ff9d a11d 2000
146-0422 8000 6c60 010f 6000 0e60 ff55 036c
147-a00a 5060 ff83 6000 fe21 2139 6c80 af32
148-a01d d4a8 2000 1326 a00b a635 a6a0 0004
149-3834 2ea0 000a 3840 ffe9 2222 6cb4 6000
150-dea1 2134 60ff 2f20 0006 a00c a740 0166
151-346c 60ff e823 0340 009b 60ff e023 4000
152-9060 ffd9 2434 60ff b060 000f 0340 0085
153-60ff ca24 3460 ffa1 4000 7626 a000 8038
154-0220 0001 6ca0 0cb9 4001 2b26 a000 0338
155-34a0 cebb 2920 0002 226c a009 9935 6ca0
156-0ad5 4000 7e60 fc0c 4000 4a60 00c7 8002
157-0980 501f 8080 1d60 003b 6000 c180 0008
158-2000 1e60 00af 0680 0209 2000 0802 6000
159-8f03 4000 2080 0409 2000 0660 0082 4000
160-1022 a00c a7a0 0c87 4000 fa60 0007 60ff
161-1f04 6000 00a0 0100 a180 fa33 26a0 0100
162-2b20 0004 2680 f633 0720 f7e2 2202 a00c
163-c1a0 0c96 4000 ce80 dc32 6c60 fff9 3880
164-d433 6c2f 9406 2000 0402 2262 6cef 2e21
165-40ff f180 0f1c 800a 8b20 0005 1980 6118
166-6c02 8030 186c 9480 3019 0680 090a 0c6c
167-8027 1906 800a 1980 050a 0c6c 0280 ff6c
168-e000 00c0 407f 60ff ddc0 000f 7821 9420
169-fff1 226f 6ca6 6000 1724 2139 036c 2660
170-ffc4 0120 0005 1480 0008 6c21 40ff f021
171-9420 fffb 216c 2f26 60ff f524 4000 092f
172-2738 2440 0002 2161 a820 0007 94d4 4f08
173-20ff f362 286c a00c 5c60 005b 6000 60a0
174-0c4e 6000 5aa0 0000 a121 34a0 0004 3860
175-004d 26a0 0008 3834 24a0 0006 3834 a000
176-0438 4000 1960 002f 6000 34a0 0c4e 6000
177-2ea0 00c0 6000 28a0 0532 34a0 0080 a00c
178-3760 001b 6000 1880 3a60 f7dc 6000 1660
179-0033 800a 40f7 d160 0005 8020 40f7 c9a0
180-03c8 40fe fee0 ff00 a000 0abb af3a 396f
181-419d 20ff f322 0380 3018 60f7 ab47 58cf
182-20ff f362 6ca0 0102 136c 8000 6c41 7373
183-656d 626c 6564 0020 696e 2000 2062 7974
184-6573 2e0a 002d 2d20 556e 7573 6564 3a20
185-0052 6566 6572 656e 6365 7300 5265 6665
186-7265 6e63 6500 5379 6d62 6f6c 7300 5379
187-6d62 6f6c 004d 6163 726f 7300 4d61 6372
188-6f00 4e61 6d65 004e 756d 6265 7200 436f
189-6d6d 656e 7400 5772 6974 696e 6700 6578
190-6365 6564 6564 0069 6e76 616c 6964 0064
191-7570 6c69 6361 7465 0074 6f6f 2066 6172
192-007a 6572 6f2d 7061 6765 006f 7065 6e00
193-546f 7000
194+3130 204a 756c 2032 3032 360a 0a55 7361
195+6765 3a20 696e 2e74 616c 206f 7574 2e72
196+6f6d 0a00 0156 0050 8012 1660 0013 a004
197+1716 0920 000a 600a ad20 0004 a080 0f17
198+0006 8021 0b20 0004 a001 ff2c a000 0008
199+0680 fa13 2000 0ca0 01ff 80ec 3360 00c8
200+4000 3aa0 021f 80e0 3340 005a a001 e380
201+b837 a000 0180 ba37 a001 dc80 bc37 80b3
202+1620 0001 6ca0 0000 8010 3780 0060 ffb1
203+40ff e52e 6472 6966 626c 696d 00a0 0010
204+13a0 0000 116c 60ff f4a0 01ff 4009 10a0
205+0000 0680 3f09 2000 0722 a000 0040 01aa
206+8180 ed13 316c a040 0713 a000 4011 6ca0
207+0040 0680 7f09 2000 0722 a000 4040 018a
208+8180 ed13 316c a002 1f40 08d3 a00c e0a0
209+0776 35a0 0000 a007 6e35 6ca0 0de0 a004
210+d835 a000 00a0 0de0 356c a01d e0a0 09bb
211+35a0 0000 a01d e035 6ca0 4de0 a008 7235
212+a000 00a0 4de0 356c 6000 4460 ffdc 60ff
213+e860 ffb8 60ff c460 01a6 6001 56a0 0000
214+6000 ea60 09a0 2000 21a0 0aea 34a0 0100
215+2920 0006 a000 0060 0110 6009 8920 000a
216+6001 3660 0980 2000 016c a001 0f17 6ca0
217+02d2 8002 37a0 0100 a00a ea35 a001 0040
218+0839 00ff 0000 0100 0000 800f 3380 0e13
219+a002 e780 0237 6c00 0001 0001 0000 0001
220+0001 0001 0000 0000 02fa 00a0 0c39 6009
221+02a0 0040 6009 04a0 0c43 6008 fea0 0aea
222+3426 a000 ff39 6008 f8a0 0c48 6008 eca0
223+0040 80a8 37a0 0001 80aa 37a0 00ff 2126
224+80c1 33a0 02ef 8002 37a0 02fa 80ae 37a9
225+20ff eb22 22a0 03de 60fe eba0 0040 80a8
226+37a0 0872 34a0 4de0 a000 0280 aa37 2680
227+ae37 a000 0338 9480 0004 af80 aa37 2126
228+80ae 376f 38aa 20ff df22 226c 2126 a000
229+0028 2000 0426 60fe 6d80 a837 a000 0126
230+80aa 37a0 053e 3560 0187 6008 9920 0019
231+a003 b280 ac37 80a3 1620 0005 800a 4001
232+7980 0060 0174 40ff e16c 6008 74a0 03d8
233+6008 48a0 0cb3 6008 42a0 0c5a 6008 3c60
234+0839 800a 8019 176c 5061 7468 2000 2e73
235+796d 00a0 0cdc 4001 9080 4132 a004 6629
236+2000 09a0 0cd7 a00c 9a60 07d5 802e 32a0
237+04a5 2920 0009 a00c d7a0 0c88 6007 c260
238+0824 2000 0c60 05f1 6008 1b20 0003 4004
239+e46c 8008 336c 9020 0002 226c a004 362c
240+a004 3640 ffec 6007 3120 066a 6002 4f20
241+064f 9060 0166 a11d 2000 0d22 6000 a2a1
242+1d20 00c0 2240 01d3 2134 2c22 a001 0913
243+a004 6640 ffbc 3426 c000 a028 0028 0f58
244+a029 0028 0f59 cfc0 ef53 2000 0340 ffb0
245+6c60 0340 6000 4a80 0060 004b a004 9240
246+ff90 34a0 7b00 2920 000a a001 0a13 a004
247+a540 ff7e 6cb4 26c0 0080 7b08 0480 7b08
248+1d0f 58a0 7d00 280f 59cf c0eb 5320 0009
249+2280 0060 0011 40ff 6760 0005 8020 4000
250+06a0 04d7 4006 38a0 0de0 a126 a01d e02b
251+2000 09a0 0caa a00c 8160 06e5 80e9 3315
252+6c60 030d af80 e032 a00d e026 ef60 0682
253+2000 0e60 0676 6006 73aa 20ff ee22 a0ff
254+ff23 626c 2360 0009 6006 61a0 052a 4005
255+eea0 c024 13a0 00c0 116c 0680 200a 2000
256+16a0 00c0 60fe ef80 0a09 20ff e4a0 0001
257+2180 fa33 40ff daa0 00c0 8106 80ff 0b20
258+0009 a00c aaa0 0c8e 6006 7680 eb13 316c
259+a000 8081 0680 bf0b 2000 09a0 0caa a00c
260+7a60 065d 80eb 1331 6c26 a080 e413 9480
261+2f08 2000 0994 60ff d721 9420 fff0 2280
262+d012 8005 1340 027f 21a0 00c5 1380 2f60
263+ffbe a000 8024 a005 6040 0563 0fa0 064e
264+94cf 0820 000c a000 0338 9420 fff2 22a0
265+ffff 426c 226c 2240 01d0 40fe 8e60 006c
266+40fe ae60 0066 6003 0b40 052f 6000 5d60
267+0302 4005 2260 0054 40ff 8e60 ffaa 4002
268+2680 8060 04eb 6000 4360 03e6 4004 e280
269+8060 04dd 6000 3560 03ca 4004 d480 a060
270+04cf 6000 2760 03c4 4004 c260 001e 8020
271+4004 b460 0016 8040 4004 ac80 6040 04a7
272+6000 0940 0461 6000 0340 044f 2194 8020
273+0a20 0009 a00c b3a0 0c8e 4005 846c 7c05
274+d324 05dc 4005 e526 05eb 2c05 f15f 05f6
275+2e05 ff2d 0604 3b06 0d3d 0612 2106 233f
276+061b 2306 3022 0636 7d05 c67e 037c 2805
277+ca29 05c4 5b05 c45d 05c4 2505 cd00 2660
278+000e 8000 090f 26a0 0768 6004 e54f 1d6c
279+e01f 00a0 0708 a4a0 0003 2460 04dd 2000
280+0f41 a000 0338 9420 ffec 2222 6280 006c
281+225c b4a0 4c49 2880 701f 0f5d a000 0338
282+9480 210b 2000 2e94 8032 0920 0005 c020
283+4000 1d94 8072 0920 0005 c040 4000 1194
284+806b 0920 0005 c080 4000 0522 4280 006c
285+5d21 40ff cb22 4f6c 4c49 5449 4e43 504f
286+504e 4950 5357 5052 4f54 4455 504f 5652
287+4551 554e 4551 4754 484c 5448 4a4d 504a
288+434e 4a53 5253 5448 4c44 5a53 545a 4c44
289+5253 5452 4c44 4153 5441 4445 4944 454f
290+4144 4453 5542 4d55 4c44 4956 414e 444f
291+5241 454f 5253 4654 4252 4b00 22a0 0000
292+a180 fa33 26a0 0ce0 a121 80f9 3335 6000
293+0e05 6000 0a80 3733 8036 33a0 07bd 6c06
294+8004 1f60 0389 0440 0385 80d9 3226 a00c
295+e029 2000 09a0 0cb3 a00c 7a60 0423 a000
296+0239 b460 ffc8 6000 5e80 ba33 6cce bb2e
297+2e2e 2e00 6003 a320 0025 9480 7b08 2000
298+1e94 60fd d721 1d20 0015 60fd 1421 1d20
299+0016 6000 a621 1d20 000e 60fe a10c 6ca0
300+0cb3 a00c 8e40 03d9 a00c bba0 0c8e 4003
301+d094 807b 0820 ff64 9480 2f08 20fd 8994
302+8026 0820 fd82 6c60 0071 a11d 2000 1022
303+a008 7234 6002 5080 0260 02d7 4000 1d23
304+2660 0243 6001 3320 0008 6002 c627 3540
305+0139 22a0 0cbb a00c 7a40 0385 0460 0021
306+6000 1e60 001b e008 72f4 8000 6000 1260
307+ff62 a008 7160 02a7 6474 6779 6455 4280
308+00a0 4de0 a126 a095 e02b 2000 09a0 0caa
309+a00c 7260 034b 80e9 3315 6c26 801c 3360
310+02cf 010f 80db 32a0 4de0 a820 0023 26a0
311+0003 3894 cf09 2000 0aa1 a000 0060 02d2
312+2000 1522 a000 0338 9480 0004 0138 40ff
313+d922 22a0 ffff 426c 2223 426c 60ff bca1
314+1d20 000e 22a0 0872 3424 8001 a0ff ff40
315+ff6a 236c 6002 8320 0262 60ff 1460 ff9b
316+6000 6f20 0009 a00c b3a0 0c7a 6002 d260
317+006f 3423 6ca0 0872 34a0 4de0 a121 1480
318+011c 2000 27b4 a001 0028 2000 1f26 a000
319+0438 9480 4119 801a 0b20 000f a00c 5160
320+02d9 2660 02d5 800a 60fa 9922 a000 0338
321+9480 0004 0138 aa20 ffc2 2222 40f9 ac26
322+a000 8038 0220 0001 6ca0 0cc5 a00c 7a40
323+026f a11d 2000 0380 006c a121 1480 021c
324+6ca1 21af 1480 011d 6f15 6c21 21af 1480
325+021d 6f15 6c80 1733 60fe 7660 ff3e 60ff
326+d920 001d 2660 016b 6000 1b60 0018 a000
327+0060 0012 a000 0060 000c a005 3e34 6000
328+0560 ffbd 346c 0460 0000 a01d e0a1 26a0
329+4de0 2b20 0009 a00c aaa0 0c5d 6002 0280
330+e933 156c a00a 3e60 ffab 036c a00a 4640
331+ffa3 a00a 4d60 ff9d a11d 2000 0422 8000
332+6c60 010f 6000 0e60 ff55 036c a00a 5c60
333+ff83 6000 fe21 2139 6c80 af32 a01d e0a8
334+2000 1326 a00b b235 a6a0 0004 3834 2ea0
335+000a 3840 ffe9 2222 6cb4 6000 dea1 2134
336+60ff 2f20 0006 a00c b340 0166 346c 60ff
337+e823 0340 009b 60ff e023 4000 9060 ffd9
338+2434 60ff b060 000f 0340 0085 60ff ca24
339+3460 ffa1 4000 7626 a000 8038 0220 0001
340+6ca0 0cc5 4001 2b26 a000 0338 34a0 cebb
341+2920 0002 226c a009 a535 6ca0 0ae1 4000
342+7e60 fc0c 4000 4a60 00c7 8002 0980 501f
343+8080 1d60 003b 6000 c180 0008 2000 1e60
344+00af 0680 0209 2000 0802 6000 8f03 4000
345+2080 0409 2000 0660 0082 4000 1022 a00c
346+b3a0 0c93 4000 fa60 0007 60ff 1f04 6000
347+00a0 0100 a180 fa33 26a0 0100 2b20 0004
348+2680 f633 0720 f7e2 2202 a00c cda0 0ca2
349+4000 ce80 dc32 6c60 fff9 3880 d433 6c2f
350+9406 2000 0402 2262 6cef 2e21 40ff f180
351+0f1c 800a 8b20 0005 1980 6118 6c02 8030
352+186c 9480 3019 0680 090a 0c6c 8027 1906
353+800a 1980 050a 0c6c 0280 ff6c e000 00c0
354+407f 60ff ddc0 000f 7821 9420 fff1 226f
355+6ca6 6000 1724 2139 036c 2660 ffc4 0120
356+0005 1480 0008 6c21 40ff f021 9420 fffb
357+216c 2f26 60ff f524 4000 092f 2738 2440
358+0002 2161 a820 0007 94d4 4f08 20ff f362
359+286c a00c 6860 005b 6000 60a0 0c5a 6000
360+5aa0 0000 a121 34a0 0004 3860 004d 26a0
361+0008 3834 24a0 0006 3834 a000 0438 4000
362+1960 002f 6000 34a0 0c5a 6000 2ea0 00c0
363+6000 28a0 053e 34a0 0080 a00c 4360 001b
364+6000 1880 3a60 f7dc 6000 1660 0033 800a
365+40f7 d160 0005 8020 40f7 c9a0 03d4 40fe
366+fee0 ff00 a000 0abb af3a 396f 419d 20ff
367+f322 0380 3018 60f7 ab47 58cf 20ff f362
368+6ca0 0102 136c 8000 6c41 7373 656d 626c
369+6564 0020 696e 2000 2062 7974 6573 2e0a
370+002d 2d20 556e 7573 6564 3a20 0052 6566
371+6572 656e 6365 7300 5265 6665 7265 6e63
372+6500 5379 6d62 6f6c 7300 5379 6d62 6f6c
373+004d 6163 726f 7300 4d61 6372 6f00 4e61
374+6d65 004e 756d 6265 7200 436f 6d6d 656e
375+7400 5772 6974 696e 6700 6578 6365 6564
376+6564 0069 6e76 616c 6964 0064 7570 6c69
377+6361 7465 0074 6f6f 2066 6172 007a 6572
378+6f2d 7061 6765 006f 7065 6e00 546f 7000
+15,
-6
1@@ -644,7 +644,8 @@
2 path/is-home ?{ ;dict/out-path bios/<push-raw> }
3 .File/success DEI2
4 ( | Handlers )
5- DUP2 /<push-folders> !/<push-files>
6+ DUP2 /<push-folders>
7+ DUP2 /<push-files> !/<push-dotfiles>
8
9 @dir/find-wallpaper ( -- size* )
10 ;dict/home-path .File/name DEO2
11@@ -653,7 +654,7 @@
12 /<explode>
13 ;&buf
14 &>w
15- DUP2 #0009 ;dict/wallpaper mem/cmp ?{
16+ str/is-wallpaper ?{
17 str/cap INC2 LDAk ?/>w
18 POP2 #ffff }
19 JMP2r
20@@ -682,6 +683,13 @@
21 LDAk LIT ". EQU ?{ dict/alloc-line bios/<push-raw> } }
22 str/eol INC2 GTH2k ?/>lfi
23 POP2 POP2 JMP2r
24+
25+@dir/<push-dotfiles> ( length* -- )
26+ ;&buf ADD2 ;&buf
27+ &>ldf
28+ #0005 ADD2 LDAk LIT ". NEQ ?{ dict/alloc-line bios/<push-raw> }
29+ str/eol INC2 GTH2k ?/>ldf
30+ POP2 POP2 JMP2r
31 &api =dict/dir =&<eval> "<dir> 20 "( 20 09 20 "[f] 20 ") 00
32
33 @dir/load-temp ( addr* -- buf* )
34@@ -931,10 +939,6 @@
35 &api =&cmd =&<eval> "<hex> 20 "( 20 "dec 20 09 20 "hex 20 ") 00
36 &cmd "hex 00
37
38-@hex/chr2 ( byte -- hn ln )
39- DUP #04 SFT /chr SWP
40- ( >> )
41-
42 @hex/chr ( hex -- char )
43 #0f AND DUP #09 GTH #27 MUL ADD LIT "0 ADD JMP2r
44
45@@ -1360,6 +1364,11 @@
46 @str/is-rom ( str* -- t )
47 /cap #0004 SUB2 ;dict/rom-ext !/cmp
48
49+@str/is-wallpaper ( str* -- str* t )
50+ DUP2 #0009 ;dict/wallpaper mem/cmp ?{ #00 JMP2r }
51+ DUP2 /is-icn ?{ #00 JMP2r }
52+ #01 JMP2r
53+
54 @str/<print> ( str* -- )
55 LDAk DUP ?{ POP POP2 JMP2r }
56 #18 DEO
M
makefile
+2,
-1
1@@ -6,7 +6,7 @@ run: bin/uxn11 bin/m_pc.rom bin/perifs.rom
2 bin/uxn11 bin/m_pc.rom bin/perifs.rom run
3 gui: bin/uxn11 bin/screen.rom
4 bin/uxn11 bin/screen.rom
5-test: bin/uxn11-debug tests
6+test: bin/uxn11-debug tests bin/m_pc.rom bin/perifs.rom
7 @ -bin/uxn11-debug
8 @ -bin/uxn11-debug -v
9 @ bin/uxn11-debug bin/opctest.rom
10@@ -14,6 +14,7 @@ test: bin/uxn11-debug tests
11 @ printf "ghi" | bin/uxn11-debug bin/console.rom "abc" "def"
12 @ bin/uxn11-debug bin/file.rom
13 @ bin/uxn11-debug bin/datetime.rom
14+ @ bin/uxn11-debug bin/m_pc.rom bin/perifs.rom run
15 clean:
16 rm -fr bin
17 format:
+24,
-25
1@@ -461,34 +461,33 @@ screen_deo_pixel(void)
2 const int hi = ctrl & 0x40;
3 const Uint8 mask = hi ? 0x3 : 0xc;
4 const Uint8 color = hi ? ((ctrl & 0x3) << 2) : (ctrl & 0x3);
5- /* fill mode */
6- if(ctrl & 0x80) {
7- int px;
8- const int x1 = (ctrl & 0x10) ? 8 : rX + 8;
9- const int x2 = (ctrl & 0x10) ? rX : screen_width;
10- const int y1 = (ctrl & 0x20) ? 8 : rY + 8;
11- const int y2 = (ctrl & 0x20) ? rY : screen_height;
12- const int hor = (x2 + 8) - x1;
13- const int ver = (y2 + 8) - y1;
14- Uint8 *row = &screen_layers[y1 * screen_wmar2 + x1];
15- Uint8 *end = row + ver * screen_wmar2;
16- for(; row < end; row += screen_wmar2) {
17- Uint8 *dst = row;
18- for(px = 0; px < hor; px++)
19- dst[px] = (dst[px] & mask) | color;
20+ const Uint16 x = rX, y = rY;
21+ if(x < screen_width && y < screen_height) {
22+ /* fill mode */
23+ if(ctrl & 0x80) {
24+ const int x1 = (ctrl & 0x10) ? 8 : x + 8;
25+ const int x2 = (ctrl & 0x10) ? x : screen_width;
26+ const int y1 = (ctrl & 0x20) ? 8 : y + 8;
27+ const int y2 = (ctrl & 0x20) ? y : screen_height;
28+ const int hor = (x2 + 8) - x1;
29+ const int ver = (y2 + 8) - y1;
30+ Uint8 *row = &screen_layers[y1 * screen_wmar2 + x1];
31+ Uint8 *end = row + ver * screen_wmar2;
32+ for(; row < end; row += screen_wmar2) {
33+ int px;
34+ Uint8 *dst = row;
35+ for(px = 0; px < hor; px++)
36+ dst[px] = (dst[px] & mask) | color;
37+ }
38 }
39- screen_reqdraw = 1;
40- }
41- /* pixel mode */
42- else {
43- const Uint16 x = rX, y = rY;
44- if(x < screen_width && y < screen_height) {
45+ /* pixel mode */
46+ else {
47 Uint8 *dst = &screen_layers[(y + 8) * screen_wmar2 + (x + 8)];
48 *dst = (*dst & mask) | color;
49- screen_reqdraw = 1;
50+ if(rMX) rX += ctrl & 0x10 ? -1 : 1;
51+ if(rMY) rY += ctrl & 0x20 ? -1 : 1;
52 }
53- if(rMX) rX += ctrl & 0x10 ? -1 : 1;
54- if(rMY) rY += ctrl & 0x20 ? -1 : 1;
55+ screen_reqdraw = 1;
56 }
57 }
58
59@@ -1343,7 +1342,7 @@ main(int argc, char **argv)
60 {
61 int i = 1;
62 if(argc == 2 && argv[1][0] == '-' && argv[1][1] == 'v')
63- return !fprintf(stdout, "%s - Varvara Emulator(79K), 24 Jun 2026.\n", argv[0]);
64+ return !fprintf(stdout, "%s - Varvara Emulator(79K), 10 Jul 2026.\n", argv[0]);
65 else if(argc == 1)
66 return !fprintf(stdout, "usage: %s [-v] file.rom [args..]\n", argv[0]);
67 else if(!system_boot(argv[i++], argc > 2))