 |
Entscheidender Impuls war,
wie schon so oft, eine Problemklasse in die Arbeitsgruppen zu bringen, die
so vorher bei uns noch nicht gelöst worden ist. Und vor allem: auch
Programmierprofis müssen noch ein Betätigungsfeld vorfinden, auf welchem sie
sich wie alle anderen bewähren müssen. Entscheidend für die
Informatikprojekte ist aber auch der Ansatz, keine Projekte für den
Mülleimer zu produzieren. Wir schaffen uns kleine Werkzeuge, welche später
einmal das Leben leichter machen sollen. |
 |
|
 |
"The Mother of invention" - ach nee - das
war was anderes (nämlich Frank Zappa) - oder isses am Schluss doch nicht
so falsch? Fazit: fast alle Unis weltweit verwenden zur Grundausbildung
in der Steuerungstechnik neben diversen Microcontrollern sowie dem
Urvater der wichtigen Intel-Prozessoren (8086)
sehr gern den Z80-Prozessor. Er steht wie kaum ein anderes Bauelement
auf einem einsamen Podest: 40 Jahre alt und immer noch nicht müde -
viele Einchipcontroller sind an dieser Zeit an ihm vorbei - anschließend
aber sang- und klanglos untergegangen ;-) |

Z80-Prozessorsystem |
|
 |
Einige Aufgabenbereiche haben auch die
Programmierung externer Bausteine mit im Rahmen enthalten. So wird
eine Ampelsteuerung über den PIO realisiert, welcher die Anzeigesignale
zwischenspeichert, während die Zeitsteuerung von einem CTC via Interrupt
im Mode 2 vorgenommen wird. Den PIO programmieren wir hier nur im
einfachsten Fall: Byte-Ausgabe, da ist nichts weiter zu beachten - das
funktioniert mit einem einzigen Steuerbyte sofort - danach werden nur
noch Daten geschoben. |

Z80-PIO |
|
 |
Die Nutzung des CTC ist in den aufgezeigten
Beispielen schon komplexer - zwar könnte man auch im Interrupt-Mode 0
arbeiten, da nur eine einzige Interrupt-Service-Routine bedient werden
muss. Wir reizen einfach mal die Möglichkeiten dieses Bausteines aus und
zeigen, was in ihm steckt. Per Software werden die Zeitimpulse gestreckt
und durch Vergleich mit möglichen aktuellen Ampelzuständen wird der
nächste Zustand geschalten. Unser Lauflichtprojekt arbeit ganz ähnlich,
nur müssen sich hier die Zeitimpulse via Software in der Länge
regulieren lassen. |

Z80-CTC |
|
 |
Funktional ist dieser Baustein bereits
Geschichte - abgelöst durch hochfrequent arbeitende serielle Systeme
(... USB (... also der Universal
Serial BUS) kennt
zwischenzeitlich jeder).
Schnelle Datenübertagung großer und einheitlicher Blöcke von Daten im
Bereich des Hauptspeichers eines Rechners hat man bis dato mittels eines
DMA-Controllers erledigt - das übernimmt heute als Quasi-Funktion die
PIA innerhalb ders KIO-Bausteines. |

Z80-DMA |
|
 |
... und das ist nun die Zukunft des
modernen Z80-Systems - die CPU ist immer noch eine autonome Größe und
die Peripherie eines modernen Steuerrechners wird verpackt in modernster
Technologie (CMOS, was mit
Moos überhaupt nix zu tun hat!) aufgrund der heute möglichen
Höchst-Integration auf einen Chip zusammen geschoben. Der Clou dabei
ist, dass die Einzelbausteine immer noch genau so programmiert werden,
wie die ersten externen Bausteine. Kleiner Wermuthstropfen - das
Adresskonzept ist jetzt "starr" - für Neuentwicklungen kein Problem,
aber bestehende Betriebssysteme hier hinein-zuschreiben, ist sehr
komplex! |

Z80-KIO |
|
 |
