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 |