![Page 1: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/1.jpg)
Mit Lotkolben, Wire-Wrap-Pistole und Assembler
Z80 Selbstbaurechner
Prof. Dr. Bernd Ulmann
Marz 2014
1/86 Marz 2014
![Page 2: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/2.jpg)
1. Einleitung
Einleitung
2/86 Marz 2014
![Page 3: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/3.jpg)
Einleitung 1. Einleitung
Warum sollte man heute, im 21. Jahrhundert, uber einen 8Bit-Prozessor wie den Z80 sprechen oder gar rund um diesenProzessor kleine Computersysteme aufbauen? Grunde dafur gibt eseinige:
Es macht einfach Spass – viel mehr, als z.B. mit einem bereitsfertigen Raspberry Pi-Board zu experimentieren.
Es liefert einen sehr guten Einstieg in die Digitalelektronik mitim wahrsten Sinne des Wortes anschaulichen Bauelementen.
Die Softwareseite eines solchen Unterfangens ist hinreichendeinfach, dass es keiner hochkomplexen IDE und Toolchainbedarf, um Programme, einen einfachen Monitor oder sogarein (ganz) kleines Betriebssystem zu schreiben.
3/86 Marz 2014
![Page 4: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/4.jpg)
Einleitung 1. Einleitung
Der”akademische Nahrwert“ einer solchen Spielerei ist nicht zu
unterschatzen:
Moderne Prozessoren sind einer verstandlichen Darstellung imRahmen einfuhrender Veranstaltungen wie
”IT-Basics“ oder
”Betriebssysteme Theorie“ allein aufgrund ihrer Komplexitatnicht zuganglich.
Moderne Software ist ebenfalls viel zu komplex, um imRahmen einer solchen Veranstaltung behandelt zu werden, sodass letztlich die Frage danach, wie z.B. ein Betriebssystemwirklich funktioniert, etwas unklar bleiben muss.
Aus diesem Grund (und zugegebenermassen auch aus Freude amBasteln :-) ) wurde ein kleiner Einplatinenrechner auf Basis desZ80-Prozessors entwickelt, fur den auch ein einfacher Monitor inAssembler geschrieben wurde.
4/86 Marz 2014
![Page 5: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/5.jpg)
2. Wire-Wrap-Implementation
Wire-Wrap-Implementation
5/86 Marz 2014
![Page 6: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/6.jpg)
Wire-Wrap-Implementation 2. Wire-Wrap-Implementation
Wenn man Wire-Wrap-Werkzeug und Erfahrung im Umgang damithat, lassen sich damit extrem schnell recht komplexe Schaltungenaufbauen. Entsprechend wurde das erste Z80-System, das imFolgenden beschrieben wird, auf zunachst einer, spater zweiEuropa-Lochrasterplatinen (Maße 100 mm! 160 mm) aufgebaut.
Beim Wire-Wrappen wird mit Hilfe einer Wire-Wrap-Pistole einfeiner Draht fest um viereckige Stifte herumgewickelt, wodurchdieser an den Stiftkanten mit jedem verschweisst. DieseVerbindungen sind bezuglich ihrer Zuverlassigkeit traditionellenLotverbindungen sogar uberlegen.
6/86 Marz 2014
![Page 7: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/7.jpg)
Eigenschaften 2. Wire-Wrap-Implementation
Dieser kleine Beispielrechner verfugt uber die folgendenEigenschaften:
Eine Karte fur die CPU, eine fur einen einfachenIDE-Controller.
64 kB Adressraum, davon 32 kB EPROM ($0000 bis $7FFF)fur ein kleines Betriebssystem, und 32 kB RAM ($8000 bis$FFFF).
Anbindung an die Aussenwelt uber eine serielle Schnittstelle.
Nur eine Versorgungsspannung von +5 Volt bei wenigen100 mA notig.
Einfaches Bussystem auf Basis 64-poliger VG-Leisten.
Nicht unterstutzt wird gegenwartig DMA-Betrieb.
Die folgenden Bilder zeigen die Entstehung des Rechners:
7/86 Marz 2014
![Page 8: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/8.jpg)
3. CPU-Platine
CPU-Platine
8/86 Marz 2014
![Page 9: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/9.jpg)
Grundarchitektur 3. CPU-Platine
Quelle: http://www.arcadegeek.co.uk/how-do-games-work, Stand 18.02.2014.
9/86 Marz 2014
![Page 10: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/10.jpg)
Der Prozessor 3. CPU-Platine
Quelle: http://upload.wikimedia.org/wikipedia/commons/d/db/Z80 arch.svg, Stand 28.02.2014
10/86 Marz 2014
![Page 11: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/11.jpg)
Der Prozessor 3. CPU-Platine
11/86 Marz 2014
![Page 12: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/12.jpg)
Rund um die CPU 3. CPU-Platine
12/86 Marz 2014
![Page 13: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/13.jpg)
Das EPROM 3. CPU-Platine
13/86 Marz 2014
![Page 14: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/14.jpg)
Das RAM 3. CPU-Platine
14/86 Marz 2014
![Page 15: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/15.jpg)
Rund um RAM und EPROM 3. CPU-Platine
15/86 Marz 2014
![Page 16: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/16.jpg)
Eines fehlt noch... 3. CPU-Platine
. . . namlich eine serielle Schnittstelle. . .
Quelle: http://www.cast-inc.com/ip-cores/uarts/h16550s/
16/86 Marz 2014
![Page 17: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/17.jpg)
Serielle Schnittstelle 3. CPU-Platine
17/86 Marz 2014
![Page 18: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/18.jpg)
Adressdekodierung 3. CPU-Platine
Nun fehlt aber noch etwas Essenzielles: Eine Adressdekodierung,die steuert, welcher Baustein wann, d.h. unter welcher sogenanntenAdresse angesprochen wird.
Der Z80-Prozessor ist diesbezuglich ausgesprochen angenehm, daer spezielle IO-Instruktionen sowie entsprechende Steuersignaleanbietet, mit denen unterschieden werden kann, wann auf Speicherund wann auf IO-Gerate zugegri!en wird.
Bei der Gelegenheit konnen gleich noch ein paar Bustreibervorgesehen werden, um das System spater erweitern zu konnen.
18/86 Marz 2014
![Page 19: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/19.jpg)
Adressdekodierung 3. CPU-Platine
19/86 Marz 2014
![Page 20: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/20.jpg)
Alles zusammen. . . 3. CPU-Platine
Fasst man diese Grundelemente,
CPU, Takt- und Resetgenerator, Stromversorgung
RAM und EPROM
Serielle Schnittstelle
Adressdekoder und Bustreiber
zusammen, ergibt sich Folgendes:
20/86 Marz 2014
![Page 21: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/21.jpg)
Gesamtschaltplan 3. CPU-Platine
21/86 Marz 2014
![Page 22: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/22.jpg)
Implementation 3. CPU-Platine
22/86 Marz 2014
![Page 23: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/23.jpg)
Implementation 3. CPU-Platine
23/86 Marz 2014
![Page 24: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/24.jpg)
Implementation 3. CPU-Platine
24/86 Marz 2014
![Page 25: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/25.jpg)
Implementation 3. CPU-Platine
25/86 Marz 2014
![Page 26: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/26.jpg)
Implementation 3. CPU-Platine
26/86 Marz 2014
![Page 27: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/27.jpg)
Implementation 3. CPU-Platine
27/86 Marz 2014
![Page 28: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/28.jpg)
Erste Inbetriebnahme 3. CPU-Platine
28/86 Marz 2014
![Page 29: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/29.jpg)
Erste Inbetriebnahme 3. CPU-Platine
29/86 Marz 2014
![Page 30: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/30.jpg)
Erste Inbetriebnahme 3. CPU-Platine
30/86 Marz 2014
![Page 31: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/31.jpg)
4. Software
Software
31/86 Marz 2014
![Page 32: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/32.jpg)
Software 4. Software
Um nun mit dieser Karte etwas anfangen zu konnen, benotigtman ein kleines Betriebssystem, einen Monitor.
Nur, worauf entwickelt man den?
Das ist heute zum Gluck viel einfacher als zur Schulzeit desAutors, als man EPROMs noch wirklich per Hand mit einereinfachen Schaltung und vielen Schaltern muhevollprogrammiert und Assemblerprogramme per Hand inMaschinencode ubersetzt hat:
Man verwendet einen Cross-Assembler. Im vorliegenden Fallwurde zasm1, der klaglos auf UNIX-Plattformen, in diesemFall Mac OS X, lauft.
Was benotigt man noch? Einen EPROM-Programmierer undein EPROM-Loschgerat:
1Siehehttp://k1.dyndns.org/Develop/projects/zasm/distributions/, Stand08.06.2013.
32/86 Marz 2014
![Page 33: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/33.jpg)
Rund um EPROMs 4. Software
33/86 Marz 2014
![Page 34: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/34.jpg)
Erste Schritte 4. Software
Nun mochte man so etwas
eos defb 0
ld hl, hello
call puts
...
hello defb "Hello world!", eos
oder so etwas
loop call getc
call putc
jr echo
machen konnen, wofur man schon einige einfache Routinenbenotigt:
34/86 Marz 2014
![Page 35: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/35.jpg)
Erste Schritte 4. Software
puts push afpush hl
puts_loop ld a, (hl)cp eos ; End of string reached?jr z, puts_end ; Yescall putc ; Write characterinc hl ; Increment character pointerjr puts_loop ; Transmit next character
puts_end pop hlpop afret
putc call tx_readyout (uart0), aret
tx_ready push aftx_ready_loop in a, (uart5)
bit 5, ajr z, tx_ready_looppop afret
35/86 Marz 2014
![Page 36: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/36.jpg)
Eingabe. . . 4. Software
Wenn das funktioniert, benotigt man noch ein paar Routinen, umDaten von der seriellen Schnittstelle einzulesen, grundlegendeStringoperationen durchzufuhren etc. (Auszug):
getc call rx_readyin a, (uart0)ret
rx_ready push afrx_ready_loop in a, (uart5)
bit 0, ajr z, rx_ready_looppop afret
Dazu jedoch spater mehr. . .
36/86 Marz 2014
![Page 37: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/37.jpg)
5. Massenspeicher
Massenspeicher
37/86 Marz 2014
![Page 38: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/38.jpg)
Massenspeicher 5. Massenspeicher
Ab einer gewissen Leistungsfahigkeit des Betriebssystems wunschtman sich irgendeine Form eines Massenspeichers. Was bietet sichan?Kassettenlaufwerk: Verhaltnismaßig einfach zu realisieren –
entweder komplett in Software oder mit Hilfe einesUART-Bausteines mit FM-Modulator und-Demodulator. Nachteil: Langsam
Diskettenlaufwerk: Recht schnell, allerdings ist die Entwicklungeines Diskettencontrollers ausgesprochen eklig – derAutor hat das zuletzt im Alter von 16 Jahrengemacht und ringt immer noch mit demtraumatischen Erlebnis, eine PLL im elterlichenBackofen einem Burn-In unterziehen zu mussen. Dasist also auch keine Alternative.
IDE-Festplatte: IDE-Platten sind aus Hardwaresicht herrlich leichtzu interfacen, in Form von CF-Karten sind sieunschlagbar billig und schnell! Das ist die Losung!
38/86 Marz 2014
![Page 39: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/39.jpg)
6. IDE-Controller
IDE-Controller
39/86 Marz 2014
![Page 40: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/40.jpg)
IDE-Controller 7. IDE-Controller
Also ein IDE-Controller. . . Im Prinzip trivial, da dieIDE-Schnittstelle eigentlich schon ein Businterface ist, aber. . .
IDE ist ein 16 Bit-Bus, wahrend der Z80 einen 8 Bit-Bus besitzt,man braucht also doch wieder etwas Elektronik. . . Die folgendeSchaltung basiert auf einer Schaltung von Phil von Retroleum(http://www.retroleum.co.uk/electronics-articles/an-8-bit-ide-interface/).
Erst einmal ein wenig Adressdekodierung (schon wieder), weil dasIDE-Interface eine Erweiterungskarte werden soll, die an einem Bussteckt:
40/86 Marz 2014
![Page 41: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/41.jpg)
Adress-Dekodierung 7. IDE-Controller
41/86 Marz 2014
![Page 42: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/42.jpg)
Datenbuskonverter 7. IDE-Controller
Nun bleibt noch das Problem, aus einem 8 Bit-Datenbus einen 16Bit-Bus zu machen und umgekehrt. . .
Die Idee ist hierbei, einen Bustreiber fur die unteren 8 Bit zuverwenden und die oberen 8 Bit in je einem Register, eines furlesenden und eines fur schreibenden Zugri!, zu speichern:
42/86 Marz 2014
![Page 43: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/43.jpg)
Datenbuskonverter 7. IDE-Controller
43/86 Marz 2014
![Page 44: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/44.jpg)
Steuerung 7. IDE-Controller
Dafur benotigt man nun ein wenig Logik, um das Ganzeanzusteuern. Die Idee ist hierbei, dass man aus Sicht einesProgrammes zwei Bytes nacheinander schreibt, und diese beidenBytes im Anschluss hieran durch die Hardware als ein 16 Bit-Wortan das IDE-Device ubertragen werden.
Dazu kommen noch ein paar Timingekligkeiten, so dass sichletztlich folgende Schaltung ergibt:
44/86 Marz 2014
![Page 45: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/45.jpg)
Steuerung 7. IDE-Controller
45/86 Marz 2014
![Page 46: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/46.jpg)
Alles zusammen 7. IDE-Controller
Wenn man nun alles zusammen nimmt, braucht man eine zweiteEuropakarte (160 mm ! 100 mm).
. . . und wenn man dann auch noch die IDE-Spezifikationmissverstanden hat und die beiden /CS-Leitungen falschbeschaltet, muss man noch ein wenig Zeit mit Fehlersucheverbringen. :-)
46/86 Marz 2014
![Page 47: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/47.jpg)
Alles zusammen 7. IDE-Controller
47/86 Marz 2014
![Page 48: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/48.jpg)
IDE-Controller 7. IDE-Controller
48/86 Marz 2014
![Page 49: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/49.jpg)
Debugging 7. IDE-Controller
49/86 Marz 2014
![Page 50: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/50.jpg)
Zugri!e 7. IDE-Controller
50/86 Marz 2014
![Page 51: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/51.jpg)
8. Gesamtsystem
Gesamtsystem
51/86 Marz 2014
![Page 52: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/52.jpg)
Gesamtsystem 8. Gesamtsystem
52/86 Marz 2014
![Page 53: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/53.jpg)
Gesamtsystem 8. Gesamtsystem
Die beiden Platinen werden nun noch in ein 10-Zoll-Gehauseeingebaut und bekommen ein eigenes Netzteil. Links dieCPU-Platine, rechts daneben der IDE-Controller mit CF-Adapter,ganz rechts das Netzteil:
53/86 Marz 2014
![Page 54: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/54.jpg)
9. Ein Minibetriebssystem
Ein Minibetriebssystem
54/86 Marz 2014
![Page 55: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/55.jpg)
Ein Minibetriebssystem 9. Ein Minibetriebssystem
Nachdem nun Hardware vorhanden ist, braucht man einMinibetriebssystem, mindestens also einen sogenannten Monitor.Welche Funktionalitaten muss dieser mindestens implementieren?
”Devicetreiber“ (maßlos ubertrieben)
Initialisierungsroutinen fur die Devices
Einen einfachen Kommandointerpreter mit der Moglichkeit,Speicher zu laden, lesen, kopieren, dumpen, disassemblierenetc.
Ein Filesystem, wenigstens ein lesendes, um Crossdevelopmentmachen zu konnen
Idealerweise Interpreter fur eine (zwei?) Programmiersprachenwie Forth und/oder BASIC
55/86 Marz 2014
![Page 56: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/56.jpg)
Filesystem 9. Ein Minibetriebssystem
Ein Filesystem ist leichter gesagt als getan – welche Alternativenstehen zur Auswahl?
Eigenes Filesystem: Kann beliebig einfach gehalten werden, d.h.unter Umstanden mit minimalemEntwicklungsaufwand umsetzbar. Nachteil: Fur dasHostsystem, auf dem entwickelt wird, muss einentsprechendes Filesystem implementiert werden, waswieder recht kompliziert ist.
CP/M-Filesystem: Bekannter Standard, allerdings nur sinnvoll,wenn man mit einem CP/M-System Datenaustauschen mochte.
FAT16: Schon recht kompliziert, wird aber von allen gangigenHostsystemen mehr oder weniger nativ unterstutzt.
56/86 Marz 2014
![Page 57: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/57.jpg)
FAT16 9. Ein Minibetriebssystem
Wie sich schnell herausstellte, ist die Implementation einesFAT16-Filesystems in Assembler gar nicht trivial, stellenweise sogarrecht herausfordernd.
Ohne die Hilfe meines Freundes, Herrn Dr. Ingo Klockl, gabe esvermutlich noch immer kein FAT16-Filesystem in Z80-Assembler.Das, was der Monitor verwendet, haben wir an einem langenWochenende im Januar 2012 geschrieben.
Die gegenwartige Implementation ist dennoch recht rudimentar:
Unterverzeichnisse werden nicht unterstutzt.
Es sind nur Lesezugri!e moglich (was dennoch sehr hilfreichist).
Mag jemand mitentwickeln? Mir fehlt irgendwie die Muße, darauseine
”richtige“ FAT16-Unterstutzung zu machen. . . :-)
57/86 Marz 2014
![Page 58: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/58.jpg)
Monitor 9. Ein Minibetriebssystem
Welche Kommandos beherrscht das Minibetriebssystemmittlerweile?
Z> HELP: Known command groups and commands:
C(ontrol group):C(old start), I(nfo), S(tart), W(arm start)
D(isk group):I(nfo), M(ount), T(ransfer), U(nmount)R(ead), W(rite)
F(ile group):C(at), D(irectory), L(oad), R(un)
H(elp)M(emory group):
(dis)A(ssemble), D(ump), E(xamine), F(ill), I(ntel Hex Load),L(oad), R(egister dump),
S(ubsystem group):F(orth), B(ASIC)
58/86 Marz 2014
![Page 59: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/59.jpg)
Memorydump etc. 9. Ein Minibetriebssystem
Z> MEMORY/DUMP: START=0000 END=00500000: F3 31 3B FB 18 17 00 00 C5 E5 DD E5 E1 29 01 A9 .1;..........)..0010: 1D 09 4E 23 46 2B C5 DD E1 E1 C1 DD E9 3E 80 D3 ..N#F+.......>..0020: 03 3E 0C D3 00 AF D3 01 3E 03 D3 03 3E 07 D3 02 .>......>...>...0030: 21 5F 01 CD A8 12 3A 3C FB FE AA 28 18 21 11 03 !_....:<...(.!..0040: CD A8 12 21 00 80 54 5D 13 01 FF 7F 36 00 ED B0 ...!..T]....6...0050: 21 3C FB 36 AA 21 99 02 CD A8 12 CD 30 03 FE 43 !<.6.!......0..C
Z> MEMORY/DISASSEMBLE: START=0000 END=0010
0000 F3 DI0001 31 3B FB LD SP,0FB3BH0004 18 17 JR 1DH0006 00 NOP0007 00 NOP0008 C5 PUSH BC0009 E5 PUSH HL000A DD E5 PUSH IX000C E1 POP HL000D 29 ADD HL,HL000E 01 A9 1D LD BC,1DA9H
END OF DISASSEMBLER RUN.
59/86 Marz 2014
![Page 60: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/60.jpg)
Programm laden und ausfuhren 9. Ein Minibetriebssystem
Z> DISK/MOUNTFATNAME: MSDOS5.0CLUSIZ: 40RESSEC: 0008FATSEC: 00F0ROOTLEN: 0200PSIZ: 003C0030PSTART: 00001F80FAT1START: 00001F88ROOTSTART: 00002168DATASTART: 00002188
Z> FILE/DIRECTORYDirectory contents:-------------------------------------------FILENAME.EXT DIR? SIZE (BYTES) 1ST SECT-------------------------------------------ECHO .EXE 00000032 00002188S3 .4TH 000000B3 00002D08SIN .4TH 0000009F 00002D48TEST .4TH 0000001D 00002D88TEST .BAS 00000044 00003208GUESS .BAS 0000010A 000035C8MANDEL .ASM 00002812 00003C08MANDEL .EXE 0000019A 00003C48
60/86 Marz 2014
![Page 61: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/61.jpg)
Programm laden und ausfuhren 9. Ein Minibetriebssystem
Z> FILE/RUN: FILENAME=mandel.exe019A bytes loaded. Run...
....... @@@@@@@@@@@@@@@@@@@@########===*+ . *######@@@@@
...... @@@@@@@@@@@@@@@@@@@@#########====+-. -*===#####@@@@
..... @@@@@@@@@@@@@@@@@@@@#########===**+- +*====####@@
.... @@@@@@@@@@@@@@@@@@@########==*+-.-+-.. .-+****+*##@
... @@@@@@@@@@@@@@@@@#####=====**+- -=#
.. @@@@@@@@@@@@@@@###=========***+- -*==
..@@@@@@@@@@####==- +*******++++- -+=
. @@@@#######===**- ... -*
.@@#######======++- +=
.#######=****+- +*=
.=**++ .-.... .+*==
.#=====****+++. -*==
.@#######=====*--- .*=
.@@@########====*++. +=
. @@@@@@@######==*+ .-++- --++--. =
.. @@@@@@@@@@@@@##==*=======****+ -+*=
... @@@@@@@@@@@@@@@@####=======***+- +==
... @@@@@@@@@@@@@@@@@@@######====*- . --+- *##
.... @@@@@@@@@@@@@@@@@@@@########==****++- .-+**====###@
..... @@@@@@@@@@@@@@@@@@@@##########===*+ *===#####@@@
....... @@@@@@@@@@@@@@@@@@@@@########===*+-. .+*=######@@@@@
61/86 Marz 2014
![Page 62: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/62.jpg)
Forth 9. Ein Minibetriebssystem
Z> FILE/CAT: FILENAME=s3.4thvariable dt 1 dt !: plot -1 do space loop 42 emit cr ;: iterate tuck negate dt @ * 10 / + dup dt @ * 10 / rot + ;: doit 1000 0 do iterate dup 4 / 40 + plot loop ;100 0 doit
Z> SUBSYSTEM/FORTH
Z80 CamelForth v1.01 25 Jan 199506-JUN-2012: Initial N8VEM port12-MAY-2013: Lower case conversion
loadEnter Filename: S3.4TH
**
**
**
**
**
62/86 Marz 2014
![Page 63: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/63.jpg)
BASIC 9. Ein Minibetriebssystem
10 X0=-2:X1=.5:Y0=-1:Y1=1:I1=2020 X2=.04:Y2=.1:D$=" -+*=#&"30 FOR Y=Y0 TO Y1 STEP Y240 FOR X=X0 TO X1 STEP X250 Z0=0:Z1=060 FOR I=1 TO I170 Z2=Z0*Z0-Z1*Z1:Z3=2*Z0*Z180 Z0=Z2+X:Z1=Z3+Y:IF Z0*Z0+Z1*Z1>4 THEN GOTO 10090 NEXT I100 A=SQR(Z0*Z0+Z1*Z1):I=INT(A)-7*INT(A/7)+1:PRINT MID$(D$,I,1);110 NEXT X:PRINT120 NEXT Yrun+++++++++++++###=====******++++++#==**+++=*++++++**+++**=+++++*++++++++++##=====******+++++++==***++++*++**+++ ++=++*=++**=+++++++++++#====******++++++++****+++++++=*+==*+ -++*+++**++**+++++++====******++++++++**++++++++++****++*++ *+**++++*++++++++==*****+++++++++++++++==*++=*+** + +=+ *-+**+++****+++++++++++++****+++++*+++**++ *+*+++**+++++++*+++*++**+==*++***+++=*- +++++++++#=**+++#**+**+++ ++ *=++++ *++++#=***+++**++++++=++ ++ +*++++++++=**+=+++=+= ++++ -- -- - - ++*=*+++++++++=**+=+++=+= +++++#=***+++**++++++=++ ++ +*+++++#=**+++#**+**+++ ++ *=++++ *++++**+++++++*+++*++**+==*++***+++=*- +++++++****+++++++++++++****+++++*+++**++ *+*+++++==*****+++++++++++++++==*++=*+** + +=+ *-+**++++++====******++++++++**++++++++++****++*++ *+**++++*++++++++++++#====******++++++++****+++++++=*+==*+ -++*+++**++**+++++++++++##=====******+++++++==***++++*++**+++ ++=++*=++**=+++Ok
63/86 Marz 2014
![Page 64: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/64.jpg)
Entwicklung der Codebasis 9. Ein Minibetriebssystem
Um einen kleinen Eindruck von der Komplexitat selbst eines soeinfachen Betriebssystemes zu geben, sind im folgenden die Anzahlvon Codezeilen (LOC) fur verschiedene Monitorversionenaufgelistet:
Version Datum LOC1 28.09.2011 2822 29.09.2011 4183 02.10.2011 7266 01.11.2011 10347 03.11.2011 13208 14.01.2012 245614 05.06.2013 3118
Die letzte Variante des Monitors beinhaltet noch einiges anFremdsoftware: 4037 Zeilen CAMEL-Forth, 690 ZeilenZ80-Disassembler sowie 4508 Zeilen BASIC-Interpreter; in Summealso 12353 Zeilen Assemblercode.
64/86 Marz 2014
![Page 65: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/65.jpg)
10. Minirechner
Minirechner
65/86 Marz 2014
![Page 66: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/66.jpg)
Ein Minirechner 10. Minirechner
Das Ganze hat jedoch einen Nachteil: Der Nachbau erforderteiniges an Erfahrung und Geduld und Muße. Das muss (ohneIDE-Interface) auch einfacher (und preiswerter) zu machen sein. . .
Grundlage ist der zu Beginn beschriebene Wire-Wrap-Prototyp, derseiner Busschnittstelle beraubt wird, um mit nur einer halbenEuropakarte an Flache auszukommen.
Damit bleibt zwar nur die serielle Schnittstelle als Interface,was aber fur Lehr- und Ausbildungszwecke ausreichend ist,solange der Monitor entsprechende Uploadmoglichkeitenbietet.
Der Rechner kann problemlos uber Stunden hinweg aus einemUSB-Akku betrieben werden, was fur Vorfuhrungenausgesprochen praktisch ist.
Die Gesamtkosten liegen bei unter 50 EUR.
66/86 Marz 2014
![Page 67: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/67.jpg)
Minirechner 10. Minirechner
67/86 Marz 2014
![Page 68: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/68.jpg)
Minirechner 10. Minirechner
68/86 Marz 2014
![Page 69: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/69.jpg)
Minirechner 10. Minirechner
69/86 Marz 2014
![Page 70: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/70.jpg)
11. Was gibt es noch?
Was gibt es noch?
70/86 Marz 2014
![Page 71: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/71.jpg)
Historisches 11. Was gibt es noch?
Naturlich kann man auch historische Lehr- und Lerncomputerverwenden, wobei hier jedoch der Spaß an der Entwicklung und amAufbau entfallt.
Schone Systeme gibt es auch als Replicas vonhttp://www.brielcomputers.com/, wenn man nichtsHistorisches erwerben mag oder kann. . .
Im Folgenden ein paar Beispiele:
71/86 Marz 2014
![Page 72: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/72.jpg)
MicroProfessor I 11. Was gibt es noch?
72/86 Marz 2014
![Page 73: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/73.jpg)
SEL Z80-Trainer 11. Was gibt es noch?
73/86 Marz 2014
![Page 74: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/74.jpg)
Profi 5E 11. Was gibt es noch?
74/86 Marz 2014
![Page 75: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/75.jpg)
HP 5036A 11. Was gibt es noch?
75/86 Marz 2014
![Page 76: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/76.jpg)
Micro-Kim von Briel 11. Was gibt es noch?
76/86 Marz 2014
![Page 77: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/77.jpg)
N8VEM 11. Was gibt es noch?
Anfang 2012 fand ich das N8VEM-Projekt von Andrew Lynch,2 indessen Zentrum ebenfalls ein Z80-Einplatinenrechner (mitECB-Bus-Interface) steht.
Die sehr professionell umgesetzte Leerplatine ist fur ca. 20 EUR beiAndrew Lynch erhaltlich – die Bestuckung bereitet keineSchwierigkeiten, so dass man als geubter Loter nach ca. 2 Stundeneinen funktionsfahigen Z80-Rechner sein eigen nennen darf:
2Siehe http://n8vem-sbc.pbworks.com, Stand 08.06.2013.77/86 Marz 2014
![Page 78: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/78.jpg)
N8VEM 11. Was gibt es noch?
78/86 Marz 2014
![Page 79: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/79.jpg)
IDE-Support 11. Was gibt es noch?
Die N8VEM-Karte beinhaltet einen 8255-Interfacebaustein, derdrei jeweils 8 Bit breite Ports zur Verfugung stellt. Diesen Bausteinnutzt die N8VEM-Community (unter anderem) alsIDE-Schnittstelle, indem das, was der zuvor beschriebeneIDE-Controller in Hardware macht, in Software erledigt wird (wasnaturlich deutlich langsamer als die zuvor beschriebeneHardwarelosung ist).
Als einzige Erweiterung wird ein einfacher Adapter mit einemsechsfach Inverter benotigt, fur den es eine vorgefertigte Platinegibt, der aber in Ermangelung einer solchen oder nagenderUngeduld auch schnell selbst implementiert werden kann:
79/86 Marz 2014
![Page 80: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/80.jpg)
N8VEM 11. Was gibt es noch?
80/86 Marz 2014
![Page 81: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/81.jpg)
N8VEM 11. Was gibt es noch?
81/86 Marz 2014
![Page 82: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/82.jpg)
Software und Gehause 11. Was gibt es noch?
Das Portieren des Monitors auf die N8VEM stellte sich als rechteinfach heraus – zu beachten waren im Wesentlichen die folgendenPunkte, was etwa einen Tag in Anspruch nahm:
Unterstutzung einer einfachen Bankswitching-Logik (1 MBEPROM, 512 kB RAM sind Standard).
Andere Adresslage der Controllerbausteine.
Vollig andere IDE-Implementation.
Nachdem alles funktionierte, wurde naturlich auch ein Gehause mitNetzteil benotigt, wobei zufallig ein altes DAT-Laufwerksgehausezur Verfugung stand:
82/86 Marz 2014
![Page 83: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/83.jpg)
N8VEM 11. Was gibt es noch?
83/86 Marz 2014
![Page 84: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/84.jpg)
N8VEM 11. Was gibt es noch?
84/86 Marz 2014
![Page 85: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/85.jpg)
12. Ausblick
Ausblick
85/86 Marz 2014
![Page 86: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/86.jpg)
Ausblick 12. Ausblick
. . . oder auch”lessons learned“:
Einen kleinen 8 oder 16 Bit Rechner wirklich selbst zu bauen,macht Spass und ist keine unuberwindbare Herausforderung.
Einen Monitor zu schreiben ist schon komplexer, einFilesystem, und sei es nur FAT16, zu implementieren, istbereits wirklich schwierig.
Vielleicht findet der Minirechner etwas weitere Verbreitung –Leerplatinen konnen bei ublichen Leiterplattenherstellern furca. 15 EUR/Stuck gefertigt werden, die Software ist vomAutor erhaltlich (selbstverstandlich kostenfrei).
86/86 Marz 2014
![Page 87: Mit Lötkolben, Wire-Wrap-Pistole und Assembler Z80 ... · Der Z80-Prozessor ist diesbez¨uglich ausgesprochen angenehm, da er spezielle IO-Instruktionen sowie entsprechende Steuersignale](https://reader033.vdocuments.pub/reader033/viewer/2022042213/5eb66b2a21500a306d2ec1e3/html5/thumbnails/87.jpg)
Gesucht. . . 12. Ausblick
Gesucht werden Mitstreiter! :-) Vor allem auf der Softwareseite:
Erweiterung des Filesystems, um auch Unterverzeichnisse undschreibenden Zugri! zu unterstutzen.
Implementation eines eigenen BASIC-Interpreters.
Implementation oder Portierung (SymbOS?) einesmultitaskingfahigen Betriebssystems fur den Z80.
Etc. . .
Der Autor kann unter folgender Mailadresse erreicht werden:
Vielen Dank fur Ihre Aufmerksamkeit!
87/86 Marz 2014