Herwig Siebenhofer
 / Home / C64
 
C 64

    Memory Map
    Float Map
    ROM Map
    Basic ROM
    Kernal ROM
    Char ROM
    CPU 6510
    VIC 6569
    SID 6581
    CIA 6526
    PLA
    Keyboard
    Control-Ports
    sonstige Ports

    Bauteile
    Schematik 1
    Schematik 2
    Bus-Schematik
    HF-Modulator
    Datasette
    Reset

C 1541  Floppy

    Blockschaltbild
    Memory Map
    Rom Listing
    Schematik
    VIA 6522
    Service

C 1581  Floppy

    Memory Map
    Rom Listing
    Schematik
    CIA 8520
    WD 1772

Archiv

    Mouse 1531
    Float-Formate
    Screenshots
    Korrekturen
    Chip 74xx
 

C 1581   ROM-Routinen
; Checksumme

8000   .BY $4D,$19,$CD,$01

; Befehlsstring vom Computer auswerten

8004   A9 00      LDA #$00
8006   85 35      STA $35
8008   20 62 A8   JSR $A862
800B   A5 53      LDA $53
800D   10 09      BPL $8018
800F   29 0F      AND #$0F
8011   C9 0F      CMP #$0F
8013   F0 03      BEQ $8018
8015   4C 78 96   JMP $9678
8018   20 65 81   JSR $8165
801B   B1 CD      LDA ($CD),Y
801D   8D 8F 02   STA $028F
8020   A2 0B      LDX #$0B
8022   BD 78 DB   LDA $DB78,X
8025   CD 8F 02   CMP $028F
8028   F0 08      BEQ $8032
802A   CA         DEX
802B   10 F5      BPL $8022
802D   A9 31      LDA #$31
802F   4C 7C 80   JMP $807C
8032   8E 2A 02   STX $022A
8035   E0 09      CPX #$09
8037   90 03      BCC $803C
8039   20 A2 80   JSR $80A2
803C   AE 2A 02   LDX $022A
803F   BD 84 DB   LDA $DB84,X
8042   85 40      STA $40
8044   BD 90 DB   LDA $DB90,X
8047   85 41      STA $41
8049   6C 40 00   JMP ($0040)

; Abschluss eines Befehls

804C   A9 00      LDA #$00
804E   85 35      STA $35
8050   AD AB 02   LDA $02AB
8053   F0 03      BEQ $8058
8055   4C 7C 80   JMP $807C
8058   A0 00      LDY #$00
805A   98         TYA
805B   85 4D      STA $4D
805D   84 4E      STY $4E
805F   84 CD      STY $CD
8061   20 6D A8   JSR $A86D
8064   20 E5 81   JSR $81E5
8067   A9 00      LDA #$00
8069   85 6E      STA $6E
806B   20 71 80   JSR $8071
806E   4C 34 94   JMP $9434

; INPUT-Puffer löschen

8071   A0 28      LDY #$28
8073   A9 00      LDA #$00
8075   99 00 02   STA $0200,Y
8078   88         DEY
8079   10 FA      BPL $8075
807B   60         RTS

; Fehler ausgeben

807C   A0 00      LDY #$00
807E   84 4D      STY $4D
8080   84 4E      STY $4E
8082   4C 3F FF   JMP $FF3F

; Sucht Drivenummer in der Befehlszeile

8085   A2 00      LDX #$00
8087   8E 91 02   STX $0291
808A   A9 3A      LDA #$3A
808C   20 1C 81   JSR $811C
808F   F0 05      BEQ $8096
8091   88         DEY
8092   88         DEY
8093   8C 91 02   STY $0291
8096   4C 51 82   JMP $8251

; Eingabezeile bis zum ':' auswerten

8099   A0 00      LDY #$00
809B   A2 00      LDX #$00
809D   A9 3A      LDA #$3A
809F   4C 1C 81   JMP $811C

; Eingabezeile prüfen bei Copy, Rename, New

80A2   20 99 80   JSR $8099
80A5   D0 05      BNE $80AC
80A7   A9 34      LDA #$34
80A9   4C 7C 80   JMP $807C
80AC   88         DEY
80AD   88         DEY
80AE   8C 91 02   STY $0291
80B1   8A         TXA
80B2   D0 F3      BNE $80A7
80B4   A9 3D      LDA #$3D
80B6   20 1C 81   JSR $811C
80B9   8A         TXA
80BA   F0 02      BEQ $80BE
80BC   A9 40      LDA #$40
80BE   09 21      ORA #$21
80C0   8D A2 02   STA $02A2
80C3   E8         INX
80C4   8E 2E 02   STX $022E
80C7   8E 2F 02   STX $022F
80CA   AD A1 02   LDA $02A1
80CD   F0 0D      BEQ $80DC
80CF   A9 80      LDA #$80
80D1   0D A2 02   ORA $02A2
80D4   8D A2 02   STA $02A2
80D7   A9 00      LDA #$00
80D9   8D A1 02   STA $02A1
80DC   98         TYA
80DD   F0 29      BEQ $8108
80DF   9D 91 02   STA $0291,X
80E2   AD 2E 02   LDA $022E
80E5   8D 30 02   STA $0230
80E8   A9 8D      LDA #$8D
80EA   20 1C 81   JSR $811C
80ED   E8         INX
80EE   8E 2F 02   STX $022F
80F1   CA         DEX
80F2   AD A1 02   LDA $02A1
80F5   F0 02      BEQ $80F9
80F7   A9 08      LDA #$08
80F9   EC 2E 02   CPX $022E
80FC   F0 02      BEQ $8100
80FE   09 04      ORA #$04
8100   09 03      ORA #$03
8102   4D A2 02   EOR $02A2
8105   8D A2 02   STA $02A2
8108   AD A2 02   LDA $02A2
810B   AE 2A 02   LDX $022A
810E   3D 94 DB   AND $DB94,X
8111   D0 01      BNE $8114
8113   60         RTS
8114   8D AB 02   STA $02AB
8117   A9 30      LDA #$30
8119   4C 7C 80   JMP $807C

; Eingabezeile bis zu einem bestimmten Zeichen auswerten

811C   8D 8F 02   STA $028F
811F   C4 29      CPY $29
8121   B0 2E      BCS $8151
8123   B1 CD      LDA ($CD),Y
8125   C8         INY
8126   CD 8F 02   CMP $028F
8129   F0 28      BEQ $8153
812B   C9 2A      CMP #$2A
812D   F0 04      BEQ $8133
812F   C9 3F      CMP #$3F
8131   D0 03      BNE $8136
8133   EE A1 02   INC $02A1
8136   C9 2C      CMP #$2C
8138   D0 E5      BNE $811F
813A   98         TYA
813B   9D 92 02   STA $0292,X
813E   AD A1 02   LDA $02A1
8141   29 7F      AND #$7F
8143   F0 07      BEQ $814C
8145   A9 80      LDA #$80
8147   95 F4      STA $F4,X
8149   8D A1 02   STA $02A1
814C   E8         INX
814D   E0 04      CPX #$04
814F   90 CE      BCC $811F
8151   A0 00      LDY #$00
8153   A5 29      LDA $29
8155   9D 92 02   STA $0292,X
8158   AD A1 02   LDA $02A1
815B   29 7F      AND #$7F
815D   F0 04      BEQ $8163
815F   A9 80      LDA #$80
8161   95 F4      STA $F4,X
8163   98         TYA
8164   60         RTS

; Kommandozeilenende feststellen

8165   A4 CD      LDY $CD
8167   F0 36      BEQ $819F
8169   88         DEY
816A   F0 32      BEQ $819E
816C   AD 00 02   LDA $0200
816F   C9 55      CMP #$55
8171   D0 07      BNE $817A
8173   AD 01 02   LDA $0201
8176   C9 30      CMP #$30
8178   F0 04      BEQ $817E
817A   B9 00 02   LDA $0200,Y
817D   2C         .BY $2C
817E   A9 00      LDA #$00
8180   C9 0D      CMP #$0D
8182   F0 1B      BEQ $819F
8184   88         DEY
8185   AD 00 02   LDA $0200
8188   C9 55      CMP #$55
818A   D0 07      BNE $8193
818C   AD 01 02   LDA $0201
818F   C9 30      CMP #$30
8191   F0 04      BEQ $8197
8193   B9 00 02   LDA $0200,Y
8196   2C         .BY $2C
8197   A9 00      LDA #$00
8199   C9 0D      CMP #$0D
819B   F0 02      BEQ $819F
819D   C8         INY
819E   C8         INY
819F   84 29      STY $29
81A1   C0 2A      CPY #$2A
81A3   A0 FF      LDY #$FF
81A5   90 08      BCC $81AF
81A7   8C 2A 02   STY $022A
81AA   A9 32      LDA #$32
81AC   4C 7C 80   JMP $807C
81AF   A0 00      LDY #$00
81B1   98         TYA
81B2   85 CD      STA $CD
81B4   8D 6F 02   STA $026F
81B7   8D 2D 02   STA $022D
81BA   8D 33 02   STA $0233
81BD   85 67      STA $67
81BF   8D 30 02   STA $0230
81C2   8D 2E 02   STA $022E
81C5   8D 2F 02   STA $022F
81C8   8D A1 02   STA $02A1
81CB   8D AB 02   STA $02AB
81CE   A2 05      LDX #$05
81D0   9D 90 02   STA $0290,X
81D3   95 E4      STA $E4,X
81D5   95 E9      STA $E9,X
81D7   95 EE      STA $EE,X
81D9   95 F3      STA $F3,X
81DB   9D 96 02   STA $0296,X
81DE   9D 9B 02   STA $029B,X
81E1   CA         DEX
81E2   D0 EC      BNE $81D0
81E4   60         RTS

; LED-Routinen

81E5   A9 00      LDA #$00
81E7   8D AB 02   STA $02AB
81EA   A5 79      LDA $79
81EC   29 DF      AND #$DF
81EE   85 79      STA $79
81F0   60         RTS
81F1   A9 50      LDA #$50
81F3   8D AB 02   STA $02AB
81F6   A5 79      LDA $79
81F8   09 40      ORA #$40
81FA   85 79      STA $79
81FC   60         RTS

; Laufwerksnummer holen und setzen

81FD   AD 2F 02   LDA $022F
8200   8D 2E 02   STA $022E
8203   A9 01      LDA #$01
8205   8D 2F 02   STA $022F
8208   8D 30 02   STA $0230

; Alle Parameter auf Laufwerksnummer prüfen und entfernen

820B   A2 00      LDX #$00
820D   86 67      STX $67
820F   BD 91 02   LDA $0291,X
8212   20 24 82   JSR $8224
8215   A6 67      LDX $67
8217   9D 91 02   STA $0291,X
821A   98         TYA
821B   95 EF      STA $EF,X
821D   E8         INX
821E   EC 2F 02   CPX $022F
8221   90 EA      BCC $820D
8223   60         RTS

; Laufwerksnummer testen und entfernen

8224   AA         TAX
8225   A0 00      LDY #$00
8227   A9 3A      LDA #$3A
8229   DD 01 02   CMP $0201,X
822C   F0 0C      BEQ $823A
822E   DD 00 02   CMP $0200,X
8231   D0 17      BNE $824A
8233   E8         INX
8234   98         TYA
8235   29 01      AND #$01
8237   A8         TAY
8238   8A         TXA
8239   60         RTS
823A   BD 00 02   LDA $0200,X
823D   E8         INX
823E   E8         INX
823F   C9 30      CMP #$30
8241   F0 F2      BEQ $8235
8243   C9 31      CMP #$31
8245   D0 ED      BNE $8234
8247   4C 2D 80   JMP $802D
824A   98         TYA
824B   09 80      ORA #$80
824D   29 81      AND #$81
824F   D0 E6      BNE $8237

; Drivenummer setzen, LED einschalten

8251   A9 00      LDA #$00
8253   8D A2 02   STA $02A2
8256   AC 91 02   LDY $0291
8259   B1 CD      LDA ($CD),Y
825B   20 95 82   JSR $8295
825E   10 0D      BPL $826D
8260   C8         INY
8261   C4 29      CPY $29
8263   B0 05      BCS $826A
8265   A4 29      LDY $29
8267   88         DEY
8268   D0 EF      BNE $8259
826A   CE A2 02   DEC $02A2
826D   4C F6 81   JMP $81F6

; Dateityp feststellen (S,P,U,R,C)

8270   A0 00      LDY #$00
8272   AD 2E 02   LDA $022E
8275   CD 2F 02   CMP $022F
8278   F0 16      BEQ $8290
827A   CE 2F 02   DEC $022F
827D   AC 2F 02   LDY $022F
8280   B9 91 02   LDA $0291,Y
8283   A8         TAY
8284   B1 CD      LDA ($CD),Y
8286   A0 05      LDY #$05 
8288   D9 AB DB   CMP $DBAB,Y
828B   F0 03      BEQ $8290
828D   88         DEY
828E   D0 F8      BNE $8288
8290   98         TYA
8291   8D 33 02   STA $0233
8294   60         RTS

; Laufwerksnummer prüfen

8295   C9 30      CMP #$30
8297   F0 06      BEQ $829F
8299   C9 31      CMP #$31
829B   F0 02      BEQ $829F
829D   09 80      ORA #$80
829F   29 81      AND #$81
82A1   60         RTS

; Laufwerk initialisieren, LED einschalten

82A2   A9 00      LDA #$00
82A4   85 40      STA $40
82A6   8D A4 02   STA $02A4
82A9   8D A3 02   STA $02A3
82AC   20 AE 84   JSR $84AE
82AF   F0 05      BEQ $82B6
82B1   A9 74      LDA #$74
82B3   20 7C 80   JSR $807C
82B6   4C F6 81   JMP $81F6

; alle angegebenen Dateien im Verzeichnis suchen

82B9   20 A2 82   JSR $82A2
82BC   A9 00      LDA #$00
82BE   85 73      STA $73
82C0   20 24 84   JSR $8424
82C3   D0 0B      BNE $82D0
82C5   CE A3 02   DEC $02A3
82C8   10 F2      BPL $82BC
82CA   60         RTS
82CB   20 89 84   JSR $8489
82CE   F0 10      BEQ $82E0
82D0   20 27 83   JSR $8327
82D3   AD A5 02   LDA $02A5
82D6   F0 01      BEQ $82D9
82D8   60         RTS
82D9   AD 6D 02   LDA $026D
82DC   30 ED      BMI $82CB
82DE   10 F0      BPL $82D0
82E0   AD A5 02   LDA $02A5
82E3   F0 E0      BEQ $82C5
82E5   60         RTS

; Dateien einzeln suchen

82E6   20 77 84   JSR $8477
82E9   F0 0E      BEQ $82F9
82EB   D0 1C      BNE $8309
82ED   A9 00      LDA #$00
82EF   85 73      STA $73
82F1   20 24 84   JSR $8424
82F4   D0 13      BNE $8309
82F6   8D A5 02   STA $02A5
82F9   AD A5 02   LDA $02A5
82FC   D0 28      BNE $8326
82FE   CE A3 02   DEC $02A3
8301   10 EA      BPL $82ED
8303   60         RTS
8304   20 89 84   JSR $8489
8307   F0 F0      BEQ $82F9
8309   20 27 83   JSR $8327
830C   AE 6D 02   LDX $026D
830F   10 07      BPL $8318
8311   AD A5 02   LDA $02A5
8314   F0 EE      BEQ $8304
8316   D0 0E      BNE $8326
8318   AD 33 02   LDA $0233
831B   F0 09      BEQ $8326
831D   B5 F4      LDA $F4,X
831F   29 07      AND #$07
8321   CD 33 02   CMP $0233
8324   D0 DE      BNE $8304
8326   60         RTS

; Eintrag im Verzeichnis mit gesuchten Einträgen vergleichen

8327   A2 FF      LDX #$FF
8329   8E 6D 02   STX $026D
832C   E8         INX
832D   8E A1 02   STX $02A1
8330   20 D7 83   JSR $83D7
8333   F0 06      BEQ $833B
8335   60         RTS
8336   20 E2 83   JSR $83E2
8339   D0 FA      BNE $8335
833B   A9 00      LDA #$00
833D   55 EF      EOR $EF,X
833F   4A         LSR
8340   90 0B      BCC $834D
8342   29 40      AND #$40
8344   F0 F0      BEQ $8336
8346   A9 02      LDA #$02
8348   CD A3 02   CMP $02A3
834B   F0 E9      BEQ $8336
834D   BD 91 02   LDA $0291,X
8350   AA         TAX
8351   20 26 85   JSR $8526
8354   A0 03      LDY #$03
8356   4C 6C 83   JMP $836C
8359   BD 00 02   LDA $0200,X
835C   D1 64      CMP ($64),Y
835E   F0 0A      BEQ $836A
8360   C9 3F      CMP #$3F
8362   D0 D2      BNE $8336
8364   B1 64      LDA ($64),Y
8366   C9 A0      CMP #$A0
8368   F0 CC      BEQ $8336
836A   E8         INX
836B   C8         INY
836C   EC 90 02   CPX $0290
836F   B0 0A      BCS $837B
8371   BD 00 02   LDA $0200,X
8374   C9 2A      CMP #$2A
8376   D0 E1      BNE $8359
8378   4C FA 83   JMP $83FA
837B   C0 13      CPY #$13
837D   B0 06      BCS $8385
837F   B1 64      LDA ($64),Y
8381   C9 A0      CMP #$A0
8383   D0 B1      BNE $8336
8385   AE 30 02   LDX $0230
8388   8E 6D 02   STX $026D
838B   B5 F4      LDA $F4,X
838D   29 80      AND #$80
838F   8D A1 02   STA $02A1
8392   AD 32 02   LDA $0232
8395   95 EA      STA $EA,X
8397   A5 4E      LDA $4E
8399   95 E5      STA $E5,X
839B   A0 00      LDY #$00
839D   B1 64      LDA ($64),Y
839F   C8         INY
83A0   48         PHA
83A1   29 40      AND #$40
83A3   85 40      STA $40
83A5   68         PLA
83A6   29 DF      AND #$DF
83A8   30 02      BMI $83AC
83AA   09 20      ORA #$20
83AC   29 27      AND #$27
83AE   05 40      ORA $40
83B0   85 40      STA $40
83B2   A9 80      LDA #$80
83B4   35 F4      AND $F4,X
83B6   05 40      ORA $40
83B8   95 F4      STA $F4,X
83BA   B5 EF      LDA $EF,X
83BC   29 80      AND #$80
83BE   95 EF      STA $EF,X
83C0   B1 64      LDA ($64),Y
83C2   9D 97 02   STA $0297,X
83C5   C8         INY
83C6   B1 64      LDA ($64),Y
83C8   9D 9C 02   STA $029C,X
83CB   AD 6F 02   LDA $026F
83CE   D0 07      BNE $83D7
83D0   A0 15      LDY #$15
83D2   B1 64      LDA ($64),Y
83D4   8D 6F 02   STA $026F

; Prüft, ob alle Dateien gefunden worden sind

83D7   A9 FF      LDA #$FF
83D9   8D A5 02   STA $02A5
83DC   AD 2F 02   LDA $022F
83DF   8D 30 02   STA $0230
83E2   CE 30 02   DEC $0230
83E5   10 01      BPL $83E8
83E7   60         RTS
83E8   AE 30 02   LDX $0230
83EB   B5 F4      LDA $F4,X
83ED   30 05      BMI $83F4
83EF   BD 97 02   LDA $0297,X
83F2   D0 EE      BNE $83E2
83F4   A9 00      LDA #$00
83F6   8D A5 02   STA $02A5
83F9   60         RTS

; Zeichen hinter '*' vergleichen

83FA   86 3B      STX $3B
83FC   AE 90 02   LDX $0290
83FF   CA         DEX
8400   E4 3B      CPX $3B
8402   F0 1A      BEQ $841E
8404   A0 13      LDY #$13
8406   88         DEY
8407   B1 64      LDA ($64),Y
8409   C9 A0      CMP #$A0
840B   F0 F9      BEQ $8406
840D   BD 00 02   LDA $0200,X
8410   D1 64      CMP ($64),Y
8412   F0 04      BEQ $8418
8414   C9 3F      CMP #$3F
8416   D0 09      BNE $8421
8418   88         DEY
8419   CA         DEX
841A   E4 3B      CPX $3B
841C   D0 EF      BNE $840D
841E   4C 85 83   JMP $8385
8421   4C 36 83   JMP $8336

; nächsten Eintrag im Verzeichnis suchen

8424   A0 00      LDY #$00
8426   84 72      STY $72
8428   88         DEY
8429   8C 6D 02   STY $026D
842C   AD 2B 02   LDA $022B
842F   85 4D      STA $4D
8431   AD E5 01   LDA $01E5
8434   85 4E      STA $4E
8436   8D A6 02   STA $02A6
8439   20 CF 93   JSR $93CF
843C   AD A6 02   LDA $02A6
843F   D0 01      BNE $8442
8441   60         RTS
8442   A9 07      LDA #$07
8444   8D 31 02   STA $0231
8447   A9 00      LDA #$00
8449   20 50 94   JSR $9450
844C   8D A6 02   STA $02A6
844F   20 42 94   JSR $9442
8452   CE 31 02   DEC $0231
8455   A0 00      LDY #$00
8457   B1 64      LDA ($64),Y
8459   D0 14      BNE $846F
845B   A5 72      LDA $72
845D   D0 2A      BNE $8489
845F   20 79 9D   JSR $9D79
8462   A5 4E      LDA $4E
8464   85 72      STA $72
8466   A5 64      LDA $64
8468   A6 73      LDX $73
846A   85 73      STA $73
846C   F0 1B      BEQ $8489
846E   60         RTS
846F   A2 01      LDX #$01
8471   E4 73      CPX $73
8473   D0 2C      BNE $84A1
8475   F0 12      BEQ $8489
8477   AD 2B 02   LDA $022B
847A   85 4D      STA $4D
847C   A5 71      LDA $71
847E   85 4E      STA $4E
8480   20 CF 93   JSR $93CF
8483   AD 32 02   LDA $0232
8486   20 22 94   JSR $9422
8489   A9 FF      LDA #$FF
848B   8D 6D 02   STA $026D
848E   AD 31 02   LDA $0231
8491   30 08      BMI $849B
8493   A9 20      LDA #$20
8495   20 38 91   JSR $9138
8498   4C 4F 84   JMP $844F
849B   20 AA 93   JSR $93AA
849E   4C 3C 84   JMP $843C
84A1   A5 64      LDA $64
84A3   8D 32 02   STA $0232
84A6   20 79 9D   JSR $9D79
84A9   A5 4E      LDA $4E
84AB   85 71      STA $71
84AD   60         RTS

; auf Diskettenwechsel testen und initialisiert

84AE   A5 2D      LDA $2D
84B0   D0 31      BNE $84E3
84B2   A9 01      LDA #$01
84B4   24 25      BIT $25
84B6   F0 2B      BEQ $84E3
84B8   20 CF B0   JSR $B0CF
84BB   20 B3 B0   JSR $B0B3
84BE   A9 80      LDA #$80
84C0   8D A8 02   STA $02A8
84C3   20 DC 8E   JSR $8EDC
84C6   A0 FF      LDY #$FF
84C8   C9 02      CMP #$02
84CA   F0 0A      BEQ $84D6
84CC   C9 03      CMP #$03
84CE   F0 06      BEQ $84D6
84D0   C9 0F      CMP #$0F
84D2   F0 02      BEQ $84D6
84D4   A0 00      LDY #$00
84D6   98         TYA
84D7   85 6E      STA $6E
84D9   D0 08      BNE $84E3
84DB   A9 80      LDA #$80
84DD   8D A8 02   STA $02A8
84E0   20 03 8F   JSR $8F03
84E3   24 8A      BIT $8A
84E5   10 04      BPL $84EB
84E7   A9 FF      LDA #$FF
84E9   85 6E      STA $6E
84EB   A5 6E      LDA $6E
84ED   60         RTS

; Parameter aus dem INPUT-Puffer in Disk-Puffer kopieren

84EE   48         PHA
84EF   20 26 85   JSR $8526
84F2   20 08 85   JSR $8508
84F5   68         PLA
84F6   38         SEC
84F7   ED 6C 02   SBC $026C
84FA   AA         TAX
84FB   F0 0A      BEQ $8507
84FD   90 08      BCC $8507
84FF   A9 A0      LDA #$A0
8501   91 64      STA ($64),Y
8503   C8         INY
8504   CA         DEX
8505   D0 FA      BNE $8501
8507   60         RTS
8508   98         TYA
8509   0A         ASL
850A   A8         TAY
850B   B9 BB 00   LDA $00BB,Y
850E   85 64      STA $64
8510   B9 BC 00   LDA $00BC,Y
8513   85 65      STA $65
8515   A0 00      LDY #$00
8517   BD 00 02   LDA $0200,X
851A   91 64      STA ($64),Y
851C   C8         INY
851D   F0 06      BEQ $8525
851F   E8         INX
8520   EC 90 02   CPX $0290
8523   90 F2      BCC $8517
8525   60         RTS

; Länge eines Parameters ermitteln

8526   A9 00      LDA #$00
8528   8D 6C 02   STA $026C
852B   8A         TXA
852C   48         PHA
852D   BD 00 02   LDA $0200,X
8530   C9 2C      CMP #$2C
8532   F0 13      BEQ $8547
8534   C9 3D      CMP #$3D
8536   F0 0F      BEQ $8547
8538   EE 6C 02   INC $026C
853B   E8         INX
853C   A9 0F      LDA #$0F
853E   CD 6C 02   CMP $026C
8541   90 04      BCC $8547
8543   E4 29      CPX $29
8545   90 E6      BCC $852D
8547   8E 90 02   STX $0290
854A   68         PLA
854B   AA         TAX
854C   60         RTS

; Verzeichnis-Zeile im Zwischenpuffer erzeugen

854D   A5 52      LDA $52
854F   48         PHA
8550   A5 50      LDA $50
8552   48         PHA
8553   20 5D 85   JSR $855D
8556   68         PLA
8557   85 50      STA $50
8559   68         PLA
855A   85 52      STA $52
855C   60         RTS
855D   A9 11      LDA #$11
855F   85 52      STA $52
8561   20 27 90   JSR $9027
8564   20 42 94   JSR $9442
8567   AD 6D 02   LDA $026D
856A   10 05      BPL $8571
856C   20 6B 86   JSR $866B
856F   18         CLC
8570   60         RTS
8571   AD A4 02   LDA $02A4
8574   F0 15      BEQ $858B
8576   CE A4 02   DEC $02A4
8579   D0 03      BNE $857E
857B   4C 2D 80   JMP $802D
857E   A9 00      LDA #$00
8580   8D 8E 02   STA $028E
8583   8D A4 02   STA $02A4
8586   20 27 86   JSR $8627
8589   38         SEC
858A   60         RTS
858B   A2 18      LDX #$18
858D   A0 1D      LDY #$1D
858F   B1 64      LDA ($64),Y
8591   8D 8E 02   STA $028E
8594   F0 02      BEQ $8598
8596   A2 16      LDX #$16
8598   88         DEY
8599   B1 64      LDA ($64),Y
859B   8D 8D 02   STA $028D
859E   E0 16      CPX #$16
85A0   F0 0A      BEQ $85AC
85A2   C9 0A      CMP #$0A
85A4   90 06      BCC $85AC
85A6   CA         DEX
85A7   C9 64      CMP #$64
85A9   90 01      BCC $85AC
85AB   CA         DEX
85AC   20 1C 86   JSR $861C
85AF   B1 64      LDA ($64),Y
85B1   48         PHA
85B2   0A         ASL
85B3   10 05      BPL $85BA
85B5   A9 3C      LDA #$3C
85B7   9D AD 02   STA $02AD,X
85BA   68         PLA
85BB   29 0F      AND #$0F
85BD   A8         TAY
85BE   B9 B7 DB   LDA $DBB7,Y
85C1   9D AC 02   STA $02AC,X
85C4   CA         DEX
85C5   B9 B1 DB   LDA $DBB1,Y
85C8   9D AC 02   STA $02AC,X
85CB   CA         DEX
85CC   B9 AB DB   LDA $DBAB,Y
85CF   9D AC 02   STA $02AC,X
85D2   CA         DEX
85D3   CA         DEX
85D4   B0 05      BCS $85DB
85D6   A9 2A      LDA #$2A
85D8   9D AD 02   STA $02AD,X
85DB   A9 A0      LDA #$A0
85DD   9D AC 02   STA $02AC,X
85E0   CA         DEX
85E1   A0 12      LDY #$12
85E3   B1 64      LDA ($64),Y
85E5   9D AC 02   STA $02AC,X
85E8   CA         DEX
85E9   88         DEY
85EA   C0 03      CPY #$03
85EC   B0 F5      BCS $85E3
85EE   A9 22      LDA #$22
85F0   9D AC 02   STA $02AC,X
85F3   E8         INX
85F4   E0 20      CPX #$20
85F6   B0 0B      BCS $8603
85F8   BD AC 02   LDA $02AC,X
85FB   C9 22      CMP #$22
85FD   F0 04      BEQ $8603
85FF   C9 A0      CMP #$A0
8601   D0 F0      BNE $85F3
8603   A9 22      LDA #$22
8605   9D AC 02   STA $02AC,X
8608   E8         INX
8609   E0 20      CPX #$20
860B   B0 0A      BCS $8617
860D   A9 7F      LDA #$7F
860F   3D AC 02   AND $02AC,X
8612   9D AC 02   STA $02AC,X
8615   10 F1      BPL $8608
8617   20 04 83   JSR $8304
861A   38         SEC
861B   60         RTS
861C   A0 1B      LDY #$1B
861E   A9 20      LDA #$20
8620   99 AB 02   STA $02AB,Y
8623   88         DEY
8624   D0 FA      BNE $8620
8626   60         RTS
8627   20 AE 84   JSR $84AE
862A   20 33 B6   JSR $B633
862D   20 1C 86   JSR $861C
8630   A9 FF      LDA #$FF
8632   85 40      STA $40
8634   A9 00      LDA #$00
8636   8D 8D 02   STA $028D
8639   8D 8E 02   STA $028E
863C   A6 6C      LDX $6C
863E   BD F1 01   LDA $01F1,X
8641   85 65      STA $65
8643   AD 77 DB   LDA $DB77
8646   85 64      STA $64
8648   A0 16      LDY #$16
864A   B1 64      LDA ($64),Y
864C   C9 A0      CMP #$A0
864E   D0 02      BNE $8652
8650   A9 20      LDA #$20
8652   99 AE 02   STA $02AE,Y
8655   88         DEY
8656   10 F2      BPL $864A
8658   A9 12      LDA #$12
865A   8D AC 02   STA $02AC
865D   A9 22      LDA #$22
865F   8D AD 02   STA $02AD
8662   8D BE 02   STA $02BE
8665   A9 20      LDA #$20
8667   8D BF 02   STA $02BF
866A   60         RTS
866B   20 1C 86   JSR $861C
866E   A0 0B      LDY #$0B
8670   B9 7C 86   LDA $867C,Y
8673   99 AC 02   STA $02AC,Y
8676   88         DEY
8677   10 F7      BPL $8670
8679   4C 5B B6   JMP $B65B

; BLOCKS FREE.

867C   .BY $42,$4C,$4F,$43,$4B,$53,$20,$46F
8684   .BY $52,$45,$45,$2E

; Scratch

8688   20 70 82   JSR $8270
868B   20 0B 82   JSR $820B
868E   20 A2 82   JSR $82A2
8691   A9 00      LDA #$00
8693   85 55      STA $55
8695   20 ED 82   JSR $82ED
8698   30 6E      BMI $8708
869A   20 F5 9C   JSR $9CF5
869D   90 64      BCC $8703
869F   A0 00      LDY #$00
86A1   B1 64      LDA ($64),Y
86A3   8D EE 01   STA $01EE
86A6   29 40      AND #$40
86A8   D0 59      BNE $8703
86AA   20 3B 87   JSR $873B
86AD   AD EE 01   LDA $01EE
86B0   29 07      AND #$07
86B2   C9 05      CMP #$05
86B4   D0 25      BNE $86DB
86B6   C8         INY
86B7   B1 64      LDA ($64),Y
86B9   85 4D      STA $4D
86BB   C8         INY
86BC   B1 64      LDA ($64),Y
86BE   85 4E      STA $4E
86C0   A0 1C      LDY #$1C
86C2   B1 64      LDA ($64),Y
86C4   8D EE 01   STA $01EE
86C7   C8         INY
86C8   B1 64      LDA ($64),Y
86CA   8D ED 01   STA $01ED
86CD   20 B5 94   JSR $94B5
86D0   20 46 B5   JSR $B546
86D3   20 EF B2   JSR $B2EF
86D6   D0 F5      BNE $86CD
86D8   4C EE DB   JMP $DBEE
86DB   A0 13      LDY #$13
86DD   B1 64      LDA ($64),Y
86DF   F0 0A      BEQ $86EB
86E1   85 4D      STA $4D
86E3   C8         INY
86E4   B1 64      LDA ($64),Y
86E6   85 4E      STA $4E
86E8   20 13 87   JSR $8713
86EB   AE 6D 02   LDX $026D
86EE   A9 20      LDA #$20
86F0   35 F4      AND $F4,X
86F2   D0 0D      BNE $8701
86F4   BD 97 02   LDA $0297,X
86F7   85 4D      STA $4D
86F9   BD 9C 02   LDA $029C,X
86FC   85 4E      STA $4E
86FE   20 13 87   JSR $8713
8701   E6 55      INC $55
8703   20 E6 82   JSR $82E6
8706   10 92      BPL $869A
8708   A5 55      LDA $55
870A   85 4D      STA $4D
870C   A0 00      LDY #$00
870E   A9 01      LDA #$01
8710   4C 5D 80   JMP $805D
8713   20 46 B5   JSR $B546
8716   20 CF 93   JSR $93CF
8719   A9 00      LDA #$00
871B   20 22 94   JSR $9422
871E   20 9B 90   JSR $909B
8721   85 4D      STA $4D
8723   20 9B 90   JSR $909B
8726   85 4E      STA $4E
8728   A5 4D      LDA $4D
872A   D0 06      BNE $8732
872C   20 15 B5   JSR $B515
872F   4C 9E 91   JMP $919E
8732   20 46 B5   JSR $B546
8735   20 AA 93   JSR $93AA
8738   4C 19 87   JMP $8719
873B   A0 00      LDY #$00
873D   98         TYA
873E   91 64      STA ($64),Y
8740   20 9A 9D   JSR $9D9A
8743   4C ED 94   JMP $94ED

; Partition formatieren

8746   A5 90      LDA $90
8748   85 4D      STA $4D
874A   A9 00      LDA #$00
874C   85 4E      STA $4E
874E   20 88 95   JSR $9588
8751   20 CF B0   JSR $B0CF
8754   A9 C0      LDA #$C0
8756   20 9D 95   JSR $959D
8759   A4 9B      LDY $9B
875B   A9 00      LDA #$00
875D   85 9B      STA $9B
875F   A9 F0      LDA #$F0
8761   20 9D 95   JSR $959D
8764   84 9B      STY $9B
8766   C9 02      CMP #$02
8768   90 03      BCC $876D
876A   4C 2D FF   JMP $FF2D
876D   60         RTS

; Copy

876E   A9 00      LDA #$00
8770   8D 00 0A   STA $0A00
8773   A9 1F      LDA #$1F
8775   85 70      STA $70
8777   20 99 80   JSR $8099
877A   D0 03      BNE $877F
877C   4C 7E 89   JMP $897E
877F   20 AC 80   JSR $80AC
8782   20 0B 82   JSR $820B
8785   AD A2 02   LDA $02A2
8788   29 55      AND #$55
878A   D0 0F      BNE $879B
878C   AE 91 02   LDX $0291
878F   BD 00 02   LDA $0200,X
8792   C9 2A      CMP #$2A
8794   D0 05      BNE $879B
8796   A9 30      LDA #$30
8798   4C 7C 80   JMP $807C
879B   AD A2 02   LDA $02A2
879E   29 D9      AND #$D9
87A0   D0 F4      BNE $8796
87A2   20 B9 82   JSR $82B9
87A5   AD 2F 02   LDA $022F
87A8   C9 03      CMP #$03
87AA   90 42      BCC $87EE
87AC   A5 EF      LDA $EF
87AE   C5 F0      CMP $F0
87B0   D0 3C      BNE $87EE
87B2   A5 EA      LDA $EA
87B4   C5 EB      CMP $EB
87B6   D0 36      BNE $87EE
87B8   A5 E5      LDA $E5
87BA   C5 E6      CMP $E6
87BC   D0 30      BNE $87EE
87BE   20 03 89   JSR $8903
87C1   A9 01      LDA #$01
87C3   8D 30 02   STA $0230
87C6   20 41 88   JSR $8841
87C9   20 5F 90   JSR $905F
87CC   B0 04      BCS $87D2
87CE   C9 02      CMP #$02
87D0   D0 05      BNE $87D7
87D2   A9 64      LDA #$64
87D4   20 7C 80   JSR $807C
87D7   A9 12      LDA #$12
87D9   85 52      STA $52
87DB   A5 B9      LDA $B9
87DD   85 BA      STA $BA
87DF   A9 FF      LDA #$FF
87E1   85 B9      STA $B9
87E3   20 CC 98   JSR $98CC
87E6   A2 02      LDX #$02
87E8   20 00 88   JSR $8800
87EB   4C 4C 80   JMP $804C
87EE   20 F4 87   JSR $87F4
87F1   4C 4C 80   JMP $804C
87F4   20 1E 89   JSR $891E
87F7   20 E0 93   JSR $93E0
87FA   20 AB 95   JSR $95AB
87FD   AE 2E 02   LDX $022E
8800   8E 30 02   STX $0230
8803   20 41 88   JSR $8841
8806   A9 11      LDA #$11
8808   85 52      STA $52
880A   20 27 90   JSR $9027
880D   20 5F 90   JSR $905F
8810   D0 03      BNE $8815
8812   20 95 88   JSR $8895
8815   A9 08      LDA #$08
8817   85 51      STA $51
8819   4C 1F 88   JMP $881F
881C   20 5C 8E   JSR $8E5C
881F   20 76 88   JSR $8876
8822   A9 80      LDA #$80
8824   20 E4 9C   JSR $9CE4
8827   F0 F3      BEQ $881C
8829   20 5F 90   JSR $905F
882C   F0 03      BEQ $8831
882E   20 5C 8E   JSR $8E5C
8831   AE 30 02   LDX $0230
8834   E8         INX
8835   EC 2F 02   CPX $022F
8838   90 C6      BCC $8800
883A   A9 12      LDA #$12
883C   85 52      STA $52
883E   4C 9F 99   JMP $999F

; aktuelle Datei öffnen

8841   AE 30 02   LDX $0230
8844   AD 2B 02   LDA $022B
8847   85 4D      STA $4D
8849   B5 E5      LDA $E5,X
884B   85 4E      STA $4E
884D   20 CF 93   JSR $93CF
8850   AE 30 02   LDX $0230
8853   B5 EA      LDA $EA,X
8855   20 22 94   JSR $9422
8858   AE 30 02   LDX $0230
885B   B5 F4      LDA $F4,X
885D   29 07      AND #$07
885F   8D 2D 02   STA $022D
8862   A9 00      LDA #$00
8864   8D 6F 02   STA $026F
8867   20 4D 98   JSR $984D
886A   A0 01      LDY #$01
886C   20 5F 90   JSR $905F
886F   F0 01      BEQ $8872
8871   C8         INY
8872   98         TYA
8873   4C 22 94   JMP $9422

; Byte aus aktueller Datei holen und auf Dateiende prüfen

8876   A9 11      LDA #$11
8878   85 52      STA $52
887A   20 F4 92   JSR $92F4
887D   85 54      STA $54
887F   A6 50      LDX $50
8881   BD 34 02   LDA $0234,X
8884   29 08      AND #$08
8886   85 51      STA $51
8888   D0 0A      BNE $8894
888A   20 5F 90   JSR $905F
888D   F0 05      BEQ $8894
888F   A9 80      LDA #$80
8891   20 D5 9C   JSR $9CD5
8894   60         RTS

; REL-Datei zum Kopieren vorbereiten

8895   20 5C A1   JSR $A15C
8898   20 6E A5   JSR $A56E
889B   D0 04      BNE $88A1
889D   AD 00 01   LDA $0100
88A0   48         PHA
88A1   A5 6A      LDA $6A
88A3   48         PHA
88A4   A5 69      LDA $69
88A6   48         PHA
88A7   A9 12      LDA #$12
88A9   85 52      STA $52
88AB   20 42 90   JSR $9042
88AE   20 38 A4   JSR $A438
88B1   85 6B      STA $6B
88B3   68         PLA
88B4   85 69      STA $69
88B6   68         PLA
88B7   85 6A      STA $6A
88B9   20 6E A5   JSR $A56E
88BC   D0 04      BNE $88C2
88BE   68         PLA
88BF   8D 00 01   STA $0100
88C2   4C DC A2   JMP $A2DC

; RENAME

88C5   20 0B 82   JSR $820B
88C8   A5 F0      LDA $F0
88CA   29 01      AND #$01
88CC   85 F0      STA $F0
88CE   C5 EF      CMP $EF
88D0   F0 02      BEQ $88D4
88D2   09 80      ORA #$80
88D4   85 EF      STA $EF
88D6   20 B9 82   JSR $82B9
88D9   20 1E 89   JSR $891E
88DC   A5 E6      LDA $E6
88DE   85 4E      STA $4E
88E0   20 94 9D   JSR $9D94
88E3   20 ED 94   JSR $94ED
88E6   A5 EB      LDA $EB
88E8   18         CLC
88E9   69 03      ADC #$03
88EB   20 22 94   JSR $9422
88EE   20 11 9F   JSR $9F11
88F1   A8         TAY
88F2   AE 91 02   LDX $0291
88F5   A9 10      LDA #$10
88F7   20 EE 84   JSR $84EE
88FA   20 9A 9D   JSR $9D9A
88FD   20 ED 94   JSR $94ED
8900   4C 4C 80   JMP $804C

; aktuellen Dateityp ermitteln

8903   A5 F5      LDA $F5
8905   29 07      AND #$07
8907   8D 2D 02   STA $022D
890A   AE 2F 02   LDX $022F
890D   CA         DEX
890E   EC 2E 02   CPX $022E
8911   90 0A      BCC $891D
8913   BD 97 02   LDA $0297,X
8916   D0 F5      BNE $890D
8918   A9 62      LDA #$62
891A   4C 7C 80   JMP $807C
891D   60         RTS

; prüfen, ob alle Dateien vor '=' nicht existieren

891E   20 03 89   JSR $8903
8921   BD 97 02   LDA $0297,X
8924   F0 05      BEQ $892B
8926   A9 63      LDA #$63
8928   4C 7C 80   JMP $807C
892B   CA         DEX
892C   10 F3      BPL $8921
892E   60         RTS

; Memory-Befehle

892F   AD 01 02   LDA $0201
8932   C9 2D      CMP #$2D
8934   D0 48      BNE $897E
8936   AD 03 02   LDA $0203
8939   85 40      STA $40
893B   AD 04 02   LDA $0204
893E   85 41      STA $41
8940   A0 00      LDY #$00
8942   AD 02 02   LDA $0202
8945   C9 52      CMP #$52
8947   F0 0B      BEQ $8954
8949   C9 57      CMP #$57
894B   F0 36      BEQ $8983
894D   C9 45      CMP #$45
894F   D0 2D      BNE $897E
8951   6C 40 00   JMP ($0040)
8954   B1 40      LDA ($40),Y
8956   85 54      STA $54
8958   A5 29      LDA $29
895A   C9 06      CMP #$06
895C   90 1A      BCC $8978
895E   AE 05 02   LDX $0205
8961   CA         DEX
8962   F0 14      BEQ $8978
8964   8A         TXA
8965   18         CLC
8966   65 40      ADC $40
8968   E6 40      INC $40
896A   8D 48 02   STA $0248
896D   A5 40      LDA $40
896F   85 CF      STA $CF
8971   A5 41      LDA $41
8973   85 D0      STA $D0
8975   4C 9F 93   JMP $939F
8978   20 27 90   JSR $9027
897B   4C 96 93   JMP $9396
897E   A9 31      LDA #$31
8980   4C 7C 80   JMP $807C
8983   B9 06 02   LDA $0206,Y
8986   91 40      STA ($40),Y
8988   C8         INY
8989   CC 05 02   CPY $0205
898C   90 F5      BCC $8983
898E   60         RTS

; User-Befehle

898F   AC 01 02   LDY $0201
8992   C0 30      CPY #$30
8994   D0 36      BNE $89CC
8996   A5 29      LDA $29
8998   C9 03      CMP #$03
899A   90 27      BCC $89C3
899C   78         SEI
899D   AD 02 02   LDA $0202
89A0   85 7C      STA $7C
89A2   29 1F      AND #$1F
89A4   AA         TAX
89A5   0A         ASL
89A6   A8         TAY
89A7   B9 36 DB   LDA $DB36,Y
89AA   85 46      STA $46
89AC   B9 37 DB   LDA $DB37,Y
89AF   85 47      STA $47
89B1   20 F6 81   JSR $81F6
89B4   A5 76      LDA $76
89B6   29 FB      AND #$FB
89B8   85 76      STA $76
89BA   20 C0 89   JSR $89C0
89BD   4C 4C 80   JMP $804C
89C0   6C 46 00   JMP ($0046)
89C3   A9 EA      LDA #$EA
89C5   85 33      STA $33
89C7   A9 FF      LDA #$FF
89C9   85 34      STA $34
89CB   60         RTS
89CC   20 D2 89   JSR $89D2
89CF   4C 4C 80   JMP $804C
89D2   88         DEY
89D3   98         TYA
89D4   29 0F      AND #$0F
89D6   0A         ASL
89D7   A8         TAY
89D8   B1 33      LDA ($33),Y
89DA   85 46      STA $46
89DC   C8         INY
89DD   B1 33      LDA ($33),Y
89DF   85 47      STA $47
89E1   6C 46 00   JMP ($0046)

; öffnen eines Direktzugriffkanals

89E4   A5 52      LDA $52
89E6   48         PHA
89E7   20 AE 84   JSR $84AE
89EA   68         PLA
89EB   85 52      STA $52
89ED   A6 29      LDX $29
89EF   CA         DEX
89F0   D0 0D      BNE $89FF
89F2   A9 01      LDA #$01
89F4   20 5A 91   JSR $915A
89F7   4C 35 8A   JMP $8A35
89FA   A9 70      LDA #$70
89FC   4C 7C 80   JMP $807C
89FF   A0 01      LDY #$01
8A01   20 AC 8A   JSR $8AAC
8A04   AE 9C 02   LDX $029C
8A07   E0 08      CPX #$08
8A09   B0 EF      BCS $89FA
8A0B   A9 00      LDA #$00
8A0D   85 40      STA $40
8A0F   38         SEC
8A10   26 40      ROL $40
8A12   CA         DEX
8A13   10 FB      BPL $8A10
8A15   A5 40      LDA $40
8A17   25 6D      AND $6D
8A19   D0 DF      BNE $89FA
8A1B   A5 40      LDA $40
8A1D   05 6D      ORA $6D
8A1F   85 6D      STA $6D
8A21   A9 00      LDA #$00
8A23   20 5A 91   JSR $915A
8A26   A6 50      LDX $50
8A28   AD 9C 02   LDA $029C
8A2B   95 D1      STA $D1,X
8A2D   AA         TAX
8A2E   A9 00      LDA #$00
8A30   95 02      STA $02,X
8A32   9D 72 02   STA $0272,X
8A35   A6 52      LDX $52
8A37   B5 A8      LDA $A8,X
8A39   09 40      ORA #$40
8A3B   95 A8      STA $A8,X
8A3D   A4 50      LDY $50
8A3F   A9 FF      LDA #$FF
8A41   99 42 02   STA $0242,Y
8A44   A9 89      LDA #$89
8A46   99 34 02   STA $0234,Y
8A49   B9 D1 00   LDA $00D1,Y
8A4C   99 3B 02   STA $023B,Y
8A4F   0A         ASL
8A50   AA         TAX
8A51   A9 01      LDA #$01
8A53   95 BB      STA $BB,X
8A55   A9 0E      LDA #$0E
8A57   99 F9 00   STA $00F9,Y
8A5A   4C 4C 80   JMP $804C

; Block-Befehle

8A5D   A0 00      LDY #$00
8A5F   A2 00      LDX #$00
8A61   A9 2D      LDA #$2D
8A63   20 1C 81   JSR $811C
8A66   D0 0A      BNE $8A72
8A68   A9 31      LDA #$31
8A6A   4C 7C 80   JMP $807C
8A6D   A9 30      LDA #$30
8A6F   4C 7C 80   JMP $807C
8A72   8A         TXA
8A73   D0 F8      BNE $8A6D
8A75   A2 09      LDX #$09
8A77   B9 00 02   LDA $0200,Y
8A7A   DD 61 8C   CMP $8C61,X
8A7D   F0 05      BEQ $8A84
8A7F   CA         DEX
8A80   10 F8      BPL $8A7A
8A82   30 E4      BMI $8A68
8A84   8A         TXA
8A85   09 80      ORA #$80
8A87   8D 2A 02   STA $022A
8A8A   20 9F A8   JSR $8A9F
8A8D   AD 2A 02   LDA $022A
8A90   0A         ASL
8A91   AA         TAX
8A92   BD 6C 8C   LDA $8C6C,X
8A95   85 41      STA $41
8A97   BD 6B 8C   LDA $8C6B,X
8A9A   85 40      STA $40
8A9C   6C 40 00   JMP ($0040)

; Parameter der Block-Befehle holen

8A9F   A0 00      LDY #$00
8AA1   A2 00      LDX #$00
8AA3   A9 3A      LDA #$3A
8AA5   20 1C 81   JSR $811C
8AA8   D0 02      BNE $8AAC
8AAA   A0 03      LDY #$03
8AAC   B9 00 02   LDA $0200,Y
8AAF   C9 20      CMP #$20
8AB1   F0 08      BEQ $8ABB
8AB3   C9 1D      CMP #$1D
8AB5   F0 04      BEQ $8ABB
8AB7   C9 2C      CMP #$2C
8AB9   D0 06      BNE $8AC1
8ABB   C8         INY
8ABC   C4 29      CPY $29
8ABE   90 EC      BCC $8AAC
8AC0   60         RTS
8AC1   20 D0 8A   JSR $8AD0
8AC4   EE 2E 02   INC $022E
8AC7   AC 30 02   LDY $0230
8ACA   E0 04      CPX #$04
8ACC   90 ED      BCC $8ABB
8ACE   B0 9D      BCS $8A6D

; ASCII-Werte aus dem Input-Puffer in HEX-Werte umwandeln

8AD0   A9 00      LDA #$00
8AD2   85 40      STA $40
8AD4   85 41      STA $41
8AD6   85 43      STA $43
8AD8   A2 FF      LDX #$FF
8ADA   B9 00 02   LDA $0200,Y
8ADD   C9 40      CMP #$40
8ADF   B0 17      BCS $8AF8
8AE1   C9 30      CMP #$30
8AE3   90 13      BCC $8AF8
8AE5   29 0F      AND #$0F
8AE7   48         PHA
8AE8   A5 41      LDA $41
8AEA   85 42      STA $42
8AEC   A5 40      LDA $40
8AEE   85 41      STA $41
8AF0   68         PLA
8AF1   85 40      STA $40
8AF3   C8         INY
8AF4   C4 29      CPY $29
8AF6   90 E2      BCC $8ADA
8AF8   8C 30 02   STY $0230
8AFB   18         CLC
8AFC   A9 00      LDA #$00
8AFE   E8         INX
8AFF   E0 03      CPX #$03
8B01   B0 0F      BCS $8B12
8B03   B4 40      LDY $40,X
8B05   88         DEY
8B06   30 F6      BMI $8AFE
8B08   7D 20 8B   ADC $8B20,X
8B0B   90 F8      BCC $8B05
8B0D   18         CLC
8B0E   E6 43      INC $43
8B10   D0 F3      BNE $8B05
8B12   48         PHA
8B13   AE 2E 02   LDX $022E
8B16   A5 43      LDA $43
8B18   9D 97 02   STA $0297,X
8B1B   68         PLA
8B1C   9D 9C 02   STA $029C,X
8B1F   60         RTS

; Werte für 1, 10 und 100

8B20   .BY $01,$0A,$64

; Block-Free

8B23   20 AE 84   JSR $84AE
8B26   20 32 8C   JSR $8C32
8B29   20 46 B5   JSR $B546
8B2C   4C 50 80   JMP $8050

; Block-Allocate

8B2F   20 AE 84   JSR $84AE
8B32   20 32 8C   JSR $8C32
8B35   A5 4E      LDA $4E
8B37   48         PHA
8B38   20 46 B7   JSR $B746
8B3B   F0 0B      BEQ $8B48
8B3D   68         PLA
8B3E   C5 4E      CMP $4E
8B40   D0 19      BNE $8B5B
8B42   20 72 B5   JSR $B572
8B45   4C 50 80   JMP $8050
8B48   68         PLA
8B49   A9 00      LDA #$00
8B4B   85 4E      STA $4E
8B4D   E6 4D      INC $4D
8B4F   A5 4D      LDA $4D
8B51   CD 2C 02   CMP $022C
8B54   B0 0A      BCS $8B60
8B56   20 46 B7   JSR $B746
8B59   F0 EE      BEQ $8B49
8B5B   A9 65      LDA #$65
8B5D   20 3F FF   JSR $FF3F
8B60   A9 65      LDA #$65
8B62   20 7C 80   JSR $807C

; Block-Read-Parameter prüfen und Block lesen

8B65  20 2F 8C   JSR $8C2F
8B68  4C BD 93   JMP $93BD

; Byte aus Puffer holen

8B6B   20 69 90   JSR $9069
8B6E   A1 BB      LDA ($BB,X)
8B70   60         RTS

; Block lesen und Pufferzeiger setzen

8B71   20 65 8B   JSR $8B65
8B74   A9 00      LDA #$00
8B76   20 22 94   JSR $9422
8B79   20 6B 8B   JSR $8B6B
8B7C   99 42 02   STA $0242,Y
8B7F   A9 89      LDA #$89
8B81   99 34 02   STA $0234,Y
8B84   60         RTS

; Block-Read

8B85   20 71 8B   JSR $8B71
8B88   20 48 93   JSR $9348
8B8B   4C 4C 80   JMP $804C

; Super-Read

8B8E   20 44 8C   JSR $8C44
8B91   20 BD 93   JSR $93BD
8B94   20 74 8B   JSR $8B74
8B97   4C A0 8B   JMP $8BA0

; u1

8B9A   20 9F 8A   JSR $8A9F
8B9D   20 71 8B   JSR $8B71
8BA0   B9 42 02   LDA $0242,Y
8BA3   99 3B 02   STA $023B,Y
8BA6   A9 FF      LDA #$FF
8BA8   99 42 02   STA $0242,Y
8BAB   4C 4C 80   JMP $804C

; Block-Write

8BAE   20 2F 8C   JSR $8C2F
8BB1   20 42 94   JSR $9442
8BB4   A8         TAY
8BB5   88         DEY
8BB6   C9 02      CMP #$02
8BB8   B0 02      BCS $8BBC
8BBA   A0 01      LDY #$01
8BBC   A9 00      LDA #$00
8BBE   20 22 94   JSR $9422
8BC1   98         TYA
8BC2   20 B1 8E   JSR $8EB1
8BC5   8A         TXA
8BC6   48         PHA
8BC7   20 C1 93   JSR $93C1
8BCA   68         PLA
8BCB   AA         TAX
8BCC   A4 50      LDY $50
8BCE   4C 09 8C   JMP $8C09

; Super-Write

8BD1   20 44 8C   JSR $8C44
8BD4   4C DD 8B   JMP $8BDD

; u2

8BD7   20 9F 8A   JSR $8A9F
8BDA   20 2F 8C   JSR $8C2F
8BDD   20 C1 93   JSR $93C1
8BE0   4C 4C 80   JMP $804C

; Block-Execute

8BE3   20 65 8B   JSR $8B65
8BE6   A9 00      LDA #$00
8BE8   85 40      STA $40
8BEA   A6 6C      LDX $6C
8BEC   BD F1 01   LDA $01F1,X
8BEF   85 41      STA $41
8BF1   20 F7 8B   JSR $8BF7
8BF4   4C 4C 80   JMP $804C
8BF7   6C 40 00   JMP ($0040)

; Block-Pointer

8BFA   20 0F 8C   JSR $8C0F
8BFD   A5 6C      LDA $6C
8BFF   0A         ASL
8C00   AA         TAX
8C01   AD 9D 02   LDA $029D
8C04   95 BB      STA $BB,X
8C06   20 69 90   JSR $9069
8C09   20 4A 93   JSR $934A
8C0C   4C 4C 80   JMP $804C

; Kanal öffnen

8C0F   A6 67      LDX $67
8C11   E6 67      INC $67
8C13   BD 9C 02   LDA $029C,X
8C16   A8         TAY
8C17   88         DEY
8C18   88         DEY
8C19   C0 0D      CPY #$0D
8C1B   90 05      BCC $8C22
8C1D   A9 70      LDA #$70
8C1F   4C 7C 80   JMP $807C
8C22   85 52      STA $52
8C24   20 27 90   JSR $9027
8C27   B0 F4      BCS $8C1D
8C29   20 11 9F   JSR $9F11
8C2C   85 6C      STA $6C
8C2E   60         RTS

; Kanal öffnen, Blockparameter holen und testen

8C2F   20 0F 8C   JSR $8C0F
8C32   A6 67      LDX $67
8C34   BD 9E 02   LDA $029E,X
8C37   85 4E      STA $4E
8C39   BD 9D 02   LDA $029D,X
8C3C   85 4D      STA $4D
8C3E   20 B5 94   JSR $94B5
8C41   4C F6 81   JMP $81F6 

; Kanal öffnen, Blockparameter holen und nicht testen

8C44   20 0F 8C   JSR $8C0F
8C47   A6 67      LDX $67
8C49   BD 9E 02   LDA $029E,X
8C4C   85 4E      STA $4E
8C4E   BD 9D 02   LDA $029D,X
8C51   85 4D      STA $4D
8C53   20 F6 81   JSR $81F6
8C56   A9 40      LDA #$40
8C58   8D A8 02   STA $02A8
8C5B   60         RTS

; Puffer allokieren

8C5C   05 6D      ORA $6D
8C5E   85 6D      STA $6D
8C60   60         RTS

; Block-Befehle und Adressen

; afrwepRW?*

8C61   .BY $41,$46,$52,$57,$45,$50,$D2,$D7
8C69   .BY $3F,$2A

8C6B   .WD $8B2F                Allocate
8C6D   .WD $8B23                Free
8C6F   .WD $8B85                Read
8C71   .WD $8BAE                Write
8C73   .WD $8BE3                Execute
8C75   .WD $8BFA                Pointer
8C77   .WD $8B8E                Super-Read
8C79   .WD $8BD1                Super-Write
8C7B   .WD $8C7F                Hard- und Software
8C7D   .WD $8C84                Widmung

8C7F   A9 79      LDA #$79
8C81   4C 67 A8   JMP $A867
8C84   A9 7A      LDA #$7A
8C86   4C 67 A8   JMP $A867

; Position des Records berechnen

8C89   20 C1 8C   JSR $8CC1
8C8C   20 06 8D   JSR $8D06
8C8F   A5 60      LDA $60
8C91   85 6B      STA $6B
8C93   20 09 8D   JSR $8D09
8C96   E6 6B      INC $6B
8C98   E6 6B      INC $6B
8C9A   20 6E A5   JSR $A56E
8C9D   F0 0D      BEQ $8CAC
8C9F   A5 5B      LDA $5B
8CA1   85 69      STA $69
8CA3   A5 60      LDA $60
8CA5   0A         ASL
8CA6   18         CLC
8CA7   69 10      ADC #$10
8CA9   85 6A      STA $6A
8CAB   60         RTS
8CAC   A5 60      LDA $60
8CAE   0A         ASL
8CAF   18         CLC
8CB0   69 10      ADC #$10
8CB2   85 6A      STA $6A
8CB4   20 0C 8D   JSR $8D0C
8CB7   A5 60      LDA $60
8CB9   85 69      STA $69
8CBB   A5 5B      LDA $5B
8CBD   8D 00 01   STA $0100
8CC0   60         RTS

; Zahl der Bytes bis zum gesuchten Record berechnen

8CC1   20 38 8D   JSR $8D38
8CC4   85 62      STA $62
8CC6   A6 50      LDX $50
8CC8   BD 49 02   LDA $0249,X
8CCB   85 60      STA $60
8CCD   BD 50 02   LDA $0250,X
8CD0   85 61      STA $61
8CD2   D0 04      BNE $8CD8
8CD4   A5 60      LDA $60
8CD6   F0 0B      BEQ $8CE3
8CD8   A5 60      LDA $60
8CDA   38         SEC
8CDB   E9 01      SBC #$01
8CDD   85 60      STA $60
8CDF   B0 02      BCS $8CE3
8CE1   C6 61      DEC $61
8CE3   BD 5E 02   LDA $025E,X

; 24* 8-Bit-Multiplikationsroutine

8CE6   85 40      STA $40
8CE8   46 40      LSR $40
8CEA   90 03      BCC $8CEF
8CEC   20 4C 8D   JSR $8D4C
8CEF   20 44 8D   JSR $8D44
8CF2   A5 40      LDA $40
8CF4   D0 F2      BNE $8CE8
8CF6   A5 68      LDA $68
8CF8   18         CLC
8CF9   65 5B      ADC $5B
8CFB   85 5B      STA $5B
8CFD   90 06      BCC $8D05
8CFF   E6 5C      INC $5C
8D01   D0 02      BNE $8D05
8D03   E6 5D      INC $5D
8D05   60         RTS

; 24/ 8-Bit-Divisionsroutine

8D06   A9 FE      LDA #$FE
8D08   2C         .BY $2C
8D09   A9 78      LDA #$78
8D0B   2C         .BY $2C
8D0C   A9 06      LDA #$06
8D0E   85 40      STA $40
8D10   A9 00      LDA #$00
8D12   85 60      STA $60
8D14   85 61      STA $61
8D16   A2 18      LDX #$18
8D18   06 5B      ASL $5B
8D1A   26 5C      ROL $5C
8D1C   26 5D      ROL $5D
8D1E   26 60      ROL $60
8D20   26 61      ROL $61
8D22   A5 60      LDA $60
8D24   38         SEC
8D25   E5 40      SBC $40
8D27   A8         TAY
8D28   A5 61      LDA $61
8D2A   E9 00      SBC #$00
8D2C   90 06      BCC $8D34
8D2E   E6 5B      INC $5B
8D30   85 61      STA $61
8D32   84 60      STY $60
8D34   CA         DEX
8D35   D0 E1      BNE $8D18
8D37   60         RTS

; Rechenregister 1 löschen

8D38   A9 00      LDA #$00
8D3A   85 5B      STA $5B
8D3C   85 5C      STA $5C
8D3E   85 5D      STA $5D
8D40   60         RTS

; Rechenregister 2 *2

8D41   20 44 8D   JSR $8D44

; Rechenregister 2 *2

8D44   18         CLC
8D45   26 60      ROL $60
8D47   26 61      ROL $61
8D49   26 62      ROL $62
8D4B   60         RTS

; Rechenregister addieren

8D4C   18         CLC
8D4D   A2 FD      LDX #$FD
8D4F   B5 5E      LDA $5E,X
8D51   75 63      ADC $63,X
8D53   95 5E      STA $5E,X
8D55   E8         INX
8D56   D0 F7      BNE $8D4F
8D58   60         RTS

; Feststellen, welcher Kanal schon am längsten inaktiv ist

8D59   A2 00      LDX #$00
8D5B   8A         TXA
8D5C   95 DF      STA $DF,X
8D5E   E8         INX
8D5F   E0 05      CPX #$05
8D61   D0 F8      BNE $8D5B
8D63   A9 05      LDA #$05
8D65   95 DF      STA $DF,X
8D67   60         RTS
8D68   A0 05      LDY #$05
8D6A   A6 50      LDX $50
8D6C   B9 DF 00   LDA $00DF,Y
8D6F   96 DF      STX $DF,Y
8D71   C5 50      CMP $50
8D73   F0 07      BEQ $8D7C
8D75   88         DEY
8D76   30 E1      BMI $8D59
8D78   AA         TAX
8D79   4C 6C 8D   JMP $8D6C
8D7C   60         RTS

; Puffer wechseln im Zwei-Puffer-Betrieb

8D7D   20 68 8D   JSR $8D68
8D80   A6 50      LDX $50
8D82   B5 D1      LDA $D1,X
8D84   30 02      BMI $8D88
8D86   B5 D8      LDA $D8,X
8D88   C9 FF      CMP #$FF
8D8A   F0 18      BEQ $8DA4
8D8C   B5 D1      LDA $D1,X
8D8E   49 80      EOR #$80
8D90   95 D1      STA $D1,X
8D92   48         PHA
8D93   B5 D8      LDA $D8,X
8D95   49 80      EOR #$80
8D97   95 D8      STA $D8,X
8D99   A8         TAY
8D9A   68         PLA
8D9B   10 01      BPL $8D9E
8D9D   98         TYA
8D9E   29 BF      AND #$BF
8DA0   AA         TAX
8DA1   4C ED 94   JMP $94ED
8DA4   B5 D1      LDA $D1,X
8DA6   10 02      BPL $8DAA
8DA8   B5 D8      LDA $D8,X
8DAA   29 BF      AND #$BF
8DAC   A8         TAY
8DAD   20 04 92   JSR $9204
8DB0   10 05      BPL $8DB7
8DB2   A9 70      LDA #$70
8DB4   4C 7C 80   JMP $807C
8DB7   A6 50      LDX $50
8DB9   09 80      ORA #$80
8DBB   B4 D1      LDY $D1,X
8DBD   10 04      BPL $8DC3
8DBF   95 D1      STA $D1,X
8DC1   30 02      BMI $8DC5
8DC3   95 D8      STA $D8,X
8DC5   A5 4D      LDA $4D
8DC7   48         PHA
8DC8   A5 4E      LDA $4E
8DCA   48         PHA
8DCB   A9 01      LDA #$01
8DCD   85 42      STA $42
8DCF   B5 D1      LDA $D1,X
8DD1   10 02      BPL $8DD5
8DD3   B5 D8      LDA $D8,X
8DD5   29 BF      AND #$BF
8DD7   A8         TAY
8DD8   B9 F1 01   LDA $01F1,Y
8DDB   85 43      STA $43
8DDD   A0 00      LDY #$00
8DDF   B1 42      LDA ($42),Y
8DE1   85 4E      STA $4E
8DE3   A9 00      LDA #$00
8DE5   85 42      STA $42
8DE7   B5 D1      LDA $D1,X
8DE9   10 02      BPL $8DED
8DEB   B5 D8      LDA $D8,X
8DED   29 BF      AND #$BF
8DEF   A8         TAY
8DF0   B9 F1 01   LDA $01F1,Y
8DF3   85 43      STA $43
8DF5   A0 00      LDY #$00
8DF7   B1 42      LDA ($42),Y
8DF9   85 4D      STA $4D
8DFB   F0 2A      BEQ $8E27
8DFD   20 5F 90   JSR $905F
8E00   F0 0B      BEQ $8E0D
8E02   20 E9 9C   JSR $9CE9
8E05   D0 06      BNE $8E0D
8E07   20 4D 8E   JSR $8E4D
8E0A   4C 1E 8E   JMP $8E1E
8E0D   A6 50      LDX $50
8E0F   B5 D1      LDA $D1,X
8E11   49 80      EOR #$80
8E13   95 D1      STA $D1,X
8E15   B5 D8      LDA $D8,X
8E17   49 80      EOR #$80
8E19   95 D8      STA $D8,X
8E1B   20 94 9D   JSR $9D94
8E1E   68         PLA
8E1F   85 4E      STA $4E
8E21   68         PLA
8E22   85 4D      STA $4D
8E24   4C 30 8E   JMP $8E30
8E27   68         PLA
8E28   85 4E      STA $4E
8E2A   68         PLA
8E2B   85 4D      STA $4D
8E2D   20 4D 8E   JSR $8E4D
8E30   20 11 9F   JSR $9F11
8E33   AA         TAX
8E34   4C ED 94   JMP $94ED

; Falls dem Kanal ein Puffer fehlt, einen neuen zuordnen

8E37   A9 70      LDA #$70
8E39   4C 7C 80   JMP $807C
8E3C   20 68 8D   JSR $8D68
8E3F   20 33 9F   JSR $9F33
8E42   D0 08      BNE $8E4C
8E44   20 04 92   JSR $9204
8E47   30 EE      BMI $8E37
8E49   4C 3E 9F   JMP $9F3E
8E4C   60         RTS

; Aktiven Puffer wechseln

8E4D   A6 50      LDX $50
8E4F   B5 D1      LDA $D1,X
8E51   49 80      EOR #$80
8E53   95 D1      STA $D1,X
8E55   B5 D8      LDA $D8,X
8E57   49 80      EOR #$80
8E59   95 D8      STA $D8,X
8E5B   60         RTS

; Byte über internen Schreibkanal in Puffer schreiben

8E5C   A2 12      LDX #$12
8E5E   86 52      STX $52
8E60   20 42 90   JSR $9042
8E63   20 F6 81   JSR $81F6
8E66   20 5F 90   JSR $905F
8E69   90 05      BCC $8E70
8E6B   A9 20      LDA #$20
8E6D   20 DB 9C   JSR $9CDB
8E70   A5 52      LDA $52
8E72   C9 0F      CMP #$0F
8E74   F0 23      BEQ $8E99
8E76   D0 08      BNE $8E80

; Byte in aktuelle Datei schreiben

8E78   A5 53      LDA $53
8E7A   29 8F      AND #$8F
8E7C   C9 0F      CMP #$0F
8E7E   B0 19      BCS $8E99
8E80   20 5F 90   JSR $905F
8E83   B0 05      BCS $8E8A
8E85   A5 54      LDA $54
8E87   4C 12 91   JMP $9112
8E8A   D0 03      BNE $8E8F
8E8C   4C 33 A0   JMP $A033
8E8F   A5 54      LDA $54
8E91   20 B1 8E   JSR $8EB1
8E94   A4 50      LDY $50
8E96   4C 4A 93   JMP $934A
8E99   A9 05      LDA #$05
8E9B   85 50      STA $50
8E9D   20 42 94   JSR $9442
8EA0   C9 2A      CMP #$2A
8EA2   F0 05      BEQ $8EA9
8EA4   A5 54      LDA $54
8EA6   20 B1 8E   JSR $8EB1
8EA9   A5 51      LDA $51
8EAB   F0 01      BEQ $8EAE
8EAD   60         RTS
8EAE   E6 7B      INC $7B
8EB0   60         RTS

; Byte in Puffer schreiben, Pufferzeiger erhöhen

8EB1   48         PHA
8EB2   20 11 9F   JSR $9F11
8EB5   10 06      BPL $8EBD
8EB7   68         PLA
8EB8   A9 61      LDA #$61
8EBA   4C 7C 80   JMP $807C
8EBD   0A         ASL
8EBE   AA         TAX
8EBF   68         PLA
8EC0   81 BB      STA ($BB,X)
8EC2   F6 BB      INC $BB,X
8EC4   60         RTS

; Initialisieren

8EC5   20 85 80   JSR $8085
8EC8   20 CF B0   JSR $B0CF
8ECB   20 B3 B0   JSR $B0B3
8ECE   20 03 8F   JSR $8F03
8ED1   2C FB 01   BIT $01FB
8ED4   50 03      BVC $8ED9
8ED6   4C 38 A9   JMP $A938
8ED9   4C 4C 80   JMP $804C

; Blockheader des Verzeichnisheaders suchen

8EDC   20 04 92   JSR $9204
8EDF   85 6C      STA $6C
8EE1   AA         TAX
8EE2   20 35 92   JSR $9235
8EE5   A2 00      LDX #$00
8EE7   86 4E      STX $4E
8EE9   AE 2B 02   LDX $022B
8EEC   86 4D      STX $4D
8EEE   20 88 95   JSR $9588
8EF1   A9 B0      LDA #$B0
8EF3   20 E4 94   JSR $94E4
8EF6   A6 6C      LDX $6C
8EF8   48         PHA
8EF9   A9 B6      LDA #$B6
8EFB   20 9D 95   JSR $959D
8EFE   8D FA 01   STA $01FA
8F01   68         PLA
8F02   60         RTS

; Partition initialisieren

8F03   AD FB 01   LDA $01FB
8F06   29 BF      AND #$BF
8F08   8D FB 01   STA $01FB
8F0B   A5 8A      LDA $8A
8F0D   09 80      ORA #$80
8F0F   85 8A      STA $8A
8F11   20 6E 92   JSR $926E
8F14   20 DC 8E   JSR $8EDC
8F17   C9 02      CMP #$02
8F19   B0 06      BCS $8F21
8F1B   A5 91      LDA $91
8F1D   C9 02      CMP #$02
8F1F   F0 03      BEQ $8F24
8F21   4C B9 8F   JMP $8FB9
8F24   20 DE 94   JSR $94DE
8F27   A5 6C      LDA $6C
8F29   0A         ASL
8F2A   AA         TAX
8F2B   A9 01      LDA #$01
8F2D   95 BB      STA $BB,X
8F2F   A1 BB      LDA ($BB,X)
8F31   8D E5 01   STA $01E5
8F34   A9 02      LDA #$02
8F36   95 BB      STA $BB,X
8F38   A1 BB      LDA ($BB,X)
8F3A   85 6F      STA $6F
8F3C   A9 00      LDA #$00
8F3E   8D 00 0A   STA $0A00
8F41   20 4F B6   JSR $B64F
8F44   A9 00      LDA #$00
8F46   85 25      STA $25
8F48   85 6E      STA $6E
8F4A   A0 02      LDY #$02
8F4C   B1 31      LDA ($31),Y
8F4E   CD EB 01   CMP $01EB
8F51   D0 66      BNE $8FB9
8F53   C8         INY
8F54   B1 31      LDA ($31),Y
8F56   49 FF      EOR #$FF
8F58   CD EB 01   CMP $01EB
8F5B   D0 5C      BNE $8FB9
8F5D   A5 8A      LDA $8A
8F5F   29 7F      AND #$7F
8F61   85 8A      STA $8A
8F63   A0 04      LDY #$04
8F65   B1 31      LDA ($31),Y
8F67   85 1D      STA $1D
8F69   C8         INY
8F6A   B1 31      LDA ($31),Y
8F6C   85 1E      STA $1E
8F6E   C8         INY
8F6F   B1 31      LDA ($31),Y
8F71   85 8D      STA $8D
8F73   29 20      AND #$20
8F75   8D 01 01   STA $0101
8F78   C8         INY
8F79   B1 31      LDA ($31),Y
8F7B   10 08      BPL $8F85
8F7D   AD FB 01   LDA $01FB
8F80   09 40      ORA #$40
8F82   8D FB 01   STA $01FB
8F85   A5 4D      LDA $4D
8F87   48         PHA
8F88   A2 00      LDX #$00
8F8A   8E A9 02   STX $02A9
8F8D   8E AA 02   STX $02AA
8F90   A6 90      LDX $90
8F92   24         .BY $24
8F93   E8         INX
8F94   86 4D      STX $4D
8F96   EC 2B 02   CPX $022B
8F99   F0 F8      BEQ $8F93
8F9B   EC 2C 02   CPX $022C
8F9E   B0 13      BCS $8FB3
8FA0   20 BD B5   JSR $B5BD
8FA3   B1 31      LDA ($31),Y
8FA5   18         CLC
8FA6   6D A9 02   ADC $02A9
8FA9   8D A9 02   STA $02A9
8FAC   90 E5      BCC $8F93
8FAE   EE AA 02   INC $02AA
8FB1   D0 E0      BNE $8F93
8FB3   68         PLA
8FB4   85 4D      STA $4D
8FB6   A2 00      LDX #$00
8FB8   60         RTS
8FB9   A2 03      LDX #$03
8FBB   8E E5 01   STX $01E5
8FBE   A2 C0      LDX #$C0
8FC0   86 8D      STX $8D
8FC2   A2 00      LDX #$00
8FC4   8E 01 01   STX $0101
8FC7   86 25      STX $25
8FC9   86 6E      STX $6E
8FCB   8E A9 02   STX $02A9
8FCE   8E AA 02   STX $02AA
8FD1   86 1D      STX $1D
8FD3   86 1E      STX $1E
8FD5   60         RTS

; Block einlesen und Folgeblock merken

8FD6   20 85 95   JSR $9585
8FD9   20 FE 8F   JSR $8FFE
8FDC   20 ED 94   JSR $94ED
8FDF   20 71 90   JSR $9071
8FE2   85 4D      STA $4D
8FE4   20 71 90   JSR $9071
8FE7   85 4E      STA $4E
8FE9   60         RTS

; Block (und Folgeblock) im 2-Puffer-Modus lesen

8FEA   20 D6 8F   JSR $8FD6
8FED   A5 4D      LDA $4D
8FEF   D0 01      BNE $8FF2
8FF1   60         RTS
8FF2   20 7D 8D   JSR $8D7D
8FF5   20 85 95   JSR $9585
8FF8   20 FE 8F   JSR $8FFE
8FFB   4C 7D 8D   JMP $8D7D

; Blockbefehl ausführen und Dateilänge aktualisieren

8FFE   A9 80      LDA #$80
9000   D0 02      BNE $9004
9002   A9 90      LDA #$90
9004   85 28      STA $28
9006   20 11 9F   JSR $9F11
9009   AA         TAX
900A   20 71 94   JSR $9471
900D   8A         TXA
900E   48         PHA
900F   0A         ASL
9010   AA         TAX
9011   A9 00      LDA #$00
9013   95 BB      STA $BB,X
9015   20 5F 90   JSR $905F
9018   C9 04      CMP #$04
901A   B0 08      BCS $9024
901C   FE 49 02   INC $0249,X
901F   D0 03      BNE $9024
9021   FE 50 02   INC $0250,X
9024   68         PLA
9025   AA         TAX
9026   60         RTS

; Kanal zum Lesen holen und prüfen

9027   A5 52      LDA $52
9029   C9 13      CMP #$13
902B   90 02      BCC $902F
902D   29 0F      AND #$0F
902F   C9 0F      CMP #$0F
9031   D0 02      BNE $9035
9033   A9 10      LDA #$10
9035   AA         TAX
9036   38         SEC
9037   B5 A8      LDA $A8,X
9039   30 06      BMI $9041
903B   29 0F      AND #$0F
903D   85 50      STA $50
903F   AA         TAX
9040   18         CLC
9041   60         RTS

; Kanal zum Schreiben holen und prüfen

9042   A5 52      LDA $52
9044   C9 13      CMP #$13
9046   90 02      BCC $904A
9048   29 0F      AND #$0F
904A   AA         TAX
904B   B5 A8      LDA $A8,X
904D   A8         TAY
904E   0A         ASL
904F   90 0A      BCC $905B
9051   30 0A      BMI $905D
9053   98         TYA
9054   29 0F      AND #$0F
9056   85 50      STA $50
9058   AA         TAX
9059   18         CLC
905A   60         RTS
905B   30 F6      BMI $9053
905D   38         SEC
905E   60         RTS

; Aktuellen Dateityp holen

905F   A6 50      LDX $50
9061   B5 F9      LDA $F9,X
9063   4A         LSR
9064   29 07      AND #$07
9066   C9 04      CMP #$04
9068   60         RTS

; Kanal- und Puffernummer holen

9069   20 11 9F   JSR $9F11
906C   0A         ASL
906D   AA         TAX
906E   A4 50      LDY $50
9070   60         RTS

; Byte aus aktuellem Puffer holen

9071   A6 50      LDX $50
9073   B5 D1      LDA $D1,X
9075   10 02      BPL $9079
9077   B5 D8      LDA $D8,X
9079   29 BF      AND #$BF
907B   0A         ASL
907C   AA         TAX
907D   A4 50      LDY $50
907F   B9 42 02   LDA $0242,Y
9082   F0 12      BEQ $9096
9084   A1 BB      LDA ($BB,X)
9086   48         PHA
9087   B5 BB      LDA $BB,X
9089   D9 42 02   CMP $0242,Y
908C   D0 04      BNE $9092
908E   A9 FF      LDA #$FF
9090   95 BB      STA $BB,X
9092   68         PLA
9093   F6 BB      INC $BB,X
9095   60         RTS
9096   A1 BB      LDA ($BB,X)
9098   F6 BB      INC $BB,X
909A   60         RTS

; Byte aus aktueller Datei holen

909B   20 71 90   JSR $9071
909E   D0 66      BNE $9106
90A0   85 54      STA $54
90A2   B9 42 02   LDA $0242,Y
90A5   F0 08      BEQ $90AF
90A7   A9 80      LDA #$80
90A9   99 34 02   STA $0234,Y
90AC   A5 54      LDA $54
90AE   60         RTS
90AF   20 7D 8D   JSR $8D7D
90B2   A9 00      LDA #$00
90B4   85 40      STA $40
90B6   A6 50      LDX $50
90B8   B5 D1      LDA $D1,X
90BA   10 02      BPL $90BE
90BC   B5 D8      LDA $D8,X
90BE   29 BF      AND #$BF
90C0   0A         ASL
90C1   AA         TAX
90C2   B5 BC      LDA $BC,X
90C4   85 65      STA $65
90C6   A5 40      LDA $40
90C8   95 BB      STA $BB,X
90CA   85 64      STA $64
90CC   20 71 90   JSR $9071
90CF   C9 00      CMP #$00
90D1   F0 34      BEQ $9107
90D3   85 4D      STA $4D
90D5   20 71 90   JSR $9071
90D8   85 4E      STA $4E
90DA   20 7D 8D   JSR $8D7D
90DD   A6 50      LDX $50
90DF   B5 D1      LDA $D1,X
90E1   10 02      BPL $90E5
90E3   B5 D8      LDA $D8,X
90E5   29 BF      AND #$BF
90E7   AA         TAX
90E8   A6 50      LDX $50
90EA   B5 D1      LDA $D1,X
90EC   10 02      BPL $90F0
90EE   B5 D8      LDA $D8,X
90F0   29 BF      AND #$BF
90F2   0A         ASL
90F3   A8         TAY
90F4   A5 4D      LDA $4D
90F6   99 0B 00   STA $000B,Y
90F9   A5 4E      LDA $4E
90FB   99 0C 00   STA $000C,Y
90FE   20 FE 8F   JSR $8FFE
9101   20 7D 8D   JSR $8D7D
9104   A5 54      LDA $54
9106   60         RTS
9107   20 71 90   JSR $9071
910A   A4 50      LDY $50
910C   99 42 02   STA $0242,Y
910F   A5 54      LDA $54
9111   60         RTS

; Schreiben eines Bytes in eine Datei im 2-Puffer Modus

9112   20 B1 8E   JSR $8EB1
9115   F0 01      BEQ $9118
9117   60         RTS
9118   20 68 B6   JSR $B668
911B   A9 00      LDA #$00
911D   20 22 94   JSR $9422
9120   A5 4D      LDA $4D
9122   20 B1 8E   JSR $8EB1
9125   A5 4E      LDA $4E
9127   20 B1 8E   JSR $8EB1
912A   20 02 90   JSR $9002
912D   20 7D 8D   JSR $8D7D
9130   20 85 95   JSR $9585
9133   A9 02      LDA #$02
9135   4C 22 94   JMP $9422

; Erhöhen des aktuellen Pufferzeigers

9138   85 40      STA $40
913A   20 42 94   JSR $9442
913D   18         CLC
913E   65 40      ADC $40
9140   95 BB      STA $BB,X
9142   85 64      STA $64
9144   60         RTS

; Autoboot bei Warmstart ein/aus

9145   AD FB 01   LDA $01FB
9148   29 7F      AND #$7F
914A   8D FB 01   STA $01FB
914D   A9 00      LDA #$00
914F   6A         ROR
9150   0D FB 01   ORA $01FB
9153   8D FB 01   STA $01FB
9156   60         RTS

; Kanal öffnen und entsprechende Zahl Puffer zuordnen

9157   38         SEC
9158   B0 01      BCS $915B
915A   18         CLC
915B   08         PHP
915C   85 40      STA $40
915E   20 9E 91   JSR $919E
9161   20 DB 92   JSR $92DB
9164   85 50      STA $50
9166   A6 52      LDX $52
9168   28         PLP
9169   90 02      BCC $916D
916B   09 80      ORA #$80
916D   95 A8      STA $A8,X
916F   29 3F      AND #$3F
9171   A8         TAY
9172   A9 FF      LDA #$FF
9174   99 D1 00   STA $00D1,Y
9177   99 D8 00   STA $00D8,Y
917A   99 65 02   STA $0265,Y
917D   C6 40      DEC $40
917F   30 1C      BMI $919D
9181   20 04 92   JSR $9204
9184   10 08      BPL $918E
9186   20 CE 91   JSR $91CE
9189   A9 70      LDA #$70
918B   4C 7C 80   JMP $807C
918E   99 D1 00   STA $00D1,Y
9191   C6 40      DEC $40
9193   30 08      BMI $919D
9195   20 04 92   JSR $9204
9198   30 EC      BMI $9186
919A   99 D8 00   STA $00D8,Y
919D   60         RTS

; Freigeben einer Sekundäradresse außer des Kommandokanals; Puffer freigeben

919E   A5 52      LDA $52
91A0   C9 0F      CMP #$0F
91A2   D0 01      BNE $91A5
91A4   60         RTS
91A5   A6 52      LDX $52
91A7   B5 A8      LDA $A8,X
91A9   C9 FF      CMP #$FF
91AB   F0 20      BEQ $91CD
91AD   29 3F      AND #$3F
91AF   85 50      STA $50
91B1   A9 FF      LDA #$FF
91B3   95 A8      STA $A8,X
91B5   A6 50      LDX $50
91B7   A9 00      LDA #$00
91B9   9D 34 02   STA $0234,X
91BC   20 CE 91   JSR $91CE
91BF   A6 50      LDX $50
91C1   A9 01      LDA #$01
91C3   CA         DEX
91C4   30 03      BMI $91C9
91C6   0A         ASL
91C7   D0 FA      BNE $91C3
91C9   05 70      ORA $70
91CB   85 70      STA $70
91CD   60         RTS

; Puffer und dessen Kanalzuordnung freigeben

91CE   A6 50      LDX $50
91D0   B5 D1      LDA $D1,X
91D2   C9 FF      CMP #$FF
91D4   F0 09      BEQ $91DF
91D6   48         PHA
91D7   A9 FF      LDA #$FF
91D9   95 D1      STA $D1,X
91DB   68         PLA
91DC   20 52 92   JSR $9252
91DF   A6 50      LDX $50
91E1   B5 D8      LDA $D8,X
91E3   C9 FF      CMP #$FF
91E5   F0 09      BEQ $91F0
91E7   48         PHA
91E8   A9 FF      LDA #$FF
91EA   95 D8      STA $D8,X
91EC   68         PLA
91ED   20 52 92   JSR $9252
91F0   A6 50      LDX $50
91F2   BD 65 02   LDA $0265,X
91F5   C9 FF      CMP #$FF
91F7   F0 0A      BEQ $9203
91F9   48         PHA
91FA   A9 FF      LDA #$FF
91FC   9D 65 02   STA $0265,X
91FF   68         PLA
9200   4C 52 92   JMP $9252
9203   60         RTS

; Suchen eines freien oder inaktiven Puffers

9204   98         TYA
9205   48         PHA
9206   20 28 92   JSR $9228
9209   10 06      BPL $9211
920B   20 91 92   JSR $9291
920E   AA         TAX
920F   30 13      BMI $9224
9211   B5 02      LDA $02,X
9213   30 FC      BMI $9211
9215   A9 00      LDA #$00
9217   95 02      STA $02,X
9219   9D 72 02   STA $0272,X
921C   8A         TXA
921D   0A         ASL
921E   A8         TAY
921F   A9 02      LDA #$02
9221   99 BB 00   STA $00BB,Y
9224   68         PLA
9225   A8         TAY
9226   8A         TXA
9227   60         RTS

; Suchen und belegen eines freien Puffers

9228   A2 07      LDX #$07
922A   A5 6D      LDA $6D
922C   3D EA B5   AND $B5EA,X
922F   F0 04      BEQ $9235
9231   CA         DEX
9232   10 F6      BPL $922A
9234   60         RTS
9235   A5 6D      LDA $6D
9237   5D EA B5   EOR $B5EA,X
923A   85 6D      STA $6D
923C   8A         TXA
923D   60         RTS

; einen inaktiven Puffer eines Kanals freigeben

923E   A6 50      LDX $50
9240   B5 D1      LDA $D1,X
9242   30 04      BMI $9248
9244   B5 D8      LDA $D8,X
9246   10 19      BPL $9261
9248   C9 FF      CMP #$FF
924A   F0 15      BEQ $9261
924C   48         PHA
924D   A9 FF      LDA #$FF
924F   95 D1      STA $D1,X
9251   68         PLA

; Puffer freigeben

9252   29 0F      AND #$0F
9254   A8         TAY
9255   C8         INY
9256   A2 08      LDX #$08
9258   66 6D      ROR $6D
925A   88         DEY
925B   D0 01      BNE $925E
925D   18         CLC
925E   CA         DEX
925F   10 F7      BPL $9258
9261   60         RTS

; Kanäle der Sekundäradressen 1-14 freigeben

9262   A9 0E      LDA #$0E
9264   85 52      STA $52
9266   20 9E 91   JSR $919E
9269   C6 52      DEC $52
926B   D0 F9      BNE $9266
926D   60         RTS

; Die Sekundäradressen 0-14 des Laufwerks 0 freigeben

926E   A9 0E      LDA #$0E
9270   85 52      STA $52
9272   A6 52      LDX $52
9274   B5 A8      LDA $A8,X
9276   C9 FF      CMP #$FF
9278   F0 12      BEQ $928C
927A   29 3F      AND #$3F
927C   85 50      STA $50
927E   20 11 9F   JSR $9F11
9281   AA         TAX
9282   BD 72 02   LDA $0272,X
9285   29 01      AND #$01
9287   D0 03      BNE $928C
9289   20 9E 91   JSR $919E
928C   C6 52      DEC $52
928E   10 E2      BPL $9272
9290   60         RTS

; Belegen eines inaktiven Puffers

9291   A5 40      LDA $40
9293   48         PHA
9294   A0 00      LDY #$00
9296   B6 DF      LDX $DF,Y
9298   B5 D1      LDA $D1,X
929A   10 04      BPL $92A0
929C   C9 FF      CMP #$FF
929E   D0 16      BNE $92B6
92A0   8A         TXA
92A1   18         CLC
92A2   69 08      ADC #$08
92A4   AA         TAX
92A5   B5 D1      LDA $D1,X
92A7   10 04      BPL $92AD
92A9   C9 FF      CMP #$FF
92AB   D0 09      BNE $92B6
92AD   C8         INY
92AE   C0 06      CPY #$06
92B0   90 E4      BCC $9296
92B2   A2 FF      LDX #$FF
92B4   D0 20      BNE $92D6
92B6   86 40      STX $40
92B8   29 3F      AND #$3F
92BA   AA         TAX
92BB   B5 02      LDA $02,X
92BD   30 FC      BMI $92BB
92BF   C9 02      CMP #$02
92C1   90 0C      BCC $92CF
92C3   C9 0F      CMP #$0F
92C5   F0 08      BEQ $92CF
92C7   A6 40      LDX $40
92C9   E0 08      CPX #$08
92CB   90 D3      BCC $92A0
92CD   B0 DE      BCS $92AD
92CF   A4 40      LDY $40
92D1   A9 FF      LDA #$FF
92D3   99 D1 00   STA $00D1,Y
92D6   68         PLA
92D7   85 40      STA $40
92D9   8A         TXA
92DA   60         RTS

; Freien Kanal suchen

92DB   A0 00      LDY #$00
92DD   A9 01      LDA #$01
92DF   24 70      BIT $70
92E1   D0 09      BNE $92EC
92E3   C8         INY
92E4   0A         ASL
92E5   D0 F8      BNE $92DF
92E7   A9 70      LDA #$70
92E9   4C 7C 80   JMP $807C
92EC   49 FF      EOR #$FF
92EE   25 70      AND $70
92F0   85 70      STA $70
92F2   98         TYA
92F3   60         RTS

; Byte für beliebige Sekundäradresse holen

92F4   20 27 90   JSR $9027
92F7   20 F6 81   JSR $81F6
92FA   20 03 93   JSR $9303
92FD   A6 50      LDX $50
92FF   BD 3B 02   LDA $023B,X
9302   60         RTS

; Byte aus beliebigem Kanal holen

9303   A6 50      LDX $50
9305   20 5F 90   JSR $905F
9308   D0 03      BNE $930D
930A   4C A6 A0   JMP $A0A6
930D   A5 52      LDA $52
930F   C9 0F      CMP #$0F
9311   F0 5D      BEQ $9370
9313   BD 34 02   LDA $0234,X
9316   29 08      AND #$08
9318   D0 15      BNE $932F
931A   20 5F 90   JSR $905F
931D   C9 07      CMP #$07
931F   D0 08      BNE $9329
9321   A9 89      LDA #$89
9323   9D 34 02   STA $0234,X
9326   4C 3A 93   JMP $933A
9329   A9 00      LDA #$00
932B   9D 34 02   STA $0234,X
932E   60         RTS
932F   A5 52      LDA $52
9331   F0 32      BEQ $9365
9333   20 5F 90   JSR $905F
9336   C9 04      CMP #$04
9338   90 22      BCC $935C
933A   20 69 90   JSR $9069
933D   B5 BB      LDA $BB,X
933F   D9 42 02   CMP $0242,Y
9342   D0 04      BNE $9348
9344   A9 00      LDA #$00
9346   95 BB      STA $BB,X
9348   F6 BB      INC $BB,X
934A   A1 BB      LDA ($BB,X)
934C   99 3B 02   STA $023B,Y
934F   B5 BB      LDA $BB,X
9351   D9 42 02   CMP $0242,Y
9354   D0 05      BNE $935B
9356   A9 81      LDA #$81
9358   99 34 02   STA $0234,Y
935B   60         RTS
935C   20 9B 90   JSR $909B
935F   A6 50      LDX $50
9361   9D 3B 02   STA $023B,X
9364   60         RTS
9365   AD 6E 02   LDA $026E
9368   F0 F2      BEQ $935C
936A   20 45 B2   JSR $B245
936D   4C 5F 93   JMP $935F

; Fehlerkanal auslesen bzw. M-R-Befehl

9370   20 42 94   JSR $9442
9373   C9 CF      CMP #$CF
9375   D0 18      BNE $938F
9377   A5 65      LDA $65
9379   C9 02      CMP #$02
937B   D0 12      BNE $938F
937D   A9 0D      LDA #$0D
937F   85 54      STA $54
9381   20 E5 81   JSR $81E5
9384   A9 00      LDA #$00
9386   20 67 A8   JSR $A867
9389   C6 CF      DEC $CF
938B   A9 80      LDA #$80
938D   D0 12      BNE $93A1
938F   20 71 90   JSR $9071
9392   85 54      STA $54
9394   D0 09      BNE $939F
9396   A9 CF      LDA #$CF
9398   20 22 94   JSR $9422
939B   A9 02      LDA #$02
939D   95 BC      STA $BC,X
939F   A9 88      LDA #$88
93A1   8D 3A 02   STA $023A
93A4   A5 54      LDA $54
93A6   8D 41 02   STA $0241
93A9   60         RTS

; Lesen des nächsten Blocks

93AA   20 11 9F   JSR $9F11
93AD   0A         ASL
93AE   AA         TAX
93AF   A9 00      LDA #$00
93B1   95 BB      STA $BB,X
93B3   A1 BB      LDA ($BB,X)
93B5   F0 05      BEQ $93BC
93B7   D6 BB      DEC $BB,X
93B9   4C 9B 90   JMP $909B
93BC   60         RTS

; Lesen/Schreiben des aktuellen Puffers

93BD   A9 80      LDA #$80
93BF   D0 02      BNE $93C3
93C1   A9 90      LDA #$90
93C3   85 28      STA $28
93C5   A5 6C      LDA $6C
93C7   20 88 95   JSR $9588
93CA   A6 6C      LDX $6C
93CC   4C E8 94   JMP $94E8

; Datei auf internem Lesekanal öffnen

93CF   A9 01      LDA #$01
93D1   8D 2D 02   STA $022D
93D4   A9 11      LDA #$11
93D6   85 52      STA $52
93D8   20 0D 9B   JSR $9B0D
93DB   A9 02      LDA #$02
93DD   4C 22 94   JMP $9422

; Datei auf internem Schreibkanal öffnen

93E0   A9 12      LDA #$12
93E2   85 52      STA $52
93E4   4C C3 9B   JMP $9BC3

; Neuen Block an das Verzeichnis anhängen

93E7   20 79 9D   JSR $9D79
93EA   A9 01      LDA #$01
93EC   85 40      STA $40
93EE   A5 2E      LDA $2E
93F0   48         PHA
93F1   A9 01      LDA #$01
93F3   85 2E      STA $2E
93F5   20 75 B6   JSR $B675
93F8   68         PLA
93F9   85 2E      STA $2E
93FB   A9 00      LDA #$00
93FD   20 22 94   JSR $9422
9400   A5 4D      LDA $4D
9402   20 B1 8E   JSR $8EB1
9405   A5 4E      LDA $4E
9407   20 B1 8E   JSR $8EB1
940A   20 02 90   JSR $9002
940D   20 ED 94   JSR $94ED
9410   A9 00      LDA #$00
9412   20 22 94   JSR $9422
9415   20 B1 8E   JSR $8EB1
9418   D0 FB      BNE $9415
941A   20 B1 8E   JSR $8EB1
941D   A9 FF      LDA #$FF
941F   4C B1 8E   JMP $8EB1

; Pufferzeiger auf bestimmten Wert setzen

9422   85 40      STA $40
9424   20 11 9F   JSR $9F11
9427   0A         ASL
9428   AA         TAX
9429   B5 BC      LDA $BC,X
942B   85 65      STA $65
942D   A5 40      LDA $40
942F   95 BB      STA $BB,X
9431   85 64      STA $64
9433   60         RTS

; interne Schreib-/Lesekanäle freigeben

9434   A9 11      LDA #$11
9436   85 52      STA $52
9438   20 9E 91   JSR $919E
943B   A9 12      LDA #$12
943D   85 52      STA $52
943F   4C 9E 91   JMP $919E
9442   20 11 9F   JSR $9F11
9445   0A         ASL
9446   AA         TAX
9447   B5 BC      LDA $BC,X
9449   85 65      STA $65
944B   B5 BB      LDA $BB,X
944D   85 64      STA $64
944F   60         RTS

; Holt Byte aus aktuellem Puffer

9450   85 42      STA $42
9452   20 11 9F   JSR $9F11
9455   AA         TAX
9456   BD F1 01   LDA $01F1,X
9459   85 43      STA $43
945B   A0 00      LDY #$00
945D   B1 42      LDA ($42),Y
945F   60         RTS

; Prüft auf Diskettenwechsel

9460   A9 01      LDA #$01
9462   24 25      BIT $25
9464   F0 0A      BEQ $9470
9466   49 01      EOR #$01
9468   85 25      STA $25
946A   20 CF B0   JSR $B0CF
946D   4C B3 B0   JMP $B0B3
9470   60         RTS

; Spur und Sektor auf Gültigkeit prüfen

9471   A5 28      LDA $28
9473   48         PHA
9474   86 6C      STX $6C
9476   2C A8 02   BIT $02A8
9479   70 58      BVS $94D3
947B   8A         TXA
947C   0A         ASL
947D   AA         TAX
947E   B5 0C      LDA $0C,X
9480   85 28      STA $28
9482   B5 0B      LDA $0B,X
9484   F0 1A      BEQ $94A0
9486   CD 2C 02   CMP $022C
9489   B0 15      BCS $94A0
948B   68         PLA
948C   48         PHA
948D   C9 90      CMP #$90
948F   D0 42      BNE $94D3
9491   A5 6F      LDA $6F
9493   CD EB 01   CMP $01EB
9496   D0 33      BNE $94CB
9498   A5 75      LDA $75
949A   C5 28      CMP $28
949C   F0 02      BEQ $94A0
949E   B0 33      BCS $94D3
94A0   20 A8 94   JSR $94A8
94A3   A9 66      LDA #$66
94A5   4C 3F FF   JMP $FF3F

; Spur und Sektor aus Jobpuffer holen und als aktuell merken

94A8   A5 6C      LDA $6C
94AA   0A         ASL
94AB   AA         TAX
94AC   B5 0B      LDA $0B,X
94AE   85 4D      STA $4D
94B0   B5 0C      LDA $0C,X
94B2   85 4E      STA $4E
94B4   60         RTS

; Auf gültigen Block prüfen

94B5   A5 4D      LDA $4D
94B7   F0 EA      BEQ $94A3
94B9   CD 2C 02   CMP $022C
94BC   B0 E5      BCS $94A3
94BE   C5 90      CMP $90
94C0   90 E1      BCC $94A3
94C2   A5 75      LDA $75
94C4   C5 4E      CMP $4E
94C6   F0 DB      BEQ $94A3
94C8   90 D9      BCC $94A3
94CA   60         RTS

; Meldung für falsches Formatkennzeichen ausgeben

94CB   20 A8 94   JSR $94A8
94CE   A9 73      LDA #$73
94D0   4C 3F FF   JMP $FF3F

; Job setzen und Controller aufrufen

94D3   A6 6C      LDX $6C
94D5   68         PLA
94D6   85 28      STA $28
94D8   9D 72 02   STA $0272,X
94DB   4C 9D 95   JMP $959D

; Schreib-/Lesejobs prüfen und Durchführung abwarten

94DE   A9 80      LDA #$80
94E0   D0 02      BNE $94E4
94E2   A9 90      LDA #$90
94E4   A6 6C      LDX $6C
94E6   85 28      STA $28
94E8   A5 28      LDA $28
94EA   20 73 94   JSR $9473
94ED   20 F8 94   JSR $94F8
94F0   48         PHA
94F1   A9 00      LDA #$00
94F3   8D A8 02   STA $02A8
94F6   68         PLA
94F7   60         RTS

; Job auf fehlerfreie Durchführung prüfen

94F8   20 98 95   JSR $9598
94FB   C9 02      CMP #$02
94FD   90 19      BCC $9518
94FF   C9 08      CMP #$08
9501   F0 0C      BEQ $950F
9503   C9 0B      CMP #$0B
9505   F0 08      BEQ $950F
9507   C9 03      CMP #$03
9509   F0 04      BEQ $950F
950B   C9 0F      CMP #$0F
950D   D0 0B      BNE $951A
950F   24 81      BIT $81
9511   30 05      BMI $9518
9513   2C A8 02   BIT $02A8
9516   10 17      BPL $952F
9518   18         CLC
9519   60         RTS
951A   98         TYA
951B   48         PHA
951C   20 64 95   JSR $9564
951F   C9 02      CMP #$02
9521   90 37      BCC $955A
9523   24 30      BIT $30
9525   10 12      BPL $9539
9527   68         PLA
9528   C9 90      CMP #$90
952A   D0 03      BNE $952F
952C   9D 72 02   STA $0272,X
952F   A9 00      LDA #$00
9531   8D A8 02   STA $02A8
9534   B5 02      LDA $02,X
9536   20 2D FF   JSR $FF2D
9539   24 81      BIT $81
953B   30 21      BMI $955E
953D   2C A8 02   BIT $02A8
9540   30 1C      BMI $955E
9542   48         PHA
9543   A9 C0      LDA #$C0
9545   20 9D 95   JSR $959D
9548   20 64 95   JSR $9564
954B   C9 02      CMP #$02
954D   B0 D8      BCS $9527
954F   68         PLA
9550   C9 90      CMP #$90
9552   D0 0A      BNE $955E
9554   9D 72 02   STA $0272,X
9557   20 64 95   JSR $9564
955A   C9 02      CMP #$02
955C   B0 D1      BCS $952F
955E   68         PLA
955F   A8         TAY
9560   B5 02      LDA $02,X
9562   18         CLC
9563   60         RTS
9564   A5 30      LDA $30
9566   29 3F      AND #$3F
9568   A8         TAY
9569   A5 79      LDA $79
956B   09 20      ORA #$20
956D   85 79      STA $79
956F   BD 72 02   LDA $0272,X
9572   20 9D 95   JSR $959D
9575   C9 02      CMP #$02
9577   90 03      BCC $957C
9579   88         DEY
957A   D0 ED      BNE $9569
957C   48         PHA
957D   A5 79      LDA $79
957F   29 DF      AND #$DF
9581   85 79      STA $79
9583   68         PLA
9584   60         RTS

; Spur und Sektor übergeben

9585   20 11 9F   JSR $9F11
9588   0A         ASL
9589   A8         TAY
958A   A5 4D      LDA $4D
958C   99 0B 00   STA $000B,Y
958F   A5 4E      LDA $4E
9591   99 0C 00   STA $000C,Y
9594   A9 00      LDA #$00
9596   AA         TAX
9597   60         RTS

; Aufruf des Controllers

9598   08         PHP
9599   58         CLI
959A   4C A1 95   JMP $95A1
959D   08         PHP
959E   58         CLI
959F   95 02      STA $02,X
95A1   00         BRK
95A2   EA         NOP
95A3   B5 02      LDA $02,X
95A5   30 FC      BMI $95A3
95A7   28         PLP
95A8   B5 02      LDA $02,X
95AA   60         RTS

; Neue Datei ins Verzeichnis eintragen

95AB   A5 52      LDA $52
95AD   48         PHA
95AE   A5 50      LDA $50
95B0   48         PHA
95B1   A5 4E      LDA $4E
95B3   48         PHA
95B4   A5 4D      LDA $4D
95B6   48         PHA
95B7   A9 11      LDA #$11
95B9   85 52      STA $52
95BB   20 79 9D   JSR $9D79
95BE   AD 2D 02   LDA $022D
95C1   48         PHA
95C2   A6 6C      LDX $6C
95C4   A5 EF      LDA $EF
95C6   5D 72 02   EOR $0272,X
95C9   4A         LSR
95CA   90 0B      BCC $95D7
95CC   A2 01      LDX #$01
95CE   86 73      STX $73
95D0   20 24 84   JSR $8424
95D3   F0 20      BEQ $95F5
95D5   D0 2D      BNE $9604
95D7   A5 72      LDA $72
95D9   F0 11      BEQ $95EC
95DB   C5 4E      CMP $4E
95DD   F0 25      BEQ $9604
95DF   85 4E      STA $4E
95E1   20 BD 93   JSR $93BD
95E4   4C 04 96   JMP $9604
95E7   A9 72      LDA #$72
95E9   20 7C 80   JSR $807C
95EC   A9 01      LDA #$01
95EE   85 73      STA $73
95F0   20 89 84   JSR $8489
95F3   D0 0F      BNE $9604
95F5   20 E7 93   JSR $93E7
95F8   A5 4E      LDA $4E
95FA   C9 03      CMP #$03
95FC   90 E9      BCC $95E7
95FE   85 72      STA $72
9600   A9 02      LDA #$02
9602   85 73      STA $73
9604   A5 73      LDA $73
9606   20 22 94   JSR $9422
9609   68         PLA
960A   8D 2D 02   STA $022D
960D   C9 04      CMP #$04
960F   D0 02      BNE $9613
9611   09 80      ORA #$80
9613   20 B1 8E   JSR $8EB1
9616   68         PLA
9617   8D 97 02   STA $0297
961A   20 B1 8E   JSR $8EB1
961D   68         PLA
961E   8D 9C 02   STA $029C
9621   20 B1 8E   JSR $8EB1
9624   20 11 9F   JSR $9F11
9627   A8         TAY
9628   AD 91 02   LDA $0291
962B   AA         TAX
962C   A9 10      LDA #$10
962E   20 EE 84   JSR $84EE
9631   A0 10      LDY #$10
9633   A9 00      LDA #$00
9635   91 64      STA ($64),Y
9637   C8         INY
9638   C0 1B      CPY #$1B
963A   90 F9      BCC $9635
963C   AD 2D 02   LDA $022D
963F   C9 04      CMP #$04
9641   D0 13      BNE $9656
9643   A0 10      LDY #$10
9645   AD 70 02   LDA $0270
9648   91 64      STA ($64),Y
964A   C8         INY
964B   AD 71 02   LDA $0271
964E   91 64      STA ($64),Y
9650   C8         INY
9651   AD 6F 02   LDA $026F
9654   91 64      STA ($64),Y
9656   20 C1 93   JSR $93C1
9659   68         PLA
965A   85 50      STA $50
965C   AA         TAX
965D   68         PLA
965E   85 52      STA $52
9660   A5 72      LDA $72
9662   85 E5      STA $E5
9664   9D 7D 02   STA $027D,X
9667   A5 73      LDA $73
9669   85 EA      STA $EA
966B   9D 84 02   STA $0284,X
966E   AD 2D 02   LDA $022D
9671   85 F4      STA $F4
9673   A9 00      LDA #$00
9675   85 EF      STA $EF
9677   60         RTS

; Datei mit Sekundäradresse 0-14 öffnen

9678   A5 52      LDA $52
967A   85 7A      STA $7A
967C   20 65 81   JSR $8165
967F   8E 2A 02   STX $022A
9682   AE 00 02   LDX $0200
9685   A5 7A      LDA $7A
9687   D0 27      BNE $96B0
9689   E0 2A      CPX #$2A
968B   D0 23      BNE $96B0
968D   A5 4C      LDA $4C
968F   F0 45      BEQ $96D6
9691   85 4D      STA $4D
9693   A9 00      LDA #$00
9695   85 EF      STA $EF
9697   A9 02      LDA #$02
9699   85 F4      STA $F4
969B   AD 8B 02   LDA $028B
969E   85 4E      STA $4E
96A0   20 F6 81   JSR $81F6
96A3   20 0D 9B   JSR $9B0D
96A6   A9 04      LDA #$04
96A8   A6 50      LDX $50
96AA   99 F9 00   STA $00F9,Y
96AD   4C 4C 80   JMP $804C
96B0   E0 24      CPX #$24
96B2   D0 1B      BNE $96CF
96B4   A5 7A      LDA $7A
96B6   D0 03      BNE $96BB
96B8   4C F7 98   JMP $98F7
96BB   20 85 80   JSR $8085
96BE   AD 2B 02   LDA $022B
96C1   85 4D      STA $4D
96C3   A9 00      LDA #$00
96C5   85 4E      STA $4E
96C7   20 0D 9B   JSR $9B0D
96CA   A9 02      LDA #$02
96CC   4C A8 96   JMP $96A8
96CF   E0 23      CPX #$23
96D1   D0 0B      BNE $96DE
96D3   4C E4 89   JMP $89E4
96D6   A9 02      LDA #$02
96D8   8D 33 02   STA $0233
96DB   20 03 8F   JSR $8F03
96DE   20 99 80   JSR $8099
96E1   D0 04      BNE $96E7
96E3   A2 00      LDX #$00
96E5   F0 0C      BEQ $96F3
96E7   8A         TXA
96E8   F0 05      BEQ $96EF
96EA   A9 30      LDA #$30
96EC   4C 7C 80   JMP $807C
96EF   88         DEY
96F0   F0 01      BEQ $96F3
96F2   88         DEY
96F3   8C 91 02   STY $0291
96F6   A9 8D      LDA #$8D
96F8   20 1C 81   JSR $811C
96FB   E8         INX
96FC   8E 2F 02   STX $022F
96FF   20 FD 81   JSR $81FD
9702   20 A2 82   JSR $82A2
9705   20 ED 82   JSR $82ED
9708   A2 00      LDX #$00
970A   8E 6F 02   STX $026F
970D   8E A7 02   STX $02A7
9710   8E 2D 02   STX $022D
9713   E8         INX
9714   EC 2E 02   CPX $022E
9717   B0 10      BCS $9729
9719   20 AB 98   JSR $98AB
971C   E8         INX
971D   EC 2E 02   CPX $022E
9720   B0 07      BCS $9729
9722   C0 04      CPY #$04
9724   F0 38      BEQ $975E
9726   20 AB 98   JSR $98AB
9729   A6 7A      LDX $7A
972B   86 52      STX $52
972D   E0 02      CPX #$02
972F   B0 0D      BCS $973E
9731   8E A7 02   STX $02A7
9734   AD 2D 02   LDA $022D
9737   D0 1B      BNE $9754
9739   A9 02      LDA #$02
973B   8D 2D 02   STA $022D
973E   AD 2D 02   LDA $022D
9741   D0 11      BNE $9754
9743   A5 F4      LDA $F4
9745   29 07      AND #$07
9747   8D 2D 02   STA $022D
974A   AD 97 02   LDA $0297
974D   D0 05      BNE $9754
974F   A9 01      LDA #$01
9751   8D 2D 02   STA $022D
9754   AD A7 02   LDA $02A7
9757   C9 01      CMP #$01
9759   F0 18      BEQ $9773
975B   4C ED 97   JMP $97ED
975E   BC 91 02   LDY $0291,X
9761   B9 00 02   LDA $0200,Y
9764   8D 6F 02   STA $026F
9767   AD 97 02   LDA $0297
976A   D0 BD      BNE $9729
976C   A9 01      LDA #$01
976E   8D A7 02   STA $02A7
9771   D0 B6      BNE $9729

; Datei zum Schreiben öffnen

9773   A5 F4      LDA $F4
9775   29 80      AND #$80
9777   AA         TAX
9778   D0 14      BNE $978E
977A   A9 20      LDA #$20
977C   24 F4      BIT $F4
977E   F0 06      BEQ $9786
9780   20 3B 87   JSR $873B
9783   4C 90 98   JMP $9890
9786   AD 97 02   LDA $0297
9789   D0 03      BNE $978E
978B   4C 90 98   JMP $9890
978E   AD 00 02   LDA $0200
9791   C9 40      CMP #$40
9793   F0 0D      BEQ $97A2
9795   8A         TXA
9796   D0 05      BNE $979D
9798   A9 63      LDA #$63
979A   4C 7C 80   JMP $807C
979D   A9 33      LDA #$33
979F   4C 7C 80   JMP $807C

; Datei zum Überschreiben öffnen

97A2   A5 F4      LDA $F4
97A4   29 07      AND #$07
97A6   CD 2D 02   CMP $022D
97A9   D0 67      BNE $9812
97AB   C9 04      CMP #$04
97AD   F0 63      BEQ $9812
97AF   20 C3 9B   JSR $9BC3
97B2   A5 50      LDA $50
97B4   8D 8C 02   STA $028C
97B7   A9 11      LDA #$11
97B9   85 52      STA $52
97BB   20 27 90   JSR $9027
97BE   AD 32 02   LDA $0232
97C1   20 22 94   JSR $9422
97C4   A0 00      LDY #$00
97C6   B1 64      LDA ($64),Y
97C8   09 20      ORA #$20
97CA   91 64      STA ($64),Y
97CC   A0 1A      LDY #$1A
97CE   A5 4D      LDA $4D
97D0   91 64      STA ($64),Y
97D2   C8         INY
97D3   A5 4E      LDA $4E
97D5   91 64      STA ($64),Y
97D7   AE 8C 02   LDX $028C
97DA   A5 E5      LDA $E5
97DC   9D 7D 02   STA $027D,X
97DF   A5 EA      LDA $EA
97E1   9D 84 02   STA $0284,X
97E4   20 79 9D   JSR $9D79
97E7   20 C1 93   JSR $93C1
97EA   4C 96 98   JMP $9896

; Zugriffsart feststellen und Datei zum Lesen öffnen

97ED   AD 97 02   LDA $0297
97F0   D0 05      BNE $97F7
97F2   A9 62      LDA #$62
97F4   4C 7C 80   JMP $807C
97F7   AD A7 02   LDA $02A7
97FA   C9 03      CMP #$03
97FC   F0 0B      BEQ $9809
97FE   A9 20      LDA #$20
9800   24 F4      BIT $F4
9802   F0 05      BEQ $9809
9804   A9 60      LDA #$60
9806   4C 7C 80   JMP $807C
9809   A5 F4      LDA $F4
980B   29 07      AND #$07
980D   CD 2D 02   CMP $022D
9810   F0 05      BEQ $9817
9812   A9 64      LDA #$64
9814   4C 7C 80   JMP $807C
9817   A0 00      LDY #$00
9819   8C 30 02   STY $0230
981C   AE A7 02   LDX $02A7
981F   E0 02      CPX #$02
9821   D0 1A      BNE $983D
9823   C9 04      CMP #$04
9825   F0 EB      BEQ $9812
9827   B1 64      LDA ($64),Y
9829   29 4F      AND #$4F
982B   91 64      STA ($64),Y
982D   A5 52      LDA $52
982F   48         PHA
9830   A9 11      LDA #$11
9832   85 52      STA $52
9834   20 79 9D   JSR $9D79
9837   20 C1 93   JSR $93C1
983A   68         PLA
983B   85 52      STA $52
983D   20 4D 98   JSR $984D
9840   AD A7 02   LDA $02A7
9843   C9 02      CMP #$02
9845   D0 4F      BNE $9896
9847   20 CC 98   JSR $98CC
984A   4C 4C 80   JMP $804C

; Datei zum Lesen öffnen

984D   A0 13      LDY #$13
984F   B1 64      LDA ($64),Y
9851   8D 70 02   STA $0270
9854   C8         INY
9855   B1 64      LDA ($64),Y
9857   8D 71 02   STA $0271
985A   C8         INY
985B   B1 64      LDA ($64),Y
985D   AE 6F 02   LDX $026F
9860   8D 6F 02   STA $026F
9863   8A         TXA
9864   F0 0A      BEQ $9870
9866   CD 6F 02   CMP $026F
9869   F0 05      BEQ $9870
986B   A9 50      LDA #$50
986D   20 7C 80   JSR $807C
9870   AE 30 02   LDX $0230
9873   BD 97 02   LDA $0297,X
9876   85 4D      STA $4D
9878   BD 9C 02   LDA $029C,X
987B   85 4E      STA $4E
987D   20 0D 9B   JSR $9B0D
9880   A4 50      LDY $50
9882   AE 30 02   LDX $0230
9885   B5 E5      LDA $E5,X
9887   99 7D 02   STA $027D,Y
988A   B5 EA      LDA $EA,X
988C   99 84 02   STA $0284,Y
988F   60         RTS

; neue Datei anlegen und zum Schreiben öffnen

9890   20 C3 9B   JSR $9BC3
9893   20 AB 95   JSR $95AB

; Spur und Sektor einer Datei holen und für 'LOAD "*",8' merken

9896   A5 52      LDA $52
9898   C9 02      CMP #$02
989A   B0 0C      BCS $98A8
989C   20 7C 9D   JSR $9D7C
989F   A5 4D      LDA $4D
98A1   85 4C      STA $4C
98A3   A5 4E      LDA $4E
98A5   8D 8B 02   STA $028B
98A8   4C 50 80   JMP $8050

; Datei-Modus oder -Typ aus Kommandozeile holen

98AB   BC 91 02   LDY $0291,X
98AE   B9 00 02   LDA $0200,Y
98B1   A0 04      LDY #$04
98B3   88         DEY
98B4   30 08      BMI $98BE
98B6   D9 A1 DB   CMP $DBA1,Y
98B9   D0 F8      BNE $98B3
98BB   8C A7 02   STY $02A7
98BE   A0 06      LDY #$06
98C0   88         DEY
98C1   30 08      BMI $98CB
98C3   D9 A5 DB   CMP $DBA5,Y
98C6   D0 F8      BNE $98C0
98C8   8C 2D 02   STY $022D
98CB   60         RTS

; Dateiende suchen und auf Schreiben umschalten (APPEND)

98CC   20 7A 88   JSR $887A
98CF   A9 80      LDA #$80
98D1   20 E4 9C   JSR $9CE4
98D4   F0 F6      BEQ $98CC
98D6   20 CE 9D   JSR $9DCE
98D9   A6 4E      LDX $4E
98DB   E8         INX
98DC   8A         TXA
98DD   D0 05      BNE $98E4
98DF   20 18 91   JSR $9118
98E2   A9 02      LDA #$02
98E4   20 22 94   JSR $9422
98E7   A6 50      LDX $50
98E9   A9 01      LDA #$01
98EB   9D 34 02   STA $0234,X
98EE   A9 80      LDA #$80
98F0   05 50      ORA $50
98F2   A6 52      LDX $52
98F4   95 A8      STA $A8,X
98F6   60         RTS

; Verzeichnis öffnen

98F7   A9 0C      LDA #$0C
98F9   8D 2A 02   STA $022A
98FC   A9 00      LDA #$00
98FE   A6 29      LDX $29
9900   CA         DEX
9901   F0 0B      BEQ $990E
9903   CA         DEX
9904   D0 21      BNE $9927
9906   AD 01 02   LDA $0201
9909   20 95 82   JSR $8295
990C   30 19      BMI $9927
990E   85 EF      STA $EF
9910   EE 2E 02   INC $022E
9913   EE 2F 02   INC $022F
9916   EE 91 02   INC $0291
9919   A9 80      LDA #$80
991B   85 F4      STA $F4
991D   A9 2A      LDA #$2A
991F   8D 00 02   STA $0200
9922   8D 01 02   STA $0201
9925   D0 18      BNE $993F
9927   20 99 80   JSR $8099
992A   D0 05      BNE $9931
992C   20 AF 81   JSR $81AF
992F   A0 03      LDY #$03
9931   88         DEY
9932   88         DEY
9933   8C 91 02   STY $0291
9936   20 B4 80   JSR $80B4
9939   20 70 82   JSR $8270
993C   20 0B 82   JSR $820B
993F   20 A2 82   JSR $82A2
9942   20 27 86   JSR $8627
9945   20 ED 82   JSR $82ED
9948   20 7C B1   JSR $B17C
994B   20 71 90   JSR $9071
994E   A6 50      LDX $50
9950   9D 3B 02   STA $023B,X
9953   A9 04      LDA #$04
9955   95 F9      STA $F9,X
9957   A9 00      LDA #$00
9959   85 CD      STA $CD
995B   60         RTS

; aktuelle Sekundäradresse schließen

995C   A5 52      LDA $52
995E   D0 0B      BNE $996B
9960   A9 00      LDA #$00
9962   8D 6E 02   STA $026E
9965   20 9E 91   JSR $919E
9968   4C 34 94   JMP $9434
996B   C9 0F      CMP #$0F
996D   F0 17      BEQ $9986
996F   20 9F 99   JSR $999F
9972   A5 52      LDA $52
9974   C9 02      CMP #$02
9976   90 F0      BCC $9968
9978   AD AB 02   LDA $02AB
997B   D0 06      BNE $9983
997D   20 15 B5   JSR $B515
9980   4C 4C 80   JMP $804C
9983   4C 67 80   JMP $8067

; Alle Dateien schließen

9986   A9 0E      LDA #$0E
9988   85 52      STA $52
998A   20 9F 99   JSR $999F
998D   C6 52      DEC $52
998F   10 F9      BPL $998A
9991   AD AB 02   LDA $02AB
9994   D0 06      BNE $999C
9996   20 15 B5   JSR $B515
9999   4C 4C 80   JMP $804C
999C   4C 67 80   JMP $8067

; Datei schließen

999F   A6 52      LDX $52
99A1   B5 A8      LDA $A8,X
99A3   C9 FF      CMP #$FF
99A5   D0 01      BNE $99A8
99A7   60         RTS
99A8   29 0F      AND #$0F
99AA   85 50      STA $50
99AC   20 5F 90   JSR $905F
99AF   C9 07      CMP #$07
99B1   F0 0F      BEQ $99C2
99B3   C9 04      CMP #$04
99B5   F0 11      BEQ $99C8
99B7   20 42 90   JSR $9042
99BA   B0 09      BCS $99C5
99BC   20 2A 9A   JSR $9A2A
99BF   20 72 9A   JSR $9A72
99C2   20 15 B5   JSR $B515
99C5   4C 9E 91   JMP $919E
99C8   20 2E 9D   JSR $9D2E
99CB   20 7D 8D   JSR $8D7D
99CE   20 5C A1   JSR $A15C
99D1   A6 69      LDX $69
99D3   86 44      STX $44
99D5   20 6E A5   JSR $A56E
99D8   F0 2B      BEQ $9A05
99DA   E6 44      INC $44
99DC   A9 00      LDA #$00
99DE   85 41      STA $41
99E0   85 42      STA $42
99E2   A5 6A      LDA $6A
99E4   38         SEC
99E5   E9 0E      SBC #$0E
99E7   85 43      STA $43
99E9   20 82 9E   JSR $9E82
99EC   A6 50      LDX $50
99EE   A5 41      LDA $41
99F0   9D 49 02   STA $0249,X
99F3   A5 42      LDA $42
99F5   9D 50 02   STA $0250,X
99F8   A9 40      LDA #$40
99FA   20 E4 9C   JSR $9CE4
99FD   F0 03      BEQ $9A02
99FF   20 72 9A   JSR $9A72
9A02   4C 9E 91   JMP $919E
9A05   A5 6A      LDA $6A
9A07   38         SEC
9A08   E9 0E      SBC #$0E
9A0A   85 43      STA $43
9A0C   AD 00 01   LDA $0100
9A0F   85 58      STA $58
9A11   20 97 9E   JSR $9E97
9A14   A2 00      LDX #$00
9A16   A9 02      LDA #$02
9A18   20 CC 9E   JSR $9ECC
9A1B   A6 50      LDX $50
9A1D   A5 5B      LDA $5B
9A1F   9D 49 02   STA $0249,X
9A22   A5 5C      LDA $5C
9A24   9D 50 02   STA $0250,X
9A27   4C F8 99   JMP $99F8

; letzten Dateiblock abspeichern

9A2A   A6 50      LDX $50
9A2C   BD 49 02   LDA $0249,X
9A2F   1D 50 02   ORA $0250,X
9A32   D0 0C      BNE $9A40
9A34   20 42 94   JSR $9442
9A37   C9 02      CMP #$02
9A39   D0 05      BNE $9A40
9A3B   A9 0D      LDA #$0D
9A3D   20 B1 8E   JSR $8EB1
9A40   20 42 94   JSR $9442
9A43   C9 02      CMP #$02
9A45   D0 12      BNE $9A59
9A47   20 7D 8D   JSR $8D7D
9A4A   A6 50      LDX $50
9A4C   BD 49 02   LDA $0249,X
9A4F   D0 03      BNE $9A54
9A51   DE 50 02   DEC $0250,X
9A54   DE 49 02   DEC $0249,X
9A57   A9 00      LDA #$00
9A59   38         SEC
9A5A   E9 01      SBC #$01
9A5C   48         PHA
9A5D   A9 00      LDA #$00
9A5F   20 22 94   JSR $9422
9A62   20 B1 8E   JSR $8EB1
9A65   68         PLA
9A66   20 B1 8E   JSR $8EB1
9A69   20 02 90   JSR $9002
9A6C   20 ED 94   JSR $94ED
9A6F   4C 7D 8D   JMP $8D7D

; Eintrag im Verzeichnis nach dem Schreiben aktualisieren

9A72   A6 50      LDX $50
9A74   8E 8C 02   STX $028C
9A77   A5 52      LDA $52
9A79   48         PHA
9A7A   BD 7D 02   LDA $027D,X
9A7D   85 4E      STA $4E
9A7F   BD 84 02   LDA $0284,X
9A82   8D 32 02   STA $0232
9A85   AD 2B 02   LDA $022B
9A88   85 4D      STA $4D
9A8A   20 11 9F   JSR $9F11
9A8D   48         PHA
9A8E   85 6C      STA $6C
9A90   20 BD 93   JSR $93BD
9A93   A0 00      LDY #$00
9A95   BD F1 01   LDA $01F1,X
9A98   85 56      STA $56
9A9A   AD 32 02   LDA $0232
9A9D   85 55      STA $55
9A9F   B1 55      LDA ($55),Y
9AA1   29 20      AND #$20
9AA3   F0 43      BEQ $9AE8
9AA5   20 5F 90   JSR $905F
9AA8   C9 04      CMP #$04
9AAA   F0 44      BEQ $9AF0
9AAC   B1 55      LDA ($55),Y
9AAE   29 8F      AND #$8F
9AB0   91 55      STA ($55),Y
9AB2   C8         INY
9AB3   B1 55      LDA ($55),Y
9AB5   85 4D      STA $4D
9AB7   84 42      STY $42
9AB9   A0 1B      LDY #$1B
9ABB   B1 55      LDA ($55),Y
9ABD   48         PHA
9ABE   88         DEY
9ABF   B1 55      LDA ($55),Y
9AC1   D0 0A      BNE $9ACD
9AC3   85 4D      STA $4D
9AC5   68         PLA
9AC6   85 4E      STA $4E
9AC8   A9 67      LDA #$67
9ACA   20 3F FF   JSR $FF3F
9ACD   48         PHA
9ACE   A9 00      LDA #$00
9AD0   91 55      STA ($55),Y
9AD2   C8         INY
9AD3   91 55      STA ($55),Y
9AD5   68         PLA
9AD6   A4 42      LDY $42
9AD8   91 55      STA ($55),Y
9ADA   C8         INY
9ADB   B1 55      LDA ($55),Y
9ADD   85 4E      STA $4E
9ADF   68         PLA
9AE0   91 55      STA ($55),Y
9AE2   20 13 87   JSR $8713
9AE5   4C F0 9A   JMP $9AF0
9AE8   B1 55      LDA ($55),Y
9AEA   29 0F      AND #$0F
9AEC   09 80      ORA #$80
9AEE   91 55      STA ($55),Y
9AF0   AE 8C 02   LDX $028C
9AF3   A0 1C      LDY #$1C
9AF5   BD 49 02   LDA $0249,X
9AF8   91 55      STA ($55),Y
9AFA   C8         INY
9AFB   BD 50 02   LDA $0250,X
9AFE   91 55      STA ($55),Y
9B00   68         PLA
9B01   AA         TAX
9B02   A9 90      LDA #$90
9B04   20 E6 94   JSR $94E6
9B07   68         PLA
9B08   85 52      STA $52
9B0A   4C 42 90   JMP $9042

; Kanal zum Lesen suchen

9B0D   A9 01      LDA #$01
9B0F   20 5A 91   JSR $915A
9B12   20 9B 9B   JSR $9B9B
9B15   AD 2D 02   LDA $022D
9B18   48         PHA
9B19   0A         ASL
9B1A   95 F9      STA $F9,X
9B1C   20 D6 8F   JSR $8FD6
9B1F   A6 50      LDX $50
9B21   A5 4D      LDA $4D
9B23   D0 05      BNE $9B2A
9B25   A5 4E      LDA $4E
9B27   9D 42 02   STA $0242,X
9B2A   68         PLA
9B2B   C9 04      CMP #$04
9B2D   D0 5E      BNE $9B8D
9B2F   A4 52      LDY $52
9B31   B9 A8 00   LDA $00A8,Y
9B34   09 40      ORA #$40
9B36   99 A8 00   STA $00A8,Y
9B39   AD 6F 02   LDA $026F
9B3C   9D 5E 02   STA $025E,X
9B3F   20 04 92   JSR $9204
9B42   10 03      BPL $9B47
9B44   4C 86 91   JMP $9186
9B47   A6 50      LDX $50
9B49   9D 65 02   STA $0265,X
9B4C   48         PHA
9B4D   20 6E A5   JSR $A56E
9B50   F0 17      BEQ $9B69
9B52   68         PLA
9B53   AC 70 02   LDY $0270
9B56   84 4D      STY $4D
9B58   AC 71 02   LDY $0271
9B5B   84 4E      STY $4E
9B5D   20 88 95   JSR $9588
9B60   20 AC 9D   JSR $9DAC
9B63   20 ED 94   JSR $94ED
9B66   4C 7B 9B   JMP $9B7B
9B69   68         PLA
9B6A   AD 70 02   LDA $0270
9B6D   9D 10 01   STA $0110,X
9B70   AD 71 02   LDA $0271
9B73   9D 09 01   STA $0109,X
9B76   A9 FF      LDA #$FF
9B78   9D 02 01   STA $0102,X
9B7B   A6 50      LDX $50
9B7D   A9 02      LDA #$02
9B7F   9D 57 02   STA $0257,X
9B82   A9 00      LDA #$00
9B84   20 22 94   JSR $9422
9B87   20 E1 A0   JSR $A0E1
9B8A   4C 7C 9D   JMP $9D7C
9B8D   20 9B 90   JSR $909B
9B90   A6 50      LDX $50
9B92   9D 3B 02   STA $023B,X
9B95   A9 88      LDA #$88
9B97   9D 34 02   STA $0234,X
9B9A   60         RTS

; Pufferzeiger initialisieren

9B9B   A6 50      LDX $50
9B9D   B5 D1      LDA $D1,X
9B9F   0A         ASL
9BA0   30 06      BMI $9BA8
9BA2   A8         TAY
9BA3   A9 02      LDA #$02
9BA5   99 BB 00   STA $00BB,Y
9BA8   B5 D8      LDA $D8,X
9BAA   09 80      ORA #$80
9BAC   95 D8      STA $D8,X
9BAE   0A         ASL
9BAF   30 06      BMI $9BB7
9BB1   A8         TAY
9BB2   A9 02      LDA #$02
9BB4   99 BB 00   STA $00BB,Y
9BB7   A9 00      LDA #$00
9BB9   9D 42 02   STA $0242,X
9BBC   9D 49 02   STA $0249,X
9BBF   9D 50 02   STA $0250,X
9BC2   60         RTS

; Datei zum Schreiben öffnen

9BC3   20 ED B6   JSR $B6ED
9BC6   A9 01      LDA #$01
9BC8   20 57 91   JSR $9157
9BCB   20 85 95   JSR $9585
9BCE   20 9B 9B   JSR $9B9B
9BD1   A6 50      LDX $50
9BD3   AD 2D 02   LDA $022D
9BD6   48         PHA
9BD7   0A         ASL
9BD8   95 F9      STA $F9,X
9BDA   68         PLA
9BDB   C9 04      CMP #$04
9BDD   F0 06      BEQ $9BE5
9BDF   A9 01      LDA #$01
9BE1   9D 34 02   STA $0234,X
9BE4   60         RTS
9BE5   A4 52      LDY $52
9BE7   B9 A8 00   LDA $00A8,Y
9BEA   29 3F      AND #$3F
9BEC   09 40      ORA #$40
9BEE   99 A8 00   STA $00A8,Y
9BF1   AD 6F 02   LDA $026F
9BF4   9D 5E 02   STA $025E,X
9BF7   20 04 92   JSR $9204
9BFA   10 03      BPL $9BFF
9BFC   4C 86 91   JMP $9186
9BFF   A6 50      LDX $50
9C01   9D 65 02   STA $0265,X
9C04   20 FA 9D   JSR $9DFA
9C07   20 68 B6   JSR $B668
9C0A   A5 4D      LDA $4D
9C0C   8D 70 02   STA $0270
9C0F   A5 4E      LDA $4E
9C11   8D 71 02   STA $0271
9C14   A6 50      LDX $50
9C16   BD 65 02   LDA $0265,X
9C19   20 88 95   JSR $9588
9C1C   A9 00      LDA #$00
9C1E   20 23 9E   JSR $9E23
9C21   A9 00      LDA #$00
9C23   20 CA 9C   JSR $9CCA
9C26   A9 11      LDA #$11
9C28   20 CA 9C   JSR $9CCA
9C2B   A9 00      LDA #$00
9C2D   20 CA 9C   JSR $9CCA
9C30   AD 6F 02   LDA $026F
9C33   20 CA 9C   JSR $9CCA
9C36   A5 4D      LDA $4D
9C38   20 CA 9C   JSR $9CCA
9C3B   A5 4E      LDA $4E
9C3D   20 CA 9C   JSR $9CCA
9C40   A9 10      LDA #$10
9C42   20 23 9E   JSR $9E23
9C45   20 7C 9D   JSR $9D7C
9C48   A5 4D      LDA $4D
9C4A   20 CA 9C   JSR $9CCA
9C4D   A5 4E      LDA $4E
9C4F   20 CA 9C   JSR $9CCA
9C52   20 A6 9D   JSR $9DA6
9C55   20 ED 94   JSR $94ED
9C58   20 6E A5   JSR $A56E
9C5B   D0 03      BNE $9C60
9C5D   20 82 9C   JSR $9C82
9C60   A9 02      LDA #$02
9C62   20 22 94   JSR $9422
9C65   A6 50      LDX $50
9C67   38         SEC
9C68   A9 00      LDA #$00
9C6A   FD 5E 02   SBC $025E,X
9C6D   9D 57 02   STA $0257,X
9C70   20 98 A2   JSR $A298
9C73   20 56 9D   JSR $9D56
9C76   20 9A 9D   JSR $9D9A
9C79   20 ED 94   JSR $94ED
9C7C   20 15 B5   JSR $B515
9C7F   4C 7B 9B   JMP $9B7B
9C82   A6 50      LDX $50
9C84   BD 65 02   LDA $0265,X
9C87   20 FA 9D   JSR $9DFA
9C8A   20 23 9E   JSR $9E23
9C8D   AD 70 02   LDA $0270
9C90   20 CA 9C   JSR $9CCA
9C93   AD 71 02   LDA $0271
9C96   20 CA 9C   JSR $9CCA
9C99   A9 FE      LDA #$FE
9C9B   20 CA 9C   JSR $9CCA
9C9E   AD 70 02   LDA $0270
9CA1   20 CA 9C   JSR $9CCA
9CA4   AD 71 02   LDA $0271
9CA7   20 CA 9C   JSR $9CCA
9CAA   20 68 B6   JSR $B668
9CAD   A6 50      LDX $50
9CAF   A5 4D      LDA $4D
9CB1   9D 10 01   STA $0110,X
9CB4   8D 70 02   STA $0270
9CB7   A5 4E      LDA $4E
9CB9   9D 09 01   STA $0109,X
9CBC   8D 71 02   STA $0271
9CBF   A9 FF      LDA #$FF
9CC1   9D 02 01   STA $0102,X
9CC4   20 81 A5   JSR $A581
9CC7   4C 7C 9D   JMP $9D7C

; Byte in aktuellen Side-Sektor schreiben

9CCA   48         PHA
9CCB   A6 50      LDX $50
9CCD   BD 65 02   LDA $0265,X
9CD0   4C BD 8E   JMP $8EBD

; Dateistatus setzen/löschen

9CD3: 90 06     BCC $9CDB
9CD5: A6 50     LDX $50
9CD7: 15 F9     ORA $F9,X
9CD9: D0 06     BNE $9CE1
9CDB: A6 50     LDX $50
9CDD: 49 FF     EOR #$FF
9CDF: 35 F9     AND $F9,X
9CE1: 95 F9     STA $F9,X
9CE3: 60        RTS
9CE4: A6 50     LDX $50
9CE6: 35 F9     AND $F9,X
9CE8: 60        RTS

; Prüft Jobcode des aktuellen Puffers auf 'Schreiben'

9CE9   20 11 9F   JSR $9F11
9CEC   AA         TAX
9CED   BD 72 02   LDA $0272,X
9CF0   29 FE      AND #$FE
9CF2   C9 90      CMP #$90
9CF4   60         RTS

; prüft, ob gesuchte Datei durch Sekundäradresse angesprochen wird

9CF5   A2 00      LDX #$00
9CF7   86 42      STX $42
9CF9   B5 A8      LDA $A8,X
9CFB   C9 FF      CMP #$FF
9CFD   D0 08      BNE $9D07
9CFF   A6 42      LDX $42
9D01   E8         INX
9D02   E0 10      CPX #$10
9D04   90 F1      BCC $9CF7
9D06   60         RTS
9D07   86 42      STX $42
9D09   29 3F      AND #$3F
9D0B   A8         TAY
9D0C   B9 F9 00   LDA $00F9,Y
9D0F   29 01      AND #$01
9D11   85 41      STA $41
9D13   AE 6D 02   LDX $026D
9D16   B5 EF      LDA $EF,X
9D18   29 01      AND #$01
9D1A   C5 41      CMP $41
9D1C   D0 E1      BNE $9CFF
9D1E   B9 7D 02   LDA $027D,Y
9D21   D5 E5      CMP $E5,X
9D23   D0 DA      BNE $9CFF
9D25   B9 84 02   LDA $0284,Y
9D28   D5 EA      CMP $EA,X
9D2A   D0 D3      BNE $9CFF
9D2C   18         CLC
9D2D   60         RTS

; Puffer bei Veränderung schreiben

9D2E   20 1C 9F   JSR $9F1C
9D31   50 06      BVC $9D39
9D33   20 9A 9D   JSR $9D9A
9D36   20 ED 94   JSR $94ED
9D39   60         RTS

; Folgeblock im aktuellen Block eintragen

9D3A   20 69 9D   JSR $9D69
9D3D   A5 4D      LDA $4D
9D3F   91 64      STA ($64),Y
9D41   C8         INY
9D42   A5 4E      LDA $4E
9D44   91 64      STA ($64),Y
9D46   4C 8D A0   JMP $A08D

; Spur und Sektor des Folgeblocks holen

9D49   20 69 9D   JSR $9D69
9D4C   B1 64      LDA ($64),Y
9D4E   85 4D      STA $4D
9D50   C8         INY
9D51   B1 64      LDA ($64),Y
9D53   85 4E      STA $4E
9D55   60         RTS

; Blocklänge des letzten Datenblocks setzen

9D56   20 69 9D   JSR $9D69
9D59   A9 00      LDA #$00
9D5B   91 64      STA ($64),Y
9D5D   C8         INY
9D5E   A6 50      LDX $50
9D60   BD 57 02   LDA $0257,X
9D63   AA         TAX
9D64   CA         DEX
9D65   8A         TXA
9D66   91 64      STA ($64),Y
9D68   60         RTS

; Zeiger auf Anfang des aktiven Puffers setzen

9D69   20 11 9F   JSR $9F11
9D6C   0A         ASL
9D6D   AA         TAX
9D6E   B5 BC      LDA $BC,X
9D70   85 65      STA $65
9D72   A9 00      LDA #$00
9D74   85 64      STA $64
9D76   A0 00      LDY #$00
9D78   60         RTS

; Spur und Sektor der aktuellen Datei holen

9D79   20 27 90   JSR $9027
9D7C   20 11 9F   JSR $9F11
9D7F   85 6C      STA $6C
9D81   0A         ASL
9D82   A8         TAY
9D83   B9 0B 00   LDA $000B,Y
9D86   85 4D      STA $4D
9D88   B9 0C 00   LDA $000C,Y
9D8B   85 4E      STA $4E
9D8D   60         RTS

; Schreib-Lesejobs aufrufen

9D8E   A9 90      LDA #$90
9D90   85 28      STA $28
9D92   D0 24      BNE $9DB8
9D94   A9 80      LDA #$80
9D96   85 28      STA $28
9D98   D0 1E      BNE $9DB8
9D9A   A9 90      LDA #$90
9D9C   85 28      STA $28
9D9E   D0 24      BNE $9DC4
9DA0   A9 80      LDA #$80
9DA2   85 28      STA $28
9DA4   D0 1E      BNE $9DC4
9DA6   A9 90      LDA #$90
9DA8   85 28      STA $28
9DAA   D0 02      BNE $9DAE
9DAC   A9 80      LDA #$80
9DAE   85 28      STA $28
9DB0   A6 50      LDX $50
9DB2   BD 65 02   LDA $0265,X
9DB5   AA         TAX
9DB6   10 13      BPL $9DCB
9DB8   20 85 95   JSR $9585
9DBB   20 11 9F   JSR $9F11
9DBE   AA         TAX
9DBF   A9 00      LDA #$00
9DC1   9D 72 02   STA $0272,X
9DC4   20 9C A0   JSR $A09C
9DC7   20 11 9F   JSR $9F11
9DCA   AA         TAX
9DCB   4C 71 94   JMP $9471

; Spur und Sektor des Folgeblocks vom aktiven Kanals holen

9DCE   A9 00      LDA #$00
9DD0   20 22 94   JSR $9422
9DD3   20 71 90   JSR $9071
9DD6   85 4D      STA $4D
9DD8   20 71 90   JSR $9071
9DDB   85 4E      STA $4E
9DDD   60         RTS

; Pufferinhalte kopieren

9DDE   48         PHA
9DDF   A9 00      LDA #$00
9DE1   85 40      STA $40
9DE3   85 42      STA $42
9DE5   B9 F1 01   LDA $01F1,Y
9DE8   85 41      STA $41
9DEA   BD F1 01   LDA $01F1,X
9DED   85 43      STA $43
9DEF   68         PLA
9DF0   A8         TAY
9DF1   88         DEY
9DF2   B1 40      LDA ($40),Y
9DF4   91 42      STA ($42),Y
9DF6   88         DEY
9DF7   10 F9      BPL $9DF2
9DF9   60         RTS

; Puffer mit $00 füllen

9DFA   A8         TAY
9DFB   B9 F1 01   LDA $01F1,Y
9DFE   85 41      STA $41
9E00   A9 00      LDA #$00
9E02   85 40      STA $40
9E04   A8         TAY
9E05   91 40      STA ($40),Y
9E07   C8         INY
9E08   D0 FB      BNE $9E05
9E0A   60         RTS

; Nummer des aktuellen Side-Sektors holen

9E0B   A9 00      LDA #$00
9E0D   20 15 9E   JSR $9E15
9E10   A0 02      LDY #$02
9E12   B1 64      LDA ($64),Y
9E14   60         RTS

; Side-Sektor-Pufferzeiger auf beliebigen Wert setzen

9E15   85 64      STA $64
9E17   A6 50      LDX $50
9E19   BD 65 02   LDA $0265,X
9E1C   AA         TAX
9E1D   BD F1 01   LDA $01F1,X
9E20   85 65      STA $65
9E22   60         RTS

; Pufferzeiger des aktuellen Side-Sektors auf beliebigen Wert setzen

9E23   48         PHA
9E24   20 15 9E   JSR $9E15
9E27   48         PHA
9E28   8A         TXA
9E29   0A         ASL
9E2A   AA         TAX
9E2B   68         PLA
9E2C   95 BC      STA $BC,X
9E2E   68         PLA
9E2F   95 BB      STA $BB,X
9E31   60         RTS

; Record prüfen und Gruppe wählen

9E32   20 D3 9E   JSR $9ED3
9E35   30 0F      BMI $9E46
9E37   50 14      BVC $9E4D
9E39   A6 50      LDX $50
9E3B   BD 65 02   LDA $0265,X
9E3E   20 56 9E   JSR $9E56
9E41   20 D3 9E   JSR $9ED3
9E44   10 07      BPL $9E4D
9E46   20 5C A1   JSR $A15C
9E49   2C BF DB   BIT $DBBF
9E4C   60         RTS
9E4D   A5 6A      LDA $6A
9E4F   20 23 9E   JSR $9E23
9E52   2C BE DB   BIT $DBBE
9E55   60         RTS

; Side-Sektor lesen/schreiben

9E56   85 6C      STA $6C
9E58   A9 80      LDA #$80
9E5A   D0 04      BNE $9E60
9E5C   85 6C      STA $6C
9E5E   A9 90      LDA #$90
9E60   85 28      STA $28
9E62   B1 64      LDA ($64),Y
9E64   85 4D      STA $4D
9E66   C8         INY
9E67   B1 64      LDA ($64),Y
9E69   85 4E      STA $4E
9E6B   A5 6C      LDA $6C
9E6D   20 88 95   JSR $9588
9E70   A6 6C      LDX $6C
9E72   4C E8 94   JMP $94E8

; Pufferzeiger des Side-Sektors nach $64-$65 holen

9E75   A6 50      LDX $50
9E77   BD 65 02   LDA $0265,X
9E7A   4C 45 94   JMP $9445

; Anzahl der benötigten Blocks einer REL-Datei berechnen - alt

9E7D   A9 78      LDA #$78
9E7F   20 8D 9E   JSR $9E8D
9E82   CA         DEX
9E83   10 F8      BPL $9E7D
9E85   A5 43      LDA $43
9E87   4A         LSR
9E88   20 8D 9E   JSR $9E8D
9E8B   A5 44      LDA $44
9E8D   18         CLC
9E8E   65 41      ADC $41
9E90   85 41      STA $41
9E92   90 02      BCC $9E96
9E94   E6 42      INC $42
9E96   60         RTS

; Anzahl der benötigten Blocks einer REL-Datei berechnen - neu

9E97   20 38 8D   JSR $8D38
9E9A   20 C3 9E   JSR $9EC3
9E9D   A4 58      LDY $58
9E9F   88         DEY
9EA0   30 0A      BMI $9EAC
9EA2   A2 02      LDX #$02
9EA4   A9 D6      LDA #$D6
9EA6   20 CC 9E   JSR $9ECC
9EA9   4C 9F 9E   JMP $9E9F
9EAC   A4 44      LDY $44
9EAE   88         DEY
9EAF   30 0A      BMI $9EBB
9EB1   A2 00      LDX #$00
9EB3   A9 79      LDA #$79
9EB5   20 CC 9E   JSR $9ECC
9EB8   4C AE 9E   JMP $9EAE
9EBB   A5 43      LDA $43
9EBD   4A         LSR
9EBE   A2 00      LDX #$00
9EC0   4C CC 9E   JMP $9ECC
9EC3   A2 00      LDX #$00
9EC5   86 60      STX $60
9EC7   86 61      STX $61
9EC9   86 62      STX $62
9ECB   60         RTS
9ECC   86 61      STX $61
9ECE   85 60      STA $60
9ED0   4C 4C 8D   JMP $8D4C

; Existenz des Records feststellen

9ED3   20 6E A5   JSR $A56E
9ED6   D0 0C      BNE $9EE4
9ED8   AD 00 01   LDA $0100
9EDB   20 C0 A5   JSR $A5C0
9EDE   F0 04      BEQ $9EE4
9EE0   2C C1 DB   BIT $DBC1
9EE3   60         RTS
9EE4   20 0B 9E   JSR $9E0B
9EE7   C5 69      CMP $69
9EE9   D0 0E      BNE $9EF9
9EEB   A4 6A      LDY $6A
9EED   B1 64      LDA ($64),Y
9EEF   F0 04      BEQ $9EF5
9EF1   2C BE DB   BIT $DBBE
9EF4   60         RTS
9EF5   2C C0 DB   BIT $DBC0
9EF8   60         RTS
9EF9   A5 69      LDA $69
9EFB   C9 06      CMP #$06
9EFD   B0 0A      BCS $9F09
9EFF   0A         ASL
9F00   A8         TAY
9F01   A9 04      LDA #$04
9F03   85 64      STA $64
9F05   B1 64      LDA ($64),Y
9F07   D0 04      BNE $9F0D
9F09   2C C1 DB   BIT $DBC1
9F0C   60         RTS
9F0D   2C BF DB   BIT $DBBF
9F10   60         RTS

; Nummer des aktiven Puffers holen

9F11   A6 50      LDX $50
9F13   B5 D1      LDA $D1,X
9F15   10 02      BPL $9F19
9F17   B5 D8      LDA $D8,X
9F19   29 BF      AND #$BF
9F1B   60         RTS

; Aktiven Puffer prüfen und holen

9F1C   A6 50      LDX $50
9F1E   86 74      STX $74
9F20   B5 D1      LDA $D1,X
9F22   10 08      BPL $9F2C
9F24   8A         TXA
9F25   18         CLC
9F26   69 07      ADC #$07
9F28   85 74      STA $74
9F2A   B5 D8      LDA $D8,X
9F2C   85 41      STA $41
9F2E   29 1F      AND #$1F
9F30   24 41      BIT $41
9F32   60         RTS

; Prüfen, ob ein Puffer des Kanals nicht belegt ist

9F33   A6 50      LDX $50
9F35   B5 D1      LDA $D1,X
9F37   30 02      BMI $9F3B
9F39   B5 D8      LDA $D8,X
9F3B   C9 FF      CMP #$FF
9F3D   60         RTS

; Kanal einen neuen Puffer zuordnen

9F3E   A6 50      LDX $50
9F40   09 80      ORA #$80
9F42   B4 D1      LDY $D1,X
9F44   10 03      BPL $9F49
9F46   95 D1      STA $D1,X
9F48   60         RTS
9F49   95 D8      STA $D8,X
9F4B   60         RTS

; nächsten Record holen

9F4C   A9 20      LDA #$20
9F4E   20 DB 9C   JSR $9CDB
9F51   A9 80      LDA #$80
9F53   20 E4 9C   JSR $9CE4
9F56   D0 46      BNE $9F9E
9F58   A6 50      LDX $50
9F5A   FE 49 02   INC $0249,X
9F5D   D0 03      BNE $9F62
9F5F   FE 50 02   INC $0250,X
9F62   A6 50      LDX $50
9F64   BD 57 02   LDA $0257,X
9F67   F0 30      BEQ $9F99
9F69   20 42 94   JSR $9442
9F6C   A6 50      LDX $50
9F6E   DD 57 02   CMP $0257,X
9F71   90 03      BCC $9F76
9F73   20 BF 9F   JSR $9FBF
9F76   A6 50      LDX $50
9F78   BD 57 02   LDA $0257,X
9F7B   20 22 94   JSR $9422
9F7E   A1 BB      LDA ($BB,X)
9F80   85 54      STA $54
9F82   A9 20      LDA #$20
9F84   20 DB 9C   JSR $9CDB
9F87   20 BC A2   JSR $A2BC
9F8A   48         PHA
9F8B   90 29      BCC $9FB6
9F8D   A9 00      LDA #$00
9F8F   20 50 94   JSR $9450
9F92   D0 22      BNE $9FB6
9F94   68         PLA
9F95   C9 02      CMP #$02
9F97   F0 12      BEQ $9FAB
9F99   A9 80      LDA #$80
9F9B   20 D5 9C   JSR $9CD5
9F9E   20 69 90   JSR $9069
9FA1   B5 BB      LDA $BB,X
9FA3   99 42 02   STA $0242,Y
9FA6   A9 0D      LDA #$0D
9FA8   85 54      STA $54
9FAA   60         RTS
9FAB   20 B7 9F   JSR $9FB7
9FAE   A6 50      LDX $50
9FB0   A9 00      LDA #$00
9FB2   9D 57 02   STA $0257,X
9FB5   60         RTS
9FB6   68         PLA
9FB7   A6 50      LDX $50
9FB9   9D 57 02   STA $0257,X
9FBC   4C FD A0   JMP $A0FD

; alten Puffer speichern und Folgeblöcke einlesen

9FBF   20 CE 9D   JSR $9DCE
9FC2   20 1C 9F   JSR $9F1C
9FC5   50 16      BVC $9FDD
9FC7   20 9A 9D   JSR $9D9A
9FCA   20 7D 8D   JSR $8D7D
9FCD   A9 02      LDA #$02
9FCF   20 22 94   JSR $9422
9FD2   20 E9 9C   JSR $9CE9
9FD5   D0 24      BNE $9FFB
9FD7   20 94 9D   JSR $9D94
9FDA   4C ED 94   JMP $94ED
9FDD   20 7D 8D   JSR $8D7D
9FE0   20 E9 9C   JSR $9CE9
9FE3   D0 06      BNE $9FEB
9FE5   20 94 9D   JSR $9D94
9FE8   20 ED 94   JSR $94ED
9FEB   20 CE 9D   JSR $9DCE
9FEE   A5 4D      LDA $4D
9FF0   F0 09      BEQ $9FFB
9FF2   20 7D 8D   JSR $8D7D
9FF5   20 94 9D   JSR $9D94
9FF8   4C 7D 8D   JMP $8D7D
9FFB   60         RTS

; Byte in Record-Puffer schreiben

9FFC   20 8D A0   JSR $A08D
9FFF   20 11 9F   JSR $9F11
A002   0A         ASL
A003   AA         TAX
A004   A5 54      LDA $54
A006   81 BB      STA ($BB,X)
A008   B4 BB      LDY $BB,X
A00A   C8         INY
A00B   D0 09      BNE $A016
A00D   A4 50      LDY $50
A00F   B9 57 02   LDA $0257,Y
A012   F0 0A      BEQ $A01E
A014   A0 02      LDY #$02
A016   98         TYA
A017   A4 50      LDY $50
A019   D9 57 02   CMP $0257,Y
A01C   D0 05      BNE $A023
A01E   A9 20      LDA #$20
A020   4C D5 9C   JMP $9CD5
A023   F6 BB      INC $BB,X
A025   D0 0B      BNE $A032
A027   AD 01 01   LDA $0101
A02A   09 10      ORA #$10
A02C   8D 01 01   STA $0101
A02F   4C BF 9F   JMP $9FBF
A032   60         RTS

; Empfangene Daten in Record schreiben

A033   A9 A0      LDA #$A0
A035   20 E4 9C   JSR $9CE4
A038   D0 27      BNE $A061
A03A   A5 54      LDA $54
A03C   20 FC 9F   JSR $9FFC
A03F   A5 51      LDA $51
A041   F0 0D      BEQ $A050
A043   60         RTS
A044   A9 20      LDA #$20
A046   20 E4 9C   JSR $9CE4
A049   F0 05      BEQ $A050
A04B   A9 51      LDA #$51
A04D   8D AB 02   STA $02AB
A050   20 7B A0   JSR $A07B
A053   20 E1 A0   JSR $A0E1
A056   AD AB 02   LDA $02AB
A059   F0 03      BEQ $A05E
A05B   4C 7C 80   JMP $807C
A05E   4C 62 A8   JMP $A862
A061   29 80      AND #$80
A063   D0 05      BNE $A06A
A065   A5 51      LDA $51
A067   F0 DB      BEQ $A044
A069   60         RTS
A06A   A5 54      LDA $54
A06C   48         PHA
A06D   20 D6 A2   JSR $A2D6
A070   68         PLA
A071   85 54      STA $54
A073   A9 80      LDA #$80
A075   20 DB 9C   JSR $9CDB
A078   4C 3A A0   JMP $A03A

; Rest eines Records mit $00 auffüllen

A07B   A9 20      LDA #$20
A07D   20 E4 9C   JSR $9CE4
A080   D0 0A      BNE $A08C
A082   A9 00      LDA #$00
A084   85 54      STA $54
A086   20 FC 9F   JSR $9FFC
A089   4C 7B A0   JMP $A07B
A08C   60         RTS

; 'Puffer geändert'-Flag setzen

A08D   A9 40      LDA #$40
A08F   20 D5 9C   JSR $9CD5
A092   20 1C 9F   JSR $9F1C
A095   09 40      ORA #$40
A097   A6 74      LDX $74
A099   95 D1      STA $D1,X
A09B   60         RTS

; 'Puffer geändert'-Flag löschen

A09C   20 1C 9F   JSR $9F1C
A09F   29 BF      AND #$BF
A0A1   A6 74      LDX $74
A0A3   95 D1      STA $D1,X
A0A5   60         RTS

; Byte aus Record-Puffer holen

A0A6   A9 80      LDA #$80
A0A8   20 E4 9C   JSR $9CE4
A0AB   D0 3F      BNE $A0EC
A0AD   20 69 90   JSR $9069
A0B0   B5 BB      LDA $BB,X
A0B2   D9 42 02   CMP $0242,Y
A0B5   F0 2A      BEQ $A0E1
A0B7   F6 BB      INC $BB,X
A0B9   D0 0E      BNE $A0C9
A0BB   AD 01 01   LDA $0101
A0BE   09 10      ORA #$10
A0C0   8D 01 01   STA $0101
A0C3   20 BF 9F   JSR $9FBF
A0C6   20 69 90   JSR $9069
A0C9   A1 BB      LDA ($BB,X)
A0CB   99 3B 02   STA $023B,Y
A0CE   A9 89      LDA #$89
A0D0   99 34 02   STA $0234,Y
A0D3   B5 BB      LDA $BB,X
A0D5   D9 42 02   CMP $0242,Y
A0D8   F0 01      BEQ $A0DB
A0DA   60         RTS
A0DB   A9 81      LDA #$81
A0DD   99 34 02   STA $0234,Y
A0E0   60         RTS

; Nächsten Record lesen

A0E1   20 4C 9F   JSR $9F4C
A0E4   20 69 90   JSR $9069
A0E7   A5 54      LDA $54
A0E9   4C CB A0   JMP $A0CB

; Abbruch bei Fehler

A0EC   A6 50      LDX $50
A0EE   A9 0D      LDA #$0D
A0F0   9D 3B 02   STA $023B,X
A0F3   A9 81      LDA #$81
A0F5   9D 34 02   STA $0234,X
A0F8   A9 50      LDA #$50
A0FA   20 7C 80   JSR $807C

; Letztes benutzte Zeichen im Record suchen

A0FD   A6 50      LDX $50
A0FF   BD 57 02   LDA $0257,X
A102   85 56      STA $56
A104   C6 56      DEC $56
A106   C9 02      CMP #$02
A108   D0 04      BNE $A10E
A10A   A9 FF      LDA #$FF
A10C   85 56      STA $56
A10E   BD 5E 02   LDA $025E,X
A111   85 57      STA $57
A113   20 42 94   JSR $9442
A116   A6 50      LDX $50
A118   C5 56      CMP $56
A11A   90 19      BCC $A135
A11C   F0 17      BEQ $A135
A11E   20 7D 8D   JSR $8D7D
A121   20 43 A1   JSR $A143
A124   90 08      BCC $A12E
A126   A6 50      LDX $50
A128   9D 42 02   STA $0242,X
A12B   4C 7D 8D   JMP $8D7D
A12E   20 7D 8D   JSR $8D7D
A131   A9 FF      LDA #$FF
A133   85 56      STA $56
A135   20 43 A1   JSR $A143
A138   B0 03      BCS $A13D
A13A   20 42 94   JSR $9442
A13D   A6 50      LDX $50
A13F   9D 42 02   STA $0242,X
A142   60         RTS
A143   20 69 9D   JSR $9D69
A146   A4 56      LDY $56
A148   B1 64      LDA ($64),Y
A14A   D0 0D      BNE $A159
A14C   88         DEY
A14D   C0 02      CPY #$02
A14F   90 04      BCC $A155
A151   C6 57      DEC $57
A153   D0 F3      BNE $A148
A155   C6 57      DEC $57
A157   18         CLC
A158   60         RTS
A159   98         TYA
A15A   38         SEC
A15B   60         RTS

; Letzten Datenblock einer REL-Datei ermitteln

A15C   20 6E A5   JSR $A56E
A15F   D0 03      BNE $A164
A161   20 A9 A5   JSR $A5A9
A164   20 0B 9E   JSR $9E0B
A167   85 69      STA $69
A169   A9 04      LDA #$04
A16B   85 64      STA $64
A16D   A0 0A      LDY #$0A
A16F   D0 04      BNE $A175
A171   88         DEY
A172   88         DEY
A173   30 27      BMI $A19C
A175   B1 64      LDA ($64),Y
A177   F0 F8      BEQ $A171
A179   98         TYA
A17A   4A         LSR
A17B   C5 69      CMP $69
A17D   F0 0A      BEQ $A189
A17F   85 69      STA $69
A181   A6 50      LDX $50
A183   BD 65 02   LDA $0265,X
A186   20 56 9E   JSR $9E56
A189   A0 00      LDY #$00
A18B   84 64      STY $64
A18D   B1 64      LDA ($64),Y
A18F   D0 0B      BNE $A19C
A191   C8         INY
A192   B1 64      LDA ($64),Y
A194   A8         TAY
A195   88         DEY
A196   84 6A      STY $6A
A198   98         TYA
A199   4C 23 9E   JMP $9E23
A19C   A9 67      LDA #$67
A19E   20 3F FF   JSR $FF3F

; Position-Befehl

A1A1   20 65 81   JSR $8165
A1A4   AD 01 02   LDA $0201
A1A7   85 52      STA $52
A1A9   20 27 90   JSR $9027
A1AC   90 05      BCC $A1B3
A1AE   A9 70      LDA #$70
A1B0   20 7C 80   JSR $807C
A1B3   A9 A0      LDA #$A0
A1B5   20 DB 9C   JSR $9CDB
A1B8   20 5F 90   JSR $905F
A1BB   F0 05      BEQ $A1C2
A1BD   A9 64      LDA #$64
A1BF   20 7C 80   JSR $807C
A1C2   AD 02 02   LDA $0202
A1C5   9D 49 02   STA $0249,X
A1C8   AD 03 02   LDA $0203
A1CB   9D 50 02   STA $0250,X
A1CE   A6 50      LDX $50
A1D0   A9 89      LDA #$89
A1D2   9D 34 02   STA $0234,X
A1D5   AD 04 02   LDA $0204
A1D8   F0 11      BEQ $A1EB
A1DA   38         SEC
A1DB   E9 01      SBC #$01
A1DD   F0 0C      BEQ $A1EB
A1DF   DD 5E 02   CMP $025E,X
A1E2   90 07      BCC $A1EB
A1E4   A9 51      LDA #$51
A1E6   8D AB 02   STA $02AB
A1E9   A9 00      LDA #$00
A1EB   85 68      STA $68
A1ED   20 89 8C   JSR $8C89
A1F0   20 32 9E   JSR $9E32
A1F3   50 08      BVC $A1FD
A1F5   A9 80      LDA #$80
A1F7   20 D5 9C   JSR $9CD5
A1FA   4C EC A0   JMP $A0EC
A1FD   20 0D A2   JSR $A20D
A200   A9 80      LDA #$80
A202   20 E4 9C   JSR $9CE4
A205   F0 03      BEQ $A20A
A207   4C EC A0   JMP $A0EC
A20A   4C 4C 80   JMP $804C

; gesuchten Record zur Ausgabe bereitstellen

A20D   20 35 A2   JSR $A235
A210   A5 6B      LDA $6B
A212   20 22 94   JSR $9422
A215   A6 50      LDX $50
A217   BD 5E 02   LDA $025E,X
A21A   38         SEC
A21B   E5 68      SBC $68
A21D   B0 03      BCS $A222
A21F   4C 9C A1   JMP $A19C
A222   18         CLC
A223   65 6B      ADC $6B
A225   90 03      BCC $A22A
A227   69 01      ADC #$01
A229   38         SEC
A22A   20 8A 9F   JSR $9F8A
A22D   4C C6 A0   JMP $A0C6
A230   A9 51      LDA #$51
A232   20 7C 80   JSR $807C

; benötigte Datenblöcke einlesen

A235   A5 64      LDA $64
A237   85 58      STA $58
A239   A5 65      LDA $65
A23B   85 59      STA $59
A23D   20 73 A2   JSR $A273
A240   F0 22      BEQ $A264
A242   20 2E 9D   JSR $9D2E
A245   20 49 9D   JSR $9D49
A248   A5 4D      LDA $4D
A24A   F0 19      BEQ $A265
A24C   20 7D 8D   JSR $8D7D
A24F   20 73 A2   JSR $A273
A252   D0 11      BNE $A265
A254   20 49 9D   JSR $9D49
A257   A5 4D      LDA $4D
A259   F0 09      BEQ $A264
A25B   20 7D 8D   JSR $8D7D
A25E   20 94 9D   JSR $9D94
A261   4C 7D 8D   JMP $8D7D
A264   60         RTS
A265   A0 00      LDY #$00
A267   B1 58      LDA ($58),Y
A269   85 4D      STA $4D
A26B   C8         INY
A26C   B1 58      LDA ($58),Y
A26E   85 4E      STA $4E
A270   4C EA 8F   JMP $8FEA
A273   20 7C 9D   JSR $9D7C
A276   A0 00      LDY #$00
A278   B1 58      LDA ($58),Y
A27A   C5 4D      CMP $4D
A27C   F0 01      BEQ $A27F
A27E   60         RTS
A27F   C8         INY
A280   B1 58      LDA ($58),Y
A282   C5 4E      CMP $4E
A284   D0 11      BNE $A297
A286   AD 01 01   LDA $0101
A289   29 10      AND #$10
A28B   F0 0A      BEQ $A297
A28D   AD 01 01   LDA $0101
A290   29 EF      AND #$EF
A292   8D 01 01   STA $0101
A295   49 10      EOR #$10
A297   60         RTS

; Puffer mit leeren Records füllen

A298   20 69 9D   JSR $9D69
A29B   A0 02      LDY #$02
A29D   A9 00      LDA #$00
A29F   91 64      STA ($64),Y
A2A1   C8         INY
A2A2   D0 FB      BNE $A29F
A2A4   20 BC A2   JSR $A2BC
A2A7   9D 57 02   STA $0257,X
A2AA   A8         TAY
A2AB   A9 FF      LDA #$FF
A2AD   91 64      STA ($64),Y
A2AF   20 BC A2   JSR $A2BC
A2B2   90 F3      BCC $A2A7
A2B4   D0 05      BNE $A2BB
A2B6   A9 00      LDA #$00
A2B8   9D 57 02   STA $0257,X
A2BB   60         RTS

; Position des nächsten Records berechnen

A2BC   A6 50      LDX $50
A2BE   BD 57 02   LDA $0257,X
A2C1   38         SEC
A2C2   F0 0E      BEQ $A2D2
A2C4   18         CLC
A2C5   7D 5E 02   ADC $025E,X
A2C8   90 0B      BCC $A2D5
A2CA   D0 06      BNE $A2D2
A2CC   A9 02      LDA #$02
A2CE   2C BD DB   BIT $DBBD
A2D1   60         RTS
A2D2   69 01      ADC #$01
A2D4   38         SEC
A2D5   60         RTS

; Blöcke zu REL-Datei hinzufügen

A2D6   20 38 A4   JSR $A438
A2D9   20 89 8C   JSR $8C89
A2DC   20 5B B6   JSR $B65B
A2DF   A4 50      LDY $50
A2E1   BE 5E 02   LDX $025E,Y
A2E4   CA         DEX
A2E5   8A         TXA
A2E6   18         CLC
A2E7   65 6B      ADC $6B
A2E9   90 0C      BCC $A2F7
A2EB   E6 6A      INC $6A
A2ED   E6 6A      INC $6A
A2EF   D0 06      BNE $A2F7
A2F1   E6 69      INC $69
A2F3   A9 10      LDA #$10
A2F5   85 6A      STA $6A
A2F7   A5 56      LDA $56
A2F9   18         CLC
A2FA   69 02      ADC #$02
A2FC   20 23 9E   JSR $9E23
A2FF   A5 69      LDA $69
A301   C9 06      CMP #$06
A303   90 11      BCC $A316
A305   20 6E A5   JSR $A56E
A308   D0 07      BNE $A311
A30A   85 69      STA $69
A30C   EE 00 01   INC $0100
A30F   D0 05      BNE $A316
A311   A9 52      LDA #$52
A313   20 7C 80   JSR $807C
A316   A5 6A      LDA $6A
A318   38         SEC
A319   E5 56      SBC $56
A31B   B0 03      BCS $A320
A31D   E9 0F      SBC #$0F
A31F   18         CLC
A320   48         PHA
A321   20 6E A5   JSR $A56E
A324   F0 1E      BEQ $A344
A326   68         PLA
A327   85 43      STA $43
A329   A5 69      LDA $69
A32B   E5 55      SBC $55
A32D   85 44      STA $44
A32F   A2 00      LDX #$00
A331   86 41      STX $41
A333   86 42      STX $42
A335   AA         TAX
A336   20 82 9E   JSR $9E82
A339   A5 42      LDA $42
A33B   D0 2F      BNE $A36C
A33D   A6 41      LDX $41
A33F   CA         DEX
A340   D0 2A      BNE $A36C
A342   F0 26      BEQ $A36A
A344   68         PLA
A345   85 43      STA $43
A347   A5 69      LDA $69
A349   E5 55      SBC $55
A34B   B0 04      BCS $A351
A34D   E6 58      INC $58
A34F   69 06      ADC #$06
A351   85 44      STA $44
A353   AD 00 01   LDA $0100
A356   38         SEC
A357   E5 58      SBC $58
A359   85 58      STA $58
A35B   20 97 9E   JSR $9E97
A35E   A5 5C      LDA $5C
A360   D0 0A      BNE $A36C
A362   A6 5B      LDX $5B
A364   D0 01      BNE $A367
A366   60         RTS
A367   CA         DEX
A368   D0 02      BNE $A36C
A36A   E6 57      INC $57
A36C   CD 8E 02   CMP $028E
A36F   90 09      BCC $A37A
A371   D0 9E      BNE $A311
A373   AD 8D 02   LDA $028D
A376   C5 41      CMP $41
A378   90 97      BCC $A311
A37A   A9 01      LDA #$01
A37C   20 50 94   JSR $9450
A37F   18         CLC
A380   69 01      ADC #$01
A382   A6 50      LDX $50
A384   9D 57 02   STA $0257,X
A387   20 68 B6   JSR $B668
A38A   20 3A 9D   JSR $9D3A
A38D   A5 57      LDA $57
A38F   D0 15      BNE $A3A6
A391   20 9A 9D   JSR $9D9A
A394   20 7D 8D   JSR $8D7D
A397   20 85 95   JSR $9585
A39A   20 68 B6   JSR $B668
A39D   20 3A 9D   JSR $9D3A
A3A0   20 98 A2   JSR $A298
A3A3   4C B2 A3   JMP $A3B2
A3A6   20 7D 8D   JSR $8D7D
A3A9   20 85 95   JSR $9585
A3AC   20 98 A2   JSR $A298
A3AF   20 56 9D   JSR $9D56
A3B2   20 9A 9D   JSR $9D9A
A3B5   20 49 9D   JSR $9D49
A3B8   A5 4D      LDA $4D
A3BA   48         PHA
A3BB   A5 4E      LDA $4E
A3BD   48         PHA
A3BE   20 7C 9D   JSR $9D7C
A3C1   A5 4E      LDA $4E
A3C3   48         PHA
A3C4   A5 4D      LDA $4D
A3C6   48         PHA
A3C7   20 75 9E   JSR $9E75
A3CA   AA         TAX
A3CB   D0 0A      BNE $A3D7
A3CD   20 59 A4   JSR $A459
A3D0   A9 10      LDA #$10
A3D2   20 23 9E   JSR $9E23
A3D5   E6 55      INC $55
A3D7   68         PLA
A3D8   20 CA 9C   JSR $9CCA
A3DB   68         PLA
A3DC   20 CA 9C   JSR $9CCA
A3DF   68         PLA
A3E0   85 4E      STA $4E
A3E2   68         PLA
A3E3   85 4D      STA $4D
A3E5   F0 1B      BEQ $A402
A3E7   20 6E A5   JSR $A56E
A3EA   D0 07      BNE $A3F3
A3EC   A5 5A      LDA $5A
A3EE   CD 00 01   CMP $0100
A3F1   90 A1      BCC $A394
A3F3   A5 55      LDA $55
A3F5   C5 69      CMP $69
A3F7   D0 9B      BNE $A394
A3F9   20 75 9E   JSR $9E75
A3FC   C5 6A      CMP $6A
A3FE   90 94      BCC $A394
A400   F0 A4      BEQ $A3A6
A402   20 75 9E   JSR $9E75
A405   48         PHA
A406   A9 00      LDA #$00
A408   20 15 9E   JSR $9E15
A40B   A9 00      LDA #$00
A40D   A8         TAY
A40E   91 64      STA ($64),Y
A410   C8         INY
A411   68         PLA
A412   38         SEC
A413   E9 01      SBC #$01
A415   91 64      STA ($64),Y
A417   20 A6 9D   JSR $9DA6
A41A   20 ED 94   JSR $94ED
A41D   20 15 B5   JSR $B515
A420   20 89 8C   JSR $8C89
A423   20 7D 8D   JSR $8D7D
A426   20 32 9E   JSR $9E32
A429   70 03      BVS $A42E
A42B   4C 0D A2   JMP $A20D
A42E   A9 80      LDA #$80
A430   20 D5 9C   JSR $9CD5
A433   A9 50      LDA #$50
A435   20 7C 80   JSR $807C

; Parameter des letzten Records der Datei merken

A438   20 5C A1   JSR $A15C
A43B   20 35 A2   JSR $A235
A43E   20 6E A5   JSR $A56E
A441   D0 07      BNE $A44A
A443   AD 00 01   LDA $0100
A446   85 5A      STA $5A
A448   85 58      STA $58
A44A   A5 6A      LDA $6A
A44C   85 56      STA $56
A44E   A5 69      LDA $69
A450   85 55      STA $55
A452   A9 00      LDA #$00
A454   85 57      STA $57
A456   85 68      STA $68
A458   60         RTS

; Neuen Side-Sektor zur relativen Datei hinzufügen

A459   20 68 B6   JSR $B668
A45C   20 7D 8D   JSR $8D7D
A45F   20 2E 9D   JSR $9D2E
A462   20 11 9F   JSR $9F11
A465   48         PHA
A466   20 FA 9D   JSR $9DFA
A469   A6 50      LDX $50
A46B   BD 65 02   LDA $0265,X
A46E   A8         TAY
A46F   68         PLA
A470   AA         TAX
A471   20 6E A5   JSR $A56E
A474   D0 03      BNE $A479
A476   4C 47 A5   JMP $A547
A479   A9 10      LDA #$10
A47B   20 DE 9D   JSR $9DDE
A47E   A9 00      LDA #$00
A480   20 15 9E   JSR $9E15
A483   A0 02      LDY #$02
A485   B1 64      LDA ($64),Y
A487   48         PHA
A488   A9 00      LDA #$00
A48A   20 22 94   JSR $9422
A48D   68         PLA
A48E   18         CLC
A48F   69 01      ADC #$01
A491   91 64      STA ($64),Y
A493   0A         ASL
A494   69 04      ADC #$04
A496   85 58      STA $58
A498   A8         TAY
A499   38         SEC
A49A   E9 02      SBC #$02
A49C   85 59      STA $59
A49E   A5 4D      LDA $4D
A4A0   85 56      STA $56
A4A2   91 64      STA ($64),Y
A4A4   C8         INY
A4A5   A5 4E      LDA $4E
A4A7   85 57      STA $57
A4A9   91 64      STA ($64),Y
A4AB   A0 00      LDY #$00
A4AD   98         TYA
A4AE   91 64      STA ($64),Y
A4B0   C8         INY
A4B1   A9 11      LDA #$11
A4B3   91 64      STA ($64),Y
A4B5   A9 10      LDA #$10
A4B7   20 22 94   JSR $9422
A4BA   20 8E 9D   JSR $9D8E
A4BD   20 ED 94   JSR $94ED
A4C0   A6 50      LDX $50
A4C2   BD 65 02   LDA $0265,X
A4C5   48         PHA
A4C6   20 1C 9F   JSR $9F1C
A4C9   A6 50      LDX $50
A4CB   9D 65 02   STA $0265,X
A4CE   68         PLA
A4CF   A6 74      LDX $74
A4D1   95 D1      STA $D1,X
A4D3   A9 00      LDA #$00
A4D5   20 22 94   JSR $9422
A4D8   A0 00      LDY #$00
A4DA   A5 4D      LDA $4D
A4DC   91 64      STA ($64),Y
A4DE   C8         INY
A4DF   A5 4E      LDA $4E
A4E1   91 64      STA ($64),Y
A4E3   20 6E A5   JSR $A56E
A4E6   D0 41      BNE $A529
A4E8   A5 55      LDA $55
A4EA   C9 FF      CMP #$FF
A4EC   D0 3B      BNE $A529
A4EE   A5 4E      LDA $4E
A4F0   48         PHA
A4F1   A5 4D      LDA $4D
A4F3   48         PHA
A4F4   20 9A 9D   JSR $9D9A
A4F7   20 ED 94   JSR $94ED
A4FA   20 7D 8D   JSR $8D7D
A4FD   20 7E A5   JSR $A57E
A500   E6 5A      INC $5A
A502   A5 5A      LDA $5A
A504   0A         ASL
A505   18         CLC
A506   69 03      ADC #$03
A508   20 23 9E   JSR $9E23
A50B   68         PLA
A50C   20 CA 9C   JSR $9CCA
A50F   68         PLA
A510   20 CA 9C   JSR $9CCA
A513   20 81 A5   JSR $A581
A516   A5 5A      LDA $5A
A518   48         PHA
A519   4C CC A5   JMP $A5CC
A51C   20 11 9F   JSR $9F11
A51F   A6 50      LDX $50
A521   20 56 9E   JSR $9E56
A524   A9 00      LDA #$00
A526   20 22 94   JSR $9422
A529   C6 59      DEC $59
A52B   C6 59      DEC $59
A52D   A4 58      LDY $58
A52F   A5 56      LDA $56
A531   91 64      STA ($64),Y
A533   C8         INY
A534   A5 57      LDA $57
A536   91 64      STA ($64),Y
A538   20 9A 9D   JSR $9D9A
A53B   20 ED 94   JSR $94ED
A53E   A4 59      LDY $59
A540   C0 03      CPY #$03
A542   B0 D8      BCS $A51C
A544   4C 7D 8D   JMP $8D7D

; Wenn Gruppe voll, dann neue Gruppe anlegen

A547   A5 55      LDA $55
A549   C9 05      CMP #$05
A54B   B0 03      BCS $A550
A54D   4C 79 A4   JMP $A479
A550   A9 FF      LDA #$FF
A552   85 55      STA $55
A554   A9 00      LDA #$00
A556   20 22 94   JSR $9422
A559   A0 02      LDY #$02
A55B   91 64      STA ($64),Y
A55D   A6 50      LDX $50
A55F   BD 5E 02   LDA $025E,X
A562   C8         INY
A563   91 64      STA ($64),Y
A565   C8         INY
A566   F0 03      BEQ $A56B
A568   4C 9E A4   JMP $A49E
A56B   4C 79 A4   JMP $A479

; Prüft, ob Super-Side-Sektoren verwendet werden

A56E   AD 01 01   LDA $0101
A571   29 20      AND #$20
A573   60         RTS

; Super-Side-Sektor laden

A574   A6 50      LDX $50
A576   A9 FE      LDA #$FE
A578   DD 02 01   CMP $0102,X
A57B   D0 01      BNE $A57E
A57D   60         RTS
A57E   A9 80      LDA #$80
A580   2C         .BY $2C
A581   A9 90      LDA #$90
A583   48         PHA
A584   A6 50      LDX $50
A586   BD 10 01   LDA $0110,X
A589   85 4D      STA $4D
A58B   BD 09 01   LDA $0109,X
A58E   85 4E      STA $4E
A590   A9 FF      LDA #$FF
A592   9D 02 01   STA $0102,X
A595   BD 65 02   LDA $0265,X
A598   85 6C      STA $6C
A59A   20 88 95   JSR $9588
A59D   68         PLA
A59E   20 E4 94   JSR $94E4
A5A1   A6 50      LDX $50
A5A3   A9 FE      LDA #$FE
A5A5   9D 02 01   STA $0102,X
A5A8   60         RTS

; letzte existierende Gruppe ermitteln

A5A9   A9 5A      LDA #$5A
A5AB   8D 00 01   STA $0100
A5AE   20 C0 A5   JSR $A5C0
A5B1   D0 01      BNE $A5B4
A5B3   60         RTS
A5B4   CE 00 01   DEC $0100
A5B7   AD 00 01   LDA $0100
A5BA   20 D2 A5   JSR $A5D2
A5BD   D0 F5      BNE $A5B4
A5BF   60         RTS

; Gruppe anwählen

A5C0   A6 50      LDX $50
A5C2   DD 02 01   CMP $0102,X
A5C5   D0 01      BNE $A5C8
A5C7   60         RTS
A5C8   48         PHA
A5C9   20 74 A5   JSR $A574
A5CC   A9 03      LDA #$03
A5CE   20 15 9E   JSR $9E15
A5D1   68         PLA
A5D2   AA         TAX
A5D3   0A         ASL
A5D4   A8         TAY
A5D5   B1 64      LDA ($64),Y
A5D7   D0 03      BNE $A5DC
A5D9   09 FF      ORA #$FF
A5DB   60         RTS
A5DC   85 4D      STA $4D
A5DE   C8         INY
A5DF   B1 64      LDA ($64),Y
A5E1   85 4E      STA $4E
A5E3   8A         TXA
A5E4   48         PHA
A5E5   A9 FF      LDA #$FF
A5E7   A6 50      LDX $50
A5E9   9D 02 01   STA $0102,X
A5EC   BD 65 02   LDA $0265,X
A5EF   85 6C      STA $6C
A5F1   20 88 95   JSR $9588
A5F4   A9 80      LDA #$80
A5F6   20 E4 94   JSR $94E4
A5F9   A6 50      LDX $50
A5FB   68         PLA
A5FC   9D 02 01   STA $0102,X
A5FF   A9 00      LDA #$00
A601   60         RTS

; Fehlermeldungen

A602   .BY $00,$A0,$4F,$CB                     ; 00, OK
A606   .BY $02,$A0,$53,$45,$4C,$45,$43,$54     ; 02, SELECTED PARTITION
A60E   .BY $45,$44,$20,$50,$41,$52,$54,$49
A616   .BY $54,$49,$4F,$CE     
A61A   .BY $20,$21,$22,$23,$24,$27,$45,$41     ; 20/21/22/23/24/27, READ ERROR
A622   .BY $D2,$44,$89                 
A625   .BY $52,$83,$20,$54,$4F,$4F,$20,$4C     ; 52, FILE TOO LARGE
A62D   .BY $41,$52,$47,$C5
A631   .BY $50,$8B,$06,$20,$50,$52,$45,$53     ; 50, RECORD NOT PRESENT
A639   .BY $45,$4E,$D4  
A63C   .BY $51,$CF,$56,$45,$52,$46,$4C,$4F     ; 51, OVERFLOW IN RECORD
A644   .BY $57,$20,$49,$4E,$8B
A649   .BY $25,$28,$8A,$89                     ; 25/28, WRITE ERROR
A64D   .BY $26,$8A,$20,$50,$52,$4F,$54,$45     ; 26, WRITE PROTECTION
A655   .BY $43,$54,$20,$4F,$CE
A65A   .BY $29,$88,$20,$49,$44,$85             ; 29, DISK ID MISMATCH
A660   .BY $30,$31,$32,$33,$34,$D3,$59,$4E     ; 30/31/32/33/34, SYNTAX ERROR
A668   .BY $54,$41,$58,$89
A66C   .BY $60,$8A,$03,$84                     ; 60, WRITE FILE OPEN
A670   .BY $63,$83,$20,$45,$58,$49,$53,$54     ; 63, FILE EXISTS
A678   .BY $D3        
A679   .BY $64,$83,$20,$54,$59,$50,$45,$85     ; 64, FILE TYPE MISMATCH
A681   .BY $65,$CE,$4F,$20,$42,$4C,$4F,$43     ; 65, NO BLOCK
A689   .BY $CB        
A68A   .BY $66,$67,$C9,$4C,$4C,$45,$47,$41     ; 66/67, ILLEGAL TRACK OR SECTOR
A692   .BY $4C,$20,$54,$52,$41,$43,$4B,$20
A69A   .BY $4F,$52,$20,$53,$45,$43,$54,$4F
A6A2   .BY $D2              
A6A3   .BY $61,$83,$06,$84                     ; 61, FILE NOT OPEN
A6A7   .BY $39,$62,$83,$06,$87                 ; 39/62, FILE NOT FOUND
A6AC   .BY $01,$83,$53,$20,$53,$43,$52,$41     ; 01, FILES SCRATCHED
A6B4   .BY $54,$43,$48,$45,$CE
A6B9   .BY $70,$CE,$4F,$20,$43,$48,$41,$4E     ; 70, NO CHANNEL
A6C1   .BY $4E,$45,$CC  
A6C4   .BY $71,$C4,$49,$52,$89                 ; 71, DIR ERROR
A6C9   .BY $72,$88,$20,$46,$55,$4C,$CC         ; 72, DISK FULL
A6D0   .BY $73,$C3,$4F,$50,$59,$52,$49,$47     ; 73, COPYRIGHT CBM DOS V10 1581
A6D8   .BY $48,$54,$20,$43,$42,$4D,$20,$44
A6E0   .BY $4F,$53,$20,$56,$31,$30,$20,$31
A6E8   .BY $35,$38,$B1
A6EB   .BY $74,$C4,$52,$49,$56,$45,$06,$20     ; 74, DRIVE NOT READY
A6F3   .BY $52,$45,$41,$44,$D9
A6F8   .BY $75,$C6,$4F,$52,$4D,$41,$54,$20     ; 75, FORMAT ERROR
A700   .BY $45,$52,$52,$4F,$D2
A705   .BY $76,$C3,$4F,$4E,$54,$52,$4F,$4C     ; 76, CONTROLLER ERROR
A70D   .BY $4C,$45,$52,$20,$45,$52,$52,$4F
A715   .BY $D2
A716   .BY $77,$D3,$45,$4C,$45,$43,$54,$45     ; 77, SELECTED PARTITION ILLEGAL
A71E   .BY $44,$20,$50,$41,$52,$54,$49,$54
A726   .BY $49,$4F,$4E,$20,$49,$4C,$4C,$45
A72E   .BY $47,$41,$CC
A731   .BY $79,$D3,$4F,$46,$54,$57,$41,$52     ; 79, SOFTWARE DAVID SIRACUSA. HRADWARE GREG BERLIN
A739   .BY $45,$20,$44,$41,$56,$49,$44,$20
A741   .BY $53,$49,$52,$41,$43,$55,$53,$41
A749   .BY $2E,$20,$48,$41,$52,$44,$57,$41
A751   .BY $52,$45,$20,$47,$52,$45,$47,$20
A759   .BY $42,$45,$52,$4C,$49,$CE
A75F   .BY $7A,$C4,$45,$44,$49,$43,$41,$54     ; 7A, DEDICATED TO MY WIFE LISA
A767   .BY $45,$44,$20,$54,$4F,$20,$4D,$59
A76F   .BY $20,$57,$49,$46,$45,$20,$4C,$49
A777   .BY $53,$C1
A779   .BY $09,$C5,$52,$52,$4F,$D2             ; 09, ERROR
A77F   .BY $0A,$D7,$52,$49,$52,$C5             ; 0A, WRITE
A785   .BY $03,$C6,$49,$4C,$C5                 ; 03, FILE
A78A   .BY $04,$CF,$50,$45,$CE                 ; 04, OPEN
A78F   .BY $05,$CD,$49,$53,$4D,$41,$54,$43     ; 05, MISMATCH
A797   .BY $C8
A798   .BY $06,$CE,$4F,$D4                     ; 06, NOT
A79C   .BY $07,$C6,$4F,$55,$4E,$C4             ; 07, FOUND
A7A2   .BY $08,$C4,$49,$53,$CB                 ; 08, DISK
A7A7   .BY $0B,$D2,$45,$43,$4F,$52,$C4         ; 0B, RECORD

; Error-Routine des Controllers

A7AE   48         PHA
A7AF   86 6C      STX $6C
A7B1   8A         TXA
A7B2   0A         ASL
A7B3   AA         TAX
A7B4   B5 0B      LDA $0B,X
A7B6   85 4D      STA $4D
A7B8   B5 0C      LDA $0C,X
A7BA   85 4E      STA $4E
A7BC   68         PLA
A7BD   29 0F      AND #$0F
A7BF   F0 10      BEQ $A7D1
A7C1   C9 03      CMP #$03
A7C3   F0 08      BEQ $A7CD
A7C5   C9 0E      CMP #$0E
A7C7   F0 04      BEQ $A7CD
A7C9   C9 0F      CMP #$0F
A7CB   D0 06      BNE $A7D3
A7CD   A9 74      LDA #$74
A7CF   D0 08      BNE $A7D9
A7D1   A9 06      LDA #$06
A7D3   09 20      ORA #$20
A7D5   AA         TAX
A7D6   CA         DEX
A7D7   CA         DEX
A7D8   8A         TXA
A7D9   48         PHA
A7DA   AD 2A 02   LDA $022A
A7DD   C9 00      CMP #$00
A7DF   D0 0F      BNE $A7F0
A7E1   A9 FF      LDA #$FF
A7E3   8D 2A 02   STA $022A
A7E6   68         PLA
A7E7   20 6D A8   JSR $A86D
A7EA   20 03 8F   JSR $8F03
A7ED   4C F4 A7   JMP $A7F4
A7F0   68         PLA

; Cmd-Error: Error-Routine des DOS

A7F1   20 6D A8   JSR $A86D
A7F4   20 71 80   JSR $8071
A7F7   A9 00      LDA #$00
A7F9   85 35      STA $35
A7FB   20 F1 81   JSR $81F1
A7FE   20 34 94   JSR $9434
A801   A9 00      LDA #$00
A803   85 CD      STA $CD
A805   A6 4F      LDX $4F
A807   9A         TXS
A808   A5 53      LDA $53
A80A   29 0F      AND #$0F
A80C   85 52      STA $52
A80E   C9 0F      CMP #$0F
A810   F0 29      BEQ $A83B
A812   78         SEI
A813   24 76      BIT $76
A815   70 17      BVS $A82E
A817   30 0F      BMI $A828
A819   A6 52      LDX $52
A81B   B5 A8      LDA $A8,X
A81D   C9 FF      CMP #$FF
A81F   F0 1A      BEQ $A83B
A821   29 0F      AND #$0F
A823   85 50      STA $50
A825   4C 31 A8   JMP $A831
A828   20 27 90   JSR $9027
A82B   4C 31 A8   JMP $A831
A82E   20 42 90   JSR $9042
A831   20 5F 90   JSR $905F
A834   C9 04      CMP #$04
A836   B0 03      BCS $A83B
A838   20 9E 91   JSR $919E
A83B   4C 00 FF   JMP $FF00

; Byte in Ziffernstring umwandeln

A83E   08         PHP
A83F   78         SEI
A840   AA         TAX
A841   A9 00      LDA #$00
A843   F8         SED
A844   E0 00      CPX #$00
A846   F0 07      BEQ $A84F
A848   18         CLC
A849   69 01      ADC #$01
A84B   CA         DEX
A84C   4C 44 A8   JMP $A844
A84F   D8         CLD
A850   28         PLP
A851   AA         TAX
A852   4A         LSR
A853   4A         LSR
A854   4A         LSR
A855   4A         LSR
A856   20 5A A8   JSR $A85A
A859   8A         TXA
A85A   29 0F      AND #$0F
A85C   09 30      ORA #$30
A85E   91 CF      STA ($CF),Y
A860   C8         INY
A861   60         RTS

; Fehlermeldung bereitstellen

A862   20 E5 81   JSR $81E5
A865   A9 00      LDA #$00
A867   A0 00      LDY #$00
A869   84 4D      STY $4D
A86B   84 4E      STY $4E
A86D   A0 00      LDY #$00
A86F   A2 D0      LDX #$D0
A871   86 CF      STX $CF
A873   A2 02      LDX #$02
A875   86 D0      STX $D0
A877   20 51 A8   JSR $A851
A87A   A9 2C      LDA #$2C
A87C   91 CF      STA ($CF),Y
A87E   C8         INY
A87F   AD D0 02   LDA $02D0
A882   8D 41 02   STA $0241
A885   8A         TXA
A886   20 AD A8   JSR $A8AD
A889   A9 2C      LDA #$2C
A88B   91 CF      STA ($CF),Y
A88D   C8         INY
A88E   A5 4D      LDA $4D
A890   20 3E A8   JSR $A83E
A893   A9 2C      LDA #$2C
A895   91 CF      STA ($CF),Y
A897   C8         INY
A898   A5 4E      LDA $4E
A89A   20 3E A8   JSR $A83E
A89D   88         DEY
A89E   98         TYA
A89F   18         CLC
A8A0   69 D0      ADC #$D0
A8A2   8D 48 02   STA $0248
A8A5   E6 CF      INC $CF
A8A7   A9 88      LDA #$88
A8A9   8D 3A 02   STA $023A
A8AC   60         RTS

; Fehlertext in Puffer schreiben

A8AD   AA         TAX
A8AE   A5 55      LDA $55
A8B0   48         PHA
A8B1   A5 56      LDA $56
A8B3   48         PHA
A8B4   A9 02      LDA #$02
A8B6   85 55      STA $55
A8B8   A9 A6      LDA #$A6
A8BA   85 56      STA $56
A8BC   8A         TXA
A8BD   A2 00      LDX #$00
A8BF   C1 55      CMP ($55,X)
A8C1   F0 21      BEQ $A8E4
A8C3   48         PHA
A8C4   20 1C A9   JSR $A91C
A8C7   90 05      BCC $A8CE
A8C9   20 1C A9   JSR $A91C
A8CC   90 FB      BCC $A8C9
A8CE   A5 56      LDA $56
A8D0   C9 A7      CMP #$A7
A8D2   90 08      BCC $A8DC
A8D4   D0 0A      BNE $A8E0
A8D6   A9 AE      LDA #$AE
A8D8   C5 55      CMP $55
A8DA   90 04      BCC $A8E0
A8DC   68         PLA
A8DD   4C BF A8   JMP $A8BF
A8E0   68         PLA
A8E1   4C F4 A8   JMP $A8F4
A8E4   20 0E A9   JSR $A90E
A8E7   90 FB      BCC $A8E4
A8E9   20 FB A8   JSR $A8FB
A8EC   20 0E A9   JSR $A90E
A8EF   90 F8      BCC $A8E9
A8F1   20 FB A8   JSR $A8FB
A8F4   68         PLA
A8F5   85 56      STA $56
A8F7   68         PLA
A8F8   85 55      STA $55
A8FA   60         RTS
A8FB   C9 20      CMP #$20
A8FD   B0 0B      BCS $A90A
A8FF   AA         TAX
A900   A9 20      LDA #$20
A902   91 CF      STA ($CF),Y
A904   C8         INY
A905   8A         TXA
A906   20 AD A8   JSR $A8AD
A909   60         RTS
A90A   91 CF      STA ($CF),Y
A90C   C8         INY
A90D   60         RTS
A90E   E6 55      INC $55
A910   D0 02      BNE $A914
A912   E6 56      INC $56
A914   A1 55      LDA ($55,X)
A916   0A         ASL
A917   A1 55      LDA ($55,X)
A919   29 7F      AND #$7F
A91B   60         RTS
A91C   20 14 A9   JSR $A914
A91F   E6 55      INC $55
A921   D0 02      BNE $A925
A923   E6 56      INC $56
A925   60         RTS

; Autoboot-Routine

A926   .BY $26,$43,$4F,$50,$59,$52,$49,$47      ; &COPYRIGHT CBM 86
A92E   .BY $48,$54,$20,$43,$42,$4D,$20,$38
A936   .BY $36,$0D

; JCBMBOOT: Autoboot-Programm aufrufen

A938   20 0F AA   JSR $AA0F
A93B   08         PHP
A93C   58         CLI
A93D   A0 11      LDY #$11
A93F   84 29      STY $29
A941   B9 26 A9   LDA $A926,Y
A944   99 00 02   STA $0200,Y
A947   88         DEY
A948   10 F7      BPL $A941
A94A   30 0A      BMI $A956

; JCBMBOOTRTN: Rücksprung aus dem Autoboot-Programm

A94C   A6 4F      LDX $4F
A94E   9A         TXS
A94F   20 95 BA   JSR $BA95
A952   78         SEI
A953   4C DE AF   JMP $AFDE

; Utility-Loader

A956   20 AE 84   JSR $84AE
A959   A5 91      LDA $91
A95B   C9 02      CMP #$02
A95D   D0 1D      BNE $A97C
A95F   A9 01      LDA #$01
A961   8D 91 02   STA $0291
A964   20 FD 81   JSR $81FD
A967   AD 2F 02   LDA $022F
A96A   48         PHA
A96B   A9 01      LDA #$01
A96D   8D 2F 02   STA $022F
A970   A9 FF      LDA #$FF
A972   85 55      STA $55
A974   20 B9 82   JSR $82B9
A977   AD 97 02   LDA $0297
A97A   D0 05      BNE $A981
A97C   A9 39      LDA #$39
A97E   20 7C 80   JSR $807C
A981   68         PLA
A982   8D 2F 02   STA $022F
A985   AD 97 02   LDA $0297
A988   85 4D      STA $4D
A98A   AD 9C 02   LDA $029C
A98D   85 4E      STA $4E
A98F   A9 03      LDA #$03
A991   20 D1 93   JSR $93D1
A994   A9 00      LDA #$00
A996   85 56      STA $56
A998   20 F5 A9   JSR $A9F5
A99B   85 57      STA $57
A99D   20 07 AA   JSR $AA07
A9A0   20 F5 A9   JSR $A9F5
A9A3   85 58      STA $58
A9A5   20 07 AA   JSR $AA07
A9A8   A5 55      LDA $55
A9AA   F0 0A      BEQ $A9B6
A9AC   A5 57      LDA $57
A9AE   48         PHA
A9AF   A5 58      LDA $58
A9B1   48         PHA
A9B2   A9 00      LDA #$00
A9B4   85 55      STA $55
A9B6   20 F5 A9   JSR $A9F5
A9B9   85 59      STA $59
A9BB   20 07 AA   JSR $AA07
A9BE   20 F5 A9   JSR $A9F5
A9C1   A0 00      LDY #$00
A9C3   91 57      STA ($57),Y
A9C5   20 07 AA   JSR $AA07
A9C8   A5 57      LDA $57
A9CA   18         CLC
A9CB   69 01      ADC #$01
A9CD   85 57      STA $57
A9CF   90 02      BCC $A9D3
A9D1   E6 58      INC $58
A9D3   C6 59      DEC $59
A9D5   D0 E7      BNE $A9BE
A9D7   20 76 88   JSR $8876
A9DA   A5 54      LDA $54
A9DC   C5 56      CMP $56
A9DE   F0 08      BEQ $A9E8
A9E0   20 7C 9D   JSR $9D7C
A9E3   A9 50      LDA #$50
A9E5   20 3F FF   JSR $FF3F
A9E8   A5 51      LDA $51
A9EA   D0 A8      BNE $A994
A9EC   68         PLA
A9ED   85 58      STA $58
A9EF   68         PLA
A9F0   85 57      STA $57
A9F2   6C 57 00   JMP ($0057)
A9F5   20 76 88   JSR $8876
A9F8   A5 51      LDA $51
A9FA   D0 08      BNE $AA04
A9FC   20 7C 9D   JSR $9D7C
A9FF   A9 51      LDA #$51
AA01   20 3F FF   JSR $FF3F
AA04   A5 54      LDA $54
AA06   60         RTS
AA07   18         CLC
AA08   65 56      ADC $56
AA0A   69 00      ADC #$00
AA0C   85 56      STA $56
AA0E   60         RTS

; Sprungadressen der Error-Routinen merken

AA0F   20 7C BA   JSR $BA7C
AA12   A9 4C      LDA #$4C
AA14   8D BA 01   STA $01BA
AA17   A9 A9      LDA #$A9
AA19   8D BB 01   STA $01BB
AA1C   A9 4C      LDA #$4C
AA1E   8D AE 01   STA $01AE
AA21   A9 A9      LDA #$A9
AA23   8D AF 01   STA $01AF
AA26   60         RTS

; Sektorversatz einstellen

AA27   AD 04 02   LDA $0204
AA2A   85 2E      STA $2E
AA2C   60         RTS

; Anzahl der Leseversuche einstellen

AA2D   AD 04 02   LDA $0204
AA30   85 30      STA $30
AA32   60         RTS

; Cache-Verzögerung einstellen

AA33   AD 04 02   LDA $0204
AA36   85 9D      STA $9D
AA38   60         RTS

; ROM-Test

AA39   4C 1D AB   JMP $AB1D

; Burst-Befehl $1e: CHGUTL

AA3C   78         SEI
AA3D   A6 29      LDX $29
AA3F   E0 04      CPX #$04
AA41   90 40      BCC $AA83
AA43   AD 03 02   LDA $0203
AA46   C9 49      CMP #$49
AA48   F0 E9      BEQ $AA33
AA4A   AD 03 02   LDA $0203
AA4D   C9 42      CMP #$42
AA4F   F0 37      BEQ $AA88
AA51   C9 53      CMP #$53
AA53   F0 D2      BEQ $AA27
AA55   C9 52      CMP #$52
AA57   F0 D4      BEQ $AA2D
AA59   C9 54      CMP #$54
AA5B   F0 DC      BEQ $AA39
AA5D   C9 4D      CMP #$4D
AA5F   F0 47      BEQ $AAA8
AA61   C9 56      CMP #$56
AA63   F0 35      BEQ $AA9A
AA65   A8         TAY
AA66   C0 04      CPY #$04
AA68   90 19      BCC $AA83
AA6A   C0 1F      CPY #$1F
AA6C   B0 15      BCS $AA83
AA6E   A9 40      LDA #$40
AA70   85 78      STA $78
AA72   A9 20      LDA #$20
AA74   85 77      STA $77
AA76   98         TYA
AA77   18         CLC
AA78   65 78      ADC $78
AA7A   85 78      STA $78
AA7C   98         TYA
AA7D   18         CLC
AA7E   65 77      ADC $77
AA80   85 77      STA $77
AA82   60         RTS
AA83   A9 31      LDA #$31
AA85   4C 7C 80   JMP $807C
AA88   A5 76      LDA $76
AA8A   29 F7      AND #$F7
AA8C   85 76      STA $76
AA8E   20 09 AB   JSR $AB09
AA91   4A         LSR
AA92   4A         LSR
AA93   4A         LSR
AA94   4A         LSR
AA95   05 76      ORA $76
AA97   85 76      STA $76
AA99   60         RTS
AA9A   A5 8D      LDA $8D
AA9C   29 7F      AND #$7F
AA9E   85 8D      STA $8D
AAA0   20 09 AB   JSR $AB09
AAA3   05 8D      ORA $8D
AAA5   85 8D      STA $8D
AAA7   60         RTS

; Burst-Memory-Read/Write

AAA8   78         SEI
AAA9   A5 76      LDA $76
AAAB   29 FB      AND #$FB
AAAD   85 76      STA $76
AAAF   A0 00      LDY #$00
AAB1   84 46      STY $46
AAB3   AD 05 02   LDA $0205
AAB6   85 47      STA $47
AAB8   AD 04 02   LDA $0204
AABB   C9 57      CMP #$57
AABD   F0 18      BEQ $AAD7
AABF   C9 52      CMP #$52
AAC1   D0 3D      BNE $AB00
AAC3   20 D4 AC   JSR $ACD4
AAC6   B1 46      LDA ($46),Y
AAC8   20 86 BF   JSR $BF86
AACB   C8         INY
AACC   D0 F8      BNE $AAC6
AACE   E6 47      INC $47
AAD0   CE 06 02   DEC $0206
AAD3   D0 F1      BNE $AAC6
AAD5   F0 26      BEQ $AAFD
AAD7   AD 01 40   LDA $4001
AADA   49 08      EOR #$08
AADC   2C 0D 40   BIT $400D
AADF   8D 01 40   STA $4001
AAE2   A9 08      LDA #$08
AAE4   2C 01 40   BIT $4001
AAE7   30 1A      BMI $AB03
AAE9   2C 0D 40   BIT $400D
AAEC   F0 F6      BEQ $AAE4
AAEE   AD 0C 40   LDA $400C
AAF1   91 46      STA ($46),Y
AAF3   C8         INY
AAF4   D0 E1      BNE $AAD7
AAF6   E6 47      INC $47
AAF8   CE 06 02   DEC $0206
AAFB   D0 DA      BNE $AAD7
AAFD   4C 4C 80   JMP $804C
AB00   4C 83 AA   JMP $AA83
AB03   20 15 AD   JSR $AD15
AB06   4C E4 AA   JMP $AAE4

; Parameter '0' und '1' auswerten

AB09   AD 04 02   LDA $0204
AB0C   C9 31      CMP #$31
AB0E   F0 07      BEQ $AB17
AB10   C9 30      CMP #$30
AB12   F0 03      BEQ $AB17
AB14   4C 83 AA   JMP $AA83
AB17   29 01      AND #$01
AB19   18         CLC
AB1A   6A         ROR
AB1B   6A         ROR
AB1C   60         RTS

; ROM-Signatur prüfen (CRC-Test)

AB1D   08         PHP
AB1E   78         SEI
AB1F   A5 02      LDA $02
AB21   48         PHA
AB22   A5 03      LDA $03
AB24   48         PHA
AB25   A5 04      LDA $04
AB27   48         PHA
AB28   A5 05      LDA $05
AB2A   48         PHA
AB2B   A5 06      LDA $06
AB2D   48         PHA
AB2E   A5 07      LDA $07
AB30   48         PHA
AB31   A5 08      LDA $08
AB33   48         PHA
AB34   A5 09      LDA $09
AB36   48         PHA
AB37   A5 0A      LDA $0A
AB39   48         PHA
AB3A   A9 FF      LDA #$FF
AB3C   85 07      STA $07
AB3E   85 08      STA $08
AB40   A9 00      LDA #$00
AB42   85 09      STA $09
AB44   A9 80      LDA #$80
AB46   85 0A      STA $0A
AB48   A0 02      LDY #$02
AB4A   B1 09      LDA ($09),Y
AB4C   85 03      STA $03
AB4E   AA         TAX
AB4F   C8         INY
AB50   B1 09      LDA ($09),Y
AB52   85 02      STA $02
AB54   8A         TXA
AB55   A2 10      LDX #$10
AB57   85 04      STA $04
AB59   18         CLC
AB5A   26 02      ROL $02
AB5C   26 03      ROL $03
AB5E   A9 00      LDA #$00
AB60   85 05      STA $05
AB62   85 06      STA $06
AB64   24 04      BIT $04
AB66   10 08      BPL $AB70
AB68   A9 21      LDA #$21
AB6A   85 05      STA $05
AB6C   A9 10      LDA #$10
AB6E   85 06      STA $06
AB70   24 08      BIT $08
AB72   10 0C      BPL $AB80
AB74   A5 05      LDA $05
AB76   49 21      EOR #$21
AB78   85 05      STA $05
AB7A   A5 06      LDA $06
AB7C   49 10      EOR #$10
AB7E   85 06      STA $06
AB80   18         CLC
AB81   26 07      ROL $07
AB83   26 08      ROL $08
AB85   A5 07      LDA $07
AB87   45 05      EOR $05
AB89   85 07      STA $07
AB8B   A5 08      LDA $08
AB8D   45 06      EOR $06
AB8F   85 08      STA $08
AB91   A5 03      LDA $03
AB93   CA         DEX
AB94   D0 C1      BNE $AB57
AB96   C8         INY
AB97   D0 B1      BNE $AB4A
AB99   E6 0A      INC $0A
AB9B   D0 AD      BNE $AB4A
AB9D   A4 07      LDY $07
AB9F   A6 08      LDX $08
ABA1   68         PLA
ABA2   85 0A      STA $0A
ABA4   68         PLA
ABA5   85 09      STA $09
ABA7   68         PLA
ABA8   85 08      STA $08
ABAA   68         PLA
ABAB   85 07      STA $07
ABAD   68         PLA
ABAE   85 06      STA $06
ABB0   68         PLA
ABB1   85 05      STA $05
ABB3   68         PLA
ABB4   85 04      STA $04
ABB6   68         PLA
ABB7   85 03      STA $03
ABB9   68         PLA
ABBA   85 02      STA $02
ABBC   CC 00 80   CPY $8000
ABBF   D0 07      BNE $ABC8
ABC1   EC 01 80   CPX $8001
ABC4   D0 02      BNE $ABC8
ABC6   28         PLP
ABC7   60         RTS
ABC8   A2 03      LDX #$03
ABCA   86 40      STX $40
ABCC   4C F5 AE   JMP $AEF5

; ATN-bearbeiten

ABCF   78         SEI
ABD0   A5 9D      LDA $9D
ABD2   85 9C      STA $9C
ABD4   A5 76      LDA $76
ABD6   29 3E      AND #$3E
ABD8   85 76      STA $76
ABDA   A6 4F      LDX $4F
ABDC   9A         TXS
ABDD   20 BB AC   JSR $ACBB
ABE0   A9 80      LDA #$80
ABE2   85 51      STA $51
ABE4   A5 76      LDA $76
ABE6   09 02      ORA #$02
ABE8   85 76      STA $76
ABEA   20 03 AD   JSR $AD03
ABED   20 F1 AC   JSR $ACF1
ABF0   AD 01 40   LDA $4001
ABF3   29 EF      AND #$EF
ABF5   8D 01 40   STA $4001
ABF8   AD 01 40   LDA $4001
ABFB   10 5D      BPL $AC5A
ABFD   29 04      AND #$04
ABFF   D0 F7      BNE $ABF8
AC01   20 42 AE   JSR $AE42
AC04   C9 3F      CMP #$3F
AC06   D0 09      BNE $AC11
AC08   A5 76      LDA $76
AC0A   29 9F      AND #$9F
AC0C   85 76      STA $76
AC0E   4C 1B AC   JMP $AC1B
AC11   C9 5F      CMP #$5F
AC13   D0 09      BNE $AC1E
AC15   A5 76      LDA $76
AC17   29 5F      AND #$5F
AC19   85 76      STA $76
AC1B   4C 96 AC   JMP $AC96
AC1E   C5 78      CMP $78
AC20   D0 0A      BNE $AC2C
AC22   A5 76      LDA $76
AC24   09 80      ORA #$80
AC26   29 BF      AND #$BF
AC28   85 76      STA $76
AC2A   D0 29      BNE $AC55
AC2C   C5 77      CMP $77
AC2E   D0 0A      BNE $AC3A
AC30   A5 76      LDA $76
AC32   09 40      ORA #$40
AC34   29 7F      AND #$7F
AC36   85 76      STA $76
AC38   D0 1B      BNE $AC55
AC3A   AA         TAX
AC3B   29 60      AND #$60
AC3D   C9 60      CMP #$60
AC3F   D0 50      BNE $AC91
AC41   8A         TXA
AC42   85 53      STA $53
AC44   29 0F      AND #$0F
AC46   85 52      STA $52
AC48   A5 53      LDA $53
AC4A   29 F0      AND #$F0
AC4C   C9 E0      CMP #$E0
AC4E   D0 46      BNE $AC96
AC50   58         CLI
AC51   20 5C 99   JSR $995C
AC54   78         SEI
AC55   2C 01 40   BIT $4001
AC58   30 A7      BMI $AC01
AC5A   A5 76      LDA $76
AC5C   29 FD      AND #$FD
AC5E   85 76      STA $76
AC60   AD 01 40   LDA $4001
AC63   09 10      ORA #$10
AC65   8D 01 40   STA $4001
AC68   24 76      BIT $76
AC6A   50 0F      BVC $AC7B
AC6C   A9 20      LDA #$20
AC6E   24 76      BIT $76
AC70   F0 03      BEQ $AC75
AC72   20 9D AC   JSR $AC9D
AC75   20 36 FF   JSR $FF36
AC78   4C E4 AE   JMP $AEE4
AC7B   24 76      BIT $76
AC7D   10 0F      BPL $AC8E
AC7F   20 E8 AC   JSR $ACE8
AC82   20 FA AC   JSR $ACFA
AC85   20 2F AD   JSR $AD2F
AC88   20 33 FF   JSR $FF33
AC8B   20 2F AD   JSR $AD2F
AC8E   4C DF AE   JMP $AEDF
AC91   A9 00      LDA #$00
AC93   8D 01 40   STA $4001
AC96   2C 01 40   BIT $4001
AC99   10 BF      BPL $AC5A
AC9B   30 F9      BMI $AC96

; FSM: DRF (Device Request Fast) Signal senden

AC9D   20 15 AD   JSR $AD15
ACA0   20 0C AD   JSR $AD0C
ACA3   29 04      AND #$04
ACA5   D0 F6      BNE $AC9D
ACA7   20 D4 AC   JSR $ACD4
ACAA   A9 00      LDA #$00
ACAC   8D 0C 40   STA $400C
ACAF   A9 08      LDA #$08
ACB1   2C 0D 40   BIT $400D
ACB4   F0 FB      BEQ $ACB1

; FSM auf Eingang schalten

ACB6   EA         NOP
ACB7   EA         NOP
ACB8   EA         NOP
ACB9   EA         NOP
ACBA   EA         NOP
ACBB   08         PHP
ACBC   78         SEI
ACBD   AD 0E 40   LDA $400E
ACC0   29 BF      AND #$BF
ACC2   20 C7 DB   JSR $DBC7
ACC5   AD 01 40   LDA $4001
ACC8   29 DF      AND #$DF
ACCA   8D 01 40   STA $4001
ACCD   28         PLP
ACCE   60         RTS

; FSM auf Ausgabe schalten

ACCF   EA         NOP
ACD0   EA         NOP
ACD1   EA         NOP
ACD2   EA         NOP
ACD3   EA         NOP
ACD4   08         PHP
ACD5   78         SEI
ACD6   AD 01 40   LDA $4001
ACD9   09 20      ORA #$20
ACDB   8D 01 40   STA $4001
ACDE   AD 0E 40   LDA $400E
ACE1   09 40      ORA #$40
ACE3   20 E0 DB   JSR $DBE0
ACE6   28         PLP
ACE7   60         RTS

; DATA OUT auf Lo

ACE8   AD 01 40   LDA $4001
ACEB   29 FD      AND #$FD
ACED   8D 01 40   STA $4001
ACF0   60         RTS

; DATA OUT auf Hi

ACF1   AD 01 40   LDA $4001
ACF4   09 02      ORA #$02
ACF6   8D 01 40   STA $4001
ACF9   60         RTS

; CLOCK OUT auf Hi

ACFA   AD 01 40   LDA $4001
ACFD   09 08      ORA #$08
ACFF   8D 01 40   STA $4001
AD02   60         RTS

; CLOCK OUT auf Lo

AD03   AD 01 40   LDA $4001
AD06   29 F7      AND #$F7
AD08   8D 01 40   STA $4001
AD0B   60         RTS

; Bus auslesen und entprellen

AD0C   AD 01 40   LDA $4001
AD0F   CD 01 40   CMP $4001
AD12   D0 F8      BNE $AD0C
AD14   60         RTS

; ATN-Modus testen

AD15   A9 02      LDA #$02
AD17   24 76      BIT $76
AD19   F0 06      BEQ $AD21
AD1B   AD 01 40   LDA $4001
AD1E   10 0C      BPL $AD2C
AD20   60         RTS
AD21   AD 01 40   LDA $4001
AD24   10 FA      BPL $AD20
AD26   2C 0D 40   BIT $400D
AD29   4C 30 FF   JMP $FF30
AD2C   4C 5A AC   JMP $AC5A

; Kurze Zeit warten

AD2F   8A         TXA
AD30   A2 0C      LDX #$0C
AD32   D0 03      BNE $AD37
AD34   8A         TXA
AD35   A2 03      LDX #$03
AD37   CA         DEX
AD38   D0 FD      BNE $AD37
AD3A   AA         TAX
AD3B   60         RTS

; NMI-Routine

AD3C   AD 02 02   LDA $0202
AD3F   C9 2D      CMP #$2D
AD41   F0 05      BEQ $AD48
AD43   38         SEC
AD44   E9 2B      SBC #$2B
AD46   D0 11      BNE $AD59
AD48   29 02      AND #$02
AD4A   0A         ASL
AD4B   0A         ASL
AD4C   0A         ASL
AD4D   85 38      STA $38
AD4F   78         SEI
AD50   A5 76      LDA $76
AD52   29 EF      AND #$EF
AD54   05 38      ORA $38
AD56   85 76      STA $76
AD58   60         RTS
AD59   4C 06 FF   JMP $FF06

; Daten auf seriellen Bus ausgeben

AD5C   78         SEI
AD5D   20 27 90   JSR $9027
AD60   B0 07      BCS $AD69
AD62   A6 50      LDX $50
AD64   BD 34 02   LDA $0234,X
AD67   30 01      BMI $AD6A
AD69   60         RTS
AD6A   20 15 AD   JSR $AD15
AD6D   20 0C AD   JSR $AD0C
AD70   29 01      AND #$01
AD72   08         PHP
AD73   20 03 AD   JSR $AD03
AD76   28         PLP
AD77   F0 13      BEQ $AD8C
AD79   20 15 AD   JSR $AD15
AD7C   20 0C AD   JSR $AD0C
AD7F   29 01      AND #$01
AD81   D0 F6      BNE $AD79
AD83   A6 50      LDX $50
AD85   BD 34 02   LDA $0234,X
AD88   29 08      AND #$08
AD8A   D0 14      BNE $ADA0
AD8C   20 15 AD   JSR $AD15
AD8F   20 0C AD   JSR $AD0C
AD92   29 01      AND #$01
AD94   D0 F6      BNE $AD8C
AD96   20 15 AD   JSR $AD15
AD99   20 0C AD   JSR $AD0C
AD9C   29 01      AND #$01
AD9E   F0 F6      BEQ $AD96
ADA0   20 FA AC   JSR $ACFA
ADA3   20 15 AD   JSR $AD15
ADA6   20 0C AD   JSR $AD0C
ADA9   29 01      AND #$01
ADAB   D0 F3      BNE $ADA0
ADAD   A9 20      LDA #$20
ADAF   24 76      BIT $76
ADB1   F0 34      BEQ $ADE7
ADB3   AD 01 40   LDA $4001
ADB6   09 20      ORA #$20
ADB8   8D 01 40   STA $4001
ADBB   AD 0E 40   LDA $400E
ADBE   09 40      ORA #$40
ADC0   8D 0E 40   STA $400E
ADC3   2C 0D 40   BIT $400D
ADC6   A6 50      LDX $50
ADC8   BD 3B 02   LDA $023B,X
ADCB   8D 0C 40   STA $400C
ADCE   A9 08      LDA #$08
ADD0   2C 0D 40   BIT $400D
ADD3   F0 FB      BEQ $ADD0
ADD5   AD 0E 40   LDA $400E
ADD8   29 BF      AND #$BF
ADDA   8D 0E 40   STA $400E
ADDD   AD 01 40   LDA $4001
ADE0   29 DF      AND #$DF
ADE2   8D 01 40   STA $4001
ADE5   D0 43      BNE $AE2A
ADE7   A9 08      LDA #$08
ADE9   85 66      STA $66
ADEB   20 0C AD   JSR $AD0C
ADEE   29 01      AND #$01
ADF0   D0 4D      BNE $AE3F
ADF2   A6 50      LDX $50
ADF4   BD 3B 02   LDA $023B,X
ADF7   6A         ROR
ADF8   9D 3B 02   STA $023B,X
ADFB   B0 05      BCS $AE02
ADFD   20 F1 AC   JSR $ACF1
AE00   D0 03      BNE $AE05
AE02   20 E8 AC   JSR $ACE8
AE05   20 34 AD   JSR $AD34
AE08   A9 10      LDA #$10
AE0A   24 76      BIT $76
AE0C   D0 03      BNE $AE11
AE0E   20 2F AD   JSR $AD2F
AE11   20 03 AD   JSR $AD03
AE14   20 34 AD   JSR $AD34
AE17   A9 10      LDA #$10
AE19   24 76      BIT $76
AE1B   D0 03      BNE $AE20
AE1D   20 2F AD   JSR $AD2F
AE20   20 FA AC   JSR $ACFA
AE23   20 E8 AC   JSR $ACE8
AE26   C6 66      DEC $66
AE28   D0 C1      BNE $ADEB
AE2A   20 15 AD   JSR $AD15
AE2D   20 0C AD   JSR $AD0C
AE30   29 01      AND #$01
AE32   F0 F6      BEQ $AE2A
AE34   58         CLI
AE35   20 03 93   JSR $9303
AE38   78         SEI
AE39   20 15 AD   JSR $AD15
AE3C   4C 62 AD   JMP $AD62
AE3F   4C D9 AE   JMP $AED9

; Byte vom seriellen Bus holen

AE42   2C 0D 40   BIT $400D
AE45   A9 08      LDA #$08
AE47   85 66      STA $66
AE49   20 15 AD   JSR $AD15
AE4C   20 0C AD   JSR $AD0C
AE4F   29 04      AND #$04
AE51   D0 F6      BNE $AE49
AE53   20 E8 AC   JSR $ACE8
AE56   A9 01      LDA #$01
AE58   2C 01 40   BIT $4001
AE5B   D0 FB      BNE $AE58
AE5D   A2 0A      LDX #$0A
AE5F   20 15 AD   JSR $AD15
AE62   CA         DEX
AE63   F0 09      BEQ $AE6E
AE65   20 0C AD   JSR $AD0C
AE68   29 04      AND #$04
AE6A   F0 F3      BEQ $AE5F
AE6C   D0 19      BNE $AE87
AE6E   20 F1 AC   JSR $ACF1
AE71   A2 18      LDX #$18
AE73   CA         DEX
AE74   D0 FD      BNE $AE73
AE76   20 E8 AC   JSR $ACE8
AE79   20 15 AD   JSR $AD15
AE7C   20 0C AD   JSR $AD0C
AE7F   29 04      AND #$04
AE81   F0 F6      BEQ $AE79
AE83   A9 00      LDA #$00
AE85   85 51      STA $51
AE87   AD 01 40   LDA $4001
AE8A   49 01      EOR #$01
AE8C   AA         TAX
AE8D   AD 0D 40   LDA $400D
AE90   29 08      AND #$08
AE92   F0 08      BEQ $AE9C
AE94   AD 0C 40   LDA $400C
AE97   85 54      STA $54
AE99   4C B2 AE   JMP $AEB2
AE9C   8A         TXA
AE9D   4A         LSR
AE9E   29 02      AND #$02
AEA0   D0 E5      BNE $AE87
AEA2   66 54      ROR $54
AEA4   20 15 AD   JSR $AD15
AEA7   20 0C AD   JSR $AD0C
AEAA   29 04      AND #$04
AEAC   F0 F6      BEQ $AEA4
AEAE   C6 66      DEC $66
AEB0   D0 D5      BNE $AE87
AEB2   20 F1 AC   JSR $ACF1
AEB5   A5 54      LDA $54
AEB7   60         RTS

; Daten vom seriellem Bus holen

AEB8   78         SEI
AEB9   20 42 90   JSR $9042
AEBC   B0 06      BCS $AEC4
AEBE   BD 34 02   LDA $0234,X
AEC1   6A         ROR
AEC2   B0 0B      BCS $AECF
AEC4   A5 53      LDA $53
AEC6   29 F0      AND #$F0
AEC8   C9 F0      CMP #$F0
AECA   F0 03      BEQ $AECF
AECC   4C DF AE   JMP $AEDF
AECF   20 42 AE   JSR $AE42
AED2   58         CLI
AED3   20 78 8E   JSR $8E78
AED6   4C B8 AE   JMP $AEB8

; Ende bei Übertragungsfehler

AED9   A5 76      LDA $76
AEDB   29 DF      AND #$DF
AEDD   85 76      STA $76

; Busbetrieb beenden

AEDF   A9 10      LDA #$10
AEE1   8D 01 40   STA $4001
AEE4   20 BB AC   JSR $ACBB
AEE7   4C 00 FF   JMP $FF00

; JSPINOUT: FSM-Datenrichtung festlegen

AEEA   B0 03      BCS $AEEF
AEEC   4C BB AC   JMP $ACBB
AEEF   4C D4 AC   JMP $ACD4

; Fehlerblinken nach Selbsttest

AEF2   A2 00      LDX #$00
AEF4   2C         .BY $2C
AEF5   A6 40      LDX $40
AEF7   9A         TXS
AEF8   BA         TSX
AEF9   A9 60      LDA #$60
AEFB   0D 00 40   ORA $4000
AEFE   8D 00 40   STA $4000
AF01   98         TYA
AF02   18         CLC
AF03   69 01      ADC #$01
AF05   D0 FC      BNE $AF03
AF07   88         DEY
AF08   D0 F8      BNE $AF02
AF0A   AD 00 40   LDA $4000
AF0D   29 9F      AND #$9F
AF0F   8D 00 40   STA $4000
AF12   98         TYA
AF13   18         CLC
AF14   69 01      ADC #$01
AF16   D0 FC      BNE $AF14
AF18   88         DEY
AF19   D0 F8      BNE $AF13
AF1B   CA         DEX
AF1C   10 DB      BPL $AEF9
AF1E   E0 F9      CPX #$F9
AF20   D0 F0      BNE $AF12
AF22   F0 D4      BEQ $AEF8

; Reset-Routine

AF24   78         SEI
AF25   D8         CLD
AF26   A9 FE      LDA #$FE
AF28   8D 00 40   STA $4000
AF2B   A9 65      LDA #$65
AF2D   8D 02 40   STA $4002
AF30   A9 D5      LDA #$D5
AF32   8D 01 40   STA $4001
AF35   A9 3A      LDA #$3A
AF37   8D 03 40   STA $4003
AF3A   A9 00      LDA #$00
AF3C   8D 05 40   STA $4005
AF3F   A9 06      LDA #$06
AF41   8D 04 40   STA $4004
AF44   A9 01      LDA #$01
AF46   8D 0E 40   STA $400E
AF49   A9 9A      LDA #$9A
AF4B   8D 0D 40   STA $400D
AF4E   A0 00      LDY #$00
AF50   A2 00      LDX #$00
AF52   8A         TXA
AF53   95 00      STA $00,X
AF55   E8         INX
AF56   D0 FA      BNE $AF52
AF58   8A         TXA
AF59   D5 00      CMP $00,X
AF5B   D0 95      BNE $AEF2
AF5D   F6 00      INC $00,X
AF5F   C8         INY
AF60   D0 FB      BNE $AF5D
AF62   D5 00      CMP $00,X
AF64   D0 8C      BNE $AEF2
AF66   94 00      STY $00,X
AF68   B5 00      LDA $00,X
AF6A   D0 86      BNE $AEF2
AF6C   E8         INX
AF6D   D0 E9      BNE $AF58
AF6F   E6 40      INC $40
AF71   A2 7F      LDX #$7F
AF73   86 47      STX $47
AF75   E8         INX
AF76   A9 00      LDA #$00
AF78   85 46      STA $46
AF7A   A0 02      LDY #$02
AF7C   18         CLC
AF7D   E6 47      INC $47
AF7F   71 46      ADC ($46),Y
AF81   C8         INY
AF82   D0 FB      BNE $AF7F
AF84   CA         DEX
AF85   D0 F6      BNE $AF7D
AF87   69 FF      ADC #$FF
AF89   85 47      STA $47
AF8B   D0 00      BNE $AF8D
AF8D   A9 01      LDA #$01
AF8F   85 47      STA $47
AF91   E6 40      INC $40
AF93   A2 1F      LDX #$1F
AF95   98         TYA
AF96   18         CLC
AF97   65 47      ADC $47
AF99   91 46      STA ($46),Y
AF9B   C8         INY
AF9C   D0 F7      BNE $AF95
AF9E   E6 47      INC $47
AFA0   CA         DEX
AFA1   D0 F2      BNE $AF95
AFA3   A2 1F      LDX #$1F
AFA5   C6 47      DEC $47
AFA7   88         DEY
AFA8   98         TYA
AFA9   18         CLC
AFAA   65 47      ADC $47
AFAC   D1 46      CMP ($46),Y
AFAE   D0 17      BNE $AFC7
AFB0   49 FF      EOR #$FF
AFB2   91 46      STA ($46),Y
AFB4   51 46      EOR ($46),Y
AFB6   91 46      STA ($46),Y
AFB8   D0 0D      BNE $AFC7
AFBA   98         TYA
AFBB   D0 EA      BNE $AFA7
AFBD   CA         DEX
AFBE   D0 E5      BNE $AFA5
AFC0   A9 80      LDA #$80
AFC2   8D FB 01   STA $01FB
AFC5   D0 03      BNE $AFCA
AFC7   4C F5 AE   JMP $AEF5

; Warmstart

AFCA   78         SEI
AFCB   A2 8F      LDX #$8F
AFCD   86 4F      STX $4F
AFCF   9A         TXS
AFD0   20 AD FF   JSR $FFAD
AFD3   20 E9 AF   JSR $AFE9
AFD6   2C FB 01   BIT $01FB
AFD9   10 03      BPL $AFDE
AFDB   4C 38 A9   JMP $A938
AFDE   A9 73      LDA #$73
AFE0   20 67 A8   JSR $A867
AFE3   20 15 AD   JSR $AD15
AFE6   4C 00 FF   JMP $FF00

; DOS-Tabellen initialisieren

AFE9   AD 00 40   LDA $4000
AFEC   29 18      AND #$18
AFEE   4A         LSR
AFEF   4A         LSR
AFF0   4A         LSR
AFF1   09 48      ORA #$48
AFF3   85 78      STA $78
AFF5   49 60      EOR #$60
AFF7   85 77      STA $77
AFF9   A2 08      LDX #$08
AFFB   A9 0B      LDA #$0B
AFFD   9D F1 01   STA $01F1,X
B000   38         SEC
B001   E9 01      SBC #$01
B003   CA         DEX
B004   10 F7      BPL $AFFD
B006   A2 00      LDX #$00
B008   A0 00      LDY #$00
B00A   A9 00      LDA #$00
B00C   95 BB      STA $BB,X
B00E   E8         INX
B00F   B9 F1 01   LDA $01F1,Y
B012   95 BB      STA $BB,X
B014   E8         INX
B015   C8         INY
B016   C0 09      CPY #$09
B018   D0 F0      BNE $B00A
B01A   A9 00      LDA #$00
B01C   95 BB      STA $BB,X
B01E   A9 02      LDA #$02
B020   95 BC      STA $BC,X
B022   A9 D0      LDA #$D0
B024   95 BD      STA $BD,X
B026   A9 02      LDA #$02
B028   95 BE      STA $BE,X
B02A   A9 FF      LDA #$FF
B02C   A2 12      LDX #$12
B02E   95 A8      STA $A8,X
B030   CA         DEX
B031   10 FB      BPL $B02E
B033   A2 06      LDX #$06
B035   95 D1      STA $D1,X
B037   95 D8      STA $D8,X
B039   9D 65 02   STA $0265,X
B03C   CA         DEX
B03D   10 F6      BPL $B035
B03F   A9 09      LDA #$09
B041   85 D6      STA $D6
B043   A9 0A      LDA #$0A
B045   85 D7      STA $D7
B047   A9 06      LDA #$06
B049   85 B8      STA $B8
B04B   A9 85      LDA #$85
B04D   85 B7      STA $B7
B04F   A9 1F      LDA #$1F
B051   85 70      STA $70
B053   A9 01      LDA #$01
B055   8D 39 02   STA $0239
B058   A9 88      LDA #$88
B05A   8D 3A 02   STA $023A
B05D   A9 80      LDA #$80
B05F   85 6D      STA $6D
B061   A9 01      LDA #$01
B063   85 25      STA $25
B065   20 C3 89   JSR $89C3
B068   20 59 8D   JSR $8D59
B06B   A9 01      LDA #$01
B06D   85 2E      STA $2E
B06F   A9 02      LDA #$02
B071   85 30      STA $30
B073   A9 00      LDA #$00
B075   85 8A      STA $8A
B077   A9 FF      LDA #$FF
B079   85 89      STA $89
B07B   A9 00      LDA #$00
B07D   85 8B      STA $8B
B07F   A9 0C      LDA #$0C
B081   85 8C      STA $8C
B083   A9 08      LDA #$08
B085   85 76      STA $76
B087   A9 33      LDA #$33
B089   8D EC 01   STA $01EC
B08C   A9 44      LDA #$44
B08E   8D EB 01   STA $01EB
B091   A9 C0      LDA #$C0
B093   85 8D      STA $8D
B095   A9 50      LDA #$50
B097   8D D9 01   STA $01D9
B09A   A9 20      LDA #$20
B09C   85 9D      STA $9D
B09E   A2 00      LDX #$00
B0A0   A9 82      LDA #$82
B0A2   20 9D 95   JSR $959D
B0A5   C9 02      CMP #$02
B0A7   B0 05      BCS $B0AE
B0A9   A9 C0      LDA #$C0
B0AB   4C 9D 95   JMP $959D
B0AE   A9 76      LDA #$76
B0B0   4C 67 A8   JMP $A867

; Ganze Diskette als Partition setzen

B0B3   A9 00      LDA #$00
B0B5   85 8E      STA $8E
B0B7   A9 01      LDA #$01
B0B9   85 90      STA $90
B0BB   A9 03      LDA #$03
B0BD   8D E5 01   STA $01E5
B0C0   A9 51      LDA #$51
B0C2   8D 2C 02   STA $022C
B0C5   A9 4F      LDA #$4F
B0C7   85 8F      STA $8F
B0C9   A9 28      LDA #$28
B0CB   8D 2B 02   STA $022B
B0CE   60         RTS

; Physikalisches 1581-Diskettenformat festlegen

B0CF   A9 28      LDA #$28
B0D1   85 75      STA $75
B0D3   A0 02      LDY #$02
B0D5   84 91      STY $91
B0D7   B9 06 BD   LDA $BD06,Y
B0DA   85 92      STA $92
B0DC   85 93      STA $93
B0DE   8D F0 01   STA $01F0
B0E1   88         DEY
B0E2   84 94      STY $94
B0E4   8C EF 01   STY $01EF
B0E7   A9 F5      LDA #$F5
B0E9   85 9B      STA $9B
B0EB   A9 23      LDA #$23
B0ED   85 9A      STA $9A
B0EF   60         RTS

; JIDLE - Hauptleerschleife

B0F0   78         SEI
B0F1   A9 10      LDA #$10
B0F3   8D 01 40   STA $4001
B0F6   58         CLI
B0F7   A5 7B      LDA $7B
B0F9   F0 0A      BEQ $B105
B0FB   A9 00      LDA #$00
B0FD   85 7B      STA $7B
B0FF   20 04 80   JSR $8004
B102   20 BB AC   JSR $ACBB
B105   58         CLI
B106   A9 01      LDA #$01
B108   24 76      BIT $76
B10A   F0 03      BEQ $B10F
B10C   4C 30 FF   JMP $FF30
B10F   A5 87      LDA $87
B111   D0 1E      BNE $B131
B113   A0 09      LDY #$09
B115   A2 0E      LDX #$0E
B117   B5 A8      LDA $A8,X
B119   C9 FF      CMP #$FF
B11B   D0 14      BNE $B131
B11D   88         DEY
B11E   30 05      BMI $B125
B120   B9 02 00   LDA $0002,Y
B123   30 0C      BMI $B131
B125   CA         DEX
B126   10 EF      BPL $B117
B128   A5 79      LDA $79
B12A   29 BF      AND #$BF
B12C   85 79      STA $79
B12E   4C 37 B1   JMP $B137
B131   A5 79      LDA $79
B133   09 40      ORA #$40
B135   85 79      STA $79
B137   A5 25      LDA $25
B139   F0 03      BEQ $B13E
B13B   20 6E 92   JSR $926E
B13E   AE AB 02   LDX $02AB
B141   F0 08      BEQ $B14B
B143   A5 79      LDA $79
B145   09 20      ORA #$20
B147   85 79      STA $79
B149   D0 06      BNE $B151
B14B   A5 79      LDA $79
B14D   29 DF      AND #$DF
B14F   85 79      STA $79
B151   A5 9C      LDA $9C
B153   D0 03      BNE $B158
B155   20 5B B1   JSR $B15B
B158   4C 05 B1   JMP $B105

; Cache am Ende der Verzögerungszeit auf Diskette schreiben

B15B   A5 87      LDA $87
B15D   F0 1C      BEQ $B17B
B15F   A9 40      LDA #$40
B161   8D A8 02   STA $02A8
B164   A5 6C      LDA $6C
B166   48         PHA
B167   A5 4D      LDA $4D
B169   48         PHA
B16A   A5 4E      LDA $4E
B16C   48         PHA
B16D   A2 07      LDX #$07
B16F   20 6C FF   JSR $FF6C
B172   68         PLA
B173   85 4E      STA $4E
B175   68         PLA
B176   85 4D      STA $4D
B178   68         PLA
B179   85 6C      STA $6C
B17B   60         RTS

; Verzeichnis formatieren und in Ausgabepuffer schreiben

B17C   A9 00      LDA #$00
B17E   85 52      STA $52
B180   A9 01      LDA #$01
B182   20 5A 91   JSR $915A
B185   A9 00      LDA #$00
B187   20 22 94   JSR $9422
B18A   A6 50      LDX $50
B18C   A9 00      LDA #$00
B18E   9D 42 02   STA $0242,X
B191   20 11 9F   JSR $9F11
B194   AA         TAX
B195   A9 00      LDA #$00
B197   9D 72 02   STA $0272,X
B19A   A9 01      LDA #$01
B19C   20 B1 8E   JSR $8EB1
B19F   A9 04      LDA #$04
B1A1   20 B1 8E   JSR $8EB1
B1A4   A9 01      LDA #$01
B1A6   20 B1 8E   JSR $8EB1
B1A9   20 B1 8E   JSR $8EB1
B1AC   AD 8D 02   LDA $028D
B1AF   20 B1 8E   JSR $8EB1
B1B2   A9 00      LDA #$00
B1B4   20 B1 8E   JSR $8EB1
B1B7   20 37 B2   JSR $B237
B1BA   20 11 9F   JSR $9F11
B1BD   0A         ASL
B1BE   AA         TAX
B1BF   D6 BB      DEC $BB,X
B1C1   D6 BB      DEC $BB,X
B1C3   A9 00      LDA #$00
B1C5   20 B1 8E   JSR $8EB1
B1C8   A9 01      LDA #$01
B1CA   20 B1 8E   JSR $8EB1
B1CD   20 B1 8E   JSR $8EB1
B1D0   20 4D 85   JSR $854D
B1D3   90 2C      BCC $B201
B1D5   AD 8D 02   LDA $028D
B1D8   20 B1 8E   JSR $8EB1
B1DB   AD 8E 02   LDA $028E
B1DE   20 B1 8E   JSR $8EB1
B1E1   20 37 B2   JSR $B237
B1E4   A9 00      LDA #$00
B1E6   20 B1 8E   JSR $8EB1
B1E9   D0 DD      BNE $B1C8
B1EB   20 11 9F   JSR $9F11
B1EE   0A         ASL
B1EF   AA         TAX
B1F0   A9 00      LDA #$00
B1F2   95 BB      STA $BB,X
B1F4   A9 88      LDA #$88
B1F6   A4 50      LDY $50
B1F8   8D 6E 02   STA $026E
B1FB   99 34 02   STA $0234,Y
B1FE   A5 54      LDA $54
B200   60         RTS
B201   AD 8D 02   LDA $028D
B204   20 B1 8E   JSR $8EB1
B207   AD 8E 02   LDA $028E
B20A   20 B1 8E   JSR $8EB1
B20D   20 37 B2   JSR $B237
B210   20 11 9F   JSR $9F11
B213   0A         ASL
B214   AA         TAX
B215   D6 BB      DEC $BB,X
B217   D6 BB      DEC $BB,X
B219   A9 00      LDA #$00
B21B   20 B1 8E   JSR $8EB1
B21E   20 B1 8E   JSR $8EB1
B221   20 B1 8E   JSR $8EB1
B224   20 11 9F   JSR $9F11
B227   0A         ASL
B228   A8         TAY
B229   B9 BB 00   LDA $00BB,Y
B22C   A6 50      LDX $50
B22E   9D 42 02   STA $0242,X
B231   DE 42 02   DEC $0242,X
B234   4C EB B1   JMP $B1EB

; Verzeichniszeile in Ausgabepuffer kopieren

B237   A0 00      LDY #$00
B239   B9 AC 02   LDA $02AC,Y
B23C   20 B1 8E   JSR $8EB1
B23F   C8         INY
B240   C0 1B      CPY #$1B
B242   D0 F5      BNE $B239
B244   60         RTS

; Byte aus Verzeichnis holen und zur Ausgabe bereitstellen

B245   20 71 90   JSR $9071
B248   F0 01      BEQ $B24B
B24A   60         RTS
B24B   85 54      STA $54
B24D   A4 50      LDY $50
B24F   B9 42 02   LDA $0242,Y
B252   F0 08      BEQ $B25C
B254   A9 80      LDA #$80
B256   99 34 02   STA $0234,Y
B259   A5 54      LDA $54
B25B   60         RTS
B25C   48         PHA
B25D   20 C8 B1   JSR $B1C8
B260   68         PLA
B261   60         RTS

; Validate-Befehl

B262   20 85 80   JSR $8085
B265   20 03 8F   JSR $8F03
B268   20 4A B4   JSR $B44A
B26B   A9 00      LDA #$00
B26D   85 73      STA $73
B26F   20 24 84   JSR $8424
B272   D0 38      BNE $B2AC
B274   A9 00      LDA #$00
B276   85 4E      STA $4E
B278   AD 2B 02   LDA $022B
B27B   85 4D      STA $4D
B27D   20 C7 B2   JSR $B2C7
B280   20 15 B5   JSR $B515
B283   4C 4C 80   JMP $804C
B286   C8         INY
B287   B1 64      LDA ($64),Y
B289   48         PHA
B28A   C8         INY
B28B   B1 64      LDA ($64),Y
B28D   48         PHA
B28E   A0 13      LDY #$13
B290   B1 64      LDA ($64),Y
B292   F0 0A      BEQ $B29E
B294   85 4D      STA $4D
B296   C8         INY
B297   B1 64      LDA ($64),Y
B299   85 4E      STA $4E
B29B   20 C7 B2   JSR $B2C7
B29E   68         PLA
B29F   85 4E      STA $4E
B2A1   68         PLA
B2A2   85 4D      STA $4D
B2A4   20 C7 B2   JSR $B2C7
B2A7   20 77 84   JSR $8477
B2AA   F0 C8      BEQ $B274
B2AC   A0 00      LDY #$00
B2AE   B1 64      LDA ($64),Y
B2B0   10 0F      BPL $B2C1
B2B2   29 07      AND #$07
B2B4   C9 05      CMP #$05
B2B6   D0 CE      BNE $B286
B2B8   20 23 B3   JSR $B323
B2BB   20 3C B3   JSR $B33C
B2BE   4C A7 B2   JMP $B2A7
B2C1   20 3B 87   JSR $873B
B2C4   4C A7 B2   JMP $B2A7

; Blocks einer Datei in BAM belegen

B2C7   20 B5 94   JSR $94B5
B2CA   20 72 B5   JSR $B572
B2CD   20 CF 93   JSR $93CF
B2D0   A9 00      LDA #$00
B2D2   20 22 94   JSR $9422
B2D5   20 71 90   JSR $9071
B2D8   85 4D      STA $4D
B2DA   20 71 90   JSR $9071
B2DD   85 4E      STA $4E
B2DF   A5 4D      LDA $4D
B2E1   D0 03      BNE $B2E6
B2E3   4C 9E 91   JMP $919E
B2E6   20 72 B5   JSR $B572
B2E9   20 AA 93   JSR $93AA
B2EC   4C D0 B2   JMP $B2D0

; nächsten Block einer Partition holen

B2EF   AD EE 01   LDA $01EE
B2F2   D0 08      BNE $B2FC
B2F4   AD ED 01   LDA $01ED
B2F7   F0 1D      BEQ $B316
B2F9   CE ED 01   DEC $01ED
B2FC   CE EE 01   DEC $01EE
B2FF   E6 4E      INC $4E
B301   A5 75      LDA $75
B303   C5 4E      CMP $4E
B305   D0 0F      BNE $B316
B307   A9 00      LDA #$00
B309   85 4E      STA $4E
B30B   A5 4D      LDA $4D
B30D   CD 2B 02   CMP $022B
B310   F0 0C      BEQ $B31E
B312   E6 4D      INC $4D
B314   38         SEC
B315   24         .BY $24
B316   18         CLC
B317   AD ED 01   LDA $01ED
B31A   0D EE 01   ORA $01EE
B31D   60         RTS
B31E   A9 67      LDA #$67
B320   4C 3F FF   JMP $FF3F

; Partition-Parameter aus Verzeichniseintrag holen

B323   A0 01      LDY #$01
B325   B1 64      LDA ($64),Y
B327   85 4D      STA $4D
B329   C8         INY
B32A   B1 64      LDA ($64),Y
B32C   85 4E      STA $4E
B32E   A0 1C      LDY #$1C
B330   B1 64      LDA ($64),Y
B332   8D EE 01   STA $01EE
B335   C8         INY
B336   B1 64      LDA ($64),Y
B338   8D ED 01   STA $01ED
B33B   60         RTS

; Partition in Bam belegen

B33C   20 B5 94   JSR $94B5
B33F   20 72 B5   JSR $B572
B342   20 EF B2   JSR $B2EF
B345   D0 F5      BNE $B33C
B347   60         RTS

; NEW-Befehl

B348   20 FD 81   JSR $81FD
B34B   A5 EF      LDA $EF
B34D   10 05      BPL $B354
B34F   A9 33      LDA #$33
B351   4C 7C 80   JMP $807C
B354   A9 00      LDA #$00
B356   85 6E      STA $6E
B358   8D FA 01   STA $01FA
B35B   20 F6 81   JSR $81F6
B35E   A2 00      LDX #$00
B360   AC 92 02   LDY $0292
B363   C4 29      CPY $29
B365   F0 19      BEQ $B380
B367   B9 00 02   LDA $0200,Y
B36A   95 1D      STA $1D,X
B36C   B9 01 02   LDA $0201,Y
B36F   95 1E      STA $1E,X
B371   20 62 92   JSR $9262
B374   20 69 FF   JSR $FF69
B377   20 46 87   JSR $8746
B37A   20 3D B4   JSR $B43D
B37D   4C 90 B3   JMP $B390

; Diskettenwechsel prüfen und Partition initialisieren

B380   20 69 FF   JSR $FF69
B383   20 03 8F   JSR $8F03
B386   A5 6F      LDA $6F
B388   CD EB 01   CMP $01EB
B38B   F0 03      BEQ $B390
B38D   4C CB 94   JMP $94CB

; Verzeichnis-Header und BAM anlegen

B390   A5 6C      LDA $6C
B392   A8         TAY
B393   0A         ASL
B394   AA         TAX
B395   AD 77 DB   LDA $DB77
B398   95 BB      STA $BB,X
B39A   AE 91 02   LDX $0291
B39D   A9 1B      LDA #$1B
B39F   20 EE 84   JSR $84EE
B3A2   A0 00      LDY #$00
B3A4   84 64      STY $64
B3A6   AD 2B 02   LDA $022B
B3A9   91 64      STA ($64),Y
B3AB   C8         INY
B3AC   A9 03      LDA #$03
B3AE   8D E5 01   STA $01E5
B3B1   91 64      STA ($64),Y
B3B3   C8         INY
B3B4   AD EB 01   LDA $01EB
B3B7   85 6F      STA $6F
B3B9   91 64      STA ($64),Y
B3BB   C8         INY
B3BC   A9 00      LDA #$00
B3BE   91 64      STA ($64),Y
B3C0   A0 16      LDY #$16
B3C2   A5 1D      LDA $1D
B3C4   91 64      STA ($64),Y
B3C6   C8         INY
B3C7   A5 1E      LDA $1E
B3C9   91 64      STA ($64),Y
B3CB   C8         INY
B3CC   A9 A0      LDA #$A0
B3CE   91 64      STA ($64),Y
B3D0   C8         INY
B3D1   AD EC 01   LDA $01EC
B3D4   91 64      STA ($64),Y
B3D6   C8         INY
B3D7   A5 6F      LDA $6F
B3D9   91 64      STA ($64),Y
B3DB   C8         INY
B3DC   A9 A0      LDA #$A0
B3DE   91 64      STA ($64),Y
B3E0   C8         INY
B3E1   91 64      STA ($64),Y
B3E3   C8         INY
B3E4   A9 00      LDA #$00
B3E6   91 64      STA ($64),Y
B3E8   C8         INY
B3E9   D0 FB      BNE $B3E6
B3EB   A9 00      LDA #$00
B3ED   20 35 B4   JSR $B435
B3F0   20 C1 93   JSR $93C1
B3F3   A9 00      LDA #$00
B3F5   85 64      STA $64
B3F7   A8         TAY
B3F8   91 64      STA ($64),Y
B3FA   C8         INY
B3FB   D0 FB      BNE $B3F8
B3FD   C8         INY
B3FE   A9 FF      LDA #$FF
B400   91 64      STA ($64),Y
B402   AD E5 01   LDA $01E5
B405   20 35 B4   JSR $B435
B408   20 C1 93   JSR $93C1
B40B   20 4A B4   JSR $B44A
B40E   AD 2B 02   LDA $022B
B411   85 4D      STA $4D
B413   A9 00      LDA #$00
B415   85 4E      STA $4E
B417   20 72 B5   JSR $B572
B41A   E6 4E      INC $4E
B41C   20 72 B5   JSR $B572
B41F   E6 4E      INC $4E
B421   20 72 B5   JSR $B572
B424   AD E5 01   LDA $01E5
B427   85 4E      STA $4E
B429   20 72 B5   JSR $B572
B42C   20 12 B6   JSR $B612
B42F   20 03 8F   JSR $8F03
B432   4C 4C 80   JMP $804C
B435   85 4E      STA $4E
B437   AD 2B 02   LDA $022B
B43A   85 4D      STA $4D
B43C   60         RTS

; BAM-Puffer löschen

B43D   A9 00      LDA #$00
B43F   A8         TAY
B440   99 00 0A   STA $0A00,Y
B443   99 00 0B   STA $0B00,Y
B446   C8         INY
B447   D0 F7      BNE $B440
B449   60         RTS

; neue BAM erzeugen

B44A   A9 00      LDA #$00
B44C   85 4D      STA $4D
B44E   AD 2B 02   LDA $022B
B451   8D 00 0A   STA $0A00
B454   A9 00      LDA #$00
B456   8D 00 0B   STA $0B00
B459   A9 02      LDA #$02
B45B   8D 01 0A   STA $0A01
B45E   A9 FF      LDA #$FF
B460   8D 01 0B   STA $0B01
B463   AD EB 01   LDA $01EB
B466   8D 02 0A   STA $0A02
B469   8D 02 0B   STA $0B02
B46C   49 FF      EOR #$FF
B46E   8D 03 0A   STA $0A03
B471   8D 03 0B   STA $0B03
B474   A5 1D      LDA $1D
B476   8D 04 0A   STA $0A04
B479   8D 04 0B   STA $0B04
B47C   A5 1E      LDA $1E
B47E   8D 05 0A   STA $0A05
B481   8D 05 0B   STA $0B05
B484   A5 8D      LDA $8D
B486   8D 06 0A   STA $0A06
B489   8D 06 0B   STA $0B06
B48C   A9 00      LDA #$00
B48E   8D 07 0A   STA $0A07
B491   8D 07 0B   STA $0B07
B494   20 52 B6   JSR $B652
B497   A0 10      LDY #$10
B499   E6 4D      INC $4D
B49B   A5 4D      LDA $4D
B49D   C5 90      CMP $90
B49F   F0 0B      BEQ $B4AC
B4A1   90 07      BCC $B4AA
B4A3   CD 2C 02   CMP $022C
B4A6   F0 02      BEQ $B4AA
B4A8   90 02      BCC $B4AC
B4AA   18         CLC
B4AB   24         .BY $24
B4AC   38         SEC
B4AD   08         PHP
B4AE   A9 00      LDA #$00
B4B0   85 40      STA $40
B4B2   85 41      STA $41
B4B4   85 42      STA $42
B4B6   85 43      STA $43
B4B8   85 44      STA $44
B4BA   A6 75      LDX $75
B4BC   8A         TXA
B4BD   B0 02      BCS $B4C1
B4BF   A9 00      LDA #$00
B4C1   91 31      STA ($31),Y
B4C3   C8         INY
B4C4   28         PLP
B4C5   08         PHP
B4C6   26 40      ROL $40
B4C8   26 41      ROL $41
B4CA   26 42      ROL $42
B4CC   26 43      ROL $43
B4CE   26 44      ROL $44
B4D0   CA         DEX
B4D1   D0 F1      BNE $B4C4
B4D3   28         PLP
B4D4   B5 40      LDA $40,X
B4D6   91 31      STA ($31),Y
B4D8   C8         INY
B4D9   E8         INX
B4DA   E0 05      CPX #$05
B4DC   90 F6      BCC $B4D4
B4DE   98         TYA
B4DF   D0 B8      BNE $B499
B4E1   A5 32      LDA $32
B4E3   C9 0B      CMP #$0B
B4E5   F0 04      BEQ $B4EB
B4E7   E6 32      INC $32
B4E9   D0 AC      BNE $B497
B4EB   A9 01      LDA #$01
B4ED   85 35      STA $35
B4EF   A9 00      LDA #$00
B4F1   8D A9 02   STA $02A9
B4F4   AD 2B 02   LDA $022B
B4F7   85 4D      STA $4D
B4F9   A9 00      LDA #$00
B4FB   85 4E      STA $4E
B4FD   20 72 B5   JSR $B572
B500   E6 4E      INC $4E
B502   20 72 B5   JSR $B572
B505   E6 4E      INC $4E
B507   20 72 B5   JSR $B572
B50A   AD E5 01   LDA $01E5
B50D   85 4E      STA $4E
B50F   20 72 B5   JSR $B572
B512   4C 85 8F   JMP $8F85

; BAM bei Änderung auf Fehler prüfen

B515   A5 35      LDA $35
B517   F0 28      BEQ $B541
B519   AD 2C 02   LDA $022C
B51C   85 66      STA $66
B51E   20 52 B6   JSR $B652
B521   A9 10      LDA #$10
B523   85 31      STA $31
B525   20 5E B7   JSR $B75E
B528   C6 66      DEC $66
B52A   F0 12      BEQ $B53E
B52C   18         CLC
B52D   A5 31      LDA $31
B52F   69 06      ADC #$06
B531   90 F0      BCC $B523
B533   A5 32      LDA $32
B535   C9 0B      CMP #$0B
B537   F0 05      BEQ $B53E
B539   E6 32      INC $32
B53B   4C 21 B5   JMP $B521
B53E   20 12 B6   JSR $B612
B541   A9 00      LDA #$00
B543   85 35      STA $35
B545   60         RTS

; Block in Bam freigeben

B546   20 B4 B5   JSR $B5B4
B549   20 D8 B5   JSR $B5D8
B54C   D0 23      BNE $B571
B54E   B1 31      LDA ($31),Y
B550   1D EA B5   ORA $B5EA,X
B553   91 31      STA ($31),Y
B555   A9 01      LDA #$01
B557   85 35      STA $35
B559   A0 00      LDY #$00
B55B   18         CLC
B55C   B1 31      LDA ($31),Y
B55E   69 01      ADC #$01
B560   91 31      STA ($31),Y
B562   A5 4D      LDA $4D
B564   CD 2B 02   CMP $022B
B567   F0 34      BEQ $B59D
B569   EE A9 02   INC $02A9
B56C   D0 03      BNE $B571
B56E   EE AA 02   INC $02AA
B571   60         RTS

; Block in BAM belegen

B572   20 B4 B5   JSR $B5B4
B575   20 D8 B5   JSR $B5D8
B578   F0 39      BEQ $B5B3
B57A   B1 31      LDA ($31),Y
B57C   5D EA B5   EOR $B5EA,X
B57F   91 31      STA ($31),Y
B581   A9 01      LDA #$01
B583   85 35      STA $35
B585   A0 00      LDY #$00
B587   B1 31      LDA ($31),Y
B589   38         SEC
B58A   E9 01      SBC #$01
B58C   91 31      STA ($31),Y
B58E   A5 4D      LDA $4D
B590   CD 2B 02   CMP $022B
B593   F0 0B      BEQ $B5A0
B595   AD A9 02   LDA $02A9
B598   D0 03      BNE $B59D
B59A   CE AA 02   DEC $02AA
B59D   CE A9 02   DEC $02A9
B5A0   AD AA 02   LDA $02AA
B5A3   D0 0E      BNE $B5B3
B5A5   AD A9 02   LDA $02A9
B5A8   C9 03      CMP #$03
B5AA   B0 05      BCS $B5B1
B5AC   A9 72      LDA #$72
B5AE   4C 6D A8   JMP $A86D
B5B1   A9 01      LDA #$01
B5B3   60         RTS

; BAM-Zeiger auf Eintrag für aktuellen Track setzen

B5B4   A5 6E      LDA $6E
B5B6   F0 05      BEQ $B5BD
B5B8   A9 74      LDA #$74
B5BA   20 3F FF   JSR $FF3F
B5BD   20 52 B6   JSR $B652
B5C0   A5 4D      LDA $4D
B5C2   C9 29      CMP #$29
B5C4   90 04      BCC $B5CA
B5C6   E9 28      SBC #$28
B5C8   E6 32      INC $32
B5CA   0A         ASL
B5CB   85 31      STA $31
B5CD   0A         ASL
B5CE   18         CLC
B5CF   65 31      ADC $31
B5D1   69 0A      ADC #$0A
B5D3   85 31      STA $31
B5D5   A0 00      LDY #$00
B5D7   60         RTS

; Prüfen, ob Block im aktuellen Track frei ist

B5D8   A5 4E      LDA $4E
B5DA   4A         LSR
B5DB   4A         LSR
B5DC   4A         LSR
B5DD   A8         TAY
B5DE   C8         INY
B5DF   A5 4E      LDA $4E
B5E1   29 07      AND #$07
B5E3   AA         TAX
B5E4   B1 31      LDA ($31),Y
B5E6   3D EA B5   AND $B5EA,X
B5E9   60         RTS

; Bit-Tabelle für BAM-Zugriffe

B5EA   .BY $01,$02,$04,$08,$10,$20,$40,$80

; BAM einlesen, wenn Puffer leer

B5F2   A5 6C      LDA $6C
B5F4   85 3F      STA $3F
B5F6   AD 00 0A   LDA $0A00
B5F9   D0 2F      BNE $B62A
B5FB   A9 07      LDA #$07
B5FD   A2 01      LDX #$01
B5FF   20 43 B6   JSR $B643
B602   20 DE 94   JSR $94DE
B605   A9 08      LDA #$08
B607   A2 02      LDX #$02
B609   20 43 B6   JSR $B643
B60C   20 DE 94   JSR $94DE
B60F   4C 2A B6   JMP $B62A

; BAM auf Diskette schreiben

B612   A5 6C      LDA $6C
B614   85 3F      STA $3F
B616   A9 07      LDA #$07
B618   A2 01      LDX #$01
B61A   20 43 B6   JSR $B643
B61D   20 E2 94   JSR $94E2
B620   A9 08      LDA #$08
B622   A2 02      LDX #$02
B624   20 43 B6   JSR $B643
B627   20 E2 94   JSR $94E2
B62A   A5 3F      LDA $3F
B62C   85 6C      STA $6C
B62E   A9 00      LDA #$00
B630   85 35      STA $35
B632   60         RTS

; Verzeichnis-Header in aktuellen Puffer lesen

B633   20 15 B5   JSR $B515
B636   A2 00      LDX #$00
B638   A5 6C      LDA $6C
B63A   20 43 B6   JSR $B643
B63D   20 DE 94   JSR $94DE
B640   4C F2 B5   JMP $B5F2

; Spur, Sektor Puffernummer eines Dir-Sektors übergeben

B643   85 6C      STA $6C
B645   86 4E      STX $4E
B647   AE 2B 02   LDX $022B
B64A   86 4D      STX $4D
B64C   4C 88 95   JMP $9588

; BAM-Zeiger auf 1. BAM-Puffer setzen

B64F   20 F2 B5   JSR $B5F2
B652   A9 0A      LDA #$0A
B654   85 32      STA $32
B656   A9 00      LDA #$00
B658   85 31      STA $31
B65A   60         RTS

; Anzahl freier Blocks zur Ausgabe bereitstellen

B65B   AD A9 02   LDA $02A9
B65E   8D 8D 02   STA $028D
B661   AD AA 02   LDA $02AA
B664   8D 8E 02   STA $028E
B667   60         RTS

; Folgeblock für Datei suchen

B668   20 7C 9D   JSR $9D7C
B66B   A9 03      LDA #$03
B66D   85 40      STA $40
B66F   A9 01      LDA #$01
B671   05 35      ORA $35
B673   85 35      STA $35
B675   20 B4 B5   JSR $B5B4
B678   B1 31      LDA ($31),Y
B67A   D0 43      BNE $B6BF
B67C   A5 4D      LDA $4D
B67E   CD 2B 02   CMP $022B
B681   F0 1D      BEQ $B6A0
B683   90 20      BCC $B6A5
B685   E6 4D      INC $4D
B687   A5 4D      LDA $4D
B689   CD 2C 02   CMP $022C
B68C   D0 E7      BNE $B675
B68E   AE 2B 02   LDX $022B
B691   CA         DEX
B692   86 4D      STX $4D
B694   E4 90      CPX $90
B696   90 17      BCC $B6AF
B698   A9 00      LDA #$00
B69A   85 4E      STA $4E
B69C   C6 40      DEC $40
B69E   D0 D5      BNE $B675
B6A0   A9 72      LDA #$72
B6A2   20 7C 80   JSR $807C
B6A5   A5 4D      LDA $4D
B6A7   C5 90      CMP $90
B6A9   90 04      BCC $B6AF
B6AB   C6 4D      DEC $4D
B6AD   D0 C6      BNE $B675
B6AF   AE 2B 02   LDX $022B
B6B2   E8         INX
B6B3   86 4D      STX $4D
B6B5   A9 00      LDA #$00
B6B7   85 4E      STA $4E
B6B9   C6 40      DEC $40
B6BB   D0 B8      BNE $B675
B6BD   F0 E1      BEQ $B6A0
B6BF   A5 4E      LDA $4E
B6C1   18         CLC
B6C2   65 2E      ADC $2E
B6C4   85 4E      STA $4E
B6C6   A5 75      LDA $75
B6C8   85 28      STA $28
B6CA   C5 4E      CMP $4E
B6CC   B0 0B      BCS $B6D9
B6CE   38         SEC
B6CF   A5 4E      LDA $4E
B6D1   E5 75      SBC $75
B6D3   85 4E      STA $4E
B6D5   F0 02      BEQ $B6D9
B6D7   C6 4E      DEC $4E
B6D9   20 46 B7   JSR $B746
B6DC   F0 03      BEQ $B6E1
B6DE   4C 72 B5   JMP $B572
B6E1   A9 00      LDA #$00
B6E3   85 4E      STA $4E
B6E5   20 46 B7   JSR $B746
B6E8   D0 F4      BNE $B6DE
B6EA   4C 41 B7   JMP $B741

; Startblock einer neuen Datei suchen

B6ED   A9 01      LDA #$01
B6EF   05 35      ORA $35
B6F1   85 35      STA $35
B6F3   A5 55      LDA $55
B6F5   48         PHA
B6F6   A9 01      LDA #$01
B6F8   85 55      STA $55
B6FA   AD 2B 02   LDA $022B
B6FD   38         SEC
B6FE   E5 55      SBC $55
B700   85 4D      STA $4D
B702   08         PHP
B703   C5 90      CMP $90
B705   B0 04      BCS $B70B
B707   28         PLP
B708   4C 17 B7   JMP $B717
B70B   28         PLP
B70C   90 09      BCC $B717
B70E   F0 07      BEQ $B717
B710   20 B4 B5   JSR $B5B4
B713   B1 31      LDA ($31),Y
B715   D0 1B      BNE $B732
B717   AD 2B 02   LDA $022B
B71A   18         CLC
B71B   65 55      ADC $55
B71D   85 4D      STA $4D
B71F   E6 55      INC $55
B721   CD 2C 02   CMP $022C
B724   90 05      BCC $B72B
B726   A9 67      LDA #$67
B728   20 3F FF   JSR $FF3F
B72B   20 B4 B5   JSR $B5B4
B72E   B1 31      LDA ($31),Y
B730   F0 C8      BEQ $B6FA
B732   68         PLA
B733   85 55      STA $55
B735   A9 00      LDA #$00
B737   85 4E      STA $4E
B739   20 46 B7   JSR $B746
B73C   F0 03      BEQ $B741
B73E   4C 72 B5   JMP $B572
B741   A9 71      LDA #$71
B743   20 3F FF   JSR $FF3F

; nächsten freien Block im aktuellen Track suchen

B746   20 B4 B5   JSR $B5B4
B749   20 5E B7   JSR $B75E
B74C   A5 4E      LDA $4E
B74E   C5 75      CMP $75
B750   B0 09      BCS $B75B
B752   20 D8 B5   JSR $B5D8
B755   D0 06      BNE $B75D
B757   E6 4E      INC $4E
B759   D0 F1      BNE $B74C
B75B   A9 00      LDA #$00
B75D   60         RTS

; Anzahl freier Blocks im aktuellen Track prüfen

B75E   A9 00      LDA #$00
B760   85 2F      STA $2F
B762   AC 76 DB   LDY $DB76
B765   88         DEY
B766   A2 08      LDX #$08
B768   B1 31      LDA ($31),Y
B76A   0A         ASL
B76B   90 02      BCC $B76F
B76D   E6 2F      INC $2F
B76F   CA         DEX
B770   D0 F8      BNE $B76A
B772   88         DEY
B773   D0 F1      BNE $B766
B775   B1 31      LDA ($31),Y
B777   C5 2F      CMP $2F
B779   D0 01      BNE $B77C
B77B   60         RTS
B77C   A9 71      LDA #$71
B77E   20 3F FF   JSR $FF3F

; Partition-Befehl

B781   20 AE 84   JSR $84AE
B784   A5 29      LDA $29
B786   C9 02      CMP #$02
B788   90 6D      BCC $B7F7
B78A   A9 01      LDA #$01
B78C   8D 91 02   STA $0291
B78F   20 FD 81   JSR $81FD
B792   20 B9 82   JSR $82B9
B795   AD 97 02   LDA $0297
B798   F0 13      BEQ $B7AD
B79A   20 51 B8   JSR $B851
B79D   90 20      BCC $B7BF
B79F   A9 63      LDA #$63
B7A1   2C         .BY $2C
B7A2   A9 62      LDA #$62
B7A4   2C         .BY $2C
B7A5   A9 30      LDA #$30
B7A7   2C         .BY $2C
B7A8   A9 77      LDA #$77
B7AA   20 7C 80   JSR $807C
B7AD   20 51 B8   JSR $B851
B7B0   90 F0      BCC $B7A2
B7B2   AE 90 02   LDX $0290
B7B5   BD 06 02   LDA $0206,X
B7B8   C9 43      CMP #$43
B7BA   D0 E9      BNE $B7A5
B7BC   4C 8D B8   JMP $B88D
B7BF   A5 F4      LDA $F4
B7C1   29 07      AND #$07
B7C3   C9 05      CMP #$05
B7C5   D0 DB      BNE $B7A2
B7C7   20 23 B3   JSR $B323
B7CA   20 B5 94   JSR $94B5
B7CD   20 EF B2   JSR $B2EF
B7D0   D0 F8      BNE $B7CA
B7D2   90 D4      BCC $B7A8
B7D4   A0 02      LDY #$02
B7D6   B1 64      LDA ($64),Y
B7D8   D0 CE      BNE $B7A8
B7DA   88         DEY
B7DB   A5 4D      LDA $4D
B7DD   AA         TAX
B7DE   F1 64      SBC ($64),Y
B7E0   C9 02      CMP #$02
B7E2   F0 C4      BEQ $B7A8
B7E4   90 C2      BCC $B7A8
B7E6   B1 64      LDA ($64),Y
B7E8   8D 2B 02   STA $022B
B7EB   85 90      STA $90
B7ED   8E 2C 02   STX $022C
B7F0   CA         DEX
B7F1   CA         DEX
B7F2   86 8F      STX $8F
B7F4   4C FA B7   JMP $B7FA
B7F7   20 B3 B0   JSR $B0B3
B7FA   20 62 92   JSR $9262
B7FD   20 03 8F   JSR $8F03
B800   A5 90      LDA $90
B802   85 4D      STA $4D
B804   AC 2C 02   LDY $022C
B807   88         DEY
B808   84 4E      STY $4E
B80A   A9 02      LDA #$02
B80C   A0 00      LDY #$00
B80E   4C 5F 80   JMP $805F

; Prüfen, ob Blocks der Partition vor dem Anlegen frei sind

B811   A5 35      LDA $35
B813   48         PHA
B814   AD A9 02   LDA $02A9
B817   48         PHA
B818   AD AA 02   LDA $02AA
B81B   48         PHA
B81C   20 5F B8   JSR $B85F
B81F   20 B5 94   JSR $94B5
B822   A5 4D      LDA $4D
B824   C9 28      CMP #$28
B826   F0 19      BEQ $B841
B828   20 72 B5   JSR $B572
B82B   F0 14      BEQ $B841
B82D   20 46 B5   JSR $B546
B830   20 EF B2   JSR $B2EF
B833   D0 EA      BNE $B81F
B835   68         PLA
B836   8D AA 02   STA $02AA
B839   68         PLA
B83A   8D A9 02   STA $02A9
B83D   68         PLA
B83E   85 35      STA $35
B840   60         RTS
B841   68         PLA
B842   8D AA 02   STA $02AA
B845   68         PLA
B846   8D A9 02   STA $02A9
B849   68         PLA
B84A   85 35      STA $35
B84C   A9 67      LDA #$67
B84E   4C 3F FF   JMP $FF3F

; Partition-Namen holen

B851   A2 01      LDX #$01
B853   20 26 85   JSR $8526
B856   A5 29      LDA $29
B858   38         SEC
B859   ED 90 02   SBC $0290
B85C   C9 04      CMP #$04
B85E   60         RTS

; Parameter für die Partitionerstellung holen

B85F   AC 90 02   LDY $0290
B862   C8         INY
B863   B9 00 02   LDA $0200,Y
B866   85 4D      STA $4D
B868   C8         INY
B869   B9 00 02   LDA $0200,Y
B86C   85 4E      STA $4E
B86E   C8         INY
B86F   B9 00 02   LDA $0200,Y
B872   8D EE 01   STA $01EE
B875   C8         INY
B876   B9 00 02   LDA $0200,Y
B879   8D ED 01   STA $01ED
B87C   18         CLC
B87D   AD EE 01   LDA $01EE
B880   6D ED 01   ADC $01ED
B883   F0 03      BEQ $B888
B885   4C B5 94   JMP $94B5
B888   A9 77      LDA #$77
B88A   20 7C 80   JSR $807C

; Neuen Bereich anlegen

B88D   20 11 B8   JSR $B811
B890   A9 05      LDA #$05
B892   8D 2D 02   STA $022D
B895   A9 12      LDA #$12
B897   85 52      STA $52
B899   20 5F B8   JSR $B85F
B89C   20 C6 9B   JSR $9BC6
B89F   20 AB 95   JSR $95AB
B8A2   20 5F B8   JSR $B85F
B8A5   20 B5 94   JSR $94B5
B8A8   A5 4D      LDA $4D
B8AA   20 72 B5   JSR $B572
B8AD   20 EF B2   JSR $B2EF
B8B0   D0 F3      BNE $B8A5
B8B2   20 5F B8   JSR $B85F
B8B5   A6 50      LDX $50
B8B7   AD EE 01   LDA $01EE
B8BA   9D 49 02   STA $0249,X
B8BD   AD ED 01   LDA $01ED
B8C0   9D 50 02   STA $0250,X
B8C3   A9 00      LDA #$00
B8C5   20 B1 8E   JSR $8EB1
B8C8   A9 12      LDA #$12
B8CA   85 52      STA $52
B8CC   20 9F 99   JSR $999F
B8CF   4C 4C 80   JMP $804C

; Burst-Befehl $1f: Fastload

B8D2   4C 4C 80   JMP $804C
B8D5   A9 08      LDA #$08
B8D7   24 76      BIT $76
B8D9   F0 F7      BEQ $B8D2
B8DB   20 D4 AC   JSR $ACD4
B8DE   20 06 BA   JSR $BA06
B8E1   B0 59      BCS $B93C
B8E3   20 AE 84   JSR $84AE
B8E6   A5 6E      LDA $6E
B8E8   D0 52      BNE $B93C
B8EA   A9 80      LDA #$80
B8EC   85 3C      STA $3C
B8EE   20 64 BA   JSR $BA64
B8F1   AD 00 02   LDA $0200
B8F4   C9 2A      CMP #$2A
B8F6   D0 0F      BNE $B907
B8F8   A5 4C      LDA $4C
B8FA   F0 0B      BEQ $B907
B8FC   48         PHA
B8FD   AD 8B 02   LDA $028B
B900   8D 9C 02   STA $029C
B903   68         PLA
B904   4C 41 B9   JMP $B941
B907   A9 00      LDA #$00
B909   A8         TAY
B90A   AA         TAX
B90B   8D 91 02   STA $0291
B90E   20 FD 81   JSR $81FD
B911   AD 2F 02   LDA $022F
B914   48         PHA
B915   A9 01      LDA #$01
B917   8D 2F 02   STA $022F
B91A   A9 FF      LDA #$FF
B91C   85 55      STA $55
B91E   20 B9 82   JSR $82B9
B921   68         PLA
B922   8D 2F 02   STA $022F
B925   20 95 BA   JSR $BA95
B928   24 7C      BIT $7C
B92A   30 08      BMI $B934
B92C   A5 F4      LDA $F4
B92E   29 07      AND #$07
B930   C9 02      CMP #02
B932   D0 05      BNE $B939
B934   AD 97 02   LDA $0297
B937   D0 08      BNE $B941
B939   A2 02      LDX #$02
B93B   2C         .BY $2C
B93C   A2 0F      LDX #$0F
B93E   4C EC B9   JMP $B9EC
B941   85 4C      STA $4C
B943   A2 00      LDX #$00
B945   95 0B      STA $0B,X
B947   AD 9C 02   LDA $029C
B94A   8D 8B 02   STA $028B
B94D   95 0C      STA $0C,X
B94F   58         CLI
B950   A2 00      LDX #$00
B952   A9 AA      LDA #$AA
B954   20 B7 BF   JSR $BFB7
B957   AA         TAX
B958   E0 02      CPX #$02
B95A   90 03      BCC $B95F
B95C   4C D7 B9   JMP $B9D7
B95F   78         SEI
B960   A0 00      LDY #$00
B962   84 7E      STY $7E
B964   B9 9F 00   LDA $009F,Y
B967   29 7F      AND #$7F
B969   18         CLC
B96A   65 8C      ADC $8C
B96C   85 7F      STA $7F
B96E   B1 7E      LDA ($7E),Y
B970   F0 1E      BEQ $B990
B972   06 3C      ASL $3C
B974   20 FC 01   JSR $01FC
B977   A0 02      LDY #$02
B979   B1 7E      LDA ($7E),Y
B97B   AA         TAX
B97C   20 FC 01   JSR $01FC
B97F   C8         INY
B980   D0 F7      BNE $B979
B982   A2 00      LDX #$00
B984   B1 7E      LDA ($7E),Y
B986   95 0B      STA $0B,X
B988   C8         INY
B989   B1 7E      LDA ($7E),Y
B98B   95 0C      STA $0C,X
B98D   4C 4F B9   JMP $B94F
B990   A2 1F      LDX #$1F
B992   20 FC 01   JSR $01FC
B995   24 3C      BIT $3C
B997   10 1F      BPL $B9B8
B999   A0 01      LDY #$01
B99B   B1 7E      LDA ($7E),Y
B99D   38         SEC
B99E   E9 03      SBC #$03
B9A0   85 38      STA $38
B9A2   AA         TAX
B9A3   20 FC 01   JSR $01FC
B9A6   C8         INY
B9A7   B1 7E      LDA ($7E),Y
B9A9   AA         TAX
B9AA   20 FC 01   JSR $01FC
B9AD   C8         INY
B9AE   B1 7E      LDA ($7E),Y
B9B0   AA         TAX
B9B1   20 FC 01   JSR $01FC
B9B4   A0 04      LDY #$04
B9B6   D0 0D      BNE $B9C5
B9B8   A0 01      LDY #$01
B9BA   B1 7E      LDA ($7E),Y
B9BC   AA         TAX
B9BD   CA         DEX
B9BE   86 38      STX $38
B9C0   20 FC 01   JSR $01FC
B9C3   A0 02      LDY #$02
B9C5   B1 7E      LDA ($7E),Y
B9C7   AA         TAX
B9C8   20 FC 01   JSR $01FC
B9CB   C8         INY
B9CC   C6 38      DEC $38
B9CE   D0 F5      BNE $B9C5
B9D0   4C 4C 80   JMP $804C

; ERROR: Controller-Error-Routine des Burst-Fastloads

B9D3   AA         TAX
B9D4   20 95 BA   JSR $BA95
B9D7   20 FB B9   JSR $B9FB
B9DA   A2 00      LDX #$00
B9DC   4C 2D FF   JMP $FF2D

; CMDERR: Fehler-Routine des Burst-Fastloads

B9DF   48         PHA
B9E0   08         PHP
B9E1   78         SEI
B9E2   A2 02      LDX #$02
B9E4   20 FC 01   JSR $01FC
B9E7   28         PLP
B9E8   20 95 BA   JSR $BA95
B9EB   68         PLA

; Fehlermeldung ausgeben

B9EC   20 FB B9   JSR $B9FB
B9EF   C9 02      CMP #$02
B9F1   F0 03      BEQ $B9F6
B9F3   A9 74      LDA #$74
B9F5   2C         .BY $2C
B9F6   A9 62      LDA #$62
B9F8   4C 7C 80   JMP $807C

; File not found über FSM-Bus ausgeben

B9FB   78         SEI
B9FC   86 38      STX $38
B9FE   A2 02      LDX #$02
BA00   20 FC 01   JSR $01FC
BA03   A5 38      LDA $38
BA05   60         RTS

; Dateinamen nach Drivenummer durchsuchen

BA06   A0 03      LDY #$03
BA08   A5 29      LDA $29
BA0A   38         SEC
BA0B   E9 03      SBC #$03
BA0D   85 29      STA $29
BA0F   AD 04 02   LDA $0204
BA12   C9 3A      CMP #$3A
BA14   D0 0E      BNE $BA24
BA16   AD 03 02   LDA $0203
BA19   AA         TAX
BA1A   29 30      AND #$30
BA1C   C9 30      CMP #$30
BA1E   D0 04      BNE $BA24
BA20   E0 31      CPX #$31
BA22   F0 1A      BEQ $BA3E
BA24   AD 03 02   LDA $0203
BA27   C9 3A      CMP #$3A
BA29   D0 03      BNE $BA2E
BA2B   C6 29      DEC $29
BA2D   C8         INY
BA2E   A2 00      LDX #$00
BA30   B9 00 02   LDA $0200,Y
BA33   9D 00 02   STA $0200,X
BA36   C8         INY
BA37   E8         INX
BA38   E4 29      CPX $29
BA3A   D0 F4      BNE $BA30
BA3C   18         CLC
BA3D   24         .BY $24
BA3E   38         SEC
BA3F   60         RTS

; Byte auf FSM-Bus ausgeben

BA40   AD 01 40   LDA $4001
BA43   CD 01 40   CMP $4001
BA46   D0 F8      BNE $BA40
BA48   29 FF      AND #$FF
BA4A   30 15      BMI $BA61
BA4C   45 76      EOR $76
BA4E   29 04      AND #$04
BA50   F0 EE      BEQ $BA40
BA52   8E 0C 40   STX $400C
BA55   45 76      EOR $76
BA57   85 76      STA $76
BA59   A9 08      LDA #$08
BA5B   2C 0D 40   BIT $400D
BA5E   F0 FB      BEQ $BA5B
BA60   60         RTS
BA61   4C 30 FF   JMP $FF30

; Fehlerbehandlung für Burst-Fastload

BA64   20 7C BA   JSR $BA7C
BA67   A9 D3      LDA #$D3
BA69   8D AE 01   STA $01AE
BA6C   A9 B9      LDA #$B9
BA6E   8D AF 01   STA $01AF
BA71   A9 DF      LDA #$DF
BA73   8D BA 01   STA $01BA
BA76   A9 DF      LDA #$DF
BA78   8D BB 01   STA $01BB
BA7B   60         RTS

; Sprungvektoren der Fehlerbehandlung retten

BA7C   AD AE 01   LDA $01AE
BA7F   8D E6 01   STA $01E6
BA82   AD AF 01   LDA $01AF
BA85   8D E7 01   STA $01E7
BA88   AD BA 01   LDA $01BA
BA8B   8D E8 01   STA $01E8
BA8E   AD BB 01   LDA $01BB
BA91   8D E9 01   STA $01E9
BA94   60         RTS

; Sprungvektoren der Fehlerbehandlung zurückschreiben

BA95   AD E6 01   LDA $01E6
BA98   8D AE 01   STA $01AE
BA9B   AD E7 01   LDA $01E7
BA9E   8D AF 01   STA $01AF
BAA1   AD E8 01   LDA $01E8
BAA4   8D BA 01   STA $01BA
BAA7   AD E9 01   LDA $01E9
BAAA   8D BB 01   STA $01BB
BAAD   60         RTS

; Burst-Befehl: Read mit logischen Blockangaben

BAAE   A9 8D      LDA #$8D
BAB0   4C FC BA   JMP $BAFC
BAB3   A5 8A      LDA $8A
BAB5   30 F7      BMI $BAAE
BAB7   A2 00      LDX #$00
BAB9   AD 03 02   LDA $0203
BABC   95 0B      STA $0B,X
BABE   AD 04 02   LDA $0204
BAC1   95 0C      STA $0C,X
BAC3   A9 80      LDA #$80
BAC5   20 B0 BF   JSR $BFB0
BAC8   20 66 BF   JSR $BF66
BACB   24 7C      BIT $7C
BACD   70 07      BVS $BAD6
BACF   C9 02      CMP #$02
BAD1   90 03      BCC $BAD6
BAD3   4C FC BA   JMP $BAFC
BAD6   20 AB BF   JSR $BFAB
BAD9   A0 00      LDY #$00
BADB   84 7E      STY $7E
BADD   A9 03      LDA #$03
BADF   85 7F      STA $7F
BAE1   B1 7E      LDA ($7E),Y
BAE3   20 86 BF   JSR $BF86
BAE6   C8         INY
BAE7   D0 F8      BNE $BAE1
BAE9   CE 05 02   DEC $0205
BAEC   F0 06      BEQ $BAF4
BAEE   20 7A C0   JSR $C07A
BAF1   4C B3 BA   JMP $BAB3
BAF4   4C 44 BF   JMP $BF44

; Burst-Status übermitteln

BAF7   A9 0B      LDA #$0B
BAF9   2C         .BY $2C
BAFA   A9 4F      LDA #$4F

; Status setzen und übermitteln

BAFC   20 66 BF   JSR $BF66
BAFF   20 BF BE   JSR $BEBF
BB02   AD EA 01   LDA $01EA
BB05   C9 02      CMP #$02
BB07   B0 01      BCS $BB0A
BB09   60         RTS
BB0A   29 0F      AND #$0F
BB0C   A2 00      LDX #$00
BB0E   4C 2D FF   JMP $FF2D

; Burst-Befehle $00,$10: Read

BB11   A5 25      LDA $25
BB13   D0 E2      BNE $BAF7
BB15   20 D4 AC   JSR $ACD4
BB18   A5 7C      LDA $7C
BB1A   30 97      BMI $BAB3
BB1C   A2 00      LDX #$00
BB1E   AD 03 02   LDA $0203
BB21   95 0B      STA $0B,X
BB23   AD 04 02   LDA $0204
BB26   95 0C      STA $0C,X
BB28   A5 7C      LDA $7C
BB2A   29 10      AND #$10
BB2C   9D CE 01   STA $01CE,X
BB2F   A9 B2      LDA #$B2
BB31   20 B0 BF   JSR $BFB0
BB34   20 66 BF   JSR $BF66
BB37   24 7C      BIT $7C
BB39   70 04      BVS $BB3F
BB3B   C9 02      CMP #$02
BB3D   B0 BD      BCS $BAFC
BB3F   20 AB BF   JSR $BFAB
BB42   A0 00      LDY #$00
BB44   84 7E      STY $7E
BB46   B9 9F 00   LDA $009F,Y
BB49   29 7F      AND #$7F
BB4B   18         CLC
BB4C   65 8C      ADC $8C
BB4E   85 7F      STA $7F
BB50   A6 91      LDX $91
BB52   E0 03      CPX #$03
BB54   D0 01      BNE $BB57
BB56   E8         INX
BB57   B1 7E      LDA ($7E),Y
BB59   20 86 BF   JSR $BF86
BB5C   C8         INY
BB5D   D0 F8      BNE $BB57
BB5F   CA         DEX
BB60   F0 04      BEQ $BB66
BB62   E6 7F      INC $7F
BB64   D0 F1      BNE $BB57
BB66   CE 05 02   DEC $0205
BB69   F0 06      BEQ $BB71
BB6B   20 40 C0   JSR $C040
BB6E   4C 15 BB   JMP $BB15
BB71   4C 47 BF   JMP $BF47

; Burst-Befehl: Write mit logischen Blockangaben

BB74   A9 8D      LDA #$8D
BB76   8D EA 01   STA $01EA
BB79   A5 7C      LDA $7C
BB7B   09 08      ORA #$08
BB7D   85 7C      STA $7C
BB7F   D0 04      BNE $BB85
BB81   A5 8A      LDA $8A
BB83   30 EF      BMI $BB74
BB85   A0 00      LDY #$00
BB87   84 7E      STY $7E
BB89   A9 03      LDA #$03
BB8B   85 7F      STA $7F
BB8D   AD 01 40   LDA $4001
BB90   49 08      EOR #$08
BB92   2C 0D 40   BIT $400D
BB95   8D 01 40   STA $4001
BB98   A9 08      LDA #$08
BB9A   2C 01 40   BIT $4001
BB9D   30 0F      BMI $BBAE
BB9F   2C 0D 40   BIT $400D
BBA2   F0 F6      BEQ $BB9A
BBA4   AD 0C 40   LDA $400C
BBA7   91 7E      STA ($7E),Y
BBA9   C8         INY
BBAA   D0 E1      BNE $BB8D
BBAC   F0 0C      BEQ $BBBA
BBAE   20 15 AD   JSR $AD15
BBB1   4C 9A BB   JMP $BB9A
BBB4   AD EA 01   LDA $01EA
BBB7   4C FC BA   JMP $BAFC
BBBA   20 03 AD   JSR $AD03
BBBD   A5 7C      LDA $7C
BBBF   29 08      AND #$08
BBC1   D0 F1      BNE $BBB4
BBC3   A2 00      LDX #$00
BBC5   AD 03 02   LDA $0203
BBC8   95 0B      STA $0B,X
BBCA   AD 04 02   LDA $0204
BBCD   95 0C      STA $0C,X
BBCF   A9 90      LDA #$90
BBD1   20 B0 BF   JSR $BFB0
BBD4   20 66 BF   JSR $BF66
BBD7   20 5A BF   JSR $BF5A
BBDA   24 7C      BIT $7C
BBDC   70 0A      BVS $BBE8
BBDE   AD EA 01   LDA $01EA
BBE1   C9 02      CMP #$02
BBE3   90 03      BCC $BBE8
BBE5   4C 0A BB   JMP $BB0A
BBE8   CE 05 02   DEC $0205
BBEB   F0 06      BEQ $BBF3
BBED   20 7A C0   JSR $C07A
BBF0   4C 81 BB   JMP $BB81
BBF3   4C 44 BF   JMP $BF44

; Burststatus bei Schreibfehlern ausgeben

BBF6   A9 0B      LDA #$0B
BBF8   2C         .BY $2C
BBF9   A9 4F      LDA #$4F
BBFB   8D EA 01   STA $01EA
BBFE   4C 2F BC   JMP $BC2F

; Burst-Befehle $02,$12: Write

BC01   A5 25      LDA $25
BC03   D0 F1      BNE $BBF6
BC05   A5 7C      LDA $7C
BC07   10 03      BPL $BC0C
BC09   4C 81 BB   JMP $BB81
BC0C   A2 00      LDX #$00
BC0E   A5 7C      LDA $7C
BC10   29 10      AND #$10
BC12   9D CE 01   STA $01CE,X
BC15   AD 03 02   LDA $0203
BC18   95 0B      STA $0B,X
BC1A   AD 04 02   LDA $0204
BC1D   95 0C      STA $0C,X
BC1F   A9 B4      LDA #$B4
BC21   20 B0 BF   JSR $BFB0
BC24   20 66 BF   JSR $BF66
BC27   C9 02      CMP #$02
BC29   90 0A      BCC $BC35
BC2B   A9 00      LDA #$00
BC2D   85 87      STA $87
BC2F   A5 7C      LDA $7C
BC31   09 08      ORA #$08
BC33   85 7C      STA $7C
BC35   20 99 BC   JSR $BC99
BC38   A6 91      LDX $91
BC3A   E0 03      CPX #$03
BC3C   D0 01      BNE $BC3F
BC3E   E8         INX
BC3F   AD 01 40   LDA $4001
BC42   49 08      EOR #$08
BC44   2C 0D 40   BIT $400D
BC47   8D 01 40   STA $4001
BC4A   A9 08      LDA #$08
BC4C   2C 01 40   BIT $4001
BC4F   30 14      BMI $BC65
BC51   2C 0D 40   BIT $400D
BC54   F0 F6      BEQ $BC4C
BC56   AD 0C 40   LDA $400C
BC59   91 7E      STA ($7E),Y
BC5B   C8         INY
BC5C   D0 E1      BNE $BC3F
BC5E   E6 7F      INC $7F
BC60   CA         DEX
BC61   D0 DC      BNE $BC3F
BC63   F0 0C      BEQ $BC71
BC65   20 15 AD   JSR $AD15
BC68   4C 4C BC   JMP $BC4C
BC6B   AD EA 01   LDA $01EA
BC6E   4C FC BA   JMP $BAFC
BC71   20 03 AD   JSR $AD03
BC74   A5 7C      LDA $7C
BC76   29 08      AND #$08
BC78   D0 F1      BNE $BC6B
BC7A   20 5A BF   JSR $BF5A
BC7D   24 7C      BIT $7C
BC7F   70 0A      BVS $BC8B
BC81   AD EA 01   LDA $01EA
BC84   C9 02      CMP #$02
BC86   90 03      BCC $BC8B
BC88   4C 0A BB   JMP $BB0A
BC8B   CE 05 02   DEC $0205
BC8E   F0 06      BEQ $BC96
BC90   20 40 C0   JSR $C040
BC93   4C 01 BC   JMP $BC01
BC96   4C 47 BF   JMP $BF47
BC99   A0 00      LDY #$00
BC9B   84 7E      STY $7E
BC9D   AD 04 02   LDA $0204
BCA0   38         SEC
BCA1   E5 94      SBC $94
BCA3   A6 91      LDX $91
BCA5   CA         DEX
BCA6   F0 04      BEQ $BCAC
BCA8   0A         ASL
BCA9   4C A5 BC   JMP $BCA5
BCAC   18         CLC
BCAD   65 8C      ADC $8C
BCAF   85 7F      STA $7F
BCB1   60         RTS

; Burst-Befehle $04,$14: Inquire Disk

BCB2   AD 02 02   LDA $0202
BCB5   29 01      AND #$01
BCB7   D0 2E      BNE $BCE7
BCB9   A2 00      LDX #$00
BCBB   86 80      STX $80
BCBD   A9 C0      LDA #$C0
BCBF   20 B0 BF   JSR $BFB0
BCC2   08         PHP
BCC3   58         CLI
BCC4   A9 80      LDA #$80
BCC6   85 81      STA $81
BCC8   20 F1 BE   JSR $BEF1
BCCB   20 03 8F   JSR $8F03
BCCE   06 81      ASL $81
BCD0   28         PLP
BCD1   A5 7C      LDA $7C
BCD3   29 10      AND #$10
BCD5   4A         LSR
BCD6   4A         LSR
BCD7   4A         LSR
BCD8   4A         LSR
BCD9   9D CE 01   STA $01CE,X
BCDC   A9 9C      LDA #$9C
BCDE   20 9D 95   JSR $959D
BCE1   A9 B0      LDA #$B0
BCE3   20 B0 BF   JSR $BFB0
BCE6   2C         .BY $2C
BCE7   A9 4F      LDA #$4F
BCE9   20 FC BA   JSR $BAFC
BCEC   A9 01      LDA #$01
BCEE   8D EF 01   STA $01EF
BCF1   85 94      STA $94
BCF3   A6 22      LDX $22
BCF5   BD 06 BD   LDA $BD06,X
BCF8   F0 08      BEQ $BD02
BCFA   85 92      STA $92
BCFC   85 93      STA $93
BCFE   8D F0 01   STA $01F0
BD01   60         RTS
BD02   A9 0E      LDA #$0E
BD04   D0 E3      BNE $BCE9

; Anzahl der Sektoren pro Spur für verschiedene Sektorgrößen

BD06   .BY $00,$10,$0A,$05

; Laufwerk auf nicht vorhanden setzen und ausgeben

BD0A   A9 4F      LDA #$4F
BD0C   20 66 BF   JSR $BF66
BD0F   4C 02 BB   JMP $BB02

; Burst-Befehle $06,$07,$16,$17: Format

BD12   AD 02 02   LDA $0202
BD15   29 01      AND #$01
BD17   D0 F1      BNE $BD0A
BD19   AD 02 02   LDA $0202
BD1C   10 40      BPL $BD5E
BD1E   A5 29      LDA $29
BD20   38         SEC
BD21   E9 03      SBC #$03
BD23   A8         TAY
BD24   F0 56      BEQ $BD7C
BD26   AD 03 02   LDA $0203
BD29   85 91      STA $91
BD2B   88         DEY
BD2C   F0 52      BEQ $BD80
BD2E   88         DEY
BD2F   F0 54      BEQ $BD85
BD31   88         DEY
BD32   F0 59      BEQ $BD8D
BD34   88         DEY
BD35   F0 5B      BEQ $BD92
BD37   88         DEY
BD38   F0 5D      BEQ $BD97
BD3A   AD 08 02   LDA $0208
BD3D   85 94      STA $94
BD3F   88         DEY
BD40   F0 59      BEQ $BD9B
BD42   AD 09 02   LDA $0209
BD45   85 9A      STA $9A
BD47   4C A2 BD   JMP $BDA2

BD4A   .BY $4E,$30,$3A,$43,$4F,$50,$59,$52     ; Diskette im 1581-Format formatieren
BD52   .BY $49,$47,$48,$54,$20,$43,$42,$4D     ; N0: COPYRIGHT CBM,86
BD5A   .BY $2C,$38,$36,$0D

BD5E   A0 13      LDY #$13
BD60   B9 4A BD   LDA $BD4A,Y
BD63   99 00 02   STA $0200,Y
BD66   88         DEY
BD67   10 F7      BPL $BD60
BD69   A9 14      LDA #$14
BD6B   85 29      STA $29
BD6D   A9 11      LDA #$11
BD6F   8D 92 02   STA $0292
BD72   A9 01      LDA #$01
BD74   8D 91 02   STA $0291
BD77   A2 00      LDX #$00
BD79   4C 2A FF   JMP $FF2A
BD7C   A9 02      LDA #$02
BD7E   85 91      STA $91
BD80   A9 4F      LDA #$4F
BD82   8D 04 02   STA $0204
BD85   A6 91      LDX $91
BD87   BD 06 BD   LDA $BD06,X
BD8A   8D 05 02   STA $0205
BD8D   A9 00      LDA #$00
BD8F   8D 06 02   STA $0206
BD92   A9 E5      LDA #$E5
BD94   8D 07 02   STA $0207
BD97   A9 01      LDA #$01
BD99   85 94      STA $94
BD9B   A6 91      LDX $91
BD9D   BD F8 BD   LDA $BDF8,X
BDA0   85 9A      STA $9A
BDA2   A5 90      LDA $90
BDA4   48         PHA
BDA5   A5 9B      LDA $9B
BDA7   48         PHA
BDA8   A5 8F      LDA $8F
BDAA   48         PHA
BDAB   AD 04 02   LDA $0204
BDAE   85 8F      STA $8F
BDB0   AD 05 02   LDA $0205
BDB3   85 92      STA $92
BDB5   18         CLC
BDB6   65 94      ADC $94
BDB8   38         SEC
BDB9   E9 01      SBC #$01
BDBB   85 93      STA $93
BDBD   8D F0 01   STA $01F0
BDC0   AC 06 02   LDY $0206
BDC3   C8         INY
BDC4   84 90      STY $90
BDC6   AD 07 02   LDA $0207
BDC9   85 9B      STA $9B
BDCB   A5 90      LDA $90
BDCD   85 4D      STA $4D
BDCF   A9 00      LDA #$00
BDD1   85 4E      STA $4E
BDD3   20 88 95   JSR $9588
BDD6   A9 C0      LDA #$C0
BDD8   20 9D 95   JSR $959D
BDDB   A9 F0      LDA #$F0
BDDD   20 9D 95   JSR $959D
BDE0   C9 02      CMP #$02
BDE2   B0 03      BCS $BDE7
BDE4   A9 00      LDA #$00
BDE6   2C         .BY $2C
BDE7   A9 06      LDA #$06
BDE9   20 66 BF   JSR $BF66
BDEC   68         PLA
BDED   85 8F      STA $8F
BDEF   68         PLA
BDF0   85 9B      STA $9B
BDF2   68         PLA
BDF3   85 90      STA $90
BDF5   4C 02 BB   JMP $BB02

BDF8   .BY $0E,$16,$26,$44                     ; Bytes zwischen zwei Sektoren

; Burst-Befehle $08,$09: Sybtax Error eintragen

BDFC   A9 0E      LDA #$0E
BDFE   20 66 BF   JSR $BF66
BE01   A9 31      LDA #$31
BE03   4C 7C 80   JMP $807C

; Burst-Befehle $0a,$1a: Query Disk Format

BE06   20 B2 BC   JSR $BCB2
BE09   A2 00      LDX #$00
BE0B   86 3D      STX $3D
BE0D   A9 C0      LDA #$C0
BE0F   20 F4 DB   JSR $DBF4
BE12   C9 02      CMP #$02
BE14   B0 59      BCS $BE6F
BE16   A5 1F      LDA $1F
BE18   85 8E      STA $8E
BE1A   24 7C      BIT $7C
BE1C   10 0F      BPL $BE2D
BE1E   AD 03 02   LDA $0203
BE21   8D BC 01   STA $01BC
BE24   A9 8C      LDA #$8C
BE26   20 9D 95   JSR $959D
BE29   C9 02      CMP #$02
BE2B   B0 42      BCS $BE6F
BE2D   A5 7C      LDA $7C
BE2F   29 10      AND #$10
BE31   4A         LSR
BE32   4A         LSR
BE33   4A         LSR
BE34   4A         LSR
BE35   9D CE 01   STA $01CE,X
BE38   A9 9C      LDA #$9C
BE3A   20 9D 95   JSR $959D
BE3D   A9 B0      LDA #$B0
BE3F   20 9D 95   JSR $959D
BE42   C9 02      CMP #$02
BE44   B0 29      BCS $BE6F
BE46   A5 21      LDA $21
BE48   85 3E      STA $3E
BE4A   A2 00      LDX #$00
BE4C   A9 B0      LDA #$B0
BE4E   20 9D 95   JSR $959D
BE51   C9 02      CMP #$02
BE53   B0 1A      BCS $BE6F
BE55   A5 21      LDA $21
BE57   A4 3D      LDY $3D
BE59   99 0B 02   STA $020B,Y
BE5C   E6 3D      INC $3D
BE5E   C0 1F      CPY #$1F
BE60   B0 0B      BCS $BE6D
BE62   C5 3E      CMP $3E
BE64   D0 E4      BNE $BE4A
BE66   A5 3D      LDA $3D
BE68   85 92      STA $92
BE6A   A9 00      LDA #$00
BE6C   2C         .BY $2C
BE6D   A9 02      LDA #$02
BE6F   20 66 BF   JSR $BF66
BE72   C9 02      CMP #$02
BE74   90 03      BCC $BE79
BE76   4C FC BA   JMP $BAFC
BE79   20 97 C0   JSR $C097
BE7C   20 D4 AC   JSR $ACD4
BE7F   AD EF 01   LDA $01EF
BE82   85 94      STA $94
BE84   AD F0 01   LDA $01F0
BE87   85 93      STA $93
BE89   20 AB BF   JSR $BFAB
BE8C   A5 92      LDA $92
BE8E   20 86 BF   JSR $BF86
BE91   A5 1F      LDA $1F
BE93   20 86 BF   JSR $BF86
BE96   AD EF 01   LDA $01EF
BE99   20 86 BF   JSR $BF86
BE9C   AD F0 01   LDA $01F0
BE9F   20 86 BF   JSR $BF86
BEA2   A9 01      LDA #$01
BEA4   20 86 BF   JSR $BF86
BEA7   A9 20      LDA #$20
BEA9   24 7C      BIT $7C
BEAB   F0 0D      BEQ $BEBA
BEAD   A0 00      LDY #$00
BEAF   B9 0B 02   LDA $020B,Y
BEB2   20 86 BF   JSR $BF86
BEB5   C8         INY
BEB6   C4 92      CPY $92
BEB8   D0 F5      BNE $BEAF
BEBA   60         RTS

; Burst-Befehl $0c: Inquire Status

BEBB   24 7C      BIT $7C
BEBD   10 09      BPL $BEC8
BEBF   20 D4 AC   JSR $ACD4
BEC2   20 AB BF   JSR $BFAB
BEC5   4C BB AC   JMP $ACBB
BEC8   AD 03 02   LDA $0203
BECB   85 80      STA $80
BECD   A9 20      LDA #$20
BECF   24 7C      BIT $7C
BED1   F0 0A      BEQ $BEDD
BED3   AD 04 02   LDA $0204
BED6   85 8A      STA $8A
BED8   AD 05 02   LDA $0205
BEDB   85 89      STA $89
BEDD   24 7C      BIT $7C
BEDF   50 10      BVC $BEF1
BEE1   08         PHP
BEE2   58         CLI
BEE3   A9 80      LDA #$80
BEE5   85 81      STA $81
BEE7   20 69 FF   JSR $FF69
BEEA   20 03 8F   JSR $8F03
BEED   06 81      ASL $81
BEEF   28         PLP
BEF0   60         RTS
BEF1   A9 01      LDA #$01
BEF3   85 25      STA $25
BEF5   4C 69 FF   JMP $FF69

; Burst-Befehle $0e,$0f: Syntax Error eintragen

BEF8   A2 0E      LDX #$0E
BEFA   20 66 BF   JSR $BF66
BEFD   A9 31      LDA #$31
BEFF   4C 7C 80   JMP $807C

; Burst-Befehle $1c,$1d: Dump Cache

BF02   AD 02 02   LDA $0202
BF05   A8         TAY
BF06   29 01      AND #$01
BF08   D0 32      BNE $BF3C
BF0A   A2 00      LDX #$00
BF0C   98         TYA
BF0D   10 15      BPL $BF24
BF0F   29 40      AND #$40
BF11   4A         LSR
BF12   4A         LSR
BF13   4A         LSR
BF14   4A         LSR
BF15   4A         LSR
BF16   4A         LSR
BF17   29 01      AND #$01
BF19   85 97      STA $97
BF1B   AD 03 02   LDA $0203
BF1E   85 95      STA $95
BF20   A9 80      LDA #$80
BF22   85 87      STA $87
BF24   A5 87      LDA $87
BF26   10 17      BPL $BF3F
BF28   A9 B6      LDA #$B6
BF2A   20 9D 95   JSR $959D
BF2D   8D FA 01   STA $01FA
BF30   D0 0F      BNE $BF41
BF32   A9 80      LDA #$80
BF34   85 81      STA $81
BF36   20 6C FF   JSR $FF6C
BF39   06 81      ASL $81
BF3B   2C         .BY $2C
BF3C   A9 4F      LDA #$4F
BF3E   2C         .BY $2C
BF3F   A9 00      LDA #$00
BF41   4C FC BA   JMP $BAFC

; Kopf auf die angegebene Spur setzen

BF44   CE 06 02   DEC $0206
BF47   A5 29      LDA $29
BF49   C9 07      CMP #$07
BF4B   90 0C      BCC $BF59
BF4D   A2 00      LDX #$00
BF4F   AD 06 02   LDA $0206
BF52   95 0B      STA $0B,X
BF54   A9 A8      LDA #$A8
BF56   4C 9D 95   JMP $959D
BF59   60         RTS

; Burst-Status senden, wenn Daten vom Computer empfangen werden

BF5A   20 D4 AC   JSR $ACD4
BF5D   20 AB BF   JSR $BFAB
BF60   20 29 C0   JSR $C029
BF63   4C BB AC   JMP $ACBB 

; Burst-Status setzen

BF66   8D EA 01   STA $01EA
BF69   A6 91      LDX $91
BF6B   A5 80      LDA $80
BF6D   29 80      AND #$80
BF6F   0D EA 01   ORA $01EA
BF72   1D 7F BF   ORA $BF7F,X
BF75   25 89      AND $89
BF77   05 8A      ORA $8A
BF79   85 80      STA $80
BF7B   AD EA 01   LDA $01EA
BF7E   60         RTS

; Sektorengrößen

BF7F   .BY $00,$10,$20,$30

; FSM: Byte ausgeben

BF83   4C 15 AD   JMP $AD15
BF86   48         PHA
BF87   AD 01 40   LDA $4001
BF8A   CD 01 40   CMP $4001
BF8D   D0 F8      BNE $BF87
BF8F   29 FF      AND #$FF
BF91   30 F0      BMI $BF83
BF93   45 76      EOR $76
BF95   29 04      AND #$04
BF97   F0 EE      BEQ $BF87
BF99   68         PLA
BF9A   8D 0C 40   STA $400C
BF9D   A5 76      LDA $76
BF9F   49 04      EOR #$04
BFA1   85 76      STA $76
BFA3   A9 08      LDA #$08
BFA5   2C 0D 40   BIT $400D
BFA8   F0 FB      BEQ $BFA5
BFAA   60         RTS

; Statusbyte ausgeben

BFAB   A5 80      LDA $80
BFAD   4C 86 BF   JMP $BF86

; Job ausführen, bei Fehler erneut versuchen

BFB0   48         PHA
BFB1   A9 40      LDA #$40
BFB3   8D A8 02   STA $02A8
BFB6   68         PLA
BFB7   08         PHP
BFB8   58         CLI
BFB9   85 28      STA $28
BFBB   20 9D 95   JSR $959D
BFBE   C9 02      CMP #$02
BFC0   90 03      BCC $BFC5
BFC2   20 CE BF   JSR $BFCE
BFC5   A9 00      LDA #$00
BFC7   8D A8 02   STA $02A8
BFCA   B5 02      LDA $02,X
BFCC   28         PLP
BFCD   60         RTS
BFCE   AD A8 02   LDA $02A8
BFD1   09 80      ORA #$80
BFD3   8D A8 02   STA $02A8
BFD6   86 6C      STX $6C
BFD8   A5 28      LDA $28
BFDA   9D 72 02   STA $0272,X
BFDD   20 9D 95   JSR $959D
BFE0   4C ED 94   JMP $94ED

; Cachepuffer auf Diskette schreiben

BFE3   A9 A2      LDA #$A2
BFE5   9D 72 02   STA $0272,X
BFE8   A5 95      LDA $95
BFEA   85 4D      STA $4D
BFEC   A5 94      LDA $94
BFEE   85 4E      STA $4E
BFF0   86 6C      STX $6C
BFF2   8A         TXA
BFF3   20 88 95   JSR $9588
BFF6   A6 6C      LDX $6C
BFF8   A5 30      LDA $30
BFFA   29 3F      AND #$3F
BFFC   85 28      STA $28
BFFE   20 1D C0   JSR $C01D
C001   90 15      BCC $C018
C003   20 19 C0   JSR $C019
C006   90 10      BCC $C018
C008   C6 28      DEC $28
C00A   D0 F7      BNE $C003
C00C   24 81      BIT $81
C00E   30 08      BMI $C018
C010   2C A8 02   BIT $02A8
C013   30 03      BMI $C018
C015   4C 2F 95   JMP $952F
C018   60         RTS
C019   A9 80      LDA #$80
C01B   85 87      STA $87
C01D   A5 4D      LDA $4D
C01F   85 95      STA $95
C021   A0 01      LDY #$01
C023   4C 69 95   JMP $9569

; FSM: Wartet, bis nächstes Byte gesendet werden soll

C026   20 15 AD   JSR $AD15
C029   AD 01 40   LDA $4001
C02C   CD 01 40   CMP $4001
C02F   D0 F8      BNE $C029
C031   29 FF      AND #$FF
C033   30 F1      BMI $C026
C035   45 76      EOR $76
C037   29 04      AND #$04
C039   F0 EE      BEQ $C029
C03B   45 76      EOR $76
C03D   85 76      STA $76
C03F   60         RTS

; physikalischen Folgesektor holen

C040   38         SEC
C041   AD EF 01   LDA $01EF
C044   F0 03      BEQ $C049
C046   E9 02      SBC #$02
C048   2C         .BY $2C
C049   E9 01      SBC #$01
C04B   85 3D      STA $3D
C04D   AD 04 02   LDA $0204
C050   CD F0 01   CMP $01F0
C053   F0 06      BEQ $C05B
C055   18         CLC
C056   69 01      ADC #$01
C058   4C 6E C0   JMP $C06E
C05B   A5 7C      LDA $7C
C05D   A8         TAY
C05E   49 10      EOR #$10
C060   85 7C      STA $7C
C062   98         TYA
C063   29 10      AND #$10
C065   F0 03      BEQ $C06A
C067   EE 03 02   INC $0203
C06A   A5 94      LDA $94
C06C   B0 08      BCS $C076
C06E   90 06      BCC $C076
C070   ED F0 01   SBC $01F0
C073   18         CLC
C074   65 3D      ADC $3D
C076   8D 04 02   STA $0204
C079   60         RTS

; logischen Folgesektor holen

C07A   A5 75      LDA $75
C07C   38         SEC
C07D   E9 01      SBC #$01
C07F   85 3D      STA $3D
C081   AD 04 02   LDA $0204
C084   C5 3D      CMP $3D
C086   F0 06      BEQ $C08E
C088   18         CLC
C089   69 01      ADC #$01
C08B   4C 93 C0   JMP $C093
C08E   EE 03 02   INC $0203
C091   A9 00      LDA #$00
C093   8D 04 02   STA $0204
C096   60         RTS

; Größte/kleinste Sektornummer suchen

C097   A4 92      LDY $92
C099   88         DEY
C09A   A9 FF      LDA #$FF
C09C   D9 0B 02   CMP $020B,Y
C09F   90 03      BCC $C0A4
C0A1   B9 0B 02   LDA $020B,Y
C0A4   88         DEY
C0A5   10 F5      BPL $C09C
C0A7   8D EF 01   STA $01EF
C0AA   A4 92      LDY $92
C0AC   88         DEY
C0AD   A9 00      LDA #$00
C0AF   D9 0B 02   CMP $020B,Y
C0B2   B0 03      BCS $C0B7
C0B4   B9 0B 02   LDA $020B,Y
C0B7   88         DEY
C0B8   10 F5      BPL $C0AF
C0BA   8D F0 01   STA $01F0
C0BD   60         RTS

; JLCC: Controller-Routine

C0BE   BA         TSX
C0BF   86 2C      STX $2C
C0C1   A9 80      LDA #$80
C0C3   85 83      STA $83
C0C5   A0 08      LDY #$08
C0C7   B9 02 00   LDA $0002,Y
C0CA   30 12      BMI $C0DE
C0CC   B9 9F 00   LDA $009F,Y
C0CF   29 7F      AND #$7F
C0D1   99 9F 00   STA $009F,Y
C0D4   88         DEY
C0D5   10 F0      BPL $C0C7
C0D7   A4 83      LDY $83
C0D9   10 29      BPL $C104
C0DB   4C 00 CE   JMP $CE00
C0DE   84 83      STY $83
C0E0   AA         TAX
C0E1   98         TYA
C0E2   0A         ASL
C0E3   85 99      STA $99
C0E5   BD E7 C1   LDA $C1E7,X
C0E8   85 84      STA $84
C0EA   AA         TAX
C0EB   BD 63 C1   LDA $C163,X
C0EE   85 85      STA $85
C0F0   BD 84 C1   LDA $C184,X
C0F3   85 86      STA $86
C0F5   20 3C FF   JSR $FF3C
C0F8   06 85      ASL $85
C0FA   90 03      BCC $C0FF
C0FC   20 51 CF   JSR $CF51
C0FF   A4 83      LDY $83
C101   4C D4 C0   JMP $C0D4
C104   06 85      ASL $85
C106   90 03      BCC $C10B
C108   20 63 CD   JSR $CD63
C10B   06 85      ASL $85
C10D   90 03      BCC $C112
C10F   20 7B CD   JSR $CD7B
C112   06 85      ASL $85
C114   90 03      BCC $C119
C116   20 A6 CF   JSR $CFA6
C119   06 85      ASL $85
C11B   90 14      BCC $C131
C11D   A5 87      LDA $87
C11F   10 10      BPL $C131
C121   A5 95      LDA $95
C123   85 88      STA $88
C125   C5 27      CMP $27
C127   D0 17      BNE $C140
C129   A5 97      LDA $97
C12B   20 C0 CF   JSR $CFC0
C12E   4C 00 C6   JMP $C600
C131   06 85      ASL $85
C133   90 14      BCC $C149
C135   A4 99      LDY $99
C137   B9 BC 01   LDA $01BC,Y
C13A   85 88      STA $88
C13C   C5 27      CMP $27
C13E   F0 09      BEQ $C149
C140   A5 26      LDA $26
C142   09 40      ORA #$40
C144   85 26      STA $26
C146   4C 00 CE   JMP $CE00
C149   06 85      ASL $85
C14B   90 05      BCC $C152
C14D   A5 96      LDA $96
C14F   20 C0 CF   JSR $CFC0
C152   A5 84      LDA $84
C154   0A         ASL
C155   AA         TAX
C156   BD A5 C1   LDA $C1A5,X
C159   85 48      STA $48
C15B   BD A6 C1   LDA $C1A6,X
C15E   85 49      STA $49
C160   4C AF C5   JMP $C5AF

; Tabellen des Controller-Programms

C163   .BY $FF,$00,$30,$00,$20,$00,$32,$30     ; Steuerbits für die allgemeinen Routinen
C16B   .BY $FF,$30,$00,$00,$00,$00,$00,$00
C173   .BY $BB,$3C,$3B,$3B,$3F,$30,$BB,$30
C17B   .BY $00,$3A,$B2,$FF,$FF,$7F,$7F,$30
C183   .BY $00,$00,$80,$80,$80,$80,$80,$80
C18B   .BY $00,$20,$80,$80,$80,$80,$80,$80
C193   .BY $80,$00,$00,$40,$60,$00,$00,$00
C19B   .BY $00,$00,$00,$00,$40,$60,$40,$60
C1A3   .BY $80,$80

; Adressen der Jobroutinen, Funktionsnummer, Jobcodes

C1A5   .WD $C900       ; 00 $80: READ_DV
C1A7   .WD $C2E7       ; 01 $82: RESET_DV
C1A9   .WD $C390       ; 02 $84: MOTON_DV
C1AB   .WD $C393       ; 03 $86: MOTOFF_DV
C1AD   .WD $C396       ; 04 $88: MOTONI_DV
C1AF   .WD $C3A9       ; 05 $8a: MOTOFFI_DV
C1B1   .WD $C3AF       ; 06 $8c: SEEK_DV
C1B3   .WD $C3BB       ; 07 $8e: FORMAT_DV
C1B5   .WD $C900       ; 08 $90: WRITE_DV
C1B7   .WD $C6D7       ; 09 $92: DISKIN_DV
C1B9   .WD $C546       ; 0a $94: LEDACTON_DV
C1BB   .WD $C54F       ; 0b $96: LEDACTOFF_DV
C1BD   .WD $C558       ; 0c $98: ERRLEDON_DV
C1BF   .WD $C561       ; 0d $9a: ERRLEDOFF_DV
C1C1   .WD $C56A       ; 0e $9c: SIDE_DV
C1C3   .WD $C589       ; 0f $9e: BUFMOV_DV
C1C5   .WD $C9E1       ; 10 $a0: WRTVER_DV
C1C7   .WD $C5AC       ; 11 $a2: TRKWRT_DV
C1C9   .WD $C800       ; 12 $a4: SP_READ
C1CB   .WD $C700       ; 13 $a6: SP_WRITE
C1CD   .WD $C6D7       ; 14 $a8: PSEEK_DV
C1CF   .WD $CB09       ; 15 $b0: SEEKHD_DV
C1D1   .WD $CAE4       ; 16 $b8: SEEKPHD_DV
C1D3   .WD $CB0F       ; 17 $c0: RESTORE_DV
C1D5   .WD $CB26       ; 18 $d0: JUMPC_DV
C1D7   .WD $CB26       ; 19 $e0: EXBUF_DV
C1D9   .WD $CB35       ; 1a $f0: FORMATDK_DV
C1DB   .WD $C900       ; 1b $aa: TREAD_DV
C1DD   .WD $C900       ; 1c $ac: TWRT_DV
C1DF   .WD $C900       ; 1d $b2: TPREAD_DV
C1E1   .WD $C900       ; 1e $b4: TPWRT_DV
C1E3   .WD $CB76       ; 1f $b6: DETWP_DV
C1E5   .WD $CB85       ; 20 ungültiger Jobcode

; Jobcodes

C1E7   .BY $20,$20,$20,$20,$20,$20,$20,$20     ; $00-$7f nicht verwendet
C1EF   .BY $20,$20,$20,$20,$20,$20,$20,$20
C1F7   .BY $20,$20,$20,$20,$20,$20,$20,$20
C1FF   .BY $20,$20,$20,$20,$20,$20,$20,$20
C207   .BY $20,$20,$20,$20,$20,$20,$20,$20
C20F   .BY $20,$20,$20,$20,$20,$20,$20,$20
C217   .BY $20,$20,$20,$20,$20,$20,$20,$20
C21F   .BY $20,$20,$20,$20,$20,$20,$20,$20
C227   .BY $20,$20,$20,$20,$20,$20,$20,$20
C22F   .BY $20,$20,$20,$20,$20,$20,$20,$20
C237   .BY $20,$20,$20,$20,$20,$20,$20,$20
C23F   .BY $20,$20,$20,$20,$20,$20,$20,$20
C247   .BY $20,$20,$20,$20,$20,$20,$20,$20
C24F   .BY $20,$20,$20,$20,$20,$20,$20,$20
C257   .BY $20,$20,$20,$20,$20,$20,$20,$20
C25F   .BY $20,$20,$20,$20,$20,$20,$20,$20

C267   .BY $00,$20,$01,$20,$02,$20,$03,$20
C26F   .BY $04,$20,$05,$20,$06,$20,$07,$20
C277   .BY $08,$20,$09,$20,$0A,$20,$0B,$20
C27F   .BY $0C,$20,$0D,$20,$0E,$20,$0F,$20
C287   .BY $10,$20,$11,$20,$12,$20,$13,$20
C28F   .BY $14,$20,$1B,$20,$1C,$20,$20,$20
C297   .BY $15,$20,$1D,$20,$1E,$20,$1F,$20
C29F   .BY $16,$20,$20,$20,$20,$20,$20,$20
C2A7   .BY $17,$20,$20,$20,$20,$20,$20,$20
C2AF   .BY $20,$20,$20,$20,$20,$20,$20,$20
C2B7   .BY $18,$20,$20,$20,$20,$20,$20,$20
C2BF   .BY $20,$20,$20,$20,$20,$20,$20,$20
C2C7   .BY $19,$20,$20,$20,$20,$20,$20,$20
C2CF   .BY $20,$20,$20,$20,$20,$20,$20,$20
C2D7   .BY $1A,$20,$20,$20,$20,$20,$20,$20
C2DF   .BY $20,$20,$20,$20,$20,$20,$20,$20

; JOB $82: RESET_DV

C2E7   A0 FF      LDY #$FF
C2E9   20 D5 CB   JSR $CBD5
C2EC   A0 FF      LDY #$FF
C2EE   20 D5 CB   JSR $CBD5
C2F1   A9 80      LDA #$80
C2F3   85 95      STA $95
C2F5   A9 00      LDA #$00
C2F7   85 87      STA $87
C2F9   20 CF B0   JSR $B0CF
C2FC   20 B3 B0   JSR $B0B3
C2FF   A9 4E      LDA #$4E
C301   8D D7 01   STA $01D7
C304   A9 20      LDA #$20
C306   8D D8 01   STA $01D8
C309   20 9F CB   JSR $CB9F
C30C   A9 08      LDA #$08
C30E   8D DA 01   STA $01DA
C311   A9 18      LDA #$18
C313   8D DB 01   STA $01DB
C316   A9 28      LDA #$28
C318   8D DC 01   STA $01DC
C31B   A9 48      LDA #$48
C31D   8D DD 01   STA $01DD
C320   A9 68      LDA #$68
C322   8D DE 01   STA $01DE
C325   A9 88      LDA #$88
C327   8D DF 01   STA $01DF
C32A   A9 AA      LDA #$AA
C32C   8D E0 01   STA $01E0
C32F   A9 C8      LDA #$C8
C331   8D E1 01   STA $01E1
C334   A9 E8      LDA #$E8
C336   8D E2 01   STA $01E2
C339   A9 FA      LDA #$FA
C33B   8D E3 01   STA $01E3
C33E   A9 D0      LDA #$D0
C340   8D E4 01   STA $01E4
C343   A9 12      LDA #$12
C345   85 98      STA $98
C347   A0 FF      LDY #$FF
C349   8C 01 60   STY $6001
C34C   8C 02 60   STY $6002
C34F   8C 03 60   STY $6003
C352   20 34 AD   JSR $AD34
C355   CC 01 60   CPY $6001
C358   D0 2E      BNE $C388
C35A   CC 02 60   CPY $6002
C35D   D0 29      BNE $C388
C35F   CC 03 60   CPY $6003
C362   D0 24      BNE $C388
C364   88         DEY
C365   D0 E2      BNE $C349
C367   20 D1 CF   JSR $CFD1
C36A   A9 00      LDA #$00
C36C   8D 08 40   STA $4008
C36F   20 2F AD   JSR $AD2F
C372   AD 08 40   LDA $4008
C375   D0 0F      BNE $C386
C377   EE DA 01   INC $01DA
C37A   EE DB 01   INC $01DB
C37D   EE DC 01   INC $01DC
C380   EE DD 01   INC $01DD
C383   EE DE 01   INC $01DE
C386   D0 03      BNE $C38B
C388   A9 0D      LDA #$0D
C38A   2C         .BY $2C
C38B   A9 00      LDA #$00
C38D   4C CC CD   JMP $CDCC

; JOB $84: MOTON_DV

C390   4C 99 C3   JMP $C399

; JOB $86: MOTOFF_DV

C393   4C 8B C3   JMP $C38B

; JOB $88: MOTONI_DV

C396   20 B1 CB   JSR $CBB1
C399   A9 00      LDA #$00
C39B   A4 83      LDY $83
C39D   99 02 00   STA $0002,Y
C3A0   A9 80      LDA #$80
C3A2   85 83      STA $83
C3A4   A0 08      LDY #$08
C3A6   4C FA CD   JMP $CDFA

; JOB $8a: MOTOFFI_DV

C3A9   20 BA CB   JSR $CBBA
C3AC   4C 99 C3   JMP $C399

; JOB $8c: SEEK_DV

C3AF   A5 88      LDA $88
C3B1   C5 27      CMP $27
C3B3   F0 03      BEQ $C3B8
C3B5   4C 00 CE   JMP $CE00
C3B8   4C 8B C3   JMP $C38B

; JOB $8e: FORMAT_DV

C3BB   20 B7 CF   JSR $CFB7
C3BE   20 D6 C3   JSR $C3D6
C3C1   B0 0E      BCS $C3D1
C3C3   20 3F CD   JSR $CD3F
C3C6   D0 0B      BNE $C3D3
C3C8   20 B7 CF   JSR $CFB7
C3CB   20 00 CA   JSR $CA00
C3CE   A9 01      LDA #$01
C3D0   2C         .BY $2C
C3D1   A9 06      LDA #$06
C3D3   4C CC CD   JMP $CDCC

; Spur formatieren

C3D6   A5 88      LDA $88
C3D8   8D 01 60   STA $6001
C3DB   20 E3 CF   JSR $CFE3
C3DE   A5 94      LDA $94
C3E0   85 39      STA $39
C3E2   A5 92      LDA $92
C3E4   85 3A      STA $3A
C3E6   AD E3 01   LDA $01E3
C3E9   20 F4 CB   JSR $CBF4
C3EC   A2 20      LDX #$20
C3EE   AD 00 60   LDA $6000
C3F1   29 03      AND #$03
C3F3   4A         LSR
C3F4   90 26      BCC $C41C
C3F6   F0 F6      BEQ $C3EE
C3F8   A9 4E      LDA #$4E
C3FA   8D 03 60   STA $6003
C3FD   CA         DEX
C3FE   D0 EE      BNE $C3EE
C400   A2 0C      LDX #$0C
C402   AD 00 60   LDA $6000
C405   29 03      AND #$03
C407   4A         LSR
C408   90 12      BCC $C41C
C40A   F0 F6      BEQ $C402
C40C   A9 00      LDA #$00
C40E   8D 03 60   STA $6003
C411   CA         DEX
C412   D0 EE      BNE $C402
C414   A2 03      LDX #$03
C416   AD 00 60   LDA $6000
C419   29 03      AND #$03
C41B   4A         LSR
C41C   90 51      BCC $C46F
C41E   F0 F6      BEQ $C416
C420   A9 F5      LDA #$F5
C422   8D 03 60   STA $6003
C425   CA         DEX
C426   D0 EE      BNE $C416
C428   EA         NOP
C429   AD 00 60   LDA $6000
C42C   29 03      AND #$03
C42E   4A         LSR
C42F   90 3E      BCC $C46F
C431   F0 F6      BEQ $C429
C433   A9 FE      LDA #$FE
C435   8D 03 60   STA $6003
C438   EA         NOP
C439   AD 00 60   LDA $6000
C43C   29 03      AND #$03
C43E   4A         LSR
C43F   90 2E      BCC $C46F
C441   F0 F6      BEQ $C439
C443   AD 01 60   LDA $6001
C446   8D 03 60   STA $6003
C449   AD 00 60   LDA $6000
C44C   29 03      AND #$03
C44E   4A         LSR
C44F   90 1E      BCC $C46F
C451   F0 F6      BEQ $C449
C453   A5 96      LDA $96
C455   8D 03 60   STA $6003
C458   EA         NOP
C459   AD 00 60   LDA $6000
C45C   29 03      AND #$03
C45E   4A         LSR
C45F   90 0E      BCC $C46F
C461   F0 F6      BEQ $C459
C463   A5 39      LDA $39
C465   8D 03 60   STA $6003
C468   EA         NOP
C469   AD 00 60   LDA $6000
C46C   29 03      AND #$03
C46E   4A         LSR
C46F   90 33      BCC $C4A4
C471   F0 F6      BEQ $C469
C473   A5 91      LDA $91
C475   8D 03 60   STA $6003
C478   EA         NOP
C479   AD 00 60   LDA $6000
C47C   29 03      AND #$03
C47E   4A         LSR
C47F   90 23      BCC $C4A4
C481   F0 F6      BEQ $C479
C483   A9 F7      LDA #$F7
C485   8D 03 60   STA $6003
C488   A2 16      LDX #$16
C48A   AD 00 60   LDA $6000
C48D   29 03      AND #$03
C48F   4A         LSR
C490   90 12      BCC $C4A4
C492   F0 F6      BEQ $C48A
C494   A9 4E      LDA #$4E
C496   8D 03 60   STA $6003
C499   CA         DEX
C49A   D0 EE      BNE $C48A
C49C   A2 0C      LDX #$0C
C49E   AD 00 60   LDA $6000
C4A1   29 03      AND #$03
C4A3   4A         LSR
C4A4   90 3B      BCC $C4E1
C4A6   F0 F6      BEQ $C49E
C4A8   A9 00      LDA #$00
C4AA   8D 03 60   STA $6003
C4AD   CA         DEX
C4AE   D0 EE      BNE $C49E
C4B0   A2 03      LDX #$03
C4B2   AD 00 60   LDA $6000
C4B5   29 03      AND #$03
C4B7   4A         LSR
C4B8   90 27      BCC $C4E1
C4BA   F0 F6      BEQ $C4B2
C4BC   A9 F5      LDA #$F5
C4BE   8D 03 60   STA $6003
C4C1   CA         DEX
C4C2   D0 EE      BNE $C4B2
C4C4   EA         NOP
C4C5   AD 00 60   LDA $6000
C4C8   29 03      AND #$03
C4CA   4A         LSR
C4CB   90 14      BCC $C4E1
C4CD   F0 F6      BEQ $C4C5
C4CF   A9 FB      LDA #$FB
C4D1   8D 03 60   STA $6003
C4D4   A4 91      LDY $91
C4D6   C0 03      CPY #$03
C4D8   D0 01      BNE $C4DB
C4DA   C8         INY
C4DB   AD 00 60   LDA $6000
C4DE   29 03      AND #$03
C4E0   4A         LSR
C4E1   90 61      BCC $C544
C4E3   F0 F6      BEQ $C4DB
C4E5   A5 9B      LDA $9B
C4E7   C9 F5      CMP #$F5
C4E9   D0 08      BNE $C4F3
C4EB   84 82      STY $82
C4ED   A0 00      LDY #$00
C4EF   B1 4A      LDA ($4A),Y
C4F1   A4 82      LDY $82
C4F3   8D 03 60   STA $6003
C4F6   E6 4A      INC $4A
C4F8   D0 E1      BNE $C4DB
C4FA   E6 4B      INC $4B
C4FC   88         DEY
C4FD   D0 DC      BNE $C4DB
C4FF   AD 00 60   LDA $6000
C502   29 03      AND #$03
C504   4A         LSR
C505   90 3D      BCC $C544
C507   F0 F6      BEQ $C4FF
C509   A9 F7      LDA #$F7
C50B   8D 03 60   STA $6003
C50E   A6 9A      LDX $9A
C510   EA         NOP
C511   AD 00 60   LDA $6000
C514   29 03      AND #$03
C516   4A         LSR
C517   90 2B      BCC $C544
C519   F0 F6      BEQ $C511
C51B   A9 4E      LDA #$4E
C51D   8D 03 60   STA $6003
C520   CA         DEX
C521   D0 EE      BNE $C511
C523   C6 3A      DEC $3A
C525   F0 06      BEQ $C52D
C527   E6 39      INC $39
C529   4C 00 C4   JMP $C400
C52C   EA         NOP
C52D   AD 00 60   LDA $6000
C530   29 03      AND #$03
C532   4A         LSR
C533   90 0A      BCC $C53F
C535   F0 F6      BEQ $C52D
C537   18         CLC
C538   A9 4E      LDA #$4E
C53A   8D 03 60   STA $6003
C53D   D0 EE      BNE $C52D
C53F   20 EC CB   JSR $CBEC
C542   18         CLC
C543   24         .BY $24
C544   38         SEC
C545   60         RTS

; LED-Routinen des Controller-Programms

C546   A5 79      LDA $79
C548   09 40      ORA #$40
C54A   85 79      STA $79
C54C   4C 99 C3   JMP $C399
C54F   A5 79      LDA $79
C551   29 BF      AND #$BF
C553   85 79      STA $79
C555   4C 99 C3   JMP $C399
C558   A5 79      LDA $79
C55A   09 20      ORA #$20
C55C   85 79      STA $79
C55E   4C 99 C3   JMP $C399
C561   A5 79      LDA $79
C563   29 DF      AND #$DF
C565   85 79      STA $79
C567   4C 99 C3   JMP $C399

; JOB $9c: SIDE_DV

C56A   A4 83      LDY $83
C56C   B9 CE 01   LDA $01CE,Y
C56F   29 01      AND #$01
C571   85 97      STA $97
C573   D0 03      BNE $C578
C575   A9 00      LDA #$00
C577   2C         .BY $2C
C578   A9 01      LDA #$01
C57A   85 36      STA $36
C57C   AD 00 40   LDA $4000
C57F   29 FE      AND #$FE
C581   05 36      ORA $36
C583   8D 00 40   STA $4000
C586   4C 99 C3   JMP $C399

; JOB $9e: BUFMOVE_DV

C589   A4 99      LDY $99
C58B   B9 0C 00   LDA $000C,Y
C58E   85 39      STA $39
C590   24 39      BIT $39
C592   10 12      BPL $C5A6
C594   B9 BC 01   LDA $01BC,Y
C597   85 95      STA $95
C599   A4 83      LDY $83
C59B   B9 CE 01   LDA $01CE,Y
C59E   85 97      STA $97
C5A0   20 A4 CE   JSR $CEA4
C5A3   4C 8B C3   JMP $C38B
C5A6   20 AF CE   JSR $CEAF
C5A9   4C 8B C3   JMP $C38B

; JOB $a2: TRKWRT_DV

C5AC   4C 8B C3   JMP $C38B

; Patches

C5AF   78         SEI
C5B0   6C 48 00   JMP ($0048)

; nicht verwendet

C5B2   .BY $FF    ...
C5FF   .BY $FF

; Cachepuffer auf Diskette schreiben

C600   20 A6 CF   JSR $CFA6
C603   A5 95      LDA $95
C605   C5 1F      CMP $1F
C607   F0 03      BEQ $C60C
C609   4C 88 CB   JMP $CB88
C60C   8D 01 60   STA $6001
C60F   20 E3 CF   JSR $CFE3
C612   20 B7 CF   JSR $CFB7
C615   A5 92      LDA $92
C617   85 3A      STA $3A
C619   A5 21      LDA $21
C61B   AA         TAX
C61C   C5 93      CMP $93
C61E   08         PHP
C61F   D0 06      BNE $C627
C621   A5 94      LDA $94
C623   AA         TAX
C624   38         SEC
C625   E9 01      SBC #$01
C627   38         SEC
C628   E5 94      SBC $94
C62A   18         CLC
C62B   69 01      ADC #$01
C62D   A4 91      LDY $91
C62F   88         DEY
C630   F0 03      BEQ $C635
C632   0A         ASL
C633   90 FA      BCC $C62F
C635   20 8D CB   JSR $CB8D
C638   8A         TXA
C639   28         PLP
C63A   F0 05      BEQ $C641
C63C   18         CLC
C63D   69 01      ADC #$01
C63F   D0 02      BNE $C643
C641   A5 94      LDA $94
C643   8D 02 60   STA $6002
C646   EA         NOP
C647   EA         NOP
C648   EA         NOP
C649   EA         NOP
C64A   EA         NOP
C64B   EA         NOP
C64C   EA         NOP
C64D   EA         NOP
C64E   EA         NOP
C64F   EA         NOP
C650   EA         NOP
C651   EA         NOP
C652   EA         NOP
C653   EA         NOP
C654   EA         NOP
C655   EA         NOP
C656   EA         NOP
C657   EA         NOP
C658   EA         NOP
C659   EA         NOP
C65A   AD E0 01   LDA $01E0
C65D   20 F4 CB   JSR $CBF4
C660   A4 91      LDY $91
C662   C0 03      CPY #$03
C664   D0 01      BNE $C667
C666   C8         INY
C667   AD 00 60   LDA $6000
C66A   29 03      AND #$03
C66C   4A         LSR
C66D   90 5D      BCC $C6CC
C66F   F0 F6      BEQ $C667
C671   84 82      STY $82
C673   A0 00      LDY #$00
C675   B1 4A      LDA ($4A),Y
C677   8D 03 60   STA $6003
C67A   A4 82      LDY $82
C67C   E6 4A      INC $4A
C67E   D0 E7      BNE $C667
C680   E6 4B      INC $4B
C682   88         DEY
C683   D0 E2      BNE $C667
C685   20 3F CD   JSR $CD3F
C688   D0 42      BNE $C6CC
C68A   C6 3A      DEC $3A
C68C   F0 3E      BEQ $C6CC
C68E   AD 02 60   LDA $6002
C691   EE 02 60   INC $6002
C694   EA         NOP
C695   EA         NOP
C696   EA         NOP
C697   EA         NOP
C698   EA         NOP
C699   EA         NOP
C69A   EA         NOP
C69B   EA         NOP
C69C   EA         NOP
C69D   EA         NOP
C69E   EA         NOP
C69F   EA         NOP
C6A0   EA         NOP
C6A1   EA         NOP
C6A2   EA         NOP
C6A3   EA         NOP
C6A4   EA         NOP
C6A5   EA         NOP
C6A6   EA         NOP
C6A7   EA         NOP
C6A8   C5 93      CMP $93
C6AA   D0 AE      BNE $C65A
C6AC   A5 8C      LDA $8C
C6AE   85 4B      STA $4B
C6B0   A5 94      LDA $94
C6B2   8D 02 60   STA $6002
C6B5   EA         NOP
C6B6   EA         NOP
C6B7   EA         NOP
C6B8   EA         NOP
C6B9   EA         NOP
C6BA   EA         NOP
C6BB   EA         NOP
C6BC   EA         NOP
C6BD   EA         NOP
C6BE   EA         NOP
C6BF   EA         NOP
C6C0   EA         NOP
C6C1   EA         NOP
C6C2   EA         NOP
C6C3   EA         NOP
C6C4   EA         NOP
C6C5   EA         NOP
C6C6   EA         NOP
C6C7   EA         NOP
C6C8   EA         NOP
C6C9   4C 5A C6   JMP $C65A
C6CC   20 3F CD   JSR $CD3F
C6CF   F0 03      BEQ $C6D4
C6D1   4C CC CD   JMP $CDCC
C6D4   4C E1 C9   JMP $C9E1

; JOBs $92, $a8: DISKIN_DV, PSEEK_DV

C6D7   20 A6 CF   JSR $CFA6
C6DA   4C 8B C3   JMP $C38B

; nicht verwendet

C6DD   .BY $FF    ...
C6FF   .BY $FF

; JOB $a6: SP_WRITE

C700   20 A6 CF   JSR $CFA6
C703   A5 88      LDA $88
C705   C5 1F      CMP $1F
C707   F0 03      BEQ $C70C
C709   4C 88 CB   JMP $CB88
C70C   A6 83      LDX $83
C70E   B5 0B      LDA $0B,X
C710   8D 01 60   STA $6001
C713   B5 0C      LDA $0C,X
C715   8D 02 60   STA $6002
C718   A9 00      LDA #$00
C71A   85 4A      STA $4A
C71C   A9 03      LDA #$03
C71E   85 4B      STA $4B
C720   EA         NOP
C721   EA         NOP
C722   EA         NOP
C723   EA         NOP
C724   EA         NOP
C725   EA         NOP
C726   EA         NOP
C727   EA         NOP
C728   EA         NOP
C729   EA         NOP
C72A   EA         NOP
C72B   EA         NOP
C72C   EA         NOP
C72D   EA         NOP
C72E   EA         NOP
C72F   EA         NOP
C730   EA         NOP
C731   EA         NOP
C732   EA         NOP
C733   AD E0 01   LDA $01E0
C736   20 F4 CB   JSR $CBF4
C739   A4 91      LDY $91
C73B   C0 03      CPY #$03
C73D   D0 02      BNE $C741
C73F   C8         INY
C740   EA         NOP
C741   AD 00 60   LDA $6000
C744   29 03      AND #$03
C746   4A         LSR
C747   90 16      BCC $C75F
C749   F0 F6      BEQ $C741
C74B   84 82      STY $82
C74D   A0 00      LDY #$00
C74F   B1 4A      LDA ($4A),Y
C751   8D 03 60   STA $6003
C754   A4 82      LDY $82
C756   E6 4A      INC $4A
C758   D0 E7      BNE $C741
C75A   E6 4B      INC $4B
C75C   88         DEY
C75D   D0 E2      BNE $C741
C75F   20 3F CD   JSR $CD3F
C762   4C CC CD   JMP $CDCC

; nicht verwendet

C765   .BY $FF    ...
C7FF   .BY $FF

; JOB $a4: SP_READ

C800   20 A6 CF   JSR $CFA6
C803   A5 88      LDA $88
C805   C5 1F      CMP $1F
C807   F0 03      BEQ $C80C
C809   4C 88 CB   JMP $CB88
C80C   A6 83      LDX $83
C80E   B5 0B      LDA $0B,X
C810   8D 01 60   STA $6001
C813   B5 0C      LDA $0C,X
C815   8D 02 60   STA $6002
C818   A9 00      LDA #$00
C81A   85 4A      STA $4A
C81C   A9 03      LDA #$03
C81E   85 4B      STA $4B
C820   EA         NOP
C821   EA         NOP
C822   EA         NOP
C823   EA         NOP
C824   EA         NOP
C825   EA         NOP
C826   EA         NOP
C827   EA         NOP
C828   EA         NOP
C82A   EA         NOP
C82B   EA         NOP
C82C   EA         NOP
C82D   EA         NOP
C82E   EA         NOP
C82F   EA         NOP
C830   EA         NOP
C831   EA         NOP
C832   EA         NOP
C833   AD DF 01   LDA $01DF
C836   20 F4 CB   JSR $CBF4
C839   A4 91      LDY $91
C83B   C0 03      CPY #$03
C83D   D0 02      BNE $C841
C83F   C8         INY
C840   EA         NOP
C841   AD 00 60   LDA $6000
C844   29 03      AND #$03
C846   4A         LSR
C847   90 16      BCC $C85F
C849   F0 F6      BEQ $C841
C84B   84 82      STY $82
C84D   A0 00      LDY #$00
C84F   AD 03 60   LDA $6003
C852   91 4A      STA ($4A),Y
C854   A4 82      LDY $82
C856   E6 4A      INC $4A
C858   D0 E7      BNE $C841
C85A   E6 4B      INC $4B
C85C   88         DEY
C85D   D0 E2      BNE $C841
C85F   20 3F CD   JSR $CD3F
C862   4C CC CD   JMP $CDCC

; nicht verwendet

C865   .BY $FF    ...
C8FF   .BY $FF

; JOBs $80, $90: READ_DV, WRITE_DV

C900   20 A6 CF   JSR $CFA6
C903   A5 88      LDA $88
C905   C5 1F      CMP $1F
C907   F0 03      BEQ $C90C
C909   4C 88 CB   JMP $CB88
C90C   8D 01 60   STA $6001
C90F   20 B7 CF   JSR $CFB7
C912   A5 96      LDA $96
C914   85 39      STA $39
C916   A5 92      LDA $92
C918   85 3A      STA $3A
C91A   A5 21      LDA $21
C91C   AA         TAX
C91D   C5 93      CMP $93
C91F   08         PHP
C920   D0 06      BNE $C928
C922   A5 94      LDA $94
C924   AA         TAX
C925   38         SEC
C926   E9 01      SBC #$01
C928   38         SEC
C929   E5 94      SBC $94
C92B   18         CLC
C92C   69 01      ADC #$01
C92E   A4 91      LDY $91
C930   88         DEY
C931   F0 03      BEQ $C936
C933   0A         ASL
C934   90 FA      BCC $C930
C936   20 8D CB   JSR $CB8D
C939   8A         TXA
C93A   28         PLP
C93B   F0 05      BEQ $C942
C93D   18         CLC
C93E   69 01      ADC #$01
C940   D0 02      BNE $C944
C942   A5 94      LDA $94
C944   8D 02 60   STA $6002
C947   EA         NOP
C948   EA         NOP
C949   EA         NOP
C94A   EA         NOP
C94B   EA         NOP
C94C   EA         NOP
C94D   EA         NOP
C94E   EA         NOP
C94F   EA         NOP
C950   EA         NOP
C951   EA         NOP
C952   EA         NOP
C953   EA         NOP
C954   EA         NOP
C955   EA         NOP
C956   EA         NOP
C957   EA         NOP
C958   EA         NOP
C959   EA         NOP
C95A   EA         NOP
C95B   AD DF 01   LDA $01DF
C95E   20 F4 CB   JSR $CBF4
C961   A4 91      LDY $91
C963   C0 03      CPY #$03
C965   D0 02      BNE $C969
C967   C8         INY
C968   EA         NOP
C969   AD 00 60   LDA $6000
C96C   29 03      AND #$03
C96E   4A         LSR
C96F   90 5D      BCC $C9CE
C971   F0 F6      BEQ $C969
C973   84 82      STY $82
C975   A0 00      LDY #$00
C977   AD 03 60   LDA $6003
C97A   91 4A      STA ($4A),Y
C97C   A4 82      LDY $82
C97E   E6 4A      INC $4A
C980   D0 E7      BNE $C969
C982   E6 4B      INC $4B
C984   88         DEY
C985   D0 E2      BNE $C969
C987   20 3F CD   JSR $CD3F
C98A   D0 42      BNE $C9CE
C98C   C6 3A      DEC $3A
C98E   F0 3E      BEQ $C9CE
C990   AD 02 60   LDA $6002
C993   EE 02 60   INC $6002
C996   EA         NOP
C997   EA         NOP
C998   EA         NOP
C999   EA         NOP
C99A   EA         NOP
C99B   EA         NOP
C99C   EA         NOP
C99D   EA         NOP
C99E   EA         NOP
C99F   EA         NOP
C9A0   EA         NOP
C9A1   EA         NOP
C9A2   EA         NOP
C9A3   EA         NOP
C9A4   EA         NOP
C9A5   EA         NOP
C9A6   EA         NOP
C9A7   EA         NOP
C9A8   EA         NOP
C9A9   EA         NOP
C9AA   C5 93      CMP $93
C9AC   D0 AD      BNE $C95B
C9AE   A5 8C      LDA $8C
C9B0   85 4B      STA $4B
C9B2   A5 94      LDA $94
C9B4   8D 02 60   STA $6002
C9B7   EA         NOP
C9B8   EA         NOP
C9B9   EA         NOP
C9BA   EA         NOP
C9BB   EA         NOP
C9BC   EA         NOP
C9BD   EA         NOP
C9BE   EA         NOP
C9BF   EA         NOP
C9C0   EA         NOP
C9C1   EA         NOP
C9C2   EA         NOP
C9C3   EA         NOP
C9C4   EA         NOP
C9C5   EA         NOP
C9C6   EA         NOP
C9C7   EA         NOP
C9C8   EA         NOP
C9C9   EA         NOP
C9CA   EA         NOP
C9CB   4C 5B C9   JMP $C95B
C9CE   20 3F CD   JSR $CD3F
C9D1   D0 0B      BNE $C9DE
C9D3   A5 96      LDA $96
C9D5   85 97      STA $97
C9D7   A5 88      LDA $88
C9D9   85 95      STA $95
C9DB   4C E2 CD   JMP $CDE2
C9DE   4C CC CD   JMP $CDCC

; Job $a0: WRTVER_DV

C9E1   24 8D      BIT $8D
C9E3   10 0B      BPL $C9F0
C9E5   20 DC CB   JSR $CBDC
C9E8   20 00 CA   JSR $CA00
C9EB   06 87      ASL $87
C9ED   4C E2 CD   JMP $CDE2
C9F0   20 DC CB   JSR $CBDC
C9F3   4C EB C9   JMP $C9EB

; nicht verwendet

C9F6   .BY $FF    ...
C9FF   .BY $FF

; Spur mit Cachedaten vergleichen

CA00   20 A6 CF   JSR $CFA6
CA03   A5 88      LDA $88
CA05   C5 1F      CMP $1F
CA07   F0 03      BEQ $CA0C
CA09   4C 88 CB   JMP $CB88
CA0C   8D 01 60   STA $6001
CA0F   20 B7 CF   JSR $CFB7
CA12   A5 96      LDA $96
CA14   85 39      STA $39
CA16   A5 92      LDA $92
CA18   85 3A      STA $3A
CA1A   A5 21      LDA $21
CA1C   AA         TAX
CA1D   C5 93      CMP $93
CA1F   08         PHP
CA20   D0 06      BNE $CA28
CA22   A5 94      LDA $94
CA24   AA         TAX
CA25   38         SEC
CA26   E9 01      SBC #$01
CA28   38         SEC
CA29   E5 94      SBC $94
CA2B   18         CLC
CA2C   69 01      ADC #$01
CA2E   A4 91      LDY $91
CA30   88         DEY
CA31   F0 03      BEQ $CA36
CA33   0A         ASL
CA34   90 FA      BCC $CA30
CA36   20 8D CB   JSR $CB8D
CA39   8A         TXA
CA3A   28         PLP
CA3B   F0 05      BEQ $CA42
CA3D   18         CLC
CA3E   69 01      ADC #$01
CA40   D0 02      BNE $CA44
CA42   A5 94      LDA $94
CA44   8D 02 60   STA $6002
CA47   EA         NOP
CA48   EA         NOP
CA49   EA         NOP
CA4A   EA         NOP
CA4B   EA         NOP
CA4C   EA         NOP
CA4D   EA         NOP
CA4E   EA         NOP
CA4F   EA         NOP
CA50   EA         NOP
CA51   EA         NOP
CA52   EA         NOP
CA53   EA         NOP
CA54   EA         NOP
CA55   EA         NOP
CA56   EA         NOP
CA57   EA         NOP
CA58   EA         NOP
CA59   EA         NOP
CA5A   EA         NOP
CA5B   AD DF 01   LDA $01DF
CA5E   20 F4 CB   JSR $CBF4
CA61   A4 91      LDY $91
CA63   C0 03      CPY #$03
CA65   D0 02      BNE $CA69
CA67   C8         INY
CA68   EA         NOP
CA69   AD 00 60   LDA $6000
CA6C   29 03      AND #$03
CA6E   4A         LSR
CA6F   90 65      BCC $CAD6
CA71   F0 F6      BEQ $CA69
CA73   A5 9B      LDA $9B
CA75   C9 F5      CMP #$F5
CA77   D0 08      BNE $CA81
CA79   84 82      STY $82
CA7B   A0 00      LDY #$00
CA7D   B1 4A      LDA ($4A),Y
CA7F   A4 82      LDY $82
CA81   CD 03 60   CMP $6003
CA84   D0 56      BNE $CADC
CA86   E6 4A      INC $4A
CA88   D0 DF      BNE $CA69
CA8A   E6 4B      INC $4B
CA8C   88         DEY
CA8D   D0 DA      BNE $CA69
CA8F   20 3F CD   JSR $CD3F
CA92   D0 47      BNE $CADB
CA94   C6 3A      DEC $3A
CA96   F0 3E      BEQ $CAD6
CA98   AD 02 60   LDA $6002
CA9B   EE 02 60   INC $6002
CA9E   EA         NOP
CA9F   EA         NOP
CAA0   EA         NOP
CAA1   EA         NOP
CAA2   EA         NOP
CAA3   EA         NOP
CAA4   EA         NOP
CAA5   EA         NOP
CAA6   EA         NOP
CAA7   EA         NOP
CAA8   EA         NOP
CAA9   EA         NOP
CAAA   EA         NOP
CAAB   EA         NOP
CAAC   EA         NOP
CAAD   EA         NOP
CAAE   EA         NOP
CAAF   EA         NOP
CAB0   EA         NOP
CAB1   EA         NOP
CAB2   C5 93      CMP $93
CAB4   D0 A5      BNE $CA5B
CAB6   A5 8C      LDA $8C
CAB8   85 4B      STA $4B
CABA   A5 94      LDA $94
CABC   8D 02 60   STA $6002
CABF   EA         NOP
CAC0   EA         NOP
CAC1   EA         NOP
CAC2   EA         NOP
CAC3   EA         NOP
CAC4   EA         NOP
CAC5   EA         NOP
CAC6   EA         NOP
CAC7   EA         NOP
CAC8   EA         NOP
CAC9   EA         NOP
CACA   EA         NOP
CACB   EA         NOP
CACC   EA         NOP
CACD   EA         NOP
CACE   EA         NOP
CACF   EA         NOP
CAD0   EA         NOP
CAD1   EA         NOP
CAD2   EA         NOP
CAD3   4C 5B CA   JMP $CA5B
CAD6   20 3F CD   JSR $CD3F
CAD9   D0 06      BNE $CAE1
CADB   60         RTS

; Verify-Error ausgeben

CADC   20 D1 CF   JSR $CFD1
CADF   A9 07      LDA #$07
CAE1   4C CC CD   JMP $CDCC

; JOB $b8: SEEKPHD_DV

CAE4   20 A6 CF   JSR $CFA6
CAE7   A5 27      LDA $27
CAE9   C5 88      CMP $88
CAEB   D0 19      BNE $CB06
CAED   A0 3C      LDY #$3C
CAEF   84 39      STY $39
CAF1   20 A6 CF   JSR $CFA6
CAF4   A4 99      LDY $99
CAF6   B9 BD 01   LDA $01BD,Y
CAF9   C5 21      CMP $21
CAFB   F0 0C      BEQ $CB09
CAFD   C6 39      DEC $39
CAFF   D0 F0      BNE $CAF1
CB01   A9 02      LDA #$02
CB03   4C CC CD   JMP $CDCC
CB06   4C 00 CE   JMP $CE00
CB09   20 A6 CF   JSR $CFA6
CB0C   4C 8B C3   JMP $C38B

; JOB $c0: RESTORE_DV

CB0F   AD DA 01   LDA $01DA
CB12   20 F4 CB   JSR $CBF4
CB15   20 EC CB   JSR $CBEC
CB18   A5 8E      LDA $8E
CB1A   85 27      STA $27
CB1C   85 88      STA $88
CB1E   A4 98      LDY $98
CB20   20 D5 CB   JSR $CBD5
CB23   4C 8B C3   JMP $C38B

; JOBs $d0, $e0: JUMPC_DV, EXBUF_DV

CB26   A6 83      LDX $83
CB28   BD F1 01   LDA $01F1,X
CB2B   85 49      STA $49
CB2D   A0 00      LDY #$00
CB2F   84 48      STY $48
CB31   8A         TXA
CB32   6C 48 00   JMP ($0048)

; JOB $f0: FORMATDK_DV

CB35   A9 00      LDA #$00
CB37   85 96      STA $96
CB39   A5 96      LDA $96
CB3B   20 C0 CF   JSR $CFC0
CB3E   20 B7 CF   JSR $CFB7
CB41   20 D6 C3   JSR $C3D6
CB44   20 3F CD   JSR $CD3F
CB47   D0 1C      BNE $CB65
CB49   20 DC CB   JSR $CBDC
CB4C   20 B7 CF   JSR $CFB7
CB4F   20 00 CA   JSR $CA00
CB52   E6 96      INC $96
CB54   A5 96      LDA $96
CB56   C9 02      CMP #$02
CB58   90 DF      BCC $CB39
CB5A   A5 88      LDA $88
CB5C   C5 8F      CMP $8F
CB5E   D0 08      BNE $CB68
CB60   A9 01      LDA #$01
CB62   2C         .BY $2C
CB63   A9 06      LDA #$06
CB65   4C CC CD   JMP $CDCC
CB68   A4 99      LDY $99
CB6A   B9 BC 01   LDA $01BC,Y
CB6D   18         CLC
CB6E   69 01      ADC #$01
CB70   99 BC 01   STA $01BC,Y
CB73   4C FA CD   JMP $CDFA

; JOB $b6: DETWP_DV

CB76   A9 40      LDA #$40
CB78   2C 01 40   BIT $4001
CB7B   D0 03      BNE $CB80
CB7D   A9 08      LDA #$08
CB7F   2C         .BY $2C
CB80   A9 00      LDA #$00
CB82   4C CC CD   JMP $CDCC

; Job-Fehlermeldungen

CB85   A9 0E      LDA #$0E
CB87   2C         .BY $2C
CB88   A9 02      LDA #$02
CB8A   4C CC CD   JMP $CDCC

; Sektor in Cachepuffer prüfen

CB8D   18         CLC
CB8E   65 8C      ADC $8C
CB90   85 4B      STA $4B
CB92   C9 20      CMP #$20
CB94   B0 01      BCS $CB97
CB96   60         RTS
CB97   68         PLA
CB98   68         PLA
CB99   20 3F CD   JSR $CD3F
CB9C   4C 88 CB   JMP $CB88

; Timer setzen und starten

CB9F   AD D7 01   LDA $01D7
CBA2   8D 07 40   STA $4007
CBA5   AD D8 01   LDA $01D8
CBA8   8D 06 40   STA $4006
CBAB   A9 11      LDA #$11
CBAD   8D 0F 40   STA $400F
CBB0   60         RTS

; Laufwerksmotor ein-/ausschalten

CBB1   AD 00 40   LDA $4000
CBB4   29 FB      AND #$FB
CBB6   8D 00 40   STA $4000
CBB9   60         RTS
CBBA   AD 00 40   LDA $4000
CBBD   09 04      ORA #$04
CBBF   8D 00 40   STA $4000
CBC2   60         RTS

; Lauwerks-LED ein-/ausschalten

CBC3   AD 00 40   LDA $4000
CBC6   29 BF      AND #$BF
CBC8   8D 00 40   STA $4000
CBCB   60         RTS
CBCC   AD 00 40   LDA $4000
CBCF   09 40      ORA #$40
CBD1   8D 00 40   STA $4000
CBD4   60         RTS

; Zyklen warten

CBD5: 20 DF CB  JSR $CBDF
CBD8: 88        DEY
CBD9: D0 FA     BNE $CBD5
CBDB: 60        RTS
CBDC: A2 03     LDX #$03
CBDE: 2C        .BY $2C
CBDF: A2 02     LDX #$02
CBE1: 18        CLC
CBE2: A9 6F     LDA #$6F
CBE4: 69 01     ADC #$01
CBE6: D0 FC     BNE $CBE4
CBE8: CA        DEX
CBE9: D0 F9     BNE $CBE4
CBEB: 60        RTS

; Auf Controller-Ready warten

CBEC   A9 01      LDA #$01
CBEE   2C 00 60   BIT $6000
CBF1   D0 FB      BNE $CBEE
CBF3   60         RTS

; Kommandobyte in Controller schreiben

CBF4   EA         NOP
CBF5   8D 00 60   STA $6000
CBF8   A9 01      LDA #$01
CBFA   2C 00 60   BIT $6000
CBFD   F0 FB      BEQ $CBFA
CBFF   4C 34 AD   JMP $AD34

; nicht verwendet

CC02   .BY $FF    ...
CCFF   .BY $FF

; Blockheader lesen

CD00   A2 05      LDX #$05
CD02   8A         TXA
CD03   95 1F      STA $1F,X
CD05   CA         DEX
CD06   10 FA      BPL $CD02
CD08   20 BC CD   JSR $CDBC
CD0B   B0 2C      BCS $CD39
CD0D   AD E1 01   LDA $01E1
CD10   20 F4 CB   JSR $CBF4
CD13   A2 00      LDX #$00
CD15   A0 06      LDY #$06
CD17   AD 00 60   LDA $6000
CD1A   29 03      AND #$03
CD1C   4A         LSR
CD1D   90 0B      BCC $CD2A
CD1F   F0 F6      BEQ $CD17
CD21   AD 03 60   LDA $6003
CD24   95 1F      STA $1F,X
CD26   E8         INX
CD27   88         DEY
CD28   D0 ED      BNE $CD17
CD2A   20 3F CD   JSR $CD3F
CD2D   F0 02      BEQ $CD31
CD2F   38         SEC
CD30   24         .BY $24
CD31   18         CLC
CD32   24 8D      BIT $8D
CD34   50 08      BVC $CD3E
CD36   4C 63 DA   JMP $DA63
CD39   A9 03      LDA #$03
CD3B   85 7D      STA $7D
CD3D   38         SEC
CD3E   60         RTS

; Controller-Status prüfen

CD3F   20 EC CB   JSR $CBEC
CD42   08         PHP
CD43   AD 00 60   LDA $6000
CD46   4A         LSR
CD47   4A         LSR
CD48   4A         LSR
CD49   B0 08      BCS $CD53
CD4B   29 0B      AND #$0B
CD4D   AA         TAX
CD4E   28         PLP
CD4F   BD 5A CD   LDA $CD5A,X
CD52   2C         .BY $2C
CD53   A9 09      LDA #$09
CD55   85 7D      STA $7D
CD57   A5 7D      LDA $7D
CD59   60         RTS

; Tabelle: Umrechnung des Controller-Status in Job-Meldung

CD5A   .BY $00,$05,$02,$00,$00,$00,$00,$00
CD62   .BY $08

; Motor einschalten und Verzögerungszeit einstellen

CD63   A5 26      LDA $26
CD65   30 13      BMI $CD7A
CD67   29 30      AND #$30
CD69   D0 0B      BNE $CD76
CD6B   20 B1 CB   JSR $CBB1
CD6E   AD D9 01   LDA $01D9
CD71   85 2A      STA $2A
CD73   A9 A0      LDA #$A0
CD75   2C         .BY $2C
CD76   A9 20      LDA #$20
CD78   85 26      STA $26
CD7A   60         RTS

; Anlaufvorgang überwachen

CD7B   A5 26      LDA $26
CD7D   10 04      BPL $CD83
CD7F   A5 2A      LDA $2A
CD81   D0 34      BNE $CDB7
CD83   AD 00 40   LDA $4000
CD86   29 80      AND #$80
CD88   D0 23      BNE $CDAD
CD8A   AD DD 01   LDA $01DD
CD8D   20 F4 CB   JSR $CBF4
CD90   20 EC CB   JSR $CBEC
CD93   AD DE 01   LDA $01DE
CD96   20 F4 CB   JSR $CBF4
CD99   20 EC CB   JSR $CBEC
CD9C   A4 98      LDY $98
CD9E   20 D5 CB   JSR $CBD5
CDA1   AD 00 40   LDA $4000
CDA4   29 80      AND #$80
CDA6   D0 05      BNE $CDAD
CDA8   A9 03      LDA #$03
CDAA   4C CC CD   JMP $CDCC
CDAD   20 BC CD   JSR $CDBC
CDB0   B0 F6      BCS $CDA8
CDB2   A9 20      LDA #$20
CDB4   85 26      STA $26
CDB6   60         RTS
CDB7   68         PLA
CDB8   68         PLA
CDB9   4C 00 CE   JMP $CE00

; Abfragen, ob Diskette eingelegt ist

CDBC   A0 1E      LDY #$1E
CDBE   AD 00 40   LDA $4000
CDC1   29 02      AND #$02
CDC3   D0 05      BNE $CDCA
CDC5   88         DEY
CDC6   D0 F6      BNE $CDBE
CDC8   18         CLC
CDC9   24         .BY $24
CDCA   38         SEC
CDCB   60         RTS

; Jobauftrag beenden, alle Jobs nochmal prüfen

CDCC   A4 83      LDY $83
CDCE   99 02 00   STA $0002,Y
CDD1   A0 80      LDY #$80
CDD3   C9 02      CMP #$02
CDD5   90 06      BCC $CDDD
CDD7   A9 00      LDA #$00
CDD9   85 87      STA $87
CDDB   84 95      STY $95
CDDD   84 83      STY $83
CDDF   A0 08      LDY #$08
CDE1   2C         .BY $2C

; den selben Job nochmal prüfen

CDE2   A4 83      LDY $83
CDE4   A5 26      LDA $26
CDE6   F0 12      BEQ $CDFA
CDE8   29 10      AND #$10
CDEA   D0 0E      BNE $CDFA
CDEC   A5 26      LDA $26
CDEE   09 10      ORA #$10
CDF0   85 26      STA $26
CDF2   A9 FF      LDA #$FF
CDF4   85 2A      STA $2A
CDF6   A9 04      LDA #$04
CDF8   85 2B      STA $2B
CDFA   A6 2C      LDX $2C
CDFC   9A         TXS
CDFD   4C C7 C0   JMP $C0C7

; Hauptsteuerroutine des Controllers

CE00   A6 2C      LDX $2C
CE02   E8         INX
CE03   E8         INX
CE04   BD 04 01   LDA $0104,X
CE07   29 10      AND #$10
CE09   D0 66      BNE $CE71
CE0B   A5 9C      LDA $9C
CE0D   F0 02      BEQ $CE11
CE0F   C6 9C      DEC $9C
CE11   A5 79      LDA $79
CE13   29 20      AND #$20
CE15   F0 10      BEQ $CE27
CE17   C6 9E      DEC $9E
CE19   10 0C      BPL $CE27
CE1B   A9 09      LDA #$09
CE1D   85 9E      STA $9E
CE1F   AD 00 40   LDA $4000
CE22   49 20      EOR #$20
CE24   8D 00 40   STA $4000
CE27   A5 79      LDA $79
CE29   29 40      AND #$40
CE2B   25 79      AND $79
CE2D   85 36      STA $36
CE2F   AD 00 40   LDA $4000
CE32   29 BF      AND #$BF
CE34   05 36      ORA $36
CE36   8D 00 40   STA $4000
CE39   AD 00 40   LDA $4000
CE3C   29 80      AND #$80
CE3E   D0 0A      BNE $CE4A
CE40   85 87      STA $87
CE42   A9 80      LDA #$80
CE44   85 95      STA $95
CE46   A9 01      LDA #$01
CE48   85 25      STA $25
CE4A   A5 26      LDA $26
CE4C   F0 1F      BEQ $CE6D
CE4E   A8         TAY
CE4F   C9 20      CMP #$20
CE51   F0 20      BEQ $CE73
CE53   C6 2A      DEC $2A
CE55   D0 1C      BNE $CE73
CE57   98         TYA
CE58   10 04      BPL $CE5E
CE5A   29 7F      AND #$7F
CE5C   85 26      STA $26
CE5E   29 10      AND #$10
CE60   F0 11      BEQ $CE73
CE62   C6 2B      DEC $2B
CE64   D0 0D      BNE $CE73
CE66   20 BA CB   JSR $CBBA
CE69   A9 00      LDA #$00
CE6B   85 26      STA $26
CE6D   A6 2C      LDX $2C
CE6F   9A         TXS
CE70   60         RTS

; Schrittmotor ansteuern

CE71   A4 26      LDY $26
CE73   98         TYA
CE74   29 40      AND #$40
CE76   F0 F5      BEQ $CE6D
CE78   A5 88      LDA $88
CE7A   C5 27      CMP $27
CE7C   F0 18      BEQ $CE96
CE7E   8D 03 60   STA $6003
CE81   A5 27      LDA $27
CE83   8D 01 60   STA $6001
CE86   AD DB 01   LDA $01DB
CE89   20 F4 CB   JSR $CBF4
CE8C   20 EC CB   JSR $CBEC
CE8F   A5 88      LDA $88
CE91   85 27      STA $27
CE93   8D 01 60   STA $6001
CE96   A5 26      LDA $26
CE98   29 BF      AND #$BF
CE9A   85 26      STA $26
CE9C   A4 98      LDY $98
CE9E   20 D5 CB   JSR $CBD5
CEA1   4C 6D CE   JMP $CE6D

; Daten zwischen Cache und Puffer transferieren

CEA4   24 39      BIT $39
CEA6   50 03      BVC $CEAB
CEA8   A9 80      LDA #$80
CEAA   2C         .BY $2C
CEAB   A9 00      LDA #$00
CEAD   85 87      STA $87
CEAF   A9 20      LDA #$20
CEB1   24 37      BIT $37
CEB3   D0 01      BNE $CEB6
CEB5   60         RTS
CEB6   A4 99      LDY $99
CEB8   B9 0B 00   LDA $000B,Y
CEBB   18         CLC
CEBC   65 8C      ADC $8C
CEBE   85 4B      STA $4B
CEC0   A0 00      LDY #$00
CEC2   84 48      STY $48
CEC4   84 4A      STY $4A
CEC6   A6 83      LDX $83
CEC8   BD F1 01   LDA $01F1,X
CECB   85 49      STA $49
CECD   A5 39      LDA $39
CECF   29 1F      AND #$1F
CED1   AA         TAX
CED2   24 39      BIT $39
CED4   10 03      BPL $CED9
CED6   4C 3E D0   JMP $D03E
CED9   4C 58 D5   JMP $D558

; JTRANS_TS: logisches in physikalisches Format umwandeln

CEDC   06 86      ASL $86
CEDE   B0 6E      BCS $CF4E
CEE0   A4 99      LDY $99
CEE2   06 85      ASL $85
CEE4   90 44      BCC $CF2A
CEE6   A6 83      LDX $83
CEE8   B5 9F      LDA $9F,X
CEEA   10 01      BPL $CEED
CEEC   60         RTS
CEED   B9 0B 00   LDA $000B,Y
CEF0   38         SEC
CEF1   E9 01      SBC #$01
CEF3   99 BC 01   STA $01BC,Y
CEF6   A5 75      LDA $75
CEF8   4A         LSR
CEF9   AA         TAX
CEFA   D9 0C 00   CMP $000C,Y
CEFD   F0 05      BEQ $CF04
CEFF   90 03      BCC $CF04
CF01   A9 00      LDA #$00
CF03   2C         .BY $2C
CF04   A9 01      LDA #$01
CF06   85 96      STA $96
CF08   F0 01      BEQ $CF0B
CF0A   8A         TXA
CF0B   85 39      STA $39
CF0D   A6 83      LDX $83
CF0F   B9 0C 00   LDA $000C,Y
CF12   38         SEC
CF13   E5 39      SBC $39
CF15   09 80      ORA #$80
CF17   95 9F      STA $9F,X
CF19   29 7F      AND #$7F
CF1B   A6 91      LDX $91
CF1D   CA         DEX
CF1E   F0 04      BEQ $CF24
CF20   4A         LSR
CF21   4C 1D CF   JMP $CF1D
CF24   18         CLC
CF25   65 94      ADC $94
CF27   4C 4A CF   JMP $CF4A
CF2A   A6 83      LDX $83
CF2C   BD CE 01   LDA $01CE,X
CF2F   85 96      STA $96
CF31   B9 0B 00   LDA $000B,Y
CF34   99 BC 01   STA $01BC,Y
CF37   B9 0C 00   LDA $000C,Y
CF3A   48         PHA
CF3B   38         SEC
CF3C   E5 94      SBC $94
CF3E   A6 91      LDX $91
CF40   CA         DEX
CF41   F0 04      BEQ $CF47
CF43   0A         ASL
CF44   4C 40 CF   JMP $CF40
CF47   95 9F      STA $9F,X
CF49   68         PLA
CF4A   99 BD 01   STA $01BD,Y
CF4D   2C         .BY $2C
CF4E   06 85      ASL $85
CF50   60         RTS

; Schreiben/Lesen mit Cache-Daten

CF51   A4 99      LDY $99
CF53   B9 BC 01   LDA $01BC,Y
CF56   C5 95      CMP $95
CF58   D0 09      BNE $CF63
CF5A   A5 96      LDA $96
CF5C   C5 97      CMP $97
CF5E   D0 03      BNE $CF63
CF60   4C 64 CF   JMP $CF64
CF63   60         RTS
CF64   A6 83      LDX $83
CF66   BD F1 01   LDA $01F1,X
CF69   85 49      STA $49
CF6B   B5 9F      LDA $9F,X
CF6D   29 7F      AND #$7F
CF6F   18         CLC
CF70   65 8C      ADC $8C
CF72   85 4B      STA $4B
CF74   A0 00      LDY #$00
CF76   84 48      STY $48
CF78   84 4A      STY $4A
CF7A   A2 01      LDX #$01
CF7C   06 86      ASL $86
CF7E   B0 18      BCS $CF98
CF80   06 86      ASL $86
CF82   B0 06      BCS $CF8A
CF84   20 58 D5   JSR $D558
CF87   4C 99 C3   JMP $C399
CF8A   AD FA 01   LDA $01FA
CF8D   D0 14      BNE $CFA3
CF8F   20 3E D0   JSR $D03E
CF92   A9 80      LDA #$80
CF94   85 87      STA $87
CF96   D0 EF      BNE $CF87
CF98   06 86      ASL $86
CF9A   90 EB      BCC $CF87
CF9C   AD FA 01   LDA $01FA
CF9F   D0 02      BNE $CFA3
CFA1   B0 EF      BCS $CF92
CFA3   4C 9B C3   JMP $C39B

; Blockheader lesen

CFA6   20 00 CD   JSR $CD00
CFA9   B0 09      BCS $CFB4
CFAB   A5 1F      LDA $1F
CFAD   85 27      STA $27
CFAF   A5 22      LDA $22
CFB1   85 91      STA $91
CFB3   60         RTS
CFB4   4C CC CD   JMP $CDCC

; Copy-Zeiger auf Cachepuffer-Anfang setzen

CFB7   A5 8B      LDA $8B
CFB9   85 4A      STA $4A
CFBB   A5 8C      LDA $8C
CFBD   85 4B      STA $4B
CFBF   60         RTS

; Seite auswählen

CFC0   F0 02      BEQ $CFC4
CFC2   A9 01      LDA #$01
CFC4   85 36      STA $36
CFC6   AD 00 40   LDA $4000
CFC9   29 FE      AND #$FE
CFCB   05 36      ORA $36
CFCD   8D 00 40   STA $4000
CFD0   60         RTS

; Controller initialisieren

CFD1   AD E4 01   LDA $01E4
CFD4   8D 00 60   STA $6000
CFD7   20 2F AD   JSR $AD2F
CFDA   20 2F AD   JSR $AD2F
CFDD   20 2F AD   JSR $AD2F
CFE0   4C EC CB   JMP $CBEC

; Precompensation ein/ausschalten

CFE3   38         SEC
CFE4   E5 94      SBC $94
CFE6   C9 2B      CMP #$2B
CFE8   90 12      BCC $CFFC
CFEA   AD E0 01   LDA $01E0
CFED   09 02      ORA #$02
CFEF   8D E0 01   STA $01E0
CFF2   AD E3 01   LDA $01E3
CFF5   09 02      ORA #$02
CFF7   8D E3 01   STA $01E3
CFFA   B0 10      BCS $D00C
CFFC   AD E0 01   LDA $01E0
CFFF   29 FD      AND #$FD
D001   8D E0 01   STA $01E0
D004   AD E3 01   LDA $01E3
D007   29 FD      AND #$FD
D009   8D E3 01   STA $01E3
D00C   60         RTS

; Daten vom Puffer in den Cache kopieren

AM I LAZY?...NO JUST WANTED TO SAVE A FEW MS...

D00D   .BY $41,$4D,$20,$49,$20,$49,$20,$5A
D014   .BY $59,$3F,$3F,$3F,$2E,$2E,$2E,$4E
D01D   .BY $4F,$20,$4A,$55,$53,$54,$20,$57
D024   .BY $41,$4E,$54,$45,$44,$20,$54,$4F
D02D   .BY $20,$53,$41,$56,$45,$20,$41,$20
D034   .BY $46,$45,$57,$20,$4D,$53,$2E,$2E
D03D   .BY $2E

D03E   B1 48      LDA ($48),Y
D040   91 4A      STA ($4A),Y
D042   C8         INY
...                             ; Diese Routine (5 Bytes) wiederholt sich bis $D538

D539   B1 48      LDA ($48),Y
D53B   91 4A      STA ($4A),Y
D53D   C8         INY
D53E   CA         DEX
D53F   F0 07      BEQ $D548
D541   E6 49      INC $49
D543   E6 4B      INC $4B
D545   4C 3E D0   JMP $D03E
D548   60         RTS

; Daten vom Cache in den Puffer kopieren

; THIS IS LASY...

D549   .BY $54,$48,$49,$53,$20,$49,$53,$20
D551   .BY $4C,$41,$5A,$59,$21,$21,$21

D558   B1 4A      LDA ($4A),Y
D55A   91 48      STA ($48),Y
D55C   C8         INY
...                             ; Diese Routine (5 Bytes) wiederholt sich bis $DA52

DA53   B1 4A      LDA ($4A),Y
DA55   91 48      STA ($48),Y
DA57   C8         INY
DA58   CA         DEX
DA59   F0 07      BEQ $DA62
DA5B   E6 49      INC $49
DA5D   E6 4B      INC $4B
DA5F   4C 58 D5   JMP $D558
DA62   60         RTS

; CRC-Prüfsumme des Blockheaders testen

DA63   A5 38      LDA $38
DA65   48         PHA
DA66   A5 39      LDA $39
DA68   48         PHA
DA69   A5 3A      LDA $3A
DA6B   48         PHA
DA6C   A5 3B      LDA $3B
DA6E   48         PHA
DA6F   A5 3C      LDA $3C
DA71   48         PHA
DA72   A5 3D      LDA $3D
DA74   48         PHA
DA75   A5 3E      LDA $3E
DA77   48         PHA
DA78   A9 30      LDA #$30
DA7A   85 3D      STA $3D
DA7C   A9 B2      LDA #$B2
DA7E   85 3E      STA $3E
DA80   A0 00      LDY #$00
DA82   B9 1F 00   LDA $001F,Y
DA85   85 39      STA $39
DA87   AA         TAX
DA88   C8         INY
DA89   B9 1F 00   LDA $001F,Y
DA8C   85 38      STA $38
DA8E   8A         TXA
DA8F   A2 10      LDX #$10
DA91   85 3A      STA $3A
DA93   18         CLC
DA94   26 38      ROL $38
DA96   26 39      ROL $39
DA98   A9 00      LDA #$00
DA9A   85 3B      STA $3B
DA9C   85 3C      STA $3C
DA9E   24 3A      BIT $3A
DAA0   10 08      BPL $DAAA
DAA2   A9 21      LDA #$21
DAA4   85 3B      STA $3B
DAA6   A9 10      LDA #$10
DAA8   85 3C      STA $3C
DAAA   24 3E      BIT $3E
DAAC   10 0C      BPL $DABA
DAAE   A5 3B      LDA $3B
DAB0   49 21      EOR #$21
DAB2   85 3B      STA $3B
DAB4   A5 3C      LDA $3C
DAB6   49 10      EOR #$10
DAB8   85 3C      STA $3C
DABA   18         CLC
DABB   26 3D      ROL $3D
DABD   26 3E      ROL $3E
DABF   A5 3D      LDA $3D
DAC1   45 3B      EOR $3B
DAC3   85 3D      STA $3D
DAC5   A5 3E      LDA $3E
DAC7   45 3C      EOR $3C
DAC9   85 3E      STA $3E
DACB   A5 39      LDA $39
DACD   CA         DEX
DACE   D0 C1      BNE $DA91
DAD0   C8         INY
DAD1   C0 05      CPY #$05
DAD3   90 AD      BCC $DA82
DAD5   A4 3D      LDY $3D
DAD7   A6 3E      LDX $3E
DAD9   68         PLA
DADA   85 3E      STA $3E
DADC   68         PLA
DADD   85 3D      STA $3D
DADF   68         PLA
DAE0   85 3C      STA $3C
DAE2   68         PLA
DAE3   85 3B      STA $3B
DAE5   68         PLA
DAE6   85 3A      STA $3A
DAE8   68         PLA
DAE9   85 39      STA $39
DAEB   68         PLA
DAEC   85 38      STA $38
DAEE   C0 00      CPY #$00
DAF0   D0 06      BNE $DAF8
DAF2   E0 00      CPX #$00
DAF4   D0 02      BNE $DAF8
DAF6   18         CLC
DAF7   60         RTS
DAF8   A9 09      LDA #$09
DAFA   4C CC CD   JMP $CDCC

; IRQ-Routine

DAFD   48         PHA
DAFE   8A         TXA
DAFF   48         PHA
DB00   98         TYA
DB01   48         PHA
DB02   AD 0D 40   LDA $400D
DB05   A8         TAY
DB06   25 76      AND $76
DB08   29 08      AND #$08
DB0A   F0 06      BEQ $DB12
DB0C   A5 76      LDA $76
DB0E   09 20      ORA #$20
DB10   85 76      STA $76
DB12   98         TYA
DB13   29 10      AND #$10
DB15   F0 06      BEQ $DB1D
DB17   A5 76      LDA $76
DB19   09 01      ORA #$01
DB1B   85 76      STA $76
DB1D   98         TYA
DB1E   29 02      AND #$02
DB20   F0 03      BEQ $DB25
DB22   20 39 FF   JSR $FF39
DB25   BA         TSX
DB26   BD 04 01   LDA $0104,X
DB29   29 10      AND #$10
DB2B   F0 03      BEQ $DB30
DB2D   20 39 FF   JSR $FF39
DB30   68         PLA
DB31   A8         TAY
DB32   68         PLA
DB33   AA         TAX
DB34   68         PLA
DB35   40         RTI

; Tabelle U0-Befehle

        Adressen,                 Nr., Name,  Laufwerk, Seite

DB36   .WD $BB11                ; $00: Read          N0 S0
DB38   .WD $BAFA                ; $01: Read          N1 S0
DB3A   .WD $BC01                ; $02: Write         N0 S0
DB3C   .WD $BBF9                ; $03: Write         N1 S0
DB3E   .WD $BCB2                ; $04: Inquire Disk  N0 S0
DB40   .WD $BAFA                ; $05: Burst-Status  N1 S0
DB42   .WD $BD12                ; $06: Format        N0
DB44   .WD $BD12                ; $07: Format        N1
DB46   .WD $BDFC                ; $08: Syntax Error
DB48   .WD $BDFC                ; $09: Syntax Error
DB4A   .WD $BE06                ; $0a: Query Format  N0 S0
DB4C   .WD $BAFA                ; $0b: Query Format  N1 S0
DB4E   .WD $BEBB                ; $0c: Inquire Stat  N0
DB50   .WD $BAFA                ; $0d: Burst-Status  N1
DB52   .WD $BEF8                ; $0e: Syntax Error
DB54   .WD $BEF8                ; $0f: Syntax Error
DB56   .WD $BB11                ; $10: Read          N0 S1
DB58   .WD $BAFA                ; $11: Read          N1 S1
DB5A   .WD $BC01                ; $12: Write         N0 S1
DB5C   .WD $BBF9                ; $13: Write         N1 S1
DB5E   .WD $BCB2                ; $14: Inquire Disk  N0 S1
DB60   .WD $BAFA                ; $15: Burst-Status  N1 S1
DB62   .WD $BD12                ; $16: Format        N0
DB64   .WD $BD12                ; $17: Format        N1
DB66   .WD $89CB                ; $18: –
DB68   .WD $89CB                ; $19: –
DB6A   .WD $BE06                ; $1a: Query Format  N0 S1
DB6C   .WD $BAFA                ; $1b: Query Format  N1 S1
DB6E   .WD $BF02                ; $1c: Dump Cache    N0
DB70   .WD $BF02                ; $1d: Dump Cache    N1
DB72   .WD $AA3C                ; $1e: ChgUtl
DB74   .WD $B8D5                ; $1f: Fastload

DB76   .BY $06                  ; Anzahl der BAM-Bytes pro Spur
DB77   .BY $04                  ; Position des Disknamens im Verzeichnis-Header

; C1541 Diskettenkommandos - nicht verwendet

DB78   .BY $56,$49,$2F,$4D,$42,$55,$50,$26
DB80   .BY $43,$52,$53,$4E,$09,$0C,$0F,$12
DB88   .BY $15,$18,$1B,$1E,$21,$24,$27,$2A
DB90   .BY $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB98   .BY $FF,$FF,$FF,$FF

DB9C   .BY $51                       ; Copy
DB9D   .BY $DD                       ; Rename
DB9E   .BY $1C                       ; Scratch
DB9F   .BY $9E                       ; New
DBA0   .BY $1C                       ; Laden
DBA1   .BY $52,$57,$41,$4D           ; RWAM
DBA5   .BY $44,$53,$50,$55,$4C,$43   ; DSPULC

DBAB   .BY $44,$53,$50,$55,$52,$43   ; D S P U R C
DBB1   .BY $45,$45,$52,$53,$45,$42   ; E E R S E B
DBB6   .BY $4C,$51,$47,$52,$4C,$4D   ; L Q G R L M

DBBD   .BY $00                       ; z-Flag setzen durch BIT-Befehl

; Setzen der NV-Flags durch BIT-Befehl

DBBE   .BY $3F,$7F,$BF,$FF           ; --, -V, N-, NV
DBC2   .BY $01,$FF,$FF,$01,$00       ; Kopfjustage bei Leseproblemen

; Patches

DBC7   8D 0E 40   STA $400E
DBCA   AD 01 40   LDA $4001
DBCD   09 20      ORA #$20
DBCF   8D 01 40   STA $4001
DBD2   AD 0E 40   LDA $400E
DBD5   09 40      ORA #$40
DBD7   8D 0E 40   STA $400E
DBDA   29 BF      AND #$BF
DBDC   8D 0E 40   STA $400E
DBDF   60         RTS
DBE0   8D 0E 40   STA $400E
DBE3   29 BF      AND #$BF
DBE5   8D 0E 40   STA $400E
DBE8   09 40      ORA #$40
DBEA   8D 0E 40   STA $400E
DBED   60         RTS
DBEE   20 15 B5   JSR $B515
DBF1   4C 01 87   JMP $8701
DBF4   20 9D 95   JSR $959D
DBF7   C9 02      CMP #$02
DBF9   B0 05      BCS $DC00
DBFB   A9 B0      LDA #$B0
DBFD   20 9D 95   JSR $959D
DC00   60         RTS

; (C)1987 COMMODORE ELECTRONICS LTD., ALL RIGHTS RESERVED

DC01   .BY $28,$43,$29,$31,$39,$38,$37,$20
DC09   .BY $43,$4F,$4D,$4D,$4F,$44,$4F,$52
DC11   .BY $45,$20,$45,$4C,$45,$43,$54,$52
DC19   .BY $4F,$4E,$49,$43,$53,$20,$4C,$54
DC21   .BY $44,$2E,$2C,$20,$41,$4C,$4C,$20
DC29   .BY $52,$49,$47,$48,$54,$53,$20,$52
DC31   .BY $45,$53,$45,$52,$56,$45,$44

; nicht verwendet

DC38   .BY $FF    ...
FEFF   .BY $FF

; Sprungvektoren

FF00   6C 90 01   JMP ($0190)   ; $b0f0  JIDLE - Hauptleerlaufschleife
FF03   6C 92 01   JMP ($0192)   ; $dafd  JIRQ - Interrupt-Vektor
FF06   6C 94 01   JMP ($0194)   ; $afca  JNMI - Warmstart-Vektor
FF09   6C 96 01   JMP ($0196)   ; $b262  JVERDIR - VALIDATE-Befehl
FF0C   6C 98 01   JMP ($0198)   ; $8ec5  JINTDRV - INITIALIZE-Befehl
FF0F   6C 9A 01   JMP ($019A)   ; $b781  JPART - PARTITION-Befehl
FF12   6C 9C 01   JMP ($019C)   ; $892f  JMEM - M-x -Befehle
FF15   6C 9E 01   JMP ($019E)   ; $8a5d  JBLOCK - B-x -Befehle
FF18   6C A0 01   JMP ($01A0)   ; $898f  JUSER - Ux -Befehle
FF1B   6C A2 01   JMP ($01A2)   ; $a1a1  JRECORD - Position-Befehl
FF1E   6C A4 01   JMP ($01A4)   ; $a956  JUTLODR - &-Befehl
FF21   6C A6 01   JMP ($01A6)   ; $876e  JDSKCPY - COPY-Befehl
FF24   6C A8 01   JMP ($01A8)   ; $88c5  JRENAME - RENAME-Befehl
FF27   6C AA 01   JMP ($01AA)   ; $8688  JSCRTCH - SCRATCH-Befehl
FF2A   6C AC 01   JMP ($01AC)   ; $b348  JNEW - NEW-Befehl
FF2D   6C AE 01   JMP ($01AE)   ; $a7ae  ERROR - Error-Routine des Controllers
FF30   6C B0 01   JMP ($01B0)   ; $abcf  JATNSRV - ATN bedienen
FF33   6C B2 01   JMP ($01B2)   ; $ad5c  JTALK - Daten zum Computer senden
FF36   6C B4 01   JMP ($01B4)   ; $aeb8  JLISTEN - Daten vom Computer holen
FF39   6C B6 01   JMP ($01B6)   ; $c0be  JLCC - Controller-Routine
FF3C   6C B8 01   JMP ($01B8)   ; $cedc  JTRANS_TS - logisches in physikalisches Format
FF3F   6C BA 01   JMP ($01BA)   ; $a7f1  CMDERR - Error-Routine des DOS

; nicht verwendet

FF42   .BY $FF    ...
FF53   .BY $FF

; Sprungvektoren - Fortsetzung

FF54   4C 9D 95   JMP $959D   ; STROBE_CONTROLLER - Aufruf des Controllers
FF57   4C 38 A9   JMP $A938   ; JCBMBOOT - Autoboot-Routine
FF5A   4C 4C A9   JMP $A94C   ; JCBMBOOTRTN - Beenden des Bootprogramms
FF5D   4C 1D AB   JMP $AB1D   ; JSIGNATURE - ROM-Signatur prüfen
FF60   4C 45 91   JMP $9145   ; JDEJAVU - Selbstladeroutine umschalten
FF63   4C EA AE   JMP $AEEA   ; JSPINOUT - SPIN, SPOUT festlegen
FF66   4C 5C 8C   JMP $8C5C   ; JALLOCBUFF - Puffer allokieren
FF69   4C 60 94   JMP $9460   ; JDETDSKCHG - Prüft auf Diskettenwechsel
FF6C   4C E3 BF   JMP $BFE3   ; JTRKWRT - Cachepuffer auf Disk schreiben

; nicht verwendet

FF6F   .BY $FF    ...
FF74   .BY $FF

; Tabelle der DOS-Funktionen

FF75   .WD $B0F0              ; Haupt-Leerschleife
FF77   .WD $DAFD              ; Interrupt-Routine
FF79   .WD $AFCA              ; Warmstartvector
FF7B   .WD $B262              ; VALIDATE
FF7D   .WD $8EC5              ; INITIALIZE
FF7F   .WD $B781              ; Partition
FF81   .WD $892F              ; Memory-Read/Write
FF83   .WD $8A5D              ; Block-Befehle
FF85   .WD $898F              ; USER
FF87   .WD $A1A1              ; POSITION (RECORD)
FF89   .WD $A956              ; Utility-Loader (&)
FF8B   .WD $876E              ; COPY
FF8D   .WD $88C5              ; RENAME
FF8F   .WD $8688              ; SCRATCH
FF91   .WD $B348              ; NEW
FF93   .WD $A7AE              ; Error-Routine des Controllers
FF95   .WD $ABCF              ; ATN-bearbeiten
FF97   .WD $AD5C              ; Daten auf ser. Bus
FF99   .WD $AEB8              ; Daten vom ser. Bus
FF9B   .WD $C0BE              ; Controller-Routine
FF9D   .WD $CEDC              ; log. in phys. Format
FF9F   .WD $A7F1              ; Error-Routine des DOS

; nicht verwendet

FFA1   .BY $FF    ...
FFAC   .BY $FF

; Vektoren initialisieren

FFAD   A0 2B      LDY #$2B
FFAF   B9 75 FF   LDA $FF75,Y
FFB2   99 90 01   STA $0190,Y
FFB5   88         DEY
FFB6   10 F7      BPL $FFAF
FFB8   A9 4C      LDA #$4C
FFBA   8D FC 01   STA $01FC
FFBD   A9 40      LDA #$40
FFBF   8D FD 01   STA $01FD
FFC2   A9 BA      LDA #$BA
FFC4   8D FE 01   STA $01FE
FFC7   60         RTS

; nicht verwendet

FFC8   .BY $FF    ...
FFE9   .BY $FF

; USER-Vektoren

FFEA   .WD $8B9A              ; u1  Block lesen
FFEC   .WD $8BD7              ; u2  Block schreiben
FFEE   .WD $0500              ; u3  Sprünge in Puffer 2
FFF0   .WD $0503              ; u4  ——"——
FFF2   .WD $0506              ; u5  ——"——
FFF4   .WD $0509              ; u6  ——"——
FFF6   .WD $050C              ; u7  ——"——
FFF8   .WD $050F              ; u8  ——"——
FFFA   .WD $AD3C              ; u9  NMI: Warmstart / Busmodus ändern
FFFC   .WD $AF24              ; u   RESET-Einschaltvektor
FFFE   .WD $FF03              ; BRK/IRQ-Vektor