Home » Archimedes archive » Archimedes World » AW-1995-01-Disc1.adf » Disk1Jan95 » !AWJan95/Goodies/DrawBasic/!DrawBasic/Resources/Fonts
!AWJan95/Goodies/DrawBasic/!DrawBasic/Resources/Fonts
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1995-01-Disc1.adf » Disk1Jan95 |
Filename: | !AWJan95/Goodies/DrawBasic/!DrawBasic/Resources/Fonts |
Read OK: | ✔ |
File size: | 0DFD bytes |
Load address: | 0000 |
Exec address: | 0000 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Archimedes archive » Archimedes World » AW-1994-12-Disc1.adf » Disk1Dec94 » !AWDec94/Goodies/DrawBasic/!DrawBasic/Resources/Fonts
- Archimedes archive » Archimedes World » AW-1995-01-Disc1.adf » Disk1Jan95 » !AWJan95/Goodies/DrawBasic/!DrawBasic/Resources/Fonts
File contents
1REM >DrawBasic:Resources.Fonts 2REM ********* 3REM 4REM 1 FONTS 5REM 6REM ********* 7 8DEF FNFontSize=!(HIMEM+84) 9DEF FNFontColour=!(HIMEM+88) 10DEF FNCurrentFont=!(HIMEM+92) 11 12DEF PROCFontSize(font_size%) 13!(HIMEM+84)=font_size%*640 14ENDPROC 15 16DEF PROCTextColour(colour%) 17IF ABS(colour%)<16 THEN colour%=FNDesktopColour(colour%) 18!(HIMEM+88)=colour% 19SYS "ColourTrans_SetFontColours",,FNDesktopColour(0),colour%,14 20ENDPROC 21 22DEF PROCCurrentFont(font%) 23!(HIMEM+92)=font% 24ENDPROC 25 26DEF PROCFont(font$,font_size%) 27LOCAL _addr%,_font%,_font$,_end% 28 _addr%=(!(HIMEM+8)+40) : _end%=_addr%+(_addr%!4) : _addr%+=8 29REPEAT 30 _font%=_addr%?0 31 _addr%+=1 : _font$="" 32 WHILE _addr%?0<>0 : _font$+=CHR$(_addr%?0) : _addr%+=1 : ENDWHILE 33 _addr%+=1 34UNTIL (_addr%?0)=0 OR _addr%>=_end% OR font$=_font$ 35IF font$=_font$ THEN PROCCurrentFont(_font%) ELSE PROCAddFont(font$) 36!(HIMEM+84)=font_size%*640 37_point_size%=16*FNFontSize/640 38SYS "Font_FindFont",,font$,_point_size%,_point_size% 39ENDPROC 40 41DEF PROCAddFont(font$) 42 REM ------------------------------------------ 43 REM 44 REM Adds the font to the current list of fonts 45 REM Making it the current font 46 REM 47 REM ------------------------------------------ 48 LOCAL _Fonts%,_length%,_end%,_pointer%,_noofzeros%,_bytes%,_font% 49 _Fonts%=!(HIMEM+8) : _Fonts%+=40 50 _length%=_Fonts%!4 : _end%=_Fonts%+_length% 51 REPEAT : _pointer%-=1 : UNTIL _end%?_pointer%<>0 52 _noofzeros%=_pointer%+2 53 REPEAT : _pointer%-=1 : UNTIL _end%?_pointer%=0 54 _font%=_end%?(_pointer%+1) : _font%+=1 : PROCCurrentFont(_font%) 55 font$=CHR$_font%+font$+STRING$(4,CHR$0) 56 _bytes%=LENfont$+_noofzeros% 57 font$=LEFT$(font$,LENfont$-(_bytes% MOD 4)) 58 PROCMoveMemory(_end%,_bytes% DIV 4) 59 $(_end%+_noofzeros%)=font$ 60 _Fonts%!4+=_bytes%-(_bytes% MOD 4) 61 ENDPROC 62 63REM ********* 64REM 65REM 2 Text 66REM 67REM ********* 68 69DEF PROCAddText(text$,x,y) 70 PROCDraw_AddWord(FNFontColour) : REM text colour 71 PROCDraw_AddWord(0) : REM text background colour hint 72 PROCDraw_AddWord(FNCurrentFont): REM text style 73 PROCDraw_AddWord(FNFontSize) 74 PROCDraw_AddWord(FNFontSize) 75 PROCDraw_AddCoords(x,y) 76 PROCDraw_AddString(HIMEM,text$+CHR$0) 77ENDPROC 78 79 80DEF PROCPrint(text$,x,y) 81 LOCAL _bytes% ,_x%,_y% : _bytes%=24+28+LENtext$+1 82 IF _bytes%MOD4<>0 THEN _bytes%+=4-(_bytes%MOD4) 83 PROCDraw_AddWord(1) : REM Object type 1 84 PROCDraw_AddWord(_bytes%) : REM Object size 85 PROCDraw_AddWord(-1<<30) 86 PROCDraw_AddWord(-1<<30) 87 PROCDraw_AddWord(1<<30) 88 PROCDraw_AddWord(1<<30) 89 PROCAddText(text$,x,y) 90 _x%=FNDraw_X(x):_y%=FNDraw_Y(y) 91 SYS "Font_Paint",,text$,%10000,(!(HIMEM+112)+_x%)>>8,(!(HIMEM+116)+_y%)>>8 92ENDPROC 93 94DEF PROCAnglePrint(text$,x,y,angle) 95LOCAL _text% : _text%=FNText(text$,x,y) 96PROCRotate(_text%,x,y,angle) 97ENDPROC 98 99DEF FNAnglePrint(text$,x,y,angle) 100LOCAL _text%,_handle% : _text%=FNText(text$,x,y) 101_handle%=FNRotate(_text%,x,y,angle) 102=_handle% 103 104DEF FNText(text$,x,y) 105LOCAL _bytes%,_handle%,_transform% : _bytes%=24+28+LENtext$+1+28 106 _handle%=!HIMEM 107 IF _bytes%MOD4<>0 THEN _bytes%+=4-(_bytes%MOD4) 108 PROCDraw_AddWord(12) : REM Object type 1 109 PROCDraw_AddWord(_bytes%) : REM Object size 110 PROCDraw_AddWord(-2^30) 111 PROCDraw_AddWord(-2^30) 112 PROCDraw_AddWord(1<<30) 113 PROCDraw_AddWord(1<<30) 114 _transform%=!HIMEM 115 PROCDraw_AddWord(1<<16) : REM Transform 116 PROCDraw_AddWord(0) : 117 PROCDraw_AddWord(0) : 118 PROCDraw_AddWord(1<<16) : 119 PROCDraw_AddWord(0) : 120 PROCDraw_AddWord(0) : 121 PROCDraw_AddWord(0) : REM FontFlags 122 PROCAddText(text$,x,y) 123=_handle% 124 125 126DEF FNPrint(text$,x,y) 127LOCAL _handle% : _handle%=FNText(text$,x,y) 128 SYS "Font_Paint",,text$,%10000,(!(HIMEM+112)+FNDraw_X(x))>>8,(!(HIMEM+116)+FNDraw_Y(y))>>8,,_handle%+24 129=_handle% 130 131 132 133
� >DrawBasic:Resources.Fonts � ********* � � 1 FONTS � � ********* � �FontSize=!(�+84) � �FontColour=!(�+88) � �CurrentFont=!(�+92) � �FontSize(font_size%) !(�+84)=font_size%*640 � � �TextColour(colour%) 5� �(colour%)<16 � colour%=�DesktopColour(colour%) !(�+88)=colour% Aș "ColourTrans_SetFontColours",,�DesktopColour(0),colour%,14 � � �CurrentFont(font%) !(�+92)=font% � � �Font(font$,font_size%) � _addr%,_font%,_font$,_end% = _addr%=(!(�+8)+40) : _end%=_addr%+(_addr%!4) : _addr%+=8 � _font%=_addr%?0 _addr%+=1 : _font$="" ; ȕ _addr%?0<>0 : _font$+=�(_addr%?0) : _addr%+=1 : � ! _addr%+=1 "1� (_addr%?0)=0 � _addr%>=_end% � font$=_font$ #;� font$=_font$ � �CurrentFont(_font%) � �AddFont(font$) $!(�+84)=font_size%*640 %!_point_size%=16*�FontSize/640 &8ș "Font_FindFont",,font$,_point_size%,_point_size% '� ( )� �AddFont(font$) *1 � ------------------------------------------ + � ,1 � Adds the font to the current list of fonts -! � Making it the current font . � /1 � ------------------------------------------ 0B � _Fonts%,_length%,_end%,_pointer%,_noofzeros%,_bytes%,_font% 1! _Fonts%=!(�+8) : _Fonts%+=40 21 _length%=_Fonts%!4 : _end%=_Fonts%+_length% 3, � : _pointer%-=1 : � _end%?_pointer%<>0 4 _noofzeros%=_pointer%+2 5+ � : _pointer%-=1 : � _end%?_pointer%=0 6B _font%=_end%?(_pointer%+1) : _font%+=1 : �CurrentFont(_font%) 7 font$=�_font%+font$+�4,�0) 8 _bytes%=�font$+_noofzeros% 9' font$=�font$,�font$-(_bytes% � 4)) :# �MoveMemory(_end%,_bytes% � 4) ; $(_end%+_noofzeros%)=font$ <& _Fonts%!4+=_bytes%-(_bytes% � 4) = � > ?� ********* @� A� 2 Text B� C� ********* D E� �AddText(text$,x,y) F0 �Draw_AddWord(�FontColour) : � text colour G@ �Draw_AddWord(0) : � text background colour hint H. �Draw_AddWord(�CurrentFont): � text style I �Draw_AddWord(�FontSize) J �Draw_AddWord(�FontSize) K �Draw_AddCoords(x,y) L! �Draw_AddString(�,text$+�0) M� N O P� �Print(text$,x,y) Q0 � _bytes% ,_x%,_y% : _bytes%=24+28+�text$+1 R, � _bytes%�4<>0 � _bytes%+=4-(_bytes%�4) S. �Draw_AddWord(1) : � Object type 1 T, �Draw_AddWord(_bytes%) : � Object size U �Draw_AddWord(-1<<30) V �Draw_AddWord(-1<<30) W �Draw_AddWord(1<<30) X �Draw_AddWord(1<<30) Y �AddText(text$,x,y) Z" _x%=�Draw_X(x):_y%=�Draw_Y(y) [F ș "Font_Paint",,text$,%10000,(!(�+112)+_x%)>>8,(!(�+116)+_y%)>>8 \� ] ^"� �AnglePrint(text$,x,y,angle) _&� _text% : _text%=�Text(text$,x,y) `�Rotate(_text%,x,y,angle) a� b c"� �AnglePrint(text$,x,y,angle) d/� _text%,_handle% : _text%=�Text(text$,x,y) e&_handle%=�Rotate(_text%,x,y,angle) f =_handle% g h� �Text(text$,x,y) iC� _bytes%,_handle%,_transform% : _bytes%=24+28+�text$+1+28 j _handle%=!� k- � _bytes%�4<>0 � _bytes%+=4-(_bytes%�4) l. �Draw_AddWord(12) : � Object type 1 m- �Draw_AddWord(_bytes%) : � Object size n �Draw_AddWord(-2^30) o �Draw_AddWord(-2^30) p �Draw_AddWord(1<<30) q �Draw_AddWord(1<<30) r _transform%=!� s* �Draw_AddWord(1<<16) : � Transform t �Draw_AddWord(0) : u �Draw_AddWord(0) : v �Draw_AddWord(1<<16) : w �Draw_AddWord(0) : x �Draw_AddWord(0) : y* �Draw_AddWord(0) : � FontFlags z �AddText(text$,x,y) { =_handle% | } ~� �Print(text$,x,y) *� _handle% : _handle%=�Text(text$,x,y) �a ș "Font_Paint",,text$,%10000,(!(�+112)+�Draw_X(x))>>8,(!(�+116)+�Draw_Y(y))>>8,,_handle%+24 � =_handle% � � � � �
00000000 0d 00 01 20 f4 20 3e 44 72 61 77 42 61 73 69 63 |... . >DrawBasic| 00000010 3a 52 65 73 6f 75 72 63 65 73 2e 46 6f 6e 74 73 |:Resources.Fonts| 00000020 0d 00 02 0f f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |..... *********.| 00000030 00 03 05 f4 0d 00 04 0d f4 20 31 20 46 4f 4e 54 |......... 1 FONT| 00000040 53 0d 00 05 05 f4 0d 00 06 0f f4 20 2a 2a 2a 2a |S.......... ****| 00000050 2a 2a 2a 2a 2a 0d 00 07 04 0d 00 08 17 dd 20 a4 |*****......... .| 00000060 46 6f 6e 74 53 69 7a 65 3d 21 28 93 2b 38 34 29 |FontSize=!(.+84)| 00000070 0d 00 09 19 dd 20 a4 46 6f 6e 74 43 6f 6c 6f 75 |..... .FontColou| 00000080 72 3d 21 28 93 2b 38 38 29 0d 00 0a 1a dd 20 a4 |r=!(.+88)..... .| 00000090 43 75 72 72 65 6e 74 46 6f 6e 74 3d 21 28 93 2b |CurrentFont=!(.+| 000000a0 39 32 29 0d 00 0b 04 0d 00 0c 1b dd 20 f2 46 6f |92)......... .Fo| 000000b0 6e 74 53 69 7a 65 28 66 6f 6e 74 5f 73 69 7a 65 |ntSize(font_size| 000000c0 25 29 0d 00 0d 1a 21 28 93 2b 38 34 29 3d 66 6f |%)....!(.+84)=fo| 000000d0 6e 74 5f 73 69 7a 65 25 2a 36 34 30 0d 00 0e 05 |nt_size%*640....| 000000e0 e1 0d 00 0f 04 0d 00 10 1a dd 20 f2 54 65 78 74 |.......... .Text| 000000f0 43 6f 6c 6f 75 72 28 63 6f 6c 6f 75 72 25 29 0d |Colour(colour%).| 00000100 00 11 35 e7 20 94 28 63 6f 6c 6f 75 72 25 29 3c |..5. .(colour%)<| 00000110 31 36 20 8c 20 63 6f 6c 6f 75 72 25 3d a4 44 65 |16 . colour%=.De| 00000120 73 6b 74 6f 70 43 6f 6c 6f 75 72 28 63 6f 6c 6f |sktopColour(colo| 00000130 75 72 25 29 0d 00 12 13 21 28 93 2b 38 38 29 3d |ur%)....!(.+88)=| 00000140 63 6f 6c 6f 75 72 25 0d 00 13 41 c8 99 20 22 43 |colour%...A.. "C| 00000150 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 46 6f |olourTrans_SetFo| 00000160 6e 74 43 6f 6c 6f 75 72 73 22 2c 2c a4 44 65 73 |ntColours",,.Des| 00000170 6b 74 6f 70 43 6f 6c 6f 75 72 28 30 29 2c 63 6f |ktopColour(0),co| 00000180 6c 6f 75 72 25 2c 31 34 0d 00 14 05 e1 0d 00 15 |lour%,14........| 00000190 04 0d 00 16 19 dd 20 f2 43 75 72 72 65 6e 74 46 |...... .CurrentF| 000001a0 6f 6e 74 28 66 6f 6e 74 25 29 0d 00 17 11 21 28 |ont(font%)....!(| 000001b0 93 2b 39 32 29 3d 66 6f 6e 74 25 0d 00 18 05 e1 |.+92)=font%.....| 000001c0 0d 00 19 04 0d 00 1a 1d dd 20 f2 46 6f 6e 74 28 |......... .Font(| 000001d0 66 6f 6e 74 24 2c 66 6f 6e 74 5f 73 69 7a 65 25 |font$,font_size%| 000001e0 29 0d 00 1b 20 ea 20 5f 61 64 64 72 25 2c 5f 66 |)... . _addr%,_f| 000001f0 6f 6e 74 25 2c 5f 66 6f 6e 74 24 2c 5f 65 6e 64 |ont%,_font$,_end| 00000200 25 0d 00 1c 3d 20 5f 61 64 64 72 25 3d 28 21 28 |%...= _addr%=(!(| 00000210 93 2b 38 29 2b 34 30 29 20 3a 20 5f 65 6e 64 25 |.+8)+40) : _end%| 00000220 3d 5f 61 64 64 72 25 2b 28 5f 61 64 64 72 25 21 |=_addr%+(_addr%!| 00000230 34 29 20 3a 20 5f 61 64 64 72 25 2b 3d 38 0d 00 |4) : _addr%+=8..| 00000240 1d 05 f5 0d 00 1e 15 20 20 5f 66 6f 6e 74 25 3d |....... _font%=| 00000250 5f 61 64 64 72 25 3f 30 0d 00 1f 1b 20 20 5f 61 |_addr%?0.... _a| 00000260 64 64 72 25 2b 3d 31 20 3a 20 5f 66 6f 6e 74 24 |ddr%+=1 : _font$| 00000270 3d 22 22 0d 00 20 3b 20 20 20 c8 95 20 5f 61 64 |="".. ; .. _ad| 00000280 64 72 25 3f 30 3c 3e 30 20 3a 20 5f 66 6f 6e 74 |dr%?0<>0 : _font| 00000290 24 2b 3d bd 28 5f 61 64 64 72 25 3f 30 29 20 3a |$+=.(_addr%?0) :| 000002a0 20 5f 61 64 64 72 25 2b 3d 31 20 3a 20 ce 0d 00 | _addr%+=1 : ...| 000002b0 21 10 20 20 20 5f 61 64 64 72 25 2b 3d 31 0d 00 |!. _addr%+=1..| 000002c0 22 31 fd 20 28 5f 61 64 64 72 25 3f 30 29 3d 30 |"1. (_addr%?0)=0| 000002d0 20 84 20 5f 61 64 64 72 25 3e 3d 5f 65 6e 64 25 | . _addr%>=_end%| 000002e0 20 84 20 66 6f 6e 74 24 3d 5f 66 6f 6e 74 24 0d | . font$=_font$.| 000002f0 00 23 3b e7 20 66 6f 6e 74 24 3d 5f 66 6f 6e 74 |.#;. font$=_font| 00000300 24 20 8c 20 f2 43 75 72 72 65 6e 74 46 6f 6e 74 |$ . .CurrentFont| 00000310 28 5f 66 6f 6e 74 25 29 20 8b 20 f2 41 64 64 46 |(_font%) . .AddF| 00000320 6f 6e 74 28 66 6f 6e 74 24 29 0d 00 24 1a 21 28 |ont(font$)..$.!(| 00000330 93 2b 38 34 29 3d 66 6f 6e 74 5f 73 69 7a 65 25 |.+84)=font_size%| 00000340 2a 36 34 30 0d 00 25 21 5f 70 6f 69 6e 74 5f 73 |*640..%!_point_s| 00000350 69 7a 65 25 3d 31 36 2a a4 46 6f 6e 74 53 69 7a |ize%=16*.FontSiz| 00000360 65 2f 36 34 30 0d 00 26 38 c8 99 20 22 46 6f 6e |e/640..&8.. "Fon| 00000370 74 5f 46 69 6e 64 46 6f 6e 74 22 2c 2c 66 6f 6e |t_FindFont",,fon| 00000380 74 24 2c 5f 70 6f 69 6e 74 5f 73 69 7a 65 25 2c |t$,_point_size%,| 00000390 5f 70 6f 69 6e 74 5f 73 69 7a 65 25 20 0d 00 27 |_point_size% ..'| 000003a0 05 e1 0d 00 28 04 0d 00 29 15 dd 20 f2 41 64 64 |....(...).. .Add| 000003b0 46 6f 6e 74 28 66 6f 6e 74 24 29 0d 00 2a 31 20 |Font(font$)..*1 | 000003c0 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |. --------------| 000003d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000003e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 2b 06 |------------..+.| 000003f0 20 f4 0d 00 2c 31 20 f4 20 41 64 64 73 20 74 68 | ...,1 . Adds th| 00000400 65 20 66 6f 6e 74 20 74 6f 20 74 68 65 20 63 75 |e font to the cu| 00000410 72 72 65 6e 74 20 6c 69 73 74 20 6f 66 20 66 6f |rrent list of fo| 00000420 6e 74 73 0d 00 2d 21 20 f4 20 4d 61 6b 69 6e 67 |nts..-! . Making| 00000430 20 69 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 | it the current | 00000440 66 6f 6e 74 0d 00 2e 06 20 f4 0d 00 2f 31 20 f4 |font.... .../1 .| 00000450 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ---------------| 00000460 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000470 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 30 42 20 |-----------..0B | 00000480 ea 20 5f 46 6f 6e 74 73 25 2c 5f 6c 65 6e 67 74 |. _Fonts%,_lengt| 00000490 68 25 2c 5f 65 6e 64 25 2c 5f 70 6f 69 6e 74 65 |h%,_end%,_pointe| 000004a0 72 25 2c 5f 6e 6f 6f 66 7a 65 72 6f 73 25 2c 5f |r%,_noofzeros%,_| 000004b0 62 79 74 65 73 25 2c 5f 66 6f 6e 74 25 0d 00 31 |bytes%,_font%..1| 000004c0 21 20 5f 46 6f 6e 74 73 25 3d 21 28 93 2b 38 29 |! _Fonts%=!(.+8)| 000004d0 20 3a 20 5f 46 6f 6e 74 73 25 2b 3d 34 30 0d 00 | : _Fonts%+=40..| 000004e0 32 31 20 5f 6c 65 6e 67 74 68 25 3d 5f 46 6f 6e |21 _length%=_Fon| 000004f0 74 73 25 21 34 20 20 3a 20 5f 65 6e 64 25 3d 5f |ts%!4 : _end%=_| 00000500 46 6f 6e 74 73 25 2b 5f 6c 65 6e 67 74 68 25 0d |Fonts%+_length%.| 00000510 00 33 2c 20 f5 20 3a 20 5f 70 6f 69 6e 74 65 72 |.3, . : _pointer| 00000520 25 2d 3d 31 20 3a 20 fd 20 5f 65 6e 64 25 3f 5f |%-=1 : . _end%?_| 00000530 70 6f 69 6e 74 65 72 25 3c 3e 30 0d 00 34 1c 20 |pointer%<>0..4. | 00000540 5f 6e 6f 6f 66 7a 65 72 6f 73 25 3d 5f 70 6f 69 |_noofzeros%=_poi| 00000550 6e 74 65 72 25 2b 32 0d 00 35 2b 20 f5 20 3a 20 |nter%+2..5+ . : | 00000560 5f 70 6f 69 6e 74 65 72 25 2d 3d 31 20 3a 20 fd |_pointer%-=1 : .| 00000570 20 5f 65 6e 64 25 3f 5f 70 6f 69 6e 74 65 72 25 | _end%?_pointer%| 00000580 3d 30 0d 00 36 42 20 5f 66 6f 6e 74 25 3d 5f 65 |=0..6B _font%=_e| 00000590 6e 64 25 3f 28 5f 70 6f 69 6e 74 65 72 25 2b 31 |nd%?(_pointer%+1| 000005a0 29 20 3a 20 5f 66 6f 6e 74 25 2b 3d 31 20 3a 20 |) : _font%+=1 : | 000005b0 f2 43 75 72 72 65 6e 74 46 6f 6e 74 28 5f 66 6f |.CurrentFont(_fo| 000005c0 6e 74 25 29 0d 00 37 1f 20 66 6f 6e 74 24 3d bd |nt%)..7. font$=.| 000005d0 5f 66 6f 6e 74 25 2b 66 6f 6e 74 24 2b c4 34 2c |_font%+font$+.4,| 000005e0 bd 30 29 0d 00 38 1f 20 5f 62 79 74 65 73 25 3d |.0)..8. _bytes%=| 000005f0 a9 66 6f 6e 74 24 2b 5f 6e 6f 6f 66 7a 65 72 6f |.font$+_noofzero| 00000600 73 25 0d 00 39 27 20 66 6f 6e 74 24 3d c0 66 6f |s%..9' font$=.fo| 00000610 6e 74 24 2c a9 66 6f 6e 74 24 2d 28 5f 62 79 74 |nt$,.font$-(_byt| 00000620 65 73 25 20 83 20 34 29 29 0d 00 3a 23 20 f2 4d |es% . 4))..:# .M| 00000630 6f 76 65 4d 65 6d 6f 72 79 28 5f 65 6e 64 25 2c |oveMemory(_end%,| 00000640 5f 62 79 74 65 73 25 20 81 20 34 29 0d 00 3b 1f |_bytes% . 4)..;.| 00000650 20 24 28 5f 65 6e 64 25 2b 5f 6e 6f 6f 66 7a 65 | $(_end%+_noofze| 00000660 72 6f 73 25 29 3d 66 6f 6e 74 24 0d 00 3c 26 20 |ros%)=font$..<& | 00000670 5f 46 6f 6e 74 73 25 21 34 2b 3d 5f 62 79 74 65 |_Fonts%!4+=_byte| 00000680 73 25 2d 28 5f 62 79 74 65 73 25 20 83 20 34 29 |s%-(_bytes% . 4)| 00000690 20 0d 00 3d 06 20 e1 0d 00 3e 04 0d 00 3f 0f f4 | ..=. ...>...?..| 000006a0 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 40 05 f4 0d | *********..@...| 000006b0 00 41 0c f4 20 32 20 54 65 78 74 0d 00 42 05 f4 |.A.. 2 Text..B..| 000006c0 0d 00 43 0f f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |..C.. *********.| 000006d0 00 44 04 0d 00 45 19 dd 20 f2 41 64 64 54 65 78 |.D...E.. .AddTex| 000006e0 74 28 74 65 78 74 24 2c 78 2c 79 29 0d 00 46 30 |t(text$,x,y)..F0| 000006f0 20 f2 44 72 61 77 5f 41 64 64 57 6f 72 64 28 a4 | .Draw_AddWord(.| 00000700 46 6f 6e 74 43 6f 6c 6f 75 72 29 20 20 3a 20 f4 |FontColour) : .| 00000710 20 74 65 78 74 20 63 6f 6c 6f 75 72 0d 00 47 40 | text colour..G@| 00000720 20 f2 44 72 61 77 5f 41 64 64 57 6f 72 64 28 30 | .Draw_AddWord(0| 00000730 29 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 f4 |) : .| 00000740 20 74 65 78 74 20 62 61 63 6b 67 72 6f 75 6e 64 | text background| 00000750 20 63 6f 6c 6f 75 72 20 68 69 6e 74 0d 00 48 2e | colour hint..H.| 00000760 20 f2 44 72 61 77 5f 41 64 64 57 6f 72 64 28 a4 | .Draw_AddWord(.| 00000770 43 75 72 72 65 6e 74 46 6f 6e 74 29 3a 20 f4 20 |CurrentFont): . | 00000780 74 65 78 74 20 73 74 79 6c 65 0d 00 49 1d 20 f2 |text style..I. .| 00000790 44 72 61 77 5f 41 64 64 57 6f 72 64 28 a4 46 6f |Draw_AddWord(.Fo| 000007a0 6e 74 53 69 7a 65 29 0d 00 4a 1d 20 f2 44 72 61 |ntSize)..J. .Dra| 000007b0 77 5f 41 64 64 57 6f 72 64 28 a4 46 6f 6e 74 53 |w_AddWord(.FontS| 000007c0 69 7a 65 29 0d 00 4b 19 20 f2 44 72 61 77 5f 41 |ize)..K. .Draw_A| 000007d0 64 64 43 6f 6f 72 64 73 28 78 2c 79 29 0d 00 4c |ddCoords(x,y)..L| 000007e0 21 20 f2 44 72 61 77 5f 41 64 64 53 74 72 69 6e |! .Draw_AddStrin| 000007f0 67 28 93 2c 74 65 78 74 24 2b bd 30 29 20 0d 00 |g(.,text$+.0) ..| 00000800 4d 05 e1 0d 00 4e 04 0d 00 4f 04 0d 00 50 17 dd |M....N...O...P..| 00000810 20 f2 50 72 69 6e 74 28 74 65 78 74 24 2c 78 2c | .Print(text$,x,| 00000820 79 29 0d 00 51 30 20 ea 20 5f 62 79 74 65 73 25 |y)..Q0 . _bytes%| 00000830 20 2c 5f 78 25 2c 5f 79 25 20 3a 20 5f 62 79 74 | ,_x%,_y% : _byt| 00000840 65 73 25 3d 32 34 2b 32 38 2b a9 74 65 78 74 24 |es%=24+28+.text$| 00000850 2b 31 0d 00 52 2c 20 e7 20 5f 62 79 74 65 73 25 |+1..R, . _bytes%| 00000860 83 34 3c 3e 30 20 8c 20 5f 62 79 74 65 73 25 2b |.4<>0 . _bytes%+| 00000870 3d 34 2d 28 5f 62 79 74 65 73 25 83 34 29 0d 00 |=4-(_bytes%.4)..| 00000880 53 2e 20 f2 44 72 61 77 5f 41 64 64 57 6f 72 64 |S. .Draw_AddWord| 00000890 28 31 29 20 20 20 20 20 20 20 20 3a 20 f4 20 4f |(1) : . O| 000008a0 62 6a 65 63 74 20 74 79 70 65 20 31 0d 00 54 2c |bject type 1..T,| 000008b0 20 f2 44 72 61 77 5f 41 64 64 57 6f 72 64 28 5f | .Draw_AddWord(_| 000008c0 62 79 74 65 73 25 29 20 20 3a 20 f4 20 4f 62 6a |bytes%) : . Obj| 000008d0 65 63 74 20 73 69 7a 65 0d 00 55 1a 20 f2 44 72 |ect size..U. .Dr| 000008e0 61 77 5f 41 64 64 57 6f 72 64 28 2d 31 3c 3c 33 |aw_AddWord(-1<<3| 000008f0 30 29 0d 00 56 1a 20 f2 44 72 61 77 5f 41 64 64 |0)..V. .Draw_Add| 00000900 57 6f 72 64 28 2d 31 3c 3c 33 30 29 0d 00 57 19 |Word(-1<<30)..W.| 00000910 20 f2 44 72 61 77 5f 41 64 64 57 6f 72 64 28 31 | .Draw_AddWord(1| 00000920 3c 3c 33 30 29 0d 00 58 19 20 f2 44 72 61 77 5f |<<30)..X. .Draw_| 00000930 41 64 64 57 6f 72 64 28 31 3c 3c 33 30 29 0d 00 |AddWord(1<<30)..| 00000940 59 18 20 f2 41 64 64 54 65 78 74 28 74 65 78 74 |Y. .AddText(text| 00000950 24 2c 78 2c 79 29 0d 00 5a 22 20 5f 78 25 3d a4 |$,x,y)..Z" _x%=.| 00000960 44 72 61 77 5f 58 28 78 29 3a 5f 79 25 3d a4 44 |Draw_X(x):_y%=.D| 00000970 72 61 77 5f 59 28 79 29 0d 00 5b 46 20 c8 99 20 |raw_Y(y)..[F .. | 00000980 22 46 6f 6e 74 5f 50 61 69 6e 74 22 2c 2c 74 65 |"Font_Paint",,te| 00000990 78 74 24 2c 25 31 30 30 30 30 2c 28 21 28 93 2b |xt$,%10000,(!(.+| 000009a0 31 31 32 29 2b 5f 78 25 29 3e 3e 38 2c 28 21 28 |112)+_x%)>>8,(!(| 000009b0 93 2b 31 31 36 29 2b 5f 79 25 29 3e 3e 38 0d 00 |.+116)+_y%)>>8..| 000009c0 5c 05 e1 0d 00 5d 04 0d 00 5e 22 dd 20 f2 41 6e |\....]...^". .An| 000009d0 67 6c 65 50 72 69 6e 74 28 74 65 78 74 24 2c 78 |glePrint(text$,x| 000009e0 2c 79 2c 61 6e 67 6c 65 29 0d 00 5f 26 ea 20 5f |,y,angle).._&. _| 000009f0 74 65 78 74 25 20 3a 20 5f 74 65 78 74 25 3d a4 |text% : _text%=.| 00000a00 54 65 78 74 28 74 65 78 74 24 2c 78 2c 79 29 0d |Text(text$,x,y).| 00000a10 00 60 1d f2 52 6f 74 61 74 65 28 5f 74 65 78 74 |.`..Rotate(_text| 00000a20 25 2c 78 2c 79 2c 61 6e 67 6c 65 29 0d 00 61 05 |%,x,y,angle)..a.| 00000a30 e1 0d 00 62 04 0d 00 63 22 dd 20 a4 41 6e 67 6c |...b...c". .Angl| 00000a40 65 50 72 69 6e 74 28 74 65 78 74 24 2c 78 2c 79 |ePrint(text$,x,y| 00000a50 2c 61 6e 67 6c 65 29 0d 00 64 2f ea 20 5f 74 65 |,angle)..d/. _te| 00000a60 78 74 25 2c 5f 68 61 6e 64 6c 65 25 20 3a 20 5f |xt%,_handle% : _| 00000a70 74 65 78 74 25 3d a4 54 65 78 74 28 74 65 78 74 |text%=.Text(text| 00000a80 24 2c 78 2c 79 29 0d 00 65 26 5f 68 61 6e 64 6c |$,x,y)..e&_handl| 00000a90 65 25 3d a4 52 6f 74 61 74 65 28 5f 74 65 78 74 |e%=.Rotate(_text| 00000aa0 25 2c 78 2c 79 2c 61 6e 67 6c 65 29 0d 00 66 0d |%,x,y,angle)..f.| 00000ab0 3d 5f 68 61 6e 64 6c 65 25 0d 00 67 04 0d 00 68 |=_handle%..g...h| 00000ac0 16 dd 20 a4 54 65 78 74 28 74 65 78 74 24 2c 78 |.. .Text(text$,x| 00000ad0 2c 79 29 0d 00 69 43 ea 20 5f 62 79 74 65 73 25 |,y)..iC. _bytes%| 00000ae0 2c 5f 68 61 6e 64 6c 65 25 2c 5f 74 72 61 6e 73 |,_handle%,_trans| 00000af0 66 6f 72 6d 25 20 20 20 20 20 20 3a 20 5f 62 79 |form% : _by| 00000b00 74 65 73 25 3d 32 34 2b 32 38 2b a9 74 65 78 74 |tes%=24+28+.text| 00000b10 24 2b 31 2b 32 38 0d 00 6a 10 20 5f 68 61 6e 64 |$+1+28..j. _hand| 00000b20 6c 65 25 3d 21 93 0d 00 6b 2d 20 e7 20 5f 62 79 |le%=!...k- . _by| 00000b30 74 65 73 25 83 34 3c 3e 30 20 8c 20 5f 62 79 74 |tes%.4<>0 . _byt| 00000b40 65 73 25 2b 3d 34 2d 28 5f 62 79 74 65 73 25 83 |es%+=4-(_bytes%.| 00000b50 34 29 20 0d 00 6c 2e 20 f2 44 72 61 77 5f 41 64 |4) ..l. .Draw_Ad| 00000b60 64 57 6f 72 64 28 31 32 29 20 20 20 20 20 20 20 |dWord(12) | 00000b70 3a 20 f4 20 4f 62 6a 65 63 74 20 74 79 70 65 20 |: . Object type | 00000b80 31 0d 00 6d 2d 20 f2 44 72 61 77 5f 41 64 64 57 |1..m- .Draw_AddW| 00000b90 6f 72 64 28 5f 62 79 74 65 73 25 29 20 20 3a 20 |ord(_bytes%) : | 00000ba0 f4 20 4f 62 6a 65 63 74 20 73 69 7a 65 20 0d 00 |. Object size ..| 00000bb0 6e 19 20 f2 44 72 61 77 5f 41 64 64 57 6f 72 64 |n. .Draw_AddWord| 00000bc0 28 2d 32 5e 33 30 29 0d 00 6f 19 20 f2 44 72 61 |(-2^30)..o. .Dra| 00000bd0 77 5f 41 64 64 57 6f 72 64 28 2d 32 5e 33 30 29 |w_AddWord(-2^30)| 00000be0 0d 00 70 19 20 f2 44 72 61 77 5f 41 64 64 57 6f |..p. .Draw_AddWo| 00000bf0 72 64 28 31 3c 3c 33 30 29 0d 00 71 19 20 f2 44 |rd(1<<30)..q. .D| 00000c00 72 61 77 5f 41 64 64 57 6f 72 64 28 31 3c 3c 33 |raw_AddWord(1<<3| 00000c10 30 29 0d 00 72 13 20 5f 74 72 61 6e 73 66 6f 72 |0)..r. _transfor| 00000c20 6d 25 3d 21 93 0d 00 73 2a 20 f2 44 72 61 77 5f |m%=!...s* .Draw_| 00000c30 41 64 64 57 6f 72 64 28 31 3c 3c 31 36 29 20 20 |AddWord(1<<16) | 00000c40 20 20 3a 20 f4 20 54 72 61 6e 73 66 6f 72 6d 0d | : . Transform.| 00000c50 00 74 1e 20 f2 44 72 61 77 5f 41 64 64 57 6f 72 |.t. .Draw_AddWor| 00000c60 64 28 30 29 20 20 20 20 20 20 20 20 3a 0d 00 75 |d(0) :..u| 00000c70 1e 20 f2 44 72 61 77 5f 41 64 64 57 6f 72 64 28 |. .Draw_AddWord(| 00000c80 30 29 20 20 20 20 20 20 20 20 3a 0d 00 76 1e 20 |0) :..v. | 00000c90 f2 44 72 61 77 5f 41 64 64 57 6f 72 64 28 31 3c |.Draw_AddWord(1<| 00000ca0 3c 31 36 29 20 20 20 20 3a 0d 00 77 1e 20 f2 44 |<16) :..w. .D| 00000cb0 72 61 77 5f 41 64 64 57 6f 72 64 28 30 29 20 20 |raw_AddWord(0) | 00000cc0 20 20 20 20 20 20 3a 0d 00 78 1e 20 f2 44 72 61 | :..x. .Dra| 00000cd0 77 5f 41 64 64 57 6f 72 64 28 30 29 20 20 20 20 |w_AddWord(0) | 00000ce0 20 20 20 20 3a 0d 00 79 2a 20 f2 44 72 61 77 5f | :..y* .Draw_| 00000cf0 41 64 64 57 6f 72 64 28 30 29 20 20 20 20 20 20 |AddWord(0) | 00000d00 20 20 3a 20 f4 20 46 6f 6e 74 46 6c 61 67 73 0d | : . FontFlags.| 00000d10 00 7a 18 20 f2 41 64 64 54 65 78 74 28 74 65 78 |.z. .AddText(tex| 00000d20 74 24 2c 78 2c 79 29 0d 00 7b 0d 3d 5f 68 61 6e |t$,x,y)..{.=_han| 00000d30 64 6c 65 25 0d 00 7c 04 0d 00 7d 04 0d 00 7e 17 |dle%..|...}...~.| 00000d40 dd 20 a4 50 72 69 6e 74 28 74 65 78 74 24 2c 78 |. .Print(text$,x| 00000d50 2c 79 29 0d 00 7f 2a ea 20 5f 68 61 6e 64 6c 65 |,y)...*. _handle| 00000d60 25 20 3a 20 5f 68 61 6e 64 6c 65 25 3d a4 54 65 |% : _handle%=.Te| 00000d70 78 74 28 74 65 78 74 24 2c 78 2c 79 29 0d 00 80 |xt(text$,x,y)...| 00000d80 61 20 c8 99 20 22 46 6f 6e 74 5f 50 61 69 6e 74 |a .. "Font_Paint| 00000d90 22 2c 2c 74 65 78 74 24 2c 25 31 30 30 30 30 2c |",,text$,%10000,| 00000da0 28 21 28 93 2b 31 31 32 29 2b a4 44 72 61 77 5f |(!(.+112)+.Draw_| 00000db0 58 28 78 29 29 3e 3e 38 2c 28 21 28 93 2b 31 31 |X(x))>>8,(!(.+11| 00000dc0 36 29 2b a4 44 72 61 77 5f 59 28 79 29 29 3e 3e |6)+.Draw_Y(y))>>| 00000dd0 38 2c 2c 5f 68 61 6e 64 6c 65 25 2b 32 34 0d 00 |8,,_handle%+24..| 00000de0 81 0d 3d 5f 68 61 6e 64 6c 65 25 0d 00 82 04 0d |..=_handle%.....| 00000df0 00 83 04 0d 00 84 04 0d 00 85 04 0d ff |.............| 00000dfd