Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Vorhergehende Überarbeitung | |||
| — | lc80:programme:lc802 [2022/10/28 12:59] (aktuell) – [U2716/2732 ADR #0B00] volkerp | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Monitor LC 80.2 ====== | ||
| + | |||
| + | Monitor LC80.2 von Eckart Buschendorf/ | ||
| + | Umfang 4K, 2x 2K-Eproms (D4 und D5) | ||
| + | |||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== Beschreibung ===== | ||
| + | |||
| + | Das Betriebs-System LC 80.2 ist in Bezug auf die in der Bedienungsanleitung | ||
| + | erwähnten Unterprogramme voll kompatibel. | ||
| + | |||
| + | **Das geänderte Betriebssystem benötigt 4k RAM**. (Umbauhinweise s. [[lc80: | ||
| + | 1k starten. Wegen des negativen | ||
| + | jetzt mit NMI in die Registeranzeige und von dort mit der ADR-Taste ins | ||
| + | Betriebsystem gelangen. | ||
| + | |||
| + | Der RAM- und ROM-Check wird aus Zeitgründen nur noch beim Einschalten | ||
| + | durchgeführt. RESET setzt dann nur noch den Stack neu und geht in die | ||
| + | Grundanzeige. Aus Gründen der Speicherplatzeinsparung wurde die Anfangsmelodie | ||
| + | verkürzt | ||
| + | |||
| + | Die RST-Adr. wurden im ROM festgelegt, um häufig benutzte | ||
| + | nutzen. Gleichzeitig werden | ||
| + | |||
| + | RST 08 #CF DAK 1 (zerstört AF und Hintergrundreg.) | ||
| + | RST 10 #D7 | ||
| + | RST 18 #DF | ||
| + | RST 30 #F7 DAK 2 (zerstört AF und Hintergrundreg.) | ||
| + | |||
| + | Die folgenden beiden RST dürfen nur symmetrisch (wie PUSH und POP) benutzt | ||
| + | werden! | ||
| + | |||
| + | RST 20 #E7 | ||
| + | RST 28 #EF | ||
| + | |||
| + | ==== Starttabelle | ||
| + | |||
| + | Die ziemlich überflüssige Anzeige RST 38 wurde in eine Art Inhaltsverzeichnis | ||
| + | abgeändert, | ||
| + | (Anzeige: " | ||
| + | |||
| + | RST 38 #FF | ||
| + | |||
| + | Taste | ||
| + | 0 #2400 | ||
| + | 1 #0B00 U 2716/2732 | ||
| + | 2 #0C00 Tape | ||
| + | 3 #0D00 | ||
| + | 4 #0C90 | ||
| + | 5 #1700 | ||
| + | 6 #1300 | ||
| + | 7 #0FD0 1 kHz-Dauerton | ||
| + | 8 #0B80 Shift | ||
| + | 9 #0D50 | ||
| + | A #1500 | ||
| + | B #5700 | ||
| + | C #2000 | ||
| + | D #2100 - " - #2100 | ||
| + | E #2200 - " - #2200 | ||
| + | F #2300 - " - #2300 | ||
| + | + #0BC0 | ||
| + | - | ||
| + | DAT | ||
| + | ADR #0000 | ||
| + | |||
| + | Ein Druck auf die angegebene Taste in dieser Tabelle während der | ||
| + | Anzeige " | ||
| + | in RAM oder ROM. Die Startadresstabelle kann in jedem Nutzer-ROM | ||
| + | ab #800 neu vereinbart werden. Als Beispiel | ||
| + | z.Z. gängige ROM mit den im folgenden | ||
| + | angegeben. | ||
| + | |||
| + | |||
| + | ==== Eingabe-Routine ==== | ||
| + | |||
| + | Das EPROM auf #800 enthält eine Routine zur Eingabe, die universell genutzt werden kann. | ||
| + | |||
| + | Beispiel: | ||
| + | |||
| + | LD | ||
| + | LD | ||
| + | LD | ||
| + | LD | ||
| + | CALL #0ABA ; | ||
| + | |||
| + | CALL #0AB5 erlaubt die Eingabe einer 4-stelligen HEX-Zahl in einen mit HL adressierten Puffer. | ||
| + | |||
| + | |||
| + | ==== NMI - Routine ==== | ||
| + | |||
| + | Ebenso wurde die NMI-Taste sinnvoller belegt. Beim Einschalten | ||
| + | oder RAM löschen wird auf der Adresse #2340 ein Sprung zur neuen | ||
| + | NMI-Routine ab #031B eingetragen. Damit bleibt eine vom Nutzer | ||
| + | erwünschte Änderung möglich. | ||
| + | |||
| + | Nach Drücken der NMI-Taste befindet man sich in einer Auswahlschleife, | ||
| + | |||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | 1 Byte zu höheren Adressen verschoben, um Platz | ||
| + | zu schaffen und 00 eingetragen. | ||
| + | " | ||
| + | scht und der Rest des RAM um 1 Byte zu niede- | ||
| + | ren Adressen verschoben. | ||
| + | !ACHTUNG! | ||
| + | | ||
| + | " | ||
| + | | ||
| + | | ||
| + | dem NMI gedrückt wurde und Eintrag des Ergeb- | ||
| + | | ||
| + | |||
| + | ==== U2716/ | ||
| + | |||
| + | Eprommer-Software für [[lc80: | ||
| + | |||
| + | Der Einsprung erfolgt aus der " | ||
| + | Danach wird der Typ angezeigt. | ||
| + | |||
| + | Taste Anzeige | ||
| + | A rA 2400 Eingabe des Speicheranfangs (RAM od. ROM) | ||
| + | E EP 0000 Eingabe der ersten EPROM-Adresse | ||
| + | (#0000 - #07FF bei U 2716) | ||
| + | (#0000 - #0FFF bei U 2732) | ||
| + | B bY 0800 Eingabe der Anzahl der Bytes | ||
| + | F Funct. | ||
| + | !-0 | ||
| + | !-1 | ||
| + | !-2 | ||
| + | !-3 | ||
| + | !-4 | ||
| + | !-C | ||
| + | !-EX Start der Funktion/ | ||
| + | Rücksprung in die Grundanzeige (U 2716/2732) | ||
| + | ST Abbruch von " | ||
| + | oder " | ||
| + | ADR Start Rücksprung in das Betriebssystem | ||
| + | |||
| + | |||
| + | ==== Tape ADR #0C00 ==== | ||
| + | |||
| + | Mit " | ||
| + | und wurde um einen Programmnamen erweitert, der, wenn nicht eingelesen wird, wie beim LC-80 angezeigt wird und so eine Orientierung auf der Kassette ermöglicht. (Anzeige " | ||
| + | |||
| + | Taste | ||
| + | A A - XXXX Eingabe Anf.-Adr. | ||
| + | E E - XXXX Eingabe End.-Adr. | ||
| + | F F - XXXX Eingabe File-Name | ||
| + | ST out | ||
| + | LD in Einlesen von Band | ||
| + | EX Start nach " | ||
| + | Eingabe/ | ||
| + | |||
| + | ==== Breakpoint | ||
| + | |||
| + | |||
| + | Mit " | ||
| + | Dieses Programm arbeitet ein USER-Programm von der Anfangsadresse (A-XXXX) bis zum Breakpoint | ||
| + | und springt dann zur Registeranzeige. Dabei ist folgendes zu beachten: | ||
| + | |||
| + | * Die Endadresse (Breakpoint) | ||
| + | | ||
| + | * Die Abarbeitung verläuft 100* langsamer, daraus | ||
| + | * Es wird der Hilfsstack (# | ||
| + | * In #23EA wird der Status gespeichert. #00 bedeutet, daß kein Stepbetrieb von Hand möglich ist. Falls Breakpoint mit RESET abgebrochen wird, muß in diese Zelle #FF eingetragen werden. | ||
| + | |||
| + | Taste | ||
| + | EX A - XXXX Anf.-Adr. des zu testenden Programms | ||
| + | EX E - XXXX letzte Adr., die selbständig | ||
| + | abgearbeitet wird (Haltepunkt) | ||
| + | eingeben | ||
| + | |||
| + | |||
| + | |||
| + | ==== Taktzahlermittlung | ||
| + | |||
| + | Ab Adresse #2000 werden Befehle oder Befehlsfolgen eingetragen, | ||
| + | deren Taktzahl ermittelt werden sollen, und mit RET (#C9) abgeschlossen. | ||
| + | " | ||
| + | muß kleiner als 65535 sein. Hardwareseitig | ||
| + | | ||
| + | ZC/TO 0 - C/TRG 1 A08 - B12 | ||
| + | ZC/TO 1 - C/TRG 2 A09 - A11 | ||
| + | ZC/TO 2 - C/TRG 3 A10 - A12 | ||
| + | |||
| + | |||
| + | |||
| + | ==== Speicherbereich verschieben | ||
| + | |||
| + | |||
| + | Das Programm SHIFT (Anzeige " | ||
| + | |||
| + | Taste | ||
| + | bel. A-XXXX | ||
| + | EX E-XXXX | ||
| + | Ex bYXXXX | ||
| + | EX StArt | ||
| + | |||
| + | |||
| + | ==== Code-Suchen (1,2 oder 3 Byte) ADR #0D50 ==== | ||
| + | |||
| + | Dieses Programm sucht ab einer Anfangsadresse | ||
| + | oder einer Bytefolge bis zu 3 Byte und kehrt beim letzten | ||
| + | der ersten gefundenen Code (-folge) in die Adressanzeige zurück. | ||
| + | |||
| + | Taste | ||
| + | bel. A-XXXX | ||
| + | | ||
| + | EX bY1 XX erstes Byte eingeben | ||
| + | " | ||
| + | " | ||
| + | |||
| + | |||
| + | Nach Eingabe des 1., 2. oder 3. Byte wird die Suche mit " | ||
| + | Bytefolge nicht vorhanden ist. | ||
| + | |||
| + | ==== Checksummenbildung | ||
| + | |||
| + | Mit der Taste " | ||
| + | erfolgt eine einfache Addition. Mit diesem | ||
| + | bei [nderungen des Betriebssystems das LOW-Byte | ||
| + | ermitteln, die in der Speicherzelle #7FF abgelegt sein muß, um | ||
| + | den ROM-Check positiv zu bestehen. (Anf.-adr. #0000, #7FF Bytes) | ||
| + | |||
| + | Taste | ||
| + | EX A-XXXX | ||
| + | EX bYXXXX | ||
| + | EX XXXX | ||
| + | |||
| + | |||
| + | |||
| + | ==== System - RAM ==== | ||
| + | |||
| + | ^Adresse | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |# | ||
| + | |||
| + | ===== Unterschiede zum Original-Monitor ===== | ||
| + | |||
| + | (2K-Eprom-Variante) | ||
| + | |||
| + | ^Bereich ^Inhalt Original-Monitor| | ||
| + | |0000-011A |Start, | ||
| + | |0224 |ERROR, | ||
| + | |029C-02A7 |INI| | ||
| + | |031B-035D |INIDIP| | ||
| + | |03E7-03FF |im Original-Monitor freier Bereich| | ||
| + | |0574-0588 |DISP1| | ||
| + | |059F-05A4 |DISP6| | ||
| + | |0617-068F |SONG| | ||
| + | |06D6-06D7 |DAK, | ||
| + | |0788-07A4 |im Original-Monitor freier Bereich, STEPUP| | ||
| + | |07E8-07FF |im Original-Monitor freier Bereich| | ||
| + | |||
| + | 2. Eprom 0800-0FFF komplett neu. | ||
| + | |||
| + | Unterschied Assembler-Quelle lc80-2 zum Binary lc80.com: im Original-Binary 0649h: 0bh statt 0ah | ||
| + | |||
| + | |||