Das Monitorprogramm des Lerncomputer LC80

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

Kommentieren