Ohne genaue Kenntnis des hardwaremäßigen Aufbaus eines Computers läuft
gar nix. Grundsätzlich sind seit Ende der 40-er Jahre Computer relativ
identisch aufgebaut - verfügen über eine Zentraleinheit, Hauptspeicher,
ein Taktsystem. periphere Bausteine zur Ein- und Ausgabe und
transportieren Daten, Adressen sowie Steuersignale auf dafür
vorgesehenen Bussystemen. Die Dinger sind nur unendlich viel kleiner und
schneller geworden - nur darin stecken die unendlichen Möglichkeiten.
Außerdem wurde die Schiene Nummer zwei der Computertechnik wesentlich
weiter entwickelt: Die Software. Standbein Nummer drei wird gerade die
universelle Vernetzung informationsverabeitender Maschinen. |
... und so funktioniert ein Computer |
|
 |
Der LC-80 ist nun die heilige Kuh, auf
welcher all unsere Projekte gefahren werden sollen. Bestückt ist er
hardwaremäßig eher minimalistisch und doch ist alles vorhanden, um
kleine Steuerungsaufgaben zu lösen oder auf einem KByte RAM viel
Sinnvolles mit Operanden zu tun - zum Beispiel diese zu sortieren. Die
peripheren Bausteine sind direkt herausgeführt, was bedeutet, dass eine
wie auch immer geführte und realisierte Steuerung über
Verstärkerbausteine erst einmal von vom BUS-System abgegriffen und auf
notwendige Pegel angehoben werden muss. der LC-80 ist somit von vorn
herein nichts für Anfänger und für sinnvolle Programmierung ist durchaus
Hardwarekenntnis vonnöten. |

der LC-80 |
|
 |
Der Z80 ist unter allen Prozessoren ein
Urgestein - hat die Anfangsgründe der Microcompter mit gemacht und ist
immer noch präsent. Und wer ihn programmieren darf erkennt rasch: Wow -
das Teilchen hat Pfiff!
Und an eben dieser Stelle erinnern wir sehr gern daran, dass dieser Opa
zwischenzeitlich reichlich 35 Jahre Aktivität hinter sich hat. |

Z80-CPU |
|
 |
Ohne die Wirkung der Flags (im Sinne von:
wird ein bestimmter, genau definierter Zustand erreicht, dann setze ein
Signal) wäre ein logisches Programmieren gar nicht möglich. |

Flag-Wirkung
|
|
 |
Wo ein Prozessor, da sein Befehlssatz -
eine alte Weisheit aller Hardware-Ingenieure. Die Liste des betagten Z80
umfasst immerhin 156 Basisbefehle mit zusammen 796 Kombinationen. Wie
diese auseinanderzudividieren sind, zeigen wir hier ;-)
Neben den einzelnen Befehlen ist ihre Wirkung auf die Flag-Register von
enormer Bedeutung für die Abarbeitung von Programmen - auch ein
Hochsprachen Compiler oder Interpreter greift letztendlich auf diese
Logik zu. |

neue alphabetische
Befehlsliste |
|
 |
Einige der Aufgaben basieren auf einer
Zeitsteuerung. Eine solche arbeitet nur dann effizient, wenn die
Zzeitbasis von externen und extra dafür ausgelegten Bausteinen
bereitgestellt wird. Dies übernehmen die CTC-Basuteine des Z80-Systems.
Ihre Auswertung erfolgt Interrupt gesteuert. Ein zusätzlicher
logistischer Anspruch für den Software-Entwurf, denn hat man erst mal
die grundsätzliche Programmierung erfasst und freut sich gerade so
richtig darüber, dann kommt das! |

Z80-CPU-Interrupt |
|
 |
Der verwendete Mikrorechner LC-80 ist ein
Echtzeitsystem - was immer auch an Hard- und Software für diese Maschine
entwickelt und gebastelt wird - es gehorcht dem Grundtakt con ca. 900
KKz. Damit ist so zu sagen das Speed-Limit für diese Maschine fest
geschrieben - es geht nicht schneller, aber auch nicht langsamer. Wir
sind an der untersten Ebene eines Mikrorechners angelangt und müssen die
Konsequenzen der Echtzeitbedingunegn mit erfassen und im Algorithmus
berücksichtigen.
Sortieren kann für 100 Elemente schon richtig langsam werden, während
Impulse im Minutentakt ebenso schwer zu erzeugen sind - |

