~rabbits/orca-toy

eab3182f84516b284d46efc069f01dc2636ad465 — neauoire 1 year, 1 month ago 71a984d
Fixed issue with selection
6 files changed, 46 insertions(+), 616 deletions(-)

D etc/default.c
D etc/msx816.tal
D etc/orca816.tal
D etc/spectrum.c
D etc/vga816.tal
M src/main.tal
D etc/default.c => etc/default.c +0 -72
@@ 1,72 0,0 @@
Uint8 font[][8] = {
	{0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x3c, 0x00}, /* 0 */
	{0x00, 0x00, 0x30, 0x10, 0x10, 0x10, 0x10, 0x00},
	{0x00, 0x00, 0x7c, 0x02, 0x3c, 0x40, 0x7e, 0x00},
	{0x00, 0x00, 0x7c, 0x02, 0x7c, 0x02, 0x7c, 0x00},
	{0x00, 0x00, 0x12, 0x22, 0x42, 0x7e, 0x02, 0x00},
	{0x00, 0x00, 0x7e, 0x40, 0x3c, 0x02, 0x7e, 0x00},
	{0x00, 0x00, 0x3e, 0x40, 0x7c, 0x42, 0x3c, 0x00},
	{0x00, 0x00, 0x7e, 0x02, 0x04, 0x08, 0x10, 0x00},
	{0x00, 0x00, 0x7e, 0x42, 0x3c, 0x42, 0x7e, 0x00},
	{0x00, 0x00, 0x7e, 0x42, 0x3e, 0x02, 0x02, 0x00}, /* 9 */
	{0x00, 0x00, 0x7c, 0x02, 0x3e, 0x42, 0x7a, 0x00}, /* a */
	{0x00, 0x00, 0x40, 0x40, 0x7c, 0x42, 0x7c, 0x00},
	{0x00, 0x00, 0x00, 0x3e, 0x40, 0x40, 0x3e, 0x00},
	{0x00, 0x00, 0x02, 0x02, 0x3e, 0x42, 0x3e, 0x00},
	{0x00, 0x00, 0x3c, 0x42, 0x7c, 0x40, 0x3e, 0x00},
	{0x00, 0x00, 0x3c, 0x42, 0x70, 0x40, 0x40, 0x00},
	{0x00, 0x00, 0x3e, 0x42, 0x3e, 0x02, 0x7c, 0x00},
	{0x00, 0x00, 0x40, 0x40, 0x7c, 0x42, 0x42, 0x00},
	{0x00, 0x00, 0x10, 0x00, 0x10, 0x10, 0x10, 0x00},
	{0x00, 0x00, 0x7e, 0x04, 0x04, 0x44, 0x38, 0x00},
	{0x00, 0x00, 0x42, 0x44, 0x78, 0x44, 0x42, 0x00},
	{0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x3e, 0x00},
	{0x00, 0x00, 0x6c, 0x52, 0x52, 0x52, 0x52, 0x00},
	{0x00, 0x00, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x00},
	{0x00, 0x00, 0x1c, 0x22, 0x42, 0x44, 0x38, 0x00},
	{0x00, 0x00, 0x7c, 0x42, 0x7c, 0x40, 0x40, 0x00},
	{0x00, 0x00, 0x3e, 0x42, 0x3e, 0x02, 0x02, 0x00},
	{0x00, 0x00, 0x5c, 0x62, 0x40, 0x40, 0x40, 0x00},
	{0x00, 0x00, 0x3e, 0x40, 0x3c, 0x02, 0x7c, 0x00},
	{0x00, 0x00, 0x7e, 0x10, 0x10, 0x10, 0x08, 0x00},
	{0x00, 0x00, 0x42, 0x42, 0x42, 0x46, 0x3a, 0x00},
	{0x00, 0x00, 0x42, 0x42, 0x24, 0x24, 0x18, 0x00},
	{0x00, 0x00, 0x42, 0x42, 0x52, 0x52, 0x6c, 0x00},
	{0x00, 0x00, 0x42, 0x42, 0x3c, 0x42, 0x42, 0x00},
	{0x00, 0x00, 0x42, 0x42, 0x3e, 0x02, 0x7c, 0x00},
	{0x00, 0x00, 0x7e, 0x04, 0x18, 0x20, 0x7e, 0x00}, /* z */
	{0x00, 0x00, 0x3c, 0x42, 0x7e, 0x42, 0x42, 0x00}, /* A */
	{0x00, 0x00, 0x7c, 0x42, 0x7c, 0x42, 0x7c, 0x00},
	{0x00, 0x00, 0x3e, 0x40, 0x40, 0x40, 0x3e, 0x00},
	{0x00, 0x00, 0x7c, 0x42, 0x42, 0x42, 0x7c, 0x00},
	{0x00, 0x00, 0x7e, 0x40, 0x7e, 0x40, 0x7e, 0x00},
	{0x00, 0x00, 0x7e, 0x40, 0x70, 0x40, 0x40, 0x00},
	{0x00, 0x00, 0x3e, 0x40, 0x5c, 0x42, 0x3e, 0x00},
	{0x00, 0x00, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x00},
	{0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00},
	{0x00, 0x00, 0x7e, 0x02, 0x02, 0x42, 0x3c, 0x00},
	{0x00, 0x00, 0x46, 0x48, 0x70, 0x48, 0x46, 0x00},
	{0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x7e, 0x00},
	{0x00, 0x00, 0x6e, 0x52, 0x52, 0x52, 0x52, 0x00},
	{0x00, 0x00, 0x62, 0x52, 0x4a, 0x46, 0x42, 0x00},
	{0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x3c, 0x00},
	{0x00, 0x00, 0x7e, 0x42, 0x7c, 0x40, 0x40, 0x00},
	{0x00, 0x00, 0x3c, 0x42, 0x4a, 0x44, 0x3a, 0x00},
	{0x00, 0x00, 0x7e, 0x42, 0x7c, 0x42, 0x42, 0x00},
	{0x00, 0x00, 0x3e, 0x40, 0x7e, 0x02, 0x7c, 0x00},
	{0x00, 0x00, 0x7e, 0x10, 0x10, 0x10, 0x10, 0x00},
	{0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00},
	{0x00, 0x00, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00},
	{0x00, 0x00, 0x52, 0x52, 0x52, 0x52, 0x6e, 0x00},
	{0x00, 0x00, 0x42, 0x24, 0x18, 0x24, 0x42, 0x00},
	{0x00, 0x00, 0x42, 0x24, 0x10, 0x10, 0x10, 0x00},
	{0x00, 0x00, 0x7e, 0x02, 0x3c, 0x40, 0x7e, 0x00}, /* Z */
	{0x00, 0x00, 0x5a, 0x24, 0x42, 0x24, 0x5a, 0x00}, /* * */
	{0x00, 0x00, 0x24, 0x7e, 0x24, 0x7e, 0x24, 0x00}, /* # */
	{0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00}, /* . */
	{0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00}, /* : */
	{0x00, 0x00, 0x66, 0x5a, 0x24, 0x5a, 0x66, 0x00}, /* @ */
	{0x00, 0x00, 0x00, 0x32, 0x42, 0x4c, 0x00, 0x00},
	{0x00, 0x00, 0x00, 0x28, 0x00, 0x28, 0x00, 0x00},
	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
\ No newline at end of file

D etc/msx816.tal => etc/msx816.tal +0 -226
@@ 1,226 0,0 @@
@font ( msx816 )
	0000 0000 0000 0000 0000 0000 0000 0000
	1818 1818 1818 1010 1010 1000 0010 1010
	0000 2828 0000 0000 0000 0000 0000 0000
	2828 282e 38e8 2828 2828 2e38 e828 2828
	1038 5454 5450 5030 1814 1454 5454 3810
	42a2 a4a4 4808 1010 1020 244a 4a8a 8400
	0010 2828 2828 1030 504a 4a44 443a 0000
	1010 1020 0000 0000 0000 0000 0000 0000
	0204 0408 0808 0808 0808 0808 0804 0402
	4020 2010 1010 1010 1010 1010 1020 2040
	0000 1010 5454 3810 3854 5410 1000 0000
	0000 0010 1010 107c 1010 1010 0000 0000
	0000 0000 0000 0000 0000 0000 1010 1020
	0000 0000 0000 007c 0000 0000 0000 0000
&marker
	0000 0000 0000 0000 0000 0000 0020 2000
	0202 0404 0808 1010 2020 4040 8080 0000
	0018 2442 4242 4242 4242 4242 4224 1800
	0008 1828 0808 0808 0808 0808 0808 1c00
	0018 2442 4202 0202 0408 1020 4040 7e00
	0018 2442 0202 0438 0402 0202 0204 7800
	000c 0c14 1414 2424 2444 447e 0404 0e00
	007e 4040 4040 5864 4202 0202 0204 7800
	000c 1020 4040 5864 4242 4242 4224 1800
	007e 4202 0204 0404 0808 0810 1010 1000
	0018 2442 4242 2418 2442 4242 4224 1800
	0018 2442 4242 4242 261a 0202 0408 3000
	0000 0000 0010 1000 0000 0000 1010 0000
	0000 0000 0010 1000	0000 0000 1010 1020
	0000 0204 0810 2040	2010 0804 0200 0000
	0000 0000 0000 7c00	007c 0000 0000 0000
	0000 4020 1008 0402	0408 1020 4000 0000
	1824 4242 4204 0408	0810 1010 0010 1010
	3844 8282 9aaa aaaa	aaaa aa96 8082 4438
	0010 1028 2844 4444	8282 fe82 8282 0000
	00f8 4442 4242 4478	4442 4242 44f8 0000
	003c 4282 8280 8080	8080 8282 423c 0000
	00f8 4442 4242 4242	4242 4242 44f8 0000
	00fc 4240 4040 4878 4840 4040 42fc 0000
	80fe 4240 4040 447c 4440 4040 40e0 0000
	003a 4682 8080 8e82 8282 8282 463a 0000
	00ee 4444 4444 447c 4444 4444 44ee 0000
	0038 1010 1010 1010 1010 1010 1038 0000
	000e 0404 0404 0404 0404 4444 2810 0000
	00ee 4448 4850 5060 5050 4848 44ee 0000
	00e0 4040 4040 4040 4040 4040 42fe 0000
	0082 c6c6 c6aa aaaa 9292 9282 8282 0000
	00e2 4262 6262 5252 4a4a 4646 42e2 0000
	0038 4482 8282 8282 8282 8282 4438 0000
	00f8 4442 4242 4244 7840 4040 40f0 0000
	0038 4482 8282 8282 8282 829a 643a 0000
	00f8 4442 4242 4478 4844 4442 42e2 0000
	0010 2844 4440 2010 0804 4444 2810 0000
	00fe 9210 1010 1010 1010 1010 1038 0000
	00ee 4444 4444 4444 4444 4444 4438 0000
	0082 8282 8282 8244 4444 2828 1010 0000
	0082 8292 9292 9292 92ba aa44 4444 0000
	0042 4242 2424 1818 1824 2442 4242 0000
	0082 8282 4444 2828 1010 1010 1038 0000
	007e 4204 0408 0810 1020 2040 427e 0000
	0e08 0808 0808 0808 0808 0808 0808 080e
	0082 8282 4444 fe28 10fe 1010 1010 1000
	7010 1010 1010 1010 1010 1010 1010 1070
	1028 4400 0000 0000 0000 0000 0000 0000
	0000 0000 0000 0000 0000 0000 0000 00fe
	1010 1008 0000 0000 0000 0000 0000 0000
	0000 0000 0030 0808 3848 4848 4834 0000
	0060 2020 202c 3222 2222 2222 322c 0000
	0000 0000 001c 2240 4040 4040 221c 0000
	000c 0404 0434 4c44 4444 4444 4c36 0000
	0000 0000 0018 2424 3c20 2020 2418 0000
	000c 1210 1038 1010 1010 1010 1038 0000
	0000 0000 0034 4a48 4830 4038 4444 4438
	00c0 4040 4058 6444 4444 4444 44ee 0000
	0010 0000 0030 1010 1010 1010 1038 0000
	0008 0000 0018 0808 0808 0808 0808 2810
	0060 2020 2022 2224 2438 2424 2272 0000
	0030 1010 1010 1010 1010 1010 1038 0000
	0000 0000 00a4 da92 9292 9292 9292 0000
	0000 0000 00d8 6444 4444 4444 44ee 0000
	0000 0000 0038 4482 8282 8282 4438 0000
	0000 0000 00d8 6442 4242 4242 6458 40e0
	0000 0000 0034 4c84 8484 8484 4c34 040e
	0000 0000 0068 3420 2020 2020 2070 0000
	0000 0000 0018 2424 1008 0424 2418 0000
	0010 1010 107c 1010 1010 1010 1408 0000
	0000 0000 00cc 4444 4444 4444 4c36 0000
	0000 0000 00ee 4444 4428 2828 1010 0000
	0000 0000 0092 9292 9292 92aa 4444 0000
	0000 0000 00ee 4428 1010 1028 44ee 0000
	0000 0000 00ee 4444 4448 2828 1010 2040
	0000 0000 007c 4408 0810 2020 447c 0000
	0204 0404 0404 0408 0804 0404 0404 0402
	1010 1010 1010 1010 1010 1010 1010 1010
	4020 2020 2020 2010 1020 2020 2020 2040
	fe00 0000 0000 0000 0000 0000 0000 0000
	0000 0000 0000 0000 0000 0000 0000 0000
	0000 0000 0000 0000 0000 0000 0000 0000
	0000 0000 0000 0000 0000 0030 4848 3000
	001e 1010 1010 1010 0000 0000 0000 0000
	0000 0000 0000 0000 0808 0808 0808 7800
	0000 0000 0000 0000 0000 0000 4020 3000
	0000 0000 0000 183c 3c18 0000 0000 0000
	0808 087c 1010 2a34 4c94 1424 2020 1c00
	0000 0000 0010 107c 103c 5652 4a52 2408
	0000 0000 0000 0040 4442 4242 4250 2000
	0000 0000 0020 1800 7804 0404 0408 0810
	0000 0000 0000 1800 3c08 1010 2848 4600
	0000 0000 0000 1014 3a10 1c32 5252 3400
	0000 0000 1048 5068 c444 4428 2010 1000
	0000 0000 0848 485c 6a4a 4a4a 5c08 0810
	0000 0000 1010 101c 1010 1070 9894 6000
	0000 0000 0000 0000 1c62 0202 0404 0810
	0000 0000 0000 0040 3e00 0000 0000 0000
	0010 1010 7e20 3c66 aaaa 92aa a244 0800
	0000 8080 8482 8282 8282 a0a0 4040 0000
	0030 0c00 007c 0202 0202 0202 0408 3000
	2018 0000 007c 0808 1020 3048 8888 0600
	0020 2c26 203c e020 2c32 62a2 a262 2400
	2020 2422 f22a 2a2a 4a48 4848 8898 3000
	0020 2020 fc10 10fc 0804 7c82 8040 3800
	0202 0408 0810 2040 2010 1008 0804 0202
	0004 4444 449e 8484 8484 84a4 4444 0810
	0000 7c00 0000 0000 0080 8080 403e 0000
	0010 1010 fc10 0808 047c 8280 8040 3800
	0040 4040 4040 4040 4040 4040 4244 3800
	0808 08fe 0808 3848 4858 2808 0810 1020
	0008 4848 48fe 4848 4848 4858 4040 3c00
	007e 0408 1020 40fe 0810 1010 1008 0400
	0000 0000 0000 0000 0000 0000 0000 0000
	0000 0000 0000 0000 0000 0030 4848 3000
	001e 1010 1010 1010 0000 0000 0000 0000
	0000 0000 0000 0000 0808 0808 0808 7800
	0000 0000 0000 0000 0000 0000 4020 3000
	0000 0000 0000 183c 3c18 0000 0000 0000
	0000 00fc 0404 047c 0404 0808 1010 2000
	0000 0000 0000 007e 0214 1810 1020 2040
	0000 0000 0000 0408 0810 2848 0808 0808
	0000 0000 0000 1010 7c44 4404 0808 1010
	0000 0000 0000 0000 0038 1010 1010 7c00
	0000 0000 0000 0808 7e18 2828 4848 8818
	0000 0000 0000 2020 3ce4 2820 1010 1010
	0000 0000 0000 0000 3808 0808 087c 0000
	0000 0000 0000 003c 0404 3c04 0404 3c00
	0000 0000 0000 0024 9454 4404 0808 1020
	0000 0000 0000 0040 3e00 0000 0000 0000
	0000 00fe 0202 1418 1010 1010 2020 4000
	0004 0408 0810 1828 4888 0808 0808 0800
	0000 1010 fe82 8282 0204 0404 0808 1000
	0000 0000 0000 7c10 1010 1010 1010 fe00
	0008 0808 08fe 0818 2828 4848 8888 1800
	0020 2020 fc24 2424 2444 4484 8404 1800
	0040 2020 3ed0 101e e808 0804 0404 0202
	0000 2020 3c24 2444 4488 0810 1060 8000
	0000 2020 203e 4444 4484 0808 1010 2000
	0000 0000 fe02 0202 0202 0202 fe00 0000
	0000 0424 2424 fe24 2424 0404 0808 1000
	0000 2010 0000 8242 0204 0408 1060 8000
	0000 0078 0808 0808 1010 2828 4482 0000
	0000 2020 2026 3ae2 2420 2020 201e 0000
	0000 0202 0242 2222 0404 0808 1020 4000
	0000 2020 3c24 2444 6498 0810 1060 8000
	0000 0c70 0808 08fe 0808 0808 1010 2000
	0000 0022 9252 4202 0404 0808 1020 0000
	0000 007c 0000 fe08 0808 0810 1020 4000
	0040 4040 4040 7058 4c46 4040 4040 4000
	0008 0808 0808 fe08 0808 0810 1020 4000
	0000 0000 007c 0000 0000 00fe 0000 0000
	0000 007c 0404 0428 1808 1412 2040 0000
	1010 0800 7c04 0808 1014 3252 9010 1000
	0000 0002 0204 0408 0810 1020 20c0 0000
	0000 0048 4844 4442 4242 8282 8282 0000
	0000 4040 424c 7040 4040 4040 3c00 0000
	0000 007e 0202 0202 0404 0808 1020 0000
	0000 0000 2050 5088 8804 0200 0000 0000
	0010 1010 10fe 1010 1452 5252 9210 3000
	0000 0000 fe02 0404 4830 1008 0400 0000
	0000 3018 0c00 3018 0400 3018 0c00 0000
	0000 0008 0810 1020 2024 424e f202 0000
	0000 0202 0444 2810 1028 2440 4080 0000
	0000 0000 7c20 20ff 2020 2020 1e00 0000
	0020 2026 3ae2 2428 2010 1010 1010 0000
	0000 0000 7808 0808 0808 fe00 0000 0000
	0000 0000 7e02 0202 7e02 0202 7e00 0000
	0000 003c 0000 fe02 0204 0408 0810 2000
	0002 2222 2222 2222 2222 0204 0408 1000
	0000 0000 1010 5050 5252 5454 9890 0000
	0000 0040 4040 4042 4244 4448 5060 0000
	0000 0000 007e 4242 4242 4242 7e00 0000
	0000 00fe 8282 8202 0404 0808 1020 4000
	0000 0040 2012 0202 0204 0408 30c0 0000
	0000 3008 6010 0000 0000 0000 0000 0000
	0000 3048 4830 0000 0000 0000 0000 0000
	0020 2020 f820 2e40 4040 5050 908e 8000
	0010 1010 fc20 2020 2c32 4202 0204 3800
	0000 0000 0834 c202 0202 0204 0418 2000
	0000 fe04 0810 2040 4040 4020 2010 0c00
	0000 8040 2022 1c30 4040 8080 8040 3e00
	2020 2824 f222 4848 4888 8898 2424 1a00
	0000 405e 8080 8080 8080 9090 d08e 0000
	0000 0444 443c 6aaa aa92 92a6 aaaa 4400
	0040 4044 6ad2 5262 6242 4ad6 d24c 4200
	0000 1824 5292 9292 a2a2 a2a2 a244 0800
	0004 4444 5e44 8484 8484 848c 9694 4800
	0000 e028 4844 4684 8484 8484 8448 3000
	0000 2018 0c00 2020 1412 8a8a ca88 3000
	0000 0000 2050 5088 8804 0200 0000 0000
	0000 5e44 445e 8484 8484 848c 94d4 4a00
	0808 087e 0808 087e 0808 0838 4c4a 3000
	0078 0808 1012 1234 6ea4 a444 0408 1000
	3010 1010 f824 2262 a0a0 a262 2222 1c00
	0008 0888 4858 6cea ba92 aaa2 a444 0800
	1010 1010 fc20 20fc 2020 2222 2222 1c00
	0008 0804 805c 62c2 4242 2c20 1010 1000
	0008 089c aaaa ca8a 8a8a aa9c 0808 1000
	0010 1010 101e 1010 1010 1070 9894 6000
	2018 0c00 4040 4080 9ca2 c282 0204 3800
	0000 4242 4242 4242 4252 2202 0404 1800
	0000 7e04 0810 207c 62c2 821a 2624 1800
	2020 2028 f434 2424 2464 64a4 a422 2000
	0000 3c08 0810 102c 2222 4242 0204 1800
	0020 2020 e02c 3222 6262 a2a2 2224 2000
	0008 0808 1010 1020 2030 5252 928c 0000
	0000 3008 6010 0000 0000 0000 0000 0000
	0000 3048 4830 0000 0000 0000 0000 0000
\ No newline at end of file

D etc/orca816.tal => etc/orca816.tal +0 -98
@@ 1,98 0,0 @@
@font ( orca.816 )
	0000 0000 0000 0000 0000 0000 0000 0000
	0010 1010 1010 1010 1010 1010 0010 0000
	0028 2800 0000 0000 0000 0000 0000 0000
	0024 247e 2424 2424 2424 247e 2424 0000
	0010 3854 5050 5038 1414 1454 3810 0000
	0022 5222 0404 0808 1010 2024 4a44 0000
	0010 2828 2828 1030 504a 4a44 443a 0000
	0000 1020 0000 0000 0000 0000 0000 0000
	0008 1010 1010 1010 1010 1010 1008 0000
	0010 0808 0808 0808 0808 0808 0810 0000
	0000 0010 5454 5438 5454 5410 0000 0000
	0000 0000 0010 107c 1010 0000 0000 0000
	0000 0000 0000 0000 0000 0000 1010 0000
	0000 0000 0000 007c 0000 0000 0000 0000
	0000 0000 0000 0000 0000 0000 0010 0000
	0002 0202 0404 0808 1010 2020 4040 0000
	0018 2442 4242 4242 4242 4242 2418 0000
	0070 1010 1010 1010 1010 1010 1010 0000
	0018 2442 4202 0408 1020 2040 407e 0000
	0018 2442 4202 0418 0402 4242 2418 0000
	0006 0a12 2242 427e 0202 0202 0202 0000
	007e 4040 4038 0402 0202 4242 2418 0000
	0018 2442 4240 4058 6442 4242 2418 0000
	003e 4242 0204 0404 0808 0810 1010 0000
	0018 2442 4242 2418 2442 4242 2418 0000
	0018 2442 4242 261a 0202 0202 0202 0000
	0000 0000 0000 1000 0010 0000 0000 0000
	0000 0000 0000 1000 0010 1010 2000 0000
	0000 0204 0810 2040 2010 0804 0200 0000
	0000 0000 0000 7c00 007c 0000 0000 0000
	0000 4020 1008 0402 0408 1020 4000 0000
	0018 2442 4202 0204 0408 1010 0010 0000
	0018 2442 4a56 5252 5252 524c 201c 0000
	0018 2442 4242 427e 4242 4242 4242 0000
	0078 4442 4242 4478 4442 4242 4478 0000
	0018 2442 4240 4040 4040 4242 2418 0000
	0078 4442 4242 4242 4242 4242 4478 0000
	007e 4040 4040 4078 4040 4040 407e 0000
	0018 2442 4240 4070 4040 4040 4040 0000
	0018 2442 4040 404e 4242 4242 2418 0000
	0042 4242 4242 427e 4242 4242 4242 0000
	007c 1010 1010 1010 1010 1010 107c 0000
	007e 0202 0202 0202 0202 0242 2418 0000
	0042 4244 4448 4870 4848 4444 4242 0000
	0040 4040 4040 4040 4040 4040 407e 0000
	0074 4a4a 4a4a 4a4a 4a4a 4a4a 4a4a 0000
	0062 5252 5252 5252 4a4a 4a4a 4a46 0000
	0018 2442 4242 4242 4242 4242 2418 0000
	0078 4442 4242 4478 4040 4040 4040 0000
	0018 2442 4242 4242 4242 425a 241a 0000
	0078 4442 4242 4478 4442 4242 4242 0000
	0018 2442 4240 2018 0402 4242 2418 0000
	007c 1010 1010 1010 1010 1010 1010 0000
	0042 4242 4242 4242 4242 4242 241a 0000
	0042 4242 4242 4242 2424 2424 2418 0000
	004a 4a4a 4a4a 4a4a 4a4a 4a4a 4a76 0000
	0042 4242 2424 2418 2424 2442 4242 0000
	0042 4242 4242 261a 0202 4242 2418 0000
	007e 0204 0408 0810 1020 2040 407e 0000
	0018 1010 1010 1010 1010 1010 1018 0000
	aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55
	0018 0808 0808 0808 0808 0808 0818 0000
	0010 2844 0000 0000 0000 0000 0000 0000
	0000 0000 0000 0000 0000 0000 007e 0000
	0010 1008 0000 0000 0000 0000 0000 0000
	0000 0000 003c 4202 023e 4242 423e 0000
	0000 0000 007c 4242 427c 4242 427c 0000
	0000 0000 003c 4240 4040 4040 423c 0000
	0000 0000 007c 4242 4242 4242 427c 0000
	0000 0000 003c 4242 427c 4040 423c 0000
	0000 0000 003e 4040 4070 4040 4040 0000
	0000 0000 003c 4242 423e 0202 423c 0000
	0000 0000 0042 4242 427e 4242 4242 0000
	0000 0000 0070 1010 1010 1010 1010 0000
	0000 0000 000e 0202 0202 4242 423c 0000
	0000 0000 0042 4244 4478 4444 4242 0000
	0000 0000 0010 1010 1010 1010 101c 0000
	0000 0000 0074 4a4a 4a4a 4a4a 4a4a 0000
	0000 0000 005c 6242 4242 4242 4242 0000
	0000 0000 003c 4242 4242 4242 423c 0000
	0000 0000 007c 4242 427c 4040 4040 0000
	0000 0000 003e 4242 423e 0202 0202 0000
	0000 0000 005c 6240 4040 4040 4040 0000
	0000 0000 003c 4240 403c 0202 423c 0000
	0000 0000 007c 1010 1010 1010 1010 0000
	0000 0000 0042 4242 4242 4242 463a 0000
	0000 0000 0042 4242 4224 2424 2418 0000
	0000 0000 004a 4a4a 4a4a 4a4a 4a74 0000
	0000 0000 0042 4224 2418 2424 4242 0000
	0000 0000 0042 4242 423e 0242 423c 0000
	0000 0000 007e 0202 0418 2040 407e 0000
	0008 1010 1010 1010 2010 1010 1008 0000
	0010 1010 1010 1010 1010 1010 1010 1000
	0010 0808 0808 0808 0408 0808 0810 0000
	007e 0000 0000 0000 0000 0000 0000 0000
	0000 0000 0000 183c 3c18 0000 0000 0000
	aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55
\ No newline at end of file

D etc/spectrum.c => etc/spectrum.c +0 -72
@@ 1,72 0,0 @@
Uint8 font[][8] = {
    {0x00, 0x3c, 0x46, 0x4a, 0x52, 0x62, 0x3c, 0x00}, /* 0 */
    {0x00, 0x18, 0x28, 0x08, 0x08, 0x08, 0x3e, 0x00}, /* 1 */
    {0x00, 0x3c, 0x42, 0x02, 0x3c, 0x40, 0x7e, 0x00}, /* 2 */
    {0x00, 0x3c, 0x42, 0x1c, 0x02, 0x42, 0x3c, 0x00}, /* 3 */
    {0x00, 0x08, 0x18, 0x28, 0x48, 0x7e, 0x08, 0x00}, /* 4 */
    {0x00, 0x7e, 0x40, 0x7c, 0x02, 0x42, 0x3c, 0x00}, /* 5 */
    {0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0x3c, 0x00}, /* 6 */
    {0x00, 0x7e, 0x02, 0x04, 0x08, 0x10, 0x10, 0x00}, /* 7 */
    {0x00, 0x3c, 0x42, 0x3c, 0x42, 0x42, 0x3c, 0x00}, /* 8 */
    {0x00, 0x3c, 0x42, 0x42, 0x3e, 0x02, 0x3c, 0x00}, /* 9 */
    {0x00, 0x00, 0x3c, 0x02, 0x3e, 0x42, 0x3e, 0x00}, /* a */
    {0x00, 0x20, 0x20, 0x3c, 0x22, 0x22, 0x3c, 0x00}, /* b */
    {0x00, 0x00, 0x1c, 0x20, 0x20, 0x20, 0x1c, 0x00}, /* c */
    {0x00, 0x04, 0x04, 0x3c, 0x44, 0x44, 0x3c, 0x00}, /* d */
    {0x00, 0x00, 0x38, 0x44, 0x78, 0x40, 0x3c, 0x00}, /* e */
    {0x00, 0x0c, 0x10, 0x18, 0x10, 0x10, 0x10, 0x00}, /* f */
    {0x00, 0x00, 0x38, 0x44, 0x44, 0x3c, 0x04, 0x38}, /* g */
    {0x00, 0x40, 0x40, 0x78, 0x44, 0x44, 0x44, 0x00}, /* h */
    {0x00, 0x08, 0x00, 0x18, 0x08, 0x08, 0x1c, 0x00}, /* i */
    {0x00, 0x08, 0x00, 0x08, 0x08, 0x08, 0x48, 0x30}, /* j */
    {0x00, 0x20, 0x20, 0x28, 0x30, 0x28, 0x24, 0x00}, /* k */
    {0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0c, 0x00}, /* l */
    {0x00, 0x00, 0x34, 0x2a, 0x2a, 0x2a, 0x2a, 0x00}, /* m */
    {0x00, 0x00, 0x78, 0x44, 0x44, 0x44, 0x44, 0x00}, /* n */
    {0x00, 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, 0x00}, /* o */
    {0x00, 0x00, 0x38, 0x44, 0x44, 0x78, 0x40, 0x40}, /* p */
    {0x00, 0x00, 0x38, 0x44, 0x44, 0x3c, 0x04, 0x06}, /* q */
    {0x00, 0x00, 0x2c, 0x30, 0x20, 0x20, 0x20, 0x00}, /* r */
    {0x00, 0x00, 0x38, 0x40, 0x38, 0x04, 0x78, 0x00}, /* s */
    {0x00, 0x10, 0x38, 0x10, 0x10, 0x10, 0x0c, 0x00}, /* t */
    {0x00, 0x00, 0x44, 0x44, 0x44, 0x44, 0x38, 0x00}, /* u */
    {0x00, 0x00, 0x44, 0x44, 0x28, 0x38, 0x10, 0x00}, /* v */
    {0x00, 0x00, 0x44, 0x54, 0x54, 0x54, 0x28, 0x00}, /* w */
    {0x00, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00}, /* x */
    {0x00, 0x00, 0x44, 0x44, 0x44, 0x3c, 0x04, 0x38}, /* y */
    {0x00, 0x00, 0x7c, 0x08, 0x10, 0x20, 0x7c, 0x00}, /* z */
    {0x00, 0x3c, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x00}, /* A */
    {0x00, 0x7c, 0x42, 0x7c, 0x42, 0x42, 0x7c, 0x00}, /* B */
    {0x00, 0x3c, 0x42, 0x40, 0x40, 0x42, 0x3c, 0x00}, /* C */
    {0x00, 0x78, 0x44, 0x42, 0x42, 0x44, 0x78, 0x00}, /* D */
    {0x00, 0x7e, 0x40, 0x7c, 0x40, 0x40, 0x7e, 0x00}, /* E */
    {0x00, 0x7e, 0x40, 0x40, 0x7c, 0x40, 0x40, 0x00}, /* F */
    {0x00, 0x3c, 0x42, 0x40, 0x4e, 0x42, 0x3c, 0x00}, /* G */
    {0x00, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x00}, /* H */
    {0x00, 0x3e, 0x08, 0x08, 0x08, 0x08, 0x3e, 0x00}, /* I */
    {0x00, 0x02, 0x02, 0x02, 0x42, 0x42, 0x3c, 0x00}, /* J */
    {0x00, 0x44, 0x48, 0x70, 0x48, 0x44, 0x42, 0x00}, /* K */
    {0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7e, 0x00}, /* L */
    {0x00, 0x42, 0x66, 0x5a, 0x42, 0x42, 0x42, 0x00}, /* M */
    {0x00, 0x42, 0x62, 0x52, 0x4a, 0x46, 0x42, 0x00}, /* N */
    {0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00}, /* O */
    {0x00, 0x7c, 0x42, 0x42, 0x7c, 0x40, 0x40, 0x00}, /* P */
    {0x00, 0x3c, 0x42, 0x42, 0x52, 0x4a, 0x3c, 0x02}, /* Q */
    {0x00, 0x7c, 0x42, 0x42, 0x7c, 0x44, 0x42, 0x00}, /* R */
    {0x00, 0x3c, 0x40, 0x3c, 0x02, 0x42, 0x3c, 0x00}, /* S */
    {0x00, 0x7e, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00}, /* T */
    {0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00}, /* U */
    {0x00, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00}, /* V */
    {0x00, 0x42, 0x42, 0x42, 0x5a, 0x66, 0x42, 0x00}, /* W */
    {0x00, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x00}, /* X */
    {0x00, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x00}, /* Y */
    {0x00, 0x7e, 0x04, 0x08, 0x10, 0x20, 0x7e, 0x00}, /* Z */
    {0x00, 0x5a, 0x24, 0x5a, 0x5a, 0x24, 0x5a, 0x00}, /* * */
    {0x00, 0x00, 0x24, 0x7e, 0x24, 0x7e, 0x24, 0x00}, /* # */
    {0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00}, /* . */
    {0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00}, /* : */
    {0x00, 0x00, 0x66, 0x5a, 0x24, 0x5a, 0x66, 0x00}, /* @ */
    {0x00, 0x00, 0x00, 0x32, 0x42, 0x4c, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x28, 0x00, 0x28, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
\ No newline at end of file

D etc/vga816.tal => etc/vga816.tal +0 -96
@@ 1,96 0,0 @@
@font ( vga816 )
	0000 0000 0000 0000 0000 0000 0000 0000
	0000 183c 3c3c 1818 1800 1818 0000 0000
	0066 6666 2400 0000 0000 0000 0000 0000
	0000 006c 6cfe 6c6c 6cfe 6c6c 0000 0000
	1818 7cc6 c2c0 7c06 0686 c67c 1818 0000 
	0000 0000 c2c6 0c18 3060 c686 0000 0000
	0000 386c 6c38 76dc cccc cc76 0000 0000
	0030 3030 6000 0000 0000 0000 0000 0000 
	0000 0c18 3030 3030 3030 180c 0000 0000
	0000 3018 0c0c 0c0c 0c0c 1830 0000 0000
	0000 0000 0066 3cff 3c66 0000 0000 0000
	0000 0000 0018 187e 1818 0000 0000 0000
	0000 0000 0000 0000 0018 1818 3000 0000 
	0000 0000 0000 00fe 0000 0000 0000 0000 
&marker
	0000 0000 0000 0000 0000 1818 0000 0000 
	0000 0000 0206 0c18 3060 c080 0000 0000
	0000 386c c6c6 d6d6 c6c6 6c38 0000 0000
	0000 1838 7818 1818 1818 187e 0000 0000
	0000 7cc6 060c 1830 60c0 c6fe 0000 0000
	0000 7cc6 0606 3c06 0606 c67c 0000 0000
	0000 0c1c 3c6c ccfe 0c0c 0c1e 0000 0000
	0000 fec0 c0c0 fc06 0606 c67c 0000 0000
	0000 3860 c0c0 fcc6 c6c6 c67c 0000 0000
	0000 fec6 0606 0c18 3030 3030 0000 0000
	0000 7cc6 c6c6 7cc6 c6c6 c67c 0000 0000
	0000 7cc6 c6c6 7e06 0606 0c78 0000 0000
	0000 0000 1818 0000 0018 1800 0000 0000
	0000 0000 1818 0000 0018 1830 0000 0000
	0000 0006 0c18 3060 3018 0c06 0000 0000
	0000 0000 007e 0000 7e00 0000 0000 0000
	0000 0060 3018 0c06 0c18 3060 0000 0000
	0000 7cc6 c60c 1818 1800 1818 0000 0000
	0000 007c c6c6 dede dedc c07c 0000 0000
	0000 1038 6cc6 c6fe c6c6 c6c6 0000 0000
	0000 fc66 6666 7c66 6666 66fc 0000 0000
	0000 3c66 c2c0 c0c0 c0c2 663c 0000 0000
	0000 f86c 6666 6666 6666 6cf8 0000 0000
	0000 fe66 6268 7868 6062 66fe 0000 0000
	0000 fe66 6268 7868 6060 60f0 0000 0000
	0000 3c66 c2c0 c0de c6c6 663a 0000 0000
	0000 c6c6 c6c6 fec6 c6c6 c6c6 0000 0000
	0000 3c18 1818 1818 1818 183c 0000 0000
	0000 1e0c 0c0c 0c0c cccc cc78 0000 0000
	0000 e666 666c 7878 6c66 66e6 0000 0000
	0000 f060 6060 6060 6062 66fe 0000 0000
	0000 c6ee fefe d6c6 c6c6 c6c6 0000 0000
	0000 c6e6 f6fe dece c6c6 c6c6 0000 0000
	0000 7cc6 c6c6 c6c6 c6c6 c67c 0000 0000
	0000 fc66 6666 7c60 6060 60f0 0000 0000
	0000 7cc6 c6c6 c6c6 c6d6 de7c 0c0e 0000
	0000 fc66 6666 7c6c 6666 66e6 0000 0000
	0000 7cc6 c660 380c 06c6 c67c 0000 0000
	0000 7e7e 5a18 1818 1818 183c 0000 0000
	0000 c6c6 c6c6 c6c6 c6c6 c67c 0000 0000
	0000 c6c6 c6c6 c6c6 c66c 3810 0000 0000
	0000 c6c6 c6c6 d6d6 d6fe ee6c 0000 0000
	0000 c6c6 6c7c 3838 7c6c c6c6 0000 0000
	0000 6666 6666 3c18 1818 183c 0000 0000
	0000 fec6 860c 1830 60c2 c6fe 0000 0000
	0000 3c30 3030 3030 3030 303c 0000 0000
	0000 0080 c0e0 7038 1c0e 0602 0000 0000
	0000 3c0c 0c0c 0c0c 0c0c 0c3c 0000 0000
	1038 6cc6 0000 0000 0000 0000 0000 0000
	0000 0000 0000 0000 0000 0000 00ff 0000
	3030 1800 0000 0000 0000 0000 0000 0000
	0000 0000 0078 0c7c cccc cc76 0000 0000
	0000 e060 6078 6c66 6666 667c 0000 0000
	0000 0000 007c c6c0 c0c0 c67c 0000 0000
	0000 1c0c 0c3c 6ccc cccc cc76 0000 0000
	0000 0000 007c c6fe c0c0 c67c 0000 0000
	0000 386c 6460 f060 6060 60f0 0000 0000
	0000 0000 0076 cccc cccc cc7c 0ccc 7800
	0000 e060 606c 7666 6666 66e6 0000 0000
	0000 1818 0038 1818 1818 183c 0000 0000
	0000 0606 000e 0606 0606 0606 6666 3c00
	0000 e060 6066 6c78 786c 66e6 0000 0000
	0000 3818 1818 1818 1818 183c 0000 0000
	0000 0000 00ec fed6 d6d6 d6c6 0000 0000
	0000 0000 00dc 6666 6666 6666 0000 0000
	0000 0000 007c c6c6 c6c6 c67c 0000 0000
	0000 0000 00dc 6666 6666 667c 6060 f000
	0000 0000 0076 cccc cccc cc7c 0c0c 1e00
	0000 0000 00dc 7666 6060 60f0 0000 0000
	0000 0000 007c c660 380c c67c 0000 0000
	0000 1030 30fc 3030 3030 361c 0000 0000
	0000 0000 00cc cccc cccc cc76 0000 0000
	0000 0000 0066 6666 6666 3c18 0000 0000
	0000 0000 00c6 c6d6 d6d6 fe6c 0000 0000
	0000 0000 00c6 6c38 3838 6cc6 0000 0000
	0000 0000 00c6 c6c6 c6c6 c67e 060c f800
	0000 0000 00fe cc18 3060 c6fe 0000 0000
	0000 0e18 1818 7018 1818 180e 0000 0000
	0000 1818 1818 0018 1818 1818 0000 0000
	0000 7018 1818 0e18 1818 1870 0000 0000
\ No newline at end of file

M src/main.tal => src/main.tal +46 -52
@@ 32,6 32,7 @@
%SET-LOCK  { DATA-LOCKS ++ STA } ( type cell* -- )
%GET-TYPE  { DATA-TYPES ++ LDA } ( cell* -- type )
%SET-TYPE  { DATA-TYPES ++ STA } ( type cell* -- )
%ADDPOS { ROT ADD STH ADD STHr } ( x y x2 y2 -- x y )

( devices )



@@ 167,10 168,10 @@ RTN
@on-console ( -> )

	.Console/read DEI
	[ #11 ] !~ ,&no-u JCN #00ff #00 ;edit-selection JSR2 &no-u
	[ #12 ] !~ ,&no-d JCN #0001 #00 ;edit-selection JSR2 &no-d
	[ #13 ] !~ ,&no-l JCN #ff00 #00 ;edit-selection JSR2 &no-l
	[ #14 ] !~ ,&no-r JCN #0100 #00 ;edit-selection JSR2 &no-r
	[ #11 ] !~ ,&no-u JCN #00ff #00 ;set-selection-mod JSR2 &no-u
	[ #12 ] !~ ,&no-d JCN #0001 #00 ;set-selection-mod JSR2 &no-d
	[ #13 ] !~ ,&no-l JCN #ff00 #00 ;set-selection-mod JSR2 &no-l
	[ #14 ] !~ ,&no-r JCN #0100 #00 ;set-selection-mod JSR2 &no-r
	DUP IS-CHAR-KEY #00 = ,&no-key JCN
		STHk .selection LDZ2 STHr ;set-cell JSR2
		&no-key


@@ 260,7 261,7 @@ BRK
	DUP #20 ! ,&no-space JCN
		( insert mode )
		.selection/insert LDZ #00 = ,&no-space-insert JCN
			#01 #00 #00 ;edit-selection JSR2 POP BRK
			#01 #00 #00 ;set-selection-mod JSR2 POP BRK
			&no-space-insert
		;toggle-play JSR2
		POP BRK


@@ 268,7 269,7 @@ BRK
	DUP #08 ! OVR #7f ! AND ,&no-backspace JCN
		( insert mode )
		.selection/insert LDZ #00 = ,&no-backspace-insert JCN
			#ff #00 #00 ;edit-selection JSR2
			#ff #00 #00 ;set-selection-mod JSR2
			&no-backspace-insert
		CHAR-DOT ;fill-selection JSR2
		POP BRK


@@ 277,7 278,7 @@ BRK
		.Controller/key DEI ;fill-selection JSR2
		( insert mode )
		.selection/insert LDZ #00 = ,&no-key-insert JCN
			#01 #00 #00 ;edit-selection JSR2
			#01 #00 #00 ;set-selection-mod JSR2
			&no-key-insert
		SET-STATE
		POP BRK


@@ 316,7 317,7 @@ BRK
	DUP #0f AND ,&mod STR
	#04 SFT #00 OVR #03 AND ;&vec ++ LDA ,&y STR
	#02 SFT #00 SWP #03 AND ;&vec ++ LDA ,&x STR
	[ LIT &x $1 ] [ LIT &y $1 ] [ LIT &mod $1 ] ;edit-selection JSR2
	[ LIT &x $1 ] [ LIT &y $1 ] [ LIT &mod $1 ] ;set-selection-mod JSR2

BRK
	&vec 00 ff 01 00


@@ 356,7 357,7 @@ BRK
		.Mouse/y DEI2 .grid/y1 LDZ2 -- 10// NIP
			;set-selection-to JSR2
	&end
	POP ,&last STR 
	POP ,&last STR

BRK



@@ 384,6 385,30 @@ BRK

( selection )

@set-selection-mod ( x y mod -- )

	DUP #04 ! ,&no-scale JCN
		POP
		.selection/to LDZ2 ADDPOS ;set-selection-to JSR2
		RTN
		&no-scale
	DUP #01 ! ,&no-drag JCN
		POP
		;cut-snarf JSR2
		STH2k .selection/from LDZ2 ADDPOS
		STH2r .selection/to LDZ2 ADDPOS
			;set-selection-range JSR2
		;paste-snarf JSR2
		RTN
		&no-drag
	POP
	( default )
	STH2k .selection/from LDZ2 ADDPOS
	STH2r .selection/to LDZ2 ADDPOS
		;set-selection-range JSR2

RTN

@set-selection-all ( -- )

	#0000 .grid/size LDZ2 ,set-selection-range JSR


@@ 402,14 427,22 @@ RTN

@set-selection-range ( from* to* -- )

	( clamp top-left )
	OVR2 #ff ! SWP #ff ! #0101 == ,&no-tl JCN
		POP2 POP2 RTN
		&no-tl
	( clamp bottom-right )
	OVR2 .grid/height LDZ < SWP .grid/width LDZ < #0101 == ,&no-br JCN
		POP2 POP2 RTN
		&no-br
	( from )
	SWP2 DUP2 .selection/from LDZ2 !! STH .selection/from STZ2
	( to )
	.selection/y1 LDZ MAX .grid/height LDZ DEC MIN STH
	.selection/x1 LDZ MAX .grid/width LDZ DEC MIN STHr
	DUP2 .selection/to LDZ2 !! STH .selection/to STZ2
	( TODO: skip redraw when unchanged )
	POP2r ( ADDr STHr #01 JCN RTN )
	( skip redraw when unchanged )
	ADDr STHr #01 JCN RTN
	( redraw )
	;draw-grid JSR2
	;draw-position JSR2


@@ 437,45 470,6 @@ RTN

RTN

@edit-selection ( x y mod -- )

	( set modifiers )
	DUP
		#01 AND #00 ! ;&drag STA
		#04 AND #00 ! 2* ;&scale STA
	STH2
	;&drag LDA #00 = ,&no-drag-start JCN
		;cut-snarf JSR2
		&no-drag-start
	( y )
	STHkr #00 = ,&no-ver JCN
		( clamp ) STHkr #ff = .selection/y1 [ ,&scale LDR + ] LDZ #00 = AND ,&no-ver JCN
		.selection/y1 [ ,&scale LDR + ] LDZ STHkr +
			.selection/y1 [ ,&scale LDR + ] STZ
		,&scale LDR ,&no-ver JCN
			.selection/y2 LDZ STHkr + .selection/y2 STZ
		&no-ver POPr
	( x )
	STHkr #00 = ,&no-hor JCN
		( clamp ) STHkr #ff = .selection/x1 [ ,&scale LDR + ] LDZ #00 = AND ,&no-hor JCN
		.selection/x1 [ ,&scale LDR + ] LDZ STHkr +
			.selection/x1 [ ,&scale LDR + ] STZ
		,&scale LDR ,&no-hor JCN
			.selection/x2 LDZ STHkr + .selection/x2 STZ
		&no-hor POPr
	( clamp result )
	.selection/to LDZ2 ;set-selection-to JSR2
	( drag )
	,&drag LDR #00 = ,&no-drag-end JCN
		;paste-snarf JSR2
		&no-drag-end
	( hide guide )
	.guide LDZ #00 = ,&no-guide JCN #00 .guide STZ &no-guide

RTN
	&drag $1
	&scale $1

@mod-speed ( mod -- )

	.timer/speed LDZ +


@@ 821,11 815,11 @@ RTN

	STH DUP
	#04 SFT GET-CHAR STHkr ,draw-char JSR
	#0f AND GET-CHAR STHr 
	#0f AND GET-CHAR STHr

@draw-char ( char color -- )

	STH #20 - TOS 10** ;font ++ STHr 
	STH #20 - TOS 10** ;font ++ STHr

@draw-sprite ( addr* color -- )