Startseite News   NDR-NKC Geräte Z80 Geräte 68000 Geräte 8088 Z80 Section Baugruppen ROM's Software 68000 Section Baugruppen ROM's PASCAL/S Software 8088 Section Baugruppen Downloads Bussysteme Stromversorgung Input / Output Grafikkarten Speicherkarten Massenspeicher Weitere Baugruppen Projekte Dokumentation Datenblätter Glossar Portraits Links Impressum |
Z80 GrundprogrammDas Grundprogramm dient als "Betriebssystem" für die ersten Experimente mit der CPU Z80 und stellt grundlegende Funktionen zur Manipulation des Speichers und zum Zugriff auf die Hardware zur Verfügung.Das Grundprogramm ist menügeführt und bietet die im Bild angegebenen Funktionen. Zur Eingabe von Programmen können einige Funktionen des Grundprogramms über einen symbolischen Namen angesprochen werden. So muss man sich nicht die Adressen merken, an denen die Funktionen im Grundprogramm stehen. Im Grundprogramm stehen Funktionen zur Ausgabe auf dem Bildschirm (Zeichenfunktionen und Textausgabe), zur Eingabe von Daten über die Tastatur, zur Bedienung der seriellen Schnittstelle sowie der Aufzeichnung von Daten auf einem Cassettenrekorder zur Verfügung. Diese Funktionen sollen im folgenden kurz beschrieben werden. UnterprogrammeSCHREITEDient zum Zeichnen von Linien in eine bestimmte Richtung. Die Länge der zu zeichnenden Linie wird im Registerpaar HL angegeben, die Richtung der Linie muss zuvor mit dem Befehl DREHE festgelegt werden. Negative Zahlenwerte in HL zeichnen entgegen der festgelegten Richtung. Es wird mit einer Auflösung von 512x512 Punkten gerechnet, die Zielposition wird mit 16-facher Genauigkeit gespeichert um eine Kompatiblität mit den Befehl SCHR16TEL zu erreichen.SCHR16TELDie Funktion ist ganz ähnlich dem Befehl SCHREITE. Im Gegensatz dazu muss bei der Angabe der Linienlänge im Registerpaar HL der 16-fache Wert angegeben werden, um eine Linie gleicher Länge zu erzeugen. Bei kleinen Schrittweiten wird so die Genauigkeit erhöht. Dadurch wird zum Beispiel das Zeichnen eines Kreises möglich.DREHEBestimmt die Zeichenrichtung für nachfolgende Ausführungen von SCHREITE oder SCHR16TEL. Der Winkel im Bereich von 0 bis 359 Grad wird als Integer-Zahl im HL-Registerpaar übergeben. Die Richtung wird von nördlicher Richtung entgegen dem Uhrzeigersinn eingestellt. Die Angabe negativer Drehwinkel ist möglich.HEBEDie Funktion benötigt keine Eingabeparameter. Nach Aufruf wird der "Schreibstift" abgehoben, so dass nachfolgende Aufrufe von SCHREITE oder SCHR16TEL keine Spur hinterlassen, die Schreibposition aber dennoch weiter bewegen.SENKESenkt den Schreibstift, so dass nachfolgende Aufrufe von SCHREITE oder SCHR16TEL eine sichtbare Ausgabe auf dem Bildschirm hinterlassen.SETSetzt den Schreibstift auf eine neue Position. Im HL-Register ist die X-Position im Bereich 0...511, im DE-Register die Y-Position im Bereich 0...511 und im BC-Register der Startwinkel in Grad anzugeben. Wenn der Schreibstift abgesenkt ist, erfolgt durch SET eine sichtbare Ausgabe auf dem Bildschirm.MOVETOErwirkt ein absolutes Positionieren des Schreibstiftes auf dem Bildschirm. Die X-Position und Y-Position sind wie bei SET in den Registern HL und DE anzugeben.DRAWTODient zum Zeichnen einer Linie zu einer absoluten Position. Die Zielposition in X-Richung und Y-Richtung sind in den Registern HL und DE anzugeben.SCHLEIFEDie Befehle SCHLEIFE und ENDSCHLEIFE bieten eine einfache Möglichkeit, Schleifen mit mehr als 256 Durchläufen umzusetzen. Die Anzahl der gewünschen Dürchläufe wird im Registerpaar HL angegeben. Nach Aufruf von SCHLEIFE werden die Rücksprungadresse und die Anzahl der Schleifendurchläufe auf dem Stack gespeichert. Das HL-Register kann danach normal weiterverwendet werden. Zu jedem Schleifenbefehl muss ein korrespondierender Befehl ENDSCHLEIFE vorhanden sein.ENDSCHLEIFEBildet den Abschluss einer mit dem Befehl SCHLEIFE begonnenen Programmschleife. Rücksprungadresse und Schleifenwert werden vom STACK gelesen und verarbeitet. Nach dem letzten Schleifendurchlauf ist der Stack wieder in seinem originalen Zustand. Die Funktion kann nur in Verbindung mit einem korrespondierenden Befehl SCHLEIFE eingesetzt werden.WRITEDient zur Ausgabe von Texten auf dem Bildschirm. Vor dem Aufruf muss das HL-Register mit einem Pointer auf einen im Speicher angelegten Textblock geladen werden. Im Textblock müssen vor dem Aufruf von WRITE Informationen über die Bildschirmposition und Schriftgröße sowie der auszugebende Text hinterlegt werden. Der Textblock hat einen festen Aufbau und wird weiter unten beschrieben.READDient zur Eingabe von Texten in einen Puffer im RAM. Im Registerpaar HL ist die Adresse eines Speicherbereiches anzugeben, an der Informationen hinterlegt sind und die eingegebenen Zeichen gespeichert werden können. Bei Übergabe einer 1 im Register C erfolgt die Eingabe in einem umrahmten Eingabefeld. Im Pufferblock müssen vor dem Aufruf Informationen zur Bildschirmposition, Schriftgröße und maximalen Länge hinterlegt werden. Der Aufbau des Pufferblockes wird weiter unten beschrieben.CIDient zur Eingabe eines Zeichens in das Register A. Die Funktion wartet so lange, bis tatsächlich eine Eingabe erfolgt ist. In Register A befindet sich nach Abschluss der ASCII-Code der gedrückten Taste.CSTSPrüft, ob ein Zeichen eingegeben wurde. Wenn ja, so wird der Wert 0FFH im Register A übergeben, sonst der Wert 00H. Falls ein Zeichen eingegeben wurde, kann dieses anschließend mit der Funktion CI eingelesen werden.RIEinlesen eines Zeichens von der CAS Baugruppe in das Register A Die Funktion wartet so lange, bis tatsächlich ein Zeichen eingelesen wurde.POAusgabe eines Zeichens vom Register C an die CAS Baugruppe.CLRDient zum Löschen aller 4 Bildschirmseiten der Baugruppe GDP.CLPGLöscht die aktuell eingestellte Schreibseite der GDP. Die Schreibseite muss für einen erfolgreichen Löschvorgang nicht sichtbar sein.WAITWertet, bis der Grafik-Prozessor auf der Baugruppe GDP mit der Abarbeitung eines Befehls fertig ist. Daanch können Werte auch direkt an die GDP-Register ausgegeben werden. Bei allen zuvor beschriebenen Funktionen muss WAIT nicht aufgerufen werden, da die Funktionen selbständig auf die Bereitschaft des Grafik-Prozessors warten.Weitere InformationenAufbau des Textblockes für WRITE
Aufbau des Pufferblockes für READ
|