Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_21B.ADF » P/C/MF

P/C/MF

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 » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_21B.ADF
Filename: P/C/MF
Read OK:
File size: 1678 bytes
Load address: FFFF2100
Exec address: FFFF2100
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
   10REM >MF
   20REM MegaFont code (Info8) by Clive Whiston BBC Acorn User MAY 1992
   30MODE 3:HIMEM=&3D00
   40PRINT"MegaFont code: Compiling"
   50FOR pass=0 TO 3 STEP 3
   60P%=HIMEM
   70[OPT pass
   80.mf:LDA &601:STA &7A:LDA &602:STA &7A+1:LDY #3:LDA (&7A),Y:STA &80:LDY #0:LDA (&7A),Y:STA &7A+2:INY:LDA (&7A),Y:STA &7A+3:LDA #&FF:STA &81:JSR reset_mf_style_flags_command
   90.mf_loop:LDY &81:CPY &80:BEQ mf_loop_exit:CMP mf_control_code_symbol:BEQ mfcode_interpreter:LDA &84:CMP #0:BNE mf_format_flags:LDA &85:CMP #0:BEQ no_flags
  100.mf_format_flags:LDA &82:CMP &71:BEQ output_mf_character_step:JMP mf_small_caps:.mf_loop_exit:JSR reset_mf_style_flags:RTS
  110.no_flags:LDA &71:JSR &FFEE:JMP mf_loop_continue
  120.increase_mf_loop_counter:LDA &71:STA &82:INC &81:LDY &81:LDA (&7A+2),Y:STA &71:RTS
  130.output_mf_character_step:JMP output_mf_character
  140.mfcode_interpreter:JSR increase_mf_loop_counter:LDY #0
  150.mfcode_interpreter_loop:CMP mfcode_data_block_start,Y:BEQ mfcode_interpreter_font_toggle:INY:CPY mfcode_data_block_end-mfcode_data_block_start+1:BNE mfcode_interpreter_loop
  160.undefined_mfcode_error:BRK:EQUB &FF:EQUS "Un-defined MegaFont code":BRK
  170.mfcode_interpreter_font_toggle:LDX #207:STX &82+1:TYA:SBC #8:BMI toggle_mfs:CMP #5:BEQ reset_mf_style_flags_command:CMP #6:BEQ output_line_feed:CMP #7:BEQ change_mf_foreground_colour:CMP #8:BEQ change_mf_background_colour:CMP #9
  180BEQ output_mf_control_code_symbol
  190.toggle_mf_position_flag:ADC #1:CMP &85:BEQ clear_mf_position_flag:STA &85:JMP mfcode_interpreter_exit
  200.clear_mf_position_flag:LDA #0:STA &85:JMP mfcode_interpreter_exit
  210.toggle_mfs:LDA #1:STA &82:CPY #0:BEQ toggle_mfs_exit:STY &82+1:LDX #0:CLC
  220.toggle_mfs_loop:ADC &82:STA &82:INX:CPX &82+1:BNE toggle_mfs_loop
  230.toggle_mfs_exit:LDA &84:EOR &82:STA &84:JMP mfcode_interpreter_exit
  240.output_mf_control_code_symbol:LDA mf_control_code_symbol:STA &71:JMP mf_define_character
  250.change_mf_background_colour:LDX #79
  260.change_mf_foreground_colour:STA &82+1:JSR increase_mf_loop_counter:ADC &82+1:TAY:JSR change_colour:JMP mfcode_interpreter_exit
  270.output_line_feed:JSR &FFE7:JMP mfcode_interpreter_exit
  280.reset_mf_style_flags_command:JSR reset_mf_style_flags
  290.mfcode_interpreter_exit:JSR increase_mf_loop_counter:LDY #0:STY &82:JMP mf_loop
  300.reset_mf_style_flags:LDY #7:JSR change_colour:LDY #128:JSR change_colour:LDA #0:LDX #&82
  310.reset_mf_style_flags_loop:STA 0,X:INX:CPX #&85+1:BNE reset_mf_style_flags_loop:RTS
  320.change_colour:LDA #17:JSR &FFEE:TYA:JSR &FFEE:RTS
  330.mfcode_data_block_start:EQUS "BIUHRFDS2+-OCN.XY"
  340.mf_control_code_symbol:EQUB 124
  350.mfcode_data_block_end
  360.resume_loop:LDA #&17:JSR &FFEE:LDA #&FF:JSR &FFEE:LDX #0
  370.resume_loop_loop:LDA &71+1,X:JSR &FFEE:INX:CPX #8:BNE resume_loop_loop
  380.output_mf_character:LDA #&FF:JSR &FFEE
  390.mf_loop_continue:JSR increase_mf_loop_counter:JMP mf_loop
  400.mf_small_caps:LDA &85:CMP #5:BNE mf_define_character:LDA &71:SBC #97:BMI mf_define_character:SBC #26:BPL mf_define_character:ADC #91:STA &71:LDA #6:STA &85
  410.mf_define_character:LDA #&A:LDX #&71:LDY #0:JSR &FFF1
  420.mf_bold:LDA &84:ORA #1:CMP &84:BNE mf_faint:LDX #0
  430.mf_bold_loop:LDA &71+1,X:ASL A:ORA &71+1,X:STA &71+1,X:INX:CPX #8:BNE mf_bold_loop
  440.mf_faint:LDA &84:ORA #&20:CMP &84:BNE mf_digital:LDX #0
  450.mf_faint_loop:LDA &71+1,X:ASL A:AND &71+1,X:STA &71+1,X:INX:CPX #8:BNE mf_faint_loop
  460.mf_digital:LDA &84:ORA #&40:CMP &84:BNE mf_shadow:LDY#3:STY &82:LDA &71:LDX #0:SBC #96:BMI mf_digital_loop:SBC #27:BPL mf_digital_loop:LDY #4:STY &82
  470.mf_digital_loop:LDA &71+1,X:ASL A:AND &71+1,X:STA &71+1,X:INX:CPX &82:BNE mf_digital_loop
  480.mf_shadow:LDA &84:ORA #&80:CMP &84:BNE mf_italic:LDX #0
  490.mf_shadow_loop:LDA &71+1,X:ASL A:AND &71+1,X:EOR &71+1,X:STA &71+1,X:INX:CPX #8:BNE mf_shadow_loop
  500.mf_italic:LDA &84:ORA #2:CMP &84:BNE mf_double_underline:LDX #0
  510.mf_italic_loop:LDA &71+1,X:LSR A:STA &71+1,X:LDA &71+6,X:ASL A:STA &71+6,X:INX:CPX #2:BNE mf_italic_loop:LDA &71+8:ASL A:STA &71+8:JMP mf_double_underline
  520.resume_loop_step_1:JMP resume_loop
  530.compress:LDA &71+3:STA &71+2:LDA &71+4:STA &71+3:LDA &71+6:STA &71+4:LDA &71+8:STA &71+6:LDX &71+5:LDA &71+6:CMP #0:BNE compress_exit
  540LDA &71:CMP #ASC"e":BEQ notail2:CMP #ASC"s":BEQ notail2:CMP #ASC"?":BEQ notail2:CMP #ASC"!":BEQ notail2:CMP #ASC"5":BEQ notail2:CMP #ASC"x":BEQ notail2:STX &71+4:JMP compress_exit
  550.notail2:STX &71+3:.compress_exit:LDA &71+7:STA &71+5:LDA #0:STA &71+7:STA &71+8:RTS
  560.mf_double_underline:LDA &85:CMP #1:BNE mf_superscript:JSR compress:LDA #&FF:STA &71+8:LDX &71+6:CPX #0:BNE mf_rule_jump:STA &71+6:JMP mf_rule_jump
  570.mf_superscript:LDA &85:CMP #2:BNE mf_subscript:JSR compress:JMP mf_underline
  580.mf_subscript:LDA &85:CMP #6:BEQ mf_subscript_resume:CMP #3:BNE mf_outline
  590.mf_subscript_resume:JSR compress:LDX #5
  600.mf_subscript_loop:LDA &71+1,X:STA &71+3,X:DEX:CPX #&FF:BNE mf_subscript_loop:LDA #0:STA &71+1:STA &71+2:LDA #6:CMP &85:BNE mf_underline:DEC &85:JMP mf_underline
  610.mf_rule_jump:JMP mf_rule
  620.mf_outline:LDA &85:CMP #4:BNE mf_underline:JSR compress:LDA &71+6:STA &71+8:LDX #5
  630.mf_outline_loop:LDA &71+1,X:ASL A:STA &82:LDA &71+1,X:LSR A:ORA &82:CPX #0:BEQ mf_outline_loop_resume:ORA &71,X
  640.mf_outline_loop_resume:ORA &71+2,X:EOR &71+1,X:STA &71+2,X:DEX:CPX #&FF:BNE mf_outline_loop:JMP mf_underline
  650.resume_loop_step_2:JMP resume_loop_step_1
  660.mf_underline:LDA &84:ORA #4:CMP &84:BNE mf_rule:LDA &71+8:CMP #0:BNE mf_rule:LDA #&FF:STA &71+8
  670.mf_rule:LDA &84:ORA #&10:CMP &84:BNE mf_highlight:LDA #&FF:STA &71+5
  680.mf_highlight:LDA &84:ORA #8:CMP &84:BNE resume_loop_step_2:LDX #0
  690.mf_highlight_loop:LDA &71+1,X:EOR #&FF:STA &71+1,X:INX:CPX #8:BNE mf_highlight_loop:JMP resume_loop_step_2
  700]:NEXT
  710*SAVE CODE 3D00 3FFF
  720*ACCESS CODE L
  730CLS:PRINTTAB(5,10)"Set up finnished."

	� >MF
