ü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.