In dem Beitrag GOTEK Floppy habe ich ja beschrieben, wie man ein "Gotek Diskettenlaufwerks-Emulator" mit der Firmware des HxC2001-Projekts flashed, so dass man konvertierte TD0 Floppy-Images von einem USB-Stick im NDR NKC nutzen kann.

Ich hatte also nun das Gotek-Laufwerk als "A", das 3,5" LW als "B" und das 5,25" LW sollte als "C" angesprochen werden. Tja, die Laufwerksbuchstaben C und D sind aber im Original BIOS des NKCs als Vorder- und Rückseite eines 8" Laufwerks vorgesehen. Laufwerk E ist eine RAMDISK.

Beim Zugriff auf Lauferk C sprang das 5,25"-LW zwar an, konnte aber nichts lesen. Also: DA MUSS DAS BIOS angepasst werden.

Ich habe im Beitrag CP/M Bootprozess ja schon beschrieben, wie der CP/M Bootablauf im NKC ist. Also habe ich mir die (leider in 8080-Assembler) geschriebene originale Datei BIOS80.ASM angesehen. Diese befindet sich auf der Original NKC CP/M Bootdiskette und ist auch im Buch "Rechner Modul" abgedruckt und ansatzweise beschrieben. Netterweise hat mir Werner einige BIOS Weiterentwicklungen aus den Jahren 1989 - 1991 zukommen lassen, die mir wertvolle Hinweise gegeben haben. Bei Gelegenheit werde ich diese Erweiterungen auch einmal ausprobieren, mir reichte hier erst einmal das Patchen auf 3 "Mini-Laufwerke". Und so bin ich vorgegangen:

Schritt 1:

Da ich keine Lust hatte, den Quelltext auf dem, NKC zu bearbeiten, habe ich mir die Datei BIOS80.ASM mit Teledisk auf meinen Arbeitscomputer kopiert.

Schritt 2:

Nun muss diese Datei an folgenden Stellen angepasst werden und unter einem neuen Namen, z.B. BIOS80N.ASM abgespeichert werden (plain text)

Im Bereich um Zeile 69 müssen die DISK-Definitionen angepasst werden:

ALT:

    DISKS 5        ; 5 LAUFWERKE HIERBEI 
    DISKDEF 0,0,39,0,2048,DISKKAP,256,256,offset ; Offset=4
    DISKDEF 1,0
    DISKDEF 2,1,26,6,1024,243,64,64,2 ; 8 Zoll Definition
    DISKDEF 3,2
    DISKDEF 4,0,14,0,2048,210,64,64,0 ; RAM Floppy 60K,120K,420K

NEU:

    DISKS 5        ; 5 LAUFWERKE HIERBEI
    DISKDEF 0,0,39,0,2048,DISKKAP,256,256,offset ; Offset=4
    DISKDEF 1,0
    DISKDEF 2,0
    DISKDEF 3,2
    DISKDEF 4,0,14,0,2048,210,64,64,0 ; RAM Floppy 60K,120K,420K

 

In Zeile 83 kann  man noch die Startmeldung anpassen:

    DB 'Welcome to 60 K CP/M 2.2'

 

Im Bereich um Zeile 275 müssen die Sprünge für das Lesen angepasst werden, so dass für Laufwerk C und D ebenfalls zu "mini" gesprungen wird:

ALT:

READ:            ; einen Sektor lesen
    LDA DBANK    ; dazu Laufwerk bestimmen
    cpi 2        ;  
    jc minird    ; 0,1 sind Minilaufwerke
    cpi 4        
    jc maxiread  ; 8 Zoll Laufwerk

NEU:

READ:            ; einen Sektor lesen
    LDA DBANK    ; dazu Laufwerk bestimmen
    CPI 4        ;  
    JC  minird   ; 0,1,2 sind Minilaufwerke

 

Und zum Schluss  im Bereich um Zeile 360 müssen die Sprünge für das Schreiben angepasst werden, so dass für Laufwerk C und D ebenfalls zu "mini" gesprungen wird:

ALT:

WRITE:           ; Schreiben eines Sektors
    LDA DBANK    ; dazu Laufwerkscode laden
    cpi 2        ; und Floppy-Typ bestimmen
    jc miniwr    ; 0 und 1 sind Minilaufwerke
    cpi 4        ; 2 und 3 Maxilaufwerke
    jc maxiwr    ; rest ist RAM-Floppy

NEU:

WRITE:           ; Schreiben eines Sektors
    LDA DBANK    ; dazu Laufwerkscode laden
    CPI 4        ; und Floppy-Typ bestimmen
    JC  miniwr   ; 0,1,2 sind Minilaufwerke

 

Hier habe ich die beiden BIOS.ASM-Dateien abgelegt (original und meine kommentierten Anpassungen);

BIOS80.ASM

BIOS80N.ASM

DISKDEF.LIB

 

Schritt 3:

Nun geht es auf dem NKC weiter. Als erstes sollte man sich folgene Programme in die RAM-Disk kopieren (das geht dann später deutlich schneller!):

  • MAC.COM
  • DISKDEF.LIB (ist auf der NDR Diskette oder siehe oben)
  • SYSGEN80.COM
  • DDT.COM


Nun erstellt man sich mit SYSGEN80.COM erst einmal in einem laufenden "alten" System ein Image des CP/Ms:

SYSGEN80 <cr>
- Source <A><cr>
- Destination <cr>
SAVE 37 SYS.SYS

 

Schritt 4:

Nun übersetzen wir das neue BIOS:

MAC BIOS80N.ASM

Das generiert eine BIOS80N.HEX Datei und die (nicht benötigten PRN/SYM-Files).

 

 Schritt 5:

 Jetzt wird das ganze zusammengepackt (im Speicher):

DDT SYS,SYS <cr>

- IBIOS80N.HEX

- R3580

<Ctrl-c>

Das Bios beginnt bei 3580d = 1F80h.

 

 Schritt 6:

Zuletzt das neue System wieder auf eine Diskette schreiben:

SYSGEN80 <cr>

- Source <cr>

- Destination <B>

<cr>

Und dann mir dieser Diskette booten - fertig!