$C146/49478:   Interpret command from computer

Jump from $EBFC:

C146: A9 00     LDA #$00
C148: 8D F9 02  STA $02F9
C14B: AD 8E 02  LDA $028E       ; last drive number
C14E: 85 7F     STA $7F         ; drive number
C150: 20 BC E6  JSR $E6BC       ; prepare 'ok' message
C153: A5 84     LDA $84         ; secondary address
C155: 10 09     BPL $C160
C157: 29 0F     AND #$0F
C159: C9 0F     CMP #$0F        ; 15, command channel
C15B: F0 03     BEQ $C160       ; yes
C15D: 4C B4 D7  JMP $D7B4       ; to OPEN command

Jump from $C155, $C15B:

C160: 20 B3 C2  JSR $C2B3       ; determine line length and erase flags
C163: B1 A3     LDA ($A3),Y     ; get first character
C165: 8D 75 02  STA $0275       ; and store
C168: A2 0B     LDX #$0B        ; 11

Jump from $C173:

C16A: BD 89 FE  LDA $FE89,X     ; commands
C16D: CD 75 02  CMP $0275       ; compare to first character
C170: F0 08     BEQ $C17A       ; found?
C172: CA        DEX
C173: 10 F5     BPL $C16A
C175: A9 31     LDA #$31        ; not found
C177: 4C C8 C1  JMP $C1C8       ; 31, 'syntax error'

Jump from $C170:

C17A: 8E 2A 02  STX $022A       ; number of command words
C17D: E0 09     CPX #$09
C17F: 90 03     BCC $C184       ; command number < 9?
C181: 20 EE C1  JSR $C1EE       ; test for 'R', 'S', and 'N'

Jump from $C17F:

C184: AE 2A 02  LDX $022A       ; command number
C187: BD 95 FE  LDA $FE95,X     ; jump address lo
C18A: 85 6F     STA $6F
C18C: BD A1 FE  LDA $FEA1,X     ; jump address hi
C18F: 85 70     STA $70
C191: 6C 6F 00  JMP ($006F)     ; jump to command

    Previous Page / Next Page