Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
lc80:41_programme:lc802 [2015/12/27 11:44] – [Beschreibung] volkerp | lc80:41_programme:lc802 [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
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/ | ||
- | |||
- | 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 | ||
- | |||
- | |||