    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