Echtzeitsysteme |
|
 |
Prozessrechentechnik heißt die Disziplin,
welche Rechnerstrukturen in Hard- und Software an der Maschine direkt im
Produktionsprozess sieht und analysiert oder verbessert. Hier geht es
nicht um den Computer, wie ihn Hinz & Kunz kennt - meist sind diese als
Bauelement in kleinen Einheiten untergebracht und der Trend geht zur
Vernetzung selbst solcher Komponenten. Im Endeffekt kann man gar nicht
mehr von einem Steuerrechner selbst sprechen - de werkeln mehrere
Rechner miteinander und heißen Controller. |

Prozessrechentechnik |
|
 |
Automatisierungstechnik ist insgesamt
älter, als man glaubt - so sind wohl die ersten steinzeitlichen
Tierfallen nach den Definitionen den Automaten zuzurechnen. Waren noch
recht einfach, aber das Prinzip war schon drin: etwas verändern, ohne
Zutun des Menschen. Heute sprechen wir von zwei Hauptrichtungen der
Automatisierung: Steuerung und Regelung. Jede hat zig Unterarten |

Automatisierungstechnik |
|
 |
Zufall ist auf einem Computer alles andere
als einfach zu erzeugen - noch dazu bei einer Maschine, welche wie der
LC-80 auf der untersten Programmierungs- und Hardware-Ebene läuft. Da
wird die Maschine nämlich mit jedem Programmstart faktisch selbst neu
gestartet - und das hat zur Folge, dass ich nach gleich vielen Schritten
am selben Programmpunkt angelangt und auch alle peripheren Bausteine den
gleichen Zustand haben. Ich bekomme also, wenn ich nunmehr so etwas wie
eine Zahlenfolge schreiben will immer die gleichen Werte. Wie man das
Problem trotzdem lösen kann, zeigen wir im Projekt Sortieren - dort
müssen nämlich zufällig generierte Zahlen sortiert werden. |

Computer und Zufall - ein schwieriges Feld |
|
 |
Eine ganz böse Falle für
Software-Entwickler ist die Möglichkeit, nicht an alle Extreme gedacht
zu haben, welche in der Praxis eintreten können. Programmiert wird ja in
der hermetischen Welt der Theorie im geschlossenen Kämmerchen - die
Praxis sieht anders aus. Da wird das Programm von Unwissenden genutzt
und Zustände erzeugt, die niemals hätten eintreten dürfen. Also,
Programmierer: immer auf das Schlimmste gefasst sein, sich freuen,
wenn's nicht ganz so schlimm kommt und den DAU nicht vergessen ;-) |

Worst-Case-Denken |
|
 |
Hier nun der Oberhammer - aber keine Angst
- das ist nicht für jeden - dennoch: man kann diese Schaltungen
erfolgreich aufbauen - einige davon gibt es sogar schon, weitere kommen
hinzu. Auf AG-Basis lässt sich da einiges machen ;-) |

von Profis für
Profis - Z80-Bau-Projekte |
|
 |
Entscheidender Impuls war,
wie schon so oft, eine Problemklasse in die Arbeitsgruppen zu bringen, die
so vorher bei uns noch nicht gelöst worden ist. Und vor allem: auch
Programmierprofis müssen noch ein Betätigungsfeld vorfinden, auf welchem sie
sich wie alle anderen bewähren müssen. Entscheidend für die
Informatikprojekte ist aber auch der Ansatz, keine Projekte für den
Mülleimer zu produzieren. Wir schaffen uns kleine Werkzeuge, welche später
einmal das Leben leichter machen sollen. |
 |
