Eingabezeile pruefen bei Copy, Rename, New ($c1ee)

Befehlszeile bis zum ':' auswerten

Einsprung von $8039:

80A2: 20 99 80  JSR $8099        ':' in der Kommandozeile suchen
80A5: D0 05     BNE $80AC        gefunden, ==>

Einsprung von $80B2:

80A7: A9 34     LDA #$34         34, Syntax Error
80A9: 4C 7C 80  JMP $807C        (':' fehlt)

Einsprung von $80A5, $877F:

80AC: 88        DEY
80AD: 88        DEY              Zeiger auf Drivenummer merken
80AE: 8C 91 02  STY $0291        (falls vorhanden)
80B1: 8A        TXA              Anzahl der gefundenen Kommas >0 ?
80B2: D0 F3     BNE $80A7        ja, Fehler: ',' vor ':' ==>
Befehlszeile zwischen ':' und '=' auswerten

Einsprung von $9936:

80B4: A9 3D     LDA #$3D
80B6: 20 1C 81  JSR $811C        '=' suchen
80B9: 8A        TXA
80BA: F0 02     BEQ $80BE        ist ein ',' vor dem '=' ?
80BC: A9 40     LDA #$40         ja, ', vor =' -Flag setzen

Einsprung von $80BA:

80BE: 09 21     ORA #$21         b0-1 = 01: 'Kein =' -Flag setzen
80C0: 8D A2 02  STA $02A2        Bitmaske merken
80C3: E8        INX              Anzahl der gefundenen Kommas
80C4: 8E 2E 02  STX $022E        +1 = Anzahl der Parameter
80C7: 8E 2F 02  STX $022F        (z.B. 'xxx,p,r')
80CA: AD A1 02  LDA $02A1        Ist ein Joker vorhanden ?
80CD: F0 0D     BEQ $80DC        nein, ==>
80CF: A9 80     LDA #$80         'Joker vor =' -Flag setzen
80D1: 0D A2 02  ORA $02A2        In Bitmaske eintragen
80D4: 8D A2 02  STA $02A2
80D7: A9 00     LDA #$00         Jokerflag loeschen
80D9: 8D A1 02  STA $02A1

Einsprung von $80CD:

80DC: 98        TYA              Wurde ein '=' gefunden ?
80DD: F0 29     BEQ $8108        Nein, ==>
80DF: 9D 91 02  STA $0291,X      Position des '=' merken
80E2: AD 2E 02  LDA $022E        Anzahl Parameter vor dem '=' merken
80E5: 8D 30 02  STA $0230

Befehlszeile vom '=' bis zum Zeilenende auswerten

80E8: A9 8D     LDA #$8D         $8d = <Shift Return>
80EA: 20 1C 81  JSR $811C        vom '=' bis zum Zeilenende untersuchen
80ED: E8        INX              Anzahl der Parameter merken
80EE: 8E 2F 02  STX $022F
80F1: CA        DEX              = Anzahl ','
80F2: AD A1 02  LDA $02A1        Joker vorhanden ?
80F5: F0 02     BEQ $80F9        Nein, ==>
80F7: A9 08     LDA #$08         'Joker hinter ='-Flag setzen

Einsprung von $80F5:

80F9: EC 2E 02  CPX $022E        Anzahl Kommas = Anzahl Kommas vor '=' ?
80FC: F0 02     BEQ $8100        ja, (keine Kommas gefunden) ==>
80FE: 09 04     ORA #$04         ', hinter =' -Flag setzen

Einsprung von $80FC:

8100: 09 03     ORA #$03         b0-1 = 10: '=' -Flag setzen
8102: 4D A2 02  EOR $02A2        Evtl. b7-8 setzen
8105: 8D A2 02  STA $02A2        b0-1 kippen

Einsprung von $80DD:

8108: AD A2 02  LDA $02A2        Bitmaske mit Kontrollmaske
810B: AE 2A 02  LDX $022A        (aktuelle Befehlsnummer)
810E: 3D 94 DB  AND $DB94,X      bei $db9c verknuepfen
8111: D0 01     BNE $8114        muss 0 werden, sonst Fehler ==>
8113: 60        RTS              Format OK.

Einsprung von $8111:

8114: 8D AB 02  STA $02AB        Fehlerflag setzen
8117: A9 30     LDA #$30         30, Syntax Error
8119: 4C 7C 80  JMP $807C
    Previous Page / Next Page