mc-Z80-CP/M2.2-Computer 1982: Programme

mc-prog.htm Letzte Änderung am 02.02.21/30.01.21/07.01.2011 / 10.12.2010 Copyright Dr. Juliane Hehl

Impressum gem. DSGVO
Hier werde ich meine wichtigsten System-Programme für CP/M2.2 und die Utilities beim mc-Computer und NDR-Rechner vorstellen.
Die MS-DOS/Windows-Programme für den Z80 folgen nach und nach, z.B. der Z80MU, SCOPY, AFD-Debugger, ASM-Assembler usw..

Eine der größten CP/M-Programmsamlungen ist hier: http://www.znode51.de/index.htm
Übersicht:

1. Monitorprogramm: Boot von Epromfloppy:
1.1 Bootabfrage:
1.2 Bootroutine:
1.3 Read/Write im CP/M-BIOS:
1.4 Download:

2. System- und Programm-Eproms für Epromfloppy:
3. Universal-BIOS für verschiedene Diskettenformate:
4. Universalformatierer U.COM:
5. FNDBD.COM:
6. RAM-Floppy löschen RFL.COM:
7. Centronics-Schnitstelle Drucker CENT.COM:
Teil B: CP/M 2.2 und Programme

1. mc-Computer und CP/M2.2:
2. mc-Computer und Speicherbelegung:
3. Debugger DTTZ27.COM:
4. Microshell Unix-Feature für CP/M:
5. BIGZAP.COM CP/M2.2 Disketten- Editor:
Roadmap:
1. Monitorprogramm mit Boot von Eprom-Floppy: top
Die Bildschirmfotos zeigen die Monitormeldung "MC-Monitor EPR-Start V 3.4, AL=L, RDK / HE" mit den Bootmöglichkeiten
EPR-Boot = 0, 8-Zoll = 1, 5 1/4 = 2:
mc-Computer mc-Computer
Ich verwende für den Boot von Eprom-Floppy, 5,25-Zoll- und 8-Zoll-Laufwerkkombination und RAM-Floppy das angepasste
Monitorprogramm Vers. 3.4 (Eprom-Binärdatei MONHEMC.BIN, siehe Abschnitt 1.4


Andere Laufwerkkombinationen werden mit BIOS-Patch-Files, z.B. HB0.COM oder HB1.COM nachgeladen,

ebenso und die Programme auf der Eprom-Floppy, also Textverarbeitung Wordstar, Debugger DDTZ, Formatierprogramm, Hebas (Basic) usw.
Textverarbeitung Debugger Formatierprogramm HEBAS Basic HEBAS Basic
Im ursprünglichen Monitor V 3.4 sind folgende Änderungen für den Boot von der Epromfloppy ohne DMA notwendig.
1.1 Bootabfrage: top
Nach dem Einschalten des Rechners meldet sich mit der Eingabe "i" der Monitor. Nach der Eingabe "0" (= Null)
für den Boot von der Eprom-Floppy springt das Monitorprogramm zur Routine "EPRBOO". Diese spricht die Eprom-Floppy
über die Hardware-Adresse "EPRFL" (5h = Daten) an. Die Zähler "TRAEPR" (0h = Spur), "LOSEPR" (6h = Sektor High)
und "HISEPR" (2h = Sektor Low) werden auf Null gesetzt.
Monitor mc-Computer Monitor
1.2 Boot-Routine: top

Aus dem System-Eprom wird CP/M 2.2, also CCP, BDOS und BIOS ins RAM geladen.

Der Z80-Befehl INIR (IN (HL),(C); INC HL; DEC B ungleich 0) lädt aus dem System-Eprom ab Adresse 0
insgesamt 7168 Bytes (28 x 256 = 7168 = 1C00h) in den RAM-Bereich ab Adresse D400h bis Adresse DC00h.

Dort beginnt der Console Command Processor CCP siehe CP/M2.2.
Am Ende der Boot-Routine springt der Monitor nach EA00h ins BIOS und CP/M startet.
Monitor
1.3 Read/write ohne DMA von Eprom- und RAM-Floppy: top

Die Lese- und Schreibfunktionen für die Programme auf der Eprom-Floppy sind im CP/M-BIOS abgelegt.
Sie sind auch in Patch-Prgrammen, z.B. HB0.COM enthalten.
HB0.COM
1.4 Download: top

Download des Monitor Vers. 3.4 MONHEMC.BIN und des Quellcodes MONHEMC.180 für den SLR180-Assembler.

Download des ursprünglichen Monitors MC01MON.BIN.

Im mc Heft 2/1986 wurde ein in der Floppy-Routine im Monitor Fehler Vers. 3.4 dokumentiert.
2. System- und Programm-Eproms: top

siehe hier
3. Universal-BIOS für verschiedene Diskettenformate: top

Die ursprüngliche Quelle war das Spezial-CBIOS (SBIOS.ASM) von G. Sternberg 1985 für den mc-cpm-Computer.
In einer Tabelle (TABBASE) sind dort zwei Mini-, 2 Maxi-Laufwerke und eine 128 KByte-RAM-Floppy definiert.
HB0.COM
In dieser Tabelle sind für jedes Laufwerk der Typ und das Aufzeichnungsformat mit nur 4 Bytes beschrieben (1.Byte: Modus, 2. Byte:
Disk-Vorderseite, 3. Byte: Disk-Rückseite, 4. Byte: letzte Spur Vorderseite. Die Tabelle liegt direkt hinter den
17 CP/M-Sprungvektoren im BIOS. Eprom- und RAM-Floppy benötigen nur 4 Null-Bytes (Dummy).

Am Ende des SBIOS ist die Anzahl der Laufwerke definiert. G. Sternberg hatte eine ausführliche Dokumentation des SBIOS
zu den Programmen erstellt: Download:, SBIOS.PDF.
Für die Verwendung verschiedener Diskettenformate habe ich auf der Eprom-Floppy mehrere BIOS-Patch-Programme
abgelegt, so z.B. HB0.COM.

Ich habe das SBIOS erweitert und eine kleine Laderoutine an den Programmanfang dazu gesetzt.
Wird das Programm gestartet, überschreibt es im mc-Computer-CP/M2.2 ab Adresse EA00h die
BIOS-Floppy-Routine mit dem Patch. Man erspart sich so das umständliche Anfertigen eines neuen CPM-Systems.

Download von HB0.Z80 und HB0.ASM.
HB0.COM HB0.COM
4. Universal-Formatierer: top

Für den mc-Computer und NDR-Rechner gab es von R.-D. Klein ein universelles Formatierprogramm U.COM mit der
Quelle U.MAC (Download von U.Z80 und von U.MAC)
Formatierprogramm
Die Bildschirmfotos zeigen den Formatierungsvorgang einer 5 1/4-Zoll-Diskette
im ECMA70-Format für den CP/M 2.2-Rechner für die Floppy-Baugruppe FLO1 und FLO2.
Formatierprogramm Formatierprogramm Formatierprogramm
Nach dem Formatieren wird die Diskette noch geprüft. Formatierprogramm Formatierprogramm
5. FNDBD-Prüfprogramm: top

Das Prüfprogramm FNDBD.COM sucht defekte Sektoren und reserviert sie in "_UNUSED_BAD". Es funktioniert bei meinen
verschiedenen Diskettenformaten, so bei ECMA70, NDR-Format, Eprom- und 1-MByte-RAM-Floppy, wie die Bildschirmfotos
zeigen Download als FNDBD.Z80).
FNDBD-Ecma70 FNDBD-NDR FNDBD-Eprom-Floppy FNDBD RAM-Floppy
6. RAM-Floppy löschen: top
Die 1 MByte-RAM-Floppy (c't-Projekt) wird mit einem kleinen Programm RFL.COM nach dem Einschalten des CP/M2.2-Rechners
gelöscht. Die Spuren 0,1,2 und 3 werden mit dem Lösch-Byte E5 beschrieben, siehe RFL.TXT.

Nach dem Übertragen vom PC auf einen Z80-Rechner (z.B. mit SUPERCOPY, 22DISK usw. ) ist RFL.Z80 vor dem Start in
RFL.COM umzubenennen. Download von RFL.Z80).
1 MByte-RAM-Floppy Nr. 2 1 MByte-RAM-Floppy Nr. 2
7. Centronics-Schnittstelle Drucker CENT.COM: top
Der Monitor 3.4 enthielt nur die Routine LO (LST: ab Adresse 0FB00h) für einen seriellen Drucker.
Möchte man einen Drucker mit Parallel-Schnittstelle anschließen, muss im Monitorprogramm diese Routine geändert werden.
LO-Routine
Das kleine unter CP/M 2.2 aufzurufende Programm (siehe CP/M-Sonderheft, S. 71) verwendet die PIOA als Steuerport
(Bit 6 als Busy-Signal, Bit 7 = Strobe-Signal) und die PIOB als Datenport (Bit 0 - 7). Die Portadressen sind
für PIOA-Data 0F4h, PIOA-Command 0F5h, PIOB-Data 0F6h und PIOB-Command 0F7h, wenn auf der SIO/PIO-Platine die Brücken an V1 (74LS85) offen sind.

Eine kleine Verschieberoutine legt das eigentliche Programm im Monitor je nach Monitor-Version ab Adresse FB00h, F9E0h
oder bei FF20h ab und überschreibt so den Monitor.
Download für Vektor LO (LST) 0F9E0h: Print-File CENT2-PRN.PDF (Listing mit Speicher-Adressen)

Download Assembler-File CENT2.TXT
Bei meiner Monitorversion muss mit dem Befehl ".Phase" des Assemblers die Adresslage der Centronics-Routine
(Vektor LO (LST:) auf 0FF20h eingestellt werden. Download CENT43.COM


Valid HTML 4.01! Validation für HTML 4.01 - diese Seite validieren:

zurück zum Anfang top