Es gelten folgende Regeln:
Aufgabenblock Gruppe I:
Gruppenbildung bis spätestens Donnerstag, den 21.11.2017 - dies ist bereits
Geschichte:
- Multiplizieren Sie die Inhalte zweier
Zahlen (maximal 8 Bit für jede Zahl) im Hexadezimalsystem miteinander und stellen Sie die
Faktoren sowie das
Ergebnis im Anzeige-Display geeignet dar!
- Finden Sie aus einer Anzahl von Bytes im Umfang von maximal 10 Byte-Gruppen (...
in den 8-Bit-Grenzen) ein vorgegebenes Muster - stellen Sie Ein- und Ausgabe sowie die Einzelschritte
im Display geeignet dar!
- die logische
NAND-Verknüpfung zweier 16-Bit-Hex-Zahlen ist geeignet auf dem Hauptspeicher
sowie auf dem Display darzustellen (maximal 2-er Teams)
- ermitteln Sie die kleinste von 10
Hexadezimalzahlen und stellen Sie das
Ergebnis im Anzeige-Display geeignet dar!
- Beschreiben Sie die bitweise Addition von zwei 8-Bit-Hexzahlen mit Carry
im Display und hinterlegen Sie die Zwischenwerte geeignet auf dem RAM
(erforderliche Formate sowie Bereiche definieren Sie selbst!)
- Erstellen Sie eine Stoppuhr im "... unter-Minuten-Bereich" - zeigen Sie
die Zeitschritte sekundengenau im Display an - ermitteln Sie die notwendigen
Zeitraster eigenständig!
- ... wie viele mal kommt eine definierbare Hexziffer im Bereich von 00H bis
FFH in einem gegebenen
Datenbestand vor - stellen Sie das Gesamtproblem geeignet in der Anzeige dar!?
- bestimmen Sie den Mittelwert einer gegebenen Menge von 8-Bit-Hexzahlen
(maximal 10) und stellen Sie die notwendigen Operationen geeignet im Display
dar - auch das Ergebnis ist HEX!
- Arbeitsgruppe 1: Jelito, Franz; Neugebauer, Felix -
Kurs I - Aufgabe 1 (Multiplizieren Sie die Inhalte zweier Zahlen (maximal 8
Bit für jede Zahl) im Hexadezimalsystem miteinander und stellen Sie die Faktoren
sowie das Ergebnis im Anzeige-Display geeignet dar!)
- Arbeitsgruppe 2:
Schulze, Lukas; Zinke, Maximilian - Kurs I -
Aufgabe 2 (bestimmen Sie den Mittelwert einer gegebenen Menge von
8-Bit-Hexzahlen (maximal 10) und stellen Sie die notwendigen Operationen
geeignet im Display dar - auch das Ergebnis ist HEX!)
- Arbeitsgruppe 3: Marhoffer, Antonio; Urban, Sebastian -
Kurs I - Aufgabe 3 (ermitteln
Sie die kleinste von 10 Hexadezimalzahlen und stellen Sie das Ergebnis im
Anzeige-Display geeignet dar!)
- Arbeitsgruppe 4:
Opitz, Jonas; Junghanns, Lennard -
Kurs I - Aufgabe 4 (die logische NAND-Verknüpfung zweier 16-Bit-Hex-Zahlen ist geeignet auf dem Hauptspeicher
sowie auf dem Display darzustellen)
- Arbeitsgruppe 5:
Laub, Áron; Homann, Alexander -
Kurs I - Aufgabe 5 (Finden Sie aus
einer Anzahl von Bytes im Umfang von maximal 10 Byte-Gruppen (... in den
8-Bit-Grenzen) ein vorgegebenes Muster - stellen Sie Ein- und Ausgabe sowie die
Einzelschritte im Display geeignet dar!)
- Arbeitsgruppe 6:
Schmidt, Luisa; Kalies, Lea -
Kurs I - Aufgabe 6 (... wie viele mal
kommt eine definierbare Hexziffer im Bereich von 00H bis FFH in einem gegebenen
Datenbestand vor - stellen Sie das Gesamtproblem geeignet in der Anzeige dar!?)
- Arbeitsgruppe 7:
Zimmer, Florian; Wiesner, Philipp - Kurs I - Aufgabe 8 (Beschreiben Sie die
bitweise Addition von zwei 8-Bit-Hexzahlen mit Carry im Display und
hinterlegen Sie die Zwischenwerte geeignet auf dem RAM (erforderliche Formate
sowie Bereiche definieren Sie selbst!)
- Arbeitsgruppe 8:
Schlesier, Moritz; Krieg, Richard; Kirchner, Charly
- Kurse I - Aufgabe 8 (Erstellen Sie eine Stoppuhr im "... unter-Minuten-Bereich" - zeigen
Sie die Zeitschritte sekundengenau im Display an - ermitteln Sie die notwendigen
Zeitraster eigenständig!)
Aufgabenblock Gruppe II:
Gruppenbildung bis spätestens Dienstag, den 23.11.2017 - dies ist bereits
Geschichte:
- Die logische NOR-Verknüpfung zweier 16-Bit-Hex-Zahlen ist
geeignet auf dem Hauptspeicher sowie auf dem Display darzustellen (maximal
2-er Teams)
- Zählen Sie im Sekundentakt dezimal ohne Stunden-Übertrag
nach oben - zeigen Sie die Zeitschritte im Display an!
- Eine maximal vierstellige Zahl ist dezimal einzugeben und
im Display von rechts beginnend dezimal einzutragen. Ist die Zahl negativ, so
ist sie maximal dreistellig - jede Stellenzahl bis 4 ist möglich - das MINUS
wird durch einen Bindestrich optisch abgebildet! Alle Tasten außer den Ziffern
0 bis 9, sowie PLUS und MINUS sind gesperrt - Quittungstaste ist "EX"
- zwei beliebige vierstellige Hexadezimalzahlen sind voneinander zu
subtrahieren - Minuend, Subtrahend sowie Differenz sind mittels geeigneter Verfahren im
Display darzustellen (auch negativ)!
- Die logische XOR-Verknüpfung zweier 16-Bit-Hex-Zahlen ist
geeignet auf dem Hauptspeicher sowie auf dem Display darzustellen (maximal 2-er Teams)
- ... wir bestimmen den Mittelwert der auf einem gegebenen
Speicherbereich im maximalen Umfang von 10 Ziffern (... jede Anzahl darunter im
positiven Bereich ist möglich)
- Erstellen Sie eine Liste der auf einem gegebenen
Speicherbereich enthaltenen 8-Bit-Hex-Zahlen und zeigen Sie diese im Display
geeignet an!
- Finden Sie die erst-, zweit- sowie drittgrößte Zahl einer
gegebenen Menge von mindestens zehn Hexadezimalzahlen und stellen Sie den
Gesamtumfang der Problemlösung im Display geeignet dar!
- Arbeitsgruppe 1:
Hempel, Lilli; Meier, Pia; Papsdorf, Florian - Kurs II - Aufgabe 1 (Eine
maximal vierstellige Zahl ist dezimal einzugeben und im Display von rechts
beginnend dezimal einzutragen. Ist die Zahl negativ, so ist sie maximal
dreistellig - jede Stellenzahl bis 4 ist möglich - das MINUS wird durch einen
Bindestrich optisch abgebildet! Alle Tasten außer den Ziffern 0 bis 9, sowie
PLUS und MINUS sind gesperrt - Quittungstaste ist "EX")
- Arbeitsgruppe 2:
Geißler, Anne-Sophie; Jungnickel, Tom -
Kurs II - Aufgabe 2 (Die logische NOR-Verknüpfung zweier 16-Bit-Hex-Zahlen ist
geeignet auf dem Hauptspeicher sowie auf dem Display darzustellen!)
- Arbeitsgruppe 3: Xuan, Thang Tran;
Panke, Emily - Kurs II - Aufgabe 3 (zwei beliebige vierstellige
Hexadezimalzahlen sind voneinander zu subtrahieren - Minuend, Subtrahend sowie
Differenz sind mittels geeigneter Verfahren im Display darzustellen (auch
negativ)!)
- Arbeitsgruppe 4:
Vogel, Maxi; Naumann, Tobias - Kurs II - Aufgabe 4 (Erstellen Sie eine Liste
der auf einem gegebenen Speicherbereich enthaltenen 8-Bit-Hex-Zahlen und
zeigen Sie diese im Display geeignet an!)
- Arbeitsgruppe 5: Mosch, Jennifer;
Köhler, Paul - Kurs II - Aufgabe 5 (Zählen Sie im Sekundentakt dezimal ohne
Stunden-Übertrag nach oben - zeigen Sie die Zeitschritte im Display an!)
- Arbeitsgruppe 6: Eschner, Laura;
Schmiel, Christian - Kurs II - Aufgabe 6 (... wie viele mal
kommt eine definierbare Hexziffer im Bereich von 00H bis FFH in einem gegebenen
Datenbestand vor - stellen Sie das Gesamtproblem geeignet in der Anzeige dar!)
Arbeitsgruppe 7: Fildebrandt, Justin; Blume, Niclas - Kurs II - Aufgabe
7 (Erstellen
Sie eine Liste der auf einem gegebenen Speicherbereich enthaltenen
8-Bit-Hex-Zahlen und zeigen Sie diese im Display geeignet an! (ich habe
18-Bit-Hex-Zahlen gemacht) Randbedingung: Die Anzahl der wiedergegeben Zahlen
soll in Adresse 202C eingetragen werden (der Standartwert beträgt 05).)
Arbeitsgruppe 8: Schwabe, Dennis; Klotsche, Jonas - Kurse II -
Aufgabe 8 (Finden Sie die erst-, zweit- sowie drittgrößte Zahl einer gegebenen
Menge von mindestens zehn Hexadezimalzahlen und stellen Sie den Gesamtumfang
der Problemlösung im Display geeignet dar!)
|
 |
Entscheidender Impuls war,
wie schon so oft, eine Problemklasse in die Arbeitsgruppen zu bringen, die
so vorher bei uns noch nicht gelöst worden ist. Und vor allem: auch
Programmierprofis müssen noch ein Betätigungsfeld vorfinden, auf welchem sie
sich wie alle anderen bewähren müssen. Entscheidend für die
Informatikprojekte ist aber auch der Ansatz, keine Projekte für den
Mülleimer zu produzieren. Wir schaffen uns kleine Werkzeuge, welche später
einmal das Leben leichter machen sollen. |
 |
|
 |
|
 |
Gruppe II - Aufgabe 1:
Eine maximal vierstellige Zahl ist dezimal einzugeben und im Display von
rechts beginnend dezimal einzutragen. Ist die Zahl negativ, so ist sie
maximal dreistellig - jede Stellenzahl bis 4 ist möglich - das MINUS wird
durch einen Bindestrich optisch abgebildet! Alle Tasten außer den Ziffern 0
bis 9, sowie PLUS und MINUS sind gesperrt - Quittungstaste ist "EX" |
Gruppe II - Aufgabe 2:
Die logische NOR-Verknüpfung zweier
16-Bit-Hex-Zahlen ist geeignet auf dem Hauptspeicher sowie auf dem Display
darzustellen! |
Gruppe II - Aufgabe 3:
zwei beliebige vierstellige Hexadezimalzahlen sind voneinander zu
subtrahieren - Minuend, Subtrahend sowie Differenz sind mittels geeigneter
Verfahren im Display darzustellen (auch negativ)! |
Gruppe II - Aufgabe 4:
Erstellen Sie eine Liste der auf einem gegebenen Speicherbereich enthaltenen
8-Bit-Hex-Zahlen und zeigen Sie diese im Display geeignet an! |

Hempel,
Lilli; Meier, Pia; Papsdorf, Florian
Download im
ASIDE-Format
Download im
HEX-Format
Download
als Z80-HEXDUMP-Listing
Software-Dokumentation |

Tom
Jungnickel, Anne-Sophie Geißler
Download im
ASIDE-Format
Download im
HEX-Format
Download
als Z80-HEXDUMP-Listing |

Xuan, Thang
Tran; Panke, Emily
Download im
ASIDE-Format
Download im
HEX-Format
Download
als Z80-HEXDUMP-Listing |

Vogel, Maxi;
Naumann, Tobias
Download im
ASIDE-Format
Download im
HEX-Format
Download
als Z80-HEXDUMP-Listing
Software-Dokumentation |
|
 |
|