    Partition-Befehl

    B781: 20 AE 84  JSR $84AE        testet auf Diskettenwechsel
    B784: A5 29     LDA $29          Laenge der Befehlszeile
    B786: C9 02     CMP #$02         < 2 ('/') ?
    B788: 90 6D     BCC $B7F7        ja, ==>
    B78A: A9 01     LDA #$01         Position der moeglichen Drivenummer setzen
    B78C: 8D 91 02  STA $0291
    B78F: 20 FD 81  JSR $81FD        Drivenummer holen
    B792: 20 B9 82  JSR $82B9        Datei im Directory suchen
    B795: AD 97 02  LDA $0297        gefunden ?
    B798: F0 13     BEQ $B7AD        nein ==>

    B79A: 20 51 B8  JSR $B851        Partition-Namen holen
    B79D: 90 20     BCC $B7BF        Partition erstellen ? nein, ==>
    B79F: A9 63     LDA #$63         63, File exists
    B7A1: 2C         B $2C

    Einsprung von $B7B0, $B7C5:

    B7A2: A9 62     LDA #$62         62, File not found
    B7A4: 2C         B $2C

    Einsprung von $B7BA:

    B7A5: A9 30     LDA #$30         30, Syntax error
    B7A7: 2C         B $2C

    Einsprung von $B7D2, $B7D8, $B7E2, $B7E4:

    B7A8: A9 77     LDA #$77         77, Selected Partition illegal
    B7AA: 20 7C 80  JSR $807C        Fehlermeldung (T&S=0) ausgeben

    Testen, ob die nicht vorhandene Partition erstellt werden soll

    Einsprung von $B798:

    B7AD: 20 51 B8  JSR $B851        Partition-Namen holen
    B7B0: 90 F0     BCC $B7A2        Partition erstellen ? nein, ==>
    B7B2: AE 90 02  LDX $0290        Ende des Partition-Namens ('/xxx,abcdC')
    B7B5: BD 06 02  LDA $0206,X      +6: ist Befehl zum Erstellen der Partition
    B7B8: C9 43     CMP #$43         (Create) vorhanden ?
    B7BA: D0 E9     BNE $B7A5        nein, ==>
    B7BC: 4C 8D B8  JMP $B88D        Parameter holen, Partition erstellen

    Partition anwaehlen

    Einsprung von $B79D:

    B7BF: A5 F4     LDA $F4          Dateityp feststellen
    B7C1: 29 07     AND #$07
    B7C3: C9 05     CMP #$05         CBM-Datei ?
    B7C5: D0 DB     BNE $B7A2        nein, ==>
    B7C7: 20 23 B3  JSR $B323        Partition-Parameter holen

    Einsprung von $B7D0:

    B7CA: 20 B5 94  JSR $94B5        Auf gueltigen Block testen
    B7CD: 20 EF B2  JSR $B2EF        Naechten Block der Partition holen
    B7D0: D0 F8     BNE $B7CA        gehoert Block noch zur Partition, ==>
    B7D2: 90 D4     BCC $B7A8        Trackwechsel erfolgt ? nein, ==>
    B7D4: A0 02     LDY #$02         Startsektor holen
    B7D6: B1 64     LDA ($64),Y
    B7D8: D0 CE     BNE $B7A8        <>0, (P. muss am Trackanfang beginnen) ==>
    B7DA: 88        DEY
    B7DB: A5 4D     LDA $4D          aktuelle Tracknummer (1. Track nach der P.)
    B7DD: AA        TAX
    B7DE: F1 64     SBC ($64),Y      - Starttrack (= Anzahl Tracks der P.))
    B7E0: C9 02     CMP #$02         muss > 2 sein (entspricht >=120 Blocks)
    B7E2: F0 C4     BEQ $B7A8        Partition zu klein, ==>
    B7E4: 90 C2     BCC $B7A8        ja, ==>
    B7E6: B1 64     LDA ($64),Y      Starttrack
    B7E8: 8D 2B 02  STA $022B        = Track des Directorys
    B7EB: 85 90     STA $90          = Start der Partition
    B7ED: 8E 2C 02  STX $022C        Ende der Partition +1 merken
    B7F0: CA        DEX              -1 = Ende der Partition
    B7F1: CA        DEX              -1 = physikalische Spurnummer
    B7F2: 86 8F     STX $8F          letzte physikalische Spurnummer merken
    B7F4: 4C FA B7  JMP $B7FA        P. initialisieren, Meldung ausgeben

    Wurzelverzeichnis anwaehlen

    Einsprung von $B788:

    B7F7: 20 B3 B0  JSR $B0B3        ganze Diskette als Partition

    Einsprung von $B7F4:

    B7FA: 20 62 92  JSR $9262        Kanaele der SA 1-14 freigeben
    B7FD: 20 03 8F  JSR $8F03        Partition initialisieren
    B800: A5 90     LDA $90          Partitionanfang
    B802: 85 4D     STA $4D          = Track (fuer Meldung)
    B804: AC 2C 02  LDY $022C        Partitionende+1
    B807: 88        DEY              - 1
    B808: 84 4E     STY $4E          = 'Sektor'
    B80A: A9 02     LDA #$02         02, Selected Partition, $4d, $4e
    B80C: A0 00     LDY #$00         Zeiger in INPUT-Puffer = 0
    B80E: 4C 5F 80  JMP $805F        Meldung ausgeben

        Previous Page / Next Page