Z80 und
CP/M-Projekte
Ronald Daleske

Startseite Impressum Warenzeichen

CPD3 - CP/M Computer mit vielen Modulen (2011)

CPD3 ist eine Weiterentwicklung von CPD2 und soll nun auch unabhängig vom PC arbeiten können. Dazu wurde das Interface-Protokoll ITP in ITP2 erweitert. Die nun nutzbaren Hardware-Schnittstellen entsprechen prinzipiell den CP/M Schnittstellen (CONIN, CONOUT und FLOPPY). Viele Mikrocontroller gesteuerte Adapter verwandeln das System CPD3 in ein frei konfigurierbaren und sehr flexibel einsetzbaren Computer-Baukasten.

Inhaltsverzeichnis

1. Motivation und Zielstellung
2. Das CPD-Konzept
3. Das ITP2-Protokoll
4. Die Hardware
5. Die Software
6. Die Module
7. Die CONSOLE - Anbindung des CPD3 an den PC
10. Bildergalerie

1. Motivation und Zielstellung

Wenn man sich andere Projekte zum Thema CP/M ansieht, so folgt nach dem ersten Lauf immer der Anschluss einer Tastatur und eines Bildschirmes oder einer SD-Card direkt an das CP/M-Board (CP/M on breadboard).

Man möchte also weitere Komponenten anschliessen, bis der CP/M-Computer selbständig und ohne PC lauffähig ist.

Nach dem Motto: "Der Weg ist das Ziel" wurde nun der Grundstein für eine weitere Ausbaustufe des CP/M-Computers gelegt.

Sie sollte CPD3 heißen.

2. Das CPD-Konzept


der Z80 Einplatinenrechner

Die zentrale Komponente des CPD3 ist wie auch beim CPD2 der Z80 Einplatinenrechner. Im Gegensatz zu den klassischen CP/M-Computern, die mit komplizierter Hardware, Erweiterungsbus und Bustreibern versuchten möglichst viele Aufgaben mit dem einen Z80-Computer zu erledigen, ist die Philosophie der CPDX-Computer recht einfach:

Somit entsteht eine zeitgemäße Symbiose zwischen dem Z80/CP/M-Kern und den Mikrocontrollern in der jeder seine Stärken einbringen kann.


Vergleich Z80 basiertes CP/M mit heutigen Mikrocontrollern

Was kann CP/M in die Symbiose mit einbringen:

Was bringen die modernen Mikrocontroller mit ein:


Abgrenzung zum PC-DOS™ und MS-DOS™ für 8086

Das Betriebssystem DOS ist der Nachfolger von CP/M. Für DOS gibt es daher wesentlich mehr Software als für CP/M. Trotzdem findet man kaum Projekte zu Einplatinencomputern mit Intel™ Prozessoren. Der grund liegt wahrscheinlich in den wesentlich höheren Hardwareanforderungen des Intel-Prozessors. Mit wenigen Schaltkreisen ist hier kaum etwas sinnvolles erreichbar.


Abgrenzung zu LINUX™/UNIX™

LINUX ist im Umfeld von Microcontrollern das mit Abstand am meissten genutzte Betriebssystem. Es ist sehr flexibel und kann auf sehr kleinen Systeme (Raspberry Pi) aber auch auf sehr grossen Systemen (PCs bis Server) genutzt werden. LINUX ist ein Multiuser und Multitasking Betriebssystem und erfordert daher eine anspruchsvolle Hardwareausstattung (MMU - Speicherverwaltung usw., CPU plus SRAM alleine reichen hier nicht). Um das Betriebssystem LINUX auf einer selbst gebauten Hardware zum laufen zu bekommen bedarf es daher viel Hintergrundwissen, das sicher nicht viele Bastler haben.


3. Das ITP2-Protokoll


Am CPD2 hat sich der klein gehaltene Z80-Kern sehr gut bewährt. Auch das "Interface-Transmission-Protokoll" lief schnell und ohne Probleme. Für den Anschluss mehrerer Komponenten (Tastatur, Bildschirm, RAM-Floppy usw.) waren aber 12 Leitungen (8 Daten- und 4 Steuerleitungen) recht viel. Besser wäre, wenn man mit 8 Leitungen auskommen würde. Das wäre dann 1 PIO-Port für je ein Interface. Bei 3 PIOs (ein Port wird für die intere Steuerung benötigt) bleiben dann noch 5 frei konfigurierbare Interfaces übrig.

Grundprinzip des Interface Transmission Protokolls 2 (ITP2)

Also wurde kurzerhand die Anzahl der Datenleitungen von 8 auf 4 verringert. Bei jeder Übertragung eines Bytes muss nun der niederwetige und der höherwertige Teil eines Bytes jeweils separat übertragen werden.

Beispiel eines Interfaces mit Z80 PIO2 PORTB und ATMEGA8

Hardwareseitig sollte für jedes Interface ein 10-pooliger Wannenstecher dienen (4 Datenleitunge, 4 Steuerleitungen, Masse und 5V). Eine Kleinigkeit hatte ich aber bei der damaligen Erstellung dieses Konzeptes nicht beachtet. Es wäre sehr sinnvoll, auch das /RESET-Signal mit zu übertragen. Fast immer ist am anderen Ende des Interfaces ein Mikrocontroller und es ist sehr wichtig, dass er auch ein /RESET bekommt, wenn die Z80 ein /RESET erhält. Somit muss nun eine 2 adrige separate /RESET-Leitung mit verkabelt werden.


4. Die Hardware

Schaltplan des CPD3 Z80 als Eagle-Datei: CPD3.sch

Schaltplan des des CPD3 Z80 als PDF-Datei: CPD3.pdf

5. Die Software

Die ITP2-Connectoren (Connector(1) bis Connector(5)) sind priorisiert. Das heisst, dass eine Tastatur an Connector(1) eine höhere Priorität hat als eine Tastatur an Connector(2). Nach dem Start werden alle Connector-Ports abgefragt. Die entsprechende Software des Connectors muss antworten um welchen Connectortyp (DEVCODE) es sich handelt. Momentan werden folgende Connectortypen softwareseitig unterstützt:


Quelltexte für Loader: LOADER.ZIP

Quelltexte für BIOS: BIOS.ZIP

6. Die Module

Wie schon oben beschrieben, ist der Z80-Kern zwar lauffähig, man kann aber ohne angeschlossene Module nicht mit ihm kommunizieren. Daher wurden mehrere Module entwickelt, die im folgenden vorgestellt werden sollen.


7. Die CONSOLE - Anbindung des CPD3 an den PC


Das Programm mit Quelltext wird unter CONSOLE im Bereich "Programmier-Projekte Lazarus / Free Pascal" beschrieben.

10. Bildergalerie


Die Beschreibung folgt in Kürze.



Startseite Impressum Warenzeichen