; SAIL-8.ASM FONT Creation file INCLUDE "exec/types.i" INCLUDE "exec/nodes.i" INCLUDE "libraries/diskfont.i" FIRSTCHAR SET $20 LASTCHAR SET $9F YSIZE SET 8 MOVEQ #0,D0 in case anybody tries to execute this file RTS DC.L 0 DC.L 0 DC.B NT_FONT DC.B 0 DC.L fontName DC.W DFH_ID DC.W 1 DC.L 0 fontName: DS.B MAXFONTNAME font: DC.L 0 DC.L 0 DC.B NT_FONT DC.B 0 DC.L fontName DC.L 0 DC.W fontEnd-font DC.W 8 DC.B 0 DC.B FPF_DESIGNED DC.W YSIZE DC.W 6 DC.W 1 DC.W 0 DC.B FIRSTCHAR DC.B LASTCHAR DC.L fontData DC.W (fontLoc-fontData)/YSIZE DC.L fontLoc DC.L 0 DC.L 0 fontData: DC.L $00306C6C,$10003818,$18600000,$00000003 DC.L $78307878,$1CFC38FC,$78780000,$00000078 DC.L $7C10FC3C,$F8FEFE3C,$C6FC0EE6,$F082C638 DC.L $FC38FC7C,$FCC6C6C6,$C6CCFE78,$C0783000 DC.L $3000E000,$1C003800,$E0300CE0,$70000000 DC.L $00000000,$20000000,$0000001C,$30E076F0 DC.L $CC300000,$00000000,$60FCC00E,$30700000 DC.L $00000000,$C6FE0008,$00001004,$00000000 DC.W $2000,0 * extra word is required (undocumented restriction: modulo must be 0 mod 4) DC.L $00786C6C,$7EC66C18,$30306C30,$00000006 DC.L $CC70CCCC,$3CC060CC,$CCCC0000,$0E00E0CC DC.L $C6386666,$6C666666,$C6300666,$60C6E66C DC.L $666C66C6,$B4C6C6C6,$6CCCC660,$60187820 DC.L $30006000,$0C006C02,$60000060,$30000000 DC.L $00000000,$60000000,$00000030,$3030DCD8 DC.L $EC300038,$10003C7E,$3030C01B,$30C00078 DC.L $3EF87CC6,$C606380C,$0008380C,$0EE0FEC6 DC.W $3000,0 DC.L $00786CFE,$D0CC6830,$60183830,$0000000C DC.L $DC300C0C,$6CF8C00C,$CCCC3018,$38FC380C DC.L $DE3866C0,$666060C0,$C630066C,$60EEF6C6 DC.L $66C666E0,$30C66CC6,$38CC8C60,$3018FC60 DC.L $18786C78,$6C78607C,$6C700C66,$30CCD878 DC.L $DC7AEC7C,$F8CCCCC6,$C6CCFC30,$303000F0 DC.L $DC30006C,$380060EC,$1830C018,$FCC06C0C DC.L $E00EC6C6,$FE066CFE,$000C6CFC,$3838006C DC.W $3800,0 DC.L $0030006C,$7C187600,$6018FEFC,$00FC0018 DC.L $FC303838,$CC0CF818,$787C3018,$E0000E18 DC.L $D66C7CC0,$667878CE,$FE300678,$60FEDEC6 DC.L $7CC67C38,$30C66CD6,$38781860,$181830FE DC.L $000C76CC,$DCCCF0CC,$76300C6C,$30EEECCC DC.L $66CC76C0,$60CCCCD6,$6CCC98E0,$301C00DF DC.L $CC30766C,$6CFCFC6C,$1C3EFF18,$307ED67C DC.L $C006C6C6,$C6FED62C,$00FEC630,$E00EFE38 DC.W $3E00,0 DC.L $003000FE,$1630DC00,$60183830,$00000030 DC.L $EC30600C,$FE0CCC30,$CC0C0000,$38FC3830 DC.L $DE7C66C0,$666060C6,$C630C66C,$62D6CEC6 DC.L $60C66C0E,$30C638FE,$38303260,$0C183060 DC.L $003C66C0,$CCFC6078,$66300C78,$30D6CCCC DC.L $66CC6678,$60CCCCD6,$38CC3030,$303000F8 DC.L $18FCDC7E,$C60C606C,$3C1B1818,$301B6CCC DC.L $E00EC6C6,$7C06D668,$000C6CFC,$38380010 DC.W $2000,0 DC.L $0000006C,$FC66CC00,$30306C30,$18003060 DC.L $CC30CCCC,$0CCCCC30,$CC183018,$0E00E000 DC.L $C0C66666,$6C666066,$C630C666,$66C6C66C DC.L $606C66C6,$30C638EE,$6C306660,$06183020 DC.L $00CC66CC,$CCC0607C,$66300C6C,$30C6CCCC DC.L $7C7C600C,$6CCC786C,$6C786430,$3030000E DC.L $1878DC66,$00003C66,$661E1E18,$001E00CC DC.L $3EF8C67C,$38066CFE,$000838C0,$0EE0FE00 DC.W $FF00,0 DC.L $0030006C,$10C67600,$18600000,$180030C0 DC.L $78FCFC78,$1E787830,$78703018,$00000030 DC.L $78C6FC3C,$F8FEF03E,$C6FC7CE6,$FEC6C638 DC.L $F03CE67C,$787C10C6,$C678FE78,$03783000 DC.L $00763C78,$7678F0C6,$E678CCE6,$78C6CC78 DC.L $600CF0F8,$3876306C,$C630FC1C,$30E00003 DC.L $1830767C,$00000000,$C61B18D8,$FC1B0078 DC.L $00000000,$10FE3860,$00001080,$00000000 DC.W $3C00,0 DC.L $00000000,$00000000,$00000000,$30000000 DC.L $00000000,$00000000,$00000030,$00000000 DC.L $00000000,$00000000,$00000000,$00000000 DC.L $00060000,$00000000,$00000000,$00000000 DC.L $00000000,$0000007C,$00007800,$00000000 DC.L $F00E0000,$00000000,$00E00000,$3000001E DC.L $1F0000E0,$00000000,$001E1870,$001B0000 DC.L $00000000,$00000020,$FF000000,$FEFE0000 DC.W $0000,0 * The macro below demonstrates how to implement a "while" loop using * recursion. The loop executes a maximum of about 5000 times. (This * could be increased by adding to the number of recursive calls in WHILE2, * or by adding more calls to WHILE2 inside the toplevel macro WHILE.) * The statement being repeated can be a macro call, but note that the * overhead of the WHILE uses 8 levels of nesting, out of the max of 10. WHILE MACRO first arg is condition (>= 0), second is statement to repeat NOLIST don't clutter listing with all this overhead stuff NEST SET 2 number of levels of macro call (cannot exceed 10) WHILE2 \1,\2 LIST ENDM WHILE2 MACRO IFGE \1 \2 IFLT NEST-8 never nest deeper than 8, including toplevel call to WHILE NEST SET NEST+1 WHILE2 \1,\2 WHILE2 \1,\2 WHILE2 \1,\2 WHILE2 \1,\2 NEST SET NEST-1 ENDC (if nest < 8) ENDC (if condition >= 0) ENDM CHAR SET FIRSTCHAR which character comes next LOCS MACRO DC.W (CHAR-FIRSTCHAR)*8,8 offset,width CHAR SET CHAR+1 ENDM fontLoc: WHILE LASTCHAR+1-CHAR,LOCS fontEnd: END