monospace.tal (4579B)
1 ( GUI Monospace ) 2 3 |00 @System &vector $2 &wst $1 &rst $1 &eaddr $2 &ecode $1 &pad $1 &r $2 &g $2 &b $2 &debug $1 &halt $1 4 |20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 5 6 ( variables ) 7 8 |0000 9 10 ( program ) 11 12 |0100 13 14 ( theme ) 15 #f05d .System/r DEO2 16 #f0cd .System/g DEO2 17 #f0ad .System/b DEO2 18 19 ( draw hello world ) 20 #0010 .Screen/x DEO2 21 #0010 .Screen/y DEO2 22 ;hello-txt #01 ;draw-uf1 JSR2 23 24 ( draw long text ) 25 #0010 .Screen/x DEO2 26 #0030 .Screen/y DEO2 27 ;long-txt #02 ;draw-uf1-linebreaks JSR2 28 29 BRK 30 31 @draw-uf1 ( string* color -- ) 32 33 #01 .Screen/auto DEO 34 STH 35 &while 36 ( get sprite ) LDAk #20 SUB #00 SWP #30 SFT2 ;font ADD2 .Screen/addr DEO2 37 ( draw ) STHkr .Screen/sprite DEO 38 INC2 LDAk ,&while JCN 39 POPr 40 POP2 41 42 JMP2r 43 44 @draw-uf1-linebreaks ( string* color -- ) 45 46 .Screen/x DEI2 ,&anchor STR2 47 #01 .Screen/auto DEO 48 STH 49 &while 50 LDAk #0a NEQ ,&no-lb JCN 51 ( rewind ) LIT2 &anchor $2 .Screen/x DEO2 52 ( skip line ) .Screen/y DEI2k #0008 ADD2 ROT DEO2 53 ,&end JMP 54 &no-lb 55 ( get sprite ) LDAk #20 SUB #00 SWP #30 SFT2 ;font ADD2 .Screen/addr DEO2 56 ( draw ) STHkr .Screen/sprite DEO 57 &end 58 INC2 LDAk ,&while JCN 59 POPr 60 POP2 61 62 JMP2r 63 64 @hello-txt "Hello 20 "Uxn! $1 65 66 @long-txt 67 5275 7374 6963 2043 6f6d 7075 7469 6e67 68 2072 6566 6572 7320 746f 2074 6865 2063 69 6f6e 7374 7275 6374 696f 6e20 0a6f 6620 70 6361 6c63 756c 6174 696f 6e20 6d61 6368 71 696e 6573 2075 7369 6e67 2070 7265 2d69 72 6e64 7573 7472 6961 6c20 0a6f 7220 6576 73 656e 2070 7265 2d68 6973 746f 7269 6320 74 7465 6368 6e6f 6c6f 6779 2e20 0a0a 4974 75 2072 6576 6561 6c73 2061 2068 6973 746f 76 7279 206f 6620 636f 6d70 7574 696e 6720 77 6173 2074 6865 200a 7061 7374 696d 6520 78 6f66 2064 696c 6574 7461 6e74 6573 2c20 79 616d 6174 6575 7220 7363 6965 6e74 6973 80 7473 0a61 6e64 2074 6162 756c 6174 6f72 81 7320 7768 6f20 636f 6e73 7472 7563 7420 82 6d61 6368 696e 6573 2074 6f20 0a6d 616e 83 6970 756c 6174 6520 6162 7374 7261 6374 84 2073 796d 626f 6c73 2077 6974 6820 6e6f 85 2070 7261 6374 6963 616c 200a 6170 706c 86 6963 6174 696f 6e2e 2041 7320 7468 6573 87 6520 6d61 6368 696e 6573 2061 7265 2067 88 656e 6572 616c 6c79 200a 6c65 7373 2065 89 6666 6963 6965 6e74 2074 6861 6e20 636f 90 6e76 656e 7469 6f6e 616c 2070 656e 6369 91 6c20 616e 6420 0a70 6170 6572 2063 6f6d 92 7075 7461 7469 6f6e 2c20 7468 6579 2061 93 6c6c 7564 6520 746f 2061 206d 6f72 6520 94 0a65 7069 6375 7265 616e 2070 7261 6374 95 6963 6520 6f66 2063 6f6d 7075 7469 6e67 96 2066 6f72 2070 6c65 6173 7572 6520 0a72 97 6174 6865 7220 7468 616e 2070 726f 6475 98 6374 696f 6e2e 99 100 @font ( bbcmicro ) 101 0000 0000 0000 0000 1818 1818 1800 1800 102 6c6c 6c00 0000 0000 3636 7f36 7f36 3600 103 0c3f 683e 0b7e 1800 6066 0c18 3066 0600 104 386c 6c38 6d66 3b00 0c18 3000 0000 0000 105 0c18 3030 3018 0c00 3018 0c0c 0c18 3000 106 0018 7e3c 7e18 0000 0018 187e 1818 0000 107 0000 0000 0018 1830 0000 007e 0000 0000 108 0000 0000 0018 1800 0006 0c18 3060 0000 109 3c66 6e7e 7666 3c00 1838 1818 1818 7e00 110 3c66 060c 1830 7e00 3c66 061c 0666 3c00 111 0c1c 3c6c 7e0c 0c00 7e60 7c06 0666 3c00 112 1c30 607c 6666 3c00 7e06 0c18 3030 3000 113 3c66 663c 6666 3c00 3c66 663e 060c 3800 114 0000 1818 0018 1800 0000 1818 0018 1830 115 0c18 3060 3018 0c00 0000 7e00 7e00 0000 116 3018 0c06 0c18 3000 3c66 0c18 1800 1800 117 3c66 6e6a 6e60 3c00 3c66 667e 6666 6600 118 7c66 667c 6666 7c00 3c66 6060 6066 3c00 119 786c 6666 666c 7800 7e60 607c 6060 7e00 120 7e60 607c 6060 6000 3c66 606e 6666 3c00 121 6666 667e 6666 6600 7e18 1818 1818 7e00 122 3e0c 0c0c 0c6c 3800 666c 7870 786c 6600 123 6060 6060 6060 7e00 6377 7f6b 6b63 6300 124 6666 767e 6e66 6600 3c66 6666 6666 3c00 125 7c66 667c 6060 6000 3c66 6666 6a6c 3600 126 7c66 667c 6c66 6600 3c66 603c 0666 3c00 127 7e18 1818 1818 1800 6666 6666 6666 3c00 128 6666 6666 663c 1800 6363 6b6b 7f77 6300 129 6666 3c18 3c66 6600 6666 663c 1818 1800 130 7e06 0c18 3060 7e00 7c60 6060 6060 7c00 131 0060 3018 0c06 0000 3e06 0606 0606 3e00 132 183c 6642 0000 0000 0000 0000 0000 00ff 133 1c36 307c 3030 7e00 0000 3c06 3e66 3e00 134 6060 7c66 6666 7c00 0000 3c66 6066 3c00 135 0606 3e66 6666 3e00 0000 3c66 7e60 3c00 136 1c30 307c 3030 3000 0000 3e66 663e 063c 137 6060 7c66 6666 6600 1800 3818 1818 3c00 138 1800 3818 1818 1870 6060 666c 786c 6600 139 3818 1818 1818 3c00 0000 367f 6b6b 6300 140 0000 7c66 6666 6600 0000 3c66 6666 3c00 141 0000 7c66 667c 6060 0000 3e66 663e 0607 142 0000 6c76 6060 6000 0000 3e60 3c06 7c00 143 3030 7c30 3030 1c00 0000 6666 6666 3e00 144 0000 6666 663c 1800 0000 636b 6b7f 3600 145 0000 663c 183c 6600 0000 6666 663e 063c 146 0000 7e0c 1830 7e00 0c18 1870 1818 0c00 147 1818 1800 1818 1800 3018 180e 1818 3000 148 316b 4600 0000 0000 ffff ffff ffff ffff