     $CC6F/52335:   Get parameters form block commands

    Jump from $CC48, $CD5F, $CD97:

    CC6F: A0 00     LDY #$00
    CC71: A2 00     LDX #$00
    CC73: A9 3A     LDA #$3A        ; ':'
    CC75: 20 68 C2  JSR $C268       ; test line to colon
    CC78: D0 02     BNE $CC7C       ; found?
    CC7A: A0 03     LDY #$03        ; no, begin at 4th character

    Jump from $CC78, $CC8F, $CBA7:

    CC7C: B9 00 02  LDA $0200,Y     ; search for separating char
    CC7F: C9 20     CMP #$20        ; ' ' blank
    CC81: F0 08     BEQ $CC8B
    CC83: C9 1D     CMP #$1D        ; cursor right
    CC85: F0 04     BEQ $CC8B
    CC87: C9 2C     CMP #$2C        ; ',' comma
    CC89: D0 07     BNE $CC92

    Jump from $CC81, $CC85, $CC9D:

    CC8B: C8        INY
    CC8C: CC 74 02  CPY $0274       ; line end?
    CC8F: 90 EB     BCC $CC7C
    CC91: 60        RTS

    Jump from $CC89:

    CC92: 20 A1 CC  JSR $CCA1       ; preserve next parameter
    CC95: EE 77 02  INC $0277       ; increment parameter counter
    CC98: AC 79 02  LDY $0279
    CC9B: E0 04     CPX #$04        ; compare with maximum number
    CC9D: 90 EC     BCC $CC8B
    CC9F: B0 8A     BCS $CC2B       ; 30, 'syntax error'

    Jump from $CC92:

    CCA1: A9 00     LDA #$00
    CCA3: 85 6F     STA $6F
    CCA5: 85 70     STA $70         ; erase storage area for decimal numbers
    CCA7: 85 72     STA $72
    CCA9: A2 FF     LDX #$FF

    Jump from $CCC8:

    CCAB: B9 00 02  LDA $0200,Y     ; get characters from input buffer
    CCAE: C9 40     CMP #$40
    CCB0: B0 18     BCS $CCCA       ; no digits?
    CCB2: C9 30     CMP #$30        ; '0'
    CCB4: 90 14     BCC $CCCA       ; no digits?
    CCB6: 29 0F     AND #$0F        ; convert ASCII digits to hex
    CCB8: 48        PHA             ; and save
    CCB9: A5 70     LDA $70
    CCBB: 85 71     STA $71         ; move digits one further
    CCBD: A5 6F     LDA $6F
    CCBF: 85 70     STA $70
    CCC1: 68        PLA
    CCC2: 85 6F     STA $6F         ; note read number
    CCC4: C8        INY             ; increment pointer in input buffer
    CCC5: CC 74 02  CPY $0274       ; line end reached
    CCC8: 90 E1     BCC $CCAB       ; no

    Jump from $CCB0, $CCB4:

    CCCA: 8C 79 02  STY $0279       ; save pointer
    CCCD: 18        CLC
    CCCE: A9 00     LDA #$00

    Jump from $CCD8:

    CCD0: E8        INX
    CCD1: E0 03     CPX #$03
    CCD3: B0 0F     BCS $CCE4       ; convert hex digits to one byte
    CCD5: B4 6F     LDY $6F,X

    Jump from $CCDD, $CCE2:

    CCD7: 88        DEY
    CCD8: 30 F6     BMI $CCD0
    CCDA: 7D F2 CC  ADC $CCF2,X     ; add decimal value
    CCDD: 90 F8     BCC $CCD7
    CCDF: 18        CLC
    CCE0: E6 72     INC $72
    CCE2: D0 F3     BNE $CCD7

    Jump from $CCD3:

    CCE4: 48        PHA
    CCE5: AE 77 02  LDX $0277       ; counter for paramaters
    CCE8: A5 72     LDA $72
    CCEA: 9D 80 02  STA $0280,X     ; hi-byte
    CCED: 68        PLA
    CCEE: 9D 85 02  STA $0285,X     ; lo-byte
    CCF1: 60        RTS

        Previous Page / Next Page