|
Startseite | Impressum | Warenzeichen |
CPD5 ist ein CP/M Einplatinencomputer, der keinen separatenFLASH-ROM-Speicher mehr benötigt. Beim Erststart des Computersübernimmt ein Mikrocontroller das Initialisieren des Z80-Codes imZ80-Computer. Die enge Symbiose aus Z80-Computer und Mikrocontroller verleihtdem Gesamtsystem eine neue Qualität mit beeindruckendenMöglichkeiten. Programme und Daten werden in einer batteriegepuffertenRAM-Floppy gespeichert. |
Inhaltsverzeichnis
1. Motivation undZielstellung2.Übersicht und Technische Daten
3.Das Konzept von CPD5
4. DieHardware
5. Die einzelnenKomponenten mit der Software
6. DieCONSOLE - Anbindung des CPD5 an den PC
7. Hinweise für den Aufbau einer selbstverdrahteten Platine mit Anbindung an CONSOLE
8. CPD5 und VGAGEN2 alseigenständiger CP/M-Computer
9.Lizenz
1. Motivation und Zielstellung
Warum kommt nach CPD3 gleich CPD5 (wo ist CPD4)? CPD4 gab es nur einekurze Zeit als Konzept. Dann habe ich parallel dazu das Konzept von CPD5entwickelt, das sich schon in dieser Phase als besser herausstellte. Somit istCPD4 nie weiter entwickelt worden.
Äußerlich betrachtet sieht CPD5 nicht viel anders aus alssein Vorgänger CPD3. Aber das Aussehen täuscht. Auf dieser kleinenLeiterplatte werkeln 1 Z80-Mikroprozessor und 2 Mikrocontroller (ATMEGA 1284Pals Bus-Controller und ATMEGA 162 als Adress-Extender) ständig vor sichhin. Das macht das Gesamtkonzept äußerst flexibel.
Der erste Grund für eine Änderung des Konzeptes von CPD2 undCPD3 war (das schon bei CPD3 beschriebene) Problem der schlechtenVerfügbarkeit des FLASH-EEPROMs AM29F040. Zudem benötigt man fürdie Programmierung des AM29F040 ein spezielles Programmiergerät.
Die neue Idee war, den Code für den Z80 (BIOS, BDOS, CCP) aus demFLASH-Speicher eines Mikrocontrollers lesen. Das hat einige Vorteile:
-
ein Mikrocontroller lässt sich über ein modernes Programmiergerät (wie z.B. mySmartUSB light von der Laser & Co. Solutions GmbH aus Löbau, das ich gern verwende) in wenigen Sekunden programmieren
-
dazu muss kein Spreicherschaltkreis aus der Fassung gehoben werden (das ist sehr umständlich)
-
der Mikrocontroller bildet gleichzeitig die Schnittstelle zum PC (RS232 über USB)
-
der Mikrokontroller verwaltet zusätzlich den RAM (Adressen A16 bis A18 = RAM-Floppy)
Das Konzept ist so flexibel, dass man mit dieser Hardware auch ein CP/M3 oder CP/M Plus-Sytem mit einem umschaltbaren RAM (Banking) umsetzen kann(bisher noch in Arbeit).
Was anfänglich noch nicht absehbar war, ist die beeindruckendeGeschwindigkeit des Gesammtsystems im Betrieb mit der RAM-Floppy. Auch dieBatteriepufferung hält mit einer Batterie aus einem alten PC bereitsmehrere Wochen (Stromverbrauch etwa 200µA).
2. Übersicht und Technische Daten
-
Z80-Computer mit 512 KB RAM (nur 64 KB von Z80 direkt ansprechbar)
-
die Verwaltung des RAMs über 64 KB erfolgt durch den Mikrocontroller
-
der RAM über 64 KB wird als RAM-Floppy genutzt
-
damit die Daten auf der RAM-Floppy nach dem Abschalten des CPD5 nicht verloren gehen, wird der RAM durch eine kleine Batterie gepuffert
-
ist die RAM-Floppy noch nicht initialisiert, wird sie nach dem Erststart mit den Programmen "POWER.COM" und "RT.COM" (Ramtest vom Autor) initialisiert, so dass DIR bereits etwas anzeigt
-
das Erstladen weiterer Programme und Daten auf die RAM-Floppy kann über die PC-Schnittstelle erfolgen (separates Laufwerk)
-
zusätzlich kann jedes Z80-Programm (Beginn beliebig in den Quelltext integrierbar) über einen WAIT-Tracer mitgeschnitten weden (300 Maschinenbefehle)
-
die so gespeicherten Trace-Daten können in Einzelschritt-Modus in der CONSOLE auf dem PC vorwärts und rückwärts in der PRN-Datei des Quelltextes betrachtet werden
3. Das Konzept von CPD5
Im folgenden Blockschaltbild wird das Zusammenspiel der Hauptkomponentendargestellt.
Blockschaltbild des CPD5-Systems
AdressExtender (AE)
Für die Ansteuerung aller 19 Adressleitungen (A0..A18) des SRAMsmusste eine Lösung gefunden werden. Grundsätzlich kann man dasnatürlich auch mit diskreten Buspuffern (wie z.B. 74244 oder 74255 sieheauch ProjektVGAGEN2) realisieren. Aber eigentlich schwebte mireine Umsetzung nach dem Vorbild meiner FLASH-RAM-FloppyRAMFLvor. Genutzt wird hier ein ATMEGA 162 als anwendungsspezifische integrierteSchaltung (ASIC). Der AdressExtender kann in mehreren Betriebsartenprogrammiert werden:
-
LOAD_ADRESS - laden einer neuen Adresse
-
INC_ADRESS - Inkrement der geladenen Adresse
-
ADRESS_TRISTATE - Adressbus auf Tristate setzen
-
WAIT_Z80ToBuf - Wait Z80-Bus to AE-Buffer
-
WAIT_BufToBC - Wait AE-Buffer to Bus-Controller
Mit diesen Betriebsarten sollten alle Anforderungen abgebildet werdenkönnen.
BusController (BC)
Der BusController wird durch einen ATMEGA 1284P oder einen ATMEGA 644P(beide sind weitgehend PIN- und Softwarekompatibel) umgesetzt. Er ist derphysische Hauptcontroller des CPD5-Systems. Auf dem 128 MB Flash-Speicher sindalle Z80 Programme untergebracht (BIOS, BDOS, CCP). Der BC übernimmt dieInitialisierung der Z80 nach dem Start und übergibt danach die logischeKontrolle an den Z80-Computer. Benötigt das CP/M-System eineBIOS-Schnittstelle (CONIN, CONOUT, READ und WRITE), so wird dies ebenfallsdurch den BC realisiert.
Z80-Computer
Der eigentliche Z80-Computer auf dem das CP/M läuft, ist einMinimalsystem bestehend aus Z80 CPU, 2 x Z80 PIO und dem 512 KB RAM. Es hateine sehr enge Bindung an das Mikrocontroller-Gespann BusController undAdressExtender. Für spezielle Aufgaben wird die Kontrolle an denBusController übergeben.
4. Die Hardware
Entsprechend einer alten Entwicklerrichtlinie - halte die Hardwaremöglichst einfach und setze die Aufgaben dann besser in Software um -besteht das Gesammtsystem CPD5 nur aus 8 Schaltkreisen (wenn man dieTRACE-Logik und eine PIO weglässt, so läuft alles auch bereits mit 6Schaltkreisen).
Die Verbindung zum PC (soweit mit der CONSOLE gearbeitet werden soll)erfolgt mit einemConrad Mini-USB zu UART Konverter.
Schaltplan des CPD5 Z80 als Eagle-Datei:CPD5.sch
Schaltplan des des CPD5 Z80 als PDF-Datei:CPD5.pdf
5. Die einzelnen Komponenten mit der Software
Unter3. DasKonzept von CPD5 wurden die einzelnen Komponenten bereits kurz beschrieben.Iin den folgenden Abschnitten werden die Softwarepakete für die einzelnenKomponenten beschrieben.
5.1 Der AdressExtender (AE)
Beginnen wir mit der einfachsten Komponente. Für die Ansteuerungder Z80 und des RAMs werden viele Adressleitungen benötigt. DerBusController hat zwar 40 PINs, das reicht aber nicht für alleerforderlichen Daten-, Adress- und Steuerleitungen. Die Lösung denAdressExtender mit dem ATMEGA 162 zu realisieren, bietet sich an, da er vielenfrei verfügbaren IO-Ports besitzt (35 statt 32 bei anderen uCs).Grundsätzlich kann aber auch ein ATMEGA 16 oder ein ähnlicherController genutzt werden. Da der ATMEGA 162 aber nicht pinkompatibel zumATMEGA16/32 ist müsste sowohl die Hardware als auch die Softwaregeändert werden.
Die Software wurde mit dem RONPAS-Compiler geschrieben. DerRONPAS-Compiler kann unterRONPAS - AVR© PASCAL-Compiler im Bereich"Programmier-Projekte Lazarus / Free Pascal" herunter geladen werden. Da essich hier noch um eine Beta-Version handelt, kann keinerlei Garantie überden Erfolg der Nutzung gegeben werden (siehe Lizenzbedingungen).
Quelltext des AdressExtenders (AE) für RONPAS-Compiler:CPD5_AE.ZIP
5.2 Der BusController (BC)
Wesentlich komplexer als der AdressExtender (AE) ist das Programm zumBusController (BC). Der BC ist die zentrale Steuereinheit, wobei die Z80 unddas CP/M-System nach der Anfangsinitialisierung die Regie übernehmen. Dannführt der BC nur noch die Anweisungen des Z80 CP/M-BIOS aus.
Die Software wurde mit dem RONPAS-Compiler geschrieben. DerRONPAS-Compiler kann unterRONPAS - AVR© PASCAL-Compiler im Bereich"Programmier-Projekte Lazarus / Free Pascal" herunter geladen werden. Da essich hier noch um eine Alpha-Version handelt, kann keinerlei Garantie überden Erfolg der Nutzung gegeben werden (siehe Lizenzbedingungen).
Hier ein kurzer Überblick über die Arbeitsweise desHauptprogramms des BC
Das Hauptprogramm beginnt ab Zeile 2207. In 2211 wird die Word-VariableUBRR0 für die serielle Schnittstelle erzeugt. 2216 Initialisierung derPorts des BC (Ein- und Ausgange). 2218 Initialisierung des Zeigers für dasDaten_Array, danach weitere Grundeinstellungen.
2235 10 ms warten bis alle Pegel stabil sind. 2237 Abfrage der Funktion"RF_leer" (RAM-Floppy ist leer? - Funktion auf 2175). Bei "RF_leer" werden deiletzten beiden Bytes der RAM-Floppy abgefragt, ob sie das Füllbyte "E5H"enthalten (die RAM-Floppy ist im Leerzustand damit initialisiert). Ist dieRückmeldung wahr, dann ist die RAM-Floppy in Betrieb (sauber durchBatterie gepuffert) und muss nicht initialisiert werden. Ist dieRückmeldung falsch, so wird die RAM-Floppy mit "RAM_loeschen"gelöscht und mit "E5H" beschrieben. Danach wird mit "COPY_DISK_TO_RAM" dasDiskImage "DISK.INC" in die RAM-Floppy copiert. Die RAM-Floppy enthältdann die Programme "POWER.COM" und "RT.COM" (selbst geschriebenerRAM-Test).
2248 bis 2251 Einstellen des Zeiges auf das Daten_Array CPD5_ARR (dassind die Binärdaten des Z80 BIOS). Mit "COPY_ARRAY_TO_RAM" wird das BIOSaus dem ARRAY CPD5_ARR in den SRAM auf der Platine geladen. Die Lade-Adresseist 0000H (Parameter $00 ist der High-Teil der Ladeadresse).
2259 Der BC hat nun alles vorbereitet und kann die Regie an den Z80übergeben. Mit "starte_Z80" zieht er sich schrittweise zurück. DieSteuerleitungen des BC werden abgeschaltet und der AdressExtender (AE) gibt mit"ADRESS_TRISTATE" den Adressbus für die Z80 frei. Danach wird ein RESET ander Z80 ausgelöst und die Z80 beginnt mit der Abarbeitung des Programms abAdresse 0000H.
Sehr wichtig !!!
An dieser Stelle beginnt ein Regiewechsel zwischen BC und Z80. DieInitialisierung des Systems hat der BC durchgeführt. Die Z80 wurde mitBUSRQ abgeschaltet. Von nun an übernimmt die Z80 mit dem CP/M die Regieund fungiert als Master. Der BC geht in eine Warteschleife und wartet aufAnweisungen von der Z80. Kommt eine Anweisung (z.B. CONOUT - Ausgabe einesZeichens) so wird diese Anweisung ausgeführt und die Kontrolle wird wiederzurück an die Z80 gegeben.
2263 Abfrage der seriellen Schnittstelle, ob ein Zeichen eingetroffenist (läuft hier über Pollen des Registers im ATMEGA). Sollte einZeichen empfangen worden sein, so wird dies in die Variable "Zeichen"geschrieben. 2265 bis 2267 Hier werden die weiteren Zeichen gelesen bis dasZeilenende (CR und LF erreicht ist - eine andere Kommunikation wird nichtunterstützt).
2269 "Z80CALL_abfragen" hier wird abgefragt, ob das BIOS eineAnforderung an den BC hat. Wenn ja, so wird diese abgearbeitet.
2271 bis 2278 dient der TRACE-Bearbeitung. Diese wird zukünftignicht mehr unterstützt.
2261 bis 2280 Diese loop / endloop Schleife wird ständigabgearbeitet.
Quelltext des BusControllers (BC) für RONPAS-Compiler:CPD5_BC_CPM_2.2_F000.ZIP
Hinweis:
Diese ZIP-Datei enthält ebenfalls den erforderlichenCP/M-Binärcode umgewandelt in PASCAL-Quelltext. Es handelt sich hier umein einfaches CP/M 2.2-System. Das BIOS beginnt ab der Adresse 0F000H.
5.3 Die Z80 CP/M Quelltexte
Assemblieren der Quelltexte mit dem Assembler M80.COM in einemCP/M-Emulator
M80CPD5.ERL,CPD5.PRN=CPD5BAT/M/Z
-
CPD5BAT.MAC = zentrale Assembler-Datei von der aus alle Include-Dateien aufgerufen werden
-
CPD5DEF.INC = Wichtigste Include-Datei mit allen Variablen- und Speicherplatzdefinitionen
-
CPD5ULDR.INC = klein aber wichtig, der Urloader, der das BIOS vom Anfang des RAMs in den Speicherbereich für das BIOS (F000H) kopiert
-
CPD5BIOS.INC = hier ist der Quelltext des eigentliche BIOS (sehr ausführlich dokumentiert)
-
CPD5Z80C.INC = auch eine sehr kleine, aber wichtige Datei, dies ist die Software-Schnittstelle zwischen dem CP/M-BIOS und dem Mikrocontroller
-
CPD5INIT.INC = nach dem Hochladen des CP/M-BIOS in seinen Speicherbereich, werden danach als Erstes die PIOs mit dieser Routine initialisiert
-
MONITOR.INC = In dieser Include-Datei befinden sich einige nützliche Hilfsprogramme (z.B. Ausgabe einer Hexadezimaladresse an CONOUT, oder Ausgabe eines ganzen Sektors an CONOUT), die aber für den späteren Betrieb von CP/M nicht unbedingt benötigt werden. Sinnvoll können diese Hilfsprogramme sein, wenn man den Ablauf von Programmteilen überwachen möchte.
Damit das BIOS nach dem Verschieben in den oberen Speicherbereich auchsauber läuft wird bei der Assemblierung in der Datei CPD5BAT.MAC mit derAnweisung
.PHASE BIOSBASE
das BIOS und die dazugehörigen Unterprogramme auf die neue Adresseverschoben.
Nach dem Assemblieren folgt das Linken mit LINKMT.COM
LINKMTCPD5=CPD5/M/P:0000
Die so entstandene CPD5.COM Datei muss nun in den Z80 Speicher abAdresse 0000H geladen werden. Da dies beim CPD5 der BC übernimmt, mussdiese Datei in den PASCAL-Quelltext eingebunden werden. Das geht recht einfachmit dem Windows-Programm COM2INC.exe (am besten innerhalb einerBatchdatei).
COM2INC.exe CPD5.COMCPD5_TXT.INC Laenge_CPD5_Array CPD5_ARR
Aus der COM Datei wird ein Byte-Array (mit dem Namen CPD5_TXT.INC) inder Größe der COM-Datei erstellt. Dieses Byte-ARRAY wird durch denBC in den RAM geladen werden.
Hinweise zum BIOS
Das BIOS ist sehr ausführlich kommentiert. Die Interaktionen mitdem BC laufen immer gleich ab.
Dazu hier das Beispiel der Ausgabe eines Zeichen an CONOUT.
In diesem Beispiel wird die CONOUT-Schnittstelle des CP/M BIOS gezeigt.Nach dem Aufruf von CONOUT wird das B-Register mit dem CODE für CONOUTgeladen und das Unterprogramm "UP_Z80CALL" aufgerufen.
Im Unterprogramm "UP_Z80CALL" wird als Erstes gewartet, bis eventuellealte Anforderungen abgearbeitet sind. 17 bis 20 Die übergebenen Parameterwerden in RAM-Speichervariablen abgelegt. Da der BC auch vollen Zugriff auf denRAM hat, kann er später diese Inhalte auslesen.
23 bis 26 nun wird die Steuerleitung für den Z80CALL auf Lowgelegt. Das ist für den BC das Zeichen, dass eine Anforderung des Z80vorliegt.
Offiziell wartet jetzt die Z80, bis die Anforderung vom BC abgearbeitetwurde und der BC dann die Steuerleitung Z80AK auf Low legt.
Nun läuft folgendes ab:
-
der BC fragt innerhalb seiner loop / endloop Schleife die Steuerleitung Z80CALL ab
-
ist diese auf Low, so erzeugt der BC eine Busanforderung an die Z80 über BUSRQ
-
die Z80 läuft derzeit in der Warteschleife und bestätigt die Busanforderung mit BUSAQ
-
solange "schläft" die Z80 und der BC hat vollen Zugriff auf alle Bussysteme und den Speicher
-
der BC liest nun aus der Speicherzelle RAM_Z80CALL_MD den Mode zur Anforderung der Z80 aus (Was soll ich denn machen liebes Z80-System?)
-
anhand dieses Mode-Bytes verzweigt der BC in der Prozedur "Z80CALL_abfragen" zu den entsprechenden Abarbeitungsprozeduren der Anforderungen
-
nach der Abarbeitung schaltet der BC die Bestätigungsleitung "Z80AK" auf Low, damit bestätigt der BC die Fertigstellung der Anforderung
-
die Z80 "schläft" noch im BUSRQ
-
erst wenn der BC die Kontrolle wieder an die Z80 übergibt - mit High setzen der BUSRQ-Leitung - erhält das Z80-System nun die Meldung von der Fertigstellung der Anforderung durch die High gesetzte Z80AK-Leitung
-
solange dies passiert, wartet der BC noch in einer Schleife auf das High setzen der Anforderungsleitung "Z80CALL". Nun setzt die Z80 in Zeile 35 bis 38 die Anforderung zurück und der BC geht dann wieder in seine loop / endloop Schleife
-
in Zeile 42 wird das Register A mit einem eventuellen Rückgabewert geladen (z.B. bei Tastatureingabe) und die Z80 kehrt zurück aus dem BIOS-Programm und arbeitet weiter im Hauptprogramm
Soweit das Beispiel zur Abarbeitung der CONOUT-Anforderung.
BIOS Quelltext für CP/M 2.2 mit Anbindung an dieCONSOLE (Version 1.6):CPD5_BIOS_2.2_V_1.6.ZIP
6. Die CONSOLE - Anbindung des CPD5 an den PC
Wie schon CPD2 und CPD3 kann auch CPD5 über dieUSB-SERIAL-Verbindung mit dem PC kommunizieren. Für die ersten Tests istdies eine einfache und schnell umzusetzende Lösung. Leider läuft dieÜbertragung der Daten über die 128000 Baud recht langsam.
Das Programm mit Quelltext wird unterCONSOLE im Bereich "Programmier-Projekte Lazarus /Free Pascal" beschrieben.
7. Hinweise für den Aufbau einer selbst verdrahteten Platine mitAnbindung an CONSOLE
Aus den eigenen Erfahrungen beim Aufbau der Testplatine des CPD5 und ausAnfragen des ersten Nachbauers sollen an dieser Stelle einige Hinweise gegebenwerden.
schrittweiser Test
Nach dem Aufbau der gesammten Schaltung oder nach dem Aufbau der jeweilserforderlichen Komponenten wird ein schrittweiser Test empfohlen. War der Testerfolgreich, kann der nächste Test durchgeführt werden. Wenn nicht,muss der Fehler gesucht werden.
1. LED Blinktest am BC
Der BC wird mit den wichtigsten Anschlüssen versehen und bekommt amPort D7 eine rote LED. Diese LED soll nun blinken.
Hinweis: Der Blinktest läuft auch ohne Einstellung der Fuses. Beineuen ATMEGAs ist immer der interne Generator mit etwa 1 MHz aktiviert.
LED Blinktest des BusControllers (BC) - Version 1:01_Blinktest_BC.zip
LED Blinktest des BusControllers (BC) - Version 2:01_CPD5_BC_LED-Blinken.zip
2. Ausgabe eines Zeichens an die serielle Schnittstelle desBC
Blinkt die LED am BC, ist der ATMEGA1284 grundsätzlich in Betrieb.Der nächste Schritt ist die Inbetriebnahme der seriellen Schnittstelle unddie Ausgabe eines Zeichens an ein Terminalprogramm.
Hierfür müssen die Fuses auf den externen Quarz umgestelltwerden.
Für die Kommunikation kann ein beliebiges Terminalprogramm genutztwerden. Die Programme wurden alle mit demSETERM getestet.
BAUDRATE = 81920
Ausgabe eines Zeichens an die serielle Schnittstelle des BC:02_CPD5_BC_Serial.zip
3. Beschreiben und Lesen des RAM, Starten der Z80
Läuft nun auch die serielle Schnittstelle des BC können diefolgenden Softwaretests "vonn innen" durchgeführt werden. Dazu werdenkleine Testprogramme installiert, die dann über ein empfangenes Zeichenvon der seriellen Schnittstelle aktiviert werden. Mit dieser Methode kann manSchritt für Schritt Aktionen Auslösen (z.B. das Laden desZ80-Binärcodes in den RAM) und danach kontrollieren, ob das Programmordentlich ausgeführt wurde.
BAUDRATE = 81920
Beschreiben und Lesen des RAM, Starten der Z80:03_CPD5_BC_SRAM.ZIP
Beschreiben und Lesen des RAM, Starten der Z80:14_CPD5_BC_Z80_CONIO.ZIP
4. Hardwaretest
An meiner laufenden Nummerierung (15 für Hardwaretest) kann erkanntwerden, dass dazwischen viele Tests gemacht wurden, aber es inhaltlicheigentlich nicht wirklich voran ging. Die Ursache ist ein Fehler in meinerHardware, den ich einfach nicht finden konnte. Das Testprogramm der Z80 (dassdie LED am PIO-Port blinken läßt) lief mal und mal nicht.
Daher entschied ich mich ein Hardwaretestprogramm zu schreiben. Die Z80und der RAM müssen dafür vom Sockel entfernt werden. Mit den beidenMikrocontrollern BC und AE werden einzeln die Adressleitungen auf High gelegt.So kann man mit einem einfachen Logiktester überprüfen, ob dieAdressen bis zur Z80 und bis zum RAM sauber geschaltet werden.
Der Fehler in meiner Hardware war eine kalte Lötstelle in einerAdressleitung.
Hardwaretest:15_Hardwaretest.zip
5. Z80 Entwicklung und weitere Tests
Spätestens nach dem Hardwaretest sollte die Hardware sauber laufen.Mit dem Aufruf von CONIN und CONOUT im Z80-BIOS kann man nun ein einfachesMonitorprogramm erstellen (mit Menüs und Unterprogrammen). Einigenützliche Routinen befinden sich in der Datei "MONITOR.INC" unter denAssemblerprogrammen (CPD5_BIOS_2.2_V_1.6.ZIP). Oder man versucht jetzt dieendgültige Version des BCs (CPD5_BC_CPM_2.2_F000.ZIP).
Sollte es zu Problemen kommen kann man durch Einfügen folgenderZeilen in den Quelltext des BC
Write_String:='yTestpunkt01';
WriteLn;
eine Ausgabe auf den Protokollbildschirm der CONSOLE erreichen. So siehtman welche Stellen im Programm sauber abgearbeitet wurden. Diese Technik kannman selbstverständlich auch in den Prozeduren einfügen.
Diese Technik nutze ich auch während der Entwicklung und dem Testneuer Programme (siehe auch 3.1.13 Anzeige eines Kommentars in3.1 Beschreibung der einzelnenProtokoll-Anforderungen).
8. CPD5 und VGAGEN2 als eigenständiger CP/M-Computer
Der CPD5-Kern allein ist ein sehr interessantes System. Die Vorteiledieses Systems werden aber erst zusammen mitVGAGEN2 (VGA-Grafikkarte)erlebbar.
CPD5, VGAGEN2, Tastatur und VGA-Monitor
Die Performance beim Zusammenspiel beider Baugruppen war währendder Entwicklung noch nicht absehbar. Wird nur mit der RAM-Floppy gearbeitet,reagiert CP/M erfreulich schnell. Das Laden neuer Programme dauert nurSekundenbruchteile (kleiner 1 Sekunde). Das Arbeiten mit dem guten alten CP/Mmacht nun richtig Spass.
Hier ein kurzes Video zur Arbeit mit CPD5 (etwa 65 Sekunden)
-
DIR - Anzeige des Directorys
-
TURBO - Starten von Turbo Pascal
-
Y - mit Fehlermeldungen
-
W - Workfile -> laden einer Arbeitsdatei -> ESC.PAS -> ein kleines Testprogramm für den VGA-Monitor
-
E - Editor starten (nur zum Test)
-
O C Q - das berühmte Umschalten auf den Compilermode mit Erzeugen der COM-Datei
-
C - Compiling - Compilieren der ESC.PAS Datei nach ESC.COM
-
Q - Turbo Pascal beenden
-
zurück am Promt - Laufwerk A:
-
ESC - Starten des Testprogramms
CPD5 mit angeschlossenem ITP2-Adapterkabel zum VGAGEN2
VGAGEN2 mit angeschlossenem ITP2-Adapterkabel zum CPD5
Die VGA-Grafikkarte VGAGEN2 ist über das ITP2-Protokoll mit demCPD5 verbunden. Da der CPD5 eine eigene RAM-Floppy besitzt und die CONIN(Tastatur) und die CONOUT-Schnittstelle (Monitor) über den VGAGEN2 bedientwerden, ist diese Konfiguration eigenständig laffähig. Es müssennur einmalig die erforderlichen Programme von der PC-Console (Laufwerk B:) aufdie RAM-Floppy (Laufwerk A:) kopiert werden - natürlich am Besten mitPOWER.COM.
VGAGEN2 selber ist ein eigenständiges Projekt und wird auf derInternetseiteVGAGEN2 nähererläutert.
9. Lizenz
Diese(s)Werk bzw. Inhalt von Ronald Daleske steht unter einerCreative Commons Namensnennung-Nicht-kommerziell 3.0Deutschland Lizenz.
keine Mängelgewähr
DIESE SOFTWARE WIRD VOM URHEBERRECHTSINHABER "OHNEMÄNGELGEWÄHR" BEREITGESTELLT. ALLE AUSDRÜCKLICHEN ODERSTILLSCHWEIGENDEN GEWÄHRLEISTUNGEN, EINSCHLIESSLICH DER STILLSCHWEIGENDENGEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINENBESTIMMTEN ZWECK (JEDOCH NICHT DARAUF BESCHRÄNKT), WERDEN AUSGESCHLOSSEN.DER URHEBERRECHTSINHABER IST IN KEINEM FALL UND NACH KEINER HAFTUNGSTHEORIE(SEI ES AUF VERTRAGSBASIS, AUF DER BASIS STRENGER HAFTUNG ODER UNERLAUBTERHANDLUNGEN, EINSCHLIESSLICH FAHRLÄSSIGKEIT) FÜR BELIEBIGE VERURSACHTEDIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, EXEMPLARISCHE SCHÄDEN ODERFOLGESCHÄDEN (EINSCHLIESSLICH, JEDOCH NICHT BESCHRÄNKT AUFBESCHAFFUNG VON ERSATZPRODUKTEN ODER -LEISTUNGEN, NUTZUNGSAUSFALL, DATEN- UNDGEWINNVERLUST ODER GESCHÄFTSAUSFALL) HAFTBAR, DIE AUFGRUND DER VERWENDUNGDIESER SOFTWARE ENTSTEHEN KÖNNEN. DIES GILT AUCH, WENN AUF DIEMÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORSAS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOTLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR APARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS ORCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENTOF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER INCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISINGIN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITYOF SUCH DAMAGE.
Startseite | Impressum | Warenzeichen |
Copyright © 2013 Ronald Daleske