8x12 font, etc.
This commit is contained in:
parent
0ee815c6f6
commit
6ab913d6ac
|
@ -0,0 +1,256 @@
|
|||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 7e c3 81 a5 81 bd 99 c3 7e 00 00 00 00 00 00
|
||||
00 7e ff ff db ff c3 e7 ff 7e 00 00 00 00 00 00
|
||||
00 00 44 ee fe fe fe 7c 38 10 00 00 00 00 00 00
|
||||
00 10 38 7c fe fe 7c 38 10 00 00 00 00 00 00 00
|
||||
00 18 3c 3c ff e7 e7 18 18 7e 00 00 00 00 00 00
|
||||
00 18 3c 7e ff ff 7e 18 18 7e 00 00 00 00 00 00
|
||||
00 00 00 00 3c 7e 7e 3c 00 00 00 00 00 00 00 00
|
||||
ff ff ff ff c3 81 81 c3 ff ff ff ff 00 00 00 00
|
||||
00 00 3c 7e 66 42 42 66 7e 3c 00 00 00 00 00 00
|
||||
ff ff c3 81 99 bd bd 99 81 c3 ff ff 00 00 00 00
|
||||
00 3e 0e 3a 72 f8 cc cc cc 78 00 00 00 00 00 00
|
||||
00 3c 66 66 66 3c 18 7e 18 18 00 00 00 00 00 00
|
||||
00 1f 19 19 1f 18 18 78 f8 70 00 00 00 00 00 00
|
||||
00 7f 63 7f 63 63 63 67 e7 e6 c0 00 00 00 00 00
|
||||
00 00 18 db 7e e7 e7 7e db 18 00 00 00 00 00 00
|
||||
00 80 c0 e0 f8 fe f8 e0 c0 80 00 00 00 00 00 00
|
||||
00 02 06 0e 3e fe 3e 0e 06 02 00 00 00 00 00 00
|
||||
00 18 3c 7e 18 18 18 7e 3c 18 00 00 00 00 00 00
|
||||
00 66 66 66 66 66 00 00 66 66 00 00 00 00 00 00
|
||||
00 7f db db db 7b 1b 1b 1b 1b 00 00 00 00 00 00
|
||||
00 7e 63 30 3c 66 66 3c 0c c6 7e 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 fe fe fe 00 00 00 00 00 00
|
||||
00 18 3c 7e 18 18 18 7e 3c 18 7e 00 00 00 00 00
|
||||
00 18 3c 7e 18 18 18 18 18 18 00 00 00 00 00 00
|
||||
00 18 18 18 18 18 18 7e 3c 18 00 00 00 00 00 00
|
||||
00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 00 00
|
||||
00 00 00 30 60 fe 60 30 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 c0 c0 c0 fe 00 00 00 00 00 00 00 00
|
||||
00 00 00 24 66 ff 66 24 00 00 00 00 00 00 00 00
|
||||
00 00 10 10 38 38 7c 7c fe fe 00 00 00 00 00 00
|
||||
00 00 fe fe 7c 7c 38 38 10 10 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 30 78 78 78 30 30 00 30 30 00 00 00 00 00 00
|
||||
00 66 66 66 24 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 00 00
|
||||
30 30 7c c0 c0 78 0c 0c f8 30 30 00 00 00 00 00
|
||||
00 00 00 c4 cc 18 30 60 cc 8c 00 00 00 00 00 00
|
||||
00 70 d8 d8 70 fa de cc dc 76 00 00 00 00 00 00
|
||||
00 30 30 30 60 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 0c 18 30 60 60 60 30 18 0c 00 00 00 00 00 00
|
||||
00 60 30 18 0c 0c 0c 18 30 60 00 00 00 00 00 00
|
||||
00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 00 00
|
||||
00 00 00 18 18 7e 18 18 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 38 38 60 00 00 00 00 00
|
||||
00 00 00 00 00 fe 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 38 38 00 00 00 00 00 00
|
||||
00 00 02 06 0c 18 30 60 c0 80 00 00 00 00 00 00
|
||||
00 7c c6 ce de d6 f6 e6 c6 7c 00 00 00 00 00 00
|
||||
00 10 30 f0 30 30 30 30 30 fc 00 00 00 00 00 00
|
||||
00 78 cc cc 0c 18 30 60 cc fc 00 00 00 00 00 00
|
||||
00 78 cc 0c 0c 38 0c 0c cc 78 00 00 00 00 00 00
|
||||
00 0c 1c 3c 6c cc fe 0c 0c 1e 00 00 00 00 00 00
|
||||
00 fc c0 c0 c0 f8 0c 0c cc 78 00 00 00 00 00 00
|
||||
00 38 60 c0 c0 f8 cc cc cc 78 00 00 00 00 00 00
|
||||
00 fe c6 c6 06 0c 18 30 30 30 00 00 00 00 00 00
|
||||
00 78 cc cc cc 78 cc cc cc 78 00 00 00 00 00 00
|
||||
00 78 cc cc cc 7c 18 18 30 70 00 00 00 00 00 00
|
||||
00 00 00 38 38 00 00 38 38 00 00 00 00 00 00 00
|
||||
00 00 00 38 38 00 00 38 38 18 30 00 00 00 00 00
|
||||
00 0c 18 30 60 c0 60 30 18 0c 00 00 00 00 00 00
|
||||
00 00 00 00 7e 00 7e 00 00 00 00 00 00 00 00 00
|
||||
00 60 30 18 0c 06 0c 18 30 60 00 00 00 00 00 00
|
||||
00 78 cc 0c 18 30 30 00 30 30 00 00 00 00 00 00
|
||||
00 7c c6 c6 de de de c0 c0 7c 00 00 00 00 00 00
|
||||
00 30 78 cc cc cc fc cc cc cc 00 00 00 00 00 00
|
||||
00 fc 66 66 66 7c 66 66 66 fc 00 00 00 00 00 00
|
||||
00 3c 66 c6 c0 c0 c0 c6 66 3c 00 00 00 00 00 00
|
||||
00 f8 6c 66 66 66 66 66 6c f8 00 00 00 00 00 00
|
||||
00 fe 62 60 64 7c 64 60 62 fe 00 00 00 00 00 00
|
||||
00 fe 66 62 64 7c 64 60 60 f0 00 00 00 00 00 00
|
||||
00 3c 66 c6 c0 c0 ce c6 66 3e 00 00 00 00 00 00
|
||||
00 cc cc cc cc fc cc cc cc cc 00 00 00 00 00 00
|
||||
00 78 30 30 30 30 30 30 30 78 00 00 00 00 00 00
|
||||
00 1e 0c 0c 0c 0c cc cc cc 78 00 00 00 00 00 00
|
||||
00 e6 66 6c 6c 78 6c 6c 66 e6 00 00 00 00 00 00
|
||||
00 f0 60 60 60 60 62 66 66 fe 00 00 00 00 00 00
|
||||
00 c6 ee fe fe d6 c6 c6 c6 c6 00 00 00 00 00 00
|
||||
00 c6 c6 e6 f6 fe de ce c6 c6 00 00 00 00 00 00
|
||||
00 38 6c c6 c6 c6 c6 c6 6c 38 00 00 00 00 00 00
|
||||
00 fc 66 66 66 7c 60 60 60 f0 00 00 00 00 00 00
|
||||
00 38 6c c6 c6 c6 ce de 7c 0c 1e 00 00 00 00 00
|
||||
00 fc 66 66 66 7c 6c 66 66 e6 00 00 00 00 00 00
|
||||
00 78 cc cc c0 70 18 cc cc 78 00 00 00 00 00 00
|
||||
00 fc b4 30 30 30 30 30 30 78 00 00 00 00 00 00
|
||||
00 cc cc cc cc cc cc cc cc 78 00 00 00 00 00 00
|
||||
00 cc cc cc cc cc cc cc 78 30 00 00 00 00 00 00
|
||||
00 c6 c6 c6 c6 d6 d6 6c 6c 6c 00 00 00 00 00 00
|
||||
00 cc cc cc 78 30 78 cc cc cc 00 00 00 00 00 00
|
||||
00 cc cc cc cc 78 30 30 30 78 00 00 00 00 00 00
|
||||
00 fe ce 98 18 30 60 62 c6 fe 00 00 00 00 00 00
|
||||
00 3c 30 30 30 30 30 30 30 3c 00 00 00 00 00 00
|
||||
00 00 80 c0 60 30 18 0c 06 02 00 00 00 00 00 00
|
||||
00 3c 0c 0c 0c 0c 0c 0c 0c 3c 00 00 00 00 00 00
|
||||
10 38 6c c6 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00
|
||||
30 30 18 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 78 0c 7c cc cc 76 00 00 00 00 00 00
|
||||
00 e0 60 60 7c 66 66 66 66 dc 00 00 00 00 00 00
|
||||
00 00 00 00 78 cc c0 c0 cc 78 00 00 00 00 00 00
|
||||
00 1c 0c 0c 7c cc cc cc cc 76 00 00 00 00 00 00
|
||||
00 00 00 00 78 cc fc c0 cc 78 00 00 00 00 00 00
|
||||
00 38 6c 60 60 f8 60 60 60 f0 00 00 00 00 00 00
|
||||
00 00 00 00 76 cc cc cc 7c 0c cc 78 00 00 00 00
|
||||
00 e0 60 60 6c 76 66 66 66 e6 00 00 00 00 00 00
|
||||
00 18 18 00 78 18 18 18 18 7e 00 00 00 00 00 00
|
||||
00 0c 0c 00 3c 0c 0c 0c 0c cc cc 78 00 00 00 00
|
||||
00 e0 60 60 66 6c 78 6c 66 e6 00 00 00 00 00 00
|
||||
00 78 18 18 18 18 18 18 18 7e 00 00 00 00 00 00
|
||||
00 00 00 00 fc d6 d6 d6 d6 c6 00 00 00 00 00 00
|
||||
00 00 00 00 f8 cc cc cc cc cc 00 00 00 00 00 00
|
||||
00 00 00 00 78 cc cc cc cc 78 00 00 00 00 00 00
|
||||
00 00 00 00 dc 66 66 66 66 7c 60 f0 00 00 00 00
|
||||
00 00 00 00 76 cc cc cc cc 7c 0c 1e 00 00 00 00
|
||||
00 00 00 00 ec 6e 76 60 60 f0 00 00 00 00 00 00
|
||||
00 00 00 00 78 cc 60 18 cc 78 00 00 00 00 00 00
|
||||
00 00 20 60 fc 60 60 60 6c 38 00 00 00 00 00 00
|
||||
00 00 00 00 cc cc cc cc cc 76 00 00 00 00 00 00
|
||||
00 00 00 00 cc cc cc cc 78 30 00 00 00 00 00 00
|
||||
00 00 00 00 c6 c6 d6 d6 6c 6c 00 00 00 00 00 00
|
||||
00 00 00 00 c6 6c 38 38 6c c6 00 00 00 00 00 00
|
||||
00 00 00 00 66 66 66 66 3c 0c 18 f0 00 00 00 00
|
||||
00 00 00 00 fc 8c 18 60 c4 fc 00 00 00 00 00 00
|
||||
00 1c 30 30 60 c0 60 30 30 1c 00 00 00 00 00 00
|
||||
00 18 18 18 18 00 18 18 18 18 00 00 00 00 00 00
|
||||
00 e0 30 30 18 0c 18 30 30 e0 00 00 00 00 00 00
|
||||
00 73 da ce 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 10 38 6c c6 c6 fe 00 00 00 00 00 00 00
|
||||
00 78 cc cc c0 c0 c0 cc cc 78 30 60 00 00 00 00
|
||||
00 cc cc 00 cc cc cc cc cc 76 00 00 00 00 00 00
|
||||
0c 18 30 00 78 cc fc c0 cc 78 00 00 00 00 00 00
|
||||
30 78 cc 00 78 0c 7c cc cc 76 00 00 00 00 00 00
|
||||
00 cc cc 00 78 0c 7c cc cc 76 00 00 00 00 00 00
|
||||
c0 60 30 00 78 0c 7c cc cc 76 00 00 00 00 00 00
|
||||
38 6c 6c 38 f8 0c 7c cc cc 76 00 00 00 00 00 00
|
||||
00 00 00 00 78 cc c0 c0 cc 78 30 60 00 00 00 00
|
||||
30 78 cc 00 78 cc fc c0 c0 7c 00 00 00 00 00 00
|
||||
00 cc cc 00 78 cc fc c0 c0 7c 00 00 00 00 00 00
|
||||
c0 60 30 00 78 cc fc c0 c0 7c 00 00 00 00 00 00
|
||||
00 6c 6c 00 78 18 18 18 18 7e 00 00 00 00 00 00
|
||||
10 38 6c 00 78 18 18 18 18 7e 00 00 00 00 00 00
|
||||
60 30 18 00 78 18 18 18 18 7e 00 00 00 00 00 00
|
||||
00 cc 00 30 78 cc cc fc cc cc 00 00 00 00 00 00
|
||||
78 cc cc 78 78 cc cc fc cc cc 00 00 00 00 00 00
|
||||
0c 18 00 fc c4 c0 f8 c0 c4 fc 00 00 00 00 00 00
|
||||
00 00 00 00 fe 1b 7f d8 d8 ef 00 00 00 00 00 00
|
||||
00 3e 78 d8 d8 fe d8 d8 d8 de 00 00 00 00 00 00
|
||||
30 78 cc 00 78 cc cc cc cc 78 00 00 00 00 00 00
|
||||
00 cc cc 00 78 cc cc cc cc 78 00 00 00 00 00 00
|
||||
c0 60 30 00 78 cc cc cc cc 78 00 00 00 00 00 00
|
||||
30 78 cc 00 cc cc cc cc cc 76 00 00 00 00 00 00
|
||||
c0 60 30 00 cc cc cc cc cc 76 00 00 00 00 00 00
|
||||
00 66 66 00 66 66 66 66 3c 0c 18 f0 00 00 00 00
|
||||
00 cc 00 78 cc cc cc cc cc 78 00 00 00 00 00 00
|
||||
cc 00 cc cc cc cc cc cc cc 78 00 00 00 00 00 00
|
||||
00 00 00 00 78 cc dc ec cc 78 00 00 00 00 00 00
|
||||
3c 66 60 60 60 fc 60 60 c0 fe 00 00 00 00 00 00
|
||||
00 3a 6c ce d6 d6 d6 e6 6c b8 00 00 00 00 00 00
|
||||
00 00 00 00 00 c6 6c 38 6c c6 00 00 00 00 00 00
|
||||
0e 1b 18 18 7e 18 18 18 d8 70 00 00 00 00 00 00
|
||||
0c 18 30 00 78 0c 7c cc cc 76 00 00 00 00 00 00
|
||||
0c 18 30 00 78 18 18 18 18 7e 00 00 00 00 00 00
|
||||
0c 18 30 00 78 cc cc cc cc 78 00 00 00 00 00 00
|
||||
0c 18 30 00 cc cc cc cc cc 76 00 00 00 00 00 00
|
||||
00 76 dc 00 f8 cc cc cc cc cc 00 00 00 00 00 00
|
||||
76 dc 00 c6 e6 f6 de ce c6 c6 00 00 00 00 00 00
|
||||
00 78 cc cc 7e 00 fe 00 00 00 00 00 00 00 00 00
|
||||
00 78 cc cc 78 00 fe 00 00 00 00 00 00 00 00 00
|
||||
00 30 30 00 30 60 c0 c0 cc 78 00 00 00 00 00 00
|
||||
00 38 44 ba aa ba b2 aa 44 38 00 00 00 00 00 00
|
||||
00 00 00 00 00 fc 0c 0c 0c 00 00 00 00 00 00 00
|
||||
00 62 e6 6c 78 30 6e c3 86 0c 1f 00 00 00 00 00
|
||||
00 63 e6 6c 78 37 6f db b3 3f 03 00 00 00 00 00
|
||||
00 30 30 00 30 30 78 78 78 30 00 00 00 00 00 00
|
||||
00 00 00 00 33 66 cc cc 66 33 00 00 00 00 00 00
|
||||
00 00 00 00 cc 66 33 33 66 cc 00 00 00 00 00 00
|
||||
24 92 49 24 92 49 24 92 49 24 92 49 00 00 00 00
|
||||
55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 00 00 00 00
|
||||
6d db b6 6d db b6 6d db b6 6d db b6 00 00 00 00
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 00 00 00 00
|
||||
18 18 18 18 18 f8 18 18 18 18 18 18 00 00 00 00
|
||||
0c 18 00 30 78 cc cc fc cc cc 00 00 00 00 00 00
|
||||
78 cc 00 30 78 cc cc fc cc cc 00 00 00 00 00 00
|
||||
60 30 00 30 78 cc cc fc cc cc 00 00 00 00 00 00
|
||||
00 38 44 ba a2 a2 a2 ba 44 38 00 00 00 00 00 00
|
||||
66 66 66 66 e6 06 06 e6 66 66 66 66 00 00 00 00
|
||||
66 66 66 66 66 66 66 66 66 66 66 66 00 00 00 00
|
||||
00 00 00 00 fe 06 06 e6 66 66 66 66 00 00 00 00
|
||||
66 66 66 66 e6 06 06 fe 00 00 00 00 00 00 00 00
|
||||
00 30 30 78 cc c0 c0 cc 78 30 30 00 00 00 00 00
|
||||
cc cc cc cc 78 fc 30 fc 30 30 00 00 00 00 00 00
|
||||
00 00 00 00 00 f8 18 18 18 18 18 18 00 00 00 00
|
||||
18 18 18 18 18 1f 00 00 00 00 00 00 00 00 00 00
|
||||
18 18 18 18 18 ff 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 ff 18 18 18 18 18 18 00 00 00 00
|
||||
18 18 18 18 18 1f 18 18 18 18 18 18 00 00 00 00
|
||||
00 00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00
|
||||
18 18 18 18 18 ff 18 18 18 18 18 18 00 00 00 00
|
||||
00 76 dc 00 78 0c 7c cc cc 76 00 00 00 00 00 00
|
||||
76 dc 00 30 78 cc cc fc cc cc 00 00 00 00 00 00
|
||||
66 66 66 66 67 60 60 7f 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 7f 60 60 67 66 66 66 66 00 00 00 00
|
||||
66 66 66 66 e7 00 00 ff 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 ff 00 00 e7 66 66 66 66 00 00 00 00
|
||||
66 66 66 66 67 60 60 67 66 66 66 66 00 00 00 00
|
||||
00 00 00 00 ff 00 00 ff 00 00 00 00 00 00 00 00
|
||||
66 66 66 66 e7 00 00 e7 66 66 66 66 00 00 00 00
|
||||
00 00 00 00 00 c6 7c 6c 7c c6 00 00 00 00 00 00
|
||||
cc 30 d8 0c 06 7e c6 c6 c6 7c 00 00 00 00 00 00
|
||||
00 f8 6c 66 66 f6 66 66 6c f8 00 00 00 00 00 00
|
||||
78 cc 00 fc c4 c0 f8 c0 c4 fc 00 00 00 00 00 00
|
||||
00 cc 00 fc c4 c0 f8 c0 c4 fc 00 00 00 00 00 00
|
||||
60 30 00 fc c4 c0 f8 c0 c4 fc 00 00 00 00 00 00
|
||||
00 f0 30 30 30 fc 00 00 00 00 00 00 00 00 00 00
|
||||
18 30 00 78 30 30 30 30 30 78 00 00 00 00 00 00
|
||||
78 cc 00 78 30 30 30 30 30 78 00 00 00 00 00 00
|
||||
00 cc 00 78 30 30 30 30 30 78 00 00 00 00 00 00
|
||||
18 18 18 18 18 f8 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 1f 18 18 18 18 18 18 00 00 00 00
|
||||
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00
|
||||
00 00 00 00 00 00 ff ff ff ff ff ff 00 00 00 00
|
||||
00 18 18 18 18 00 18 18 18 18 00 00 00 00 00 00
|
||||
60 30 00 78 30 30 30 30 30 78 00 00 00 00 00 00
|
||||
ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 00
|
||||
18 30 00 78 cc cc cc cc cc 78 00 00 00 00 00 00
|
||||
00 78 cc cc d8 cc cc cc f8 c0 60 00 00 00 00 00
|
||||
78 cc 00 78 cc cc cc cc cc 78 00 00 00 00 00 00
|
||||
60 30 00 78 cc cc cc cc cc 78 00 00 00 00 00 00
|
||||
00 76 dc 00 78 cc cc cc cc 78 00 00 00 00 00 00
|
||||
76 dc 00 78 cc cc cc cc cc 78 00 00 00 00 00 00
|
||||
00 00 00 00 66 66 66 66 66 7b 60 c0 00 00 00 00
|
||||
00 00 e0 60 7c 66 66 7c 60 f0 00 00 00 00 00 00
|
||||
00 f0 60 7c 66 66 66 7c 60 f0 00 00 00 00 00 00
|
||||
18 30 00 cc cc cc cc cc cc 78 00 00 00 00 00 00
|
||||
78 cc 00 cc cc cc cc cc cc 78 00 00 00 00 00 00
|
||||
60 30 00 cc cc cc cc cc cc 78 00 00 00 00 00 00
|
||||
06 0c 18 00 66 66 66 66 3c 0c 18 f0 00 00 00 00
|
||||
18 30 00 cc cc cc 78 30 30 78 00 00 00 00 00 00
|
||||
00 fc 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
0c 18 30 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 fc 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 30 30 fc 30 30 00 fc 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 f8 00 00 f8 00 00 00 00 00 00 00
|
||||
e0 33 66 3c f8 37 6f db b3 3f 03 00 00 00 00 00
|
||||
00 7f db db db 7b 1b 1b 1b 1b 00 00 00 00 00 00
|
||||
00 7e 63 30 3c 66 66 3c 0c c6 7e 00 00 00 00 00
|
||||
00 00 30 30 00 fc 00 30 30 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 30 70 00 00 00 00
|
||||
00 3c 66 66 66 3c 00 00 00 00 00 00 00 00 00 00
|
||||
00 cc 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 18 00 00 00 00 00 00 00 00 00 00
|
||||
00 30 70 30 30 78 00 00 00 00 00 00 00 00 00 00
|
||||
00 78 0c 38 0c 78 00 00 00 00 00 00 00 00 00 00
|
||||
00 78 0c 18 30 7c 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 fc fc fc fc fc fc 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
7
term.py
7
term.py
|
@ -22,7 +22,7 @@ def main():
|
|||
|
||||
# fork with a new pty
|
||||
pid, fd = pty.fork()
|
||||
|
||||
|
||||
if pid == 0:
|
||||
# set TERM to something we can (mostly) handle
|
||||
env = dict(os.environ)
|
||||
|
@ -30,7 +30,8 @@ def main():
|
|||
os.execvpe('bash', ['bash'], env)
|
||||
else:
|
||||
# set the terminal size
|
||||
cols, rows = 79, 40
|
||||
###cols, rows = 79, 40
|
||||
cols, rows = 80, 24
|
||||
size = struct.pack("HHHH", rows, cols, 8, 8)
|
||||
fcntl.ioctl(fd, termios.TIOCSWINSZ, size)
|
||||
|
||||
|
@ -38,6 +39,6 @@ def main():
|
|||
os.dup2(fd, sys.stdin.fileno())
|
||||
os.dup2(os.dup(fd), sys.stdout.fileno())
|
||||
os.execvp('uxnemu', ['uxnemu', rom] + args[1:])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
224
term.tal
224
term.tal
|
@ -1,11 +1,16 @@
|
|||
( term.tal )
|
||||
|
||||
( TODO: )
|
||||
( 1. investigate femto/nano bugs )
|
||||
( 2. support attributes (inverse, bold, dim) )
|
||||
( 3. add more ansi control seqs )
|
||||
( 4. log ESC [ ? x ; ... $c )
|
||||
( 1. fix bugs )
|
||||
( 2. need to focus on line wrap )
|
||||
( 3. need to implement scrolling regions )
|
||||
( 4. need to be more rigorous about insert vs replace )
|
||||
( 5. need draw-line word, and need to use it more )
|
||||
( a. on delete, CSI-P )
|
||||
( b. on insert )
|
||||
( c. etc. )
|
||||
( 6. add more ansi control seqs )
|
||||
( 7. stop hard coding terminal size in both term.py and term.tal )
|
||||
|
||||
( ANSI sequences )
|
||||
( )
|
||||
|
@ -77,27 +82,27 @@
|
|||
|b0 @File2 [ &vect $2 &ok $2 &stat $2 &del $1 &append $1 &name $2 &len $2 &r $2 &w $2 ]
|
||||
|
||||
|0000
|
||||
@tint $1 ( draw mode. 01=regular, 04=inverted )
|
||||
@attr $1 ( 5 bits: RxxxBBFF )
|
||||
@dirty? $1 ( screen needs redraw? )
|
||||
@lastkey $1 ( last button press )
|
||||
@rows $2 ( height in characters )
|
||||
@cols $2 ( width in characters )
|
||||
@cur-x $2 ( cursor x: 0 <= cur-x < cols )
|
||||
@cur-y $2 ( cursor y: 0 <= cur-y < rows )
|
||||
@max-x $2 ( cols-1 )
|
||||
@max-y $2 ( rows-1 )
|
||||
@col-bytes $2 ( 2*cols )
|
||||
@debug $1 ( use debug log? )
|
||||
@lastmouse-x $2 ( last mouse x )
|
||||
@lastmouse-y $2 ( last mouse y )
|
||||
@lastmouse-st $1 ( last mouse press )
|
||||
@tint $1 ( draw mode. 01=regular, 04=inverted )
|
||||
@attr $1 ( 5 bits: RxxxBBFF )
|
||||
@dirty? $1 ( screen needs redraw? )
|
||||
@lastkey $1 ( last button press )
|
||||
@rows $2 ( height in characters )
|
||||
@cols $2 ( width in characters )
|
||||
@cur-x $2 ( cursor x: 0 <= cur-x < cols )
|
||||
@cur-y $2 ( cursor y: 0 <= cur-y < rows )
|
||||
@max-x $2 ( cols-1 )
|
||||
@max-y $2 ( rows-1 )
|
||||
@col-bytes $2 ( 2*cols )
|
||||
@debug $1 ( use debug log? )
|
||||
@lastmouse-x $2 ( last mouse x )
|
||||
@lastmouse-y $2 ( last mouse y )
|
||||
@lastmouse-st $1 ( last mouse press )
|
||||
|
||||
( terminal settings )
|
||||
@irm $1 ( 01: insert and move right, 00: replace and overwrite )
|
||||
@awm $1 ( 01: wrap chars at margin, 00: overwrite at margin )
|
||||
@tcem $1 ( 01: cursor is visible, 00: cursor is invisible )
|
||||
@paste $1 ( 01: bracketed paste is on, 00: is off )
|
||||
@irm $1 ( 01: insert and move right, 00: replace and overwrite )
|
||||
@awm $1 ( 01: wrap chars at margin, 00: overwrite at margin )
|
||||
@tcem $1 ( 01: cursor is visible, 00: cursor is invisible )
|
||||
@paste $1 ( 01: bracketed paste is on, 00: is off )
|
||||
|
||||
( TODO: detect when pasting text from varvara if possible )
|
||||
( to send CSI 200 ~ on start of paste, and CSI 201 ~ at end of paste )
|
||||
|
@ -107,9 +112,9 @@
|
|||
;meta .System/metadata DEO2
|
||||
;meta/name .System/title DEO2
|
||||
|
||||
( 80 cols x 24 rows )
|
||||
#0028 .rows STZ2
|
||||
#0050 .cols STZ2
|
||||
( 80 cols x 24 rows + 1 col for padding )
|
||||
#0018 .rows STZ2
|
||||
#0051 .cols STZ2
|
||||
|
||||
( set col-bytes, frequently needed )
|
||||
.cols LDZ2 DUP2 ADD2 .col-bytes STZ2
|
||||
|
@ -126,8 +131,8 @@
|
|||
#00 .lastkey STZ
|
||||
|
||||
( set screen height/width based on rows/cols )
|
||||
.rows LDZ2 #30 SFT2 #0010 ADD2 .Screen/h DEO2
|
||||
.cols LDZ2 #30 SFT2 #0010 ADD2 .Screen/w DEO2
|
||||
.cols LDZ2 #30 SFT2 ( width ) #0010 ADD2 .Screen/w DEO2
|
||||
.rows LDZ2 #000c MUL2 ( height ) #0010 ADD2 .Screen/h DEO2
|
||||
|
||||
( set colors )
|
||||
#07bf .System/r DEO2
|
||||
|
@ -135,19 +140,18 @@
|
|||
#07bf .System/b DEO2
|
||||
load-theme
|
||||
|
||||
#0008
|
||||
DUP2 .Screen/x DEO2
|
||||
.Screen/y DEO2
|
||||
( start cursor at origin - including border )
|
||||
#0008 ( border ) DUP2 .Screen/x DEO2 .Screen/y DEO2
|
||||
|
||||
( set starting tint: reverse=0, bg=0, fg=2 )
|
||||
#02 .attr STZ
|
||||
update-tint
|
||||
|
||||
( set initial modes )
|
||||
#01 .irm STZ ( insert and move right )
|
||||
#01 .awm STZ ( wrap at margin )
|
||||
#01 .tcem STZ ( show cursor )
|
||||
#00 .paste STZ ( bracketed paste is off )
|
||||
#01 .irm STZ ( insert and move right )
|
||||
#01 .awm STZ ( wrap at margin )
|
||||
#01 .tcem STZ ( show cursor )
|
||||
#00 .paste STZ ( bracketed paste is off )
|
||||
|
||||
( clear screen for initial draw )
|
||||
clear-screen
|
||||
|
@ -202,45 +206,45 @@
|
|||
|
||||
@clear-screen
|
||||
#01 .dirty? STZ
|
||||
LIT2r =cells ( [addr*] )
|
||||
#0000 &yloop ( y* [addr*] y* )
|
||||
#0000 &xloop ( y* x* [addr*] )
|
||||
#0220 STH2kr STA2 ( y* x* [addr*] )
|
||||
INC2r INC2r ( y* x* [addr+2*] )
|
||||
LIT2r =cells ( [addr*] )
|
||||
#0000 &yloop ( y* [addr*] y* )
|
||||
#0000 &xloop ( y* x* [addr*] )
|
||||
#0220 STH2kr STA2 ( y* x* [addr*] )
|
||||
INC2r INC2r ( y* x* [addr+2*] )
|
||||
INC2 DUP2 .cols LDZ2 ( y* x+1* x+1* cols* [addr+2*] )
|
||||
LTH2 ?&xloop ( y* x+1* [addr+2*] )
|
||||
POP2 ( y* [addr*] )
|
||||
INC2 DUP2 .rows LDZ2 ( y+1* y+1* rows* [addr*] )
|
||||
LTH2 ?&yloop ( y+1* [addr*] )
|
||||
POP2 POP2r JMP2r ( )
|
||||
LTH2 ?&xloop ( y* x+1* [addr+2*] )
|
||||
POP2 ( y* [addr*] )
|
||||
INC2 DUP2 .rows LDZ2 ( y+1* y+1* rows* [addr*] )
|
||||
LTH2 ?&yloop ( y+1* [addr*] )
|
||||
POP2 POP2r JMP2r ( )
|
||||
|
||||
@redraw
|
||||
.dirty? LDZ #00 EQU ?&done
|
||||
LIT2r =cells ( [addr*] )
|
||||
.rows LDZ2 #0000 DUP2 #0008 ADD2 .Screen/y DEO2
|
||||
.rows LDZ2 #0000 DUP2 #0008 ( border ) ADD2 .Screen/y DEO2
|
||||
&yloop
|
||||
.cols LDZ2 #0000 DUP2 #0008 ADD2 .Screen/x DEO2
|
||||
.cols LDZ2 #0000 DUP2 #0008 ( border ) ADD2 .Screen/x DEO2
|
||||
&xloop
|
||||
STH2kr LDA2 draw-cell
|
||||
.Screen/x DEI2k #0008 ADD2 ROT DEO2
|
||||
.Screen/x DEI2k #0008 ( width ) ADD2 ROT DEO2
|
||||
INC2 INC2r INC2r
|
||||
GTH2k ?&xloop
|
||||
POP2 POP2
|
||||
.Screen/y DEI2k #0008 ADD2 ROT DEO2
|
||||
.Screen/y DEI2k #000c ( height ) ADD2 ROT DEO2
|
||||
INC2
|
||||
GTH2k ?&yloop
|
||||
POP2 POP2 POP2r
|
||||
draw-cursor #00 .dirty? STZ &done BRK
|
||||
|
||||
@clear-cursor
|
||||
.cur-x LDZ2 #30 SFT2 #0008 ADD2 .Screen/x DEO2
|
||||
.cur-y LDZ2 #30 SFT2 #0008 ADD2 .Screen/y DEO2
|
||||
.cur-x LDZ2 #30 SFT2 ( width ) #0008 ( border ) ADD2 .Screen/x DEO2
|
||||
.cur-y LDZ2 #000c MUL2 ( height ) #0008 ( border ) ADD2 .Screen/y DEO2
|
||||
cur-addr LDA2
|
||||
!draw-cell
|
||||
|
||||
@draw-cursor
|
||||
.cur-x LDZ2 #30 SFT2 #0008 ADD2 .Screen/x DEO2
|
||||
.cur-y LDZ2 #30 SFT2 #0008 ADD2 .Screen/y DEO2
|
||||
.cur-x LDZ2 #30 SFT2 ( width ) #0008 ( border ) ADD2 .Screen/x DEO2
|
||||
.cur-y LDZ2 #000c MUL2 ( height ) #0008 ( border ) ADD2 .Screen/y DEO2
|
||||
cur-addr LDA2
|
||||
.tcem LDZ #00 EQU ?&skip
|
||||
SWP reverse-tint SWP
|
||||
|
@ -304,7 +308,7 @@
|
|||
@on-click-up ( unclick^ -> )
|
||||
POP JMP2r
|
||||
|
||||
@on-move
|
||||
( @on-move
|
||||
.Mouse/x DEI2 .lastmouse-x LDZ2 NEQ2 ?&redraw
|
||||
.Mouse/y DEI2 .lastmouse-y LDZ2 NEQ2 ?&redraw
|
||||
JMP2r
|
||||
|
@ -315,7 +319,7 @@
|
|||
#43 .Screen/sprite DEO
|
||||
.Mouse/x DEI2 .lastmouse-x STZ2
|
||||
.Mouse/y DEI2 .lastmouse-y STZ2
|
||||
JMP2r
|
||||
JMP2r )
|
||||
|
||||
@on-mouse ( -> )
|
||||
.lastmouse-st LDZ ( last )
|
||||
|
@ -512,15 +516,16 @@
|
|||
@exec1 ( addr* -> )
|
||||
STH2 #0001 read-arg-1 STH2r JSR2 BRK
|
||||
|
||||
( FIXME: hardcoded terminal size )
|
||||
@exec-status
|
||||
POP #0000 read-arg-1 #0006 NEQ2 ,&done
|
||||
#1b .Console/w DEO
|
||||
LIT "[ .Console/w DEO
|
||||
LIT "2 .Console/w DEO
|
||||
LIT "4 .Console/w DEO
|
||||
LIT "0 .Console/w DEO
|
||||
LIT "; .Console/w DEO
|
||||
LIT "7 .Console/w DEO
|
||||
LIT "9 .Console/w DEO
|
||||
LIT "8 .Console/w DEO
|
||||
LIT "0 .Console/w DEO
|
||||
LIT "R .Console/w DEO
|
||||
&done BRK
|
||||
|
||||
|
@ -629,9 +634,6 @@
|
|||
@start-charset ( c^ -> )
|
||||
POP ;on-read-skip .Console/vect DEO2 BRK
|
||||
|
||||
@start-g1-charset ( -> )
|
||||
;on-read-skip .Console/vect DEO2 BRK
|
||||
|
||||
@start-csi ( c^ -> )
|
||||
POP reset-args ;on-read-csi .Console/vect DEO2 BRK
|
||||
|
||||
|
@ -768,44 +770,44 @@
|
|||
#01 .dirty? STZ JMP2r ( )
|
||||
|
||||
@insert-n-spaces ( n* -> )
|
||||
STH2 ( [n*] )
|
||||
STH2 ( [n*] )
|
||||
.irm LDZ #00 EQU ?&replace ( [n*] )
|
||||
eol-addr #0001 SUB2 ( last* [n*] )
|
||||
STH2kr DUP2 ADD2 SUB2 ( start=last-2n* [n*] )
|
||||
cur-addr SWP2 ( end* start* [n*] )
|
||||
DUP2kr ADD2r ( end* start* [n* 2n*] )
|
||||
&loop ( end* pos* [n* 2n*] )
|
||||
LDA2k OVR2 STH2kr ADD2 ( end* pos* x* pos+2n* )
|
||||
STA2 #0002 SUB2 ( end* pos-2* [n* 2n*] )
|
||||
eol-addr #0001 SUB2 ( last* [n*] )
|
||||
STH2kr DUP2 ADD2 SUB2 ( start=last-2n* [n*] )
|
||||
cur-addr SWP2 ( end* start* [n*] )
|
||||
DUP2kr ADD2r ( end* start* [n* 2n*] )
|
||||
&loop ( end* pos* [n* 2n*] )
|
||||
LDA2k OVR2 STH2kr ADD2 ( end* pos* x* pos+2n* )
|
||||
STA2 #0002 SUB2 ( end* pos-2* [n* 2n*] )
|
||||
GTH2k #00 EQU ?&loop ( end* pos-2* [n* 2n*] )
|
||||
POP2 POP2 POP2r ( [n*] )
|
||||
&replace ( [n*] )
|
||||
LIT2r 0000 SWP2r SUB2r ( [-n*] )
|
||||
#0220 cur-addr ( 4220 cur* [-n*] )
|
||||
&loop2 ( 4220 pos* [-i*] )
|
||||
STA2k INC2 INC2 INC2r ( 4220 pos+2* [-i+1*] )
|
||||
POP2 POP2 POP2r ( [n*] )
|
||||
&replace ( [n*] )
|
||||
LIT2r 0000 SWP2r SUB2r ( [-n*] )
|
||||
#0220 cur-addr ( 4220 cur* [-n*] )
|
||||
&loop2 ( 4220 pos* [-i*] )
|
||||
STA2k INC2 INC2 INC2r ( 4220 pos+2* [-i+1*] )
|
||||
ORAkr STHr ?&loop2 ( 4220 pos+2* [-i+1*] )
|
||||
POP2 POP2 POP2r ( )
|
||||
#01 .dirty? STZ JMP2r ( )
|
||||
POP2 POP2 POP2r ( )
|
||||
#01 .dirty? STZ JMP2r ( )
|
||||
|
||||
( starts with cursor pos )
|
||||
@delete-n-chars ( n* -> )
|
||||
DUP2 ADD2 STH2 ( [i=2n*] )
|
||||
eol-addr STH2kr SUB2 ( limit=eol-i* [i*] )
|
||||
cur-addr ( limit* start* [i*] )
|
||||
&loop ( limit* pos* [n*] )
|
||||
DUP2 STH2kr ADD2 LDA2k ( limit* pos* pos+i* x* [i*] )
|
||||
#0220 ROT2 STA2 ( limit* pos* x* [i*] ; pos+i<-4220 )
|
||||
OVR2 STA2 INC2 INC2 ( limit* pos+2* [i*] ; pos<-x )
|
||||
GTH2k ?&loop ( limit* pos+2* [i*] )
|
||||
POP2 POP2 POP2r ( )
|
||||
#01 .dirty? STZ JMP2r ( )
|
||||
DUP2 ADD2 STH2 ( [i=2n*] )
|
||||
eol-addr STH2kr SUB2 ( limit=eol-i* [i*] )
|
||||
cur-addr ( limit* start* [i*] )
|
||||
&loop ( limit* pos* [n*] )
|
||||
DUP2 STH2kr ADD2 LDA2k ( limit* pos* pos+i* x* [i*] )
|
||||
#0220 ROT2 STA2 ( limit* pos* x* [i*] ; pos+i<-4220 )
|
||||
OVR2 STA2 INC2 INC2 ( limit* pos+2* [i*] ; pos<-x )
|
||||
GTH2k ?&loop ( limit* pos+2* [i*] )
|
||||
POP2 POP2 POP2r ( )
|
||||
#01 .dirty? STZ JMP2r ( )
|
||||
|
||||
( starts below current line )
|
||||
@delete-n-lines ( n* -> )
|
||||
.col-bytes LDZ2 MUL2 STH2 ( [n*] )
|
||||
limit-addr STH2kr SUB2 ( limit* [n*] )
|
||||
eol-addr ( limit* start* [n*] )
|
||||
.col-bytes LDZ2 MUL2 STH2 ( [n*] )
|
||||
limit-addr STH2kr SUB2 ( limit* [n*] )
|
||||
eol-addr ( limit* start* [n*] )
|
||||
!delete-n-chars/loop
|
||||
|
||||
@scroll
|
||||
|
@ -819,11 +821,11 @@
|
|||
#01 .dirty? STZ
|
||||
draw-cursor BRK
|
||||
|
||||
( 0 <= index < 128 )
|
||||
( ( 0 <= index < 128 )
|
||||
@load-tile ( index^ -> )
|
||||
#00 SWP #30 SFT2
|
||||
#00 SWP #30 SFT2 ( size in bytes )
|
||||
;ascii ADD2 .Screen/addr DEO2
|
||||
JMP2r
|
||||
JMP2r )
|
||||
|
||||
( bits: Rx xx FF BB )
|
||||
( - R: reversed [0=normal, 1=reversed] )
|
||||
|
@ -842,14 +844,22 @@
|
|||
ORA ( res=40|x>>2|(x&3)<<2 )
|
||||
JMP2r ( res^ )
|
||||
|
||||
( to draw a 12 pixel high character we first draw the top )
|
||||
( 8 pixels and then we draw the bottom 8 pixels; there is )
|
||||
( an overlap of 4 pixels. we do this to avoid drawing too )
|
||||
( low which might overwrite characters on the next line. )
|
||||
|
||||
( cell* = tint^ c^ )
|
||||
@draw-cell ( cell* -> )
|
||||
SWP STH ( c^ [tint^] )
|
||||
DUP #80 LTH ?&draw ( c^ [tint^] )
|
||||
#80 SUB ( c-80^ [tint^] )
|
||||
&draw load-tile ( [tint^] )
|
||||
STHr .Screen/sprite DEO ( )
|
||||
JMP2r ( )
|
||||
SWP STH ( c^ [tint^] )
|
||||
#00 SWP #40 SFT2 ;cp437 ADD2 ( addr* [tint^] )
|
||||
.Screen/addr DEO2k ( addr* s^ [tint^] )
|
||||
STHkr .Screen/sprite DEO ( addr* s^ [tint^] )
|
||||
.Screen/y DEI2k #0004 ADD2 ROT DEO2 ( addr* s^ [tint^] )
|
||||
STH #0004 ADD2 STHr DEO2 ( [tint^] )
|
||||
STHr .Screen/sprite DEO ( )
|
||||
.Screen/y DEI2k #0004 SUB2 ROT DEO2 ( )
|
||||
JMP2r ( )
|
||||
|
||||
@next-arg ( c^ -> )
|
||||
POP
|
||||
|
@ -857,9 +867,9 @@
|
|||
;args/pos LDA2k INC2 INC2 SWP2 STA2 BRK
|
||||
|
||||
@add-to-arg ( c^ -> )
|
||||
LIT "0 SUB LITr 00 STH ( [digit*] )
|
||||
;args/pos LDA2 LDA2k ( addr* value* [digit*] )
|
||||
#000a MUL2 STH2r ADD2 ( addr* value*10+digit )
|
||||
LIT "0 SUB LITr 00 STH ( [digit*] )
|
||||
;args/pos LDA2 LDA2k ( addr* value* [digit*] )
|
||||
#000a MUL2 STH2r ADD2 ( addr* value*10+digit )
|
||||
SWP2 STA2 BRK
|
||||
|
||||
@read-arg-1 ( default* -> n* )
|
||||
|
@ -891,9 +901,10 @@
|
|||
( paste buffer )
|
||||
@paste-buf $100
|
||||
|
||||
( 128 1-bit 8x8 tiles for ASCII 7-bit characters )
|
||||
@ascii
|
||||
~chr/ascii.tal
|
||||
( 256 chars x 2 tiles/char x 8 bytes/tile = 4096 bytes )
|
||||
( second tile only uses top 50% )
|
||||
@cp437
|
||||
~cp437.tal
|
||||
|
||||
@meta 00
|
||||
&name "determ 0a
|
||||
|
@ -904,5 +915,4 @@
|
|||
( device mask ) 41 0d07
|
||||
|
||||
( store tint+char for each screen position )
|
||||
@cells $1900 ( 80 x 40 x 2 )
|
||||
|
||||
@cells
|
||||
|
|
Loading…
Reference in New Issue