Position-Befehl ($e207)

A1A1: 20 65 81  JSR $8165        Kommandotabellen initialisieren
A1A4: AD 01 02  LDA $0201        SA aus Kommandozeile holen
A1A7: 85 52     STA $52
A1A9: 20 27 90  JSR $9027        Entsprechenden Kanal holen
A1AC: 90 05     BCC $A1B3        Kanal O.k. ? ja, ==>
A1AE: A9 70     LDA #$70         70, No Channel
A1B0: 20 7C 80  JSR $807C

Einsprung von $A1AC:

A1B3: A9 A0     LDA #$A0         Record voll (b5) / nicht vorhanden (b7)
A1B5: 20 DB 9C  JSR $9CDB        Bits im Dateistatus loeschen
A1B8: 20 5F 90  JSR $905F        Filetyp holen
A1BB: F0 05     BEQ $A1C2        REL-Datei ? ja, ==>
A1BD: A9 64     LDA #$64         64 File type mismatch
A1BF: 20 7C 80  JSR $807C        ==>

Einsprung von $A1BB:

A1C2: AD 02 02  LDA $0202        Recordnummer aus der Befehlszeile holen
A1C5: 9D 49 02  STA $0249,X      und merken (Lo)
A1C8: AD 03 02  LDA $0203        (Hi)
A1CB: 9D 50 02  STA $0250,X
A1CE: A6 50     LDX $50
A1D0: A9 89     LDA #$89         b3=1: EOI-Flag loeschen
A1D2: 9D 34 02  STA $0234,X      Kanalstatus setzen
A1D5: AD 04 02  LDA $0204        Ist die Startposition im Record angegeben ?
A1D8: F0 11     BEQ $A1EB        nein, ==>
A1DA: 38        SEC
A1DB: E9 01     SBC #$01         Startposition = 1 (Anfang) ?
A1DD: F0 0C     BEQ $A1EB        ja, ==>
A1DF: DD 5E 02  CMP $025E,X      mit Recordlaenge vergleichen
A1E2: 90 07     BCC $A1EB        Zeigt Zeiger hinter Recordende ?
A1E4: A9 51     LDA #$51         ja, 51, Overflow in Record
A1E6: 8D AB 02  STA $02AB        bereitstellen und einfach
A1E9: A9 00     LDA #$00         von Record-Anfang an ausgeben

Einsprung von $A1D8, $A1DD, $A1E2:

A1EB: 85 68     STA $68          Positionszeiger setzen
A1ED: 20 89 8C  JSR $8C89        Position des Records berechnen
A1F0: 20 32 9E  JSR $9E32        Side-Sektor ggf. laden
A1F3: 50 08     BVC $A1FD        existiert der Side-Sektor ? ja, ==>
A1F5: A9 80     LDA #$80         b7=1: 'Record existiert nicht'
A1F7: 20 D5 9C  JSR $9CD5        Status setzen
A1FA: 4C EC A0  JMP $A0EC        50, Record not present

Einsprung von $A1F3:

A1FD: 20 0D A2  JSR $A20D        Datenblock einlesen
A200: A9 80     LDA #$80         b7: existiert der Record ?
A202: 20 E4 9C  JSR $9CE4        (Dateistatus testen)
A205: F0 03     BEQ $A20A        ja, ==>
A207: 4C EC A0  JMP $A0EC        50, Record not present

Einsprung von $A205:

A20A: 4C 4C 80  JMP $804C        00, Ok,00,00

    Previous Page / Next Page