ca65 V2.19 - Git e5f4ca6 Main file : DOS10.ca65 Current file: DOS10.ca65 000000r 1 ; 000000r 1 ; AIM 65 DOS 1.0 000000r 1 ; 000000r 1 ; From ROM: R324E-11.58C4 000000r 1 ; 000000r 1 ; Reformatted for CA Assembler 000000r 1 ; Chris Oddy December 2025 000000r 1 ; 000000r 1 .setcpu "6502" 000000r 1 ; 000000r 1 L04A0 := $04A0 000000r 1 L052E := $052E 000000r 1 L0532 := $0532 000000r 1 L0534 := $0534 000000r 1 L0538 := $0538 000000r 1 L053A := $053A 000000r 1 L053F := $053F 000000r 1 ; 000000r 1 ; *** Monitor Subroutines *** 000000r 1 ; 000000r 1 COMIN := $E1A1 ; re-enter command interpreter 000000r 1 DU11 := $E50A ; Close tape block if active 000000r 1 KEP := $E7AF ; Print message pointed to by Y 000000r 1 BLANK2 := $E83B ; Outputs two P's to display/printer 000000r 1 BLANK := $E83E ; Outputs one Space to display/printer 000000r 1 TTYTST := $E842 ; Check TTY/keyboard switch (Z=1 for TTY) 000000r 1 WHEREO := $E871 ; Sets up the active output device and loads OUTFLG 000000r 1 INLOW := $E8F8 ; Set input from terminal (keyboard or TTY) 000000r 1 LL := $E8FE ; Set I/O to terminal 000000r 1 RDRUB := $E95F ; Inputs one ASCII character from keyboard to A with echo to display/printer, allows DEL if Y<>0 000000r 1 REDOUT := $E973 ; Inputs one ASCII character from keyboard to A with echo to display/printer, displays cursor 000000r 1 OUTPUT := $E97A ; Outputs ASCII character in A to display/printer 000000r 1 OUTALL := $E9BC ; Outputs ASCII character in A to active output device 000000r 1 CRLF := $E9F0 ; Outputs CR, LF & NUL to active output device 000000r 1 CRLOW := $EA13 ; Outputs CR and LF to display/printer 000000r 1 NUMA := $EA46 ; Converts two hex numbers in A from binary to ASCII and outputs to active output device 000000r 1 NOUT := $EA51 ; Print one ASCII character to output device 000000r 1 GETTTY := $EBDB ; Get a character from TTY subroutine into A, saves X 000000r 1 DELAY := $EC0F ; Delay 1-bit time as given by baud rate 000000r 1 GETK2 := $EC82 ; We have a key, decode it 000000r 1 ROONEK := $ECEF ; Wait if last key still down (rollover) 000000r 1 ; 000000r 1 FDC := $8F00 ; Floppy Disc Controller 000000r 1 ; 000000r 1 ; *** ASCII Codes *** 000000r 1 CR := $0D 000000r 1 ; 000000r 1 .org $8000 008000 1 ; 008000 1 20 06 80 jsr L8006 008003 1 4C A1 E1 jmp COMIN ; re-enter command interpreter 008006 1 ; 008006 1 20 6C 88 L8006: jsr L886C 008009 1 A2 41 ldx #$41 00800B 1 A9 00 lda #$00 00800D 1 9D 00 05 L800D: sta $0500,x 008010 1 CA dex 008011 1 10 FA bpl L800D 008013 1 A9 ED lda #$ED 008015 1 A0 8B ldy #$8B 008017 1 8D 00 A4 sta $A400 00801A 1 8C 01 A4 sty $A401 00801D 1 A2 0C ldx #$0C 00801F 1 BD 39 80 L801F: lda TABLE1,x 008022 1 9D 08 01 sta $0108,x 008025 1 CA dex 008026 1 10 F7 bpl L801F 008028 1 A2 0D ldx #$0D 00802A 1 BD 43 80 L802A: lda TABLE2,x 00802D 1 9D 31 05 sta $0531,x 008030 1 CA dex 008031 1 10 F7 bpl L802A 008033 1 20 B9 8D jsr L8DB9 008036 1 4C F7 8C jmp L8CF7 008039 1 ; 008039 1 03 TABLE1: .byte $03 ; ($0108) 00803A 1 81 .byte $81 ; ($0109) 00803B 1 2A .byte $2A ; ($010A) 00803C 1 82 .byte $82 ; ($010B) 00803D 1 4C .byte $4C ; ($010C) 00803E 1 8E .byte $8E ; ($010D) 00803F 1 80 .byte $80 ; ($010E) 008040 1 4C .byte $4C ; ($010F) 008041 1 C8 .byte $C8 ; ($0110) 008042 1 83 .byte $83 ; ($0111) 008043 1 ; 008043 1 06 TABLE2: .byte $06 ; ($0531) 008044 1 DA .byte $DA ; ($0532) 008045 1 84 .byte $84 ; ($0533) 008046 1 56 .byte $56 ; ($0534) 008047 1 E9 .byte $E9 ; ($0535) 008048 1 00 .byte $00 ; ($0536) 008049 1 1A .byte $1A ; ($0537) 00804A 1 D0 .byte $D0 ; ($0538) 00804B 1 83 .byte $83 ; ($0539) 00804C 1 ED .byte $ED ; ($053A) 00804D 1 83 .byte $83 ; ($053B) 00804E 1 01 .byte $01 ; ($053C) 00804F 1 ; 00804F 1 98 L804F: tya 008050 1 48 pha 008051 1 20 42 E8 jsr TTYTST ; Check TTY/keyboard switch (Z=1 for TTY) 008054 1 F0 1B beq L8071 008056 1 20 EF EC jsr ROONEK ; Wait if last key still down 008059 1 88 dey 00805A 1 30 2A bmi L8086 00805C 1 A2 00 ldx #$00 00805E 1 20 82 EC jsr GETK2 ; We have a key, decode it 008061 1 C9 1B cmp #$1B 008063 1 F0 26 beq L808B 008065 1 C9 20 cmp #$20 008067 1 D0 1D bne L8086 008069 1 20 EF EC L8069: jsr ROONEK ; Wait if last key still down 00806C 1 88 dey 00806D 1 30 FA bmi L8069 00806F 1 10 15 bpl L8086 008071 1 70 13 L8071: bvs L8086 008073 1 2C 00 A8 L8073: bit $A800 008076 1 50 FB bvc L8073 008078 1 20 0F EC jsr DELAY ; Delay 1-bit time as given by baud rate 00807B 1 20 DB EB jsr GETTTY ; Get a character from TTY subroutine into A 00807E 1 C9 1B cmp #$1B 008080 1 F0 09 beq L808B 008082 1 C9 20 cmp #$20 008084 1 F0 ED beq L8073 008086 1 68 L8086: pla 008087 1 A8 tay 008088 1 4C F0 E9 jmp CRLF ; Outputs CR, LF & NUL to active output device 00808B 1 ; 00808B 1 4C E0 84 L808B: jmp L84E0 00808E 1 ; 00808E 1 A2 00 L808E: ldx #$00 008090 1 20 93 86 jsr L8693 008093 1 A0 4A ldy #$4A 008095 1 20 F7 85 jsr L85F7 ; output "FILE NAME LEN S" 008098 1 20 16 88 jsr L8816 00809B 1 20 4F 80 L809B: jsr L804F 00809E 1 B1 D7 lda ($D7),y 0080A0 1 F0 34 beq L80D6 0080A2 1 48 pha 0080A3 1 C8 iny 0080A4 1 A2 09 ldx #$09 0080A6 1 B1 D7 L80A6: lda ($D7),y 0080A8 1 20 7A E9 jsr OUTPUT ; Outputs ASCII character in A to display/printer 0080AB 1 C8 iny 0080AC 1 CA dex 0080AD 1 10 F7 bpl L80A6 0080AF 1 C8 iny 0080B0 1 C8 iny 0080B1 1 B1 D7 lda ($D7),y 0080B3 1 8D 29 05 sta $0529 0080B6 1 C8 iny 0080B7 1 B1 D7 lda ($D7),y 0080B9 1 8D 2A 05 sta $052A 0080BC 1 20 86 84 jsr L8486 0080BF 1 20 3E E8 jsr BLANK ; Outputs one Space to display/printer 0080C2 1 68 pla 0080C3 1 AA tax 0080C4 1 A9 41 lda #$41 0080C6 1 CA dex 0080C7 1 F0 02 beq L80CB 0080C9 1 A9 44 lda #$44 0080CB 1 20 7A E9 L80CB: jsr OUTPUT ; Outputs ASCII character in A to display/printer 0080CE 1 20 32 87 jsr L8732 0080D1 1 B0 C8 bcs L809B 0080D3 1 4C AE 85 jmp L85AE 0080D6 1 ; 0080D6 1 A0 41 L80D6: ldy #$41 0080D8 1 20 F7 85 jsr L85F7 ; output "SEC LEFT",CR 0080DB 1 AC A9 04 ldy $04A9 0080DE 1 88 dey 0080DF 1 8C A4 04 sty $04A4 0080E2 1 AC AA 04 ldy $04AA 0080E5 1 8C A5 04 sty $04A5 0080E8 1 AC 0A 05 ldy $050A 0080EB 1 C8 iny 0080EC 1 B1 D7 lda ($D7),y 0080EE 1 AA tax 0080EF 1 C8 iny 0080F0 1 B1 D7 lda ($D7),y 0080F2 1 A8 tay 0080F3 1 8A txa 0080F4 1 20 EC 87 jsr L87EC 0080F7 1 8D 29 05 sta $0529 0080FA 1 8E 2A 05 stx $052A 0080FD 1 20 86 84 jsr L8486 008100 1 4C C2 83 jmp L83C2 008103 1 ; 008103 1 B0 46 bcs L814B 008105 1 20 F8 E8 L8105: jsr INLOW 008108 1 A9 00 lda #$00 ; Set input from terminal (keyboard or TTY) 00810A 1 8D 22 05 sta $0522 00810D 1 20 90 86 jsr L8690 008110 1 A9 55 lda #$55 008112 1 8D 12 A4 sta $A412 008115 1 20 16 88 jsr L8816 008118 1 20 59 87 L8118: jsr L8759 00811B 1 B1 D7 lda ($D7),y 00811D 1 C9 01 cmp #$01 00811F 1 F0 0A beq L812B 008121 1 90 05 bcc L8128 008123 1 20 32 87 jsr L8732 008126 1 B0 F0 bcs L8118 008128 1 4C B6 85 L8128: jmp L85B6 00812B 1 ; 00812B 1 98 L812B: tya 00812C 1 69 0A adc #$0A 00812E 1 A8 tay 00812F 1 B1 D7 L812F: lda ($D7),y 008131 1 8D 06 05 sta $0506 008134 1 C8 iny 008135 1 B1 D7 lda ($D7),y 008137 1 8D 08 05 sta $0508 00813A 1 C8 iny 00813B 1 B1 D7 lda ($D7),y 00813D 1 8D 3D 05 sta $053D 008140 1 C8 iny 008141 1 B1 D7 lda ($D7),y 008143 1 8D 3E 05 sta $053E 008146 1 A9 00 lda #$00 008148 1 8D 0A 05 sta $050A 00814B 1 98 L814B: tya 00814C 1 48 pha 00814D 1 AD 36 05 lda $0536 008150 1 F0 03 beq L8155 008152 1 6C 3F 05 jmp (L053F) 008155 1 008155 1 AD 2C 05 L8155: lda $052C 008158 1 8D 23 05 sta $0523 00815B 1 AC 0A 05 ldy $050A 00815E 1 D0 17 bne L8177 008160 1 8A txa 008161 1 48 pha 008162 1 20 4A 88 jsr L884A 008165 1 20 5E 85 jsr L855E 008168 1 68 pla 008169 1 AA tax 00816A 1 AD 3D 05 lda $053D 00816D 1 D0 03 bne L8172 00816F 1 CE 3E 05 dec $053E 008172 1 CE 3D 05 L8172: dec $053D 008175 1 A0 00 ldy #$00 008177 1 B1 D7 L8177: lda ($D7),y 008179 1 8D 2C 05 sta $052C 00817C 1 CD 37 05 cmp $0537 00817F 1 D0 03 bne L8184 008181 1 20 95 81 jsr L8195 008184 1 CC 0C 05 L8184: cpy $050C 008187 1 90 02 bcc L818B 008189 1 A0 FF ldy #$FF 00818B 1 C8 L818B: iny 00818C 1 8C 0A 05 sty $050A 00818F 1 68 pla 008190 1 A8 tay 008191 1 AD 23 05 lda $0523 008194 1 60 rts 008195 1 ; 008195 1 20 F7 8C L8195: jsr L8CF7 008198 1 8D 36 05 sta $0536 00819B 1 8D 0E 05 sta $050E 00819E 1 60 rts 00819F 1 ; 00819F 1 A9 01 L819F: lda #$01 0081A1 1 8D 22 05 sta $0522 0081A4 1 20 90 86 jsr L8690 0081A7 1 20 16 88 L81A7: jsr L8816 0081AA 1 20 59 87 L81AA: jsr L8759 0081AD 1 B1 D9 lda ($D9),y 0081AF 1 F0 0F beq L81C0 0081B1 1 C9 01 cmp #$01 0081B3 1 D0 03 bne L81B8 0081B5 1 4C B2 85 jmp L85B2 0081B8 1 ; 0081B8 1 20 32 87 L81B8: jsr L8732 0081BB 1 B0 ED bcs L81AA 0081BD 1 4C BA 85 jmp L85BA 0081C0 1 ; 0081C0 1 AD 07 05 L81C0: lda $0507 0081C3 1 AE 09 05 ldx $0509 0081C6 1 8D 2A 05 sta $052A 0081C9 1 CA dex 0081CA 1 8E 29 05 stx $0529 0081CD 1 AD AA 04 lda $04AA 0081D0 1 4A lsr a 0081D1 1 CD 29 05 cmp $0529 0081D4 1 D0 0E bne L81E4 0081D6 1 AD 0D 05 lda $050D 0081D9 1 38 sec 0081DA 1 E9 10 sbc #$10 0081DC 1 CD 0B 05 cmp $050B 0081DF 1 B0 03 bcs L81E4 0081E1 1 4C BA 85 jmp L85BA 0081E4 1 ; 0081E4 1 C8 L81E4: iny 0081E5 1 B1 D9 lda ($D9),y 0081E7 1 8D 07 05 sta $0507 0081EA 1 C8 iny 0081EB 1 B1 D9 lda ($D9),y 0081ED 1 8D 09 05 sta $0509 0081F0 1 A9 00 lda #$00 0081F2 1 8D 0B 05 sta $050B 0081F5 1 BA tsx 0081F6 1 BD 02 01 lda $0102,x 0081F9 1 C9 D0 cmp #$D0 0081FB 1 D0 0B bne L8208 0081FD 1 BD 01 01 lda $0101,x 008200 1 C9 AE cmp #$AE 008202 1 D0 22 bne L8226 008204 1 A9 8F lda #$8F 008206 1 D0 16 bne L821E 008208 1 C9 E4 L8208: cmp #$E4 00820A 1 F0 0C beq L8218 00820C 1 C9 B6 cmp #$B6 00820E 1 F0 0C beq L821C 008210 1 C9 F7 cmp #$F7 008212 1 D0 12 bne L8226 008214 1 A9 6C lda #$6C 008216 1 D0 06 bne L821E 008218 1 A9 7B L8218: lda #$7B 00821A 1 D0 02 bne L821E 00821C 1 A9 66 L821C: lda #$66 00821E 1 A2 82 L821E: ldx #$82 008220 1 8D 2E 05 sta L052E 008223 1 8E 2F 05 stx $052F 008226 1 60 L8226: rts 008227 1 ; 008227 1 4C 9F 81 L8227: jmp L819F 00822A 1 ; 00822A 1 90 FB bcc L8227 00822C 1 68 pla 00822D 1 8D 23 05 sta $0523 008230 1 48 pha 008231 1 98 tya 008232 1 48 pha 008233 1 8A txa 008234 1 48 pha 008235 1 AD 23 05 lda $0523 008238 1 20 63 82 jsr L8263 00823B 1 AD 23 05 lda $0523 00823E 1 20 48 82 jsr L8248 008241 1 68 L8241: pla 008242 1 AA tax 008243 1 68 pla 008244 1 A8 tay 008245 1 68 pla 008246 1 38 sec 008247 1 60 rts 008248 1 ; 008248 1 AC 0B 05 L8248: ldy $050B 00824B 1 91 D9 sta ($D9),y 00824D 1 CC 0D 05 cpy $050D 008250 1 D0 03 bne L8255 008252 1 20 5A 82 jsr L825A 008255 1 C8 L8255: iny 008256 1 8C 0B 05 sty $050B 008259 1 60 rts 00825A 1 ; 00825A 1 20 5B 88 L825A: jsr L885B 00825D 1 20 87 85 jsr L8587 008260 1 A0 FF ldy #$FF 008262 1 60 rts 008263 1 008263 1 6C 2E 05 L8263: jmp (L052E) 008266 1 ; 008266 1 C9 1A cmp #$1A 008268 1 D0 10 bne L827A 00826A 1 F0 36 beq L82A2 00826C 1 C9 0D cmp #$0D 00826E 1 D0 07 bne L8277 008270 1 CD 2D 05 cmp $052D 008273 1 D0 02 bne L8277 008275 1 F0 2B beq L82A2 008277 1 8D 2D 05 L8277: sta $052D 00827A 1 60 L827A: rts 00827B 1 ; 00827B 1 C9 0D cmp #$0D 00827D 1 D0 FB bne L827A 00827F 1 BA tsx 008280 1 BC 09 01 ldy $0109,x 008283 1 C0 E5 cpy #$E5 008285 1 D0 07 bne L828E 008287 1 BC 08 01 ldy $0108,x 00828A 1 C0 09 cpy #$09 00828C 1 F0 14 beq L82A2 00828E 1 60 L828E: rts 00828F 1 ; 00828F 1 C9 0D cmp #$0D 008291 1 D0 FB bne L828E 008293 1 BA tsx 008294 1 BC 0B 01 ldy $010B,x 008297 1 C0 DD cpy #$DD 008299 1 D0 F3 bne L828E 00829B 1 BC 0A 01 ldy $010A,x 00829E 1 C0 31 cpy #$31 0082A0 1 D0 EC bne L828E 0082A2 1 20 48 82 L82A2: jsr L8248 0082A5 1 20 AD 82 jsr L82AD 0082A8 1 68 pla 0082A9 1 68 pla 0082AA 1 4C 41 82 jmp L8241 0082AD 1 ; 0082AD 1 AD 37 05 L82AD: lda $0537 0082B0 1 20 48 82 jsr L8248 0082B3 1 F0 07 beq L82BC 0082B5 1 A9 00 lda #$00 0082B7 1 20 48 82 L82B7: jsr L8248 0082BA 1 D0 FB bne L82B7 0082BC 1 AD 07 05 L82BC: lda $0507 0082BF 1 8D A4 04 sta $04A4 0082C2 1 AD 09 05 lda $0509 0082C5 1 8D A5 04 sta $04A5 0082C8 1 20 A7 81 jsr L81A7 0082CB 1 88 dey 0082CC 1 88 dey 0082CD 1 A9 01 lda #$01 0082CF 1 91 D9 sta ($D9),y 0082D1 1 C8 iny 0082D2 1 A2 00 ldx #$00 0082D4 1 BD 18 05 L82D4: lda $0518,x 0082D7 1 91 D9 sta ($D9),y 0082D9 1 C8 iny 0082DA 1 E8 inx 0082DB 1 E0 0A cpx #$0A 0082DD 1 D0 F5 bne L82D4 0082DF 1 AD 07 05 lda $0507 0082E2 1 48 pha 0082E3 1 91 D9 sta ($D9),y 0082E5 1 C8 iny 0082E6 1 AD 09 05 lda $0509 0082E9 1 48 pha 0082EA 1 91 D9 sta ($D9),y 0082EC 1 C8 iny 0082ED 1 8C 0B 05 sty $050B 0082F0 1 AD 2A 05 lda $052A 0082F3 1 AE 29 05 ldx $0529 0082F6 1 8D 07 05 sta $0507 0082F9 1 8E 09 05 stx $0509 0082FC 1 68 pla 0082FD 1 A8 tay 0082FE 1 68 pla 0082FF 1 20 EC 87 jsr L87EC 008302 1 AC 0B 05 ldy $050B 008305 1 91 D9 sta ($D9),y 008307 1 C8 iny 008308 1 8A txa 008309 1 91 D9 sta ($D9),y 00830B 1 C8 iny 00830C 1 CC 0D 05 cpy $050D 00830F 1 D0 0B bne L831C 008311 1 20 87 85 jsr L8587 008314 1 20 5E 85 jsr L855E 008317 1 CE 09 05 dec $0509 00831A 1 A0 FF ldy #$FF 00831C 1 C8 L831C: iny 00831D 1 C8 iny 00831E 1 AD A4 04 lda $04A4 008321 1 91 D9 sta ($D9),y 008323 1 C8 iny 008324 1 AD A5 04 lda $04A5 008327 1 91 D9 sta ($D9),y 008329 1 20 87 85 L8329: jsr L8587 00832C 1 20 F7 8C jsr L8CF7 00832F 1 8D 18 05 sta $0518 008332 1 60 rts 008333 1 ; 008333 1 00 brk 008334 1 00 brk 008335 1 00 brk 008336 1 00 brk 008337 1 00 brk 008338 1 00 brk 008339 1 00 brk 00833A 1 20 BC E9 L833A: jsr OUTALL ; Outputs ASCII character in A to active output device 00833D 1 20 4B 81 L833D: jsr L814B 008340 1 CD 37 05 cmp $0537 008343 1 F0 0E beq L8353 008345 1 C9 20 cmp #$20 008347 1 B0 F1 bcs L833A 008349 1 C9 0D cmp #$0D 00834B 1 D0 F0 bne L833D 00834D 1 20 4F 80 jsr L804F 008350 1 4C 3D 83 jmp L833D 008353 1 ; 008353 1 60 L8353: rts 008354 1 ; 008354 1 A9 7A L8354: lda #$7A 008356 1 20 1E 82 jsr L821E 008359 1 D0 E2 bne L833D 00835B 1 ; 00835B 1 20 05 81 LIST: jsr L8105 ; *** Command LIST *** 00835E 1 20 F8 E8 jsr INLOW ; Set input from terminal (keyboard or TTY) 008361 1 20 71 E8 jsr WHEREO ; Sets up the active output device and loads OUTFLG 008364 1 20 13 EA jsr CRLOW ; Outputs CR and LF to display/printer 008367 1 20 54 83 jsr L8354 00836A 1 20 95 81 jsr L8195 00836D 1 4C 0A E5 jmp DU11 ; Close tape block if active 008370 1 ; 008370 1 EE 30 05 FORMAT: inc $0530 ; *** Command FORMAT *** 008373 1 A2 00 ldx #$00 008375 1 8E 24 05 stx $0524 008378 1 20 93 86 jsr L8693 00837B 1 A0 6B ldy #$6B 00837D 1 20 0F 86 jsr L860F ; output "ARE YOU SURE?" 008380 1 C9 59 cmp #$59 008382 1 D0 41 bne L83C5 008384 1 A0 5A ldy #$5A 008386 1 20 F7 85 jsr L85F7 ; output CR,"WAIT" 008389 1 20 0D 89 jsr L890D 00838C 1 20 CE 84 jsr L84CE 00838F 1 20 16 88 jsr L8816 008392 1 20 41 88 jsr L8841 008395 1 C8 iny 008396 1 98 tya 008397 1 91 D7 sta ($D7),y 008399 1 C8 iny 00839A 1 AD AA 04 lda $04AA 00839D 1 4A lsr a 00839E 1 18 clc 00839F 1 69 01 adc #$01 0083A1 1 48 pha 0083A2 1 91 D7 sta ($D7),y 0083A4 1 CE 08 05 L83A4: dec $0508 0083A7 1 20 87 85 jsr L8587 0083AA 1 20 5E 85 jsr L855E 0083AD 1 20 41 88 jsr L8841 0083B0 1 68 pla 0083B1 1 48 pha 0083B2 1 CD 08 05 cmp $0508 0083B5 1 B0 ED bcs L83A4 0083B7 1 68 pla 0083B8 1 AD 3C 05 lda $053C 0083BB 1 F0 05 beq L83C2 0083BD 1 20 5E 85 L83BD: jsr L855E 0083C0 1 B0 FB bcs L83BD 0083C2 1 20 13 EA L83C2: jsr CRLOW ; Outputs CR and LF to display/printer 0083C5 1 4C F7 8C L83C5: jmp L8CF7 0083C8 1 ; 0083C8 1 A0 38 L83C8: ldy #$38 0083CA 1 20 0F 86 L83CA: jsr L860F ; output CR,"UTILITY" 0083CD 1 6C 38 05 jmp (L0538) 0083D0 1 ; 0083D0 1 C9 4C cmp #'L' ; command L - LIST ? 0083D2 1 F0 87 beq LIST 0083D4 1 C9 46 cmp #'F' ; command F - FORMAT ? 0083D6 1 F0 98 beq FORMAT 0083D8 1 C9 44 cmp #'D' ; command D - DEL ? 0083DA 1 D0 03 bne NOTF 0083DC 1 4C 84 87 jmp DEL 0083DF 1 ; 0083DF 1 C9 52 NOTF: cmp #'R' ; command R - REC ? 0083E1 1 D0 03 bne NOTR 0083E3 1 4C A3 87 jmp REC 0083E6 1 ; 0083E6 1 C9 42 NOTR: cmp #'B' ; command B - BACKUP ? 0083E8 1 F0 07 beq BACKUP 0083EA 1 6C 3A 05 jmp (L053A) 0083ED 1 ; 0083ED 1 A0 0E ldy #$0E 0083EF 1 D0 D9 bne L83CA ; output message CR,"(F)ORMAT, (B)ACKUP, (L)IST, (D)EL, (R)EC",CR 0083F1 1 ; 0083F1 1 A2 00 BACKUP: ldx #$00 ; *** Command BACKUP *** 0083F3 1 20 93 86 jsr L8693 0083F6 1 A2 01 ldx #$01 0083F8 1 20 93 86 jsr L8693 0083FB 1 20 4A 88 jsr L884A 0083FE 1 20 16 88 jsr L8816 008401 1 B1 D7 L8401: lda ($D7),y 008403 1 F0 C0 beq L83C5 008405 1 C9 01 cmp #$01 008407 1 D0 43 bne L844C 008409 1 98 tya 00840A 1 48 pha 00840B 1 AE 08 05 ldx $0508 00840E 1 CA dex 00840F 1 8A txa 008410 1 48 pha 008411 1 C8 iny 008412 1 A2 00 ldx #$00 008414 1 B1 D7 L8414: lda ($D7),y 008416 1 9D 0E 05 sta $050E,x 008419 1 9D 18 05 sta $0518,x 00841C 1 C8 iny 00841D 1 E8 inx 00841E 1 E0 0A cpx #$0A 008420 1 D0 F2 bne L8414 008422 1 20 2F 81 jsr L812F 008425 1 A9 55 lda #$55 008427 1 8D 13 A4 sta $A413 00842A 1 20 5B 88 jsr L885B 00842D 1 20 A7 81 jsr L81A7 008430 1 20 54 83 jsr L8354 008433 1 20 5B 88 jsr L885B 008436 1 20 AD 82 jsr L82AD 008439 1 68 pla 00843A 1 8D 08 05 sta $0508 00843D 1 A2 01 ldx #$01 00843F 1 8E 06 05 stx $0506 008442 1 20 4A 88 jsr L884A 008445 1 20 5E 85 jsr L855E 008448 1 68 pla 008449 1 8D 0A 05 sta $050A 00844C 1 20 32 87 L844C: jsr L8732 00844F 1 B0 B0 bcs L8401 008451 1 4C AE 85 jmp L85AE 008454 1 ; 008454 1 8D 29 05 sta $0529 008457 1 98 tya 008458 1 48 pha 008459 1 A9 00 lda #$00 00845B 1 8D 2A 05 sta $052A 00845E 1 20 C4 87 jsr L87C4 008461 1 AD 26 05 lda $0526 008464 1 D0 15 bne L847B 008466 1 20 3E E8 jsr BLANK ; Outputs one Space to display/printer 008469 1 AD 27 05 lda $0527 00846C 1 29 F0 and #$F0 00846E 1 D0 0E bne L847E 008470 1 20 3E E8 L8470: jsr BLANK ; Outputs one Space to display/printer 008473 1 68 pla 008474 1 A8 tay 008475 1 AD 27 05 lda $0527 008478 1 4C 51 EA jmp NOUT ; Print one ASCII character to output device 00847B 1 ; 00847B 1 20 51 EA L847B: jsr NOUT ; Print one ASCII character to output device 00847E 1 68 L847E: pla 00847F 1 A8 tay 008480 1 AD 27 05 lda $0527 008483 1 4C 46 EA jmp NUMA ; Converts two hex numbers in A from binary to ASCII and outputs to active output device 008486 1 ; 008486 1 98 L8486: tya 008487 1 48 pha 008488 1 20 C4 87 jsr L87C4 00848B 1 AD 25 05 lda $0525 00848E 1 29 0F and #$0F 008490 1 D0 11 bne L84A3 008492 1 AD 26 05 lda $0526 008495 1 D0 18 bne L84AF 008497 1 20 3B E8 jsr BLANK2 ; Outputs two P's to display/printer 00849A 1 AD 27 05 lda $0527 00849D 1 29 F0 and #$F0 00849F 1 D0 DD bne L847E 0084A1 1 F0 CD beq L8470 0084A3 1 20 51 EA L84A3: jsr NOUT ; Print one ASCII character to output device 0084A6 1 AD 26 05 L84A6: lda $0526 0084A9 1 20 46 EA jsr NUMA ; Converts two hex numbers in A from binary to ASCII and outputs to active output device 0084AC 1 4C 7E 84 jmp L847E 0084AF 1 ; 0084AF 1 29 F0 L84AF: and #$F0 0084B1 1 D0 F3 bne L84A6 0084B3 1 20 3E E8 jsr BLANK ; Outputs one Space to display/printer 0084B6 1 AD 26 05 lda $0526 0084B9 1 D0 C0 bne L847B 0084BB 1 68 pla 0084BC 1 A8 tay 0084BD 1 60 rts 0084BE 1 ; 0084BE 1 00 brk 0084BF 1 00 brk 0084C0 1 00 brk 0084C1 1 00 brk 0084C2 1 00 brk 0084C3 1 00 brk 0084C4 1 00 brk 0084C5 1 00 brk 0084C6 1 00 brk 0084C7 1 00 brk 0084C8 1 00 brk 0084C9 1 00 brk 0084CA 1 00 brk 0084CB 1 00 brk 0084CC 1 00 brk 0084CD 1 00 brk 0084CE 1 8D AD 04 L84CE: sta $04AD 0084D1 1 0D 24 05 ora $0524 0084D4 1 D0 01 bne L84D7 0084D6 1 60 L84D6: rts 0084D7 1 ; 0084D7 1 6C 32 05 L84D7: jmp (L0532) 0084DA 1 ; 0084DA 1 20 FE E8 jsr LL ; Set I/O to terminal 0084DD 1 20 C6 85 jsr L85C6 0084E0 1 20 F7 8C L84E0: jsr L8CF7 0084E3 1 6C 34 05 jmp (L0534) 0084E6 1 ; 0084E6 1 CD A9 04 L84E6: cmp $04A9 0084E9 1 B0 41 bcs L852C 0084EB 1 20 38 89 jsr L8938 0084EE 1 29 99 and #$99 0084F0 1 F0 E4 beq L84D6 0084F2 1 20 3B 89 jsr L893B 0084F5 1 29 99 and #$99 0084F7 1 F0 DD beq L84D6 0084F9 1 48 pha 0084FA 1 29 10 and #$10 0084FC 1 F0 2A beq L8528 0084FE 1 68 pla 0084FF 1 AE 22 05 ldx $0522 008502 1 A9 01 lda #$01 008504 1 5D 04 05 eor $0504,x 008507 1 9D 04 05 sta $0504,x 00850A 1 8A txa 00850B 1 D0 06 bne L8513 00850D 1 20 4A 88 jsr L884A 008510 1 4C 16 85 jmp L8516 008513 1 ; 008513 1 20 5B 88 L8513: jsr L885B 008516 1 AD B3 04 L8516: lda $04B3 008519 1 48 pha 00851A 1 A9 00 lda #$00 00851C 1 20 38 89 jsr L8938 00851F 1 68 pla 008520 1 20 38 89 jsr L8938 008523 1 29 99 and #$99 008525 1 F0 AF beq L84D6 008527 1 48 pha 008528 1 68 L8528: pla 008529 1 4C CE 84 jmp L84CE 00852C 1 ; 00852C 1 4C BE 85 L852C: jmp L85BE 00852F 1 ; 00852F 1 AD 22 05 L852F: lda $0522 008532 1 18 clc 008533 1 6D 31 05 adc $0531 008536 1 9D CA 04 sta $04CA,x 008539 1 A9 00 lda #$00 00853B 1 9D C9 04 sta $04C9,x 00853E 1 60 rts 00853F 1 ; 00853F 1 AE 22 05 L853F: ldx $0522 008542 1 FE 08 05 inc $0508,x 008545 1 AD AA 04 lda $04AA 008548 1 DD 08 05 cmp $0508,x 00854B 1 B0 10 bcs L855D 00854D 1 A9 01 lda #$01 00854F 1 9D 08 05 sta $0508,x 008552 1 FE 06 05 inc $0506,x 008555 1 AC A9 04 ldy $04A9 008558 1 88 dey 008559 1 98 tya 00855A 1 DD 06 05 cmp $0506,x 00855D 1 60 L855D: rts 00855E 1 ; 00855E 1 AD CE 04 L855E: lda $04CE 008561 1 8D 2B 05 sta $052B 008564 1 A2 00 ldx #$00 008566 1 20 2F 85 jsr L852F 008569 1 AE 22 05 L8569: ldx $0522 00856C 1 BD 06 05 lda $0506,x 00856F 1 20 E6 84 jsr L84E6 008572 1 AE 22 05 ldx $0522 008575 1 BD 08 05 lda $0508,x 008578 1 20 29 8D jsr L8D29 00857B 1 29 BF and #$BF 00857D 1 F0 C0 beq L853F 00857F 1 CE 2B 05 dec $052B 008582 1 D0 E5 bne L8569 008584 1 4C CE 84 jmp L84CE 008587 1 ; 008587 1 AD CE 04 L8587: lda $04CE 00858A 1 8D 2B 05 sta $052B 00858D 1 A2 02 ldx #$02 00858F 1 20 2F 85 jsr L852F 008592 1 AE 22 05 L8592: ldx $0522 008595 1 BD 06 05 lda $0506,x 008598 1 20 E6 84 jsr L84E6 00859B 1 AE 22 05 ldx $0522 00859E 1 BD 08 05 lda $0508,x 0085A1 1 20 61 8D jsr L8D61 0085A4 1 F0 99 beq L853F 0085A6 1 CE 2B 05 dec $052B 0085A9 1 D0 E7 bne L8592 0085AB 1 4C CE 84 jmp L84CE 0085AE 1 ; 0085AE 1 A9 80 L85AE: lda #$80 0085B0 1 D0 0E bne L85C0 0085B2 1 A9 20 L85B2: lda #$20 0085B4 1 D0 0A bne L85C0 0085B6 1 A9 10 L85B6: lda #$10 0085B8 1 D0 06 bne L85C0 0085BA 1 A9 08 L85BA: lda #$08 0085BC 1 D0 02 bne L85C0 0085BE 1 A9 04 L85BE: lda #$04 0085C0 1 8D 24 05 L85C0: sta $0524 0085C3 1 4C D7 84 jmp L84D7 0085C6 1 ; 0085C6 1 20 13 EA L85C6: jsr CRLOW ; Outputs CR and LF to display/printer 0085C9 1 A0 5F ldy #$5F 0085CB 1 20 F7 85 jsr L85F7 ; output " DISK ERROR",CR 0085CE 1 AD AD 04 lda $04AD 0085D1 1 29 10 and #$10 0085D3 1 F0 16 beq L85EB 0085D5 1 AD A2 04 lda $04A2 0085D8 1 C9 20 cmp #$20 0085DA 1 B0 0F bcs L85EB 0085DC 1 AD AD 04 lda $04AD 0085DF 1 29 EF and #$EF 0085E1 1 8D AD 04 sta $04AD 0085E4 1 AD 24 05 lda $0524 0085E7 1 09 01 ora #$01 0085E9 1 D0 03 bne L85EE 0085EB 1 AD 24 05 L85EB: lda $0524 0085EE 1 20 46 EA L85EE: jsr NUMA ; Converts two hex numbers in A from binary to ASCII and outputs to active output device 0085F1 1 AD AD 04 lda $04AD 0085F4 1 4C 46 EA jmp NUMA ; Converts two hex numbers in A from binary to ASCII and outputs to active output device 0085F7 1 ; 0085F7 1 B9 18 86 L85F7: lda TABLE3,y 0085FA 1 48 pha 0085FB 1 29 7F and #$7F 0085FD 1 C9 0D cmp #CR 0085FF 1 D0 06 bne L8607 008601 1 20 13 EA jsr CRLOW ; Outputs CR and LF to display/printer 008604 1 4C 0A 86 jmp L860A 008607 1 ; 008607 1 20 7A E9 L8607: jsr OUTPUT ; Outputs ASCII character in A to display/printer 00860A 1 C8 L860A: iny 00860B 1 68 pla 00860C 1 10 E9 bpl L85F7 00860E 1 60 rts 00860F 1 ; 00860F 1 20 3E E8 L860F: jsr BLANK ; Outputs one Space to display/printer 008612 1 20 F7 85 jsr L85F7 ; output message 008615 1 4C 73 E9 jmp REDOUT ; Inputs one ASCII character from keyboard to A with echo to display/printer 008618 1 ; 008618 1 44 45 4E 53 TABLE3: .byte "DENSITY",$BD 00861C 1 49 54 59 BD 008620 1 0D 44 49 53 .byte CR,"DISK",$BD 008624 1 4B BD 008626 1 0D 28 46 29 .byte CR,"(F)ORMAT, (B)ACKUP, (L)IST, (D)EL, (R)EC",CR 00862A 1 4F 52 4D 41 00862E 1 54 2C 20 28 008650 1 0D 55 54 49 .byte CR,"UTILITY",$BD 008654 1 4C 49 54 59 008658 1 BD 008659 1 53 45 43 20 .byte "SEC LEFT",$BD 00865D 1 4C 45 46 54 008661 1 BD 008662 1 46 49 4C 45 .byte "FILE NAME LEN ",$D3 008666 1 20 4E 41 4D 00866A 1 45 20 20 4C 008672 1 0D 57 41 49 .byte CR,"WAI",$D4 008676 1 D4 008677 1 20 44 49 53 .byte " DISK ERROR",$BD 00867B 1 4B 20 45 52 00867F 1 52 4F 52 BD 008683 1 41 52 45 20 .byte "ARE YOU SURE",$BF 008687 1 59 4F 55 20 00868B 1 53 55 52 45 008690 1 ; 008690 1 20 09 87 L8690: jsr L8709 008693 1 8E 22 05 L8693: stx $0522 008696 1 A0 08 L8696: ldy #$08 008698 1 20 0F 86 jsr L860F ; output CR,"DISK",CR 00869B 1 20 E3 86 jsr L86E3 00869E 1 90 F6 bcc L8696 0086A0 1 48 pha 0086A1 1 AD 30 05 lda $0530 0086A4 1 F0 12 beq L86B8 0086A6 1 A0 00 L86A6: ldy #$00 0086A8 1 20 0F 86 jsr L860F ; output "DENSITY",CR 0086AB 1 C9 44 cmp #$44 0086AD 1 F0 04 beq L86B3 0086AF 1 C9 53 cmp #$53 0086B1 1 D0 F3 bne L86A6 0086B3 1 29 01 L86B3: and #$01 0086B5 1 9D 04 05 sta $0504,x 0086B8 1 BC 02 05 L86B8: ldy $0502,x 0086BB 1 BD 04 05 lda $0504,x 0086BE 1 AA tax 0086BF 1 68 pla 0086C0 1 20 53 8C jsr L8C53 0086C3 1 A9 00 lda #$00 0086C5 1 8D 30 05 sta $0530 0086C8 1 85 D7 sta $D7 0086CA 1 85 D9 sta $D9 0086CC 1 AC 31 05 ldy $0531 0086CF 1 84 D8 sty $D8 0086D1 1 8C CA 04 sty $04CA 0086D4 1 C8 iny 0086D5 1 84 DA sty $DA 0086D7 1 8C CC 04 sty $04CC 0086DA 1 8D B3 04 sta $04B3 0086DD 1 20 82 89 jsr L8982 0086E0 1 4C 13 EA jmp CRLOW ; Outputs CR and LF to display/printer 0086E3 1 ; 0086E3 1 38 L86E3: sec 0086E4 1 E9 31 sbc #$31 0086E6 1 90 0C bcc L86F4 0086E8 1 A8 tay 0086E9 1 AD 04 8F lda FDC+4 0086EC 1 29 20 and #$20 0086EE 1 D0 06 bne L86F6 0086F0 1 C0 04 cpy #$04 0086F2 1 90 0C bcc L8700 0086F4 1 18 L86F4: clc 0086F5 1 60 rts 0086F6 1 ; 0086F6 1 98 L86F6: tya 0086F7 1 C9 08 cmp #$08 0086F9 1 B0 F9 bcs L86F4 0086FB 1 4A lsr a 0086FC 1 A8 tay 0086FD 1 A9 00 lda #$00 0086FF 1 2A rol a 008700 1 9D 02 05 L8700: sta $0502,x 008703 1 98 tya 008704 1 9D 00 05 sta $0500,x 008707 1 38 sec 008708 1 60 rts 008709 1 ; 008709 1 A0 4D L8709: ldy #$4D 00870B 1 20 AF E7 jsr KEP ; Print message pointed to by Y 00870E 1 A0 00 ldy #$00 008710 1 20 5F E9 L8710: jsr RDRUB ; Inputs one ASCII character from keyboard to A with echo to display/printer 008713 1 C9 0D cmp #$0D 008715 1 D0 02 bne L8719 008717 1 A9 20 lda #$20 008719 1 AE 22 05 L8719: ldx $0522 00871C 1 F0 05 beq L8723 00871E 1 99 18 05 sta $0518,y 008721 1 D0 03 bne L8726 008723 1 99 0E 05 L8723: sta $050E,y 008726 1 C8 L8726: iny 008727 1 C0 0A cpy #$0A 008729 1 F0 06 beq L8731 00872B 1 C9 20 cmp #$20 00872D 1 F0 EA beq L8719 00872F 1 D0 DF bne L8710 008731 1 60 L8731: rts 008732 1 ; 008732 1 AE 22 05 L8732: ldx $0522 008735 1 BD 0A 05 lda $050A,x 008738 1 18 clc 008739 1 69 10 adc #$10 00873B 1 B0 05 bcs L8742 00873D 1 DD 0C 05 cmp $050C,x 008740 1 90 11 bcc L8753 008742 1 AD AA 04 L8742: lda $04AA 008745 1 4A lsr a 008746 1 DD 08 05 cmp $0508,x 008749 1 90 0D bcc L8758 00874B 1 20 5E 85 jsr L855E 00874E 1 AE 22 05 ldx $0522 008751 1 A9 00 lda #$00 008753 1 38 L8753: sec 008754 1 9D 0A 05 sta $050A,x 008757 1 A8 tay 008758 1 60 L8758: rts 008759 1 ; 008759 1 B1 DB L8759: lda ($DB),y 00875B 1 F0 18 beq L8775 00875D 1 AE 22 05 ldx $0522 008760 1 F0 02 beq L8764 008762 1 A2 0A ldx #$0A 008764 1 C8 L8764: iny 008765 1 B1 DB lda ($DB),y 008767 1 DD 0E 05 cmp $050E,x 00876A 1 D0 10 bne L877C 00876C 1 E8 inx 00876D 1 E0 0A cpx #$0A 00876F 1 F0 04 beq L8775 008771 1 E0 14 cpx #$14 008773 1 D0 EF bne L8764 008775 1 AE 22 05 L8775: ldx $0522 008778 1 BC 0A 05 ldy $050A,x 00877B 1 60 rts 00877C 1 ; 00877C 1 20 32 87 L877C: jsr L8732 00877F 1 B0 D8 bcs L8759 008781 1 4C BA 85 jmp L85BA 008784 1 ; 008784 1 20 B9 87 DEL: jsr L87B9 ; *** Command DEL *** 008787 1 20 59 87 L8787: jsr L8759 00878A 1 A9 01 lda #$01 00878C 1 D1 DB cmp ($DB),y 00878E 1 F0 09 beq L8799 008790 1 10 24 bpl L87B6 008792 1 20 32 87 jsr L8732 008795 1 B0 F0 bcs L8787 008797 1 90 1D bcc L87B6 008799 1 A9 02 L8799: lda #$02 00879B 1 91 DB L879B: sta ($DB),y 00879D 1 CE 08 05 dec $0508 0087A0 1 4C 29 83 jmp L8329 0087A3 1 ; 0087A3 1 20 B9 87 REC: jsr L87B9 ; *** Command REC *** 0087A6 1 20 59 87 L87A6: jsr L8759 0087A9 1 A9 01 lda #$01 0087AB 1 D1 DB cmp ($DB),y 0087AD 1 30 EC bmi L879B 0087AF 1 D0 05 bne L87B6 0087B1 1 20 32 87 jsr L8732 0087B4 1 B0 F0 bcs L87A6 0087B6 1 4C B6 85 L87B6: jmp L85B6 0087B9 1 ; 0087B9 1 A2 00 L87B9: ldx #$00 0087BB 1 8E 22 05 stx $0522 0087BE 1 20 90 86 jsr L8690 0087C1 1 4C 16 88 jmp L8816 0087C4 1 ; 0087C4 1 A2 0F L87C4: ldx #$0F 0087C6 1 A9 00 lda #$00 0087C8 1 8D 25 05 sta $0525 0087CB 1 8D 26 05 sta $0526 0087CE 1 8D 27 05 sta $0527 0087D1 1 18 clc 0087D2 1 F8 sed 0087D3 1 A0 02 L87D3: ldy #$02 0087D5 1 0E 29 05 asl $0529 0087D8 1 2E 2A 05 rol $052A 0087DB 1 B9 25 05 L87DB: lda $0525,y 0087DE 1 79 25 05 adc $0525,y 0087E1 1 99 25 05 sta $0525,y 0087E4 1 88 dey 0087E5 1 10 F4 bpl L87DB 0087E7 1 CA dex 0087E8 1 10 E9 bpl L87D3 0087EA 1 D8 cld 0087EB 1 60 L87EB: rts 0087EC 1 ; 0087EC 1 8D 29 05 L87EC: sta $0529 0087EF 1 8C 2A 05 sty $052A 0087F2 1 38 sec 0087F3 1 AD A5 04 lda $04A5 0087F6 1 ED 2A 05 sbc $052A 0087F9 1 B0 04 bcs L87FF 0087FB 1 6D AA 04 adc $04AA 0087FE 1 18 clc 0087FF 1 AA L87FF: tax 008800 1 AD A4 04 lda $04A4 008803 1 ED 29 05 sbc $0529 008806 1 A8 tay 008807 1 8A txa 008808 1 A2 00 ldx #$00 00880A 1 88 L880A: dey 00880B 1 30 DE bmi L87EB 00880D 1 18 clc 00880E 1 6D AA 04 adc $04AA 008811 1 90 F7 bcc L880A 008813 1 E8 inx 008814 1 D0 F4 bne L880A 008816 1 AE 22 05 L8816: ldx $0522 008819 1 A9 00 lda #$00 00881B 1 8D 24 05 sta $0524 00881E 1 9D 0A 05 sta $050A,x 008821 1 A9 01 lda #$01 008823 1 9D 06 05 sta $0506,x 008826 1 9D 08 05 sta $0508,x 008829 1 20 5E 85 jsr L855E 00882C 1 AE 22 05 ldx $0522 00882F 1 AC BF 04 ldy $04BF 008832 1 BD 04 05 lda $0504,x 008835 1 D0 03 bne L883A 008837 1 AC BE 04 ldy $04BE 00883A 1 98 L883A: tya 00883B 1 9D 0C 05 sta $050C,x 00883E 1 A0 00 ldy #$00 008840 1 60 rts 008841 1 ; 008841 1 A9 00 L8841: lda #$00 008843 1 A8 tay 008844 1 91 D7 L8844: sta ($D7),y 008846 1 88 dey 008847 1 D0 FB bne L8844 008849 1 60 rts 00884A 1 ; 00884A 1 A2 00 L884A: ldx #$00 00884C 1 8E 22 05 stx $0522 00884F 1 AD 00 05 lda $0500 008852 1 AC 02 05 ldy $0502 008855 1 AE 04 05 ldx $0504 008858 1 4C 53 8C jmp L8C53 00885B 1 ; 00885B 1 A2 01 L885B: ldx #$01 00885D 1 8E 22 05 stx $0522 008860 1 AD 01 05 lda $0501 008863 1 AC 03 05 ldy $0503 008866 1 AE 05 05 ldx $0505 008869 1 4C 53 8C jmp L8C53 00886C 1 ; 00886C 1 AD 00 8F L886C: lda FDC 00886F 1 AD 04 8F lda FDC+4 008872 1 A9 00 lda #$00 008874 1 A2 1B ldx #$1B 008876 1 9D A2 04 L8876: sta $04A2,x 008879 1 CA dex 00887A 1 10 FA bpl L8876 00887C 1 A2 3B ldx #$3B 00887E 1 BD 88 88 L887E: lda TABLE4,x 008881 1 9D BE 04 sta $04BE,x 008884 1 CA dex 008885 1 10 F7 bpl L887E 008887 1 60 rts 008888 1 ; 008888 1 FF 7F 80 TABLE4: .byte $FF,$7F,$80 00888B 1 ; 00888B 1 01 23 4D 10 .byte $01,$23,$4D,$10,$1A 00888F 1 1A 008890 1 1E 06 64 00 .byte $1E,$06,$64,$00,$3E,$00,$3F,$07 008894 1 3E 00 3F 07 008898 1 05 E5 .byte $05,$E5 00889A 1 ; 00889A 1 06 07 08 09 .byte $06,$07,$08,$09,$0A,$0B 00889E 1 0A 0B 0088A0 1 0C 0D 0E 0F .byte $0C,$0D,$0E,$0F,$10,$00,$02,$03 0088A4 1 10 00 02 03 0088A8 1 04 05 06 07 .byte $04,$05,$06,$07,$08,$09,$0A,$0B 0088AC 1 08 09 0A 0B 0088B0 1 0C 0D 0E 0F .byte $0C,$0D,$0E,$0F,$10,$11,$12,$13 0088B4 1 10 11 12 13 0088B8 1 14 15 16 17 .byte $14,$15,$16,$17,$18,$19,$1A,$00 0088BC 1 18 19 1A 00 0088C0 1 02 03 04 05 .byte $02,$03,$04,$05,$78,$D8 0088C4 1 78 D8 0088C6 1 ; 0088C6 1 A9 00 lda #$00 0088C8 1 8D BB 04 sta $04BB 0088CB 1 8D AD 04 sta $04AD 0088CE 1 AD B1 04 lda $04B1 0088D1 1 F0 2B beq L88FE 0088D3 1 AD B0 04 lda $04B0 0088D6 1 F0 26 beq L88FE 0088D8 1 20 16 8C jsr L8C16 0088DB 1 20 04 89 jsr L8904 0088DE 1 A9 80 lda #$80 0088E0 1 AE C2 04 ldx $04C2 0088E3 1 AC C4 04 ldy $04C4 0088E6 1 2C 04 8F bit FDC+4 0088E9 1 10 01 bpl L88EC 0088EB 1 0A asl a 0088EC 1 8D C0 04 L88EC: sta $04C0 0088EF 1 70 06 bvs L88F7 0088F1 1 AE C3 04 ldx $04C3 0088F4 1 AC C5 04 ldy $04C5 0088F7 1 8C AA 04 L88F7: sty $04AA 0088FA 1 8E A9 04 stx $04A9 0088FD 1 60 rts 0088FE 1 ; 0088FE 1 A9 80 L88FE: lda #$80 008900 1 8D AD 04 sta $04AD 008903 1 60 rts 008904 1 ; 008904 1 AD B1 04 L8904: lda $04B1 008907 1 09 40 ora #$40 008909 1 8D 04 8F sta FDC+4 00890C 1 60 rts 00890D 1 ; 00890D 1 20 CA 8D L890D: jsr L8DCA 008910 1 A9 00 lda #$00 008912 1 8D B3 04 sta $04B3 008915 1 20 82 89 L8915: jsr L8982 008918 1 29 99 and #$99 00891A 1 D0 1B bne L8937 00891C 1 20 94 89 jsr L8994 00891F 1 29 FD and #$FD 008921 1 D0 14 bne L8937 008923 1 20 3B 89 jsr L893B 008926 1 29 99 and #$99 008928 1 D0 0D bne L8937 00892A 1 EE B3 04 inc $04B3 00892D 1 AD B3 04 lda $04B3 008930 1 CD A9 04 cmp $04A9 008933 1 D0 E0 bne L8915 008935 1 A9 00 lda #$00 008937 1 60 L8937: rts 008938 1 ; 008938 1 8D B3 04 L8938: sta $04B3 00893B 1 20 CA 8D L893B: jsr L8DCA 00893E 1 AE B4 04 ldx $04B4 008941 1 BD B5 04 lda $04B5,x 008944 1 8D 01 8F sta FDC+1 008947 1 AD B3 04 lda $04B3 00894A 1 9D B5 04 sta $04B5,x 00894D 1 8D 03 8F sta FDC+3 008950 1 F0 04 beq L8956 008952 1 A9 10 lda #$10 008954 1 D0 05 bne L895B 008956 1 A0 01 L8956: ldy #$01 008958 1 8C 02 8F sty FDC+2 00895B 1 0D CD 04 L895B: ora $04CD 00895E 1 8D AE 04 sta $04AE 008961 1 AD AF 04 lda $04AF 008964 1 10 0B bpl L8971 008966 1 4E AF 04 lsr $04AF 008969 1 AD C8 04 lda $04C8 00896C 1 F0 03 beq L8971 00896E 1 20 D9 8E jsr L8ED9 008971 1 AD AE 04 L8971: lda $04AE 008974 1 20 D6 8B jsr L8BD6 008977 1 A9 01 L8977: lda #$01 008979 1 2C 00 8F bit FDC 00897C 1 D0 F9 bne L8977 00897E 1 AD AD 04 L897E: lda $04AD 008981 1 60 rts 008982 1 ; 008982 1 AD CD 04 L8982: lda $04CD 008985 1 48 pha 008986 1 29 FB and #$FB 008988 1 8D CD 04 sta $04CD 00898B 1 20 3B 89 jsr L893B 00898E 1 68 pla 00898F 1 8D CD 04 sta $04CD 008992 1 D0 EA bne L897E 008994 1 20 CA 8D L8994: jsr L8DCA 008997 1 A2 04 ldx #$04 008999 1 2C 04 8F bit FDC+4 00899C 1 70 04 bvs L89A2 00899E 1 A9 DF lda #$DF 0089A0 1 D0 02 bne L89A4 0089A2 1 A9 CF L89A2: lda #$CF 0089A4 1 85 DB L89A4: sta $DB 0089A6 1 86 DC stx $DC 0089A8 1 38 sec 0089A9 1 6E AF 04 ror $04AF 0089AC 1 A9 F4 lda #$F4 0089AE 1 8D BB 04 sta $04BB 0089B1 1 A0 01 ldy #$01 0089B3 1 2C 04 8F bit FDC+4 0089B6 1 8D AE 04 sta $04AE 0089B9 1 8D 00 8F sta FDC 0089BC 1 30 03 bmi L89C1 0089BE 1 4C 04 8B jmp L8B04 0089C1 1 ; 0089C1 1 70 41 L89C1: bvs L8A04 0089C3 1 A2 4F ldx #$4F 0089C5 1 A9 4E lda #$4E 0089C7 1 2C 15 8F L89C7: bit $8F15 ; FDC 0089CA 1 8D 03 8F sta FDC+3 0089CD 1 CA dex 0089CE 1 D0 F7 bne L89C7 0089D0 1 2C 15 8F bit $8F15 ; FDC 0089D3 1 8D 03 8F sta FDC+3 0089D6 1 A2 0B ldx #$0B 0089D8 1 A9 00 lda #$00 0089DA 1 2C 15 8F L89DA: bit $8F15 ; FDC 0089DD 1 8D 03 8F sta FDC+3 0089E0 1 CA dex 0089E1 1 D0 F7 bne L89DA 0089E3 1 2C 15 8F bit $8F15 ; FDC 0089E6 1 8D 03 8F sta FDC+3 0089E9 1 A2 02 ldx #$02 0089EB 1 A9 F6 lda #$F6 0089ED 1 2C 15 8F L89ED: bit $8F15 ; FDC 0089F0 1 8D 03 8F sta FDC+3 0089F3 1 CA dex 0089F4 1 D0 F7 bne L89ED 0089F6 1 2C 15 8F bit $8F15 ; FDC 0089F9 1 8D 03 8F sta FDC+3 0089FC 1 A9 FC lda #$FC 0089FE 1 2C 15 8F bit $8F15 ; FDC 008A01 1 8D 03 8F sta FDC+3 008A04 1 A2 31 L8A04: ldx #$31 008A06 1 A9 4E lda #$4E 008A08 1 2C 15 8F L8A08: bit $8F15 ; FDC 008A0B 1 8D 03 8F sta FDC+3 008A0E 1 CA dex 008A0F 1 D0 F7 bne L8A08 008A11 1 2C 15 8F bit $8F15 ; FDC 008A14 1 8D 03 8F sta FDC+3 008A17 1 A2 0B ldx #$0B 008A19 1 A9 00 lda #$00 008A1B 1 2C 15 8F L8A1B: bit $8F15 ; FDC 008A1E 1 8D 03 8F sta FDC+3 008A21 1 CA dex 008A22 1 D0 F7 bne L8A1B 008A24 1 2C 15 8F bit $8F15 ; FDC 008A27 1 8D 03 8F sta FDC+3 008A2A 1 A2 02 ldx #$02 008A2C 1 A9 F5 lda #$F5 008A2E 1 2C 15 8F L8A2E: bit $8F15 ; FDC 008A31 1 8D 03 8F sta FDC+3 008A34 1 CA dex 008A35 1 D0 F7 bne L8A2E 008A37 1 2C 15 8F bit $8F15 ; FDC 008A3A 1 8D 03 8F sta FDC+3 008A3D 1 A9 FE lda #$FE 008A3F 1 2C 15 8F bit $8F15 ; FDC 008A42 1 8D 03 8F sta FDC+3 008A45 1 AD B3 04 lda $04B3 008A48 1 2C 15 8F bit $8F15 ; FDC 008A4B 1 8D 03 8F sta FDC+3 008A4E 1 AD B2 04 lda $04B2 008A51 1 2C 15 8F bit $8F15 ; FDC 008A54 1 8D 03 8F sta FDC+3 008A57 1 2C 15 8F bit $8F15 ; FDC 008A5A 1 8C 03 8F sty FDC+3 008A5D 1 A9 01 lda #$01 008A5F 1 2C 15 8F bit $8F15 ; FDC 008A62 1 8D 03 8F sta FDC+3 008A65 1 A9 F7 lda #$F7 008A67 1 2C 15 8F bit $8F15 ; FDC 008A6A 1 8D 03 8F sta FDC+3 008A6D 1 A2 15 ldx #$15 008A6F 1 A9 4E lda #$4E 008A71 1 2C 15 8F L8A71: bit $8F15 ; FDC 008A74 1 8D 03 8F sta FDC+3 008A77 1 CA dex 008A78 1 D0 F7 bne L8A71 008A7A 1 2C 15 8F bit $8F15 ; FDC 008A7D 1 8D 03 8F sta FDC+3 008A80 1 A2 0B ldx #$0B 008A82 1 A9 00 lda #$00 008A84 1 2C 15 8F L8A84: bit $8F15 ; FDC 008A87 1 8D 03 8F sta FDC+3 008A8A 1 CA dex 008A8B 1 D0 F7 bne L8A84 008A8D 1 2C 15 8F bit $8F15 ; FDC 008A90 1 8D 03 8F sta FDC+3 008A93 1 A2 02 ldx #$02 008A95 1 A9 F5 lda #$F5 008A97 1 2C 15 8F L8A97: bit $8F15 ; FDC 008A9A 1 8D 03 8F sta FDC+3 008A9D 1 CA dex 008A9E 1 D0 F7 bne L8A97 008AA0 1 2C 15 8F bit $8F15 ; FDC 008AA3 1 8D 03 8F sta FDC+3 008AA6 1 A2 FF ldx #$FF 008AA8 1 A9 FB lda #$FB 008AAA 1 2C 15 8F bit $8F15 ; FDC 008AAD 1 8D 03 8F sta FDC+3 008AB0 1 AD CF 04 lda $04CF 008AB3 1 2C 15 8F L8AB3: bit $8F15 ; FDC 008AB6 1 8D 03 8F sta FDC+3 008AB9 1 CA dex 008ABA 1 D0 F7 bne L8AB3 008ABC 1 2C 15 8F bit $8F15 ; FDC 008ABF 1 8D 03 8F sta FDC+3 008AC2 1 A9 F7 lda #$F7 008AC4 1 2C 15 8F bit $8F15 ; FDC 008AC7 1 8D 03 8F sta FDC+3 008ACA 1 A2 35 ldx #$35 008ACC 1 A9 4E lda #$4E 008ACE 1 2C 15 8F L8ACE: bit $8F15 ; FDC 008AD1 1 8D 03 8F sta FDC+3 008AD4 1 CA dex 008AD5 1 D0 F7 bne L8ACE 008AD7 1 2C 15 8F bit $8F15 ; FDC 008ADA 1 8D 03 8F sta FDC+3 008ADD 1 B1 DB lda ($DB),y 008ADF 1 F0 18 beq L8AF9 008AE1 1 2C 15 8F bit $8F15 ; FDC 008AE4 1 8E 03 8F stx FDC+3 008AE7 1 A8 tay 008AE8 1 A2 09 ldx #$09 008AEA 1 A9 00 lda #$00 008AEC 1 2C 15 8F bit $8F15 ; FDC 008AEF 1 8D 03 8F sta FDC+3 008AF2 1 4C 1B 8A jmp L8A1B 008AF5 1 ; 008AF5 1 A0 FF L8AF5: ldy #$FF 008AF7 1 D0 02 bne L8AFB 008AF9 1 A0 4E L8AF9: ldy #$4E 008AFB 1 2C 15 8F L8AFB: bit $8F15 ; FDC 008AFE 1 8C 03 8F sty FDC+3 008B01 1 4C FB 8A jmp L8AFB 008B04 1 ; 008B04 1 70 22 L8B04: bvs L8B28 008B06 1 A2 28 ldx #$28 008B08 1 A9 FF lda #$FF 008B0A 1 2C 15 8F L8B0A: bit $8F15 ; FDC 008B0D 1 8D 03 8F sta FDC+3 008B10 1 CA dex 008B11 1 D0 F7 bne L8B0A 008B13 1 A2 06 ldx #$06 008B15 1 A9 00 lda #$00 008B17 1 2C 15 8F L8B17: bit $8F15 ; FDC 008B1A 1 8D 03 8F sta FDC+3 008B1D 1 CA dex 008B1E 1 D0 F7 bne L8B17 008B20 1 A9 FC lda #$FC 008B22 1 2C 15 8F bit $8F15 ; FDC 008B25 1 8D 03 8F sta FDC+3 008B28 1 A2 1A L8B28: ldx #$1A 008B2A 1 A9 FF lda #$FF 008B2C 1 2C 15 8F L8B2C: bit $8F15 ; FDC 008B2F 1 8D 03 8F sta FDC+3 008B32 1 CA dex 008B33 1 D0 F7 bne L8B2C 008B35 1 A2 06 L8B35: ldx #$06 008B37 1 A9 00 lda #$00 008B39 1 2C 15 8F L8B39: bit $8F15 ; FDC 008B3C 1 8D 03 8F sta FDC+3 008B3F 1 CA dex 008B40 1 D0 F7 bne L8B39 008B42 1 A9 FE lda #$FE 008B44 1 2C 15 8F bit $8F15 ; FDC 008B47 1 8D 03 8F sta FDC+3 008B4A 1 AD B3 04 lda $04B3 008B4D 1 2C 15 8F bit $8F15 ; FDC 008B50 1 8D 03 8F sta FDC+3 008B53 1 AD B2 04 lda $04B2 008B56 1 2C 15 8F bit $8F15 ; FDC 008B59 1 8D 03 8F sta FDC+3 008B5C 1 2C 15 8F bit $8F15 ; FDC 008B5F 1 8C 03 8F sty FDC+3 008B62 1 A9 00 lda #$00 008B64 1 2C 15 8F bit $8F15 ; FDC 008B67 1 8D 03 8F sta FDC+3 008B6A 1 A9 F7 lda #$F7 008B6C 1 2C 15 8F bit $8F15 ; FDC 008B6F 1 8D 03 8F sta FDC+3 008B72 1 A2 0B ldx #$0B 008B74 1 A9 FF lda #$FF 008B76 1 2C 15 8F L8B76: bit $8F15 ; FDC 008B79 1 8D 03 8F sta FDC+3 008B7C 1 CA dex 008B7D 1 D0 F7 bne L8B76 008B7F 1 A2 06 ldx #$06 008B81 1 A9 00 lda #$00 008B83 1 2C 15 8F L8B83: bit $8F15 ; FDC 008B86 1 8D 03 8F sta FDC+3 008B89 1 CA dex 008B8A 1 D0 F7 bne L8B83 008B8C 1 A2 80 ldx #$80 008B8E 1 A9 FB lda #$FB 008B90 1 2C 15 8F bit $8F15 ; FDC 008B93 1 8D 03 8F sta FDC+3 008B96 1 AD CF 04 lda $04CF 008B99 1 2C 15 8F L8B99: bit $8F15 ; FDC 008B9C 1 8D 03 8F sta FDC+3 008B9F 1 CA dex 008BA0 1 D0 F7 bne L8B99 008BA2 1 A9 F7 lda #$F7 008BA4 1 2C 15 8F bit $8F15 ; FDC 008BA7 1 8D 03 8F sta FDC+3 008BAA 1 A2 1B ldx #$1B 008BAC 1 A9 FF lda #$FF 008BAE 1 2C 15 8F L8BAE: bit $8F15 ; FDC 008BB1 1 8D 03 8F sta FDC+3 008BB4 1 CA dex 008BB5 1 D0 F7 bne L8BAE 008BB7 1 B1 DB lda ($DB),y 008BB9 1 A8 tay 008BBA 1 F0 03 beq L8BBF 008BBC 1 4C 35 8B jmp L8B35 008BBF 1 ; 008BBF 1 4C F5 8A L8BBF: jmp L8AF5 008BC2 1 ; 008BC2 1 8D AE 04 L8BC2: sta $04AE 008BC5 1 AD 04 8F lda FDC+4 008BC8 1 4A lsr a 008BC9 1 AD AE 04 lda $04AE 008BCC 1 B0 02 bcs L8BD0 008BCE 1 09 08 ora #$08 008BD0 1 0D C7 04 L8BD0: ora $04C7 008BD3 1 8D AE 04 L8BD3: sta $04AE 008BD6 1 8D 00 8F L8BD6: sta FDC 008BD9 1 A0 00 ldy #$00 008BDB 1 2C 04 8F bit FDC+4 008BDE 1 30 05 bmi L8BE5 008BE0 1 A0 04 ldy #$04 008BE2 1 88 L8BE2: dey 008BE3 1 D0 FD bne L8BE2 008BE5 1 50 05 L8BE5: bvc L8BEC 008BE7 1 A0 04 ldy #$04 008BE9 1 88 L8BE9: dey 008BEA 1 D0 FD bne L8BE9 008BEC 1 60 L8BEC: rts 008BED 1 ; 008BED 1 48 pha 008BEE 1 AD AE 04 lda $04AE 008BF1 1 F0 06 beq L8BF9 008BF3 1 AD 00 8F lda FDC 008BF6 1 4A lsr a 008BF7 1 90 07 bcc L8C00 008BF9 1 AD 00 8F L8BF9: lda FDC 008BFC 1 68 pla 008BFD 1 6C A0 04 jmp (L04A0) 008C00 1 ; 008C00 1 8A L8C00: txa 008C01 1 48 pha 008C02 1 20 1C 8C jsr L8C1C 008C05 1 AD BB 04 lda $04BB 008C08 1 F0 08 beq L8C12 008C0A 1 68 pla 008C0B 1 68 pla 008C0C 1 68 pla 008C0D 1 68 pla 008C0E 1 68 pla 008C0F 1 4C 7E 89 jmp L897E 008C12 1 ; 008C12 1 68 L8C12: pla 008C13 1 AA tax 008C14 1 68 pla 008C15 1 40 rti 008C16 1 ; 008C16 1 AD 00 8F L8C16: lda FDC 008C19 1 4A lsr a 008C1A 1 B0 FA bcs L8C16 008C1C 1 AD BA 04 L8C1C: lda $04BA 008C1F 1 F0 0A beq L8C2B 008C21 1 98 tya 008C22 1 48 pha 008C23 1 A0 0C ldy #$0C 008C25 1 A9 00 lda #$00 008C27 1 91 DD sta ($DD),y 008C29 1 68 pla 008C2A 1 A8 tay 008C2B 1 AD B1 04 L8C2B: lda $04B1 008C2E 1 29 BF and #$BF 008C30 1 8D 04 8F sta FDC+4 008C33 1 AE AE 04 ldx $04AE 008C36 1 8E A2 04 stx $04A2 008C39 1 AD AD 04 lda $04AD 008C3C 1 D0 09 bne L8C47 008C3E 1 AD 00 8F lda FDC 008C41 1 E0 20 cpx #$20 008C43 1 B0 02 bcs L8C47 008C45 1 29 D9 and #$D9 008C47 1 A2 00 L8C47: ldx #$00 008C49 1 8E AE 04 stx $04AE 008C4C 1 29 FD and #$FD 008C4E 1 8D AD 04 sta $04AD 008C51 1 58 cli 008C52 1 60 rts 008C53 1 ; 008C53 1 D8 L8C53: cld 008C54 1 48 pha 008C55 1 A9 20 lda #$20 008C57 1 2C B1 04 bit $04B1 008C5A 1 D0 5F bne L8CBB 008C5C 1 68 pla 008C5D 1 8D B4 04 sta $04B4 008C60 1 8C B2 04 sty $04B2 008C63 1 A9 20 lda #$20 008C65 1 20 F0 8C jsr L8CF0 008C68 1 20 A6 8C jsr L8CA6 008C6B 1 20 7C 8C jsr L8C7C 008C6E 1 A2 00 ldx #$00 008C70 1 AD 04 8F lda FDC+4 008C73 1 29 20 and #$20 008C75 1 F0 01 beq L8C78 008C77 1 E8 inx 008C78 1 8E C1 04 L8C78: stx $04C1 008C7B 1 60 rts 008C7C 1 ; 008C7C 1 8A L8C7C: txa 008C7D 1 F0 08 beq L8C87 008C7F 1 A9 80 lda #$80 008C81 1 0D B1 04 ora $04B1 008C84 1 8D B1 04 sta $04B1 008C87 1 AD B2 04 L8C87: lda $04B2 008C8A 1 0D B1 04 ora $04B1 008C8D 1 8D B1 04 sta $04B1 008C90 1 AE B4 04 ldx $04B4 008C93 1 E0 04 cpx #$04 008C95 1 30 03 bmi L8C9A 008C97 1 4C FE 88 jmp L88FE 008C9A 1 ; 008C9A 1 BD B7 8C L8C9A: lda TABLE5,x 008C9D 1 0D B1 04 ora $04B1 008CA0 1 8D B0 04 sta $04B0 008CA3 1 20 F0 8C jsr L8CF0 008CA6 1 AD C6 04 L8CA6: lda $04C6 008CA9 1 8D A6 04 sta $04A6 008CAC 1 A9 FF L8CAC: lda #$FF 008CAE 1 20 D9 8E jsr L8ED9 008CB1 1 CE A6 04 dec $04A6 008CB4 1 D0 F6 bne L8CAC 008CB6 1 60 L8CB6: rts 008CB7 1 ; 008CB7 1 42 44 48 50 TABLE5: .byte $42,$44,$48,$50 008CBB 1 ; 008CBB 1 68 L8CBB: pla 008CBC 1 D8 cld 008CBD 1 CD B4 04 cmp $04B4 008CC0 1 D0 14 bne L8CD6 008CC2 1 CC B2 04 cpy $04B2 008CC5 1 D0 12 bne L8CD9 008CC7 1 8A txa 008CC8 1 6A ror a 008CC9 1 6A ror a 008CCA 1 4D B1 04 eor $04B1 008CCD 1 30 0D bmi L8CDC 008CCF 1 29 20 and #$20 008CD1 1 D0 E3 bne L8CB6 008CD3 1 4C FE 88 jmp L88FE 008CD6 1 ; 008CD6 1 8D B4 04 L8CD6: sta $04B4 008CD9 1 8C B2 04 L8CD9: sty $04B2 008CDC 1 20 E2 8C L8CDC: jsr L8CE2 008CDF 1 4C 7C 8C jmp L8C7C 008CE2 1 ; 008CE2 1 A9 20 L8CE2: lda #$20 008CE4 1 2D B1 04 and $04B1 008CE7 1 20 F0 8C L8CE7: jsr L8CF0 008CEA 1 A9 00 lda #$00 008CEC 1 8D B0 04 sta $04B0 008CEF 1 60 rts 008CF0 1 ; 008CF0 1 8D 04 8F L8CF0: sta FDC+4 008CF3 1 8D B1 04 sta $04B1 008CF6 1 60 rts 008CF7 1 ; 008CF7 1 A9 00 L8CF7: lda #$00 008CF9 1 F0 EC beq L8CE7 008CFB 1 20 CA 8D jsr L8DCA 008CFE 1 F0 0E beq L8D0E 008D00 1 20 A6 8E jsr L8EA6 008D03 1 20 0C 8E jsr L8E0C 008D06 1 A9 E4 lda #$E4 008D08 1 20 D3 8B jsr L8BD3 008D0B 1 4C 39 8D jmp L8D39 008D0E 1 ; 008D0E 1 20 E3 8E L8D0E: jsr L8EE3 008D11 1 A9 E4 lda #$E4 008D13 1 8D BB 04 sta $04BB 008D16 1 20 D3 8B jsr L8BD3 008D19 1 2C 15 8F L8D19: bit $8F15 ; FDC 008D1C 1 AD 03 8F lda FDC+3 008D1F 1 91 DB sta ($DB),y 008D21 1 C8 iny 008D22 1 D0 F5 bne L8D19 008D24 1 E6 DC inc $DC 008D26 1 4C 19 8D jmp L8D19 008D29 1 ; 008D29 1 20 C7 8D L8D29: jsr L8DC7 008D2C 1 F0 16 beq L8D44 008D2E 1 20 BB 8E jsr L8EBB 008D31 1 20 0C 8E jsr L8E0C 008D34 1 A9 80 lda #$80 008D36 1 20 C2 8B L8D36: jsr L8BC2 008D39 1 20 77 89 L8D39: jsr L8977 008D3C 1 20 7A 8E L8D3C: jsr L8E7A 008D3F 1 D0 FB bne L8D3C 008D41 1 4C 7E 89 jmp L897E 008D44 1 ; 008D44 1 20 E3 8E L8D44: jsr L8EE3 008D47 1 A9 80 lda #$80 008D49 1 20 C2 8B jsr L8BC2 008D4C 1 20 52 8D jsr L8D52 008D4F 1 4C 77 89 jmp L8977 008D52 1 ; 008D52 1 2C 15 8F L8D52: bit $8F15 ; FDC 008D55 1 AD 03 8F lda FDC+3 008D58 1 91 DB sta ($DB),y 008D5A 1 C8 iny 008D5B 1 CC C0 04 cpy $04C0 008D5E 1 D0 F2 bne L8D52 008D60 1 60 rts 008D61 1 ; 008D61 1 20 C7 8D L8D61: jsr L8DC7 008D64 1 F0 0A beq L8D70 008D66 1 20 BB 8E jsr L8EBB 008D69 1 20 59 8E jsr L8E59 008D6C 1 A9 A0 lda #$A0 008D6E 1 D0 C6 bne L8D36 008D70 1 20 F1 8E L8D70: jsr L8EF1 008D73 1 A9 A0 lda #$A0 008D75 1 20 C2 8B jsr L8BC2 008D78 1 20 7E 8D jsr L8D7E 008D7B 1 4C 77 89 jmp L8977 008D7E 1 ; 008D7E 1 B1 DB L8D7E: lda ($DB),y 008D80 1 2C 15 8F bit $8F15 ; FDC 008D83 1 8D 03 8F sta FDC+3 008D86 1 C8 iny 008D87 1 CC C0 04 cpy $04C0 008D8A 1 D0 F2 bne L8D7E 008D8C 1 60 rts 008D8D 1 ; 008D8D 1 20 C1 8D jsr L8DC1 008D90 1 F0 12 beq L8DA4 008D92 1 20 8B 8E jsr L8E8B 008D95 1 20 0C 8E jsr L8E0C 008D98 1 A9 90 lda #$90 008D9A 1 20 C2 8B L8D9A: jsr L8BC2 008D9D 1 20 7A 8E L8D9D: jsr L8E7A 008DA0 1 D0 FB bne L8D9D 008DA2 1 F0 15 beq L8DB9 008DA4 1 20 E3 8E L8DA4: jsr L8EE3 008DA7 1 A9 90 lda #$90 008DA9 1 20 C2 8B jsr L8BC2 008DAC 1 20 52 8D L8DAC: jsr L8D52 008DAF 1 20 DB 8D jsr L8DDB 008DB2 1 B0 F8 bcs L8DAC 008DB4 1 A9 0D L8DB4: lda #$0D 008DB6 1 20 D9 8E jsr L8ED9 008DB9 1 A9 D0 L8DB9: lda #$D0 008DBB 1 20 D6 8B jsr L8BD6 008DBE 1 4C 16 8C jmp L8C16 008DC1 1 ; 008DC1 1 8E AC 04 L8DC1: stx $04AC 008DC4 1 8D AB 04 sta $04AB 008DC7 1 8D 02 8F L8DC7: sta FDC+2 008DCA 1 20 C4 88 L8DCA: jsr $88C4 008DCD 1 AD AD 04 lda $04AD 008DD0 1 10 05 bpl L8DD7 008DD2 1 68 pla 008DD3 1 68 pla 008DD4 1 4C 7E 89 jmp L897E 008DD7 1 ; 008DD7 1 AD BA 04 L8DD7: lda $04BA 008DDA 1 60 rts 008DDB 1 ; 008DDB 1 20 CA 8E L8DDB: jsr L8ECA 008DDE 1 A0 00 ldy #$00 008DE0 1 EE AB 04 inc $04AB 008DE3 1 AD AC 04 lda $04AC 008DE6 1 CD AB 04 cmp $04AB 008DE9 1 60 rts 008DEA 1 ; 008DEA 1 20 C1 8D jsr L8DC1 008DED 1 F0 0B beq L8DFA 008DEF 1 20 8B 8E jsr L8E8B 008DF2 1 20 59 8E jsr L8E59 008DF5 1 A9 B0 lda #$B0 008DF7 1 4C 9A 8D jmp L8D9A 008DFA 1 ; 008DFA 1 20 F1 8E L8DFA: jsr L8EF1 008DFD 1 A9 B0 lda #$B0 008DFF 1 20 C2 8B jsr L8BC2 008E02 1 20 7E 8D L8E02: jsr L8D7E 008E05 1 20 DB 8D jsr L8DDB 008E08 1 B0 F8 bcs L8E02 008E0A 1 90 A8 bcc L8DB4 008E0C 1 20 81 8E L8E0C: jsr L8E81 008E0F 1 20 E3 8E jsr L8EE3 008E12 1 A9 8F lda #$8F 008E14 1 A0 01 ldy #$01 008E16 1 91 DD sta ($DD),y 008E18 1 A9 03 lda #$03 008E1A 1 C8 iny 008E1B 1 91 DD sta ($DD),y 008E1D 1 A0 04 ldy #$04 008E1F 1 91 DD sta ($DD),y 008E21 1 A9 3A lda #$3A 008E23 1 48 pha 008E24 1 AE CA 04 ldx $04CA 008E27 1 AD C9 04 lda $04C9 008E2A 1 48 L8E2A: pha 008E2B 1 8A txa 008E2C 1 A0 05 ldy #$05 008E2E 1 91 DD sta ($DD),y 008E30 1 C8 iny 008E31 1 68 pla 008E32 1 91 DD sta ($DD),y 008E34 1 AD A8 04 lda $04A8 008E37 1 A0 0A ldy #$0A 008E39 1 91 DD sta ($DD),y 008E3B 1 AD A7 04 lda $04A7 008E3E 1 88 dey 008E3F 1 91 DD sta ($DD),y 008E41 1 A9 04 lda #$04 008E43 1 88 dey 008E44 1 91 DD sta ($DD),y 008E46 1 A0 0C ldy #$0C 008E48 1 B1 DD lda ($DD),y 008E4A 1 AD BA 04 lda $04BA 008E4D 1 29 C0 and #$C0 008E4F 1 8D A6 04 sta $04A6 008E52 1 68 pla 008E53 1 0D A6 04 ora $04A6 008E56 1 91 DD sta ($DD),y 008E58 1 60 rts 008E59 1 ; 008E59 1 20 81 8E L8E59: jsr L8E81 008E5C 1 20 F1 8E jsr L8EF1 008E5F 1 A9 03 lda #$03 008E61 1 A0 00 ldy #$00 008E63 1 91 DD sta ($DD),y 008E65 1 AD CC 04 lda $04CC 008E68 1 C8 iny 008E69 1 91 DD sta ($DD),y 008E6B 1 AD CB 04 lda $04CB 008E6E 1 C8 iny 008E6F 1 91 DD sta ($DD),y 008E71 1 A9 39 lda #$39 008E73 1 48 pha 008E74 1 A2 8F ldx #$8F 008E76 1 A9 03 lda #$03 008E78 1 D0 B0 bne L8E2A 008E7A 1 A0 0C L8E7A: ldy #$0C 008E7C 1 A9 40 lda #$40 008E7E 1 31 DD and ($DD),y 008E80 1 60 rts 008E81 1 ; 008E81 1 AD B9 04 L8E81: lda $04B9 008E84 1 85 DE sta $DE 008E86 1 A9 00 lda #$00 008E88 1 85 DD sta $DD 008E8A 1 60 rts 008E8B 1 ; 008E8B 1 AC AB 04 L8E8B: ldy $04AB 008E8E 1 A2 00 ldx #$00 008E90 1 8A txa 008E91 1 38 L8E91: sec 008E92 1 CE C0 04 dec $04C0 008E95 1 6D C0 04 adc $04C0 008E98 1 90 01 bcc L8E9B 008E9A 1 E8 inx 008E9B 1 EE C0 04 L8E9B: inc $04C0 008E9E 1 CC AC 04 cpy $04AC 008EA1 1 F0 20 beq L8EC3 008EA3 1 C8 iny 008EA4 1 D0 EB bne L8E91 008EA6 1 AD 04 8F L8EA6: lda FDC+4 008EA9 1 2A rol a 008EAA 1 2A rol a 008EAB 1 2A rol a 008EAC 1 29 03 and #$03 008EAE 1 AA tax 008EAF 1 BD B7 8E lda TABLE6,x 008EB2 1 AA tax 008EB3 1 A9 00 lda #$00 008EB5 1 F0 0C beq L8EC3 008EB7 1 ; 008EB7 1 14 0C 27 18 TABLE6: .byte $14,$0C,$27,$18 008EBB 1 ; 008EBB 1 A2 00 L8EBB: ldx #$00 008EBD 1 AD C0 04 lda $04C0 008EC0 1 D0 01 bne L8EC3 008EC2 1 E8 inx 008EC3 1 8E A7 04 L8EC3: stx $04A7 008EC6 1 8D A8 04 sta $04A8 008EC9 1 60 rts 008ECA 1 ; 008ECA 1 98 L8ECA: tya 008ECB 1 D0 02 bne L8ECF 008ECD 1 E6 DC inc $DC 008ECF 1 18 L8ECF: clc 008ED0 1 65 DB adc $DB 008ED2 1 85 DB sta $DB 008ED4 1 90 02 bcc L8ED8 008ED6 1 E6 DC inc $DC 008ED8 1 60 L8ED8: rts 008ED9 1 ; 008ED9 1 8D A3 04 L8ED9: sta $04A3 008EDC 1 EA L8EDC: nop 008EDD 1 CE A3 04 dec $04A3 008EE0 1 D0 FA bne L8EDC 008EE2 1 60 rts 008EE3 1 ; 008EE3 1 AD C9 04 L8EE3: lda $04C9 008EE6 1 85 DB sta $DB 008EE8 1 AD CA 04 lda $04CA 008EEB 1 85 DC sta $DC 008EED 1 4E AF 04 lsr $04AF 008EF0 1 60 rts 008EF1 1 ; 008EF1 1 AD CB 04 L8EF1: lda $04CB 008EF4 1 85 DB sta $DB 008EF6 1 AD CC 04 lda $04CC 008EF9 1 85 DC sta $DC 008EFB 1 38 sec 008EFC 1 6E AF 04 ror $04AF 008EFF 1 60 rts 008F00 1 ; 008F00 1 43 4F 50 59 ROKWEL: .byte "COPYRIGHT 1982 ROCKWELL INTERNATIONAL" 008F04 1 52 49 47 48 008F08 1 54 20 31 39 008F25 1 ; 008F25 1 00 00 00 00 .res 219,$00 008F29 1 00 00 00 00 008F2D 1 00 00 00 00 008F25 1