D� MegaFont code (Info8) by Clive Whiston BBC Acorn User MAY 1992
� 3:�=&3D00
(�"MegaFont code: Compiling"
2� pass=0 � 3 � 3
<P%=�
F
[OPT pass
P�.mf:LDA &601:STA &7A:LDA &602:STA &7A+1:LDY #3:LDA (&7A),Y:STA &80:LDY #0:LDA (&7A),Y:STA &7A+2:INY:LDA (&7A),Y:STA &7A+3:LDA #&FF:STA &81:JSR reset_mf_style_flags_command
Z�.mf_loop:LDY &81:CPY &80:BEQ mf_loop_exit:CMP mf_control_code_symbol:BEQ mfcode_interpreter:LDA &84:CMP #0:BNE mf_format_flags:LDA &85:CMP #0:BEQ no_flags
d~.mf_format_flags:LDA &82:CMP &71:BEQ output_mf_character_step:JMP mf_small_caps:.mf_loop_exit:JSR reset_mf_style_flags:RTS
n4.no_flags:LDA &71:JSR &FFEE:JMP mf_loop_continue
xW.increase_mf_loop_counter:LDA &71:STA &82:INC &81:LDY &81:LDA (&7A+2),Y:STA &71:RTS
�5.output_mf_character_step:JMP output_mf_character
�;.mfcode_interpreter:JSR increase_mf_loop_counter:LDY #0
��.mfcode_interpreter_loop:CMP mfcode_data_block_start,Y:BEQ mfcode_interpreter_font_toggle:INY:CPY mfcode_data_block_end-mfcode_data_block_start+1:BNE mfcode_interpreter_loop
�L.undefined_mfcode_error:BRK:EQUB &FF:EQUS "Un-defined MegaFont code":BRK
��.mfcode_interpreter_font_toggle:LDX #207:STX &82+1:TYA:SBC #8:BMI toggle_mfs:CMP #5:BEQ reset_mf_style_flags_command:CMP #6:BEQ output_line_feed:CMP #7:BEQ change_mf_foreground_colour:CMP #8:BEQ change_mf_background_colour:CMP #9
�%BEQ output_mf_control_code_symbol
�j.toggle_mf_position_flag:ADC #1:CMP &85:BEQ clear_mf_position_flag:STA &85:JMP mfcode_interpreter_exit
�F.clear_mf_position_flag:LDA #0:STA &85:JMP mfcode_interpreter_exit
�N.toggle_mfs:LDA #1:STA &82:CPY #0:BEQ toggle_mfs_exit:STY &82+1:LDX #0:CLC
�F.toggle_mfs_loop:ADC &82:STA &82:INX:CPX &82+1:BNE toggle_mfs_loop
�F.toggle_mfs_exit:LDA &84:� &82:STA &84:JMP mfcode_interpreter_exit
�].output_mf_control_code_symbol:LDA mf_control_code_symbol:STA &71:JMP mf_define_character
�(.change_mf_background_colour:LDX #79
�.change_mf_foreground_colour:STA &82+1:JSR increase_mf_loop_counter:ADC &82+1:TAY:JSR change_colour:JMP mfcode_interpreter_exit
;.output_line_feed:JSR &FFE7:JMP mfcode_interpreter_exit
:.reset_mf_style_flags_command:JSR reset_mf_style_flags
"T.mfcode_interpreter_exit:JSR increase_mf_loop_counter:LDY #0:STY &82:JMP mf_loop
,].reset_mf_style_flags:LDY #7:JSR change_colour:LDY #128:JSR change_colour:LDA #0:LDX #&82
6W.reset_mf_style_flags_loop:STA 0,X:INX:CPX #&85+1:BNE reset_mf_style_flags_loop:RTS
@6.change_colour:LDA #17:JSR &FFEE:TYA:JSR &FFEE:RTS
J5.mfcode_data_block_start:EQUS "BIUHRFDS2+-OCN.XY"
T$.mf_control_code_symbol:EQUB 124
^.mfcode_data_block_end
h=.resume_loop:LDA #&17:JSR &FFEE:LDA #&FF:JSR &FFEE:LDX #0
rK.resume_loop_loop:LDA &71+1,X:JSR &FFEE:INX:CPX #8:BNE resume_loop_loop
|+.output_mf_character:LDA #&FF:JSR &FFEE
�>.mf_loop_continue:JSR increase_mf_loop_counter:JMP mf_loop
��.mf_small_caps:LDA &85:CMP #5:BNE mf_define_character:LDA &71:SBC #97:BMI mf_define_character:SBC #26:BPL mf_define_character:ADC #91:STA &71:LDA #6:STA &85
�:.mf_define_character:LDA #&A:LDX #&71:LDY #0:JSR &FFF1
�6.mf_bold:LDA &84:�A #1:CMP &84:BNE mf_faint:LDX #0
�V.mf_bold_loop:LDA &71+1,X:ASL A:�A &71+1,X:STA &71+1,X:INX:CPX #8:BNE mf_bold_loop
�;.mf_faint:LDA &84:�A #&20:CMP &84:BNE mf_digital:LDX #0
�W.mf_faint_loop:LDA &71+1,X:ASL A:� &71+1,X:STA &71+1,X:INX:CPX #8:BNE mf_faint_loop
̙.mf_digital:LDA &84:�A #&40:CMP &84:BNE mf_shadow:LDY#3:STY &82:LDA &71:LDX #0:SBC #96:BMI mf_digital_loop:SBC #27:BPL mf_digital_loop:LDY #4:STY &82
�\.mf_digital_loop:LDA &71+1,X:ASL A:� &71+1,X:STA &71+1,X:INX:CPX &82:BNE mf_digital_loop
�;.mf_shadow:LDA &84:�A #&80:CMP &84:BNE mf_italic:LDX #0
�c.mf_shadow_loop:LDA &71+1,X:ASL A:� &71+1,X:� &71+1,X:STA &71+1,X:INX:CPX #8:BNE mf_shadow_loop
�C.mf_italic:LDA &84:�A #2:CMP &84:BNE mf_double_underline:LDX #0
��.mf_italic_loop:LDA &71+1,X:LSR A:STA &71+1,X:LDA &71+6,X:ASL A:STA &71+6,X:INX:CPX #2:BNE mf_italic_loop:LDA &71+8:ASL A:STA &71+8:JMP mf_double_underline
'.resume_loop_step_1:JMP resume_loop
�.compress:LDA &71+3:STA &71+2:LDA &71+4:STA &71+3:LDA &71+6:STA &71+4:LDA &71+8:STA &71+6:LDX &71+5:LDA &71+6:CMP #0:BNE compress_exit
�LDA &71:CMP #�"e":BEQ notail2:CMP #�"s":BEQ notail2:CMP #�"?":BEQ notail2:CMP #�"!":BEQ notail2:CMP #�"5":BEQ notail2:CMP #�"x":BEQ notail2:STX &71+4:JMP compress_exit
&X.notail2:STX &71+3:.compress_exit:LDA &71+7:STA &71+5:LDA #0:STA &71+7:STA &71+8:RTS
0�.mf_double_underline:LDA &85:CMP #1:BNE mf_superscript:JSR compress:LDA #&FF:STA &71+8:LDX &71+6:CPX #0:BNE mf_rule_jump:STA &71+6:JMP mf_rule_jump
:Q.mf_superscript:LDA &85:CMP #2:BNE mf_subscript:JSR compress:JMP mf_underline
DN.mf_subscript:LDA &85:CMP #6:BEQ mf_subscript_resume:CMP #3:BNE mf_outline
N,.mf_subscript_resume:JSR compress:LDX #5
X�.mf_subscript_loop:LDA &71+1,X:STA &71+3,X:DEX:CPX #&FF:BNE mf_subscript_loop:LDA #0:STA &71+1:STA &71+2:LDA #6:CMP &85:BNE mf_underline:DEC &85:JMP mf_underline
b.mf_rule_jump:JMP mf_rule
lW.mf_outline:LDA &85:CMP #4:BNE mf_underline:JSR compress:LDA &71+6:STA &71+8:LDX #5
vr.mf_outline_loop:LDA &71+1,X:ASL A:STA &82:LDA &71+1,X:LSR A:�A &82:CPX #0:BEQ mf_outline_loop_resume:�A &71,X
�n.mf_outline_loop_resume:�A &71+2,X:� &71+1,X:STA &71+2,X:DEX:CPX #&FF:BNE mf_outline_loop:JMP mf_underline
�..resume_loop_step_2:JMP resume_loop_step_1
�c.mf_underline:LDA &84:�A #4:CMP &84:BNE mf_rule:LDA &71+8:CMP #0:BNE mf_rule:LDA #&FF:STA &71+8
�H.mf_rule:LDA &84:�A #&10:CMP &84:BNE mf_highlight:LDA #&FF:STA &71+5
�E.mf_highlight:LDA &84:�A #8:CMP &84:BNE resume_loop_step_2:LDX #0
�m.mf_highlight_loop:LDA &71+1,X:� #&FF:STA &71+1,X:INX:CPX #8:BNE mf_highlight_loop:JMP resume_loop_step_2
�]:�
�*SAVE CODE 3D00 3FFF
�*ACCESS CODE L
� �:�5,10)"Set up finnished."
�
00000000  0d 00 0a 09 f4 20 3e 4d  46 0d 00 14 44 f4 20 4d  |..... >MF...D. M|
00000010  65 67 61 46 6f 6e 74 20  63 6f 64 65 20 28 49 6e  |egaFont code (In|
00000020  66 6f 38 29 20 62 79 20  43 6c 69 76 65 20 57 68  |fo8) by Clive Wh|
00000030  69 73 74 6f 6e 20 42 42  43 20 41 63 6f 72 6e 20  |iston BBC Acorn |
00000040  55 73 65 72 20 4d 41 59  20 31 39 39 32 0d 00 1e  |User MAY 1992...|
00000050  0f eb 20 33 3a d3 3d 26  33 44 30 30 0d 00 28 1f  |.. 3:.=&3D00..(.|
00000060  f1 22 4d 65 67 61 46 6f  6e 74 20 63 6f 64 65 3a  |."MegaFont code:|
00000070  20 43 6f 6d 70 69 6c 69  6e 67 22 0d 00 32 14 e3  | Compiling"..2..|
00000080  20 70 61 73 73 3d 30 20  b8 20 33 20 88 20 33 0d  | pass=0 . 3 . 3.|
00000090  00 3c 08 50 25 3d 93 0d  00 46 0d 5b 4f 50 54 20  |.<.P%=...F.[OPT |
000000a0  70 61 73 73 0d 00 50 af  2e 6d 66 3a 4c 44 41 20  |pass..P..mf:LDA |
000000b0  26 36 30 31 3a 53 54 41  20 26 37 41 3a 4c 44 41  |&601:STA &7A:LDA|
000000c0  20 26 36 30 32 3a 53 54  41 20 26 37 41 2b 31 3a  | &602:STA &7A+1:|
000000d0  4c 44 59 20 23 33 3a 4c  44 41 20 28 26 37 41 29  |LDY #3:LDA (&7A)|
000000e0  2c 59 3a 53 54 41 20 26  38 30 3a 4c 44 59 20 23  |,Y:STA &80:LDY #|
000000f0  30 3a 4c 44 41 20 28 26  37 41 29 2c 59 3a 53 54  |0:LDA (&7A),Y:ST|
00000100  41 20 26 37 41 2b 32 3a  49 4e 59 3a 4c 44 41 20  |A &7A+2:INY:LDA |
00000110  28 26 37 41 29 2c 59 3a  53 54 41 20 26 37 41 2b  |(&7A),Y:STA &7A+|
00000120  33 3a 4c 44 41 20 23 26  46 46 3a 53 54 41 20 26  |3:LDA #&FF:STA &|
00000130  38 31 3a 4a 53 52 20 72  65 73 65 74 5f 6d 66 5f  |81:JSR reset_mf_|
00000140  73 74 79 6c 65 5f 66 6c  61 67 73 5f 63 6f 6d 6d  |style_flags_comm|
00000150  61 6e 64 0d 00 5a 9e 2e  6d 66 5f 6c 6f 6f 70 3a  |and..Z..mf_loop:|
00000160  4c 44 59 20 26 38 31 3a  43 50 59 20 26 38 30 3a  |LDY &81:CPY &80:|
00000170  42 45 51 20 6d 66 5f 6c  6f 6f 70 5f 65 78 69 74  |BEQ mf_loop_exit|
00000180  3a 43 4d 50 20 6d 66 5f  63 6f 6e 74 72 6f 6c 5f  |:CMP mf_control_|
00000190  63 6f 64 65 5f 73 79 6d  62 6f 6c 3a 42 45 51 20  |code_symbol:BEQ |
000001a0  6d 66 63 6f 64 65 5f 69  6e 74 65 72 70 72 65 74  |mfcode_interpret|
000001b0  65 72 3a 4c 44 41 20 26  38 34 3a 43 4d 50 20 23  |er:LDA &84:CMP #|
000001c0  30 3a 42 4e 45 20 6d 66  5f 66 6f 72 6d 61 74 5f  |0:BNE mf_format_|
000001d0  66 6c 61 67 73 3a 4c 44  41 20 26 38 35 3a 43 4d  |flags:LDA &85:CM|
000001e0  50 20 23 30 3a 42 45 51  20 6e 6f 5f 66 6c 61 67  |P #0:BEQ no_flag|
000001f0  73 0d 00 64 7e 2e 6d 66  5f 66 6f 72 6d 61 74 5f  |s..d~.mf_format_|
00000200  66 6c 61 67 73 3a 4c 44  41 20 26 38 32 3a 43 4d  |flags:LDA &82:CM|
00000210  50 20 26 37 31 3a 42 45  51 20 6f 75 74 70 75 74  |P &71:BEQ output|
00000220  5f 6d 66 5f 63 68 61 72  61 63 74 65 72 5f 73 74  |_mf_character_st|
00000230  65 70 3a 4a 4d 50 20 6d  66 5f 73 6d 61 6c 6c 5f  |ep:JMP mf_small_|
00000240  63 61 70 73 3a 2e 6d 66  5f 6c 6f 6f 70 5f 65 78  |caps:.mf_loop_ex|
00000250  69 74 3a 4a 53 52 20 72  65 73 65 74 5f 6d 66 5f  |it:JSR reset_mf_|
00000260  73 74 79 6c 65 5f 66 6c  61 67 73 3a 52 54 53 0d  |style_flags:RTS.|
00000270  00 6e 34 2e 6e 6f 5f 66  6c 61 67 73 3a 4c 44 41  |.n4.no_flags:LDA|
00000280  20 26 37 31 3a 4a 53 52  20 26 46 46 45 45 3a 4a  | &71:JSR &FFEE:J|
00000290  4d 50 20 6d 66 5f 6c 6f  6f 70 5f 63 6f 6e 74 69  |MP mf_loop_conti|
000002a0  6e 75 65 0d 00 78 57 2e  69 6e 63 72 65 61 73 65  |nue..xW.increase|
000002b0  5f 6d 66 5f 6c 6f 6f 70  5f 63 6f 75 6e 74 65 72  |_mf_loop_counter|
000002c0  3a 4c 44 41 20 26 37 31  3a 53 54 41 20 26 38 32  |:LDA &71:STA &82|
000002d0  3a 49 4e 43 20 26 38 31  3a 4c 44 59 20 26 38 31  |:INC &81:LDY &81|
000002e0  3a 4c 44 41 20 28 26 37  41 2b 32 29 2c 59 3a 53  |:LDA (&7A+2),Y:S|
000002f0  54 41 20 26 37 31 3a 52  54 53 0d 00 82 35 2e 6f  |TA &71:RTS...5.o|
00000300  75 74 70 75 74 5f 6d 66  5f 63 68 61 72 61 63 74  |utput_mf_charact|
00000310  65 72 5f 73 74 65 70 3a  4a 4d 50 20 6f 75 74 70  |er_step:JMP outp|
00000320  75 74 5f 6d 66 5f 63 68  61 72 61 63 74 65 72 0d  |ut_mf_character.|
00000330  00 8c 3b 2e 6d 66 63 6f  64 65 5f 69 6e 74 65 72  |..;.mfcode_inter|
00000340  70 72 65 74 65 72 3a 4a  53 52 20 69 6e 63 72 65  |preter:JSR incre|
00000350  61 73 65 5f 6d 66 5f 6c  6f 6f 70 5f 63 6f 75 6e  |ase_mf_loop_coun|
00000360  74 65 72 3a 4c 44 59 20  23 30 0d 00 96 b1 2e 6d  |ter:LDY #0.....m|
00000370  66 63 6f 64 65 5f 69 6e  74 65 72 70 72 65 74 65  |fcode_interprete|
00000380  72 5f 6c 6f 6f 70 3a 43  4d 50 20 6d 66 63 6f 64  |r_loop:CMP mfcod|
00000390  65 5f 64 61 74 61 5f 62  6c 6f 63 6b 5f 73 74 61  |e_data_block_sta|
000003a0  72 74 2c 59 3a 42 45 51  20 6d 66 63 6f 64 65 5f  |rt,Y:BEQ mfcode_|
000003b0  69 6e 74 65 72 70 72 65  74 65 72 5f 66 6f 6e 74  |interpreter_font|
000003c0  5f 74 6f 67 67 6c 65 3a  49 4e 59 3a 43 50 59 20  |_toggle:INY:CPY |
000003d0  6d 66 63 6f 64 65 5f 64  61 74 61 5f 62 6c 6f 63  |mfcode_data_bloc|
000003e0  6b 5f 65 6e 64 2d 6d 66  63 6f 64 65 5f 64 61 74  |k_end-mfcode_dat|
000003f0  61 5f 62 6c 6f 63 6b 5f  73 74 61 72 74 2b 31 3a  |a_block_start+1:|
00000400  42 4e 45 20 6d 66 63 6f  64 65 5f 69 6e 74 65 72  |BNE mfcode_inter|
00000410  70 72 65 74 65 72 5f 6c  6f 6f 70 0d 00 a0 4c 2e  |preter_loop...L.|
00000420  75 6e 64 65 66 69 6e 65  64 5f 6d 66 63 6f 64 65  |undefined_mfcode|
00000430  5f 65 72 72 6f 72 3a 42  52 4b 3a 45 51 55 42 20  |_error:BRK:EQUB |
00000440  26 46 46 3a 45 51 55 53  20 22 55 6e 2d 64 65 66  |&FF:EQUS "Un-def|
00000450  69 6e 65 64 20 4d 65 67  61 46 6f 6e 74 20 63 6f  |ined MegaFont co|
00000460  64 65 22 3a 42 52 4b 0d  00 aa e9 2e 6d 66 63 6f  |de":BRK.....mfco|
00000470  64 65 5f 69 6e 74 65 72  70 72 65 74 65 72 5f 66  |de_interpreter_f|
00000480  6f 6e 74 5f 74 6f 67 67  6c 65 3a 4c 44 58 20 23  |ont_toggle:LDX #|
00000490  32 30 37 3a 53 54 58 20  26 38 32 2b 31 3a 54 59  |207:STX &82+1:TY|
000004a0  41 3a 53 42 43 20 23 38  3a 42 4d 49 20 74 6f 67  |A:SBC #8:BMI tog|
000004b0  67 6c 65 5f 6d 66 73 3a  43 4d 50 20 23 35 3a 42  |gle_mfs:CMP #5:B|
000004c0  45 51 20 72 65 73 65 74  5f 6d 66 5f 73 74 79 6c  |EQ reset_mf_styl|
000004d0  65 5f 66 6c 61 67 73 5f  63 6f 6d 6d 61 6e 64 3a  |e_flags_command:|
000004e0  43 4d 50 20 23 36 3a 42  45 51 20 6f 75 74 70 75  |CMP #6:BEQ outpu|
000004f0  74 5f 6c 69 6e 65 5f 66  65 65 64 3a 43 4d 50 20  |t_line_feed:CMP |
00000500  23 37 3a 42 45 51 20 63  68 61 6e 67 65 5f 6d 66  |#7:BEQ change_mf|
00000510  5f 66 6f 72 65 67 72 6f  75 6e 64 5f 63 6f 6c 6f  |_foreground_colo|
00000520  75 72 3a 43 4d 50 20 23  38 3a 42 45 51 20 63 68  |ur:CMP #8:BEQ ch|
00000530  61 6e 67 65 5f 6d 66 5f  62 61 63 6b 67 72 6f 75  |ange_mf_backgrou|
00000540  6e 64 5f 63 6f 6c 6f 75  72 3a 43 4d 50 20 23 39  |nd_colour:CMP #9|
00000550  0d 00 b4 25 42 45 51 20  6f 75 74 70 75 74 5f 6d  |...%BEQ output_m|
00000560  66 5f 63 6f 6e 74 72 6f  6c 5f 63 6f 64 65 5f 73  |f_control_code_s|
00000570  79 6d 62 6f 6c 0d 00 be  6a 2e 74 6f 67 67 6c 65  |ymbol...j.toggle|
00000580  5f 6d 66 5f 70 6f 73 69  74 69 6f 6e 5f 66 6c 61  |_mf_position_fla|
00000590  67 3a 41 44 43 20 23 31  3a 43 4d 50 20 26 38 35  |g:ADC #1:CMP &85|
000005a0  3a 42 45 51 20 63 6c 65  61 72 5f 6d 66 5f 70 6f  |:BEQ clear_mf_po|
000005b0  73 69 74 69 6f 6e 5f 66  6c 61 67 3a 53 54 41 20  |sition_flag:STA |
000005c0  26 38 35 3a 4a 4d 50 20  6d 66 63 6f 64 65 5f 69  |&85:JMP mfcode_i|
000005d0  6e 74 65 72 70 72 65 74  65 72 5f 65 78 69 74 0d  |nterpreter_exit.|
000005e0  00 c8 46 2e 63 6c 65 61  72 5f 6d 66 5f 70 6f 73  |..F.clear_mf_pos|
000005f0  69 74 69 6f 6e 5f 66 6c  61 67 3a 4c 44 41 20 23  |ition_flag:LDA #|
00000600  30 3a 53 54 41 20 26 38  35 3a 4a 4d 50 20 6d 66  |0:STA &85:JMP mf|
00000610  63 6f 64 65 5f 69 6e 74  65 72 70 72 65 74 65 72  |code_interpreter|
00000620  5f 65 78 69 74 0d 00 d2  4e 2e 74 6f 67 67 6c 65  |_exit...N.toggle|
00000630  5f 6d 66 73 3a 4c 44 41  20 23 31 3a 53 54 41 20  |_mfs:LDA #1:STA |
00000640  26 38 32 3a 43 50 59 20  23 30 3a 42 45 51 20 74  |&82:CPY #0:BEQ t|
00000650  6f 67 67 6c 65 5f 6d 66  73 5f 65 78 69 74 3a 53  |oggle_mfs_exit:S|
00000660  54 59 20 26 38 32 2b 31  3a 4c 44 58 20 23 30 3a  |TY &82+1:LDX #0:|
00000670  43 4c 43 0d 00 dc 46 2e  74 6f 67 67 6c 65 5f 6d  |CLC...F.toggle_m|
00000680  66 73 5f 6c 6f 6f 70 3a  41 44 43 20 26 38 32 3a  |fs_loop:ADC &82:|
00000690  53 54 41 20 26 38 32 3a  49 4e 58 3a 43 50 58 20  |STA &82:INX:CPX |
000006a0  26 38 32 2b 31 3a 42 4e  45 20 74 6f 67 67 6c 65  |&82+1:BNE toggle|
000006b0  5f 6d 66 73 5f 6c 6f 6f  70 0d 00 e6 46 2e 74 6f  |_mfs_loop...F.to|
000006c0  67 67 6c 65 5f 6d 66 73  5f 65 78 69 74 3a 4c 44  |ggle_mfs_exit:LD|
000006d0  41 20 26 38 34 3a 82 20  26 38 32 3a 53 54 41 20  |A &84:. &82:STA |
000006e0  26 38 34 3a 4a 4d 50 20  6d 66 63 6f 64 65 5f 69  |&84:JMP mfcode_i|
000006f0  6e 74 65 72 70 72 65 74  65 72 5f 65 78 69 74 0d  |nterpreter_exit.|
00000700  00 f0 5d 2e 6f 75 74 70  75 74 5f 6d 66 5f 63 6f  |..].output_mf_co|
00000710  6e 74 72 6f 6c 5f 63 6f  64 65 5f 73 79 6d 62 6f  |ntrol_code_symbo|
00000720  6c 3a 4c 44 41 20 6d 66  5f 63 6f 6e 74 72 6f 6c  |l:LDA mf_control|
00000730  5f 63 6f 64 65 5f 73 79  6d 62 6f 6c 3a 53 54 41  |_code_symbol:STA|
00000740  20 26 37 31 3a 4a 4d 50  20 6d 66 5f 64 65 66 69  | &71:JMP mf_defi|
00000750  6e 65 5f 63 68 61 72 61  63 74 65 72 0d 00 fa 28  |ne_character...(|
00000760  2e 63 68 61 6e 67 65 5f  6d 66 5f 62 61 63 6b 67  |.change_mf_backg|
00000770  72 6f 75 6e 64 5f 63 6f  6c 6f 75 72 3a 4c 44 58  |round_colour:LDX|
00000780  20 23 37 39 0d 01 04 83  2e 63 68 61 6e 67 65 5f  | #79.....change_|
00000790  6d 66 5f 66 6f 72 65 67  72 6f 75 6e 64 5f 63 6f  |mf_foreground_co|
000007a0  6c 6f 75 72 3a 53 54 41  20 26 38 32 2b 31 3a 4a  |lour:STA &82+1:J|
000007b0  53 52 20 69 6e 63 72 65  61 73 65 5f 6d 66 5f 6c  |SR increase_mf_l|
000007c0  6f 6f 70 5f 63 6f 75 6e  74 65 72 3a 41 44 43 20  |oop_counter:ADC |
000007d0  26 38 32 2b 31 3a 54 41  59 3a 4a 53 52 20 63 68  |&82+1:TAY:JSR ch|
000007e0  61 6e 67 65 5f 63 6f 6c  6f 75 72 3a 4a 4d 50 20  |ange_colour:JMP |
000007f0  6d 66 63 6f 64 65 5f 69  6e 74 65 72 70 72 65 74  |mfcode_interpret|
00000800  65 72 5f 65 78 69 74 0d  01 0e 3b 2e 6f 75 74 70  |er_exit...;.outp|
00000810  75 74 5f 6c 69 6e 65 5f  66 65 65 64 3a 4a 53 52  |ut_line_feed:JSR|
00000820  20 26 46 46 45 37 3a 4a  4d 50 20 6d 66 63 6f 64  | &FFE7:JMP mfcod|
00000830  65 5f 69 6e 74 65 72 70  72 65 74 65 72 5f 65 78  |e_interpreter_ex|
00000840  69 74 0d 01 18 3a 2e 72  65 73 65 74 5f 6d 66 5f  |it...:.reset_mf_|
00000850  73 74 79 6c 65 5f 66 6c  61 67 73 5f 63 6f 6d 6d  |style_flags_comm|
00000860  61 6e 64 3a 4a 53 52 20  72 65 73 65 74 5f 6d 66  |and:JSR reset_mf|
00000870  5f 73 74 79 6c 65 5f 66  6c 61 67 73 0d 01 22 54  |_style_flags.."T|
00000880  2e 6d 66 63 6f 64 65 5f  69 6e 74 65 72 70 72 65  |.mfcode_interpre|
00000890  74 65 72 5f 65 78 69 74  3a 4a 53 52 20 69 6e 63  |ter_exit:JSR inc|
000008a0  72 65 61 73 65 5f 6d 66  5f 6c 6f 6f 70 5f 63 6f  |rease_mf_loop_co|
000008b0  75 6e 74 65 72 3a 4c 44  59 20 23 30 3a 53 54 59  |unter:LDY #0:STY|
000008c0  20 26 38 32 3a 4a 4d 50  20 6d 66 5f 6c 6f 6f 70  | &82:JMP mf_loop|
000008d0  0d 01 2c 5d 2e 72 65 73  65 74 5f 6d 66 5f 73 74  |..,].reset_mf_st|
000008e0  79 6c 65 5f 66 6c 61 67  73 3a 4c 44 59 20 23 37  |yle_flags:LDY #7|
000008f0  3a 4a 53 52 20 63 68 61  6e 67 65 5f 63 6f 6c 6f  |:JSR change_colo|
00000900  75 72 3a 4c 44 59 20 23  31 32 38 3a 4a 53 52 20  |ur:LDY #128:JSR |
00000910  63 68 61 6e 67 65 5f 63  6f 6c 6f 75 72 3a 4c 44  |change_colour:LD|
00000920  41 20 23 30 3a 4c 44 58  20 23 26 38 32 0d 01 36  |A #0:LDX #&82..6|
00000930  57 2e 72 65 73 65 74 5f  6d 66 5f 73 74 79 6c 65  |W.reset_mf_style|
00000940  5f 66 6c 61 67 73 5f 6c  6f 6f 70 3a 53 54 41 20  |_flags_loop:STA |
00000950  30 2c 58 3a 49 4e 58 3a  43 50 58 20 23 26 38 35  |0,X:INX:CPX #&85|
00000960  2b 31 3a 42 4e 45 20 72  65 73 65 74 5f 6d 66 5f  |+1:BNE reset_mf_|
00000970  73 74 79 6c 65 5f 66 6c  61 67 73 5f 6c 6f 6f 70  |style_flags_loop|
00000980  3a 52 54 53 0d 01 40 36  2e 63 68 61 6e 67 65 5f  |:RTS..@6.change_|
00000990  63 6f 6c 6f 75 72 3a 4c  44 41 20 23 31 37 3a 4a  |colour:LDA #17:J|
000009a0  53 52 20 26 46 46 45 45  3a 54 59 41 3a 4a 53 52  |SR &FFEE:TYA:JSR|
000009b0  20 26 46 46 45 45 3a 52  54 53 0d 01 4a 35 2e 6d  | &FFEE:RTS..J5.m|
000009c0  66 63 6f 64 65 5f 64 61  74 61 5f 62 6c 6f 63 6b  |fcode_data_block|
000009d0  5f 73 74 61 72 74 3a 45  51 55 53 20 22 42 49 55  |_start:EQUS "BIU|
000009e0  48 52 46 44 53 32 2b 2d  4f 43 4e 2e 58 59 22 0d  |HRFDS2+-OCN.XY".|
000009f0  01 54 24 2e 6d 66 5f 63  6f 6e 74 72 6f 6c 5f 63  |.T$.mf_control_c|
00000a00  6f 64 65 5f 73 79 6d 62  6f 6c 3a 45 51 55 42 20  |ode_symbol:EQUB |
00000a10  31 32 34 0d 01 5e 1a 2e  6d 66 63 6f 64 65 5f 64  |124..^..mfcode_d|
00000a20  61 74 61 5f 62 6c 6f 63  6b 5f 65 6e 64 0d 01 68  |ata_block_end..h|
00000a30  3d 2e 72 65 73 75 6d 65  5f 6c 6f 6f 70 3a 4c 44  |=.resume_loop:LD|
00000a40  41 20 23 26 31 37 3a 4a  53 52 20 26 46 46 45 45  |A #&17:JSR &FFEE|
00000a50  3a 4c 44 41 20 23 26 46  46 3a 4a 53 52 20 26 46  |:LDA #&FF:JSR &F|
00000a60  46 45 45 3a 4c 44 58 20  23 30 0d 01 72 4b 2e 72  |FEE:LDX #0..rK.r|
00000a70  65 73 75 6d 65 5f 6c 6f  6f 70 5f 6c 6f 6f 70 3a  |esume_loop_loop:|
00000a80  4c 44 41 20 26 37 31 2b  31 2c 58 3a 4a 53 52 20  |LDA &71+1,X:JSR |
00000a90  26 46 46 45 45 3a 49 4e  58 3a 43 50 58 20 23 38  |&FFEE:INX:CPX #8|
00000aa0  3a 42 4e 45 20 72 65 73  75 6d 65 5f 6c 6f 6f 70  |:BNE resume_loop|
00000ab0  5f 6c 6f 6f 70 0d 01 7c  2b 2e 6f 75 74 70 75 74  |_loop..|+.output|
00000ac0  5f 6d 66 5f 63 68 61 72  61 63 74 65 72 3a 4c 44  |_mf_character:LD|
00000ad0  41 20 23 26 46 46 3a 4a  53 52 20 26 46 46 45 45  |A #&FF:JSR &FFEE|
00000ae0  0d 01 86 3e 2e 6d 66 5f  6c 6f 6f 70 5f 63 6f 6e  |...>.mf_loop_con|
00000af0  74 69 6e 75 65 3a 4a 53  52 20 69 6e 63 72 65 61  |tinue:JSR increa|
00000b00  73 65 5f 6d 66 5f 6c 6f  6f 70 5f 63 6f 75 6e 74  |se_mf_loop_count|
00000b10  65 72 3a 4a 4d 50 20 6d  66 5f 6c 6f 6f 70 0d 01  |er:JMP mf_loop..|
00000b20  90 a0 2e 6d 66 5f 73 6d  61 6c 6c 5f 63 61 70 73  |...mf_small_caps|
00000b30  3a 4c 44 41 20 26 38 35  3a 43 4d 50 20 23 35 3a  |:LDA &85:CMP #5:|
00000b40  42 4e 45 20 6d 66 5f 64  65 66 69 6e 65 5f 63 68  |BNE mf_define_ch|
00000b50  61 72 61 63 74 65 72 3a  4c 44 41 20 26 37 31 3a  |aracter:LDA &71:|
00000b60  53 42 43 20 23 39 37 3a  42 4d 49 20 6d 66 5f 64  |SBC #97:BMI mf_d|
00000b70  65 66 69 6e 65 5f 63 68  61 72 61 63 74 65 72 3a  |efine_character:|
00000b80  53 42 43 20 23 32 36 3a  42 50 4c 20 6d 66 5f 64  |SBC #26:BPL mf_d|
00000b90  65 66 69 6e 65 5f 63 68  61 72 61 63 74 65 72 3a  |efine_character:|
00000ba0  41 44 43 20 23 39 31 3a  53 54 41 20 26 37 31 3a  |ADC #91:STA &71:|
00000bb0  4c 44 41 20 23 36 3a 53  54 41 20 26 38 35 0d 01  |LDA #6:STA &85..|
00000bc0  9a 3a 2e 6d 66 5f 64 65  66 69 6e 65 5f 63 68 61  |.:.mf_define_cha|
00000bd0  72 61 63 74 65 72 3a 4c  44 41 20 23 26 41 3a 4c  |racter:LDA #&A:L|
00000be0  44 58 20 23 26 37 31 3a  4c 44 59 20 23 30 3a 4a  |DX #&71:LDY #0:J|
00000bf0  53 52 20 26 46 46 46 31  0d 01 a4 36 2e 6d 66 5f  |SR &FFF1...6.mf_|
00000c00  62 6f 6c 64 3a 4c 44 41  20 26 38 34 3a 84 41 20  |bold:LDA &84:.A |
00000c10  23 31 3a 43 4d 50 20 26  38 34 3a 42 4e 45 20 6d  |#1:CMP &84:BNE m|
00000c20  66 5f 66 61 69 6e 74 3a  4c 44 58 20 23 30 0d 01  |f_faint:LDX #0..|
00000c30  ae 56 2e 6d 66 5f 62 6f  6c 64 5f 6c 6f 6f 70 3a  |.V.mf_bold_loop:|
00000c40  4c 44 41 20 26 37 31 2b  31 2c 58 3a 41 53 4c 20  |LDA &71+1,X:ASL |
00000c50  41 3a 84 41 20 26 37 31  2b 31 2c 58 3a 53 54 41  |A:.A &71+1,X:STA|
00000c60  20 26 37 31 2b 31 2c 58  3a 49 4e 58 3a 43 50 58  | &71+1,X:INX:CPX|
00000c70  20 23 38 3a 42 4e 45 20  6d 66 5f 62 6f 6c 64 5f  | #8:BNE mf_bold_|
00000c80  6c 6f 6f 70 0d 01 b8 3b  2e 6d 66 5f 66 61 69 6e  |loop...;.mf_fain|
00000c90  74 3a 4c 44 41 20 26 38  34 3a 84 41 20 23 26 32  |t:LDA &84:.A #&2|
00000ca0  30 3a 43 4d 50 20 26 38  34 3a 42 4e 45 20 6d 66  |0:CMP &84:BNE mf|
00000cb0  5f 64 69 67 69 74 61 6c  3a 4c 44 58 20 23 30 0d  |_digital:LDX #0.|
00000cc0  01 c2 57 2e 6d 66 5f 66  61 69 6e 74 5f 6c 6f 6f  |..W.mf_faint_loo|
00000cd0  70 3a 4c 44 41 20 26 37  31 2b 31 2c 58 3a 41 53  |p:LDA &71+1,X:AS|
00000ce0  4c 20 41 3a 80 20 26 37  31 2b 31 2c 58 3a 53 54  |L A:. &71+1,X:ST|
00000cf0  41 20 26 37 31 2b 31 2c  58 3a 49 4e 58 3a 43 50  |A &71+1,X:INX:CP|
00000d00  58 20 23 38 3a 42 4e 45  20 6d 66 5f 66 61 69 6e  |X #8:BNE mf_fain|
00000d10  74 5f 6c 6f 6f 70 0d 01  cc 99 2e 6d 66 5f 64 69  |t_loop.....mf_di|
00000d20  67 69 74 61 6c 3a 4c 44  41 20 26 38 34 3a 84 41  |gital:LDA &84:.A|
00000d30  20 23 26 34 30 3a 43 4d  50 20 26 38 34 3a 42 4e  | #&40:CMP &84:BN|
00000d40  45 20 6d 66 5f 73 68 61  64 6f 77 3a 4c 44 59 23  |E mf_shadow:LDY#|
00000d50  33 3a 53 54 59 20 26 38  32 3a 4c 44 41 20 26 37  |3:STY &82:LDA &7|
00000d60  31 3a 4c 44 58 20 23 30  3a 53 42 43 20 23 39 36  |1:LDX #0:SBC #96|
00000d70  3a 42 4d 49 20 6d 66 5f  64 69 67 69 74 61 6c 5f  |:BMI mf_digital_|
00000d80  6c 6f 6f 70 3a 53 42 43  20 23 32 37 3a 42 50 4c  |loop:SBC #27:BPL|
00000d90  20 6d 66 5f 64 69 67 69  74 61 6c 5f 6c 6f 6f 70  | mf_digital_loop|
00000da0  3a 4c 44 59 20 23 34 3a  53 54 59 20 26 38 32 0d  |:LDY #4:STY &82.|
00000db0  01 d6 5c 2e 6d 66 5f 64  69 67 69 74 61 6c 5f 6c  |..\.mf_digital_l|
00000dc0  6f 6f 70 3a 4c 44 41 20  26 37 31 2b 31 2c 58 3a  |oop:LDA &71+1,X:|
00000dd0  41 53 4c 20 41 3a 80 20  26 37 31 2b 31 2c 58 3a  |ASL A:. &71+1,X:|
00000de0  53 54 41 20 26 37 31 2b  31 2c 58 3a 49 4e 58 3a  |STA &71+1,X:INX:|
00000df0  43 50 58 20 26 38 32 3a  42 4e 45 20 6d 66 5f 64  |CPX &82:BNE mf_d|
00000e00  69 67 69 74 61 6c 5f 6c  6f 6f 70 0d 01 e0 3b 2e  |igital_loop...;.|
00000e10  6d 66 5f 73 68 61 64 6f  77 3a 4c 44 41 20 26 38  |mf_shadow:LDA &8|
00000e20  34 3a 84 41 20 23 26 38  30 3a 43 4d 50 20 26 38  |4:.A #&80:CMP &8|
00000e30  34 3a 42 4e 45 20 6d 66  5f 69 74 61 6c 69 63 3a  |4:BNE mf_italic:|
00000e40  4c 44 58 20 23 30 0d 01  ea 63 2e 6d 66 5f 73 68  |LDX #0...c.mf_sh|
00000e50  61 64 6f 77 5f 6c 6f 6f  70 3a 4c 44 41 20 26 37  |adow_loop:LDA &7|
00000e60  31 2b 31 2c 58 3a 41 53  4c 20 41 3a 80 20 26 37  |1+1,X:ASL A:. &7|
00000e70  31 2b 31 2c 58 3a 82 20  26 37 31 2b 31 2c 58 3a  |1+1,X:. &71+1,X:|
00000e80  53 54 41 20 26 37 31 2b  31 2c 58 3a 49 4e 58 3a  |STA &71+1,X:INX:|
00000e90  43 50 58 20 23 38 3a 42  4e 45 20 6d 66 5f 73 68  |CPX #8:BNE mf_sh|
00000ea0  61 64 6f 77 5f 6c 6f 6f  70 0d 01 f4 43 2e 6d 66  |adow_loop...C.mf|
00000eb0  5f 69 74 61 6c 69 63 3a  4c 44 41 20 26 38 34 3a  |_italic:LDA &84:|
00000ec0  84 41 20 23 32 3a 43 4d  50 20 26 38 34 3a 42 4e  |.A #2:CMP &84:BN|
00000ed0  45 20 6d 66 5f 64 6f 75  62 6c 65 5f 75 6e 64 65  |E mf_double_unde|
00000ee0  72 6c 69 6e 65 3a 4c 44  58 20 23 30 0d 01 fe 9f  |rline:LDX #0....|
00000ef0  2e 6d 66 5f 69 74 61 6c  69 63 5f 6c 6f 6f 70 3a  |.mf_italic_loop:|
00000f00  4c 44 41 20 26 37 31 2b  31 2c 58 3a 4c 53 52 20  |LDA &71+1,X:LSR |
00000f10  41 3a 53 54 41 20 26 37  31 2b 31 2c 58 3a 4c 44  |A:STA &71+1,X:LD|
00000f20  41 20 26 37 31 2b 36 2c  58 3a 41 53 4c 20 41 3a  |A &71+6,X:ASL A:|
00000f30  53 54 41 20 26 37 31 2b  36 2c 58 3a 49 4e 58 3a  |STA &71+6,X:INX:|
00000f40  43 50 58 20 23 32 3a 42  4e 45 20 6d 66 5f 69 74  |CPX #2:BNE mf_it|
00000f50  61 6c 69 63 5f 6c 6f 6f  70 3a 4c 44 41 20 26 37  |alic_loop:LDA &7|
00000f60  31 2b 38 3a 41 53 4c 20  41 3a 53 54 41 20 26 37  |1+8:ASL A:STA &7|
00000f70  31 2b 38 3a 4a 4d 50 20  6d 66 5f 64 6f 75 62 6c  |1+8:JMP mf_doubl|
00000f80  65 5f 75 6e 64 65 72 6c  69 6e 65 0d 02 08 27 2e  |e_underline...'.|
00000f90  72 65 73 75 6d 65 5f 6c  6f 6f 70 5f 73 74 65 70  |resume_loop_step|
00000fa0  5f 31 3a 4a 4d 50 20 72  65 73 75 6d 65 5f 6c 6f  |_1:JMP resume_lo|
00000fb0  6f 70 0d 02 12 8a 2e 63  6f 6d 70 72 65 73 73 3a  |op.....compress:|
00000fc0  4c 44 41 20 26 37 31 2b  33 3a 53 54 41 20 26 37  |LDA &71+3:STA &7|
00000fd0  31 2b 32 3a 4c 44 41 20  26 37 31 2b 34 3a 53 54  |1+2:LDA &71+4:ST|
00000fe0  41 20 26 37 31 2b 33 3a  4c 44 41 20 26 37 31 2b  |A &71+3:LDA &71+|
00000ff0  36 3a 53 54 41 20 26 37  31 2b 34 3a 4c 44 41 20  |6:STA &71+4:LDA |
00001000  26 37 31 2b 38 3a 53 54  41 20 26 37 31 2b 36 3a  |&71+8:STA &71+6:|
00001010  4c 44 58 20 26 37 31 2b  35 3a 4c 44 41 20 26 37  |LDX &71+5:LDA &7|
00001020  31 2b 36 3a 43 4d 50 20  23 30 3a 42 4e 45 20 63  |1+6:CMP #0:BNE c|
00001030  6f 6d 70 72 65 73 73 5f  65 78 69 74 0d 02 1c ab  |ompress_exit....|
00001040  4c 44 41 20 26 37 31 3a  43 4d 50 20 23 97 22 65  |LDA &71:CMP #."e|
00001050  22 3a 42 45 51 20 6e 6f  74 61 69 6c 32 3a 43 4d  |":BEQ notail2:CM|
00001060  50 20 23 97 22 73 22 3a  42 45 51 20 6e 6f 74 61  |P #."s":BEQ nota|
00001070  69 6c 32 3a 43 4d 50 20  23 97 22 3f 22 3a 42 45  |il2:CMP #."?":BE|
00001080  51 20 6e 6f 74 61 69 6c  32 3a 43 4d 50 20 23 97  |Q notail2:CMP #.|
00001090  22 21 22 3a 42 45 51 20  6e 6f 74 61 69 6c 32 3a  |"!":BEQ notail2:|
000010a0  43 4d 50 20 23 97 22 35  22 3a 42 45 51 20 6e 6f  |CMP #."5":BEQ no|
000010b0  74 61 69 6c 32 3a 43 4d  50 20 23 97 22 78 22 3a  |tail2:CMP #."x":|
000010c0  42 45 51 20 6e 6f 74 61  69 6c 32 3a 53 54 58 20  |BEQ notail2:STX |
000010d0  26 37 31 2b 34 3a 4a 4d  50 20 63 6f 6d 70 72 65  |&71+4:JMP compre|
000010e0  73 73 5f 65 78 69 74 0d  02 26 58 2e 6e 6f 74 61  |ss_exit..&X.nota|
000010f0  69 6c 32 3a 53 54 58 20  26 37 31 2b 33 3a 2e 63  |il2:STX &71+3:.c|
00001100  6f 6d 70 72 65 73 73 5f  65 78 69 74 3a 4c 44 41  |ompress_exit:LDA|
00001110  20 26 37 31 2b 37 3a 53  54 41 20 26 37 31 2b 35  | &71+7:STA &71+5|
00001120  3a 4c 44 41 20 23 30 3a  53 54 41 20 26 37 31 2b  |:LDA #0:STA &71+|
00001130  37 3a 53 54 41 20 26 37  31 2b 38 3a 52 54 53 0d  |7:STA &71+8:RTS.|
00001140  02 30 97 2e 6d 66 5f 64  6f 75 62 6c 65 5f 75 6e  |.0..mf_double_un|
00001150  64 65 72 6c 69 6e 65 3a  4c 44 41 20 26 38 35 3a  |derline:LDA &85:|
00001160  43 4d 50 20 23 31 3a 42  4e 45 20 6d 66 5f 73 75  |CMP #1:BNE mf_su|
00001170  70 65 72 73 63 72 69 70  74 3a 4a 53 52 20 63 6f  |perscript:JSR co|
00001180  6d 70 72 65 73 73 3a 4c  44 41 20 23 26 46 46 3a  |mpress:LDA #&FF:|
00001190  53 54 41 20 26 37 31 2b  38 3a 4c 44 58 20 26 37  |STA &71+8:LDX &7|
000011a0  31 2b 36 3a 43 50 58 20  23 30 3a 42 4e 45 20 6d  |1+6:CPX #0:BNE m|
000011b0  66 5f 72 75 6c 65 5f 6a  75 6d 70 3a 53 54 41 20  |f_rule_jump:STA |
000011c0  26 37 31 2b 36 3a 4a 4d  50 20 6d 66 5f 72 75 6c  |&71+6:JMP mf_rul|
000011d0  65 5f 6a 75 6d 70 0d 02  3a 51 2e 6d 66 5f 73 75  |e_jump..:Q.mf_su|
000011e0  70 65 72 73 63 72 69 70  74 3a 4c 44 41 20 26 38  |perscript:LDA &8|
000011f0  35 3a 43 4d 50 20 23 32  3a 42 4e 45 20 6d 66 5f  |5:CMP #2:BNE mf_|
00001200  73 75 62 73 63 72 69 70  74 3a 4a 53 52 20 63 6f  |subscript:JSR co|
00001210  6d 70 72 65 73 73 3a 4a  4d 50 20 6d 66 5f 75 6e  |mpress:JMP mf_un|
00001220  64 65 72 6c 69 6e 65 0d  02 44 4e 2e 6d 66 5f 73  |derline..DN.mf_s|
00001230  75 62 73 63 72 69 70 74  3a 4c 44 41 20 26 38 35  |ubscript:LDA &85|
00001240  3a 43 4d 50 20 23 36 3a  42 45 51 20 6d 66 5f 73  |:CMP #6:BEQ mf_s|
00001250  75 62 73 63 72 69 70 74  5f 72 65 73 75 6d 65 3a  |ubscript_resume:|
00001260  43 4d 50 20 23 33 3a 42  4e 45 20 6d 66 5f 6f 75  |CMP #3:BNE mf_ou|
00001270  74 6c 69 6e 65 0d 02 4e  2c 2e 6d 66 5f 73 75 62  |tline..N,.mf_sub|
00001280  73 63 72 69 70 74 5f 72  65 73 75 6d 65 3a 4a 53  |script_resume:JS|
00001290  52 20 63 6f 6d 70 72 65  73 73 3a 4c 44 58 20 23  |R compress:LDX #|
000012a0  35 0d 02 58 a5 2e 6d 66  5f 73 75 62 73 63 72 69  |5..X..mf_subscri|
000012b0  70 74 5f 6c 6f 6f 70 3a  4c 44 41 20 26 37 31 2b  |pt_loop:LDA &71+|
000012c0  31 2c 58 3a 53 54 41 20  26 37 31 2b 33 2c 58 3a  |1,X:STA &71+3,X:|
000012d0  44 45 58 3a 43 50 58 20  23 26 46 46 3a 42 4e 45  |DEX:CPX #&FF:BNE|
000012e0  20 6d 66 5f 73 75 62 73  63 72 69 70 74 5f 6c 6f  | mf_subscript_lo|
000012f0  6f 70 3a 4c 44 41 20 23  30 3a 53 54 41 20 26 37  |op:LDA #0:STA &7|
00001300  31 2b 31 3a 53 54 41 20  26 37 31 2b 32 3a 4c 44  |1+1:STA &71+2:LD|
00001310  41 20 23 36 3a 43 4d 50  20 26 38 35 3a 42 4e 45  |A #6:CMP &85:BNE|
00001320  20 6d 66 5f 75 6e 64 65  72 6c 69 6e 65 3a 44 45  | mf_underline:DE|
00001330  43 20 26 38 35 3a 4a 4d  50 20 6d 66 5f 75 6e 64  |C &85:JMP mf_und|
00001340  65 72 6c 69 6e 65 0d 02  62 1d 2e 6d 66 5f 72 75  |erline..b..mf_ru|
00001350  6c 65 5f 6a 75 6d 70 3a  4a 4d 50 20 6d 66 5f 72  |le_jump:JMP mf_r|
00001360  75 6c 65 0d 02 6c 57 2e  6d 66 5f 6f 75 74 6c 69  |ule..lW.mf_outli|
00001370  6e 65 3a 4c 44 41 20 26  38 35 3a 43 4d 50 20 23  |ne:LDA &85:CMP #|
00001380  34 3a 42 4e 45 20 6d 66  5f 75 6e 64 65 72 6c 69  |4:BNE mf_underli|
00001390  6e 65 3a 4a 53 52 20 63  6f 6d 70 72 65 73 73 3a  |ne:JSR compress:|
000013a0  4c 44 41 20 26 37 31 2b  36 3a 53 54 41 20 26 37  |LDA &71+6:STA &7|
000013b0  31 2b 38 3a 4c 44 58 20  23 35 0d 02 76 72 2e 6d  |1+8:LDX #5..vr.m|
000013c0  66 5f 6f 75 74 6c 69 6e  65 5f 6c 6f 6f 70 3a 4c  |f_outline_loop:L|
000013d0  44 41 20 26 37 31 2b 31  2c 58 3a 41 53 4c 20 41  |DA &71+1,X:ASL A|
000013e0  3a 53 54 41 20 26 38 32  3a 4c 44 41 20 26 37 31  |:STA &82:LDA &71|
000013f0  2b 31 2c 58 3a 4c 53 52  20 41 3a 84 41 20 26 38  |+1,X:LSR A:.A &8|
00001400  32 3a 43 50 58 20 23 30  3a 42 45 51 20 6d 66 5f  |2:CPX #0:BEQ mf_|
00001410  6f 75 74 6c 69 6e 65 5f  6c 6f 6f 70 5f 72 65 73  |outline_loop_res|
00001420  75 6d 65 3a 84 41 20 26  37 31 2c 58 0d 02 80 6e  |ume:.A &71,X...n|
00001430  2e 6d 66 5f 6f 75 74 6c  69 6e 65 5f 6c 6f 6f 70  |.mf_outline_loop|
00001440  5f 72 65 73 75 6d 65 3a  84 41 20 26 37 31 2b 32  |_resume:.A &71+2|
00001450  2c 58 3a 82 20 26 37 31  2b 31 2c 58 3a 53 54 41  |,X:. &71+1,X:STA|
00001460  20 26 37 31 2b 32 2c 58  3a 44 45 58 3a 43 50 58  | &71+2,X:DEX:CPX|
00001470  20 23 26 46 46 3a 42 4e  45 20 6d 66 5f 6f 75 74  | #&FF:BNE mf_out|
00001480  6c 69 6e 65 5f 6c 6f 6f  70 3a 4a 4d 50 20 6d 66  |line_loop:JMP mf|
00001490  5f 75 6e 64 65 72 6c 69  6e 65 0d 02 8a 2e 2e 72  |_underline.....r|
000014a0  65 73 75 6d 65 5f 6c 6f  6f 70 5f 73 74 65 70 5f  |esume_loop_step_|
000014b0  32 3a 4a 4d 50 20 72 65  73 75 6d 65 5f 6c 6f 6f  |2:JMP resume_loo|
000014c0  70 5f 73 74 65 70 5f 31  0d 02 94 63 2e 6d 66 5f  |p_step_1...c.mf_|
000014d0  75 6e 64 65 72 6c 69 6e  65 3a 4c 44 41 20 26 38  |underline:LDA &8|
000014e0  34 3a 84 41 20 23 34 3a  43 4d 50 20 26 38 34 3a  |4:.A #4:CMP &84:|
000014f0  42 4e 45 20 6d 66 5f 72  75 6c 65 3a 4c 44 41 20  |BNE mf_rule:LDA |
00001500  26 37 31 2b 38 3a 43 4d  50 20 23 30 3a 42 4e 45  |&71+8:CMP #0:BNE|
00001510  20 6d 66 5f 72 75 6c 65  3a 4c 44 41 20 23 26 46  | mf_rule:LDA #&F|
00001520  46 3a 53 54 41 20 26 37  31 2b 38 0d 02 9e 48 2e  |F:STA &71+8...H.|
00001530  6d 66 5f 72 75 6c 65 3a  4c 44 41 20 26 38 34 3a  |mf_rule:LDA &84:|
00001540  84 41 20 23 26 31 30 3a  43 4d 50 20 26 38 34 3a  |.A #&10:CMP &84:|
00001550  42 4e 45 20 6d 66 5f 68  69 67 68 6c 69 67 68 74  |BNE mf_highlight|
00001560  3a 4c 44 41 20 23 26 46  46 3a 53 54 41 20 26 37  |:LDA #&FF:STA &7|
00001570  31 2b 35 0d 02 a8 45 2e  6d 66 5f 68 69 67 68 6c  |1+5...E.mf_highl|
00001580  69 67 68 74 3a 4c 44 41  20 26 38 34 3a 84 41 20  |ight:LDA &84:.A |
00001590  23 38 3a 43 4d 50 20 26  38 34 3a 42 4e 45 20 72  |#8:CMP &84:BNE r|
000015a0  65 73 75 6d 65 5f 6c 6f  6f 70 5f 73 74 65 70 5f  |esume_loop_step_|
000015b0  32 3a 4c 44 58 20 23 30  0d 02 b2 6d 2e 6d 66 5f  |2:LDX #0...m.mf_|
000015c0  68 69 67 68 6c 69 67 68  74 5f 6c 6f 6f 70 3a 4c  |highlight_loop:L|
000015d0  44 41 20 26 37 31 2b 31  2c 58 3a 82 20 23 26 46  |DA &71+1,X:. #&F|
000015e0  46 3a 53 54 41 20 26 37  31 2b 31 2c 58 3a 49 4e  |F:STA &71+1,X:IN|
000015f0  58 3a 43 50 58 20 23 38  3a 42 4e 45 20 6d 66 5f  |X:CPX #8:BNE mf_|
00001600  68 69 67 68 6c 69 67 68  74 5f 6c 6f 6f 70 3a 4a  |highlight_loop:J|
00001610  4d 50 20 72 65 73 75 6d  65 5f 6c 6f 6f 70 5f 73  |MP resume_loop_s|
00001620  74 65 70 5f 32 0d 02 bc  07 5d 3a ed 0d 02 c6 18  |tep_2....]:.....|
00001630  2a 53 41 56 45 20 43 4f  44 45 20 33 44 30 30 20  |*SAVE CODE 3D00 |
00001640  33 46 46 46 0d 02 d0 12  2a 41 43 43 45 53 53 20  |3FFF....*ACCESS |
00001650  43 4f 44 45 20 4c 0d 02  da 20 db 3a f1 8a 35 2c  |CODE L... .:..5,|
00001660  31 30 29 22 53 65 74 20  75 70 20 66 69 6e 6e 69  |10)"Set up finni|
00001670  73 68 65 64 2e 22 0d ff                           |shed."..|
00001678
P/C/MF.m0
P/C/MF.m1
P/C/MF.m2
P/C/MF.m4
P/C/MF.m5