Innerhalb des Monitorprogramms des LC80 sind mehrere Programmteile als Unterprogramme ausgelegt und lassen sich deshalb durch den Anwender nutzen.
Nach Funktionsname sortiert
| Adresse | Name | Funktion |
|---|---|---|
| 08B7h | ADRSDP | Eintragen von 4 Ziffern im Adress-Anzeigespeicher |
| 08C3h | DADP | Eintragen von 2 Ziffern im Daten-Anzeigespeicher |
| 085Ah | DAK1 | Ansteuerung von Anzeige und Tastatur, bis eine Taste gedrückt wurde |
| 0883h | DAK2 | Einmalige Ansteuerung von Anzeige und Tastatur, Hauptanwendung ist die Ansteuerung der Anzeige |
| 08EAh | MONMUS | Spielen der Anfangsmusik |
| 08EEh | MUSIC | Spielen von Musik |
| 08CAh | ONESEG | Umwandlung einer Ziffer (untere 4 Bits eines Bytes) in den entsprechenden 7-Segment-Code |
| 0852h | RAMCHK | Test, ob ein Speicherplatz im RAM liegt |
| 0376h | SOUND | Ausgabe eines Tonsignals |
| 0370h | SOUND1K | Tonsignal 1 kHz |
| 0374h | SOUND2K | Tonsignal 2 kHz |
| 08D9h | TWOSEG | Umwandlung von 2 Ziffern (1 Byte) in den entsprechenden 7-Segment-Code und Ablegen im Speicher |
Nach Anfangsadresse sortiert
| Adresse | Name | Funktion |
|---|---|---|
| 0370h | SOUND1K | Tonsignal 1 kHz |
| 0374h | SOUND2K | Tonsignal 2 kHz |
| 0376h | SOUND | Ausgabe eines Tonsignals |
| 0852h | RAMCHK | Test, ob ein Speicherplatz im RAM liegt |
| 085Ah | DAK1 | Ansteuerung von Anzeige und Tastatur, bis eine Taste gedrückt wurde |
| 0883h | DAK2 | Einmalige Ansteuerung von Anzeige und Tastatur, Hauptanwendung ist die Ansteuerung der Anzeige |
| 08B7h | ADRSDP | Eintragen von 4 Ziffern im Adress-Anzeigespeicher |
| 08C3h | DADP | Eintragen von 2 Ziffern im Daten-Anzeigespeicher |
| 08CAh | ONESEG | Umwandlung einer Ziffer (untere 4 Bits eines Bytes) in den entsprechenden 7-Segment-Code |
| 08D9h | TWOSEG | Umwandlung von 2 Ziffern (1 Byte) in den entsprechenden 7-Segment-Code und Ablegen im Speicher |
| 08EAh | MONMUS | Spielen der Anfangsmusik |
| 08EEh | MUSIC | Spielen von Musik |
| DAK1 | |
| Adresse: | 085Ah |
| Funktion: | Ansteuerung von Anzeige und Tastatur, bis eine Taste gedrückt wurde |
| Eingabe: | IX, zeigt auf die niederwertigste Adresse des Speicherbereichs, der zu Anzeige gelangen soll. |
| Ausgabe: | CY = 1, wenn keine Taste gedrückt CY = 0, wenn eine Taste gedrückt (außer RES oder NMI). Der Funktionscode der Taste befindet sich im A-Register). |
| Register: | Die Inhalte der Register AF, AF', BC', DE' werden zerstört. |
| Beschreibung: | Jeder 7-Segment-Anzeige ist ein Byte im Speicher zugeordnet, insgesamt also 6 Byte 23F2h - Datenanzeige 23F3h - Datenanzeige 23F4h - Adressanzeige 23F5h - Adressanzeige 23F6h - Adressanzeige 23F7h - Adressanzeige |
| DAK2 | |
| Adresse: | 0883h |
| Funktion: | Einmalige Ansteuerung von Anzeige und Tastatur, alle 6 LED-Anzeigen werden nacheinander angesteuert (Ausführungszeit ca. 10 ms) |
| Eingabe: | IX, zeigt auf die niederwertigste Adresse des Speicherbereichs, der zu Anzeige gelangen soll. |
| Ausgabe: | Carry = 1, wenn keine Taste gedrückt Carry = 0, wenn eine Taste gedrückt (außer RES oder NMI). Der Funktionscode der Taste befindet sich im A-Register). |
| Register: | Die Inhalte der Register AF, AF', BC', DE' werden zerstört. |
| Beschreibung: | Jeder 7-Segment-Anzeige ist ein Byte im Speicher zugeordnet, insgesamt also 6 Byte 23F2h - Datenanzeige 23F3h - Datenanzeige 23F4h - Adressanzeige 23F5h - Adressanzeige 23F6h - Adressanzeige 23F7h - Adressanzeige |
| ONESEG | |
| Adresse: | 08CAh |
| Funktion: | Umwandlung einer Ziffer (untere 4 Bits eines Bytes) in den entsprechenden 7-Segment-Code |
| Eingabe: | Die rechten 4 Bit des A-Registers sind die umzuwandelne Hex-Zahl |
| Ausgabe: | Der entsprechende 7-Segment-Code steht im A-Register |
| Register: | Der Inhalt in AF wird zerstört. |
| TWOSEG | |
| Adresse: | 08D9h |
| Funktion: | Umwandlung des Inhalts des A-Registers in die entsprechenden 2 7-Segment-Codes. |
| Eingabe: | Die rechten 4 Bit des A-Registers sind die umzuwandelne Hex-Zahl |
| Ausgabe: | Der entsprechende 7-Segment-Code steht im A-Register |
| Register: | Die Inhalte der Register AF und HL werden zerstört. |
| ADRSDP | |
| Adresse: | 08B7h |
| Funktion: | Eintragen von 4 Ziffern im Adress-Anzeigespeicher |
| Eingabe: | |
| Ausgabe: | |
| Register: | Die Inhalte der Register AF und HL werden zerstört. |
| DADP | |
| Adresse: | 08C3h |
| Funktion: | Eintragen von 2 Ziffern im Daten-Anzeigespeicher |
| Eingabe: | |
| Ausgabe: | |
| Register: | Die Inhalte der Register AF und HL werden zerstört. |
| RAMCHK | |
| Adresse: | 0852h |
| Funktion: | Test ob ein Speicherplatz im RAM liegt |
| Eingabe: | HL gibt den Speicherplatz an. |
| Ausgabe: | Z-Flag = 1 wenn (HL) RAM ist |
| Register: | Der Inhalt in AF wird zerstört. |
| SOUND | |
| Adresse: | 0376h |
| Funktion: | Tonsignal für Lautsprecher |
| Eingabe: | Der Inhalt des Registers C gibt die Tonfrequenz an. Der Inhalt des Registers HL gibt die Anzahl der Takte an; Höchstzahl 32768 Takte |
| Ausgabe: | --- |
| Register: | Die Inhalte der Register AF, BC, DE, HL werden zerstört. |
| SOUND1K | |
| Adresse: | 0370h |
| Funktion: | Ausgabe eines Tonsignals von 1 kHz |
| Eingabe: | Der Inhalt des Registers HL gibt die Anzahl der Takte an; Höchstzahl 32768 Takte |
| Ausgabe: | --- |
| Register: | Die Inhalte der Register AF, BC, DE, HL werden zerstört. |
| SOUND2K | |
| Adresse: | 0374h |
| Funktion: | Ausgabe eines Tonsignals von 2 kHz |
| Eingabe: | Der Inhalt des Registers HL gibt die Anzahl der Takte an; Höchstzahl 32768 Takte |
| Ausgabe: | --- |
| Register: | Die Inhalte der Register AF, BC, DE, HL werden zerstört. |
| MUSIC | |
| Adresse: | 08EEh |
| Funktion: | Spielen von Musik |
| Eingabe: | Im Register IY steht die Startadresse des Musikstückes |
| Ausgabe: | --- |
| Register: | Die Inhalte der Register IX, AF, BC, DE , HL werden zerstört. |
| Beschreibung: | Das Register IY zeigt auf den Anfang des Speicherbereiches in dem die codierten Noten stehen. Jeweils 2 Byte repräsentieren eine Note. Das erste Byte gibt die Tonhöhe, das zweite Byte die Tonlänge an. Hat das erste Byte den Wert 80h, wird das Musikprogramm verlassen, bei 40h wird das Programm von vorn begonnen, bei 20h wird eine Pause mit der durch das zweite Byte angegebenen Länge gemacht. Als Werte für die Tonhöhe sind die Zahlen 0h bis1Fh erlaubt. Bezogen auf eine Taktfrequenz von 900 kHz entsprechen aufeinanderfolgende Zahlen jeweils einen Halbtonschritt, wobei der tiefste Ton (00h) etwa den Ton ais entspricht. Die Tonlänge........... |
| MONMUS | |
| Adresse: | 08EAh |
| Funktion: | Spielen der Anfangsmusik "POPCORN" |
| Eingabe: | --- |
| Ausgabe: | --- |
| Register: | Die Inhalte der Register IX, IY, AF, BC, DE und HL werden zerstört. |
| Wichtiger Hinweis:
Ist Ihr LC80 nicht mit zwei 1 kByte-ROM's U505, sondern mit einem 2 kByte-EPROM (z.b. K573 RF5 oder U2716) bestückt, so ändern sich die Startadressen von einigen nachfolgend aufgeführten Unterprogramme. Bitte beachten Sie diese auch bei Verwendung der in der Dokumentation aufgeführten Programmbeispiele. |
| Name | Adresse 2 x U505 | Adresse 1 x U2716 |
|---|---|---|
| DADP | 08C3h | 043Ch |
| DAK1 | 085Ah | 045Ah |
| DAK2 | 0883h | 0483h |
Quelle: LC80-Bedienungsanleitung