Systemdiskette

übernommen von Torsten Paul, http://kcemu.sourceforge.net/kcemu/docs/z1013cpm.html

Wie erstellt man eine Systemdiskette für das Z1013 CP/M System?

Die Beschreibung bezieht sich auf das CP/M System mit BIOS 5.03, welches sich im Quelltext auf der beim KCemu beiliegenden Diskette befindet. (Im JKCEMU auf Diskette z1013cpm80x25.dump.gz)

Zuerst stellt sich die Frage: Wozu der Aufwand? Dazu wäre zu sagen, dass sich das BIOS in vielen Bereichen konfigurieren lässt. So können verschiedene Tastatur-Tabellen, Schnittstellen und Laufwerke eingestellt werden.

Vorgenommen werden die Einstellungen in der Datei BIOS503.MAC. Dazu ist die Datei mit einem beliebigen Text-Editor zu bearbeiten. Auf der vorliegenden Diskette ist ein relativ einfacher Editor namens TED dabei.

Systemkompatibilität

CPA           EQU 1           1 für CP/A-Kompatibilität 
SCP           EQU 0           1 für SCP-Kompatibilität 

Laufwerkskonfiguration

LW1.2         EQU 0           1 bei 1.2 Laufwerk 
LW1.41        EQU 0           1 bei 1.4 Laufwerk einseitig (1*80) 
LW1.42        EQU 0           1 bei 1.4 Laufwerk zweiseitig (2*40) 
LW1.6         EQU 1           1 bei 1.6 Laufwerk 
LW26          EQU 0           1 bei 2-tem physischen 1.6 Laufwerk 
LW22          EQU 0           1 bei 2-tem physischen 1.2 Laufwerk 

Einstellung der Tastatur-Tabelle

K7659         EQU 1           1 bei Tastatur K7659 
K7652         EQU 0           1 bei Tastatur K7652 
K7669         EQU 0           1 bei Tastatur K7669 
K080B         EQU 0           1 bei Tastatur 12KE080B 

Schnittstellen zu Peripheriegeräten bzw. Erweiterungen

CENTRO        EQU 1           1 bei CENTRONICS-Anschluss 
V24           EQU 0           1 bei V24-Anschluss 
S3004         EQU 0           1 bei S3004 
V24MOD        EQU 0           1 bei Druck über V24-Modul / 0 bei Userport 
MAUS          EQU 0           1 bei Mausanschluss 
CTCUHR        EQU 0           1 bei Uhr über eine ctc 
RTC           EQU 1           1 bei RTC 72421 A 
ADRTC         EQU 1           1 bei RTC an Port 70H-7fh / 0 bei RTC an Port 20H-2fh 

Floppy-Ansteuerung

SFDCK         EQU 1           1 bei Schneider-Karte / 0 bei Kramer-Schaltung 

Bildschirmdarstellung

GDCK          EQU 1           1 bei 80x25 Bildschirm mit GDC-Karte 
Z1013CRT      EQU 0           1 bei Z1013 64*16 Bildschirm 
ZUGRSYN       EQU 1           Bildschirmzugriffs-Synchronisation
                              1 bei nichtsichtbaren Bildschirmzugriff / 0 bei staendigem Zugriff 

Einstellungen für RAM-Floppies

RBRF          EQU 0           1 bei RB-Spezial-RAM-Floppy 
RF2           EQU 1           1 bei 2 RAM-Floppy-Karten nach MP 3/88 
RF1           EQU 0           1 bei einer RAM-Floppy nach MP 3/88 

sonstige Einstellungen

TAPE          EQU 0           1 wenn CP/M von Kassette geladen wird 
CCPCOPY       EQU 0           1 wenn CCP-Kopie angelegt werden soll 

Sind die gewünschten Einstellungen erfolgt und die Datei gespeichert, kann das BIOS übersetzt werden. Dazu ist auf der Diskette der Assembler M80.COM vorhanden. Das Übersetzen erfolgt mit dem Aufruf:

D>M80 BIOS503.ERL=BIOS503
* BIOS-Uebersetzung PASS 1 *
* BIOS-Uebersetzung PASS 2 *

No Fatal error(s)

D>

Wurde der Übersetzungsvorgang erfolgreich abgeschlossen, befindet sich auf der Diskette die übersetzte Datei BIOS503.ERL. Diese muss jetzt noch mit dem Linker in eine ausführbare Datei (BIOS503.COM) gebunden werden. Das erfolgt mit dem Befehl LINKMT:

D>LINKMT BIOS503

Link/MT+ Release 5.5


Processing file- BIOS503 .ERL

Undefined Symbols:

No Undefined Symbols


0048 (decimal) records written to .COM file

Total Data: 0000H bytes
Total Code: 17F6H bytes
Remaining:  8A0AH bytes

Link/MT+ Release 5.5 processing completed

D>

Jetzt befindet sich das fertige BIOS auf der Diskette, muss aber noch an die Stelle geschafft werden, an der der Bootloader das System erwartet. Dazu wird der systemunabhängige Teil aus der Datei CCPBDOS.SYS und das frisch übersetzte BIOS mit dem Programm POWER in den Speicher geladen und auf die ersten beiden Spuren der Diskette geschrieben. Dazu wird als erstes das Programm POWER gestartet…

POWER

        POWER 3.03 on CP/M 2.22 1/2

  Copyright (c) 1981, 1982 by PAVEL BREDER
        All rights reserved. 01/03/83
D0=

…die beiden Dateien hintereinander in den Speicher ab Adresse 4000h geladen und dann auf die Diskette auf Spur 0, Sektor 1 geschrieben.

D0=LOAD CCPBDOS.SYS 4000 Last Address:55FFH 44 sectors
D0=LOAD BIOS503.COM 5600 Last Address:6DFFH 48 sectors
D0=WRITE 0 1 4000 xx
G=----:-- T=0000 S=001 PS=001 At:4000-407F
G=----:-- T=0000 S=002 PS=002 At:4080-40FF
G=----:-- T=0000 S=003 PS=003 At:4100-417F
...

Das xx beim WRITE-Kommando ist die Anzahl der Sektoren, die auf Diskette geschrieben werden sollen. Diese ergibt sich aus der Addition der beiden Sektorzahlen, die bei den LOAD-Kommandos ausgegeben wird. Beim Ausführen des WRITE-Kommandos wird angezeigt, welche Sektoren geschrieben werden. Wenn die Anzeige pausiert, kann das Kommando mit der Enter-Taste fortgesetzt werden. Erscheint wieder der Prompt von POWER, sollte die Diskette ein bootfähiges System enthalten, was durch einen Reset des Systems leicht zu prüfen ist.