ca65 V2.19 - Git e5f4ca6 Main file : DOS11.ca65 Current file: DOS11.ca65 000000r 1 ; 000000r 1 ; DOS 1.1 from cini.classiccmp.org//systems.htm Rockwell 000000r 1 ; 000000r 1 .setcpu "6502" 000000r 1 ; 000000r 1 ; *** AIM 65 Monitor Routines *** 000000r 1 ; 000000r 1 START := $E182 ; This routine will get a character with '( )' from keyboard/TTY and then will go to the respective command 000000r 1 FROM := $E7A3 ; Outputs "FROM= " to display/printer and enters address 000000r 1 TO := $E7A7 ; Outputs "TO" to display/printer and enters address 000000r 1 QM := $E7D4 ; Outputs "?" to display/printer 000000r 1 BLANK := $E83E ; Outputs one Space to display/printer 000000r 1 LL := $E8FE ; Set I/O to terminal 000000r 1 RCHEK := $E907 ; Scans keyboard, returns to Monitor on ESC, to caller on no entry, wait on SP 000000r 1 RDRUB := $E95F ; Inputs one ASCII character from keyboard to A with echo to display/printer, allows DEL if Y<>0 000000r 1 OUTPUT := $E97A ; Outputs ASCII character in A to display/printer 000000r 1 CRLF := $E9F0 ; Outputs CR, LF & NUL to active output device 000000r 1 CRCK := $EA24 ; Outputs Printer Buffer to Printer 000000r 1 RED1 := $FE96 ; Inputs one character from Keyboard to A, with echo to Display/Printer 000000r 1 ; 000000r 1 .org $D000 00D000 1 ; 00D000 1 20 F0 E9 20 .byte $20,$F0,$E9,$20,$F0,$E9,$20,$2A,$D3 ; ?? 00D004 1 F0 E9 20 2A 00D008 1 D3 00D009 1 ; 00D009 1 20 20 20 41 .byte " AIM DOS (1.1)" 00D00D 1 49 4D 20 44 00D011 1 4F 53 20 20 00D01A 1 00 .byte $00 00D01B 1 ; 00D01B 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D01E 1 A9 7F lda #$7F 00D020 1 8D 0E A0 sta $A00E 00D023 1 A9 00 lda #$00 00D025 1 8D 0B A0 sta $A00B 00D028 1 85 D9 sta $D9 00D02A 1 85 DA sta $DA 00D02C 1 85 DB sta $DB 00D02E 1 AD 0C A8 lda $A80C 00D031 1 09 0C ora #$0C 00D033 1 29 FD and #$FD 00D035 1 8D 0C A8 sta $A80C 00D038 1 AD 02 A8 lda $A802 00D03B 1 09 B0 ora #$B0 00D03D 1 8D 02 A8 sta $A802 00D040 1 AD 00 A8 lda $A800 00D043 1 29 6F and #$6F 00D045 1 09 20 ora #$20 00D047 1 8D 00 A8 sta $A800 00D04A 1 AD 03 A0 lda $A003 00D04D 1 29 FC and #$FC 00D04F 1 8D 03 A0 sta $A003 00D052 1 20 24 EA LD052: jsr CRCK ; Outputs Printer Buffer to Printer 00D055 1 A9 DB lda #$DB 00D057 1 20 7A E9 jsr OUTPUT ; Outputs ASCII character in A to display/printer 00D05A 1 20 96 FE LD05A: jsr RED1 ; Inputs one character from Keyboard to A, with echo to Display/Printer 00D05D 1 48 pha 00D05E 1 A9 5D lda #$5D 00D060 1 20 7A E9 jsr OUTPUT ; Outputs ASCII character in A to display/printer 00D063 1 68 pla 00D064 1 A2 09 ldx #$09 00D066 1 DD 8D D0 LD066: cmp TABLE1,x 00D069 1 F0 0C beq LD077 00D06B 1 CA dex 00D06C 1 10 F8 bpl LD066 00D06E 1 20 D4 E7 jsr QM ; Outputs "?" to display/printer 00D071 1 20 FE E8 jsr LL ; Set I/O to terminal 00D074 1 4C 52 D0 jmp LD052 00D077 1 ; 00D077 1 8A LD077: txa 00D078 1 0A asl a 00D079 1 AA tax 00D07A 1 BD 96 D0 lda TABLE2,x 00D07D 1 85 D0 sta $D0 00D07F 1 BD 97 D0 lda TABLE2+1,x 00D082 1 85 D1 sta $D1 00D084 1 20 8A D0 jsr LD08A 00D087 1 4C 52 D0 jmp LD052 00D08A 1 ; 00D08A 1 6C D0 00 LD08A: jmp ($D0) 00D08D 1 ; 00D08D 1 43 44 48 49 TABLE1: .byte "CDHILRSX?" 00D091 1 4C 52 53 58 00D095 1 3F 00D096 1 ; 00D096 1 A8 D0 TABLE2: .word DISK ; Command C - DISK 00D098 1 C1 D0 .word DIRECT ; Command D - DIRECTORY 00D09A 1 44 D1 .word HELP ; Command H - HELP 00D09C 1 17 D2 .word INQSTA ; Command I - INQUIRE/STATUS 00D09E 1 33 D2 .word LOAD ; Command L - LOAD FILE 00D0A0 1 80 D2 .word REPLAC ; Command R - REPLACE FILE 00D0A2 1 A7 D2 .word SAVE ; Command S - SAVE FILE 00D0A4 1 0B D3 .word EXIT ; Command X - EXIT TO AIM 00D0A6 1 44 D1 .word HELP ; Command ? - SAME AS [H] 00D0A8 1 ; 00D0A8 1 20 2A D3 DISK: jsr LD32A ; *** Command C - DISK *** 00D0AB 1 20 43 4F 4D .byte " COMMAND=" 00D0AF 1 4D 41 4E 44 00D0B3 1 3D 00D0B4 1 00 brk 00D0B5 1 20 BE D3 jsr LD3BE 00D0B8 1 A9 6F lda #$6F 00D0BA 1 20 D4 D3 jsr LD3D4 00D0BD 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D0C0 1 60 rts 00D0C1 1 ; 00D0C1 1 A9 00 DIRECT: lda #$00 ; *** Command D - DIRECTORY *** 00D0C3 1 85 D9 sta $D9 00D0C5 1 20 2A D3 jsr LD32A 00D0C8 1 20 44 49 52 .byte " DIRECTORY=" 00D0CC 1 45 43 54 4F 00D0D0 1 52 59 3D 00D0D3 1 00 brk 00D0D4 1 20 BE D3 jsr LD3BE 00D0D7 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D0DA 1 20 2A D3 jsr LD32A 00D0DD 1 20 44 49 52 .byte " DIRECTORY=" 00D0E1 1 45 43 54 4F 00D0E5 1 52 59 3D 00D0E8 1 00 brk 00D0E9 1 ; 00D0E9 1 A9 F0 lda #$F0 00D0EB 1 20 1F D3 jsr LD31F 00D0EE 1 A9 24 lda #$24 00D0F0 1 20 1E D7 jsr LD71E 00D0F3 1 20 D7 D3 jsr LD3D7 00D0F6 1 A9 60 lda #$60 00D0F8 1 20 14 D3 jsr LD314 00D0FB 1 A0 03 ldy #$03 00D0FD 1 84 D6 LD0FD: sty $D6 00D0FF 1 20 55 D7 jsr LD755 00D102 1 A6 D9 ldx $D9 00D104 1 D0 32 bne LD138 00D106 1 85 D7 sta $D7 00D108 1 20 55 D7 jsr LD755 00D10B 1 A6 D9 ldx $D9 00D10D 1 D0 29 bne LD138 00D10F 1 85 D8 sta $D8 00D111 1 A4 D6 ldy $D6 00D113 1 88 dey 00D114 1 D0 E7 bne LD0FD 00D116 1 20 4C D3 jsr LD34C 00D119 1 20 3E E8 jsr BLANK ; Outputs one Space to display/printer 00D11C 1 20 55 D7 LD11C: jsr LD755 00D11F 1 A6 D9 ldx $D9 00D121 1 D0 15 bne LD138 00D123 1 C9 00 cmp #$00 00D125 1 F0 09 beq LD130 00D127 1 20 7A E9 jsr OUTPUT ; Outputs ASCII character in A to display/printer 00D12A 1 20 07 E9 jsr RCHEK ; Scans keyboard, returns to Monitor on ESC, to caller on no entry, wait on SP 00D12D 1 4C 1C D1 jmp LD11C 00D130 1 ; 00D130 1 20 F0 E9 LD130: jsr CRLF ; Outputs CR, LF & NUL to active output device 00D133 1 A0 02 ldy #$02 00D135 1 4C FD D0 jmp LD0FD 00D138 1 ; 00D138 1 20 30 D7 LD138: jsr LD730 00D13B 1 A9 E0 lda #$E0 00D13D 1 20 1F D3 jsr LD31F 00D140 1 20 40 D7 jsr LD740 00D143 1 60 rts 00D144 1 ; 00D144 1 20 2A D3 HELP: jsr LD32A ; *** Command H - HELP *** 00D147 1 20 43 4F 4D .byte " COMMANDS:" 00D14B 1 4D 41 4E 44 00D14F 1 53 3A 00D151 1 00 brk 00D152 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D155 1 20 2A D3 jsr LD32A 00D158 1 20 43 2D 44 .byte " C-DISK COMMAND" 00D15C 1 49 53 4B 20 00D160 1 43 4F 4D 4D 00D167 1 00 LD1A6: brk 00D168 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D16B 1 20 2A D3 jsr LD32A 00D16E 1 20 44 2D 44 .byte " D-DIRECTORY" 00D172 1 49 52 45 43 00D176 1 54 4F 52 59 00D17A 1 00 brk 00D17B 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D17E 1 20 2A D3 jsr LD32A 00D181 1 20 48 2D 48 .byte " H-HELP (THIS MENU)" 00D185 1 45 4C 50 20 00D189 1 28 54 48 49 00D194 1 00 brk 00D195 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D198 1 20 2A D3 jsr LD32A 00D19B 1 20 49 2D 49 .byte " I-INQUIRE/STATUS" 00D19F 1 4E 51 55 49 00D1A3 1 52 45 2F 53 00D1AC 1 00 brk 00D1AD 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D1B0 1 20 2A D3 jsr LD32A 00D1B3 1 20 4C 2D 4C .byte " L-LOAD FILE" 00D1B7 1 4F 41 44 20 00D1BB 1 46 49 4C 45 00D1BF 1 00 brk 00D1C0 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D1C3 1 20 2A D3 jsr LD32A 00D1C6 1 20 52 2D 52 .byte " R-REPLACE FILE" 00D1CA 1 45 50 4C 41 00D1CE 1 43 45 20 46 00D1D5 1 00 brk 00D1D6 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D1D9 1 20 2A D3 jsr LD32A 00D1DC 1 20 53 2D 53 .byte " S-SAVE FILE" 00D1E0 1 41 56 45 20 00D1E4 1 46 49 4C 45 00D1E8 1 00 brk 00D1E9 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D1EC 1 20 2A D3 jsr LD32A 00D1EF 1 20 58 2D 45 .byte " X-EXIT TO AIM" 00D1F3 1 58 49 54 20 00D1F7 1 54 4F 20 41 00D1FD 1 00 brk 00D1FE 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D201 1 20 2A D3 jsr LD32A 00D204 1 20 3F 2D 53 .byte " ?-SAME AS [H]" 00D208 1 41 4D 45 20 00D20C 1 41 53 20 5B 00D212 1 00 brk 00D213 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D216 1 60 rts 00D217 1 ; 00D217 1 20 3E E8 INQSTA: jsr BLANK ; *** Command I - INQUIRE/STATUS *** 00D21A 1 A9 6F lda #$6F 00D21C 1 20 14 D3 jsr LD314 00D21F 1 20 55 D7 LD21F: jsr LD755 00D222 1 C9 0D cmp #$0D 00D224 1 F0 06 beq LD22C 00D226 1 20 7A E9 jsr OUTPUT ; Outputs ASCII character in A to display/printer 00D229 1 4C 1F D2 jmp LD21F 00D22C 1 ; 00D22C 1 20 F0 E9 LD22C: jsr CRLF ; Outputs CR, LF & NUL to active output device 00D22F 1 20 30 D7 jsr LD730 00D232 1 60 rts 00D233 1 ; 00D233 1 20 2A D3 LOAD: jsr LD32A ; *** Command L - LOAD FILE *** 00D236 1 20 46 49 4C .byte " FILE=" 00D23A 1 45 3D 00D23C 1 00 brk 00D23D 1 20 BE D3 jsr LD3BE 00D240 1 A9 F0 lda #$F0 00D242 1 20 D4 D3 jsr LD3D4 00D245 1 A9 00 lda #$00 00D247 1 85 D9 sta $D9 00D249 1 A9 60 lda #$60 00D24B 1 20 14 D3 jsr LD314 00D24E 1 20 55 D7 jsr LD755 00D251 1 A6 D9 ldx $D9 00D253 1 D0 1C bne LD271 00D255 1 85 D7 sta $D7 00D257 1 20 55 D7 jsr LD755 00D25A 1 A6 D9 ldx $D9 00D25C 1 D0 13 bne LD271 00D25E 1 85 D8 sta $D8 00D260 1 20 55 D7 LD260: jsr LD755 00D263 1 A6 D9 ldx $D9 00D265 1 D0 0A bne LD271 00D267 1 A0 00 ldy #$00 00D269 1 91 D7 sta ($D7),y 00D26B 1 20 45 D3 jsr LD345 00D26E 1 4C 60 D2 jmp LD260 00D271 1 ; 00D271 1 20 30 D7 LD271: jsr LD730 00D274 1 A9 E0 lda #$E0 00D276 1 20 1F D3 jsr LD31F 00D279 1 20 40 D7 jsr LD740 00D27C 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D27F 1 60 rts 00D280 1 ; 00D280 1 20 2A D3 REPLAC: jsr LD32A ; *** Command R - REPLACE FILE *** 00D283 1 20 46 49 4C .byte " FILE=" 00D287 1 45 3D 00D289 1 00 brk 00D28A 1 ; 00D28A 1 20 BE D3 jsr LD3BE 00D28D 1 A9 F1 lda #$F1 00D28F 1 20 1F D3 jsr LD31F 00D292 1 A9 40 lda #$40 00D294 1 20 1E D7 jsr LD71E 00D297 1 A9 30 lda #$30 00D299 1 20 1E D7 jsr LD71E 00D29C 1 A9 3A lda #$3A 00D29E 1 20 1E D7 jsr LD71E 00D2A1 1 20 D7 D3 jsr LD3D7 00D2A4 1 4C B9 D2 jmp LD2B9 00D2A7 1 20 2A D3 SAVE: jsr LD32A ; *** Command S - SAVE FILE *** 00D2AA 1 20 46 49 4C .byte " FILE=" 00D2AE 1 45 3D 00D2B0 1 00 brk 00D2B1 1 ; 00D2B1 1 20 BE D3 jsr LD3BE 00D2B4 1 A9 F1 lda #$F1 00D2B6 1 20 D4 D3 jsr LD3D4 00D2B9 1 20 F0 E9 LD2B9: jsr CRLF ; Outputs CR, LF & NUL to active output device 00D2BC 1 20 3E E8 jsr BLANK 00D2BF 1 20 A3 E7 LD2BF: jsr FROM ; Outputs "FROM= " to display/printer and enters address 00D2C2 1 B0 FB bcs LD2BF 00D2C4 1 20 3E E8 jsr BLANK ; Outputs one Space to display/printer 00D2C7 1 A9 61 lda #$61 00D2C9 1 20 1F D3 jsr LD31F 00D2CC 1 AD 1C A4 lda $A41C 00D2CF 1 85 D7 sta $D7 00D2D1 1 20 1E D7 jsr LD71E 00D2D4 1 AD 1D A4 lda $A41D 00D2D7 1 85 D8 sta $D8 00D2D9 1 20 1E D7 jsr LD71E 00D2DC 1 20 A7 E7 LD2DC: jsr TO ; Outputs "TO" to display/printer and enters address 00D2DF 1 B0 FB bcs LD2DC 00D2E1 1 A0 00 LD2E1: ldy #$00 00D2E3 1 B1 D7 lda ($D7),y 00D2E5 1 20 1E D7 jsr LD71E 00D2E8 1 A5 D7 lda $D7 00D2EA 1 CD 1C A4 cmp $A41C 00D2ED 1 D0 07 bne LD2F6 00D2EF 1 A5 D8 lda $D8 00D2F1 1 CD 1D A4 cmp $A41D 00D2F4 1 F0 06 beq LD2FC 00D2F6 1 20 45 D3 LD2F6: jsr LD345 00D2F9 1 4C E1 D2 jmp LD2E1 00D2FC 1 ; 00D2FC 1 20 40 D7 LD2FC: jsr LD740 00D2FF 1 A9 E1 lda #$E1 00D301 1 20 1F D3 jsr LD31F 00D304 1 20 40 D7 jsr LD740 00D307 1 20 F0 E9 jsr CRLF ; Outputs CR, LF & NUL to active output device 00D30A 1 60 rts 00D30B 1 ; 00D30B 1 ; *** Command X - EXIT TO AIM *** 00D30B 1 20 F0 E9 EXIT: jsr CRLF ; Outputs CR, LF & NUL to active output device 00D30E 1 A2 FF ldx #$FF 00D310 1 9A txs 00D311 1 4C 82 E1 jmp START ; This routine will get a character with '( )' from keyboard/TTY and then will go to the respective command 00D314 1 ; 00D314 1 48 LD314: pha 00D315 1 A9 08 lda #$08 00D317 1 20 4D D6 jsr LD64D 00D31A 1 68 pla 00D31B 1 20 08 D7 jsr LD708 00D31E 1 60 rts 00D31F 1 ; 00D31F 1 48 LD31F: pha 00D320 1 A9 08 lda #$08 00D322 1 20 52 D6 jsr LD652 00D325 1 68 pla 00D326 1 20 FA D6 jsr LD6FA 00D329 1 60 rts 00D32A 1 ; 00D32A 1 68 LD32A: pla 00D32B 1 85 D7 sta $D7 00D32D 1 68 pla 00D32E 1 85 D8 sta $D8 00D330 1 A0 00 ldy #$00 00D332 1 20 45 D3 LD332: jsr LD345 00D335 1 B1 D7 lda ($D7),y 00D337 1 F0 06 beq LD33F 00D339 1 20 7A E9 jsr OUTPUT ; Outputs ASCII character in A to display/printer 00D33C 1 4C 32 D3 jmp LD332 00D33F 1 ; 00D33F 1 20 45 D3 LD33F: jsr LD345 00D342 1 6C D7 00 jmp ($D7) 00D345 1 ; 00D345 1 E6 D7 LD345: inc $D7 00D347 1 D0 02 bne LD34B 00D349 1 E6 D8 inc $D8 00D34B 1 60 LD34B: rts 00D34C 1 ; 00D34C 1 F8 LD34C: sed 00D34D 1 A9 00 lda #$00 00D34F 1 85 D4 sta $D4 00D351 1 85 D2 sta $D2 00D353 1 85 D3 sta $D3 00D355 1 A9 01 lda #$01 00D357 1 85 D5 sta $D5 00D359 1 A0 0A ldy #$0A 00D35B 1 46 D8 LD35B: lsr $D8 00D35D 1 66 D7 ror $D7 00D35F 1 90 0C bcc LD36D 00D361 1 18 clc 00D362 1 A2 01 ldx #$01 00D364 1 B5 D2 LD364: lda $D2,x 00D366 1 75 D4 adc $D4,x 00D368 1 95 D2 sta $D2,x 00D36A 1 CA dex 00D36B 1 10 F7 bpl LD364 00D36D 1 A2 01 LD36D: ldx #$01 00D36F 1 B5 D4 LD36F: lda $D4,x 00D371 1 75 D4 adc $D4,x 00D373 1 95 D4 sta $D4,x 00D375 1 CA dex 00D376 1 10 F7 bpl LD36F 00D378 1 88 dey 00D379 1 D0 E0 bne LD35B 00D37B 1 D8 cld 00D37C 1 A2 00 ldx #$00 00D37E 1 A0 00 ldy #$00 00D380 1 B5 D2 LD380: lda $D2,x 00D382 1 4A lsr a 00D383 1 4A lsr a 00D384 1 4A lsr a 00D385 1 4A lsr a 00D386 1 09 30 ora #$30 00D388 1 99 16 01 sta $0116,y 00D38B 1 C8 iny 00D38C 1 B5 D2 lda $D2,x 00D38E 1 29 0F and #$0F 00D390 1 09 30 ora #$30 00D392 1 99 16 01 sta $0116,y 00D395 1 C8 iny 00D396 1 E8 inx 00D397 1 E0 02 cpx #$02 00D399 1 D0 E5 bne LD380 00D39B 1 A2 00 ldx #$00 00D39D 1 BD 16 01 LD39D: lda $0116,x 00D3A0 1 C9 30 cmp #$30 00D3A2 1 D0 0A bne LD3AE 00D3A4 1 A9 00 lda #$00 00D3A6 1 9D 16 01 sta $0116,x 00D3A9 1 E8 inx 00D3AA 1 E0 03 cpx #$03 00D3AC 1 D0 EF bne LD39D 00D3AE 1 A2 00 LD3AE: ldx #$00 00D3B0 1 BD 16 01 LD3B0: lda $0116,x 00D3B3 1 F0 03 beq LD3B8 00D3B5 1 20 7A E9 jsr OUTPUT ; Outputs ASCII character in A to display/printer 00D3B8 1 E8 LD3B8: inx 00D3B9 1 E0 04 cpx #$04 00D3BB 1 D0 F3 bne LD3B0 00D3BD 1 60 rts 00D3BE 1 ; 00D3BE 1 A0 00 LD3BE: ldy #$00 00D3C0 1 20 5F E9 LD3C0: jsr RDRUB ; Inputs one ASCII character from keyboard to A with echo to display/printer, allows DEL if Y<>0 00D3C3 1 C9 0D cmp #$0D 00D3C5 1 F0 07 beq LD3CE 00D3C7 1 99 16 01 sta $0116,y 00D3CA 1 C8 iny 00D3CB 1 4C C0 D3 jmp LD3C0 00D3CE 1 00D3CE 1 A9 00 LD3CE: lda #$00 00D3D0 1 99 16 01 sta $0116,y 00D3D3 1 60 rts 00D3D4 1 ; 00D3D4 1 20 1F D3 LD3D4: jsr LD31F 00D3D7 1 A9 16 LD3D7: lda #$16 00D3D9 1 85 D7 sta $D7 00D3DB 1 A9 01 lda #$01 00D3DD 1 85 D8 sta $D8 00D3DF 1 A0 00 LD3DF: ldy #$00 00D3E1 1 B1 D7 LD3E1: lda ($D7),y 00D3E3 1 F0 08 beq LD3ED 00D3E5 1 20 1E D7 jsr LD71E 00D3E8 1 E6 D7 inc $D7 00D3EA 1 4C DF D3 jmp LD3DF 00D3ED 1 ; 00D3ED 1 20 40 D7 LD3ED: jsr LD740 00D3F0 1 60 rts 00D3F1 1 ; 00D3F1 1 42 D3 28 75 .byte $42,$D3,$28,$75,$8A,$57,$0A,$B5 ; ?? 00D3F5 1 8A 57 0A B5 00D3F9 1 0C 86 07 F8 .byte $0C,$86,$07,$F8,$02,$BD,$C3,$62 00D3FD 1 02 BD C3 62 00D401 1 86 FF 13 5F .byte $86,$FF,$13,$5F,$05,$2C,$4F,$BA 00D405 1 05 2C 4F BA 00D409 1 F1 3C D5 3C .byte $F1,$3C,$D5,$3C,$8F,$8E,$02,$F7 00D40D 1 8F 8E 02 F7 00D411 1 23 B3 0D 37 .byte $23,$B3,$0D,$37,$2E,$B1,$42,$FF 00D415 1 2E B1 42 FF 00D419 1 0E 9F 85 F2 .byte $0E,$9F,$85,$F2,$80,$1A,$8D,$86 00D41D 1 80 1A 8D 86 00D421 1 E6 AE 8F B0 .byte $E6,$AE,$8F,$B0,$46,$A6,$07,$81 00D425 1 46 A6 07 81 00D429 1 A4 00 63 F2 .byte $A4,$00,$63,$F2,$53,$E9,$09,$7E 00D42D 1 53 E9 09 7E 00D431 1 03 6F 03 C7 .byte $03,$6F,$03,$C7,$50,$8F,$0B,$EA 00D435 1 50 8F 0B EA 00D439 1 08 A2 B2 F4 .byte $08,$A2,$B2,$F4,$46,$78,$30,$A0 00D43D 1 46 78 30 A0 00D441 1 43 FC EB 0D .byte $43,$FC,$EB,$0D,$87,$E7,$1F,$E8 00D445 1 87 E7 1F E8 00D449 1 E2 1E 2F 24 .byte $E2,$1E,$2F,$24,$02,$EC,$7C,$E4 00D44D 1 02 EC 7C E4 00D451 1 0F F7 0D DA .byte $0F,$F7,$0D,$DA,$48,$97,$A3,$CB 00D455 1 48 97 A3 CB 00D459 1 46 24 94 B3 .byte $46,$24,$94,$B3,$21,$97,$4A,$18 00D45D 1 21 97 4A 18 00D461 1 3D 18 21 80 .byte $3D,$18,$21,$80,$37,$C6,$98,$0E 00D465 1 37 C6 98 0E 00D469 1 8E 30 A0 A9 .byte $8E,$30,$A0,$A9,$1F,$85,$63,$B5 00D46D 1 1F 85 63 B5 00D471 1 AB FC 09 FA .byte $AB,$FC,$09,$FA,$12,$BE,$47,$77 00D475 1 12 BE 47 77 00D479 1 15 FE 34 FD .byte $15,$FE,$34,$FD,$C5,$32,$04,$BD 00D47D 1 C5 32 04 BD 00D481 1 BB 1E 17 9C .byte $BB,$1E,$17,$9C,$47,$F1,$E3,$B0 00D485 1 47 F1 E3 B0 00D489 1 53 5D 77 3B .byte $53,$5D,$77,$3B,$7F,$78,$2E,$F3 00D48D 1 7F 78 2E F3 00D491 1 40 EE 1E F5 .byte $40,$EE,$1E,$F5,$45,$FB,$4B,$E3 00D495 1 45 FB 4B E3 00D499 1 25 DB 18 70 .byte $25,$DB,$18,$70,$6C,$91,$02,$70 00D49D 1 6C 91 02 70 00D4A1 1 1F C9 24 88 .byte $1F,$C9,$24,$88,$DD,$6D,$35,$69 00D4A5 1 DD 6D 35 69 00D4A9 1 96 11 17 41 .byte $96,$11,$17,$41,$87,$18,$6E,$3A 00D4AD 1 87 18 6E 3A 00D4B1 1 A5 ED 93 93 .byte $A5,$ED,$93,$93,$0F,$F9,$84,$6D 00D4B5 1 0F F9 84 6D 00D4B9 1 29 7E 07 5D .byte $29,$7E,$07,$5D,$1B,$F1,$CA,$88 00D4BD 1 1B F1 CA 88 00D4C1 1 D5 B9 B7 40 .byte $D5,$B9,$B7,$40,$66,$1C,$7A,$69 00D4C5 1 66 1C 7A 69 00D4C9 1 A0 5C E7 39 .byte $A0,$5C,$E7,$39,$E6,$E8,$6D,$B1 00D4CD 1 E6 E8 6D B1 00D4D1 1 0C 7A 0F B7 .byte $0C,$7A,$0F,$B7,$4D,$F6,$85,$AB 00D4D5 1 4D F6 85 AB 00D4D9 1 00 FF 00 70 .byte $00,$FF,$00,$70,$AA,$DF,$A2,$52 00D4DD 1 AA DF A2 52 00D4E1 1 FF B2 B3 49 .byte $FF,$B2,$B3,$49,$E6,$D8,$C5,$19 00D4E5 1 E6 D8 C5 19 00D4E9 1 71 D1 A2 49 .byte $71,$D1,$A2,$49,$15,$1C,$AC,$3A 00D4ED 1 15 1C AC 3A 00D4F1 1 0D FE 44 BA .byte $0D,$FE,$44,$BA,$CB,$FB,$AB,$B4 00D4F5 1 CB FB AB B4 00D4F9 1 4E 98 AC 59 .byte $4E,$98,$AC,$59,$C2,$74,$58,$FA 00D4FD 1 C2 74 58 FA 00D501 1 36 B3 B7 88 .byte $36,$B3,$B7,$88,$0E,$E9,$07,$A0 00D505 1 0E E9 07 A0 00D509 1 4E 6D E6 8C .byte $4E,$6D,$E6,$8C,$C7,$0A,$77,$F2 00D50D 1 C7 0A 77 F2 00D511 1 27 FB 84 6D .byte $27,$FB,$84,$6D,$28,$77,$A5,$D7 00D515 1 28 77 A5 D7 00D519 1 A8 B8 4D EE .byte $A8,$B8,$4D,$EE,$49,$D2,$9B,$EB 00D51D 1 49 D2 9B EB 00D521 1 D8 DB 97 32 .byte $D8,$DB,$97,$32,$99,$0B,$D7,$B8 00D525 1 99 0B D7 B8 00D529 1 77 28 66 6A .byte $77,$28,$66,$6A,$46,$F0,$16,$63 00D52D 1 46 F0 16 63 00D531 1 11 3C 83 F7 .byte $11,$3C,$83,$F7,$2B,$35,$34,$75 00D535 1 2B 35 34 75 00D539 1 81 6D 45 FA .byte $81,$6D,$45,$FA,$91,$FF,$8B,$6A 00D53D 1 91 FF 8B 6A 00D541 1 E6 CA C5 8C .byte $E6,$CA,$C5,$8C,$32,$08,$F2,$E1 00D545 1 32 08 F2 E1 00D549 1 DB 8E F7 B8 .byte $DB,$8E,$F7,$B8,$63,$50,$B4,$B7 00D54D 1 63 50 B4 B7 00D551 1 23 56 1D F2 .byte $23,$56,$1D,$F2,$EA,$5C,$42,$D8 00D555 1 EA 5C 42 D8 00D559 1 54 F4 80 9F .byte $54,$F4,$80,$9F,$07,$B9,$0C,$12 00D55D 1 07 B9 0C 12 00D561 1 72 F0 F6 92 .byte $72,$F0,$F6,$92,$73,$18,$F5,$AD 00D565 1 73 18 F5 AD 00D569 1 70 80 44 59 .byte $70,$80,$44,$59,$DF,$98,$D7,$F3 00D56D 1 DF 98 D7 F3 00D571 1 17 D2 82 72 .byte $17,$D2,$82,$72,$DC,$FD,$27,$B7 00D575 1 DC FD 27 B7 00D579 1 BD F3 0E B1 .byte $BD,$F3,$0E,$B1,$14,$B9,$1E,$53 00D57D 1 14 B9 1E 53 00D581 1 57 38 15 9B .byte $57,$38,$15,$9B,$95,$28,$1B,$F2 00D585 1 95 28 1B F2 00D589 1 42 54 77 52 .byte $42,$54,$77,$52,$16,$69,$3E,$F4 00D58D 1 16 69 3E F4 00D591 1 4A 77 0A FA .byte $4A,$77,$0A,$FA,$83,$F7,$4E,$F9 00D595 1 83 F7 4E F9 00D599 1 14 27 78 BD .byte $14,$27,$78,$BD,$0A,$F1,$0A,$BC 00D59D 1 0A F1 0A BC 00D5A1 1 A5 99 D1 45 .byte $A5,$99,$D1,$45,$36,$89,$F1,$D8 00D5A5 1 36 89 F1 D8 00D5A9 1 EF AC E7 0C .byte $EF,$AC,$E7,$0C,$F7,$90,$1E,$97 00D5AD 1 F7 90 1E 97 00D5B1 1 A1 FC 71 E0 .byte $A1,$FC,$71,$E0,$4F,$E4,$57,$5D 00D5B5 1 4F E4 57 5D 00D5B9 1 A0 B9 40 F7 .byte $A0,$B9,$40,$F7,$14,$7E,$44,$E9 00D5BD 1 14 7E 44 E9 00D5C1 1 47 BD 1D 4D .byte $47,$BD,$1D,$4D,$07,$4F,$11,$17 00D5C5 1 07 4F 11 17 00D5C9 1 F7 9A A7 8A .byte $F7,$9A,$A7,$8A,$6A,$5E,$49,$3D 00D5CD 1 6A 5E 49 3D 00D5D1 1 47 BD C4 BF .byte $47,$BD,$C4,$BF,$AB,$F1,$2C,$FB 00D5D5 1 AB F1 2C FB 00D5D9 1 23 1E 48 BC .byte $23,$1E,$48,$BC,$38,$2C,$09,$48 00D5DD 1 38 2C 09 48 00D5E1 1 C4 39 95 AA .byte $C4,$39,$95,$AA,$EF,$22,$57,$D8 00D5E5 1 EF 22 57 D8 00D5E9 1 67 38 BE 71 .byte $67,$38,$BE,$71,$E7,$EC,$B5,$F3 00D5ED 1 E7 EC B5 F3 00D5F1 1 C3 BB 28 F1 .byte $C3,$BB,$28,$F1,$88,$FB,$13,$F2 00D5F5 1 88 FB 13 F2 00D5F9 1 04 C4 C4 DB .byte $04,$C4,$C4,$DB,$0A,$F9,$28,$59 00D5FD 1 0A F9 28 59 00D601 1 97 08 2E 74 .byte $97,$08,$2E,$74,$9C,$00,$57,$8C 00D605 1 9C 00 57 8C 00D609 1 05 9C 77 0A .byte $05,$9C,$77,$0A,$37,$DC,$87,$F1 00D60D 1 37 DC 87 F1 00D611 1 74 78 0D 37 .byte $74,$78,$0D,$37,$8F,$ED,$5A,$F3 00D615 1 8F ED 5A F3 00D619 1 83 56 02 FB .byte $83,$56,$02,$FB,$48,$62,$DA,$F1 00D61D 1 48 62 DA F1 00D621 1 23 EE 14 A1 .byte $23,$EE,$14,$A1,$C4,$4A,$95,$BC 00D625 1 C4 4A 95 BC 00D629 1 7E F0 12 3D .byte $7E,$F0,$12,$3D,$48,$F9,$06,$CF 00D62D 1 48 F9 06 CF 00D631 1 09 AD 05 F7 .byte $09,$AD,$05,$F7,$01,$DB,$3F,$77 00D635 1 01 DB 3F 77 00D639 1 4F FF 02 FD .byte $4F,$FF,$02,$FD,$7A,$FE,$29,$72 00D63D 1 7A FE 29 72 00D641 1 D3 B3 16 4C .byte $D3,$B3,$16,$4C,$B6,$B8,$95,$F8 00D645 1 B6 B8 95 F8 00D649 1 4D 83 9F 58 .byte $4D,$83,$9F,$58 00D64D 1 ; 00D64D 1 09 40 LD64D: ora #$40 00D64F 1 4C 54 D6 jmp LD654 00D652 1 ; 00D652 1 09 20 LD652: ora #$20 00D654 1 48 LD654: pha 00D655 1 24 DA bit $DA 00D657 1 10 0A bpl LD663 00D659 1 38 sec 00D65A 1 66 DB ror $DB 00D65C 1 20 81 D6 jsr LD681 00D65F 1 46 DA lsr $DA 00D661 1 46 DB lsr $DB 00D663 1 68 LD663: pla 00D664 1 85 DC sta $DC 00D666 1 20 E4 D7 jsr LD7E4 00D669 1 C9 3F cmp #$3F 00D66B 1 D0 03 bne LD670 00D66D 1 20 C0 D7 jsr LD7C0 00D670 1 AD 00 A8 LD670: lda $A800 00D673 1 09 80 ora #$80 00D675 1 8D 00 A8 sta $A800 00D678 1 20 C9 D7 LD678: jsr LD7C9 00D67B 1 20 E4 D7 jsr LD7E4 00D67E 1 20 D2 D7 jsr LD7D2 00D681 1 78 LD681: sei 00D682 1 20 E4 D7 jsr LD7E4 00D685 1 20 F6 D7 jsr LD7F6 00D688 1 4A lsr a 00D689 1 B0 61 bcs LD6EC 00D68B 1 20 C0 D7 jsr LD7C0 00D68E 1 24 DB bit $DB 00D690 1 10 0C bpl LD69E 00D692 1 20 F6 D7 LD692: jsr LD7F6 00D695 1 4A lsr a 00D696 1 90 FA bcc LD692 00D698 1 20 F6 D7 LD698: jsr LD7F6 00D69B 1 4A lsr a 00D69C 1 B0 FA bcs LD698 00D69E 1 20 F6 D7 LD69E: jsr LD7F6 00D6A1 1 4A lsr a 00D6A2 1 90 FA bcc LD69E 00D6A4 1 20 C9 D7 jsr LD7C9 00D6A7 1 A9 08 lda #$08 00D6A9 1 85 DD sta $DD 00D6AB 1 AD 0F A0 LD6AB: lda $A00F 00D6AE 1 CD 0F A0 cmp $A00F 00D6B1 1 D0 F8 bne LD6AB 00D6B3 1 4A lsr a 00D6B4 1 4A lsr a 00D6B5 1 90 3A bcc LD6F1 00D6B7 1 66 DC ror $DC 00D6B9 1 B0 05 bcs LD6C0 00D6BB 1 20 ED D7 jsr LD7ED 00D6BE 1 D0 03 bne LD6C3 00D6C0 1 20 E4 D7 LD6C0: jsr LD7E4 00D6C3 1 20 C0 D7 LD6C3: jsr LD7C0 00D6C6 1 EA nop 00D6C7 1 EA nop 00D6C8 1 EA nop 00D6C9 1 EA nop 00D6CA 1 AD 00 A8 lda $A800 00D6CD 1 29 EF and #$EF 00D6CF 1 09 20 ora #$20 00D6D1 1 8D 00 A8 sta $A800 00D6D4 1 C6 DD dec $DD 00D6D6 1 D0 D3 bne LD6AB 00D6D8 1 A9 04 lda #$04 00D6DA 1 8D 09 A0 sta $A009 00D6DD 1 AD 0D A0 LD6DD: lda $A00D 00D6E0 1 29 20 and #$20 00D6E2 1 D0 0D bne LD6F1 00D6E4 1 20 F6 D7 jsr LD7F6 00D6E7 1 4A lsr a 00D6E8 1 B0 F3 bcs LD6DD 00D6EA 1 58 cli 00D6EB 1 60 rts 00D6EC 1 ; 00D6EC 1 A9 80 LD6EC: lda #$80 00D6EE 1 4C F3 D6 jmp LD6F3 00D6F1 1 ; 00D6F1 1 A9 03 LD6F1: lda #$03 00D6F3 1 20 DF D7 LD6F3: jsr LD7DF 00D6F6 1 58 cli 00D6F7 1 18 clc 00D6F8 1 90 4B bcc LD745 00D6FA 1 85 DC LD6FA: sta $DC 00D6FC 1 20 78 D6 jsr LD678 00D6FF 1 AD 00 A8 LD6FF: lda $A800 00D702 1 29 7F and #$7F 00D704 1 8D 00 A8 sta $A800 00D707 1 60 rts 00D708 1 ; 00D708 1 85 DC LD708: sta $DC 00D70A 1 20 78 D6 jsr LD678 00D70D 1 78 sei 00D70E 1 20 ED D7 jsr LD7ED 00D711 1 20 FF D6 jsr LD6FF 00D714 1 20 C0 D7 jsr LD7C0 00D717 1 20 F6 D7 LD717: jsr LD7F6 00D71A 1 B0 FB bcs LD717 00D71C 1 58 cli 00D71D 1 60 rts 00D71E 1 ; 00D71E 1 24 DA LD71E: bit $DA 00D720 1 30 05 bmi LD727 00D722 1 38 sec 00D723 1 66 DA ror $DA 00D725 1 D0 05 bne LD72C 00D727 1 48 LD727: pha 00D728 1 20 81 D6 jsr LD681 00D72B 1 68 pla 00D72C 1 85 DC LD72C: sta $DC 00D72E 1 18 clc 00D72F 1 60 rts 00D730 1 ; 00D730 1 20 C9 D7 LD730: jsr LD7C9 00D733 1 AD 00 A8 lda $A800 00D736 1 09 80 ora #$80 00D738 1 8D 00 A8 sta $A800 00D73B 1 A9 5F lda #$5F 00D73D 1 4C 42 D7 jmp LD742 00D740 1 ; 00D740 1 A9 3F LD740: lda #$3F 00D742 1 20 54 D6 LD742: jsr LD654 00D745 1 20 FF D6 LD745: jsr LD6FF 00D748 1 8A LD748: txa 00D749 1 A2 0B ldx #$0B 00D74B 1 CA LD74B: dex 00D74C 1 D0 FD bne LD74B 00D74E 1 AA tax 00D74F 1 20 C0 D7 jsr LD7C0 00D752 1 4C E4 D7 jmp LD7E4 00D755 1 ; 00D755 1 78 LD755: sei 00D756 1 A9 00 lda #$00 00D758 1 85 DD sta $DD 00D75A 1 20 C0 D7 jsr LD7C0 00D75D 1 20 F6 D7 LD75D: jsr LD7F6 00D760 1 90 FB bcc LD75D 00D762 1 20 E4 D7 jsr LD7E4 00D765 1 A9 01 LD765: lda #$01 00D767 1 8D 09 A0 sta $A009 00D76A 1 AD 0D A0 LD76A: lda $A00D 00D76D 1 29 20 and #$20 00D76F 1 D0 07 bne LD778 00D771 1 20 F6 D7 jsr LD7F6 00D774 1 B0 F4 bcs LD76A 00D776 1 90 18 bcc LD790 00D778 1 A5 DD LD778: lda $DD 00D77A 1 F0 05 beq LD781 00D77C 1 A9 02 lda #$02 00D77E 1 4C F3 D6 jmp LD6F3 00D781 1 ; 00D781 1 20 ED D7 LD781: jsr LD7ED 00D784 1 20 48 D7 jsr LD748 00D787 1 A9 40 lda #$40 00D789 1 20 DF D7 jsr LD7DF 00D78C 1 E6 DD inc $DD 00D78E 1 D0 D5 bne LD765 00D790 1 A9 08 LD790: lda #$08 00D792 1 85 DD sta $DD 00D794 1 AD 0F A0 LD794: lda $A00F 00D797 1 CD 0F A0 cmp $A00F 00D79A 1 D0 F8 bne LD794 00D79C 1 4A lsr a 00D79D 1 90 F5 bcc LD794 00D79F 1 4A lsr a 00D7A0 1 66 DE ror $DE 00D7A2 1 AD 0F A0 LD7A2: lda $A00F 00D7A5 1 CD 0F A0 cmp $A00F 00D7A8 1 D0 F8 bne LD7A2 00D7AA 1 4A lsr a 00D7AB 1 B0 F5 bcs LD7A2 00D7AD 1 C6 DD dec $DD 00D7AF 1 D0 E3 bne LD794 00D7B1 1 20 ED D7 jsr LD7ED 00D7B4 1 A5 D9 lda $D9 00D7B6 1 F0 03 beq LD7BB 00D7B8 1 20 48 D7 jsr LD748 00D7BB 1 A5 DE LD7BB: lda $DE 00D7BD 1 58 cli 00D7BE 1 18 clc 00D7BF 1 60 rts 00D7C0 1 ; 00D7C0 1 AD 00 A8 LD7C0: lda $A800 00D7C3 1 29 DF and #$DF 00D7C5 1 8D 00 A8 sta $A800 00D7C8 1 60 rts 00D7C9 1 ; 00D7C9 1 AD 00 A8 LD7C9: lda $A800 00D7CC 1 09 20 ora #$20 00D7CE 1 8D 00 A8 sta $A800 00D7D1 1 60 rts 00D7D2 1 ; 00D7D2 1 A9 04 LD7D2: lda #$04 00D7D4 1 8D 09 A0 sta $A009 00D7D7 1 AD 0D A0 LD7D7: lda $A00D 00D7DA 1 29 20 and #$20 00D7DC 1 F0 F9 beq LD7D7 00D7DE 1 60 rts 00D7DF 1 ; 00D7DF 1 05 D9 LD7DF: ora $D9 00D7E1 1 85 D9 sta $D9 00D7E3 1 60 rts 00D7E4 1 ; 00D7E4 1 AD 00 A8 LD7E4: lda $A800 00D7E7 1 29 EF and #$EF 00D7E9 1 8D 00 A8 sta $A800 00D7EC 1 60 rts 00D7ED 1 ; 00D7ED 1 AD 00 A8 LD7ED: lda $A800 00D7F0 1 09 10 ora #$10 00D7F2 1 8D 00 A8 sta $A800 00D7F5 1 60 rts 00D7F6 1 ; 00D7F6 1 AD 0F A0 LD7F6: lda $A00F 00D7F9 1 CD 0F A0 cmp $A00F 00D7FC 1 D0 F8 bne LD7F6 00D7FE 1 4A lsr a 00D7FF 1 60 rts 00D800 1 00D800 1