mc-Z80-CP/M2.2-Computer 1982: Programme Letzte Änderung am 07.01.2011 / 10.12.2010 Copyright Dr. Hans Hehl Impressum gem. TMG Paragraph 5 zur Startseite: Mercedes-Geländewagen v. Dr. Hehl Hans zur NDR-Rechner-Seite: zurück zur Hardware mc-Computer: zurück zum EURO-Z80: Aus Zeitgründen können keine Anfragen beantwortet werden, dazu gibt es die Z80- und CP/M-Foren. |
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 |
1. Monitorprogramm mit Boot von Eprom-Floppy: |
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:
Ich verwende das angepasste Monitorprogramm Vers. 3.4 (Eprom-Binärdatei MONHEMC.BIN, siehe Abschnitt 1.4: Download MONHEMC.BIN) für den Boot von Eprom-Floppy, 5,25-Zoll- und 8-Zoll-Laufwerkkombination und RAM-Floppy. Andere Laufwerkkombinationen werden mit BIOS-Patch-Files, z.B. HB0.COM oder HB1.COM nachgeladen. |
und die Programme auf der Eprom-Floppy, also Textverarbeitung, Debugger, Formatierprogramm, Hebas (Basic) usw. |
Im ursprünglichen Monitor V 3.4 sind folgende Änderungen für den Boot von der Epromfloppy ohne DMA notwendig.
|
1.1 Bootabfrage: |
1.2 Boot-Routine:
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. |
1.4 Download:
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 Fehler in der Floppy-Routine im Monitor Vers. 3.4 dokumentiert. |
2. System- und Programm-Eproms:
|
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, hier der Download: SBIOS.PDF. |
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. |
4. Universal-Formatierer:
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 |
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. |
Nach dem Formatieren wird die Diskette noch geprüft. |
5. FNDBD-Prüfprogramm:
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). |
6. RAM-Floppy löschen: |
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 RFL.Z80). |
7. Centronics-Schnittstelle Drucker CENT.COM: |
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 |