commit 857b18a8acee049d5c9bd3348fa15c953fc20a83
parent 552d718b24c1339290bbf2e8895c4c72b25dc2a6
Author: neauoire <aliceffekt@gmail.com>
Date: Tue, 23 Feb 2021 20:32:28 -0800
Improved window tests
Diffstat:
A | examples/image.usm | | | 815 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
M | examples/window.usm | | | 856 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- |
2 files changed, 1641 insertions(+), 30 deletions(-)
diff --git a/examples/image.usm b/examples/image.usm
@@ -0,0 +1,815 @@
+( blank )
+
+:dev/r fff8 ( std read port )
+:dev/w fff9 ( std write port )
+
+;i 2
+
+|0100 @RESET
+
+ #01 =dev/r ( read screen for size )
+ #02 =dev/w ( write to sprite )
+
+ ,paint-background JSR
+
+
+BRK
+
+@paint-background ( nil )
+
+ #01 =dev/r ( read screen for size )
+ #02 =dev/w ( write to sprite )
+
+ #0000
+ @paint-background-loop-hor
+ #0000
+ @paint-background-loop
+ ( draw ) OVR2 IOW2 DUP2 IOW2 ,image ~i ADD2 IOW2 #01 IOW
+ ( incr ) #0008 ADD2 DUP2
+ ( incr ) ~i #0008 ADD2 =i
+ #00 IOR2 LTH2 ,paint-background-loop ROT JMP? POP2
+ POP2
+ ( incr ) #0008 ADD2 DUP2
+ #02 IOR2 LTH2 ,paint-background-loop-hor ROT JMP? POP2
+ POP2
+
+RTS
+
+@image [
+
+0000 0802 1001 0410
+0095 0055 0024 0154
+114a 2114 a209 5005
+2552 09a5 540a a114
+5548 2651 aa4a 25a8
+5592 4955 aa44 2aa9
+5555 554a aaaa 5555
+556d abaa b5d6 555b
+b65b 6aad b6d5 5b6c
+db6d b6d5 bb56 bbd5
+6db6 db6d b6db 6ab7
+b6db 6db6 db6a af74
+db6d b6db 6db6 dbad
+6db6 db6d b6db 6cb5
+bbd7 6e9f bf7e fcf8
+ff7c f0e0 8080 0000
+0000 0101 0101 0301
+f0e0 e0e1 c2d2 c385
+375a ef55 faaf 55fa
+77da 6fb5 da6f b5da
+77da 6fb5 da6f b5da
+77da 6eb5 db6d b6db
+bbd6 edb6 5bed b7ba
+deb5 dbb6 dd6d b7db
+dfbe 7cf8 f0e1 e4c1
+070a 1d36 5b6d b66d
+77da b7dd 6bbd ebb6
+77da b76d b66d b6db
+77da 6fb5 dab7 dd6b
+77da 6fb5 da6f b56e
+77da 6db6 db6d b6db
+76da adf6 5bad f75a
+0002 1000 0421 0004
+0190 0540 1500 5401
+500a 4114 4210 8a21
+a214 4229 9442 9520
+924a a924 9255 49a5
+9549 55a4 552a 4955
+5555 2aaa 55aa 5555
+6aad abad 6aab b556
+ab55 6e55 da6d 56ab
+6eb5 aeb5 db6d b6ab
+da6d b6db 6d56 fb4d
+dbad d67b add6 7baa
+f65b adea 5ae5 57be
+ab6f aa9f f6bf eaf9
+e35e fff6 dfa8 57ba
+fadd f7be ef10 efb5
+0383 ebbb f75f a75b
+8a8f 8916 910a 5538
+af55 f6ab 5dea 5f6a
+6fb5 da6f b5da 6db7
+6fb5 da6f b5d6 6db7
+6db7 da6d b6db 6db6
+57fa adb6 db6d b6db
+6fdf bede 7cf8 f8f0
+8203 0d0b 162d 365b
+db6d b66f dab7 da6f
+5bed b65b ed76 adf6
+6db7 dd6b bdeb b6db
+bd6b b66d b66d db6d
+b56f dab5 dfb5 6db6
+6db6 db6d b65b edb6
+adf6 5bad f65b adf6
+1000 0520 0210 0124
+9441 1401 5401 4812
+1442 1442 114a 208a
+9522 9442 1449 9224
+14aa 45a9 144a a42a
+aa55 4a2a aaaa aa55
+aa55 ab55 aaab ad55
+da55 566a ad56 6aad
+da55 b7da 55af d56a
+dd6a 5bed 566b bdd6
+b6db 6db6 db6d b6da
+ac73 af9b 7e6b bff4
+dbff 54fd d2cd 36aa
+a69b 6aad b6db aadb
+d55b ed56 db6d b556
+55ba 57ea 5d6b b6db
+b6d7 76ae de6e b65c
+0e23 3c2b 2d36 2b35
+5b2d b65b aacd 6bb5
+da6d b7da adf7 2add
+da6d b7da 6db7 aadd
+db6d b6db 6db6 db6d
+6db7 d77f afdf 7fbf
+e0e8 e181 c285 9305
+adf6 5bad d268 934e
+b5dd 6bad bfe9 965b
+5b44 ffbd 4751 ef5a
+6db6 cbfd 774d 74db
+b6db 6d36 d5fd b75f
+db6d b6db 6d56 e9bf
+5bed b65b edb6 55aa
+5bad f655 bbd6 5baa
+0012 4002 0821 0009
+802a 0148 2500 5402
+4429 4491 2492 4492
+8924 9225 914a a412
+49a5 2a52 29a5 9555
+4a55 aa55 5555 5555
+aa55 ab55 5a55 566a
+b556 5a6a abad b5aa
+adab d5ad 556b 55ad
+5bad 75ae 6bb5 5eab
+6db5 5aeb 5bea b156
+bae5 abd5 2e55 b5ae
+db6d 55b6 db55 b6db
+6d56 b5db 556e b5db
+ebbd 55aa 77a8 d450
+556d b4c0 0000 0000
+ac0e 0c0c 0c0c 0c04
+0e02 0201 0000 0000
+d6ab f555 db69 5d69
+b66b bd56 eb5d 6ab7
+b76a bdd7 6abd d76a
+b6db 6db6 da6d b6db
+ff7d 5fde 9e9e 9c0e
+0e4a 141b 223d 2b5d
+33cd 36db b5de 6bb5
+ad76 db6d b6da 6880
+b7da 6fb5 da4b 0000
+6db6 db6d b6db 6d16
+a1fe 55bb d66d b6db
+7eab aa76 dbad f65b
+fffb afd5 6abd d66b
+fdef 7ddf 6da7 d96e
+2002 0821 0410 4208
+2984 2214 4229 8452
+2492 4992 4924 924a
+aa52 4a29 a555 9552
+a9a5 5555 2955 55aa
+552a 5556 5a55 55aa
+55ad 55d5 ad55 6aad
+55b6 555a ab6d aab5
+b5aa 55aa 6bb5 aedb
+75ae dbb5 6eb6 d96f
+e5aa 55ae f5d5 adb6
+6ab5 add6 5a6b adb5
+aa6d b6ab da6d 4535
+6dab dd6a adb5 5000
+4050 b4db 6daa 2d02
+0000 0000 c0a0 b8d4
+0c0c 080c 0808 0808
+0000 0000 0000 0000
+2d29 1d15 1516 050a
+5aef 55ba 6fd5 bad7
+dd6b bdd7 6abd d66b
+6db4 5aec b5ac ec59
+3c0c 7c5c 6cac f554
+6a37 ad76 ad76 5868
+de68 a0c0 0000 0000
+0000 0000 0000 0000
+0000 0000 0000 0000
+0b00 0000 0000 0000
+6db6 5b15 0601 0000
+d5be d56f b55b 6d16
+bdd6 6bbd 6ab7 5aed
+b5df 69b6 db6d b6db
+0251 0410 4200 1401
+0954 2289 2492 4914
+2592 544a a52a 5295
+4aaa aa95 55aa 5555
+a5aa aa55 5aab 556a
+55aa b655 ab6d 55aa
+b6aa db55 6d56 b5ab
+d6ab 6d5a afd5 765b
+b55d abf6 5a6f b5d6
+b756 ee9d fd3a 75f6
+55b5 d65a aaa9 6ca4
+55aa a0c4 a000 8000
+48a0 4000 0209 2650
+0000 04b2 4abf dd03
+0200 8050 aa54 eaf5
+aada 552d 160a 0b05
+0808 0808 8888 4848
+0000 0000 0001 0102
+1f12 3b55 b65b adf6
+6db6 db6d b6db 55de
+bdd6 6bb5 de6b adb6
+b9d9 53ba b375 a5e6
+b66c b6d6 6e56 fea7
+50a0 6040 6020 a020
+0000 0000 0000 0000
+0000 0000 0000 0001
+0000 0002 0d36 db6d
+0000 2fd5 bbd5 7eab
+0000 fe55 6eb5 da6f
+0502 a1dc b7da ad77
+b6db 6d56 bbd5 6eb5
+ad76 abdd 6ab7 da6d
+4802 1005 4015 0054
+4295 4924 520a a94a
+554a 2aa9 aaaa 2aaa
+55aa aa55 abad aaaa
+55ab d55a 5556 b5d5
+6d56 6bad b5aa 6db6
+6db5 566b b5de 53dd
+6aad db6d b6ab 7dab
+bbab 76af ef5e bf7e
+f5e9 ecd4 d4ab a9a8
+5050 a020 0800 00a0
+0101 040a 132a 1656
+0040 8504 1008 1408
+0000 6804 0804 040a
+ba7e 3b3f 1f3b 3f3f
+8542 4241 a1c0 60d0
+88e8 8868 a8a0 d8a0
+0506 0b15 2e2a 5bad
+55ae 75ad d6bb 55dd
+6ab7 da6d b6aa 6db7
+db6d b5db adeb 5dab
+6b6d 4a5b 565b 556e
+5bef b75b eb5b b7db
+2020 40a0 2080 2020
+0000 0000 0000 0001
+0305 0c13 354a 9440
+565b ad6a b680 0000
+da6f b5da ab00 0000
+d57d aadf 6956 0b00
+aadd b76a bdd7 6abb
+db6d b6db 6a5d eb5d
+b65b ed55 db6d b65b
+0228 0251 0422 1442
+a412 aa24 924a a915
+aaa5 9aa5 aaaa 2a55
+b555 ab55 aaad aa55
+565a 6b55 aa6d aa56
+abd5 5b6d aab6 dbaa
+6a57 6db5 dbad 76ab
+dd6a b75b b76e df5f
+7bfd faee b4f6 d9ac
+2854 54aa aa28 8040
+0000 0001 8001 0001
+5eae 5f7b bf7d efff
+0a05 00c0 d0ff 76ff
+5440 0103 1ffd efba
+77fd bff7 7efb dfb7
+e8e0 b0f0 f0d2 eac5
+524a 452a abca ad56
+d5bb d5ae 6ab5 afd5
+6a57 baab da6d 56b5
+da55 dd6a aeb5 da6d
+dd6a b6db aab6 da6b
+35db 566b 5daa 6d57
+6eb6 de6c acec 58b8
+20a0 3050 516d b6db
+0003 057a 4cb0 d050
+4000 0002 0a17 5b5f
+0015 aaaf f8a0 e080
+0055 fadf 0700 0090
+0000 a0d0 eafc 7f1b
+5516 0b01 0000 4000
+abf5 5b4d 72ab 5509
+ed56 6bbd d556 6b5d
+114a 0154 0229 0452
+4955 2495 524a aa25
+552a aa55 aaa5 5555
+56aa b555 aa56 5a6a
+b5d6 555a abd5 add5
+6db6 abda 576a b75a
+ddb6 6abd d56b b7af
+bdff f6dd fef5 f6ab
+d569 adb2 aa65 aa4a
+b450 55a0 ad50 aeb2
+0002 0000 00a0 08a5
+dbff fdaa 0000 026d
+b7f8 8000 022d d556
+c000 0015 d65a 6aab
+0000 00bf c9b5 a040
+150a 0dd5 165a 2b2d
+95db 2aad b6ab 555a
+6a5d d66b b55a add7
+db6d aab7 5aeb 5a6d
+ab6d b65b ea5b add5
+ad75 ae6a b7da 556e
+6a5d abf6 5aad d7ba
+d971 b1a1 e243 62c5
+5576 ad56 fa4a f44a
+4081 8102 0503 0507
+be77 ffde fffa bfff
+820a 0808 140c 0505
+4804 0201 0002 056a
+1f0f 8607 8707 0587
+d0a0 d8e8 f4fa bafd
+0d05 0000 0000 8000
+aa17 3a4d 162a 0b15
+0944 2215 4015 4a21
+5492 4a2a a94a 2a49
+aa95 aa52 55aa aa55
+ab55 adb5 55aa ad56
+5a6b 55ad 56eb 5aad
+aa6d b65b ea5d abb6
+dfbf bd7f feee fdfd
+f5ad b5aa d5ac 55b4
+55aa 2a55 55aa 55aa
+55aa d556 55aa 55aa
+55aa b6aa 55aa 56b5
+55aa b6d5 55ab ad55
+6aad d556 6a55 5b6a
+adb4 50a0 956a 55ad
+0000 022a a9aa 54aa
+34ab 555d 66b5 9aeb
+ad6b ad55 b6aa b65a
+6a5b ad6a b6d5 add6
+b655 b6db aa6d aab6
+bb55 db6d aab6 aadb
+b556 6bb5 add6 ba55
+55ee 556b b5d9 a9b1
+83c5 8682 8685 8586
+60a0 b8d6 aa8b 0180
+0203 0328 d45b 6daa
+f7ff bdf7 3f8f 45f1
+01c0 e0b0 fcff b7ff
+aa00 0000 05ff fff7
+0f1e 377f fdef bffd
+f6df fffd dfff 76ff
+8040 40a0 a8d0 d0e8
+0a00 0100 0300 0000
+4a12 4904 5209 5402
+a52a 548a 524a aa12
+2aaa aaaa a5aa 55aa
+b5aa aaad 55b6 55aa
+b5d6 ab6d b5aa 5bd5
+57ef 5d5f b7bf 7e7b
+daf6 faaa eab5 d6aa
+a9a5 d5a5 aa44 95aa
+5555 5555 aa95 55aa
+5555 5555 aa55 55aa
+55aa 5556 aa55 55aa
+6aaa adaa ab55 55aa
+aaad 55ab 6d55 55aa
+d55a 6b55 555a 6baa
+6a8a 5536 5552 59a2
+2dd5 55b6 5ad5 56aa
+6baa 55b6 d55b aad5
+6ab5 aeaa 555b 8a45
+d55b add5 6a5b adb5
+556d 56b5 d65a 55ad
+ae72 adab b5d6 5aab
+d3a9 51a1 7181 e151
+8285 8682 8583 c582
+c040 a0d0 685e abb5
+5b2d 0b05 0201 4050
+5c55 6bb5 ae6a b655
+6e1f 45a1 b8d6 aab6
+deff ffb6 7f0d 83a0
+f7ff bff7 fffd b77f
+ffdb 7fff f6bf ffed
+ea74 f4da f9f5 baf4
+0000 0000 0000 8000
+5402 5409 520a 4529
+ca29 aa55 9552 4a2a
+aa55 aa55 55aa aaab
+b556 aa55 55aa d62a
+5aad d55b 67af addf
+ffef fefe b5fe fab5
+b555 aad4 55a8 a255
+2a55 4aa9 2aaa a554
+aa55 aa55 aa92 55aa
+aa55 aa55 aaaa 55aa
+b555 aa55 aaaa 55aa
+565a aa55 aaaa 55aa
+dbaa aa55 aaad 55aa
+54b5 d554 aa52 aab2
+a151 4181 8181 8182
+6d55 566a 555a 55ab
+5b6d aaab b5aa 566a
+4502 8141 0080 8080
+55da 565a aa55 6d2a
+6aad d5b6 d555 adb5
+b55b aad6 5a6b ad55
+4361 82c2 a344 4642
+c282 c2c2 e1e2 e1e2
+daad d6b5 56db 6aad
+d65a eb55 b65b d55a
+5aad 564b ea35 d65b
+da6b ad6a b7aa db6d
+d054 6bb5 5bd5 5b6c
+0e01 2048 5368 adb6
+ff77 0400 0075 02a8
+f040 0000 027a 954a
+0000 0000 80a0 7897
+0452 1542 294a 114a
+aaa9 4a29 55a5 2a92
+aa55 5555 5555 aa55
+d52a 6d55 5556 aa55
+5bbf af7d 7fef fdbf
+faea 6aea dad5 aaaa
+a5a9 8aa5 942a 492a
+2a52 aa2a a595 54aa
+aa95 55aa 5552 aaaa
+554a 55aa 55aa a595
+55aa 55aa 554a 5555
+55aa 55aa 55aa 5555
+55aa 6daa 55aa 5555
+55aa 55aa 55aa 555a
+0182 0202 0585 0a8a
+55b6 aaaa 555b aaaa
+55ad b5d5 5555 aab5
+0000 8000 0080 0080
+2b15 160a 0b05 0a05
+566a add5 565a aa6a
+b5d6 5aaa b5d6 aab5
+95a6 8aa5 4aa5 9625
+e2e2 e262 f262 b263
+d5b6 aadb aab5 d65a
+adb5 d65a abb5 d5ad
+aa6d b5d6 556b ad55
+aa56 b5db 555a 6aad
+abd5 6d56 b5ab da6b
+55b6 55da 566a ad6a
+6bad b5d5 aab6 abb5
+106e a956 b5d6 5a6a
+ea2a 5baa b5ad d6aa
+2412 4924 1249 2412
+55aa 2495 aa49 a52a
+4aa9 aa2a aa55 25aa
+ab5a aba7 b74f 5d9f
+f7ff ddfe 76de 7dfa
+5454 a9a9 a2a9 45a9
+a5aa 5229 954a 2955
+25aa 524a 5452 4a2a
+554a a9a5 95aa a554
+55aa 552a 52aa 2aa4
+54aa 4a55 aaa9 aa95
+aaaa aa55 9555 aa55
+aaaa aa55 5555 aa55
+aaaa aa55 5555 aa55
+95d5 aa55 5555 aa55
+556a ab55 5555 aa55
+56aa 556a 5556 aa55
+80c0 20d0 50a8 a856
+0a05 0a05 0a05 0a0b
+ad55 d65a aa55 d65a
+56aa b5ad aa6b adaa
+aaab 25aa 2556 25aa
+b252 52a5 92d5 52a5
+aaab d55b aab5 ad55
+b556 6a55 b6aa 5a6b
+b6aa b5ad b5d5 aa56
+abb5 aa5b ad6a abd5
+555a d65a 6baa 556d
+adb5 d6aa 5baa 6daa
+ad55 daab 55b5 56da
+ab55 ad6a 555a d5ab
+5a6b 55aa b6aa 556d
+4912 4412 4914 4215
+548a 52a9 15a4 522a
+aa95 5255 5594 aa55
+b75e bf7a 6ffd fddd
+6dfa fad5 f5b4 eaea
+4495 8924 2a92 4925
+9249 2aa9 a554 2552
+a94a 5552 29a5 5592
+4aaa 29a5 2a55 24aa
+aa95 5452 4a55 aa94
+aa52 aa95 a955 95a5
+49aa aa55 2955 4a55
+2aaa aa55 552a a555
+aaaa aa55 55aa 552a
+aaaa aa55 55aa 55aa
+aaaa aa55 55aa 55aa
+aaaa aa55 55aa 55aa
+a9ad d555 55aa 55aa
+144b 5555 55aa 55aa
+aa55 5555 56aa 55aa
+b555 55aa adaa 55aa
+25aa 55aa 56aa 55da
+55a5 aaaa a5a2 55a5
+6aad aaab 55b5 565a
+aaad b555 566a abad
+b556 aa75 96ea 2b5a
+5aab d55a add5 55b6
+aa56 b5ab 5aaa 56b5
+b5d6 5555 b6d5 aa56
+55aa 6dab ad55 b5d6
+5ad5 565a 6a55 55aa
+aa55 aadb aa55 aab6
+4015 0944 1224 0944
+9249 2a92 49a5 14aa
+a52b ab4a 574b ae4f
+f77b daf3 f6a3 ede5
+55e8 a554 d451 a84a
+544a 2592 5548 a512
+9453 4954 2594 524a
+4a55 24aa 49a5 548a
+524a a94a 5425 94aa
+52aa 5592 aa49 a555
+aa55 49aa 5549 2a55
+5452 2aaa 492a aa52
+aa95 aaa4 2aaa a554
+aa55 a995 aaa5 2aa9
+aa55 2a55 aa52 4a55
+aa55 aa55 aa55 aa52
+aa55 aa55 aa55 aa55
+aa55 aa55 aa55 aa55
+aa55 aa55 aa55 aa55
+b555 aa55 aa55 aa55
+5556 aa55 aa55 aa55
+55aa ab55 aa55 aa5a
+52a5 5552 a555 a5aa
+aa55 aab5 5555 55aa
+b255 aaad 5555 55aa
+aaaa b556 5555 55aa
+aaaa b5aa 565a 6aaa
+d5aa 56aa d5aa adb5
+b5aa adb5 55d5 5556
+55aa 55ad 5555 6aaa
+6daa 55aa 565a aad5
+55aa 55da aaab aa55
+1221 0a44 1104 5104
+2249 2a90 4a25 520a
+ad1f ad9f bb2f bd77
+add5 c555 a985 24a5
+5141 5220 4521 8442
+5524 9249 5522 9449
+2994 4a51 2a89 544a
+52a9 4a24 aa25 a994
+4955 92a9 4534 4aa4
+4a29 a42a 5592 a994
+a42a a5aa 5229 9552
+9555 5295 5452 2aa5
+522a aa49 aa95 402d
+a595 aa55 492a 04f0
+5552 aa2a 5295 a00a
+2aaa a995 5554 02d8
+aa95 5255 55aa 95a9
+aa55 aa55 2aa5 5555
+aa55 aa55 4a55 5455
+aa55 aa55 aa55 aa55
+aa55 aa55 aa55 aa55
+aa55 aa55 aa55 aa55
+a555 a54a aa4a aa4a
+5556 55aa aaaa abaa
+55aa 56aa b5aa 55aa
+55b6 d5aa 55aa 55aa
+55aa 55aa 55b6 55aa
+55aa 55aa 55ab 55aa
+55b5 55aa 556a 56aa
+555a 55aa 55d5 aaaa
+55aa 55ab 55aa aaaa
+6aaa 5555 56aa b5aa
+2208 4510 0452 0128
+a94a 2592 4825 4a21
+5f7d 76de fabd ecba
+244a 45a2 4924 8aa5
+8144 0249 0284 010a
+2592 492a 904a 2548
+2154 2a85 a855 02b4
+425a 8452 5512 a885
+528a a94a 2492 5549
+a552 2a92 a944 2a52
+4aa9 5492 4aa9 4aa5
+9452 a992 4556 a50a
+6ab7 aadd 6aaa 8000
+af5a edb6 dbaa 1501
+edb7 5aff 55aa 6a10
+6eb5 db7e abd5 2d02
+558a 65a4 d279 acd6
+55aa 25aa a955 9552
+55aa 25aa 552a 52aa
+4aa9 5555 4aaa a955
+aa55 2a55 aaa4 552a
+aa55 aa55 aaaa 55aa
+a54a aa4a a58a 55aa
+55aa aaaa 55aa 55aa
+55aa aaaa 55aa 55aa
+55aa aaaa 55aa 55aa
+55aa aaaa 55aa 55aa
+55aa adaa 55aa 55aa
+55aa 55aa 55aa 55aa
+55aa 55aa 55aa 55aa
+55aa 55aa 55aa 55aa
+55aa 55aa 55aa 55aa
+0550 0520 0a40 1500
+4a29 452b 8356 13a6
+f9da f259 f2d5 f2a5
+4885 5409 9248 1224
+810a 010a 0108 0510
+2548 2249 14a2 09a4
+09a4 5209 a429 4422
+5522 9449 2452 8954
+2492 4a29 a492 2984
+8954 a512 a994 4529
+14aa 4552 2994 4a25
+9b54 28b4 50d0 a040
+0000 0010 0000 0000
+0000 0000 4200 0000
+0000 0041 0000 0000
+0000 4002 0000 0000
+ba55 2f15 0b0a 0502
+4a35 8a54 4aa5 d2a5
+4a55 aa92 aa55 4955
+aa49 55aa aa49 2a55
+aa55 52aa 9555 aa49
+9554 aa55 524a aa55
+55aa a955 aa95 5255
+24aa 5555 aa49 aa55
+95aa 5452 aa55 9552
+55aa aaa5 9555 55aa
+55aa aa55 552a 54a5
+55aa aa55 54aa a555
+55aa aa55 aaa4 5555
+55aa aa55 a495 5555
+55aa aa55 aa52 4a2a
+54a9 ab52 aa46 aca8
+5500 2a00 4a01 2802
+1745 9746 2b47 0da7
+e8a5 62c8 ca45 908a
+9208 2490 0a20 5408
+0409 0211 0412 000a
+114a 214a 208a 5184
+5402 5422 914a 218a
+8254 8952 0950 2548
+528a 2550 0aa5 10aa
+a452 09aa 4528 9249
+9255 4a25 5595 4a2a
+c040 8000 0000 0001
+0000 0001 154b 5a20
+0000 0055 6d5a 2c00
+0000 0120 a8de 6b00
+0002 0000 0090 403a
+0221 0100 0000 0000
+d269 5aa8 b65a 2b55
+aa24 95aa a552 2a49
+a995 524a 55a9 4a2a
+2a55 aa49 552a a495
+4a55 a955 25aa a94a
+aa55 2955 4aa9 2aa5
+9452 4a2a aa54 9255
+aaaa 95a9 a595 aa55
+55a9 4a2a 5554 aa49
+552a a9a5 5595 aa54
+55aa 492a 5555 aa92
+55a5 2aa9 552a a594
+542a aa52 4aaa 2aa5
+aaa9 a5aa 54a5 9455
+9850 30a0 61c1 c285
+4802 2802 2108 4208
+169b 571d 572b ae2b
+918a 4014 4210 8805
+5004 5088 2090 4820
+0015 000a 0114 0208
+2842 11a4 0944 2194
+2194 2248 0550 0aa1
+1244 9249 1288 5204
+05a8 4429 04a9 4492
+2492 4924 9224 9224
+9456 2894 54a8 50a8
+4102 0000 0000 0000
+0000 0000 0000 0000
+0000 0000 0000 0000
+0000 0000 0000 0000
+0c00 0000 0000 0000
+0004 8040 4020 0000
+2d15 160b 150a 0505
+554a a855 4aa5 a954
+52aa 924a 5524 5295
+52aa 9552 4aa9 5549
+aa49 2aa5 544a 2955
+5452 9554 a555 4925
+aa92 4aaa 5229 4a2a
+a94a a995 544a a955
+2aaa 522a a495 5552
+a555 aa92 aa52 2a94
+5455 4aa9 5492 aa95
+aa55 a42a a594 aa52
+aa55 92aa 49aa 9552
+5356 974c 5cb0 3061
+820a 1509 252a 5522
+2104 2108 2200 2500
+366e 2b6e 6a6e 6ab6
+a011 0882 2881 1082
+4810 a008 a010 8050
+0211 0805 1002 0802
+4210 4a01 5402 a804
+1481 5402 5108 a510
+5108 a510 4510 4a20
+0852 09a4 1144 9249
+9249 2288 2548 2249
+5050 4184 4000 2400
+2400 1100 4400 1082
+a500 1044 a84a 1240
+5200 0980 2682 0982
+4009 2004 a194 552a
+0000 2008 2200 49a0
+0000 0000 4000 2004
+0502 0201 0101 0000
+a5a9 aa64 525a a5b4
+4925 9452 9549 2492
+2455 9249 5524 9552
+924a 5549 24aa 2495
+aa52 492a a495 a42a
+a552 2994 a552 9549
+24aa 2592 5549 2a52
+944a 524a 542a 9249
+a594 52aa 924a a955
+52a9 954a a452 4a2a
+4a55 2492 aa55 9249
+a84b a957 865c 1870
+c284 8805 1029 49a2
+5592 4a29 a554 12aa
+2400 2401 2401 1105
+daee b56a eeb5 6ab6
+1184 0124 0208 2281
+0050 00a8 00a0 1040
+1004 0210 0500 1200
+a210 8a41 1441 1481
+8550 0a40 2a00 5500
+4a01 aa01 aa00 5402
+2248 1244 1188 4492
+12a4 11a4 09a2 1481
+02a0 0049 0050 8420
+0024 0002 2004 8011
+0210 8004 2001 4400
+2004 8010 4200 0820
+0188 2100 4400 9100
+2a49 0411 4004 0120
+4009 8054 0154 0104
+0000 0040 0800 4420
+525a 542a 2914 158a
+5592 49a4 12a9 0aa0
+4954 2592 a924 9249
+5249 2a92 4924 aa25
+924a 5294 4a25 a825
+a554 92aa 4924 9552
+29a5 9452 49a4 15a4
+5524 92aa 49a5 14aa
+2492 aa49 2554 9249
+a594 524a 29a5 944a
+55aa 914b 5224 9448
+62c1 0a84 122a 4924
+510a a1a5 5284 49a5
+4925 5425 9255 4825
+2105 1101 0521 0000
+6dd6 75b6 d576 0000
+0802 0805 1005 0000
+2088 4020 1040 0000
+0401 0802 0800 0000
+2409 4014 8025 0000
+5500 2580 2a00 0000
+500a 4015 4092 0000
+208a 2015 802a 0000
+5482 2904 a902 0000
+4a10 4010 4000 0000
+0000 1200 0000 0000
+0820 0104 2000 0000
+8200 0801 2000 0000
+0440 1002 0048 0000
+8400 2200 4400 0000
+2082 0800 4108 0000
+8800 2400 1201 0000
+0402 900a 500a 0000
+558a 4095 4992 0000
+2492 4924 5209 0000
+904a 2492 4924 0000
+92a4 4992 2492 0000
+2885 5229 8452 0000
+924a 2944 9249 0000
+a254 12a9 442a 0000
+a495 5229 8455 0000
+219a 442a a412 0000
+1081 4182 0500 0000
+aa25 512a 44aa 0000
+0254 0992 4984 0000
+9452 4925 5289 0000
+
+]
+
+|c000 @FRAME BRK
+|d000 @ERROR BRK
+
+|FFF0 [ 0ffc 0f0b 0f03 ] ( palette )
+|FFFA .RESET .FRAME .ERROR
diff --git a/examples/window.usm b/examples/window.usm
@@ -12,12 +12,15 @@
;icon Icon
( window ) ;wx1 2 ;wy1 2 ;wx2 2 ;wy2 2
-( drawing ) ;color 1 ;x1 2 ;x2 2 ;y1 2 ;y2 2
+( drawing ) ;color 1 ;x1 2 ;x2 2 ;y1 2 ;y2 2 ;i 2
( mouse ) ;state 1 ;wname 2
|0100 @RESET
- ,paint-background JSR
+ #01 =dev/r ( read screen for size )
+ #02 =dev/w ( write to sprite )
+
+ ,paint-image JSR
#01 =dev/r ( set read screen )
@@ -27,47 +30,49 @@
#02 =dev/w ( set dev/write sprite )
- ,window_name1 #0020 #0020 #00d0 #0080 ,paint-window JSR
- ,window_name2 #0040 #0040 #00f0 #0070 ,paint-window JSR
- ,window_name3 #0060 #004c #00c0 #007a ,paint-window JSR
+ ,window_name1 #0010 #0058 #0080 #0070 ,paint-window JSR
+ ( ,window_name2 #0040 #0040 #00f0 #0070 ,paint-window JSR )
+ ( ,window_name3 #0060 #004c #00c0 #007a ,paint-window JSR )
#05 =dev/r ( set dev/read mouse )
BRK
-|c000 @FRAME
-
- ( clear last cursor )
- #10 ,clear_icn ~mouse.x ~mouse.y ,draw-sprite JSR
- ( record mouse positions )
- #00 IOR2 =mouse.x #02 IOR2 =mouse.y
- ( record mouse state )
- #04 IOR #11 ADD =state
+@paint-image ( nil )
- #04 IOR #01 NEQ ,no-touch ROT JMP? POP2
- ,on-touch JSR
- @no-touch
+ #01 =dev/r ( read screen for size )
+ #02 =dev/w ( write to sprite )
- ( draw mouse )
- ~state ,cursor_icn ~mouse.x ~mouse.y ,draw-sprite JSR
+ #0000
+ @paint-image-loop-hor
+ #0000
+ @paint-image-loop
+ ( draw ) OVR2 IOW2 DUP2 IOW2 ,image ~i ADD2 IOW2 #01 IOW
+ ( incr ) #0008 ADD2 DUP2
+ ( incr ) ~i #0008 ADD2 =i
+ #00 IOR2 LTH2 ,paint-image-loop ROT JMP? POP2
+ POP2
+ ( incr ) #0008 ADD2 DUP2
+ #02 IOR2 LTH2 ,paint-image-loop-hor ROT JMP? POP2
+ POP2
-BRK
+RTS
-@paint-background ( nil )
+@paint-pattern ( nil )
#01 =dev/r ( read screen for size )
#02 =dev/w ( write to sprite )
#0000
- @paint-background-loop-hor
+ @paint-pattern-loop-hor
#0000
- @paint-background-loop
+ @paint-pattern-loop
( draw ) OVR2 IOW2 DUP2 IOW2 ,texture IOW2 #01 IOW
( incr ) #0008 ADD2 DUP2
- #00 IOR2 LTH2 ,paint-background-loop ROT JMP? POP2
+ #00 IOR2 LTH2 ,paint-pattern-loop ROT JMP? POP2
POP2
( incr ) #0008 ADD2 DUP2
- #02 IOR2 LTH2 ,paint-background-loop-hor ROT JMP? POP2
+ #02 IOR2 LTH2 ,paint-pattern-loop-hor ROT JMP? POP2
POP2
RTS
@@ -80,18 +85,18 @@ RTS
#01 =dev/w ( write to screen )
( Draw background )
- #01 =color
+ #00 =color
~wx1 #0003 ADD2 ~wy1 #0003 ADD2 ~wx2 #0003 ADD2 ~wy2 #0003 ADD2 ,fill-rect JSR
#02 =color
~wx1 ~wy1 ~wx2 ~wy2 ,fill-rect JSR
( draw outline )
- #01 =color
+ #00 =color
~wx1 ~wy1 ~wx2 ~wy2 ,line-rect JSR
- #01 =color
+ #00 =color
~wx1 #0002 ADD2 ~wy1 #0002 ADD2 ~wx2 #0002 SUB2 ~wy2 #0002 SUB2 ,line-rect JSR
#02 =dev/w
- #09 =color
+ #0b =color
~wname ~wx1 #0008 ADD2 ~wy1 #0008 ADD2 ,draw-label JSR
RTS
@@ -102,7 +107,7 @@ RTS
#01 =dev/w ( write to screen )
#02 =dev/w ( write to sprite )
-
+
#01 =color
~icon.text ~icon.x #0008 ADD2 ~icon.y #0020 ADD2 ,draw-label JSR
#07 ~icon.sprite ~icon.x #0018 ADD2 ~icon.y #0008 ADD2
@@ -234,6 +239,797 @@ RTS
3e7c f8f0 e4ca 8400
]
+@image [
+
+0000 0802 1001 0410
+0095 0055 0024 0154
+114a 2114 a209 5005
+2552 09a5 540a a114
+5548 2651 aa4a 25a8
+5592 4955 aa44 2aa9
+5555 554a aaaa 5555
+556d abaa b5d6 555b
+b65b 6aad b6d5 5b6c
+db6d b6d5 bb56 bbd5
+6db6 db6d b6db 6ab7
+b6db 6db6 db6a af74
+db6d b6db 6db6 dbad
+6db6 db6d b6db 6cb5
+bbd7 6e9f bf7e fcf8
+ff7c f0e0 8080 0000
+0000 0101 0101 0301
+f0e0 e0e1 c2d2 c385
+375a ef55 faaf 55fa
+77da 6fb5 da6f b5da
+77da 6fb5 da6f b5da
+77da 6eb5 db6d b6db
+bbd6 edb6 5bed b7ba
+deb5 dbb6 dd6d b7db
+dfbe 7cf8 f0e1 e4c1
+070a 1d36 5b6d b66d
+77da b7dd 6bbd ebb6
+77da b76d b66d b6db
+77da 6fb5 dab7 dd6b
+77da 6fb5 da6f b56e
+77da 6db6 db6d b6db
+76da adf6 5bad f75a
+0002 1000 0421 0004
+0190 0540 1500 5401
+500a 4114 4210 8a21
+a214 4229 9442 9520
+924a a924 9255 49a5
+9549 55a4 552a 4955
+5555 2aaa 55aa 5555
+6aad abad 6aab b556
+ab55 6e55 da6d 56ab
+6eb5 aeb5 db6d b6ab
+da6d b6db 6d56 fb4d
+dbad d67b add6 7baa
+f65b adea 5ae5 57be
+ab6f aa9f f6bf eaf9
+e35e fff6 dfa8 57ba
+fadd f7be ef10 efb5
+0383 ebbb f75f a75b
+8a8f 8916 910a 5538
+af55 f6ab 5dea 5f6a
+6fb5 da6f b5da 6db7
+6fb5 da6f b5d6 6db7
+6db7 da6d b6db 6db6
+57fa adb6 db6d b6db
+6fdf bede 7cf8 f8f0
+8203 0d0b 162d 365b
+db6d b66f dab7 da6f
+5bed b65b ed76 adf6
+6db7 dd6b bdeb b6db
+bd6b b66d b66d db6d
+b56f dab5 dfb5 6db6
+6db6 db6d b65b edb6
+adf6 5bad f65b adf6
+1000 0520 0210 0124
+9441 1401 5401 4812
+1442 1442 114a 208a
+9522 9442 1449 9224
+14aa 45a9 144a a42a
+aa55 4a2a aaaa aa55
+aa55 ab55 aaab ad55
+da55 566a ad56 6aad
+da55 b7da 55af d56a
+dd6a 5bed 566b bdd6
+b6db 6db6 db6d b6da
+ac73 af9b 7e6b bff4
+dbff 54fd d2cd 36aa
+a69b 6aad b6db aadb
+d55b ed56 db6d b556
+55ba 57ea 5d6b b6db
+b6d7 76ae de6e b65c
+0e23 3c2b 2d36 2b35
+5b2d b65b aacd 6bb5
+da6d b7da adf7 2add
+da6d b7da 6db7 aadd
+db6d b6db 6db6 db6d
+6db7 d77f afdf 7fbf
+e0e8 e181 c285 9305
+adf6 5bad d268 934e
+b5dd 6bad bfe9 965b
+5b44 ffbd 4751 ef5a
+6db6 cbfd 774d 74db
+b6db 6d36 d5fd b75f
+db6d b6db 6d56 e9bf
+5bed b65b edb6 55aa
+5bad f655 bbd6 5baa
+0012 4002 0821 0009
+802a 0148 2500 5402
+4429 4491 2492 4492
+8924 9225 914a a412
+49a5 2a52 29a5 9555
+4a55 aa55 5555 5555
+aa55 ab55 5a55 566a
+b556 5a6a abad b5aa
+adab d5ad 556b 55ad
+5bad 75ae 6bb5 5eab
+6db5 5aeb 5bea b156
+bae5 abd5 2e55 b5ae
+db6d 55b6 db55 b6db
+6d56 b5db 556e b5db
+ebbd 55aa 77a8 d450
+556d b4c0 0000 0000
+ac0e 0c0c 0c0c 0c04
+0e02 0201 0000 0000
+d6ab f555 db69 5d69
+b66b bd56 eb5d 6ab7
+b76a bdd7 6abd d76a
+b6db 6db6 da6d b6db
+ff7d 5fde 9e9e 9c0e
+0e4a 141b 223d 2b5d
+33cd 36db b5de 6bb5
+ad76 db6d b6da 6880
+b7da 6fb5 da4b 0000
+6db6 db6d b6db 6d16
+a1fe 55bb d66d b6db
+7eab aa76 dbad f65b
+fffb afd5 6abd d66b
+fdef 7ddf 6da7 d96e
+2002 0821 0410 4208
+2984 2214 4229 8452
+2492 4992 4924 924a
+aa52 4a29 a555 9552
+a9a5 5555 2955 55aa
+552a 5556 5a55 55aa
+55ad 55d5 ad55 6aad
+55b6 555a ab6d aab5
+b5aa 55aa 6bb5 aedb
+75ae dbb5 6eb6 d96f
+e5aa 55ae f5d5 adb6
+6ab5 add6 5a6b adb5
+aa6d b6ab da6d 4535
+6dab dd6a adb5 5000
+4050 b4db 6daa 2d02
+0000 0000 c0a0 b8d4
+0c0c 080c 0808 0808
+0000 0000 0000 0000
+2d29 1d15 1516 050a
+5aef 55ba 6fd5 bad7
+dd6b bdd7 6abd d66b
+6db4 5aec b5ac ec59
+3c0c 7c5c 6cac f554
+6a37 ad76 ad76 5868
+de68 a0c0 0000 0000
+0000 0000 0000 0000
+0000 0000 0000 0000
+0b00 0000 0000 0000
+6db6 5b15 0601 0000
+d5be d56f b55b 6d16
+bdd6 6bbd 6ab7 5aed
+b5df 69b6 db6d b6db
+0251 0410 4200 1401
+0954 2289 2492 4914
+2592 544a a52a 5295
+4aaa aa95 55aa 5555
+a5aa aa55 5aab 556a
+55aa b655 ab6d 55aa
+b6aa db55 6d56 b5ab
+d6ab 6d5a afd5 765b
+b55d abf6 5a6f b5d6
+b756 ee9d fd3a 75f6
+55b5 d65a aaa9 6ca4
+55aa a0c4 a000 8000
+48a0 4000 0209 2650
+0000 04b2 4abf dd03
+0200 8050 aa54 eaf5
+aada 552d 160a 0b05
+0808 0808 8888 4848
+0000 0000 0001 0102
+1f12 3b55 b65b adf6
+6db6 db6d b6db 55de
+bdd6 6bb5 de6b adb6
+b9d9 53ba b375 a5e6
+b66c b6d6 6e56 fea7
+50a0 6040 6020 a020
+0000 0000 0000 0000
+0000 0000 0000 0001
+0000 0002 0d36 db6d
+0000 2fd5 bbd5 7eab
+0000 fe55 6eb5 da6f
+0502 a1dc b7da ad77
+b6db 6d56 bbd5 6eb5
+ad76 abdd 6ab7 da6d
+4802 1005 4015 0054
+4295 4924 520a a94a
+554a 2aa9 aaaa 2aaa
+55aa aa55 abad aaaa
+55ab d55a 5556 b5d5
+6d56 6bad b5aa 6db6
+6db5 566b b5de 53dd
+6aad db6d b6ab 7dab
+bbab 76af ef5e bf7e
+f5e9 ecd4 d4ab a9a8
+5050 a020 0800 00a0
+0101 040a 132a 1656
+0040 8504 1008 1408
+0000 6804 0804 040a
+ba7e 3b3f 1f3b 3f3f
+8542 4241 a1c0 60d0
+88e8 8868 a8a0 d8a0
+0506 0b15 2e2a 5bad
+55ae 75ad d6bb 55dd
+6ab7 da6d b6aa 6db7
+db6d b5db adeb 5dab
+6b6d 4a5b 565b 556e
+5bef b75b eb5b b7db
+2020 40a0 2080 2020
+0000 0000 0000 0001
+0305 0c13 354a 9440
+565b ad6a b680 0000
+da6f b5da ab00 0000
+d57d aadf 6956 0b00
+aadd b76a bdd7 6abb
+db6d b6db 6a5d eb5d
+b65b ed55 db6d b65b
+0228 0251 0422 1442
+a412 aa24 924a a915
+aaa5 9aa5 aaaa 2a55
+b555 ab55 aaad aa55
+565a 6b55 aa6d aa56
+abd5 5b6d aab6 dbaa
+6a57 6db5 dbad 76ab
+dd6a b75b b76e df5f
+7bfd faee b4f6 d9ac
+2854 54aa aa28 8040
+0000 0001 8001 0001
+5eae 5f7b bf7d efff
+0a05 00c0 d0ff 76ff
+5440 0103 1ffd efba
+77fd bff7 7efb dfb7
+e8e0 b0f0 f0d2 eac5
+524a 452a abca ad56
+d5bb d5ae 6ab5 afd5
+6a57 baab da6d 56b5
+da55 dd6a aeb5 da6d
+dd6a b6db aab6 da6b
+35db 566b 5daa 6d57
+6eb6 de6c acec 58b8
+20a0 3050 516d b6db
+0003 057a 4cb0 d050
+4000 0002 0a17 5b5f
+0015 aaaf f8a0 e080
+0055 fadf 0700 0090
+0000 a0d0 eafc 7f1b
+5516 0b01 0000 4000
+abf5 5b4d 72ab 5509
+ed56 6bbd d556 6b5d
+114a 0154 0229 0452
+4955 2495 524a aa25
+552a aa55 aaa5 5555
+56aa b555 aa56 5a6a
+b5d6 555a abd5 add5
+6db6 abda 576a b75a
+ddb6 6abd d56b b7af
+bdff f6dd fef5 f6ab
+d569 adb2 aa65 aa4a
+b450 55a0 ad50 aeb2
+0002 0000 00a0 08a5
+dbff fdaa 0000 026d
+b7f8 8000 022d d556
+c000 0015 d65a 6aab
+0000 00bf c9b5 a040
+150a 0dd5 165a 2b2d
+95db 2aad b6ab 555a
+6a5d d66b b55a add7
+db6d aab7 5aeb 5a6d
+ab6d b65b ea5b add5
+ad75 ae6a b7da 556e
+6a5d abf6 5aad d7ba
+d971 b1a1 e243 62c5
+5576 ad56 fa4a f44a
+4081 8102 0503 0507
+be77 ffde fffa bfff
+820a 0808 140c 0505
+4804 0201 0002 056a
+1f0f 8607 8707 0587
+d0a0 d8e8 f4fa bafd
+0d05 0000 0000 8000
+aa17 3a4d 162a 0b15
+0944 2215 4015 4a21
+5492 4a2a a94a 2a49
+aa95 aa52 55aa aa55
+ab55 adb5 55aa ad56
+5a6b 55ad 56eb 5aad
+aa6d b65b ea5d abb6
+dfbf bd7f feee fdfd
+f5ad b5aa d5ac 55b4
+55aa 2a55 55aa 55aa
+55aa d556 55aa 55aa
+55aa b6aa 55aa 56b5
+55aa b6d5 55ab ad55
+6aad d556 6a55 5b6a
+adb4 50a0 956a 55ad
+0000 022a a9aa 54aa
+34ab 555d 66b5 9aeb
+ad6b ad55 b6aa b65a
+6a5b ad6a b6d5 add6
+b655 b6db aa6d aab6
+bb55 db6d aab6 aadb
+b556 6bb5 add6 ba55
+55ee 556b b5d9 a9b1
+83c5 8682 8685 8586
+60a0 b8d6 aa8b 0180
+0203 0328 d45b 6daa
+f7ff bdf7 3f8f 45f1
+01c0 e0b0 fcff b7ff
+aa00 0000 05ff fff7
+0f1e 377f fdef bffd
+f6df fffd dfff 76ff
+8040 40a0 a8d0 d0e8
+0a00 0100 0300 0000
+4a12 4904 5209 5402
+a52a 548a 524a aa12
+2aaa aaaa a5aa 55aa
+b5aa aaad 55b6 55aa
+b5d6 ab6d b5aa 5bd5
+57ef 5d5f b7bf 7e7b
+daf6 faaa eab5 d6aa
+a9a5 d5a5 aa44 95aa
+5555 5555 aa95 55aa
+5555 5555 aa55 55aa
+55aa 5556 aa55 55aa
+6aaa adaa ab55 55aa
+aaad 55ab 6d55 55aa
+d55a 6b55 555a 6baa
+6a8a 5536 5552 59a2
+2dd5 55b6 5ad5 56aa
+6baa 55b6 d55b aad5
+6ab5 aeaa 555b 8a45
+d55b add5 6a5b adb5
+556d 56b5 d65a 55ad
+ae72 adab b5d6 5aab
+d3a9 51a1 7181 e151
+8285 8682 8583 c582
+c040 a0d0 685e abb5
+5b2d 0b05 0201 4050
+5c55 6bb5 ae6a b655
+6e1f 45a1 b8d6 aab6
+deff ffb6 7f0d 83a0
+f7ff bff7 fffd b77f
+ffdb 7fff f6bf ffed
+ea74 f4da f9f5 baf4
+0000 0000 0000 8000
+5402 5409 520a 4529
+ca29 aa55 9552 4a2a
+aa55 aa55 55aa aaab
+b556 aa55 55aa d62a
+5aad d55b 67af addf
+ffef fefe b5fe fab5
+b555 aad4 55a8 a255
+2a55 4aa9 2aaa a554
+aa55 aa55 aa92 55aa
+aa55 aa55 aaaa 55aa
+b555 aa55 aaaa 55aa
+565a aa55 aaaa 55aa
+dbaa aa55 aaad 55aa
+54b5 d554 aa52 aab2
+a151 4181 8181 8182
+6d55 566a 555a 55ab
+5b6d aaab b5aa 566a
+4502 8141 0080 8080
+55da 565a aa55 6d2a
+6aad d5b6 d555 adb5
+b55b aad6 5a6b ad55
+4361 82c2 a344 4642
+c282 c2c2 e1e2 e1e2
+daad d6b5 56db 6aad
+d65a eb55 b65b d55a
+5aad 564b ea35 d65b
+da6b ad6a b7aa db6d
+d054 6bb5 5bd5 5b6c
+0e01 2048 5368 adb6
+ff77 0400 0075 02a8
+f040 0000 027a 954a
+0000 0000 80a0 7897
+0452 1542 294a 114a
+aaa9 4a29 55a5 2a92
+aa55 5555 5555 aa55
+d52a 6d55 5556 aa55
+5bbf af7d 7fef fdbf
+faea 6aea dad5 aaaa
+a5a9 8aa5 942a 492a
+2a52 aa2a a595 54aa
+aa95 55aa 5552 aaaa
+554a 55aa 55aa a595
+55aa 55aa 554a 5555
+55aa 55aa 55aa 5555
+55aa 6daa 55aa 5555
+55aa 55aa 55aa 555a
+0182 0202 0585 0a8a
+55b6 aaaa 555b aaaa
+55ad b5d5 5555 aab5
+0000 8000 0080 0080
+2b15 160a 0b05 0a05
+566a add5 565a aa6a
+b5d6 5aaa b5d6 aab5
+95a6 8aa5 4aa5 9625
+e2e2 e262 f262 b263
+d5b6 aadb aab5 d65a
+adb5 d65a abb5 d5ad
+aa6d b5d6 556b ad55
+aa56 b5db 555a 6aad
+abd5 6d56 b5ab da6b
+55b6 55da 566a ad6a
+6bad b5d5 aab6 abb5
+106e a956 b5d6 5a6a
+ea2a 5baa b5ad d6aa
+2412 4924 1249 2412
+55aa 2495 aa49 a52a
+4aa9 aa2a aa55 25aa
+ab5a aba7 b74f 5d9f
+f7ff ddfe 76de 7dfa
+5454 a9a9 a2a9 45a9
+a5aa 5229 954a 2955
+25aa 524a 5452 4a2a
+554a a9a5 95aa a554
+55aa 552a 52aa 2aa4
+54aa 4a55 aaa9 aa95
+aaaa aa55 9555 aa55
+aaaa aa55 5555 aa55
+aaaa aa55 5555 aa55
+95d5 aa55 5555 aa55
+556a ab55 5555 aa55
+56aa 556a 5556 aa55
+80c0 20d0 50a8 a856
+0a05 0a05 0a05 0a0b
+ad55 d65a aa55 d65a
+56aa b5ad aa6b adaa
+aaab 25aa 2556 25aa
+b252 52a5 92d5 52a5
+aaab d55b aab5 ad55
+b556 6a55 b6aa 5a6b
+b6aa b5ad b5d5 aa56
+abb5 aa5b ad6a abd5
+555a d65a 6baa 556d
+adb5 d6aa 5baa 6daa
+ad55 daab 55b5 56da
+ab55 ad6a 555a d5ab
+5a6b 55aa b6aa 556d
+4912 4412 4914 4215
+548a 52a9 15a4 522a
+aa95 5255 5594 aa55
+b75e bf7a 6ffd fddd
+6dfa fad5 f5b4 eaea
+4495 8924 2a92 4925
+9249 2aa9 a554 2552
+a94a 5552 29a5 5592
+4aaa 29a5 2a55 24aa
+aa95 5452 4a55 aa94
+aa52 aa95 a955 95a5
+49aa aa55 2955 4a55
+2aaa aa55 552a a555
+aaaa aa55 55aa 552a
+aaaa aa55 55aa 55aa
+aaaa aa55 55aa 55aa
+aaaa aa55 55aa 55aa
+a9ad d555 55aa 55aa
+144b 5555 55aa 55aa
+aa55 5555 56aa 55aa
+b555 55aa adaa 55aa
+25aa 55aa 56aa 55da
+55a5 aaaa a5a2 55a5
+6aad aaab 55b5 565a
+aaad b555 566a abad
+b556 aa75 96ea 2b5a
+5aab d55a add5 55b6
+aa56 b5ab 5aaa 56b5
+b5d6 5555 b6d5 aa56
+55aa 6dab ad55 b5d6
+5ad5 565a 6a55 55aa
+aa55 aadb aa55 aab6
+4015 0944 1224 0944
+9249 2a92 49a5 14aa
+a52b ab4a 574b ae4f
+f77b daf3 f6a3 ede5
+55e8 a554 d451 a84a
+544a 2592 5548 a512
+9453 4954 2594 524a
+4a55 24aa 49a5 548a
+524a a94a 5425 94aa
+52aa 5592 aa49 a555
+aa55 49aa 5549 2a55
+5452 2aaa 492a aa52
+aa95 aaa4 2aaa a554
+aa55 a995 aaa5 2aa9
+aa55 2a55 aa52 4a55
+aa55 aa55 aa55 aa52
+aa55 aa55 aa55 aa55
+aa55 aa55 aa55 aa55
+aa55 aa55 aa55 aa55
+b555 aa55 aa55 aa55
+5556 aa55 aa55 aa55
+55aa ab55 aa55 aa5a
+52a5 5552 a555 a5aa
+aa55 aab5 5555 55aa
+b255 aaad 5555 55aa
+aaaa b556 5555 55aa
+aaaa b5aa 565a 6aaa
+d5aa 56aa d5aa adb5
+b5aa adb5 55d5 5556
+55aa 55ad 5555 6aaa
+6daa 55aa 565a aad5
+55aa 55da aaab aa55
+1221 0a44 1104 5104
+2249 2a90 4a25 520a
+ad1f ad9f bb2f bd77
+add5 c555 a985 24a5
+5141 5220 4521 8442
+5524 9249 5522 9449
+2994 4a51 2a89 544a
+52a9 4a24 aa25 a994
+4955 92a9 4534 4aa4
+4a29 a42a 5592 a994
+a42a a5aa 5229 9552
+9555 5295 5452 2aa5
+522a aa49 aa95 402d
+a595 aa55 492a 04f0
+5552 aa2a 5295 a00a
+2aaa a995 5554 02d8
+aa95 5255 55aa 95a9
+aa55 aa55 2aa5 5555
+aa55 aa55 4a55 5455
+aa55 aa55 aa55 aa55
+aa55 aa55 aa55 aa55
+aa55 aa55 aa55 aa55
+a555 a54a aa4a aa4a
+5556 55aa aaaa abaa
+55aa 56aa b5aa 55aa
+55b6 d5aa 55aa 55aa
+55aa 55aa 55b6 55aa
+55aa 55aa 55ab 55aa
+55b5 55aa 556a 56aa
+555a 55aa 55d5 aaaa
+55aa 55ab 55aa aaaa
+6aaa 5555 56aa b5aa
+2208 4510 0452 0128
+a94a 2592 4825 4a21
+5f7d 76de fabd ecba
+244a 45a2 4924 8aa5
+8144 0249 0284 010a
+2592 492a 904a 2548
+2154 2a85 a855 02b4
+425a 8452 5512 a885
+528a a94a 2492 5549
+a552 2a92 a944 2a52
+4aa9 5492 4aa9 4aa5
+9452 a992 4556 a50a
+6ab7 aadd 6aaa 8000
+af5a edb6 dbaa 1501
+edb7 5aff 55aa 6a10
+6eb5 db7e abd5 2d02
+558a 65a4 d279 acd6
+55aa 25aa a955 9552
+55aa 25aa 552a 52aa
+4aa9 5555 4aaa a955
+aa55 2a55 aaa4 552a
+aa55 aa55 aaaa 55aa
+a54a aa4a a58a 55aa
+55aa aaaa 55aa 55aa
+55aa aaaa 55aa 55aa
+55aa aaaa 55aa 55aa
+55aa aaaa 55aa 55aa
+55aa adaa 55aa 55aa
+55aa 55aa 55aa 55aa
+55aa 55aa 55aa 55aa
+55aa 55aa 55aa 55aa
+55aa 55aa 55aa 55aa
+0550 0520 0a40 1500
+4a29 452b 8356 13a6
+f9da f259 f2d5 f2a5
+4885 5409 9248 1224
+810a 010a 0108 0510
+2548 2249 14a2 09a4
+09a4 5209 a429 4422
+5522 9449 2452 8954
+2492 4a29 a492 2984
+8954 a512 a994 4529
+14aa 4552 2994 4a25
+9b54 28b4 50d0 a040
+0000 0010 0000 0000
+0000 0000 4200 0000
+0000 0041 0000 0000
+0000 4002 0000 0000
+ba55 2f15 0b0a 0502
+4a35 8a54 4aa5 d2a5
+4a55 aa92 aa55 4955
+aa49 55aa aa49 2a55
+aa55 52aa 9555 aa49
+9554 aa55 524a aa55
+55aa a955 aa95 5255
+24aa 5555 aa49 aa55
+95aa 5452 aa55 9552
+55aa aaa5 9555 55aa
+55aa aa55 552a 54a5
+55aa aa55 54aa a555
+55aa aa55 aaa4 5555
+55aa aa55 a495 5555
+55aa aa55 aa52 4a2a
+54a9 ab52 aa46 aca8
+5500 2a00 4a01 2802
+1745 9746 2b47 0da7
+e8a5 62c8 ca45 908a
+9208 2490 0a20 5408
+0409 0211 0412 000a
+114a 214a 208a 5184
+5402 5422 914a 218a
+8254 8952 0950 2548
+528a 2550 0aa5 10aa
+a452 09aa 4528 9249
+9255 4a25 5595 4a2a
+c040 8000 0000 0001
+0000 0001 154b 5a20
+0000 0055 6d5a 2c00
+0000 0120 a8de 6b00
+0002 0000 0090 403a
+0221 0100 0000 0000
+d269 5aa8 b65a 2b55
+aa24 95aa a552 2a49
+a995 524a 55a9 4a2a
+2a55 aa49 552a a495
+4a55 a955 25aa a94a
+aa55 2955 4aa9 2aa5
+9452 4a2a aa54 9255
+aaaa 95a9 a595 aa55
+55a9 4a2a 5554 aa49
+552a a9a5 5595 aa54
+55aa 492a 5555 aa92
+55a5 2aa9 552a a594
+542a aa52 4aaa 2aa5
+aaa9 a5aa 54a5 9455
+9850 30a0 61c1 c285
+4802 2802 2108 4208
+169b 571d 572b ae2b
+918a 4014 4210 8805
+5004 5088 2090 4820
+0015 000a 0114 0208
+2842 11a4 0944 2194
+2194 2248 0550 0aa1
+1244 9249 1288 5204
+05a8 4429 04a9 4492
+2492 4924 9224 9224
+9456 2894 54a8 50a8
+4102 0000 0000 0000
+0000 0000 0000 0000
+0000 0000 0000 0000
+0000 0000 0000 0000
+0c00 0000 0000 0000
+0004 8040 4020 0000
+2d15 160b 150a 0505
+554a a855 4aa5 a954
+52aa 924a 5524 5295
+52aa 9552 4aa9 5549
+aa49 2aa5 544a 2955
+5452 9554 a555 4925
+aa92 4aaa 5229 4a2a
+a94a a995 544a a955
+2aaa 522a a495 5552
+a555 aa92 aa52 2a94
+5455 4aa9 5492 aa95
+aa55 a42a a594 aa52
+aa55 92aa 49aa 9552
+5356 974c 5cb0 3061
+820a 1509 252a 5522
+2104 2108 2200 2500
+366e 2b6e 6a6e 6ab6
+a011 0882 2881 1082
+4810 a008 a010 8050
+0211 0805 1002 0802
+4210 4a01 5402 a804
+1481 5402 5108 a510
+5108 a510 4510 4a20
+0852 09a4 1144 9249
+9249 2288 2548 2249
+5050 4184 4000 2400
+2400 1100 4400 1082
+a500 1044 a84a 1240
+5200 0980 2682 0982
+4009 2004 a194 552a
+0000 2008 2200 49a0
+0000 0000 4000 2004
+0502 0201 0101 0000
+a5a9 aa64 525a a5b4
+4925 9452 9549 2492
+2455 9249 5524 9552
+924a 5549 24aa 2495
+aa52 492a a495 a42a
+a552 2994 a552 9549
+24aa 2592 5549 2a52
+944a 524a 542a 9249
+a594 52aa 924a a955
+52a9 954a a452 4a2a
+4a55 2492 aa55 9249
+a84b a957 865c 1870
+c284 8805 1029 49a2
+5592 4a29 a554 12aa
+2400 2401 2401 1105
+daee b56a eeb5 6ab6
+1184 0124 0208 2281
+0050 00a8 00a0 1040
+1004 0210 0500 1200
+a210 8a41 1441 1481
+8550 0a40 2a00 5500
+4a01 aa01 aa00 5402
+2248 1244 1188 4492
+12a4 11a4 09a2 1481
+02a0 0049 0050 8420
+0024 0002 2004 8011
+0210 8004 2001 4400
+2004 8010 4200 0820
+0188 2100 4400 9100
+2a49 0411 4004 0120
+4009 8054 0154 0104
+0000 0040 0800 4420
+525a 542a 2914 158a
+5592 49a4 12a9 0aa0
+4954 2592 a924 9249
+5249 2a92 4924 aa25
+924a 5294 4a25 a825
+a554 92aa 4924 9552
+29a5 9452 49a4 15a4
+5524 92aa 49a5 14aa
+2492 aa49 2554 9249
+a594 524a 29a5 944a
+55aa 914b 5224 9448
+62c1 0a84 122a 4924
+510a a1a5 5284 49a5
+4925 5425 9255 4825
+2105 1101 0521 0000
+6dd6 75b6 d576 0000
+0802 0805 1005 0000
+2088 4020 1040 0000
+0401 0802 0800 0000
+2409 4014 8025 0000
+5500 2580 2a00 0000
+500a 4015 4092 0000
+208a 2015 802a 0000
+5482 2904 a902 0000
+4a10 4010 4000 0000
+0000 1200 0000 0000
+0820 0104 2000 0000
+8200 0801 2000 0000
+0440 1002 0048 0000
+8400 2200 4400 0000
+2082 0800 4108 0000
+8800 2400 1201 0000
+0402 900a 500a 0000
+558a 4095 4992 0000
+2492 4924 5209 0000
+904a 2492 4924 0000
+92a4 4992 2492 0000
+2885 5229 8452 0000
+924a 2944 9249 0000
+a254 12a9 442a 0000
+a495 5229 8455 0000
+219a 442a a412 0000
+1081 4182 0500 0000
+aa25 512a 44aa 0000
+0254 0992 4984 0000
+9452 4925 5289 0000
+
+]
+
+|c000 @FRAME
+
+ ( clear last cursor )
+ #10 ,clear_icn ~mouse.x ~mouse.y ,draw-sprite JSR
+ ( record mouse positions )
+ #00 IOR2 =mouse.x #02 IOR2 =mouse.y
+ ( record mouse state )
+ #04 IOR #11 ADD =state
+
+ #04 IOR #01 NEQ ,no-touch ROT JMP? POP2
+ ,on-touch JSR
+ @no-touch
+
+ ( draw mouse )
+ ~state ,cursor_icn ~mouse.x ~mouse.y ,draw-sprite JSR
+
+BRK
+
|d000 @ERROR BRK
-|FFF0 [ 31fd e1f3 b1f2 ] ( palette )
+|FFF0 [ 13fd 1ef3 1bf2 ] ( palette )
|FFFA .RESET .FRAME .ERROR