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