Nächste Überarbeitung | Vorhergehende Überarbeitung |
z9001:software:os:os12 [2013/05/12 07:26] – angelegt volkerp | z9001:software:os:os12 [2013/06/11 13:37] (aktuell) – volkerp |
---|
<WRAP lo> | <WRAP lo> |
<code> | <code> |
AS V1.42 Beta [Bld 82] - source file os.asm - page 1 - 3/20/2012 20:42:07 | AS V1.42 Beta [Bld 88] - source file os.asm - page 1 - 6/11/2013 15:15:29 |
| |
| |
1/ 0 : ;------------------------------------------------------------------------------ | 1/ 0 : page 0 |
2/ 0 : ; 20.05.2004 volker pohlers; letzte Änderung 23.12.2011 | 2/ 0 : |
3/ 0 : ; basierend auf der PDF-Datei von U. Zander habe ich das Listing korrigiert | 3/ 0 : ;------------------------------------------------------------------------------ |
4/ 0 : ; und an den Arnold-Assembler angepasst. Das erzeugte Binärfile entspricht | 4/ 0 : ; 20.05.2004 volker pohlers; letzte Änderung 12.05.2013 |
5/ 0 : ; zu 100% dem BIOS des Z9001. | 5/ 0 : ; basierend auf der PDF-Datei von U. Zander habe ich das Listing korrigiert |
6/ 0 : ; Lediglich die Meldungstexte wurden an die Schreibweise des BIOS des Z9001 | 6/ 0 : ; und an den Arnold-Assembler angepasst. Das erzeugte Binärfile entspricht |
7/ 0 : ; angepasst (orig. Zeilen 2225-2252). | 7/ 0 : ; zu 100% dem BIOS des Z9001. |
8/ 0 : ; | 8/ 0 : ; Lediglich die Meldungstexte wurden an die Schreibweise des BIOS des Z9001 |
9/ 0 : ; vp 2007: Einbindung aller bekannten Versionen des OS | 9/ 0 : ; angepasst (orig. Zeilen 2225-2252). |
10/ 0 : ; vp 2007: Einbinden der ROMBANK-Erweiterung von U.Zander | 10/ 0 : ; |
11/ 0 : ; vp 2007: erweiterte Dokumentation im Listing | 11/ 0 : ; vp 2007: Einbindung aller bekannten Versionen des OS |
12/ 0 : ; vp 19.10.2009: OS 1.1 ergänzt | 12/ 0 : ; vp 2007: Einbinden der ROMBANK-Erweiterung von U.Zander |
13/ 0 : ; vp 21.01.2011: neu strukturiert, einzelne Patches sind optional wählbar | 13/ 0 : ; vp 2007: erweiterte Dokumentation im Listing |
14/ 0 : ; neu eorpatch, krtgrafik, extcio | 14/ 0 : ; vp 19.10.2009: OS 1.1 ergänzt |
15/ 0 : ; vp 24.01.2011 neuer Patch von U.Zander f. SHLOC | 15/ 0 : ; vp 21.01.2011: neu strukturiert, einzelne Patches sind optional wählbar |
16/ 0 : ;------------------------------------------------------------------------------ | 16/ 0 : ; neu eorpatch, krtgrafik |
17/ 0 : ; extcio: Um SD-Karten/RAM-Disk etc. einfach nutzbar zu machen, wurden die | 17/ 0 : ; vp 24.01.2011 neuer Patch von U.Zander f. SHLOC |
18/ 0 : ; Routinen zum Blocklesen und -schreiben als Erweiterung verfügbar gemacht. | 18/ 0 : ; vp 12.05.2013 Kommentare f. Kassettenroutinen erweitert |
19/ 0 : ; auf Adr. 58h und und 5Ah werdne die Adressen der externen Routinen f. MAREK | 19/ 0 : ;------------------------------------------------------------------------------ |
20/ 0 : ; und KARAM erwartet. Eine solche Erweiterung wird erkannt und genutzt, wenn sich | 20/ 0 : |
21/ 0 : ; auf der Zieladresse der Wert 3AH befindet (das ist der Befehl "LD A,(nn)") | 21/ 0 : ; OS-Version 1.1, 1.2 oder 1.3 |
22/ 0 : ;------------------------------------------------------------------------------ | 22/ 0 : =$C osver equ 12 ;11,12,13 |
23/ 0 : | 23/ 0 : |
24/ 0 : ; OS-Version 1.1, 1.2 oder 1.3 | 24/ 0 : ; Systemversion, setzt sich aus Einzelpatches zusammen |
25/ 0 : =$C osver equ 12 ;11,12,13 | 25/ 0 : =os sysver equ "os" ;os,rb21,rb,vp |
26/ 0 : | 26/ 0 : |
27/ 0 : ; Systemversion, setzt sich aus Einzelpatches zusammen | 27/ 0 : =>TRUE if sysver == "os" |
28/ 0 : =os sysver equ "os" ;os,rb21,rb,vp | 28/ 0 : ;Standard-OS, keine Patches |
29/ 0 : | 29/ 0 : =$0 tastneu equ 0 ; geänderte Tastaturabfrage Version RB21 |
30/ 0 : =>TRUE if sysver == "os" | 30/ 0 : =$0 shlocFlg equ 0 ; Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag |
31/ 0 : ;Standard-OS, keine Patches | 31/ 0 : ;; nur wenn tastneu = 1, können die nachfolgenden Patches genutzt werden |
32/ 0 : =$0 tastneu equ 0 ; geänderte Tastaturabfrage Version RB21 | 32/ 0 : =$0 farb16 equ 0 ; 16-Farben-Unterstützung |
33/ 0 : =$0 shlocFlg equ 0 ; Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag | 33/ 0 : =$0 rombank equ 0 ; ROM-Bank durchsuchen |
34/ 0 : ;; nur wenn tastneu = 1, können die nachfolgenden Patches genutzt werden | 34/ 0 : =$0 rommenu equ 0 ; Option f. ROM-Bank: autom. Aufruf von "H" |
35/ 0 : =$0 farb16 equ 0 ; 16-Farben-Unterstützung | 35/ 0 : =$0 eorpatch equ 0 ; Geänderte Speicherinitialisierung wg. abschaltbarer Module |
36/ 0 : =$0 rombank equ 0 ; ROM-Bank durchsuchen | 36/ 0 : =$0 krtgrafik equ 0 ; bei interner Zeichenausgabe KRT abschalten |
37/ 0 : =$0 rommenu equ 0 ; Option f. ROM-Bank: autom. Aufruf von "H" | 37/ 0 : ;geänderte Begrüßung 16 Zeichen, wenn leer, dann orig. "robotron Z 9001" |
38/ 0 : =$0 eorpatch equ 0 ; Geänderte Speicherinitialisierung wg. abschaltbarer Module | 38/ 0 : ;resmsg equ "robotron Z 9001" |
39/ 0 : =$0 krtgrafik equ 0 ; bei interner Zeichenausgabe KRT abschalten | 39/ 0 : |
40/ 0 : =$0 extcio equ 0 ; ext. Kassettenroutinen ermöglichen | 40/ 0 : =>FALSE elseif sysver == "rb21" |
41/ 0 : ;geänderte Begrüßung 16 Zeichen, wenn leer, dann orig. "robotron Z 9001" | 41/ 0 : ; Version U. Zander RB21 |
42/ 0 : ;resmsg equ "robotron Z 9001" | 42/ 0 : tastneu equ 1 ; geänderte Tastaturabfrage Version RB21 |
43/ 0 : | 43/ 0 : shlocFlg equ 0 ; Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag |
44/ 0 : =>FALSE elseif sysver == "rb21" | 44/ 0 : farb16 equ 1 ; 16-Farben-Unterstützung |
45/ 0 : ; Version U. Zander RB21 | 45/ 0 : rombank equ 1 ; ROM-Bank durchsuchen |
46/ 0 : tastneu equ 1 ; geänderte Tastaturabfrage Version RB21 | 46/ 0 : rommenu equ 1 ; Option f. ROM-Bank: autom. Aufruf von "H" |
47/ 0 : shlocFlg equ 0 ; Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag | 47/ 0 : eorpatch equ 0 ; Geänderte Speicherinitialisierung wg. abschaltbarer Module |
48/ 0 : farb16 equ 1 ; 16-Farben-Unterstützung | 48/ 0 : krtgrafik equ 0 ; bei interner Zeichenausgabe KRT abschalten |
49/ 0 : rombank equ 1 ; ROM-Bank durchsuchen | 49/ 0 : resmsg equ " Z-80 COMPUTER Ë" ; U. Zander f. RB21 |
50/ 0 : rommenu equ 1 ; Option f. ROM-Bank: autom. Aufruf von "H" | 50/ 0 : |
51/ 0 : eorpatch equ 0 ; Geänderte Speicherinitialisierung wg. abschaltbarer Module | 51/ 0 : =>FALSE elseif sysver == "rb" |
52/ 0 : krtgrafik equ 0 ; bei interner Zeichenausgabe KRT abschalten | 52/ 0 : ; Version U. Zander farb16neu 24.01.2011 |
53/ 0 : extcio equ 0 ; ext. Kassettenroutinen ermöglichen | 53/ 0 : ; Änderung gegenüber tastneu: Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag |
54/ 0 : resmsg equ " Z-80 COMPUTER Ë" ; U. Zander f. RB21 | 54/ 0 : tastneu equ 1 ; geänderte Tastaturabfrage Version RB21 |
55/ 0 : | 55/ 0 : shlocFlg equ 1 ; Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag |
56/ 0 : =>FALSE elseif sysver == "rb" | 56/ 0 : farb16 equ 1 ; 16-Farben-Unterstützung |
57/ 0 : ; Version U. Zander farb16neu 24.01.2011 | 57/ 0 : rombank equ 1 ; ROM-Bank durchsuchen |
58/ 0 : ; Änderung gegenüber tastneu: Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag | 58/ 0 : rommenu equ 0 ; Option f. ROM-Bank: autom. Aufruf von "H" |
59/ 0 : tastneu equ 1 ; geänderte Tastaturabfrage Version RB21 | 59/ 0 : eorpatch equ 1 ; Geänderte Speicherinitialisierung wg. abschaltbarer Module |
60/ 0 : shlocFlg equ 1 ; Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag | 60/ 0 : krtgrafik equ 0 ; bei interner Zeichenausgabe KRT abschalten |
AS V1.42 Beta [Bld 82] - source file os.asm - page 2 - 3/20/2012 20:42:07 | 61/ 0 : resmsg equ "robotron Z9001 Ë" ; farb16 |
| 62/ 0 : |
| 63/ 0 : =>FALSE elseif sysver == "vp" |
61/ 0 : farb16 equ 1 ; 16-Farben-Unterstützung | 64/ 0 : ; Version VP |
62/ 0 : rombank equ 1 ; ROM-Bank durchsuchen | 65/ 0 : tastneu equ 1 ; geänderte Tastaturabfrage Version RB21 |
63/ 0 : rommenu equ 0 ; Option f. ROM-Bank: autom. Aufruf von "H" | 66/ 0 : shlocFlg equ 1 ; Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag |
64/ 0 : eorpatch equ 1 ; Geänderte Speicherinitialisierung wg. abschaltbarer Module | 67/ 0 : farb16 equ 1 ; 16-Farben-Unterstützung |
65/ 0 : krtgrafik equ 0 ; bei interner Zeichenausgabe KRT abschalten | 68/ 0 : rombank equ 0 ; ROM-Bank durchsuchen |
66/ 0 : extcio equ 0 ; ext. Kassettenroutinen ermöglichen | 69/ 0 : rommenu equ 0 ; Option f. ROM-Bank: autom. Aufruf von "H" |
67/ 0 : resmsg equ "robotron Z9001 Ë" ; farb16 | 70/ 0 : eorpatch equ 1 ; Geänderte Speicherinitialisierung wg. abschaltbarer Module |
68/ 0 : | 71/ 0 : krtgrafik equ 1 ; bei interner Zeichenausgabe KRT abschalten |
69/ 0 : =>FALSE elseif sysver == "vp" | 72/ 0 : resmsg equ "Z9001 kompakt " ; VP |
70/ 0 : ; Version VP | 73/ 0 : [27] endif |
71/ 0 : tastneu equ 1 ; geänderte Tastaturabfrage Version RB21 | 74/ 0 : |
72/ 0 : shlocFlg equ 1 ; Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag | 75/ 0 : ;PN MONITOR 16.08.85 |
73/ 0 : farb16 equ 1 ; 16-Farben-Unterstützung | 76/ 0 : ; |
74/ 0 : rombank equ 0 ; ROM-Bank durchsuchen | 77/ 0 : ;MONITOR FUER SERIENGERAET 1985 |
75/ 0 : rommenu equ 0 ; Option f. ROM-Bank: autom. Aufruf von "H" | 78/ 0 : ;V 01.02. |
76/ 0 : eorpatch equ 1 ; Geänderte Speicherinitialisierung wg. abschaltbarer Module | 79/ 0 : ; |
77/ 0 : krtgrafik equ 1 ; bei interner Zeichenausgabe KRT abschalten | 80/ 0 : ; TITL ' R0BOTRON Z 9001 - MONITOR ' |
78/ 0 : extcio equ 1 ; ext. Kassettenroutinen ermöglichen | 81/ 0 : ; |
79/ 0 : resmsg equ "Z9001 kompakt " ; VP | 82/ 0 : cpu z80 |
80/ 0 : [30] endif | 83/ F000 : ORG 0F000H |
81/ 0 : | 84/ F000 : ; |
82/ 0 : ;PN MONITOR 16.08.85 | 85/ F000 : ;******************************************************************* |
83/ 0 : ; | 86/ F000 : ;* * |
84/ 0 : ;MONITOR FUER SERIENGERAET 1985 | 87/ F000 : ;* MONITOR - D E F I N I T I O N E N * |
85/ 0 : ;V 01.02. | 88/ F000 : ;* * |
86/ 0 : ; | 89/ F000 : ;******************************************************************* |
87/ 0 : ; TITL ' R0BOTRON Z 9001 - MONITOR ' | 90/ F000 : ; |
88/ 0 : ; | 91/ F000 : =4H IOBYT: EQU 4 ;I/O-BYTE |
89/ 0 : cpu z80 | 92/ F000 : =BH SPSV: EQU 0BH ;REGISTER FUER NUTZERSTACK |
90/ F000 : ORG 0F000H | 93/ F000 : =DH BCSV: EQU 0DH ;REGISTER FUER BC |
91/ F000 : ; | 94/ F000 : =FH ASV: EQU 0FH ;REGISTER FUER A |
92/ F000 : ;******************************************************************* | 95/ F000 : =13H JOYR: EQU 13H ;SPIELHEBEL 1 |
93/ F000 : ;* * | 96/ F000 : =14H JOYL: EQU 14H ;SPIELHEBEL 2 |
94/ F000 : ;* MONITOR - D E F I N I T I O N E N * | 97/ F000 : =15H LISW: EQU 15H ;SCHALTER FUER DRUCKERAUSGABE |
95/ F000 : ;* * | 98/ F000 : =16H BSW: EQU 16H ;SCHALTER KONTROLLTON |
96/ F000 : ;******************************************************************* | 99/ F000 : =17H COLSW: EQU 17H ;PUFFER FARBSTEUERCODE |
97/ F000 : ; | 100/ F000 : =1BH DMA: EQU 1BH ;ZEIGER AUF KASSETTENPUFFER |
98/ F000 : =4H IOBYT: EQU 4 ;I/O-BYTE | 101/ F000 : =1DH STUND: EQU 1DH ;PUFFER STUNDEN |
99/ F000 : =BH SPSV: EQU 0BH ;REGISTER FUER NUTZERSTACK | 102/ F000 : =1EH MIN: EQU 1EH ;PUFFER MINUTEN |
100/ F000 : =DH BCSV: EQU 0DH ;REGISTER FUER BC | 103/ F000 : =1FH SEK: EQU 1FH ;PUFFER SEKUNDEN |
101/ F000 : =FH ASV: EQU 0FH ;REGISTER FUER A | 104/ F000 : =23H COUNT: EQU 23H ;ZAEHLER CTC2 - INTERRUPTS |
102/ F000 : =13H JOYR: EQU 13H ;SPIELHEBEL 1 | 105/ F000 : =24H LAKEY: EQU 24H ;LETZTES GUELTIGES ZEICHEN |
103/ F000 : =14H JOYL: EQU 14H ;SPIELHEBEL 2 | 106/ F000 : =25H KEYBU: EQU 25H ;TASTATURPUFFER |
104/ F000 : =15H LISW: EQU 15H ;SCHALTER FUER DRUCKERAUSGABE | 107/ F000 : =26H SHLOC: EQU 26H ;SCHALTER SHIFT LOCK |
105/ F000 : =16H BSW: EQU 16H ;SCHALTER KONTROLLTON | 108/ F000 : =27H ATRIB: EQU 27H ;AKTUELLES FARBATRIBUT |
106/ F000 : =17H COLSW: EQU 17H ;PUFFER FARBSTEUERCODE | 109/ F000 : =2BH CHARP: EQU 2BH ;ZEIGER AUF SPALTE |
107/ F000 : =1BH DMA: EQU 1BH ;ZEIGER AUF KASSETTENPUFFER | 110/ F000 : =2CH LINEP: EQU 2CH ;ZEIGER AUF ZEILE |
108/ F000 : =1DH STUND: EQU 1DH ;PUFFER STUNDEN | 111/ F000 : =2DH CURS: EQU 2DH ;PHYS. CURSORADRESSE |
109/ F000 : =1EH MIN: EQU 1EH ;PUFFER MINUTEN | 112/ F000 : =2FH PU: EQU 2FH ;HILFSZELLE (TIME + Status CONST) |
110/ F000 : =1FH SEK: EQU 1FH ;PUFFER SEKUNDEN | 113/ F000 : =33H WORKA: EQU 33H ;HILFSZELLE (ASGN) |
111/ F000 : =23H COUNT: EQU 23H ;ZAEHLER CTC2 - INTERRUPTS | 114/ F000 : =34H BUFFA: EQU 34H ;PUFFER FARBCODE Zeichen unter Cursor |
112/ F000 : =24H LAKEY: EQU 24H ;LETZTES GUELTIGES ZEICHEN | 115/ F000 : =35H BU: EQU 35H ;HILFSZELLE (RCONB) |
113/ F000 : =25H KEYBU: EQU 25H ;TASTATURPUFFER | 116/ F000 : =36H EOR: EQU 36H ;ZEIGER AUF LOG. RAM - ENDE |
114/ F000 : =26H SHLOC: EQU 26H ;SCHALTER SHIFT LOCK | 117/ F000 : =3BH P1ROL: EQU 3BH ;1. ZU ROLLENDE ZEILE-1 |
115/ F000 : =27H ATRIB: EQU 27H ;AKTUELLES FARBATRIBUT | 118/ F000 : =3CH P2ROL: EQU 3CH ;LETZTE ZU ROLLENDE ZEILE+1 |
116/ F000 : =2BH CHARP: EQU 2BH ;ZEIGER AUF SPALTE | 119/ F000 : =3DH P3ROL: EQU 3DH ;1. ZU ROLLENDE SPALTE-1 |
117/ F000 : =2CH LINEP: EQU 2CH ;ZEIGER AUF ZEILE | 120/ F000 : =3EH P4ROL: EQU 3EH ;LETZTE ZU ROLLENDE SPALTE+1 |
118/ F000 : =2DH CURS: EQU 2DH ;PHYS. CURSORADRESSE | 121/ F000 : =3FH BUFF: EQU 3FH ;PUFFER FUER ZEICHEN unter Cursor |
119/ F000 : =2FH PU: EQU 2FH ;HILFSZELLE (TIME + Status CONST) | 122/ F000 : =40H PARBU: EQU 40H ;HILFSZELLE (ASGN) |
120/ F000 : =33H WORKA: EQU 33H ;HILFSZELLE (ASGN) | 123/ F000 : =5CH FCB: EQU 5CH ;FILE-CONTROL-BLOCK |
AS V1.42 Beta [Bld 82] - source file os.asm - page 3 - 3/20/2012 20:42:07 | 124/ F000 : =69H PSUM: EQU 69H ;PRUEFSUMME |
| 125/ F000 : =6AH ARB: EQU 6AH ;ARBEITSZELLE |
| 126/ F000 : =6BH BLNR: EQU 6BH ;BLOCKNUMMER |
121/ F000 : =34H BUFFA: EQU 34H ;PUFFER FARBCODE Zeichen unter Cursor | 127/ F000 : =6CH LBLNR: EQU 6CH ;ZU LESENDE BLOCKNUMMER |
122/ F000 : =35H BU: EQU 35H ;HILFSZELLE (RCONB) | 128/ F000 : =6DH AADR: EQU 6DH ;ANFANGSADRESSE |
123/ F000 : =36H EOR: EQU 36H ;ZEIGER AUF LOG. RAM - ENDE | 129/ F000 : =6FH EADR: EQU 6FH ;ENDADRESSE |
124/ F000 : =3BH P1ROL: EQU 3BH ;1. ZU ROLLENDE ZEILE-1 | 130/ F000 : =71H START: EQU 71H ;STARTADRESSE |
125/ F000 : =3CH P2ROL: EQU 3CH ;LETZTE ZU ROLLENDE ZEILE+1 | 131/ F000 : =80H CONBU: EQU 80H ;CCP ZEICHENKETTENPUFFER |
126/ F000 : =3DH P3ROL: EQU 3DH ;1. ZU ROLLENDE SPALTE-1 | 132/ F000 : =80H STDMA: EQU 80H ;STANDARDPUFFER FUER KASSETTE |
127/ F000 : =3EH P4ROL: EQU 3EH ;LETZTE ZU ROLLENDE SPALTE+1 | 133/ F000 : =100H INTLN: EQU 100H ;INTERNER ZWISCHENPUFFER |
128/ F000 : =3FH BUFF: EQU 3FH ;PUFFER FUER ZEICHEN unter Cursor | 134/ F000 : =EC00H SCTOP: EQU 0EC00H ;ADR. ZEICHENSPEICHER |
129/ F000 : =40H PARBU: EQU 40H ;HILFSZELLE (ASGN) | 135/ F000 : =EFC0H MAPPI: EQU 0F000H-64 ;SYSTEMBYTE |
130/ F000 : =5CH FCB: EQU 5CH ;FILE-CONTROL-BLOCK | 136/ F000 : =EFC1H MAPAR: EQU MAPPI+1 ;64 BIT KONFIG.-REGISTER |
131/ F000 : =69H PSUM: EQU 69H ;PRUEFSUMME | 137/ F000 : =EFC9H ATTY: EQU MAPAR+8 ;ADR. TREIBERADRESSVEKTOR |
132/ F000 : =6AH ARB: EQU 6AH ;ARBEITSZELLE | 138/ F000 : =EFCBH ACRT1: EQU ATTY+2 ;VEKT.-ADR. CRT-TREIBER CONST |
133/ F000 : =6BH BLNR: EQU 6BH ;BLOCKNUMMER | 139/ F000 : =EFCDH ABAT: EQU ACRT1+2 ;VEKT.-ADR. BAT-TREIBER CONST |
134/ F000 : =6CH LBLNR: EQU 6CH ;ZU LESENDE BLOCKNUMMER | 140/ F000 : =EFE3H ACRT2: EQU ACRT1+24 ;VEKT.-ADR. CRT-TREIBER LIST |
135/ F000 : =6DH AADR: EQU 6DH ;ANFANGSADRESSE | 141/ F000 : =EFE9H TXCON: EQU ATTY+32 ;ZEICHENKETTENADRESSVEKTOR |
136/ F000 : =6FH EADR: EQU 6FH ;ENDADRESSE | 142/ F000 : ;VEKT.-ADR. STRING FUER CONST |
137/ F000 : =71H START: EQU 71H ;STARTADRESSE | 143/ F000 : =EFEBH TXRDR: EQU TXCON+2 ;VEKT.-ADR. STRING FUER READER |
138/ F000 : =80H CONBU: EQU 80H ;CCP ZEICHENKETTENPUFFER | 144/ F000 : =EFEDH TXPUN: EQU TXCON+4 ;VEKT.-ADR. STRING FUER PUNCH |
139/ F000 : | 145/ F000 : =EFEFH TXLPT: EQU TXCON+6 ;VEKT.-ADR. STRING FUER LIST |
140/ F000 : =>FALSE if extcio | 146/ F000 : =28H LINEL: EQU 40 ;LAENGE PHYSISCHE BILDSCHIRMZEILE |
141/ F000 : EXTRD: EQU FCB-4 ;Adr. ext. MAREK-Routine. Diese muss mit LD A,(nn) beginnen | 147/ F000 : =400H ONEKB: EQU 400H ;KONSTANTE 1 KBYTE |
142/ F000 : EXTWR: EQU FCB-2 ;Adr. ext. KARAM-Routine. Diese muss mit LD A,(nn) beginnen | 148/ F000 : =1H STIOB: EQU 1 ;STANDARD I/O-BYTE |
143/ F000 : [140] endif | 149/ F000 : =2H TYPIE: EQU 2 ;TYP EINGABEFEHLER |
144/ F000 : | 150/ F000 : =3H ZYPRE: EQU 3 ;TYP BEREICHSFEHLER |
145/ F000 : =80H STDMA: EQU 80H ;STANDARDPUFFER FUER KASSETTE | 151/ F000 : =8H CURSL: EQU 8 ;CURSOR LINKS |
146/ F000 : =100H INTLN: EQU 100H ;INTERNER ZWISCHENPUFFER | 152/ F000 : =9H CURSR: EQU 9 ;CURSOR RECHTS |
147/ F000 : =EC00H SCTOP: EQU 0EC00H ;ADR. ZEICHENSPEICHER | 153/ F000 : =AH CURSD: EQU 0AH ;CURSOR RUNTER (LF) |
148/ F000 : =EFC0H MAPPI: EQU 0F000H-64 ;SYSTEMBYTE | 154/ F000 : =BH CURSU: EQU 0BH ;CURSOR HOCH |
149/ F000 : =EFC1H MAPAR: EQU MAPPI+1 ;64 BIT KONFIG.-REGISTER | 155/ F000 : =CH CLEAR: EQU 0CH ;BILDSCHIRM LOESCHEN |
150/ F000 : =EFC9H ATTY: EQU MAPAR+8 ;ADR. TREIBERADRESSVEKTOR | 156/ F000 : =DH CARIG: EQU 0DH ;CURSOR AN ZEILENANFANG (CR) |
151/ F000 : =EFCBH ACRT1: EQU ATTY+2 ;VEKT.-ADR. CRT-TREIBER CONST | 157/ F000 : =20H SPACE: EQU 20H ;LEERZEICHEN |
152/ F000 : =EFCDH ABAT: EQU ACRT1+2 ;VEKT.-ADR. BAT-TREIBER CONST | 158/ F000 : =20H FIRST: EQU SPACE ;1. DRUCKBARES ZEICHEN |
153/ F000 : =EFE3H ACRT2: EQU ACRT1+24 ;VEKT.-ADR. CRT-TREIBER LIST | 159/ F000 : ; |
154/ F000 : =EFE9H TXCON: EQU ATTY+32 ;ZEICHENKETTENADRESSVEKTOR | 160/ F000 : ; System-PIO ist PIO1 |
155/ F000 : ;VEKT.-ADR. STRING FUER CONST | 161/ F000 : =88H DPIO1A: equ 88H ;Daten Kanal A Video |
156/ F000 : =EFEBH TXRDR: EQU TXCON+2 ;VEKT.-ADR. STRING FUER READER | 162/ F000 : =89H DPIO1B: equ 89H ;Daten Kanal B User-E/A |
157/ F000 : =EFEDH TXPUN: EQU TXCON+4 ;VEKT.-ADR. STRING FUER PUNCH | 163/ F000 : =8AH SPIO1A: equ 8aH ;Steuerung Kanal A |
158/ F000 : =EFEFH TXLPT: EQU TXCON+6 ;VEKT.-ADR. STRING FUER LIST | 164/ F000 : =8BH SPIO1B: equ 8bH ;Steuerung Kanal B |
159/ F000 : =28H LINEL: EQU 40 ;LAENGE PHYSISCHE BILDSCHIRMZEILE | 165/ F000 : |
160/ F000 : =400H ONEKB: EQU 400H ;KONSTANTE 1 KBYTE | 166/ F000 : ; Tastatur-PIO ist PIO2 |
161/ F000 : =1H STIOB: EQU 1 ;STANDARD I/O-BYTE | 167/ F000 : =90H DPIOA: EQU 90H ;TASTATUR-PIO A DATEN |
162/ F000 : =2H TYPIE: EQU 2 ;TYP EINGABEFEHLER | 168/ F000 : =91H DPIOB: EQU 91H ;TASTATUR-PIO B DATEN |
163/ F000 : =3H ZYPRE: EQU 3 ;TYP BEREICHSFEHLER | 169/ F000 : =92H SPIOA: EQU 92H ;TASTATUR-PIO A KOMMANDO |
164/ F000 : =8H CURSL: EQU 8 ;CURSOR LINKS | 170/ F000 : =93H SPIOB: EQU 93H ;TASTATUR-PIO B KOMMANDO |
165/ F000 : =9H CURSR: EQU 9 ;CURSOR RECHTS | 171/ F000 : =80H CTC0: EQU 80H |
166/ F000 : =AH CURSD: EQU 0AH ;CURSOR RUNTER (LF) | 172/ F000 : =82H CTC2: EQU 82H |
167/ F000 : =BH CURSU: EQU 0BH ;CURSOR HOCH | 173/ F000 : =83H CTC3: EQU 83H |
168/ F000 : =CH CLEAR: EQU 0CH ;BILDSCHIRM LOESCHEN | 174/ F000 : ; |
169/ F000 : =DH CARIG: EQU 0DH ;CURSOR AN ZEILENANFANG (CR) | 175/ F000 : ; EJEC |
170/ F000 : =20H SPACE: EQU 20H ;LEERZEICHEN | 176/ F000 : ; |
171/ F000 : =20H FIRST: EQU SPACE ;1. DRUCKBARES ZEICHEN | 177/ F000 : ;******************************************************************* |
172/ F000 : ; | 178/ F000 : ;* * |
173/ F000 : ; System-PIO ist PIO1 | 179/ F000 : ;* OPERATING SYSTEM - S P R U N G TA B E L L E * |
174/ F000 : =88H DPIO1A: equ 88H ;Daten Kanal A Video | 180/ F000 : ;* * |
175/ F000 : =89H DPIO1B: equ 89H ;Daten Kanal B User-E/A | 181/ F000 : ;******************************************************************* |
176/ F000 : =8AH SPIO1A: equ 8aH ;Steuerung Kanal A | 182/ F000 : ; |
177/ F000 : =8BH SPIO1B: equ 8bH ;Steuerung Kanal B | 183/ F000 : C3 64 F6 RESET: JP INIT ;KALTSTART |
178/ F000 : | 184/ F003 : C3 AE F6 JP WBOOT ;WARMSTART |
179/ F000 : ; Tastatur-PIO ist PIO2 | 185/ F006 : C3 56 F7 CSTS: JP CONST ;STATUS CONST |
180/ F000 : =90H DPIOA: EQU 90H ;TASTATUR-PIO A DATEN | 186/ F009 : C3 7F F7 CONSI: JP CONIN ;EINGABE ZEICHEN VON CONST |
AS V1.42 Beta [Bld 82] - source file os.asm - page 4 - 3/20/2012 20:42:07 | 187/ F00C : C3 83 F7 CONSO: JP COOUT ;AUSGABE ZEICHEN ZU CONST |
| 188/ F00F : C3 9E F7 LISTO: JP LIST ;AUSGABE ZEICHEN ZU LIST |
| 189/ F012 : C3 AE F7 PUNO: JP PUNCH ;AUSGABE ZEICHEN ZU PUNCH |
181/ F000 : =91H DPIOB: EQU 91H ;TASTATUR-PIO B DATEN | 190/ F015 : C3 A8 F7 READI: JP READR ;EINGABE ZEICHEN VON READER |
182/ F000 : =92H SPIOA: EQU 92H ;TASTATUR-PIO A KOMMANDO | 191/ F018 : C3 C4 F7 GETST: JP GSTIK ;ABFRAGE SPIELHEBEL |
183/ F000 : =93H SPIOB: EQU 93H ;TASTATUR-PIO B KOMMANDO | 192/ F01B : C3 DE F5 JP BOSER ;NICHT GENUTZT |
184/ F000 : =80H CTC0: EQU 80H | 193/ F01E : C3 0B F8 SETTI: JP STIME ;STELLEN UHRZEIT |
185/ F000 : =82H CTC2: EQU 82H | 194/ F021 : C3 FC F7 GETTI: JP GTIME ;ABFRAGE UHRZEIT |
186/ F000 : =83H CTC3: EQU 83H | 195/ F024 : C3 DF F7 SETDM: JP SDMA ;SETZEN ADR. KASSETTENPUFFER |
187/ F000 : ; | 196/ F027 : C3 34 F4 READS: JP READ ;BLOCKLESEN SEQUENTIELL |
188/ F000 : ; EJEC | 197/ F02A : C3 6F F4 WRITS: JP WRITE ;BLOCKSCHREIBEN SEQUENTIELL |
189/ F000 : ; | 198/ F02D : C3 A4 F7 JP LLIST ;STATUS LIST |
190/ F000 : ;******************************************************************* | 199/ F030 : C3 33 F7 JP GCURS ;ABFRAGE PHYS. CURSORADRESSE |
191/ F000 : ;* * | 200/ F033 : C3 37 F7 JP SCURS ;SETZEN PHYS. CURSORADRESSE |
192/ F000 : ;* OPERATING SYSTEM - S P R U N G TA B E L L E * | 201/ F036 : C3 DE F5 JP BOSER ;NICHT GENUTZT |
193/ F000 : ;* * | 202/ F039 : C3 D2 F7 GETIO: JP GIOBY ;ABFRAGE I/O-BYTE |
194/ F000 : ;******************************************************************* | 203/ F03C : C3 D9 F7 SETIO: JP SIOBY ;SETZEN I/O-BYTE |
195/ F000 : ; | 204/ F03F : C3 E5 F7 GETM: JP GMEM ;LOGISCHER SPEICHERTEST |
196/ F000 : C3 64 F6 RESET: JP INIT ;KALTSTART | 205/ F042 : C3 F4 F7 SETM: JP SMEM ;SETZEN SPEICHERKONFIGURATION |
197/ F003 : C3 AE F6 JP WBOOT ;WARMSTART | 206/ F045 : ; |
198/ F006 : C3 56 F7 CSTS: JP CONST ;STATUS CONST | 207/ F045 : ; EJEC |
199/ F009 : C3 7F F7 CONSI: JP CONIN ;EINGABE ZEICHEN VON CONST | 208/ F045 : ; |
200/ F00C : C3 83 F7 CONSO: JP COOUT ;AUSGABE ZEICHEN ZU CONST | 209/ F045 : ;******************************************************************* |
201/ F00F : C3 9E F7 LISTO: JP LIST ;AUSGABE ZEICHEN ZU LIST | 210/ F045 : ;* * |
202/ F012 : C3 AE F7 PUNO: JP PUNCH ;AUSGABE ZEICHEN ZU PUNCH | 211/ F045 : ;* BASIC OPERATING SYSTEM - A D R E S S T A B E L L E * |
203/ F015 : C3 A8 F7 READI: JP READR ;EINGABE ZEICHEN VON READER | 212/ F045 : ;* * |
204/ F018 : C3 C4 F7 GETST: JP GSTIK ;ABFRAGE SPIELHEBEL | 213/ F045 : ;******************************************************************* |
205/ F01B : C3 DE F5 JP BOSER ;NICHT GENUTZT | 214/ F045 : ; |
206/ F01E : C3 0B F8 SETTI: JP STIME ;STELLEN UHRZEIT | 215/ F045 : 64 F6 JPVEK: DW INIT ;KALTSTART/RESET <00> |
207/ F021 : C3 FC F7 GETTI: JP GTIME ;ABFRAGE UHRZEIT | 216/ F047 : 09 F0 DW CONSI ;EINGABE VON CONST <01> |
208/ F024 : C3 DF F7 SETDM: JP SDMA ;SETZEN ADR. KASSETTENPUFFER | 217/ F049 : 0C F0 DW CONSO ;AUSGABE ZU CONST <02> |
209/ F027 : C3 34 F4 READS: JP READ ;BLOCKLESEN SEQUENTIELL | 218/ F04B : 15 F0 DW READI ;EINGABE VON READER <03> |
210/ F02A : C3 6F F4 WRITS: JP WRITE ;BLOCKSCHREIBEN SEQUENTIELL | 219/ F04D : 12 F0 DW PUNO ;AUSGABE ZU PUNCH <04> |
211/ F02D : C3 A4 F7 JP LLIST ;STATUS LIST | 220/ F04F : 0F F0 DW LISTO ;AUSGABE ZU LIST <05> |
212/ F030 : C3 33 F7 JP GCURS ;ABFRAGE PHYS. CURSORADRESSE | 221/ F051 : 18 F0 DW GETST ;ABFRAGE SPIELHEBEL <06> |
213/ F033 : C3 37 F7 JP SCURS ;SETZEN PHYS. CURSORADRESSE | 222/ F053 : 39 F0 DW GETIO ;ABFRAGE I/O-BYTE <07> |
214/ F036 : C3 DE F5 JP BOSER ;NICHT GENUTZT | 223/ F055 : 3C F0 DW SETIO ;SETZEN I/O-BYTE <08> |
215/ F039 : C3 D2 F7 GETIO: JP GIOBY ;ABFRAGE I/O-BYTE | 224/ F057 : E2 F3 DW PRNST ;AUSGABE ZEICHENKETTE <09> |
216/ F03C : C3 D9 F7 SETIO: JP SIOBY ;SETZEN I/O-BYTE | 225/ F059 : 65 F3 DW RCONB ;EINGABE ZEICHENKETTE <10> |
217/ F03F : C3 E5 F7 GETM: JP GMEM ;LOGISCHER SPEICHERTEST | 226/ F05B : 06 F0 DW CSTS ;STATUS CONST <11> |
218/ F042 : C3 F4 F7 SETM: JP SMEM ;SETZEN SPEICHERKONFIGURATION | 227/ F05D : F3 F3 DW RETVN ;ABFRAGEVERSIONSNUMMER <12> |
219/ F045 : ; | 228/ F05F : F8 F3 DW OPENR ;OPEN LESEN KASSETTE <13> |
220/ F045 : ; EJEC | 229/ F061 : 2D F4 DW CLOSR ;CLOSE LESEN KASSETTE <14> |
221/ F045 : ; | 230/ F063 : 45 F4 DW OPENW ;OPEN SCHREIBEN KASSETTE <15> |
222/ F045 : ;******************************************************************* | 231/ F065 : 6A F4 DW CLOSW ;CLOSE SCHREIBEN KASSETTE <16> |
223/ F045 : ;* * | 232/ F067 : 3C F7 DW GETCU ;ABFRAGE LOG. CURSORADR. <17> |
224/ F045 : ;* BASIC OPERATING SYSTEM - A D R E S S T A B E L L E * | 233/ F069 : 3B F7 DW SETCU ;SETZEN LOG. CURSORADR. <18> |
225/ F045 : ;* * | 234/ F06B : DE F5 DW BOSER ;NICHT GENUTZT |
226/ F045 : ;******************************************************************* | 235/ F06D : 27 F0 DW READS ;BLOCKLESEN SEQUENTIELL <20> |
227/ F045 : ; | 236/ F06F : 2A F0 DW WRITS ;BLOCKSCHREIBEN SEQUENTIELL <21> |
228/ F045 : 64 F6 JPVEK: DW INIT ;KALTSTART/RESET <00> | 237/ F071 : 1E F0 DW SETTI ;STELLEN UHRZEIT <22> |
229/ F047 : 09 F0 DW CONSI ;EINGABE VON CONST <01> | 238/ F073 : 21 F0 DW GETTI ;ABFRAGE UHRZEIT <23> |
230/ F049 : 0C F0 DW CONSO ;AUSGABE ZU CONST <02> | 239/ F075 : A8 F4 DW PRITI ;AUSGABE UHRZEIT <24> |
231/ F04B : 15 F0 DW READI ;EINGABE VON READER <03> | 240/ F077 : E3 FA DW INITA ;INITIALISIERUNG TASTATUR <25> |
232/ F04D : 12 F0 DW PUNO ;AUSGABE ZU PUNCH <04> | 241/ F079 : 24 F0 DW SETDM ;SETZEN ADR. KASSETTENPUFF. <26> |
233/ F04F : 0F F0 DW LISTO ;AUSGABE ZU LIST <05> | 242/ F07B : 3F F0 DW GETM ;LOG. SPEICHERTEST <27> |
234/ F051 : 18 F0 DW GETST ;ABFRAGE SPIELHEBEL <06> | 243/ F07D : 42 F0 DW SETM ;SETZEN SPEICHERKONFIG. <28> |
235/ F053 : 39 F0 DW GETIO ;ABFRAGE I/O-BYTE <07> | 244/ F07F : 3E F7 DW DCU ;LOESCHEN CURSOR <29> |
236/ F055 : 3C F0 DW SETIO ;SETZEN I/O-BYTE <08> | 245/ F081 : 3D F7 DW SCU ;ANZEIGE CURSOR <30> |
237/ F057 : E2 F3 DW PRNST ;AUSGABE ZEICHENKETTE <09> | 246/ F083 : B9 F5 DW COEXT ;VORVERARBEITEN ZEICHENKET. <31> |
238/ F059 : 65 F3 DW RCONB ;EINGABE ZEICHENKETTE <10> | 247/ F085 : DE F5 DW BOSER ;NICHT GENUTZT |
239/ F05B : 06 F0 DW CSTS ;STATUS CONST <11> | 248/ F087 : D8 F4 DW RRAND ;BLOCKLESEN <33> |
240/ F05D : F3 F3 DW RETVN ;ABFRAGEVERSIONSNUMMER <12> | 249/ F089 : ; |
AS V1.42 Beta [Bld 82] - source file os.asm - page 5 - 3/20/2012 20:42:07 | 250/ F089 : ; EJEC |
| 251/ F089 : ; |
| 252/ F089 : ;******************************************************************* |
241/ F05F : F8 F3 DW OPENR ;OPEN LESEN KASSETTE <13> | 253/ F089 : ;* * |
242/ F061 : 2D F4 DW CLOSR ;CLOSE LESEN KASSETTE <14> | 254/ F089 : ;* C O N S O L - C O M M A N D - P R O G R A M * |
243/ F063 : 45 F4 DW OPENW ;OPEN SCHREIBEN KASSETTE <15> | 255/ F089 : ;* * |
244/ F065 : 6A F4 DW CLOSW ;CLOSE SCHREIBEN KASSETTE <16> | 256/ F089 : ;******************************************************************* |
245/ F067 : 3C F7 DW GETCU ;ABFRAGE LOG. CURSORADR. <17> | 257/ F089 : ; |
246/ F069 : 3B F7 DW SETCU ;SETZEN LOG. CURSORADR. <18> | 258/ F089 : 21 89 F0 GOCPM: LD HL,GOCPM |
247/ F06B : DE F5 DW BOSER ;NICHT GENUTZT | 259/ F08C : E5 PUSH HL ;RUECKKEHRADR. KELLERN |
248/ F06D : 27 F0 DW READS ;BLOCKLESEN SEQUENTIELL <20> | 260/ F08D : 21 80 00 LD HL,STDMA |
249/ F06F : 2A F0 DW WRITS ;BLOCKSCHREIBEN SEQUENTIELL <21> | 261/ F090 : 22 1B 00 LD (DMA),HL ;STANDARDKASSETTENPUFFER |
250/ F071 : 1E F0 DW SETTI ;STELLEN UHRZEIT <22> | 262/ F093 : 3E 3E LD A,'>' |
251/ F073 : 21 F0 DW GETTI ;ABFRAGE UHRZEIT <23> | 263/ F095 : CD 05 F3 CALL OUTA ;AUSGABE PROMPT |
252/ F075 : A8 F4 DW PRITI ;AUSGABE UHRZEIT <24> | 264/ F098 : CD 5C F3 CALL GETMS ;EINGABE KOMMANDOZEILE |
253/ F077 : E3 FA DW INITA ;INITIALISIERUNG TASTATUR <25> | 265/ F09B : 38 23 JR C, DISPE ;STOP-TASTE ODER FEHLER |
254/ F079 : 24 F0 DW SETDM ;SETZEN ADR. KASSETTENPUFF. <26> | 266/ F09D : CD B9 F5 CALL COEXT ;VORVERARB. EINGABEZEILE |
255/ F07B : 3F F0 DW GETM ;LOG. SPEICHERTEST <27> | 267/ F0A0 : D8 RET C ;ZEICHENKETTE LEER |
256/ F07D : 42 F0 DW SETM ;SETZEN SPEICHERKONFIG. <28> | 268/ F0A1 : 21 EA F5 LD HL,ERDIS |
257/ F07F : 3E F7 DW DCU ;LOESCHEN CURSOR <29> | 269/ F0A4 : E5 PUSH HL ;ADR. FEHLERROUTINE KELLERN |
258/ F081 : 3D F7 DW SCU ;ANZEIGE CURSOR <30> | 270/ F0A5 : CD EA F1 CALL GVAL ;1.PARAMETER HOLEN |
259/ F083 : B9 F5 DW COEXT ;VORVERARBEITEN ZEICHENKET. <31> | 271/ F0A8 : CA E6 F5 JP Z, ERPAR ;KEIN NAME |
260/ F085 : DE F5 DW BOSER ;NICHT GENUTZT | 272/ F0AB : ;******************************************************************* |
261/ F087 : D8 F4 DW RRAND ;BLOCKLESEN <33> | 273/ F0AB : ;* BEHANDLUNG TRANSIENTKOMMANDOS * |
262/ F089 : ; | 274/ F0AB : ;******************************************************************* |
263/ F089 : ; EJEC | 275/ F0AB : ; |
264/ F089 : ; | 276/ F0AB : ;NAMEN IM SPEICHER SUCHEN |
265/ F089 : ;******************************************************************* | 277/ F0AB : C5 INDV: PUSH BC ;TRENNZEICHEN MERKEN |
266/ F089 : ;* * | 278/ F0AC : CD 8E F2 CALL CPROM ;NAMEN IM SPEICHER SUCHEN |
267/ F089 : ;* C O N S O L - C O M M A N D - P R O G R A M * | 279/ F0AF : C1 POP BC |
268/ F089 : ;* * | 280/ F0B0 : 28 07 JR Z, JMPHL ;NAMEN GEFUNDEN (HL)=STARTADR. |
269/ F089 : ;******************************************************************* | 281/ F0B2 : ;******************************************************************* |
270/ F089 : ; | 282/ F0B2 : ;* PROGRAMM LADEN UND STARTEN * |
271/ F089 : 21 89 F0 GOCPM: LD HL,GOCPM | 283/ F0B2 : ;******************************************************************* |
272/ F08C : E5 PUSH HL ;RUECKKEHRADR. KELLERN | 284/ F0B2 : CD 26 F5 INFIL: CALL LOAD1 ;DATEI LADEN |
273/ F08D : 21 80 00 LD HL,STDMA | 285/ F0B5 : D8 RET C ;FEHLER BEIM LADEN |
274/ F090 : 22 1B 00 LD (DMA),HL ;STANDARDKASSETTENPUFFER | 286/ F0B6 : 2A 71 00 LD HL,(START) ;(HL)=GELESENE STARTADRESSE |
275/ F093 : 3E 3E LD A,'>' | 287/ F0B9 : E9 JMPHL: JP (HL) ;SPRUNG ZUR AUSFUEHRUNG |
276/ F095 : CD 05 F3 CALL OUTA ;AUSGABE PROMPT | 288/ F0BA : ;******************************************************************* |
277/ F098 : CD 5C F3 CALL GETMS ;EINGABE KOMMANDOZEILE | 289/ F0BA : ;* A S G N - KOMMANDO * |
278/ F09B : 38 23 JR C, DISPE ;STOP-TASTE ODER FEHLER | 290/ F0BA : ;******************************************************************* |
279/ F09D : CD B9 F5 CALL COEXT ;VORVERARB. EINGABEZEILE | 291/ F0BA : ; Funktion: Zuweisung log. Gerät - phys. Gerät |
280/ F0A0 : D8 RET C ;ZEICHENKETTE LEER | 292/ F0BA : ; Anzeige der aktuellen Zuweisung |
281/ F0A1 : 21 EA F5 LD HL,ERDIS | 293/ F0BA : ; a) Eingang |
282/ F0A4 : E5 PUSH HL ;ADR. FEHLERROUTINE KELLERN | 294/ F0BA : ; - ASGN |
283/ F0A5 : CD EA F1 CALL GVAL ;1.PARAMETER HOLEN | 295/ F0BA : ; gerufen von: GOCPM über JMP (HL) |
284/ F0A8 : CA E6 F5 JP Z, ERPAR ;KEIN NAME | 296/ F0BA : ; Parameter : CY 0 weitere Parameter im Konsolpuffer |
285/ F0AB : ;******************************************************************* | 297/ F0BA : ; 1 keine weiteren Parameter |
286/ F0AB : ;* BEHANDLUNG TRANSIENTKOMMANDOS * | 298/ F0BA : ; b) gerufene Programme |
287/ F0AB : ;******************************************************************* | 299/ F0BA : ; c) Ausgang |
288/ F0AB : ; | 300/ F0BA : ; - ALDEV |
289/ F0AB : ;NAMEN IM SPEICHER SUCHEN | 301/ F0BA : ; - DISPA |
290/ F0AB : C5 INDV: PUSH BC ;TRENNZEICHEN MERKEN | 302/ F0BA : ; |
291/ F0AC : CD 8E F2 CALL CPROM ;NAMEN IM SPEICHER SUCHEN | 303/ F0BA : 08 ASGN: EX AF, AF' |
292/ F0AF : C1 POP BC | 304/ F0BB : 30 2A JR NC, ALDEV ;WEITERE PARAMETER FOLGEN |
293/ F0B0 : 28 07 JR Z, JMPHL ;NAMEN GEFUNDEN (HL)=STARTADR. | 305/ F0BD : ; |
294/ F0B2 : ;******************************************************************* | 306/ F0BD : ;ANZEIGE DER AKTUELLEN ZUWEISUNGEN |
295/ F0B2 : ;* PROGRAMM LADEN UND STARTEN * | 307/ F0BD : ; |
296/ F0B2 : ;******************************************************************* | 308/ F0BD : ; Funktion: Anzeige der aktuellen Gerätezuweisung |
297/ F0B2 : CD 26 F5 INFIL: CALL LOAD1 ;DATEI LADEN | 309/ F0BD : ; a) Eingang |
298/ F0B5 : D8 RET C ;FEHLER BEIM LADEN | 310/ F0BD : ; - DISPA |
299/ F0B6 : 2A 71 00 LD HL,(START) ;(HL)=GELESENE STARTADRESSE | 311/ F0BD : ; gerufen von: ASGN, ALDEV |
300/ F0B9 : E9 JMPHL: JP (HL) ;SPRUNG ZUR AUSFUEHRUNG | 312/ F0BD : ; Parameter : SADV Stringadreßvektor zur Adressierung der zum log. Gerät |
AS V1.42 Beta [Bld 82] - source file os.asm - page 6 - 3/20/2012 20:42:07 | 313/ F0BD : ; definierten Ausgebestrings |
| 314/ F0BD : ; LOGDV Tabelle der logischen Geräte |
| 315/ F0BD : ; - DISPE |
301/ F0BA : ;******************************************************************* | 316/ F0BD : ; gerufen von: GOCPM Zeichen-E/A-Fehler in der Kommandoeingabe |
302/ F0BA : ;* A S G N - KOMMANDO * | 317/ F0BD : ; b) gerufene Programme |
303/ F0BA : ;******************************************************************* | 318/ F0BD : ; - OCRLF Ausgabe CRLF |
304/ F0BA : ; Funktion: Zuweisung log. Gerät - phys. Gerät | 319/ F0BD : ; - PRNST Ausgabe String |
305/ F0BA : ; Anzeige der aktuellen Zuweisung | 320/ F0BD : ; - OUTA Ausgabe Zeichen |
306/ F0BA : ; a) Eingang | 321/ F0BD : ; c) Ausgang |
307/ F0BA : ; - ASGN | 322/ F0BD : ; - WBOOT Fehler nach Gerätezuweisung bei Zeichenausgabe |
308/ F0BA : ; gerufen von: GOCPM über JMP (HL) | 323/ F0BD : ; d) Return |
309/ F0BA : ; Parameter : CY 0 weitere Parameter im Konsolpuffer | 324/ F0BD : ; Parameter: - |
310/ F0BA : ; 1 keine weiteren Parameter | 325/ F0BD : ; |
311/ F0BA : ; b) gerufene Programme | 326/ F0BD : CD FE F2 DISPA: CALL OCRLF |
312/ F0BA : ; c) Ausgang | 327/ F0C0 : DA AE F6 DISPE: JP C, WBOOT ;FEHLER NACH ZUWEISUNG |
313/ F0BA : ; - ALDEV | 328/ F0C3 : 06 04 LD B,4 ;ANZAHL DER LOG. GERAETE |
314/ F0BA : ; - DISPA | 329/ F0C5 : 21 E9 EF LD HL,TXCON ;ADRESSTABELLE ZEICHENKETTEN |
315/ F0BA : ; | 330/ F0C8 : 11 D5 FB LD DE,PHYDV+2 ;NAMENSTABELLE DER GERAETE |
316/ F0BA : 08 ASGN: EX AF, AF' | 331/ F0CB : CD E2 F3 DA2: CALL PRNST |
317/ F0BB : 30 2A JR NC, ALDEV ;WEITERE PARAMETER FOLGEN | 332/ F0CE : 3E 3A LD A,':' |
318/ F0BD : ; | 333/ F0D0 : CD 05 F3 CALL OUTA |
319/ F0BD : ;ANZEIGE DER AKTUELLEN ZUWEISUNGEN | 334/ F0D3 : D5 PUSH DE |
320/ F0BD : ; | 335/ F0D4 : 5E LD E,(HL) ; |
321/ F0BD : ; Funktion: Anzeige der aktuellen Gerätezuweisung | 336/ F0D5 : 23 INC HL ; |
322/ F0BD : ; a) Eingang | 337/ F0D6 : 56 LD D,(HL) ;(DE)=ADRESSE DER ZUGEHOERIGEN |
323/ F0BD : ; - DISPA | 338/ F0D7 : 23 INC HL ;ZEICHENKETTE |
324/ F0BD : ; gerufen von: ASGN, ALDEV | 339/ F0D8 : E5 PUSH HL |
325/ F0BD : ; Parameter : SADV Stringadreßvektor zur Adressierung der zum log. Gerät | 340/ F0D9 : CD E2 F3 CALL PRNST ;AUSGABE ZEICHENKETTE |
326/ F0BD : ; definierten Ausgebestrings | 341/ F0DC : E1 POP HL |
327/ F0BD : ; LOGDV Tabelle der logischen Geräte | 342/ F0DD : D1 POP DE |
328/ F0BD : ; - DISPE | 343/ F0DE : 13 INC DE |
329/ F0BD : ; gerufen von: GOCPM Zeichen-E/A-Fehler in der Kommandoeingabe | 344/ F0DF : 13 INC DE |
330/ F0BD : ; b) gerufene Programme | 345/ F0E0 : 13 INC DE ;NAECHSTER GERAETENAME |
331/ F0BD : ; - OCRLF Ausgabe CRLF | 346/ F0E1 : CD FE F2 CALL OCRLF |
332/ F0BD : ; - PRNST Ausgabe String | 347/ F0E4 : 10 E5 DJNZ DA2 |
333/ F0BD : ; - OUTA Ausgabe Zeichen | 348/ F0E6 : C9 RET |
334/ F0BD : ; c) Ausgang | 349/ F0E7 : ; |
335/ F0BD : ; - WBOOT Fehler nach Gerätezuweisung bei Zeichenausgabe | 350/ F0E7 : ; |
336/ F0BD : ; d) Return | 351/ F0E7 : ;ZUWEISUNG LOGISCHES GERAET - PHYSISCHES GERAET |
337/ F0BD : ; Parameter: - | 352/ F0E7 : ; |
338/ F0BD : ; | 353/ F0E7 : ; a) Eingang |
339/ F0BD : CD FE F2 DISPA: CALL OCRLF | 354/ F0E7 : ; - ALDEV |
340/ F0C0 : DA AE F6 DISPE: JP C, WBOOT ;FEHLER NACH ZUWEISUNG | 355/ F0E7 : ; gerufen von: ASGN |
341/ F0C3 : 06 04 LD B,4 ;ANZAHL DER LOG. GERAETE | 356/ F0E7 : ; Parameter : CONBU Konsolpuffer mit weiteren Eingabeparametern |
342/ F0C5 : 21 E9 EF LD HL,TXCON ;ADRESSTABELLE ZEICHENKETTEN | 357/ F0E7 : ; b) gerufene Programme |
343/ F0C8 : 11 D5 FB LD DE,PHYDV+2 ;NAMENSTABELLE DER GERAETE | 358/ F0E7 : ; - GVAL Parameter übernehmen |
344/ F0CB : CD E2 F3 DA2: CALL PRNST | 359/ F0E7 : ; - LOCK log. Gerätenamen suchen |
345/ F0CE : 3E 3A LD A,':' | 360/ F0E7 : ; - CDEL Zeichentest |
346/ F0D0 : CD 05 F3 CALL OUTA | 361/ F0E7 : ; - LOPDV Suchen phys. Gerätenamen |
347/ F0D3 : D5 PUSH DE | 362/ F0E7 : ; - INDV Einlesen Treiberprogramm |
348/ F0D4 : 5E LD E,(HL) ; | 363/ F0E7 : ; - EXIO Prüfen der Zuweisung |
349/ F0D5 : 23 INC HL ; | 364/ F0E7 : ; c) Ausgang |
350/ F0D6 : 56 LD D,(HL) ;(DE)=ADRESSE DER ZUGEHOERIGEN | 365/ F0E7 : ; - ERPAR Parameterfehler |
351/ F0D7 : 23 INC HL ;ZEICHENKETTE | 366/ F0E7 : ; - ERINP Eingabefehler |
352/ F0D8 : E5 PUSH HL | 367/ F0E7 : ; - DISPA |
353/ F0D9 : CD E2 F3 CALL PRNST ;AUSGABE ZEICHENKETTE | 368/ F0E7 : ; |
354/ F0DC : E1 POP HL | 369/ F0E7 : CD EA F1 ALDEV: CALL GVAL ;NAECHSTEN PARAMETER HOLEN |
355/ F0DD : D1 POP DE | 370/ F0EA : 28 2C JR Z, ALDE1 ;KEIN NAME |
356/ F0DE : 13 INC DE | 371/ F0EC : 08 EX AF, AF' |
357/ F0DF : 13 INC DE | 372/ F0ED : DA E6 F5 JP C, ERPAR ;NAECHSTER PARAMETER FEHLT |
358/ F0E0 : 13 INC DE ;NAECHSTER GERAETENAME | 373/ F0F0 : C5 PUSH BC ;TRENNZEICHEN MERKEN |
359/ F0E1 : CD FE F2 CALL OCRLF | 374/ F0F1 : 01 09 04 LD BC,409H ;(B)=ANZAHL LOG. GERAETE |
360/ F0E4 : 10 E5 DJNZ DA2 | 375/ F0F4 : ;(C)=LAENGE TABELLENNAME |
AS V1.42 Beta [Bld 82] - source file os.asm - page 7 - 3/20/2012 20:42:07 | 376/ F0F4 : 21 D5 FB LD HL,PHYDV+2 |
| 377/ F0F7 : CD B8 F2 CALL LOCK ;NAME SUCHEN |
| 378/ F0FA : 58 LD E,B |
361/ F0E6 : C9 RET | 379/ F0FB : C1 POP BC |
362/ F0E7 : ; | 380/ F0FC : 20 50 JR NZ, ALD00 ;NAME NICHT GEFUNDEN |
363/ F0E7 : ; | 381/ F0FE : 3E 04 LD A,4 |
364/ F0E7 : ;ZUWEISUNG LOGISCHES GERAET - PHYSISCHES GERAET | 382/ F100 : 93 SUB E |
365/ F0E7 : ; | 383/ F101 : 87 ADD A, A |
366/ F0E7 : ; a) Eingang | 384/ F102 : 32 33 00 LD (WORKA),A ;ZWISCHENERGEBNIS MERKEN |
367/ F0E7 : ; - ALDEV | 385/ F105 : 22 40 00 LD (PARBU),HL ;ADR. ZEICHENKETTE MERKEN |
368/ F0E7 : ; gerufen von: ASGN | 386/ F108 : 79 LD A,C |
369/ F0E7 : ; Parameter : CONBU Konsolpuffer mit weiteren Eingabeparametern | 387/ F109 : FE 3A CP A, ':' |
370/ F0E7 : ; b) gerufene Programme | 388/ F10B : 20 05 JR NZ, ALDE0 |
371/ F0E7 : ; - GVAL Parameter übernehmen | 389/ F10D : CD C4 F1 CALL CDEL |
372/ F0E7 : ; - LOCK log. Gerätenamen suchen | 390/ F110 : FE 3D CP A, '=' |
373/ F0E7 : ; - CDEL Zeichentest | 391/ F112 : C2 E2 F5 ALDE0: JP NZ, ERINP ;FALSCHE TRENNZEICHEN |
374/ F0E7 : ; - LOPDV Suchen phys. Gerätenamen | 392/ F115 : CD EA F1 CALL GVAL ;LETZTEN PARAMETER HOLEN |
375/ F0E7 : ; - INDV Einlesen Treiberprogramm | 393/ F118 : 28 5B ALDE1: JR Z, ALDER ;KEIN NAME |
376/ F0E7 : ; - EXIO Prüfen der Zuweisung | 394/ F11A : C5 PUSH BC ;TRENNZEICHEN MERKEN |
377/ F0E7 : ; c) Ausgang | 395/ F11B : CD B2 F2 CALL LOLDV ;PHYS. GERAETENAMEN SUCHEN |
378/ F0E7 : ; - ERPAR Parameterfehler | 396/ F11E : C1 POP BC |
379/ F0E7 : ; - ERINP Eingabefehler | 397/ F11F : 28 17 JR Z, ALD0 ;NAMEN GEFUNDEN |
380/ F0E7 : ; - DISPA | 398/ F121 : CD AB F0 CALL INDV ;TREIBER VON KASSETTE HOLEN |
381/ F0E7 : ; | 399/ F124 : D8 RET C ;FEHLER BEIM LADEN |
382/ F0E7 : CD EA F1 ALDEV: CALL GVAL ;NAECHSTEN PARAMETER HOLEN | 400/ F125 : |
383/ F0EA : 28 2C JR Z, ALDE1 ;KEIN NAME | 401/ F125 : ALD: |
384/ F0EC : 08 EX AF, AF' | 402/ F125 : =>FALSE IF osver == 11 |
385/ F0ED : DA E6 F5 JP C, ERPAR ;NAECHSTER PARAMETER FEHLT | 403/ F125 : ex af, af' |
386/ F0F0 : C5 PUSH BC ;TRENNZEICHEN MERKEN | 404/ F125 : =>TRUE ELSE |
387/ F0F1 : 01 09 04 LD BC,409H ;(B)=ANZAHL LOG. GERAETE | 405/ F125 : 00 NOP |
388/ F0F4 : ;(C)=LAENGE TABELLENNAME | 406/ F126 : [402] ENDIF |
389/ F0F4 : 21 D5 FB LD HL,PHYDV+2 | 407/ F126 : |
390/ F0F7 : CD B8 F2 CALL LOCK ;NAME SUCHEN | 408/ F126 : E5 PUSH HL |
391/ F0FA : 58 LD E,B | 409/ F127 : D5 PUSH DE |
392/ F0FB : C1 POP BC | 410/ F128 : 7C LD A,H ;(H)=LOG. GERAETENUMMER (0,2,4,6,) |
393/ F0FC : 20 50 JR NZ, ALD00 ;NAME NICHT GEFUNDEN | 411/ F129 : 84 ADD A, H |
394/ F0FE : 3E 04 LD A,4 | 412/ F12A : 85 ADD A, L ;(L)=PHYS. GERAETENUMMER |
395/ F100 : 93 SUB E | 413/ F12B : 87 ADD A, A |
396/ F101 : 87 ADD A, A | 414/ F12C : 16 00 LD D,0 |
397/ F102 : 32 33 00 LD (WORKA),A ;ZWISCHENERGEBNIS MERKEN | 415/ F12E : 5F LD E,A |
398/ F105 : 22 40 00 LD (PARBU),HL ;ADR. ZEICHENKETTE MERKEN | 416/ F12F : 21 C9 EF LD HL,ATTY ;TABELLE DER TREIBERADRESSEN |
399/ F108 : 79 LD A,C | 417/ F132 : 19 ADD HL,DE |
400/ F109 : FE 3A CP A, ':' | 418/ F133 : 71 LD (HL),C ; |
401/ F10B : 20 05 JR NZ, ALDE0 | 419/ F134 : 23 INC HL ;ADRESSE IN TABELLE BRINGEN |
402/ F10D : CD C4 F1 CALL CDEL | 420/ F135 : 70 LD (HL),B ; |
403/ F110 : FE 3D CP A, '=' | 421/ F136 : D1 POP DE |
404/ F112 : C2 E2 F5 ALDE0: JP NZ, ERINP ;FALSCHE TRENNZEICHEN | 422/ F137 : E1 POP HL |
405/ F115 : CD EA F1 CALL GVAL ;LETZTEN PARAMETER HOLEN | 423/ F138 : 3A 04 00 ALD0: LD A,(IOBYT) ;I/O-BYTE MERKEN |
406/ F118 : 28 5B ALDE1: JR Z, ALDER ;KEIN NAME | 424/ F13B : 08 EX AF, AF' |
407/ F11A : C5 PUSH BC ;TRENNZEICHEN MERKEN | 425/ F13C : 30 37 JR NC, ALDER ;ZU VIELE PARAMETER |
408/ F11B : CD B2 F2 CALL LOLDV ;PHYS. GERAETENAMEN SUCHEN | 426/ F13E : 3A 33 00 LD A,(WORKA) ;ZWISCHENERGEBNIS ZURUECK |
409/ F11E : C1 POP BC | 427/ F141 : 47 LD B,A |
410/ F11F : 28 17 JR Z, ALD0 ;NAMEN GEFUNDEN | 428/ F142 : 4D LD C,L |
411/ F121 : CD AB F0 CALL INDV ;TREIBER VON KASSETTE HOLEN | 429/ F143 : BC CP A, H ; |
412/ F124 : D8 RET C ;FEHLER BEIM LADEN | 430/ F144 : 28 0A JR Z, ALD1 ; |
413/ F125 : | 431/ F146 : 95 SUB L ; |
414/ F125 : ALD: | 432/ F147 : 3C INC A ; |
415/ F125 : =>FALSE IF osver == 11 | 433/ F148 : FE 06 CP A, 6 ;TEST AUF ZULAESSIGE GERAETE |
416/ F125 : ex af, af' | 434/ F14A : 28 04 JR Z, ALD1 ; |
417/ F125 : =>TRUE ELSE | 435/ F14C : 3D DEC A ; |
418/ F125 : 00 NOP | 436/ F14D : B8 CP A, B ; |
419/ F126 : [415] ENDIF | 437/ F14E : 20 25 ALD00: JR NZ, ALDER ;FALSCHES GERAET |
420/ F126 : | 438/ F150 : D5 ALD1: PUSH DE |
AS V1.42 Beta [Bld 82] - source file os.asm - page 8 - 3/20/2012 20:42:07 | 439/ F151 : 58 LD E,B ;(E)=INTERNE NUMMER LOG. GERAET |
| 440/ F152 : ;(C)=NUMMER PHYS.GERAET |
| 441/ F152 : 21 04 00 LD HL,IOBYT |
421/ F126 : E5 PUSH HL | 442/ F155 : 06 09 LD B,9 |
422/ F127 : D5 PUSH DE | 443/ F157 : 3C INC A |
423/ F128 : 7C LD A,H ;(H)=LOG. GERAETENUMMER (0,2,4,6,) | 444/ F158 : CB 1E ALD6: RR (HL) ; |
424/ F129 : 84 ADD A, H | 445/ F15A : 3D DEC A ; |
425/ F12A : 85 ADD A, L ;(L)=PHYS. GERAETENUMMER | 446/ F15B : 20 07 JR NZ, ALD66 ; |
426/ F12B : 87 ADD A, A | 447/ F15D : CB 39 SRL C ;I/O-BYTE MODIFIZIEREN |
427/ F12C : 16 00 LD D,0 | 448/ F15F : CB 1E RR (HL) ; |
428/ F12E : 5F LD E,A | 449/ F161 : CB 39 SRL C ; |
429/ F12F : 21 C9 EF LD HL,ATTY ;TABELLE DER TREIBERADRESSEN | 450/ F163 : 05 DEC B ; |
430/ F132 : 19 ADD HL,DE | 451/ F164 : 10 F2 ALD66: DJNZ ALD6 |
431/ F133 : 71 LD (HL),C ; | 452/ F166 : 43 LD B,E |
432/ F134 : 23 INC HL ;ADRESSE IN TABELLE BRINGEN | 453/ F167 : CD CE F2 CALL EXIO ;ZUWEISUNG PRUEFEN |
433/ F135 : 70 LD (HL),B ; | 454/ F16A : D1 POP DE |
434/ F136 : D1 POP DE | 455/ F16B : 30 0B JR NC, ALD7 ;ZUWEISUNGSFEHLER |
435/ F137 : E1 POP HL | 456/ F16D : 08 EX AF, AF' |
436/ F138 : 3A 04 00 ALD0: LD A,(IOBYT) ;I/O-BYTE MERKEN | 457/ F16E : 32 04 00 LD (IOBYT),A ;I/O-BYTE RESTAURIEREN |
437/ F13B : 08 EX AF, AF' | 458/ F171 : 3E 04 LD A,4 |
438/ F13C : 30 37 JR NC, ALDER ;ZU VIELE PARAMETER | 459/ F173 : 37 SCF |
439/ F13E : 3A 33 00 LD A,(WORKA) ;ZWISCHENERGEBNIS ZURUECK | 460/ F174 : C9 RET |
440/ F141 : 47 LD B,A | 461/ F175 : C3 E6 F5 ALDER: JP ERPAR |
441/ F142 : 4D LD C,L | 462/ F178 : 2A 40 00 ALD7: LD HL,(PARBU) ;ZEICHENKETTENADR. ZURUECK |
442/ F143 : BC CP A, H ; | 463/ F17B : 73 LD (HL),E ; |
443/ F144 : 28 0A JR Z, ALD1 ; | 464/ F17C : 23 INC HL ;ADRESSE EINTRAGEN IN TABELLE |
444/ F146 : 95 SUB L ; | 465/ F17D : 72 LD (HL),D ; |
445/ F147 : 3C INC A ; | 466/ F17E : C3 BD F0 JP DISPA ;ZUWEISUNG ANZEIGEN |
446/ F148 : FE 06 CP A, 6 ;TEST AUF ZULAESSIGE GERAETE | 467/ F181 : ; |
447/ F14A : 28 04 JR Z, ALD1 ; | 468/ F181 : ;******************************************************************* |
448/ F14C : 3D DEC A ; | 469/ F181 : ;* T I M E - KOMMANDO * |
449/ F14D : B8 CP A, B ; | 470/ F181 : ;******************************************************************* |
450/ F14E : 20 25 ALD00: JR NZ, ALDER ;FALSCHES GERAET | 471/ F181 : ; |
451/ F150 : D5 ALD1: PUSH DE | 472/ F181 : 08 TIME_: EX AF, AF' |
452/ F151 : 58 LD E,B ;(E)=INTERNE NUMMER LOG. GERAET | 473/ F182 : 38 34 JR C, ZAU ;KEIN WEITERER PARAMETER |
453/ F152 : ;(C)=NUMMER PHYS.GERAET | 474/ F184 : 06 03 LD B,3 ;ANZAHL PARAMETER |
454/ F152 : 21 04 00 LD HL,IOBYT | 475/ F186 : 3E 17 LD A,23 ;BEREICHSGRENZE STUNDEN |
455/ F155 : 06 09 LD B,9 | 476/ F188 : 32 2F 00 T0: LD (PU),A |
456/ F157 : 3C INC A | 477/ F18B : C5 PUSH BC |
457/ F158 : CB 1E ALD6: RR (HL) ; | 478/ F18C : CD EA F1 CALL GVAL ;NAECHSTEN PARAMETER HOLEN |
458/ F15A : 3D DEC A ; | 479/ F18F : C1 POP BC |
459/ F15B : 20 07 JR NZ, ALD66 ; | 480/ F190 : 20 E3 JR NZ, ALDER ;KEINE ZAHL |
460/ F15D : CB 39 SRL C ;I/O-BYTE MODIFIZIEREN | 481/ F192 : D8 RET C ;NICHT KONVERTIERBAR |
461/ F15F : CB 1E RR (HL) ; | 482/ F193 : 5F LD E,A |
462/ F161 : CB 39 SRL C ; | 483/ F194 : 3A 2F 00 LD A,(PU) |
463/ F163 : 05 DEC B ; | 484/ F197 : BB CP A, E ;VERGLEICH MIT BEREICH |
464/ F164 : 10 F2 ALD66: DJNZ ALD6 | 485/ F198 : 3E 03 LD A,3 |
465/ F166 : 43 LD B,E | 486/ F19A : D8 RET C ;WERT ZU GROSS |
466/ F167 : CD CE F2 CALL EXIO ;ZUWEISUNG PRUEFEN | 487/ F19B : 4D T1: LD C,L |
467/ F16A : D1 POP DE | 488/ F19C : 6C LD L,H |
468/ F16B : 30 0B JR NC, ALD7 ;ZUWEISUNGSFEHLER | 489/ F19D : 63 LD H,E |
469/ F16D : 08 EX AF, AF' | 490/ F19E : 08 EX AF, AF' |
470/ F16E : 32 04 00 LD (IOBYT),A ;I/O-BYTE RESTAURIEREN | 491/ F19F : 38 10 JR C, T3 ;KEIN WEITERER PARAMETER |
471/ F171 : 3E 04 LD A,4 | 492/ F1A1 : 3E 3B LD A,59 ;GRENZE FUER MINUTEN; SEKUNDEN |
472/ F173 : 37 SCF | 493/ F1A3 : 10 E3 DJNZ T0 |
473/ F174 : C9 RET | 494/ F1A5 : C3 E2 F5 JP ERINP ;ZU VIELE PARAMETER |
474/ F175 : C3 E6 F5 ALDER: JP ERPAR | 495/ F1A8 : 22 1E 00 T2: LD (MIN),HL |
475/ F178 : 2A 40 00 ALD7: LD HL,(PARBU) ;ZEICHENKETTENADR. ZURUECK | 496/ F1AB : 79 LD A,C |
476/ F17B : 73 LD (HL),E ; | 497/ F1AC : 32 1D 00 LD (STUND),A |
477/ F17C : 23 INC HL ;ADRESSE EINTRAGEN IN TABELLE | 498/ F1AF : B7 OR A |
478/ F17D : 72 LD (HL),D ; | 499/ F1B0 : C9 RET |
479/ F17E : C3 BD F0 JP DISPA ;ZUWEISUNG ANZEIGEN | 500/ F1B1 : ;FEHLENDE PARAMETER MIT 00 BELEGEN |
480/ F181 : ; | 501/ F1B1 : 1E 00 T3: LD E,0 |
AS V1.42 Beta [Bld 82] - source file os.asm - page 9 - 3/20/2012 20:42:07 | 502/ F1B3 : 08 EX AF, AF' |
| 503/ F1B4 : 10 E5 DJNZ T1 |
| 504/ F1B6 : 18 F0 JR T2 ;EINTRAGEN |
481/ F181 : ;******************************************************************* | 505/ F1B8 : ; |
482/ F181 : ;* T I M E - KOMMANDO * | 506/ F1B8 : ;AUSGABE DER AKTUELLEN UHRZEIT |
483/ F181 : ;******************************************************************* | 507/ F1B8 : ; |
484/ F181 : ; | 508/ F1B8 : 11 01 01 ZAU: LD DE,INTLN+1 ;ZWISCHENPUFFER |
485/ F181 : 08 TIME_: EX AF, AF' | 509/ F1BB : CD A8 F4 CALL PRITI ;ZEICHENKETTE ERZEUGEN |
486/ F182 : 38 34 JR C, ZAU ;KEIN WEITERER PARAMETER | 510/ F1BE : CD E2 F3 CALL PRNST ;ZEICHENKETTE AUSGEBEN |
487/ F184 : 06 03 LD B,3 ;ANZAHL PARAMETER | 511/ F1C1 : C3 FE F2 JP OCRLF |
488/ F186 : 3E 17 LD A,23 ;BEREICHSGRENZE STUNDEN | 512/ F1C4 : ; |
489/ F188 : 32 2F 00 T0: LD (PU),A | 513/ F1C4 : ;ZEICHENTEST IN EINGABEZEILE |
490/ F18B : C5 PUSH BC | 514/ F1C4 : ; |
491/ F18C : CD EA F1 CALL GVAL ;NAECHSTEN PARAMETER HOLEN | 515/ F1C4 : ; Funktion: Übernahme des nächsten Zeichens aus dem Konsolpuffer |
492/ F18F : C1 POP BC | 516/ F1C4 : ; Löschen des Zeichens mit Leerzeichen |
493/ F190 : 20 E3 JR NZ, ALDER ;KEINE ZAHL | 517/ F1C4 : ; Test des Zeichens auf Trennzeichen (20H,’,’.’:’,0) |
494/ F192 : D8 RET C ;NICHT KONVERTIERBAR | 518/ F1C4 : ; a) Eingang |
495/ F193 : 5F LD E,A | 519/ F1C4 : ; - CDEL |
496/ F194 : 3A 2F 00 LD A,(PU) | 520/ F1C4 : ; gerufen von: GVAL, ALDER |
497/ F197 : BB CP A, E ;VERGLEICH MIT BEREICH | 521/ F1C4 : ; Parameter : CONBU Konsolpuffer |
498/ F198 : 3E 03 LD A,3 | 522/ F1C4 : ; - CDEL2 |
499/ F19A : D8 RET C ;WERT ZU GROSS | 523/ F1C4 : ; gerufen von: GVAL Test eines Zeichens auf Trennzeichen 0 |
500/ F19B : 4D T1: LD C,L | 524/ F1C4 : ; Parameter : A zu testendes Zeichen |
501/ F19C : 6C LD L,H | 525/ F1C4 : ; Z 1 |
502/ F19D : 63 LD H,E | 526/ F1C4 : ; b) gerufene Programme |
503/ F19E : 08 EX AF, AF' | 527/ F1C4 : ; - CDELI Zeichentest |
504/ F19F : 38 10 JR C, T3 ;KEIN WEITERER PARAMETER | 528/ F1C4 : ; c) Ausgang |
505/ F1A1 : 3E 3B LD A,59 ;GRENZE FUER MINUTEN; SEKUNDEN | 529/ F1C4 : ; - |
506/ F1A3 : 10 E3 DJNZ T0 | 530/ F1C4 : ; d) Return |
507/ F1A5 : C3 E2 F5 JP ERINP ;ZU VIELE PARAMETER | 531/ F1C4 : ; Parameter: A, C getestetes Zeichen |
508/ F1A8 : 22 1E 00 T2: LD (MIN),HL | 532/ F1C4 : ; Z 0 kein Trennzeichen, 1 Trennzeichen |
509/ F1AB : 79 LD A,C | 533/ F1C4 : ; CY 1 Trennzeichen, 0 (Kennzeichen für Stringende) |
510/ F1AC : 32 1D 00 LD (STUND),A | 534/ F1C4 : ; CONBU getestetes Zeichen gelöscht mit Leerzeichen |
511/ F1AF : B7 OR A | 535/ F1C4 : ; |
512/ F1B0 : C9 RET | 536/ F1C4 : 21 81 00 CDEL: LD HL,CONBU+1 |
513/ F1B1 : ;FEHLENDE PARAMETER MIT 00 BELEGEN | 537/ F1C7 : 23 CDEL1: INC HL |
514/ F1B1 : 1E 00 T3: LD E,0 | 538/ F1C8 : 7E LD A,(HL) |
515/ F1B3 : 08 EX AF, AF' | 539/ F1C9 : FE 20 CP A, ' ' |
516/ F1B4 : 10 E5 DJNZ T1 | 540/ F1CB : 28 FA JR Z, CDEL1 ;1. ZEICHEN<>20H SUCHEN |
517/ F1B6 : 18 F0 JR T2 ;EINTRAGEN | 541/ F1CD : CD D7 F1 CALL CDELI ;TRENNZEICHENTEST |
518/ F1B8 : ; | 542/ F1D0 : 4F CDEL2: LD C,A |
519/ F1B8 : ;AUSGABE DER AKTUELLEN UHRZEIT | 543/ F1D1 : C0 RET NZ ;ZEICHEN |
520/ F1B8 : ; | 544/ F1D2 : FE 01 CP A, 1 |
521/ F1B8 : 11 01 01 ZAU: LD DE,INTLN+1 ;ZWISCHENPUFFER | 545/ F1D4 : D8 RET C ;ENDE ZEICHENKETTE |
522/ F1BB : CD A8 F4 CALL PRITI ;ZEICHENKETTE ERZEUGEN | 546/ F1D5 : BF CP A, A |
523/ F1BE : CD E2 F3 CALL PRNST ;ZEICHENKETTE AUSGEBEN | 547/ F1D6 : C9 RET ;TRENNZEICHEN |
524/ F1C1 : C3 FE F2 JP OCRLF | 548/ F1D7 : ; |
525/ F1C4 : ; | 549/ F1D7 : ;TEST AUF TRENNZEICHEN UND LOESCHEN GESTESTETES ZEICHEN |
526/ F1C4 : ;ZEICHENTEST IN EINGABEZEILE | 550/ F1D7 : 7E CDELI: LD A,(HL) |
527/ F1C4 : ; | 551/ F1D8 : B7 OR A |
528/ F1C4 : ; Funktion: Übernahme des nächsten Zeichens aus dem Konsolpuffer | 552/ F1D9 : C8 RET Z ;ENDE ZEICHENKETTE |
529/ F1C4 : ; Löschen des Zeichens mit Leerzeichen | 553/ F1DA : E5 PUSH HL |
530/ F1C4 : ; Test des Zeichens auf Trennzeichen (20H,’,’.’:’,0) | 554/ F1DB : C5 PUSH BC |
531/ F1C4 : ; a) Eingang | 555/ F1DC : 21 AB FC LD HL,DTAB ;TABELLE DER TRENNZEICHEN |
532/ F1C4 : ; - CDEL | 556/ F1DF : 01 05 00 LD BC,5 |
533/ F1C4 : ; gerufen von: GVAL, ALDER | 557/ F1E2 : ED B1 CPIR |
534/ F1C4 : ; Parameter : CONBU Konsolpuffer | 558/ F1E4 : C1 POP BC |
535/ F1C4 : ; - CDEL2 | 559/ F1E5 : E1 POP HL |
536/ F1C4 : ; gerufen von: GVAL Test eines Zeichens auf Trennzeichen 0 | 560/ F1E6 : 36 20 LD (HL),' ' ;LOESCHEN ZEICHEN IN PUFFER |
537/ F1C4 : ; Parameter : A zu testendes Zeichen | 561/ F1E8 : 23 INC HL |
538/ F1C4 : ; Z 1 | 562/ F1E9 : C9 RET |
539/ F1C4 : ; b) gerufene Programme | 563/ F1EA : ; |
540/ F1C4 : ; - CDELI Zeichentest | 564/ F1EA : ;PARAMETER AUS EINGABEZEILE HOLEN |
AS V1.42 Beta [Bld 82] - source file os.asm - page 10 - 3/20/2012 20:42:07 | 565/ F1EA : ; |
| 566/ F1EA : ; Funktion: Löschen internen Puffer (INTLN). |
| 567/ F1EA : ; Übernahme Parameter aus CONBU nach INTLN |
541/ F1C4 : ; c) Ausgang | 568/ F1EA : ; Test auf Parameterart |
542/ F1C4 : ; - | 569/ F1EA : ; Konvertieren Parameter, wenn dieser ein Wert ist |
543/ F1C4 : ; d) Return | 570/ F1EA : ; a) Eingang |
544/ F1C4 : ; Parameter: A, C getestetes Zeichen | 571/ F1EA : ; - GVAL |
545/ F1C4 : ; Z 0 kein Trennzeichen, 1 Trennzeichen | 572/ F1EA : ; gerufen von: WBOOT, GOCPM, ALDEV, STIME, LOAD |
546/ F1C4 : ; CY 1 Trennzeichen, 0 (Kennzeichen für Stringende) | 573/ F1EA : ; Parameter : CONBU Konsolpuffer |
547/ F1C4 : ; CONBU getestetes Zeichen gelöscht mit Leerzeichen | 574/ F1EA : ; b) gerufene Programme |
548/ F1C4 : ; | 575/ F1EA : ; - CDEL Übernahme Zeichen aus CONBU und Test |
549/ F1C4 : 21 81 00 CDEL: LD HL,CONBU+1 | 576/ F1EA : ; - CDEL1 Test Zeichen |
550/ F1C7 : 23 CDEL1: INC HL | 577/ F1EA : ; - CDEL2 Test Zeichen |
551/ F1C8 : 7E LD A,(HL) | 578/ F1EA : ; - CONV konvertieren Parameter |
552/ F1C9 : FE 20 CP A, ' ' | 579/ F1EA : ; c) Ausgang |
553/ F1CB : 28 FA JR Z, CDEL1 ;1. ZEICHEN<>20H SUCHEN | 580/ F1EA : ; - ERINP Eingabefehler im Parameter |
554/ F1CD : CD D7 F1 CALL CDELI ;TRENNZEICHENTEST | 581/ F1EA : ; d) Return |
555/ F1D0 : 4F CDEL2: LD C,A | 582/ F1EA : ; Parameter: Z 1 Parameter war Dezimalzahl |
556/ F1D1 : C0 RET NZ ;ZEICHEN | 583/ F1EA : ; 0 Parameter war keine Zahl |
557/ F1D2 : FE 01 CP A, 1 | 584/ F1EA : ; CY 0 kein Fehler |
558/ F1D4 : D8 RET C ;ENDE ZEICHENKETTE | 585/ F1EA : ; 1 Fehler im Parameter |
559/ F1D5 : BF CP A, A | 586/ F1EA : ; A Konvertierte Dezimalzahl, wenn Z = 1 und CY = 0 |
560/ F1D6 : C9 RET ;TRENNZEICHEN | 587/ F1EA : ; C den Parameter begrenzendes Trennzeichen |
561/ F1D7 : ; | 588/ F1EA : ; B Länge des Parameters |
562/ F1D7 : ;TEST AUF TRENNZEICHEN UND LOESCHEN GESTESTETES ZEICHEN | 589/ F1EA : ; HL Adresse des nächsten Zeichens in CONBU |
563/ F1D7 : 7E CDELI: LD A,(HL) | 590/ F1EA : ; CY’ 0 weitere Parameter in CONBU (ist in Doku falsch!) |
564/ F1D8 : B7 OR A | 591/ F1EA : ; 1 keine weiteren Parameter (ist in Doku falsch!) |
565/ F1D9 : C8 RET Z ;ENDE ZEICHENKETTE | 592/ F1EA : ; A’ den Parameter begrenzendes Trennzeichen |
566/ F1DA : E5 PUSH HL | 593/ F1EA : ; INTLN Länge des Parameters |
567/ F1DB : C5 PUSH BC | 594/ F1EA : ; INTLN+1. . . übernommener Parameter |
568/ F1DC : 21 AB FC LD HL,DTAB ;TABELLE DER TRENNZEICHEN | 595/ F1EA : ; CONBU übernommener Parameter und Trennzeichen gelöscht mit |
569/ F1DF : 01 05 00 LD BC,5 | 596/ F1EA : ; Leerzeichen |
570/ F1E2 : ED B1 CPIR | 597/ F1EA : ; |
571/ F1E4 : C1 POP BC | 598/ F1EA : 11 52 01 GVAL: LD DE,INTLN+82 |
572/ F1E5 : E1 POP HL | 599/ F1ED : AF XOR A |
573/ F1E6 : 36 20 LD (HL),' ' ;LOESCHEN ZEICHEN IN PUFFER | 600/ F1EE : 06 51 LD B,81 |
574/ F1E8 : 23 INC HL | 601/ F1F0 : 12 MOP0: LD (DE),A ; |
575/ F1E9 : C9 RET | 602/ F1F1 : 1B DEC DE ;LOESCHEN ZWISCHENPUFFER |
576/ F1EA : ; | 603/ F1F2 : 10 FC DJNZ MOP0 ; |
577/ F1EA : ;PARAMETER AUS EINGABEZEILE HOLEN | 604/ F1F4 : E5 PUSH HL |
578/ F1EA : ; | 605/ F1F5 : CD C4 F1 CALL CDEL ;TEST AUF TRENNZEICHEN |
579/ F1EA : ; Funktion: Löschen internen Puffer (INTLN). | 606/ F1F8 : 38 0D JR C, MOP3 ;ENDE DER ZEICHENKETTE |
580/ F1EA : ; Übernahme Parameter aus CONBU nach INTLN | 607/ F1FA : 28 0B JR Z, MOP3 ;TRENNZEICHEN GEFUNDEN |
581/ F1EA : ; Test auf Parameterart | 608/ F1FC : 12 MOP1: LD (DE),A |
582/ F1EA : ; Konvertieren Parameter, wenn dieser ein Wert ist | 609/ F1FD : 04 INC B ;ALLE ZEICHEN BIS |
583/ F1EA : ; a) Eingang | 610/ F1FE : 13 INC DE ;ZUM NAECHSTEN TRENNZEICHEN |
584/ F1EA : ; - GVAL | 611/ F1FF : CD D7 F1 CALL CDELI ;UEBERNEHMEN |
585/ F1EA : ; gerufen von: WBOOT, GOCPM, ALDEV, STIME, LOAD | 612/ F202 : 20 F8 JR NZ, MOP1 ; |
586/ F1EA : ; Parameter : CONBU Konsolpuffer | 613/ F204 : CD D0 F1 CALL CDEL2 |
587/ F1EA : ; b) gerufene Programme | 614/ F207 : 78 MOP3: LD A,B |
588/ F1EA : ; - CDEL Übernahme Zeichen aus CONBU und Test | 615/ F208 : 32 00 01 LD (INTLN),A ;PARAMETERLAENGE MERKEN |
589/ F1EA : ; - CDEL1 Test Zeichen | 616/ F20B : 79 LD A,C |
590/ F1EA : ; - CDEL2 Test Zeichen | 617/ F20C : E1 POP HL ;TRENNZEICHEN MERKEN |
591/ F1EA : ; - CONV konvertieren Parameter | 618/ F20D : 08 EX AF, AF' |
592/ F1EA : ; c) Ausgang | 619/ F20E : 3A 01 01 LD A,(INTLN+1) |
593/ F1EA : ; - ERINP Eingabefehler im Parameter | 620/ F211 : FE 30 CP A, '0' |
594/ F1EA : ; d) Return | 621/ F213 : 38 16 JR C, GV3 |
595/ F1EA : ; Parameter: Z 1 Parameter war Dezimalzahl | 622/ F215 : FE 3A CP A, '9'+1 |
596/ F1EA : ; 0 Parameter war keine Zahl | 623/ F217 : 30 12 JR NC, GV3 |
597/ F1EA : ; CY 0 kein Fehler | 624/ F219 : E5 PUSH HL |
598/ F1EA : ; 1 Fehler im Parameter | 625/ F21A : C5 PUSH BC |
599/ F1EA : ; A Konvertierte Dezimalzahl, wenn Z = 1 und CY = 0 | 626/ F21B : 11 00 01 LD DE,INTLN |
600/ F1EA : ; C den Parameter begrenzendes Trennzeichen | 627/ F21E : CD 15 F8 CALL VIEXT ;KONVERTIEREN PARAMETER |
AS V1.42 Beta [Bld 82] - source file os.asm - page 11 - 3/20/2012 20:42:07 | 628/ F221 : C1 POP BC |
| 629/ F222 : E1 POP HL |
| 630/ F223 : 38 02 JR C, GV2 ;NICHT KONVERTIERBAR |
601/ F1EA : ; B Länge des Parameters | 631/ F225 : BF CP A, A |
602/ F1EA : ; HL Adresse des nächsten Zeichens in CONBU | 632/ F226 : C9 RET ;IN ORDNUNG |
603/ F1EA : ; CY’ 0 weitere Parameter in CONBU (ist in Doku falsch!) | 633/ F227 : BF GV2: CP A, A |
604/ F1EA : ; 1 keine weiteren Parameter (ist in Doku falsch!) | 634/ F228 : C3 E2 F5 JP ERINP ;NICHT KONVERTIERBAR |
605/ F1EA : ; A’ den Parameter begrenzendes Trennzeichen | 635/ F22B : FE 40 GV3: CP A, 40H |
606/ F1EA : ; INTLN Länge des Parameters | 636/ F22D : 38 F8 JR C, GV2 |
607/ F1EA : ; INTLN+1. . . übernommener Parameter | 637/ F22F : 37 SCF |
608/ F1EA : ; CONBU übernommener Parameter und Trennzeichen gelöscht mit | 638/ F230 : C9 RET ;PARAMETER KEINE DEZIMALZAHL |
609/ F1EA : ; Leerzeichen | 639/ F231 : ; |
610/ F1EA : ; | 640/ F231 : ;AENDERN LOGISCHE SPEICHERKONFIGURATION |
611/ F1EA : 11 52 01 GVAL: LD DE,INTLN+82 | 641/ F231 : ; |
612/ F1ED : AF XOR A | 642/ F231 : E5 MOD: PUSH HL ;(HL)=SPEICHERADRESSE |
613/ F1EE : 06 51 LD B,81 | 643/ F232 : C5 PUSH BC ;(C)=STATUS (1 RAM, 0 ROM) |
614/ F1F0 : 12 MOP0: LD (DE),A ; | 644/ F233 : CD 4D F2 CALL CHR0 |
615/ F1F1 : 1B DEC DE ;LOESCHEN ZWISCHENPUFFER | 645/ F236 : F5 PUSH AF |
616/ F1F2 : 10 FC DJNZ MOP0 ; | 646/ F237 : CB 39 SRL C |
617/ F1F4 : E5 PUSH HL | 647/ F239 : 18 06 JR CR1 |
618/ F1F5 : CD C4 F1 CALL CDEL ;TEST AUF TRENNZEICHEN | 648/ F23B : ; |
619/ F1F8 : 38 0D JR C, MOP3 ;ENDE DER ZEICHENKETTE | 649/ F23B : ;LOGISCHER SPEICHERTEST |
620/ F1FA : 28 0B JR Z, MOP3 ;TRENNZEICHEN GEFUNDEN | 650/ F23B : ; |
621/ F1FC : 12 MOP1: LD (DE),A | 651/ F23B : E5 CHRAM: PUSH HL ;(HL)=SPEICHERADRESSE |
622/ F1FD : 04 INC B ;ALLE ZEICHEN BIS | 652/ F23C : C5 PUSH BC |
623/ F1FE : 13 INC DE ;ZUM NAECHSTEN TRENNZEICHEN | 653/ F23D : CD 4D F2 CALL CHR0 |
624/ F1FF : CD D7 F1 CALL CDELI ;UEBERNEHMEN | 654/ F240 : F5 PUSH AF |
625/ F202 : 20 F8 JR NZ, MOP1 ; | 655/ F241 : CD 69 F2 CR1: CALL CHR5 |
626/ F204 : CD D0 F1 CALL CDEL2 | 656/ F244 : F1 POP AF |
627/ F207 : 78 MOP3: LD A,B | 657/ F245 : C1 POP BC |
628/ F208 : 32 00 01 LD (INTLN),A ;PARAMETERLAENGE MERKEN | 658/ F246 : E1 POP HL |
629/ F20B : 79 LD A,C | 659/ F247 : F5 PUSH AF |
630/ F20C : E1 POP HL ;TRENNZEICHEN MERKEN | 660/ F248 : B7 OR A |
631/ F20D : 08 EX AF, AF' | 661/ F249 : ED 52 SBC HL,DE ;HL=HL-400H |
632/ F20E : 3A 01 01 LD A,(INTLN+1) | 662/ F24B : F1 POP AF ;(A)=STATUS (1 RAM, 0 ROM) |
633/ F211 : FE 30 CP A, '0' | 663/ F24C : C9 RET |
634/ F213 : 38 16 JR C, GV3 | 664/ F24D : ; |
635/ F215 : FE 3A CP A, '9'+1 | 665/ F24D : 11 00 04 CHR0: LD DE,400H |
636/ F217 : 30 12 JR NC, GV3 | 666/ F250 : AF XOR A |
637/ F219 : E5 PUSH HL | 667/ F251 : ED 52 CHR1: SBC HL,DE |
638/ F21A : C5 PUSH BC | 668/ F253 : 3C INC A |
639/ F21B : 11 00 01 LD DE,INTLN | 669/ F254 : 30 FB JR NC, CHR1 |
640/ F21E : CD 15 F8 CALL VIEXT ;KONVERTIEREN PARAMETER | 670/ F256 : 21 C1 EF LD HL,MAPAR ;ADR. 64 BIT REGISTER FUER |
641/ F221 : C1 POP BC | 671/ F259 : ;SPEICHERSTATUS |
642/ F222 : E1 POP HL | 672/ F259 : D6 08 CHR2: SUB 8 |
643/ F223 : 38 02 JR C, GV2 ;NICHT KONVERTIERBAR | 673/ F25B : 23 INC HL |
644/ F225 : BF CP A, A | 674/ F25C : 30 FB JR NC, CHR2 |
645/ F226 : C9 RET ;IN ORDNUNG | 675/ F25E : C6 08 CHR3: ADD A, 8 |
646/ F227 : BF GV2: CP A, A | 676/ F260 : 2B DEC HL |
647/ F228 : C3 E2 F5 JP ERINP ;NICHT KONVERTIERBAR | 677/ F261 : 28 FB JR Z, CHR3 |
648/ F22B : FE 40 GV3: CP A, 40H | 678/ F263 : 06 09 CR33: LD B,9 |
649/ F22D : 38 F8 JR C, GV2 | 679/ F265 : CB 16 CHR4: RL (HL) |
650/ F22F : 37 SCF | 680/ F267 : 3D DEC A |
651/ F230 : C9 RET ;PARAMETER KEINE DEZIMALZAHL | 681/ F268 : C8 RET Z |
652/ F231 : ; | 682/ F269 : 10 FA CHR5: DJNZ CHR4 |
653/ F231 : ;AENDERN LOGISCHE SPEICHERKONFIGURATION | 683/ F26B : C9 RET |
654/ F231 : ; | 684/ F26C : ; |
655/ F231 : E5 MOD: PUSH HL ;(HL)=SPEICHERADRESSE | 685/ F26C : ;ZEICHENKETTENVERGLEICH |
656/ F232 : C5 PUSH BC ;(C)=STATUS (1 RAM, 0 ROM) | 686/ F26C : ; |
657/ F233 : CD 4D F2 CALL CHR0 | 687/ F26C : ; Funktion: Stringvergleich |
658/ F236 : F5 PUSH AF | 688/ F26C : ; a) Eingang |
659/ F237 : CB 39 SRL C | 689/ F26C : ; - CHEC |
660/ F239 : 18 06 JR CR1 | 690/ F26C : ; gerufen von: LOCK, OPENR |
AS V1.42 Beta [Bld 82] - source file os.asm - page 12 - 3/20/2012 20:42:07 | 691/ F26C : ; Parameter : HL Adresse String 1 |
| 692/ F26C : ; DE Adresse String 2 |
| 693/ F26C : ; B Anzahl zu vergleichender Zeichen |
661/ F23B : ; | 694/ F26C : ; b) gerufene Programme |
662/ F23B : ;LOGISCHER SPEICHERTEST | 695/ F26C : ; - |
663/ F23B : ; | 696/ F26C : ; c) Ausgang |
664/ F23B : E5 CHRAM: PUSH HL ;(HL)=SPEICHERADRESSE | 697/ F26C : ; - |
665/ F23C : C5 PUSH BC | 698/ F26C : ; d) Return |
666/ F23D : CD 4D F2 CALL CHR0 | 699/ F26C : ; Parameter: Z 1 String 1 = String 2 |
667/ F240 : F5 PUSH AF | 700/ F26C : ; DE unverändert |
668/ F241 : CD 69 F2 CR1: CALL CHR5 | 701/ F26C : ; HL Wort vor String 2 |
669/ F244 : F1 POP AF | 702/ F26C : ; |
670/ F245 : C1 POP BC | 703/ F26C : E5 CHEC: PUSH HL ;ADR. 1. ZEICHENKETTE |
671/ F246 : E1 POP HL | 704/ F26D : D5 PUSH DE ;ADR. 2. ZEICHENKETTE |
672/ F247 : F5 PUSH AF | 705/ F26E : EB EX DE,HL |
673/ F248 : B7 OR A | 706/ F26F : 1A CHC0: LD A,(DE) |
674/ F249 : ED 52 SBC HL,DE ;HL=HL-400H | 707/ F270 : FE 20 CP A, 20H |
675/ F24B : F1 POP AF ;(A)=STATUS (1 RAM, 0 ROM) | 708/ F272 : 28 04 JR Z, CH0 |
676/ F24C : C9 RET | 709/ F274 : FE 40 CP A, 40H |
677/ F24D : ; | 710/ F276 : 38 02 JR C, CHC01 |
678/ F24D : 11 00 04 CHR0: LD DE,400H | 711/ F278 : E6 DF CH0: AND A, 0DFH ;NUR GROSSBUCHSTABEN |
679/ F250 : AF XOR A | 712/ F27A : BE CHC01: CP A, (HL) |
680/ F251 : ED 52 CHR1: SBC HL,DE | 713/ F27B : 13 INC DE |
681/ F253 : 3C INC A | 714/ F27C : 23 INC HL |
682/ F254 : 30 FB JR NC, CHR1 | 715/ F27D : 20 0C JR NZ, CHC1 |
683/ F256 : 21 C1 EF LD HL,MAPAR ;ADR. 64 BIT REGISTER FUER | 716/ F27F : 10 EE DJNZ CHC0 ;(B)=ANZAHL ZEICHEN |
684/ F259 : ;SPEICHERSTATUS | 717/ F281 : D1 POP DE |
685/ F259 : D6 08 CHR2: SUB 8 | 718/ F282 : D1 POP DE ;ADR. 1. ZEICHENKETTE |
686/ F25B : 23 INC HL | 719/ F283 : 6B LD L,E |
687/ F25C : 30 FB JR NC, CHR2 | 720/ F284 : 62 LD H,D |
688/ F25E : C6 08 CHR3: ADD A, 8 | 721/ F285 : 2B DEC HL |
689/ F260 : 2B DEC HL | 722/ F286 : 7E LD A,(HL) |
690/ F261 : 28 FB JR Z, CHR3 | 723/ F287 : 2B DEC HL |
691/ F263 : 06 09 CR33: LD B,9 | 724/ F288 : 6E LD L,(HL) |
692/ F265 : CB 16 CHR4: RL (HL) | 725/ F289 : 67 LD H,A ;(HL)=WORT VOR 1. ZEICHENKETTE |
693/ F267 : 3D DEC A | 726/ F28A : C9 RET |
694/ F268 : C8 RET Z | 727/ F28B : D1 CHC1: POP DE |
695/ F269 : 10 FA CHR5: DJNZ CHR4 | 728/ F28C : E1 POP HL |
696/ F26B : C9 RET | 729/ F28D : C9 RET |
697/ F26C : ; | 730/ F28E : ; |
698/ F26C : ;ZEICHENKETTENVERGLEICH | 731/ F28E : ;SUCHEN TRANSIENTKOMMANDO IM SPEICHER |
699/ F26C : ; | 732/ F28E : ; |
700/ F26C : ; Funktion: Stringvergleich | 733/ F28E : ; Funktion: Suchen Kommando im Speicher |
701/ F26C : ; a) Eingang | 734/ F28E : ; Kommando muß auf integraler 100H-Grenze beginnen |
702/ F26C : ; - CHEC | 735/ F28E : ; Aufbau:JP KOMM |
703/ F26C : ; gerufen von: LOCK, OPENR | 736/ F28E : ; DB 'KNAME ' ;8 Zeichen mit Space aufgefüllt |
704/ F26C : ; Parameter : HL Adresse String 1 | 737/ F28E : ; DA 00 ;Ende Kommandofeld |
705/ F26C : ; DE Adresse String 2 | 738/ F28E : ; oder JP KOMM1 |
706/ F26C : ; B Anzahl zu vergleichender Zeichen | 739/ F28E : ; DB 'K1NAME ' |
707/ F26C : ; b) gerufene Programme | 740/ F28E : ; DB 0 ;Ende Kommando 1 |
708/ F26C : ; - | 741/ F28E : ; JP KOMM2 |
709/ F26C : ; c) Ausgang | 742/ F28E : ; DB 'K2NAME ' |
710/ F26C : ; - | 743/ F28E : ; DB 0 ;Ende Kommando 2 |
711/ F26C : ; d) Return | 744/ F28E : ; ... |
712/ F26C : ; Parameter: Z 1 String 1 = String 2 | 745/ F28E : ; JP KOMMN |
713/ F26C : ; DE unverändert | 746/ F28E : ; DB 'KNNAME ' |
714/ F26C : ; HL Wort vor String 2 | 747/ F28E : ; DA 0 ;Ende Kommandofeld |
715/ F26C : ; | 748/ F28E : ; a) Eingang |
716/ F26C : E5 CHEC: PUSH HL ;ADR. 1. ZEICHENKETTE | 749/ F28E : ; - CPROM |
717/ F26D : D5 PUSH DE ;ADR. 2. ZEICHENKETTE | 750/ F28E : ; gerufen von: WBOOT, GOCPM |
718/ F26E : EB EX DE,HL | 751/ F28E : ; Parameter : INTLN INTLN+1 enthält Kommando in der Länge 8 Bytes |
719/ F26F : 1A CHC0: LD A,(DE) | 752/ F28E : ; b) gerufene Programme |
720/ F270 : FE 20 CP A, 20H | 753/ F28E : ; - LOCK Suchen String |
AS V1.42 Beta [Bld 82] - source file os.asm - page 13 - 3/20/2012 20:42:07 | 754/ F28E : ; c) Ausgang |
| 755/ F28E : ; d) Return |
| 756/ F28E : ; Parameter: Z 0 Kommando nicht gefunden |
721/ F272 : 28 04 JR Z, CH0 | 757/ F28E : ; 1 Kommando gefunden |
722/ F274 : FE 40 CP A, 40H | 758/ F28E : ; HL Adresse der Kommandoroutine |
723/ F276 : 38 02 JR C, CHC01 | 759/ F28E : ; DE Adresse des Kommandos im Speicher |
724/ F278 : E6 DF CH0: AND A, 0DFH ;NUR GROSSBUCHSTABEN | 760/ F28E : ; |
725/ F27A : BE CHC01: CP A, (HL) | 761/ F28E : 21 00 FC CPROM: LD HL,0FC00H ;ANFANGSADRESSE |
726/ F27B : 13 INC DE | 762/ F291 : E5 CP1: PUSH HL |
727/ F27C : 23 INC HL | 763/ F292 : 3E C3 CP2: LD A,0C3H |
728/ F27D : 20 0C JR NZ, CHC1 | 764/ F294 : ED A1 CPI ;SPRUNGBEFEHL SUCHEN |
729/ F27F : 10 EE DJNZ CHC0 ;(B)=ANZAHL ZEICHEN | 765/ F296 : 20 12 JR NZ, CP22 ;AUF NAECHSTER ADRESSSE SUCHEN |
730/ F281 : D1 POP DE | 766/ F298 : 23 INC HL |
731/ F282 : D1 POP DE ;ADR. 1. ZEICHENKETTE | 767/ F299 : 23 INC HL |
732/ F283 : 6B LD L,E | 768/ F29A : C5 PUSH BC |
733/ F284 : 62 LD H,D | 769/ F29B : 01 0B 01 LD BC,10BH |
734/ F285 : 2B DEC HL | 770/ F29E : CD B8 F2 CALL LOCK ;VERGLEICH ZEICHENKETTE |
735/ F286 : 7E LD A,(HL) | 771/ F2A1 : C1 POP BC |
736/ F287 : 2B DEC HL | 772/ F2A2 : 28 0C JR Z, CPE1 ;GEFUNDEN |
737/ F288 : 6E LD L,(HL) | 773/ F2A4 : AF XOR A |
738/ F289 : 67 LD H,A ;(HL)=WORT VOR 1. ZEICHENKETTE | 774/ F2A5 : 2B DEC HL |
739/ F28A : C9 RET | 775/ F2A6 : 2B DEC HL |
740/ F28B : D1 CHC1: POP DE | 776/ F2A7 : BE CP A, (HL) ;00h statt C3h (Listendende)? |
741/ F28C : E1 POP HL | 777/ F2A8 : 20 E8 JR NZ, CP2 ;WEITER MIT KOMMANDOTABELLE |
742/ F28D : C9 RET | 778/ F2AA : E1 CP22: POP HL |
743/ F28E : ; | 779/ F2AB : 25 CP3: DEC H ;NAECHSTE 100H-GRENZE |
744/ F28E : ;SUCHEN TRANSIENTKOMMANDO IM SPEICHER | 780/ F2AC : =>FALSE if rombank |
745/ F28E : ; | 781/ F2AC : JP ROMBK ;Sprung zur ROM-Bank |
746/ F28E : ; Funktion: Suchen Kommando im Speicher | 782/ F2AC : =>TRUE else |
747/ F28E : ; Kommando muß auf integraler 100H-Grenze beginnen | 783/ F2AC : 20 E3 JR NZ, CP1 |
748/ F28E : ; Aufbau:JP KOMM | 784/ F2AE : 24 INC H |
749/ F28E : ; DB 'KNAME ' ;8 Zeichen mit Space aufgefüllt | 785/ F2AF : [780] endif |
750/ F28E : ; DA 00 ;Ende Kommandofeld | 786/ F2AF : C9 RET ;NICHT GEFUNDEN |
751/ F28E : ; oder JP KOMM1 | 787/ F2B0 : C1 CPE1: POP BC ;TRANS.-KOMMANDO GEFUNDEN |
752/ F28E : ; DB 'K1NAME ' | 788/ F2B1 : C9 RET |
753/ F28E : ; DB 0 ;Ende Kommando 1 | 789/ F2B2 : ;VERGLEICH EINGABE MIT TREIBERNAMEN BAT UND CRT |
754/ F28E : ; JP KOMM2 | 790/ F2B2 : 01 06 02 LOLDV: LD BC,0206H |
755/ F28E : ; DB 'K2NAME ' | 791/ F2B5 : 21 26 FC LD HL,LOGDV+2 ;NAMENSTABELLE |
756/ F28E : ; DB 0 ;Ende Kommando 2 | 792/ F2B8 : ;VERGLEICH |
757/ F28E : ; ... | 793/ F2B8 : 11 01 01 LOCK: LD DE,INTLN+1 |
758/ F28E : ; JP KOMMN | 794/ F2BB : C5 LOCK1: PUSH BC |
759/ F28E : ; DB 'KNNAME ' | 795/ F2BC : 41 LD B,C |
760/ F28E : ; DA 0 ;Ende Kommandofeld | 796/ F2BD : 05 DEC B |
761/ F28E : ; a) Eingang | 797/ F2BE : 05 DEC B |
762/ F28E : ; - CPROM | 798/ F2BF : CD 6C F2 CALL CHEC |
763/ F28E : ; gerufen von: WBOOT, GOCPM | 799/ F2C2 : C1 POP BC |
764/ F28E : ; Parameter : INTLN INTLN+1 enthält Kommando in der Länge 8 Bytes | 800/ F2C3 : C8 RET Z ;GEFUNDEN |
765/ F28E : ; b) gerufene Programme | 801/ F2C4 : 79 LD A,C |
766/ F28E : ; - LOCK Suchen String | 802/ F2C5 : 23 LOCK2: INC HL |
767/ F28E : ; c) Ausgang | 803/ F2C6 : 3D DEC A |
768/ F28E : ; d) Return | 804/ F2C7 : 20 FC JR NZ, LOCK2 |
769/ F28E : ; Parameter: Z 0 Kommando nicht gefunden | 805/ F2C9 : 10 F0 DJNZ LOCK1 |
770/ F28E : ; 1 Kommando gefunden | 806/ F2CB : F6 01 OR 1 |
771/ F28E : ; HL Adresse der Kommandoroutine | 807/ F2CD : C9 RET |
772/ F28E : ; DE Adresse des Kommandos im Speicher | 808/ F2CE : ; |
773/ F28E : ; | 809/ F2CE : ;PRUEFEN TREIBERADRESSE ENTSPRECHEND I/O-BYTE |
774/ F28E : 21 00 FC CPROM: LD HL,0FC00H ;ANFANGSADRESSE | 810/ F2CE : ; |
775/ F291 : E5 CP1: PUSH HL | 811/ F2CE : ; Funktion: Lesen einer ausgewählten Treiberadresse |
776/ F292 : 3E C3 CP2: LD A,0C3H | 812/ F2CE : ; Prüfen der gültigen Zuweisung |
777/ F294 : ED A1 CPI ;SPRUNGBEFEHL SUCHEN | 813/ F2CE : ; a) Eingang |
778/ F296 : 20 12 JR NZ, CP22 ;AUF NAECHSTER ADRESSSE SUCHEN | 814/ F2CE : ; - EXIO |
779/ F298 : 23 INC HL | 815/ F2CE : ; gerufen von: ALDEV, CONST |
780/ F299 : 23 INC HL | 816/ F2CE : ; Parameter : B interne Nummer des log. Gerätes (0, 2, 4, 6) |
AS V1.42 Beta [Bld 82] - source file os.asm - page 14 - 3/20/2012 20:42:07 | 817/ F2CE : ; 0 : CONST |
| 818/ F2CE : ; 6 : LIST |
| 819/ F2CE : ; IOBYT |
781/ F29A : C5 PUSH BC | 820/ F2CE : ; Treiberadreßvektor |
782/ F29B : 01 0B 01 LD BC,10BH | 821/ F2CE : ; b) gerufene Programme |
783/ F29E : CD B8 F2 CALL LOCK ;VERGLEICH ZEICHENKETTE | 822/ F2CE : ; - COMPW Vergleichen DE und HL |
784/ F2A1 : C1 POP BC | 823/ F2CE : ; c) Ausgang |
785/ F2A2 : 28 0C JR Z, CPE1 ;GEFUNDEN | 824/ F2CE : ; - |
786/ F2A4 : AF XOR A | 825/ F2CE : ; d) Return |
787/ F2A5 : 2B DEC HL | 826/ F2CE : ; Parameter: CY 1 keine Treiberadresse gefunden (FFFFH) |
788/ F2A6 : 2B DEC HL | 827/ F2CE : ; 0 Adresse gefunden |
789/ F2A7 : BE CP A, (HL) ;00h statt C3h (Listendende)? | 828/ F2CE : ; HL Treiberadresse |
790/ F2A8 : 20 E8 JR NZ, CP2 ;WEITER MIT KOMMANDOTABELLE | 829/ F2CE : ; |
791/ F2AA : E1 CP22: POP HL | 830/ F2CE : F5 EXIO: PUSH AF |
792/ F2AB : 25 CP3: DEC H ;NAECHSTE 100H-GRENZE | 831/ F2CF : 16 00 LD D,0 |
793/ F2AC : =>FALSE if rombank | 832/ F2D1 : 58 LD E,B ;INTERNE LOG. GERAETENUMMER |
794/ F2AC : JP ROMBK ;Sprung zur ROM-Bank | 833/ F2D2 : 78 LD A,B ;(0, 2, 4, 6) |
795/ F2AC : =>TRUE else | 834/ F2D3 : B7 OR A |
796/ F2AC : 20 E3 JR NZ, CP1 | 835/ F2D4 : 3A 04 00 LD A,(IOBYT) |
797/ F2AE : 24 INC H | 836/ F2D7 : 28 04 JR Z, SH1 |
798/ F2AF : [793] endif | 837/ F2D9 : CB 3F SH: SRL A |
799/ F2AF : C9 RET ;NICHT GEFUNDEN | 838/ F2DB : 10 FC DJNZ SH |
800/ F2B0 : C1 CPE1: POP BC ;TRANS.-KOMMANDO GEFUNDEN | 839/ F2DD : CB 23 SH1: SLA E |
801/ F2B1 : C9 RET | 840/ F2DF : E6 03 AND A, 3 |
802/ F2B2 : ;VERGLEICH EINGABE MIT TREIBERNAMEN BAT UND CRT | 841/ F2E1 : 83 ADD A, E |
803/ F2B2 : 01 06 02 LOLDV: LD BC,0206H | 842/ F2E2 : 5F LD E,A |
804/ F2B5 : 21 26 FC LD HL,LOGDV+2 ;NAMENSTABELLE | 843/ F2E3 : 21 C9 EF LD HL,ATTY ;TABELLE DER TREIBERADRESSEN |
805/ F2B8 : ;VERGLEICH | 844/ F2E6 : F1 POP AF |
806/ F2B8 : 11 01 01 LOCK: LD DE,INTLN+1 | 845/ F2E7 : 19 ADD HL,DE ;ADRESSE DER BENOETIGTEN |
807/ F2BB : C5 LOCK1: PUSH BC | 846/ F2E8 : 19 ADD HL,DE ;TREIBERADR. BERECHNEN |
808/ F2BC : 41 LD B,C | 847/ F2E9 : E5 PUSH HL |
809/ F2BD : 05 DEC B | 848/ F2EA : 5E LD E,(HL) |
810/ F2BE : 05 DEC B | 849/ F2EB : 23 INC HL |
811/ F2BF : CD 6C F2 CALL CHEC | 850/ F2EC : 56 LD D,(HL) |
812/ F2C2 : C1 POP BC | 851/ F2ED : 21 FF FF LD HL,-1 |
813/ F2C3 : C8 RET Z ;GEFUNDEN | 852/ F2F0 : EB EX DE,HL |
814/ F2C4 : 79 LD A,C | 853/ F2F1 : CD BC FC CALL COMPW ;TREIBERADR. = FFFFH |
815/ F2C5 : 23 LOCK2: INC HL | 854/ F2F4 : ;JA --> GERAET NICHT ZUGEWIESEN |
816/ F2C6 : 3D DEC A | 855/ F2F4 : D1 POP DE |
817/ F2C7 : 20 FC JR NZ, LOCK2 | 856/ F2F5 : 3F CCF |
818/ F2C9 : 10 F0 DJNZ LOCK1 | 857/ F2F6 : C9 RET ;(HL)=ADR. DER TREIBERROUTINE |
819/ F2CB : F6 01 OR 1 | 858/ F2F7 : ; |
820/ F2CD : C9 RET | 859/ F2F7 : E5 MOVE: PUSH HL |
821/ F2CE : ; | 860/ F2F8 : D5 PUSH DE |
822/ F2CE : ;PRUEFEN TREIBERADRESSE ENTSPRECHEND I/O-BYTE | 861/ F2F9 : C5 PUSH BC |
823/ F2CE : ; | 862/ F2FA : ED B0 LDIR |
824/ F2CE : ; Funktion: Lesen einer ausgewählten Treiberadresse | 863/ F2FC : 18 0E JR OUTS2 |
825/ F2CE : ; Prüfen der gültigen Zuweisung | 864/ F2FE : ; |
826/ F2CE : ; a) Eingang | 865/ F2FE : 3E 0D OCRLF: LD A,0DH |
827/ F2CE : ; - EXIO | 866/ F300 : CD 05 F3 CALL OUTA |
828/ F2CE : ; gerufen von: ALDEV, CONST | 867/ F303 : 3E 0A LD A,0AH |
829/ F2CE : ; Parameter : B interne Nummer des log. Gerätes (0, 2, 4, 6) | 868/ F305 : ; |
830/ F2CE : ; 0 : CONST | 869/ F305 : E5 OUTA: PUSH HL |
831/ F2CE : ; 6 : LIST | 870/ F306 : D5 PUSH DE |
832/ F2CE : ; IOBYT | 871/ F307 : C5 PUSH BC |
833/ F2CE : ; Treiberadreßvektor | 872/ F308 : 4F LD C,A |
834/ F2CE : ; b) gerufene Programme | 873/ F309 : CD 83 F7 CALL COOUT |
835/ F2CE : ; - COMPW Vergleichen DE und HL | 874/ F30C : C1 OUTS2: POP BC |
836/ F2CE : ; c) Ausgang | 875/ F30D : D1 POP DE |
837/ F2CE : ; - | 876/ F30E : E1 POP HL |
838/ F2CE : ; d) Return | 877/ F30F : C9 RET |
839/ F2CE : ; Parameter: CY 1 keine Treiberadresse gefunden (FFFFH) | 878/ F310 : ; |
840/ F2CE : ; 0 Adresse gefunden | 879/ F310 : 3E 20 OSPAC: LD A,20H |
AS V1.42 Beta [Bld 82] - source file os.asm - page 15 - 3/20/2012 20:42:07 | 880/ F312 : 18 F1 JR OUTA |
| 881/ F314 : ; |
| 882/ F314 : ; EJEC |
841/ F2CE : ; HL Treiberadresse | 883/ F314 : ; |
842/ F2CE : ; | 884/ F314 : ;******************************************************************* |
843/ F2CE : F5 EXIO: PUSH AF | 885/ F314 : ;* * |
844/ F2CF : 16 00 LD D,0 | 886/ F314 : ;* B A S I C - O P E R A T I N G - S Y S T E M * |
845/ F2D1 : 58 LD E,B ;INTERNE LOG. GERAETENUMMER | 887/ F314 : ;* * |
846/ F2D2 : 78 LD A,B ;(0, 2, 4, 6) | 888/ F314 : ;******************************************************************* |
847/ F2D3 : B7 OR A | 889/ F314 : ; |
848/ F2D4 : 3A 04 00 LD A,(IOBYT) | 890/ F314 : ED 73 0B 00 BOS: LD (SPSV),SP ;SICHERN ANWENDERSTACK |
849/ F2D7 : 28 04 JR Z, SH1 | 891/ F318 : 31 C0 01 LD SP,1C0H ;BOS - STACK |
850/ F2D9 : CB 3F SH: SRL A | 892/ F31B : 37 SCF |
851/ F2DB : 10 FC DJNZ SH | 893/ F31C : 3F CCF |
852/ F2DD : CB 23 SH1: SLA E | 894/ F31D : E5 PUSH HL |
853/ F2DF : E6 03 AND A, 3 | 895/ F31E : D5 PUSH DE |
854/ F2E1 : 83 ADD A, E | 896/ F31F : F5 PUSH AF |
855/ F2E2 : 5F LD E,A | 897/ F320 : ED 43 0D 00 LD (BCSV),BC |
856/ F2E3 : 21 C9 EF LD HL,ATTY ;TABELLE DER TREIBERADRESSEN | 898/ F324 : 32 0F 00 LD (ASV),A |
857/ F2E6 : F1 POP AF | 899/ F327 : 21 45 F3 LD HL,BOSE |
858/ F2E7 : 19 ADD HL,DE ;ADRESSE DER BENOETIGTEN | 900/ F32A : E5 PUSH HL ;RUECKKEHRADRESSE KELLERN |
859/ F2E8 : 19 ADD HL,DE ;TREIBERADR. BERECHNEN | 901/ F32B : 3E 21 LD A,33 |
860/ F2E9 : E5 PUSH HL | 902/ F32D : B9 CP A, C |
861/ F2EA : 5E LD E,(HL) | 903/ F32E : DA DE F5 JP C, BOSER ;UNERLAUBTER SYSTEMRUF |
862/ F2EB : 23 INC HL | 904/ F331 : 06 00 LD B,0 |
863/ F2EC : 56 LD D,(HL) | 905/ F333 : 21 45 F0 LD HL,JPVEK ;ADRESSTABELLE DER SYSTEMRUFE |
864/ F2ED : 21 FF FF LD HL,-1 | 906/ F336 : 09 ADD HL,BC |
865/ F2F0 : EB EX DE,HL | 907/ F337 : 09 ADD HL,BC |
866/ F2F1 : CD BC FC CALL COMPW ;TREIBERADR. = FFFFH | 908/ F338 : 7E LD A,(HL) |
867/ F2F4 : ;JA --> GERAET NICHT ZUGEWIESEN | 909/ F339 : 23 INC HL |
868/ F2F4 : D1 POP DE | 910/ F33A : 66 LD H,(HL) |
869/ F2F5 : 3F CCF | 911/ F33B : 6F LD L,A |
870/ F2F6 : C9 RET ;(HL)=ADR. DER TREIBERROUTINE | 912/ F33C : 4B LD C,E ;EINGANGSPARAMETER |
871/ F2F7 : ; | 913/ F33D : 42 LD B,D ;UEBERNEHMEN |
872/ F2F7 : E5 MOVE: PUSH HL | 914/ F33E : 3A 0F 00 LD A,(ASV) |
873/ F2F8 : D5 PUSH DE | 915/ F341 : E5 PUSH HL ;SYSTEMRUFADRESSE KELLERN |
874/ F2F9 : C5 PUSH BC | 916/ F342 : 2E 03 LD L,3 ;ANFANGSWERT FUER CURSORRUFE |
875/ F2FA : ED B0 LDIR | 917/ F344 : C9 RET ;SPRUNG ZUR AUSFUEHRUNG |
876/ F2FC : 18 0E JR OUTS2 | 918/ F345 : ; |
877/ F2FE : ; | 919/ F345 : ;AUSGANG AUS BOS |
878/ F2FE : 3E 0D OCRLF: LD A,0DH | 920/ F345 : 30 06 BOSE: JR NC, BOSE1 ;KEIN FEHLER |
879/ F300 : CD 05 F3 CALL OUTA | 921/ F347 : CD EA F5 CALL ERDIS ;AUSGABE FEHLERMELDUNG |
880/ F303 : 3E 0A LD A,0AH | 922/ F34A : F1 POP AF |
881/ F305 : ; | 923/ F34B : 37 SCF ;SETZEN FEHLERSTATUS |
882/ F305 : E5 OUTA: PUSH HL | 924/ F34C : F5 PUSH AF |
883/ F306 : D5 PUSH DE | 925/ F34D : F1 BOSE1: POP AF |
884/ F307 : C5 PUSH BC | 926/ F34E : D1 POP DE |
885/ F308 : 4F LD C,A | 927/ F34F : E1 POP HL |
886/ F309 : CD 83 F7 CALL COOUT | 928/ F350 : 3A 0F 00 LD A,(ASV) |
887/ F30C : C1 OUTS2: POP BC | 929/ F353 : ED 4B 0D 00 LD BC,(BCSV) |
888/ F30D : D1 POP DE | 930/ F357 : ED 7B 0B 00 LD SP,(SPSV) |
889/ F30E : E1 POP HL | 931/ F35B : C9 RET |
890/ F30F : C9 RET | 932/ F35C : ; |
891/ F310 : ; | 933/ F35C : ;EINGABE ZEICHENKETTE IN MONITORPUFFER |
892/ F310 : 3E 20 OSPAC: LD A,20H | 934/ F35C : ; |
893/ F312 : 18 F1 JR OUTA | 935/ F35C : ; Funktion: Eingabe String in Monitorpuffer (80H) |
894/ F314 : ; | 936/ F35C : ; a) Eingang |
895/ F314 : ; EJEC | 937/ F35C : ; - GETMS |
896/ F314 : ; | 938/ F35C : ; gerufen von: GOCPM, REQU |
897/ F314 : ;******************************************************************* | 939/ F35C : ; Parameter : - |
898/ F314 : ;* * | 940/ F35C : ; b) gerufene Programme |
899/ F314 : ;* B A S I C - O P E R A T I N G - S Y S T E M * | 941/ F35C : ; - CONIN Eingabe Zeichen |
900/ F314 : ;* * | 942/ F35C : ; - OUTA Ausgabe Zeichen in A |
AS V1.42 Beta [Bld 82] - source file os.asm - page 16 - 3/20/2012 20:42:07 | 943/ F35C : ; c) Ausgang |
| 944/ F35C : ; - RCONB |
| 945/ F35C : ; Parameter: DE Adresse Consolepuffer (80H) |
901/ F314 : ;******************************************************************* | 946/ F35C : ; |
902/ F314 : ; | 947/ F35C : 11 80 00 GETMS: LD DE,CONBU |
903/ F314 : ED 73 0B 00 BOS: LD (SPSV),SP ;SICHERN ANWENDERSTACK | 948/ F35F : 3E 50 LD A,80 ;LAENGE INITIALISIEREN |
904/ F318 : 31 C0 01 LD SP,1C0H ;BOS - STACK | 949/ F361 : 12 LD (DE),A |
905/ F31B : 37 SCF | 950/ F362 : 3A 0F 00 LD A,(ASV) |
906/ F31C : 3F CCF | 951/ F365 : ; |
907/ F31D : E5 PUSH HL | 952/ F365 : ;EINGABE ZEICHENKETTE |
908/ F31E : D5 PUSH DE | 953/ F365 : ; |
909/ F31F : F5 PUSH AF | 954/ F365 : 6B RCONB: LD L,E |
910/ F320 : ED 43 0D 00 LD (BCSV),BC | 955/ F366 : 62 LD H,D |
911/ F324 : 32 0F 00 LD (ASV),A | 956/ F367 : 23 INC HL |
912/ F327 : 21 45 F3 LD HL,BOSE | 957/ F368 : 4D LD C,L |
913/ F32A : E5 PUSH HL ;RUECKKEHRADRESSE KELLERN | 958/ F369 : 44 LD B,H |
914/ F32B : 3E 21 LD A,33 | 959/ F36A : 03 INC BC |
915/ F32D : B9 CP A, C | 960/ F36B : 36 00 LD (HL),0 ;LAENGE ZEICHENKETTE = 0 |
916/ F32E : DA DE F5 JP C, BOSER ;UNERLAUBTER SYSTEMRUF | 961/ F36D : 32 35 00 LD (BU),A |
917/ F331 : 06 00 LD B,0 | 962/ F370 : E5 GETS1: PUSH HL |
918/ F333 : 21 45 F0 LD HL,JPVEK ;ADRESSTABELLE DER SYSTEMRUFE | 963/ F371 : D5 PUSH DE |
919/ F336 : 09 ADD HL,BC | 964/ F372 : C5 PUSH BC |
920/ F337 : 09 ADD HL,BC | 965/ F373 : CD 7F F7 CALL CONIN ;EINGABE EIN ZEICHEN |
921/ F338 : 7E LD A,(HL) | 966/ F376 : C1 POP BC |
922/ F339 : 23 INC HL | 967/ F377 : D1 POP DE |
923/ F33A : 66 LD H,(HL) | 968/ F378 : E1 POP HL |
924/ F33B : 6F LD L,A | 969/ F379 : D8 RET C ;FEHLER BEI ZEICHENEINGABE |
925/ F33C : 4B LD C,E ;EINGANGSPARAMETER | 970/ F37A : E5 PUSH HL |
926/ F33D : 42 LD B,D ;UEBERNEHMEN | 971/ F37B : 21 17 00 LD HL,COLSW ;ZELLE FUER FARBSTEUERZEICHEN |
927/ F33E : 3A 0F 00 LD A,(ASV) | 972/ F37E : 34 INC (HL) |
928/ F341 : E5 PUSH HL ;SYSTEMRUFADRESSE KELLERN | 973/ F37F : 35 DEC (HL) ; HL <> 0 ? |
929/ F342 : 2E 03 LD L,3 ;ANFANGSWERT FUER CURSORRUFE | 974/ F380 : E1 POP HL |
930/ F344 : C9 RET ;SPRUNG ZUR AUSFUEHRUNG | 975/ F381 : 20 2B JR NZ, GETS0 ;dann UEBERNEHMEN FARBCODE |
931/ F345 : ; | 976/ F383 : FE 03 CP A, 03 ;STOP - TASTE |
932/ F345 : ;AUSGANG AUS BOS | 977/ F385 : 20 03 JR NZ, GETS2 |
933/ F345 : 30 06 BOSE: JR NC, BOSE1 ;KEIN FEHLER | 978/ F387 : AF XOR A |
934/ F347 : CD EA F5 CALL ERDIS ;AUSGABE FEHLERMELDUNG | 979/ F388 : 37 SCF |
935/ F34A : F1 POP AF | 980/ F389 : C9 RET |
936/ F34B : 37 SCF ;SETZEN FEHLERSTATUS | 981/ F38A : FE 1F GETS2: CP A, 1FH ;DEL - TASTE |
937/ F34C : F5 PUSH AF | 982/ F38C : 28 1B JR Z, GETS5 ;LOESCHEN LETZTES ZEICHEN |
938/ F34D : F1 BOSE1: POP AF | 983/ F38E : FE 02 CP A, 2 ;CLLN - TASTE |
939/ F34E : D1 POP DE | 984/ F390 : 20 07 JR NZ, GETS4 |
940/ F34F : E1 POP HL | 985/ F392 : CD C6 F3 GETS3: CALL GETBS |
941/ F350 : 3A 0F 00 LD A,(ASV) | 986/ F395 : 20 FB JR NZ, GETS3 ;LOESCHEN GESAMTE ZEILE |
942/ F353 : ED 4B 0D 00 LD BC,(BCSV) | 987/ F397 : 18 D7 JR GETS1 |
943/ F357 : ED 7B 0B 00 LD SP,(SPSV) | 988/ F399 : FE 0D GETS4: CP A, 0DH ;ENTER - TASTE |
944/ F35B : C9 RET | 989/ F39B : 28 20 JR Z, GETSE ;ENDE |
945/ F35C : ; | 990/ F39D : FE 0B CP A, 0BH ;CURSOR HOCH |
946/ F35C : ;EINGABE ZEICHENKETTE IN MONITORPUFFER | 991/ F39F : 28 CF JR Z, GETS1 ;IGNORIEREN |
947/ F35C : ; | 992/ F3A1 : FE 0A CP A, 0AH ;CURSOR RUNTER |
948/ F35C : ; Funktion: Eingabe String in Monitorpuffer (80H) | 993/ F3A3 : 28 CB JR Z, GETS1 ;IGNORIEREN |
949/ F35C : ; a) Eingang | 994/ F3A5 : FE 08 CP A, 8 ;CURSOR LINKS |
950/ F35C : ; - GETMS | 995/ F3A7 : 20 05 JR NZ, GETS0 |
951/ F35C : ; gerufen von: GOCPM, REQU | 996/ F3A9 : CD C6 F3 GETS5: CALL GETBS ;LETZTES ZEICHEN LOESCHEN |
952/ F35C : ; Parameter : - | 997/ F3AC : 18 C2 JR GETS1 |
953/ F35C : ; b) gerufene Programme | 998/ F3AE : FE 10 GETS0: CP A, 10H ;CTRL/P |
954/ F35C : ; - CONIN Eingabe Zeichen | 999/ F3B0 : 28 03 JR Z, GETS8 ;NUR AUSFUEHREN |
955/ F35C : ; - OUTA Ausgabe Zeichen in A | 1000/ F3B2 : 34 INC (HL) ;ZEICHEN IN |
956/ F35C : ; c) Ausgang | 1001/ F3B3 : 02 LD (BC),A ;ZEICHENKETTE |
957/ F35C : ; - RCONB | 1002/ F3B4 : 03 INC BC ;UEBERNEHMEN |
958/ F35C : ; Parameter: DE Adresse Consolepuffer (80H) | 1003/ F3B5 : CD 05 F3 GETS8: CALL OUTA ;AUSGABE DES ZEICHENS |
959/ F35C : ; | 1004/ F3B8 : D8 RET C ;FEHLER BEI AUSGABE |
960/ F35C : 11 80 00 GETMS: LD DE,CONBU | 1005/ F3B9 : 1A LD A,(DE) |
AS V1.42 Beta [Bld 82] - source file os.asm - page 17 - 3/20/2012 20:42:07 | 1006/ F3BA : BE CP A, (HL) ;PUFFER VOLL? |
| 1007/ F3BB : 20 B3 JR NZ, GETS1 |
| 1008/ F3BD : 3A 35 00 GETSE: LD A,(BU) |
961/ F35F : 3E 50 LD A,80 ;LAENGE INITIALISIEREN | 1009/ F3C0 : 32 0F 00 LD (ASV),A |
962/ F361 : 12 LD (DE),A | 1010/ F3C3 : C3 FE F2 JP OCRLF |
963/ F362 : 3A 0F 00 LD A,(ASV) | 1011/ F3C6 : ; |
964/ F365 : ; | 1012/ F3C6 : ;BEHANDLUNG EIN ZEICHEN LOESCHEN |
965/ F365 : ;EINGABE ZEICHENKETTE | 1013/ F3C6 : 34 GETBS: INC (HL) |
966/ F365 : ; | 1014/ F3C7 : 35 GBS1: DEC (HL) |
967/ F365 : 6B RCONB: LD L,E | 1015/ F3C8 : C8 RET Z ;ALLES GELOESCHT |
968/ F366 : 62 LD H,D | 1016/ F3C9 : 0B DEC BC |
969/ F367 : 23 INC HL | 1017/ F3CA : 0A LD A,(BC) |
970/ F368 : 4D LD C,L | 1018/ F3CB : FE 09 CP A, 9 ;CURSOR RECHTS |
971/ F369 : 44 LD B,H | 1019/ F3CD : |
972/ F36A : 03 INC BC | 1020/ F3CD : 28 0C JR Z, GBS2 |
973/ F36B : 36 00 LD (HL),0 ;LAENGE ZEICHENKETTE = 0 | 1021/ F3CF : FE 20 CP A, 20H |
974/ F36D : 32 35 00 LD (BU),A | 1022/ F3D1 : 38 F4 JR C, GBS1 ;STEUERZEICHEN GEFUNDEN |
975/ F370 : E5 GETS1: PUSH HL | 1023/ F3D3 : 3E 08 LD A,8 |
976/ F371 : D5 PUSH DE | 1024/ F3D5 : CD 05 F3 CALL OUTA |
977/ F372 : C5 PUSH BC | 1025/ F3D8 : CD 10 F3 CALL OSPAC |
978/ F373 : CD 7F F7 CALL CONIN ;EINGABE EIN ZEICHEN | 1026/ F3DB : 3E 08 GBS2: LD A,8 |
979/ F376 : C1 POP BC | 1027/ F3DD : CD 05 F3 CALL OUTA |
980/ F377 : D1 POP DE | 1028/ F3E0 : 35 DEC (HL) |
981/ F378 : E1 POP HL | 1029/ F3E1 : C9 RET |
982/ F379 : D8 RET C ;FEHLER BEI ZEICHENEINGABE | 1030/ F3E2 : ; |
983/ F37A : E5 PUSH HL | 1031/ F3E2 : ;AUSGABE ZEICHENKETTE |
984/ F37B : 21 17 00 LD HL,COLSW ;ZELLE FUER FARBSTEUERZEICHEN | 1032/ F3E2 : 1A PRNST: LD A,(DE) |
985/ F37E : 34 INC (HL) | 1033/ F3E3 : B7 OR A ;ZEICHENKETTENENDE ? |
986/ F37F : 35 DEC (HL) ; HL <> 0 ? | 1034/ F3E4 : 20 06 JR NZ, PRN1 |
987/ F380 : E1 POP HL | 1035/ F3E6 : 3A 17 00 LD A,(COLSW) |
988/ F381 : 20 2B JR NZ, GETS0 ;dann UEBERNEHMEN FARBCODE | 1036/ F3E9 : B7 OR A ;WAR 0-BYTE EIN FARBCODE ? |
989/ F383 : FE 03 CP A, 03 ;STOP - TASTE | 1037/ F3EA : C8 RET Z ;KEIN FARBCODE |
990/ F385 : 20 03 JR NZ, GETS2 | 1038/ F3EB : AF XOR A |
991/ F387 : AF XOR A | 1039/ F3EC : CD 05 F3 PRN1: CALL OUTA |
992/ F388 : 37 SCF | 1040/ F3EF : D8 RET C ;FEHLER BEI AUSGABE |
993/ F389 : C9 RET | 1041/ F3F0 : 13 INC DE |
994/ F38A : FE 1F GETS2: CP A, 1FH ;DEL - TASTE | 1042/ F3F1 : 18 EF JR PRNST ;NAECHSTES ZEICHEN |
995/ F38C : 28 1B JR Z, GETS5 ;LOESCHEN LETZTES ZEICHEN | 1043/ F3F3 : ; |
996/ F38E : FE 02 CP A, 2 ;CLLN - TASTE | 1044/ F3F3 : ;ABFRAGE VERSIONSNUMMER |
997/ F390 : 20 07 JR NZ, GETS4 | 1045/ F3F3 : ; |
998/ F392 : CD C6 F3 GETS3: CALL GETBS | 1046/ F3F3 : =>FALSE RETVN: IF osver == 11 |
999/ F395 : 20 FB JR NZ, GETS3 ;LOESCHEN GESAMTE ZEILE | 1047/ F3F3 : LD HL,101H |
1000/ F397 : 18 D7 JR GETS1 | 1048/ F3F3 : =>TRUE ELSEIF osver == 12 |
1001/ F399 : FE 0D GETS4: CP A, 0DH ;ENTER - TASTE | 1049/ F3F3 : 21 02 01 LD HL,102H |
1002/ F39B : 28 20 JR Z, GETSE ;ENDE | 1050/ F3F6 : =>FALSE ELSEIF osver == 13 |
1003/ F39D : FE 0B CP A, 0BH ;CURSOR HOCH | 1051/ F3F6 : LD HL,103H |
1004/ F39F : 28 CF JR Z, GETS1 ;IGNORIEREN | 1052/ F3F6 : [1046] ENDIF |
1005/ F3A1 : FE 0A CP A, 0AH ;CURSOR RUNTER | 1053/ F3F6 : 18 38 JR CLR1 |
1006/ F3A3 : 28 CB JR Z, GETS1 ;IGNORIEREN | 1054/ F3F8 : ; |
1007/ F3A5 : FE 08 CP A, 8 ;CURSOR LINKS | 1055/ F3F8 : ;OPEN FUER KASSETTE LESEN |
1008/ F3A7 : 20 05 JR NZ, GETS0 | 1056/ F3F8 : ; |
1009/ F3A9 : CD C6 F3 GETS5: CALL GETBS ;LETZTES ZEICHEN LOESCHEN | 1057/ F3F8 : CD 93 F5 OPENR: CALL REQU ;AUSGABE STARTMELDUNG |
1010/ F3AC : 18 C2 JR GETS1 | 1058/ F3FB : 3C INC A |
1011/ F3AE : FE 10 GETS0: CP A, 10H ;CTRL/P | 1059/ F3FC : D8 RET C ;STOP GEGEBEN |
1012/ F3B0 : 28 03 JR Z, GETS8 ;NUR AUSFUEHREN | 1060/ F3FD : E5 PUSH HL |
1013/ F3B2 : 34 INC (HL) ;ZEICHEN IN | 1061/ F3FE : AF XOR A ;BLOCKNUMMER 0 LESEN |
1014/ F3B3 : 02 LD (BC),A ;ZEICHENKETTE | 1062/ F3FF : 32 6C 00 LD (LBLNR),A |
1015/ F3B4 : 03 INC BC ;UEBERNEHMEN | 1063/ F402 : CD 34 F4 CALL READ ;BLOCKLESEN |
1016/ F3B5 : CD 05 F3 GETS8: CALL OUTA ;AUSGABE DES ZEICHENS | 1064/ F405 : E1 POP HL |
1017/ F3B8 : D8 RET C ;FEHLER BEI AUSGABE | 1065/ F406 : 22 1B 00 LD (DMA),HL ;PUFFERADR. ZURUECKSETZEN |
1018/ F3B9 : 1A LD A,(DE) | 1066/ F409 : D8 RET C ;LESEFEHLER |
1019/ F3BA : BE CP A, (HL) ;PUFFER VOLL? | 1067/ F40A : E5 PUSH HL |
1020/ F3BB : 20 B3 JR NZ, GETS1 | 1068/ F40B : 11 11 00 LD DE,17 ;OFFS. AADR (= AADR-FCB) |
AS V1.42 Beta [Bld 82] - source file os.asm - page 18 - 3/20/2012 20:42:07 | 1069/ F40E : 19 ADD HL,DE |
| 1070/ F40F : 11 6D 00 LD DE,AADR |
| 1071/ F412 : |
1021/ F3BD : 3A 35 00 GETSE: LD A,(BU) | 1072/ F412 : =>FALSE IF osver == 11 |
1022/ F3C0 : 32 0F 00 LD (ASV),A | 1073/ F412 : LD BC,6 |
1023/ F3C3 : C3 FE F2 JP OCRLF | 1074/ F412 : =>TRUE ELSE |
1024/ F3C6 : ; | 1075/ F412 : 01 08 00 LD BC,8 |
1025/ F3C6 : ;BEHANDLUNG EIN ZEICHEN LOESCHEN | 1076/ F415 : [1072] ENDIF |
1026/ F3C6 : 34 GETBS: INC (HL) | 1077/ F415 : |
1027/ F3C7 : 35 GBS1: DEC (HL) | 1078/ F415 : ED B0 LDIR ;DATEIPARAMETER UEBERNEHMEN |
1028/ F3C8 : C8 RET Z ;ALLES GELOESCHT | 1079/ F417 : D1 POP DE |
1029/ F3C9 : 0B DEC BC | 1080/ F418 : 21 5C 00 LD HL,FCB |
1030/ F3CA : 0A LD A,(BC) | 1081/ F41B : 06 0B LD B,11 |
1031/ F3CB : FE 09 CP A, 9 ;CURSOR RECHTS | 1082/ F41D : CD 6C F2 CALL CHEC ;NAMENSVERGLEICH |
1032/ F3CD : | 1083/ F420 : 3E 0D LD A,13 |
1033/ F3CD : 28 0C JR Z, GBS2 | 1084/ F422 : 37 SCF |
1034/ F3CF : FE 20 CP A, 20H | 1085/ F423 : C0 RET NZ ;FALSCHE DATEI GELESEN |
1035/ F3D1 : 38 F4 JR C, GBS1 ;STEUERZEICHEN GEFUNDEN | 1086/ F424 : |
1036/ F3D3 : 3E 08 LD A,8 | 1087/ F424 : =>FALSE IF osver == 11 |
1037/ F3D5 : CD 05 F3 CALL OUTA | 1088/ F424 : LD a,(fcb+11) |
1038/ F3D8 : CD 10 F3 CALL OSPAC | 1089/ F424 : =>TRUE ELSE |
1039/ F3DB : 3E 08 GBS2: LD A,8 | 1090/ F424 : 3A 73 00 LD A,(FCB+23) ;SCHUTZBYTE |
1040/ F3DD : CD 05 F3 CALL OUTA | 1091/ F427 : [1087] ENDIF |
1041/ F3E0 : 35 DEC (HL) | 1092/ F427 : |
1042/ F3E1 : C9 RET | 1093/ F427 : B7 OR A |
1043/ F3E2 : ; | 1094/ F428 : C8 RET Z ;KEIN SCHUTZ |
1044/ F3E2 : ;AUSGABE ZEICHENKETTE | 1095/ F429 : 32 C0 EF LD (MAPPI),A ;SYSTEMSCHUTZ EIN |
1045/ F3E2 : 1A PRNST: LD A,(DE) | 1096/ F42C : C9 RET |
1046/ F3E3 : B7 OR A ;ZEICHENKETTENENDE ? | 1097/ F42D : ; |
1047/ F3E4 : 20 06 JR NZ, PRN1 | 1098/ F42D : ;CLOSE FUER KASSETTE LESEN |
1048/ F3E6 : 3A 17 00 LD A,(COLSW) | 1099/ F42D : ; |
1049/ F3E9 : B7 OR A ;WAR 0-BYTE EIN FARBCODE ? | 1100/ F42D : 21 6D 00 CLOSR: LD HL,AADR ;ADRESSE DER DATEIPARAMETER |
1050/ F3EA : C8 RET Z ;KEIN FARBCODE | 1101/ F430 : 22 0D 00 CLR1: LD (BCSV),HL ;UEBERGEBEN |
1051/ F3EB : AF XOR A | 1102/ F433 : C9 RET |
1052/ F3EC : CD 05 F3 PRN1: CALL OUTA | 1103/ F434 : ; |
1053/ F3EF : D8 RET C ;FEHLER BEI AUSGABE | 1104/ F434 : ;BLOCKLESEN SEQUENTIELL |
1054/ F3F0 : 13 INC DE | 1105/ F434 : ; |
1055/ F3F1 : 18 EF JR PRNST ;NAECHSTES ZEICHEN | 1106/ F434 : CD D8 F4 READ: CALL RRAND ;BLOCK LESEN |
1056/ F3F3 : ; | 1107/ F437 : D8 RET C ;LESEFEHLER |
1057/ F3F3 : ;ABFRAGE VERSIONSNUMMER | 1108/ F438 : 22 1B 00 LD (DMA),HL ;PUFFERADR. UM 128 ERHOEHEN |
1058/ F3F3 : ; | 1109/ F43B : 21 6C 00 LD HL,LBLNR |
1059/ F3F3 : =>FALSE RETVN: IF osver == 11 | 1110/ F43E : 34 INC (HL) ;ZU LESENDE BLOCKNUMMER ERHOEHEN |
1060/ F3F3 : LD HL,101H | 1111/ F43F : F5 PUSH AF |
1061/ F3F3 : =>TRUE ELSEIF osver == 12 | 1112/ F440 : CD 10 F3 CALL OSPAC ;AUSGABE LEERZEICHEN |
1062/ F3F3 : 21 02 01 LD HL,102H | 1113/ F443 : F1 POP AF |
1063/ F3F6 : =>FALSE ELSEIF osver == 13 | 1114/ F444 : C9 RET |
1064/ F3F6 : LD HL,103H | 1115/ F445 : ; |
1065/ F3F6 : [1059] ENDIF | 1116/ F445 : ;OPEN FUER KASSETTE SCHREIBEN |
1066/ F3F6 : 18 38 JR CLR1 | 1117/ F445 : ; |
1067/ F3F8 : ; | 1118/ F445 : CD 93 F5 OPENW: CALL REQU ;AUSGABE STARTMELDUNG |
1068/ F3F8 : ;OPEN FUER KASSETTE LESEN | 1119/ F448 : 3C INC A |
1069/ F3F8 : ; | 1120/ F449 : D8 RET C ;STOP GEGEBEN |
1070/ F3F8 : CD 93 F5 OPENR: CALL REQU ;AUSGABE STARTMELDUNG | 1121/ F44A : E5 PUSH HL |
1071/ F3FB : 3C INC A | 1122/ F44B : 21 5C 00 LD HL,FCB |
1072/ F3FC : D8 RET C ;STOP GEGEBEN | 1123/ F44E : 22 1B 00 LD (DMA),HL ;SCHREIBEN DES FCB |
1073/ F3FD : E5 PUSH HL | 1124/ F451 : 3E 00 LD A,0 |
1074/ F3FE : AF XOR A ;BLOCKNUMMER 0 LESEN | 1125/ F453 : |
1075/ F3FF : 32 6C 00 LD (LBLNR),A | 1126/ F453 : =>FALSE IF osver == 11 |
1076/ F402 : CD 34 F4 CALL READ ;BLOCKLESEN | 1127/ F453 : LD (fcb+11),a |
1077/ F405 : E1 POP HL | 1128/ F453 : =>TRUE ELSE |
1078/ F406 : 22 1B 00 LD (DMA),HL ;PUFFERADR. ZURUECKSETZEN | 1129/ F453 : 32 73 00 LD (FCB+23),A ;KEIN SCHUTZ |
1079/ F409 : D8 RET C ;LESEFEHLER | 1130/ F456 : [1126] ENDIF |
1080/ F40A : E5 PUSH HL | 1131/ F456 : |
AS V1.42 Beta [Bld 82] - source file os.asm - page 19 - 3/20/2012 20:42:07 | 1132/ F456 : 01 70 17 LD BC,1770H ;LANGER VORTON |
| 1133/ F459 : AF XOR A |
| 1134/ F45A : 32 6B 00 LD (BLNR),A ;BLOCKNUMMER 0 |
1081/ F40B : 11 11 00 LD DE,17 ;OFFS. AADR (= AADR-FCB) | 1135/ F45D : 3E 02 LD A,2 |
1082/ F40E : 19 ADD HL,DE | 1136/ F45F : 32 6C 00 LD (LBLNR),A |
1083/ F40F : 11 6D 00 LD DE,AADR | 1137/ F462 : CD 72 F4 CALL WRIT1 ;SCHREIBEN BLOCK |
1084/ F412 : | 1138/ F465 : E1 POP HL |
1085/ F412 : =>FALSE IF osver == 11 | 1139/ F466 : 22 1B 00 LD (DMA),HL ;PUFFERADR. AUF AUSGANGSWERT |
1086/ F412 : LD BC,6 | 1140/ F469 : C9 RET |
1087/ F412 : =>TRUE ELSE | 1141/ F46A : ; |
1088/ F412 : 01 08 00 LD BC,8 | 1142/ F46A : ;CLOSE FUER KASSETTE SCHREIBEN |
1089/ F415 : [1085] ENDIF | 1143/ F46A : ; |
1090/ F415 : | 1144/ F46A : 3E FF CLOSW: LD A,0FFH |
1091/ F415 : ED B0 LDIR ;DATEIPARAMETER UEBERNEHMEN | 1145/ F46C : 32 6B 00 LD (BLNR),A ;BLOCKNUMMER FFH |
1092/ F417 : D1 POP DE | 1146/ F46F : ; |
1093/ F418 : 21 5C 00 LD HL,FCB | 1147/ F46F : ;BLOCKSCHREIBEN SEQUENTIELL |
1094/ F41B : 06 0B LD B,11 | 1148/ F46F : ; |
1095/ F41D : CD 6C F2 CALL CHEC ;NAMENSVERGLEICH | 1149/ F46F : 01 A0 00 WRITE: LD BC,0A0H ;KURZER VORTON |
1096/ F420 : 3E 0D LD A,13 | 1150/ F472 : ED 5B 1B 00 WRIT1: LD DE,(DMA) ;PUFFERADRESSE |
1097/ F422 : 37 SCF | 1151/ F476 : 3A C0 EF LD A,(MAPPI) |
1098/ F423 : C0 RET NZ ;FALSCHE DATEI GELESEN | 1152/ F479 : B7 OR A |
1099/ F424 : | 1153/ F47A : 28 04 JR Z, WRIT2 ;KEIN SCHUTZ VOR SCHREIBEN |
1100/ F424 : =>FALSE IF osver == 11 | 1154/ F47C : 3E 09 WERR: LD A,9 ;SCHREIBSCHUTZ |
1101/ F424 : LD a,(fcb+11) | 1155/ F47E : 37 WERR1: SCF ;FEHLERAUSGANG |
1102/ F424 : =>TRUE ELSE | 1156/ F47F : C9 RET |
1103/ F424 : 3A 73 00 LD A,(FCB+23) ;SCHUTZBYTE | 1157/ F480 : 2A 36 00 WRIT2: LD HL,(EOR) ;LOGISCHES RAM - ENDE |
1104/ F427 : [1100] ENDIF | 1158/ F483 : D5 PUSH DE |
1105/ F427 : | 1159/ F484 : 11 7F 00 LD DE,7FH |
1106/ F427 : B7 OR A | 1160/ F487 : ED 52 SBC HL,DE |
1107/ F428 : C8 RET Z ;KEIN SCHUTZ | 1161/ F489 : D1 POP DE |
1108/ F429 : 32 C0 EF LD (MAPPI),A ;SYSTEMSCHUTZ EIN | 1162/ F48A : CD BC FC CALL COMPW ;ADRESSVERGLEICH |
1109/ F42C : C9 RET | 1163/ F48D : 3E 0A LD A,10 |
1110/ F42D : ; | 1164/ F48F : 38 ED JR C, WERR1 ;BLOCK LIEGT HINTER RAM - ENDE |
1111/ F42D : ;CLOSE FUER KASSETTE LESEN | 1165/ F491 : EB EX DE,HL |
1112/ F42D : ; | 1166/ F492 : CD 3B F2 CALL CHRAM ;LOGISCHER SPEICHERTEST |
1113/ F42D : 21 6D 00 CLOSR: LD HL,AADR ;ADRESSE DER DATEIPARAMETER | 1167/ F495 : 30 E5 JR NC, WERR ;BEREICH IST GESCHUETZT/ROM |
1114/ F430 : 22 0D 00 CLR1: LD (BCSV),HL ;UEBERGEBEN | 1168/ F497 : CD D6 FE CALL KARAM ;AUSGABE BLOCK |
1115/ F433 : C9 RET | 1169/ F49A : 22 1B 00 LD (DMA),HL ;PUFFERADR. UM 128 ERHOEHEN |
1116/ F434 : ; | 1170/ F49D : 21 6B 00 LD HL,BLNR |
1117/ F434 : ;BLOCKLESEN SEQUENTIELL | 1171/ F4A0 : 7E LD A,(HL) |
1118/ F434 : ; | 1172/ F4A1 : 32 0F 00 LD (ASV),A ;BLOCKNUMMER ZURUECKGEBEN |
1119/ F434 : CD D8 F4 READ: CALL RRAND ;BLOCK LESEN | 1173/ F4A4 : 34 INC (HL) ;BLOCKNUMMER ERHOEHEN |
1120/ F437 : D8 RET C ;LESEFEHLER | 1174/ F4A5 : C3 E3 FA JP INITA ;TASTATUR INITIALISIERN |
1121/ F438 : 22 1B 00 LD (DMA),HL ;PUFFERADR. UM 128 ERHOEHEN | 1175/ F4A8 : ; |
1122/ F43B : 21 6C 00 LD HL,LBLNR | 1176/ F4A8 : ;AUSGABE DER AKTUELLEN UHRZEIT |
1123/ F43E : 34 INC (HL) ;ZU LESENDE BLOCKNUMMER ERHOEHEN | 1177/ F4A8 : ; |
1124/ F43F : F5 PUSH AF | 1178/ F4A8 : D5 PRITI: PUSH DE |
1125/ F440 : CD 10 F3 CALL OSPAC ;AUSGABE LEERZEICHEN | 1179/ F4A9 : 01 1D 00 LD BC,STUND ;ADRESSE DER UHRZEIT |
1126/ F443 : F1 POP AF | 1180/ F4AC : 16 03 LD D,3 |
1127/ F444 : C9 RET | 1181/ F4AE : 21 01 01 LD HL,INTLN+1 ;ZWISCHENPUFFER |
1128/ F445 : ; | 1182/ F4B1 : E5 PUSH HL |
1129/ F445 : ;OPEN FUER KASSETTE SCHREIBEN | 1183/ F4B2 : 2B DEC HL |
1130/ F445 : ; | 1184/ F4B3 : 36 3A PRTI1: LD (HL),':' |
1131/ F445 : CD 93 F5 OPENW: CALL REQU ;AUSGABE STARTMELDUNG | 1185/ F4B5 : 23 INC HL |
1132/ F448 : 3C INC A | 1186/ F4B6 : 0A LD A,(BC) |
1133/ F449 : D8 RET C ;STOP GEGEBEN | 1187/ F4B7 : C5 PUSH BC |
1134/ F44A : E5 PUSH HL | 1188/ F4B8 : B7 OR A |
1135/ F44B : 21 5C 00 LD HL,FCB | 1189/ F4B9 : 28 07 JR Z, PRTI3 |
1136/ F44E : 22 1B 00 LD (DMA),HL ;SCHREIBEN DES FCB | 1190/ F4BB : 47 LD B,A ; |
1137/ F451 : 3E 00 LD A,0 | 1191/ F4BC : AF XOR A ;INTERNE ZAHL |
1138/ F453 : | 1192/ F4BD : C6 01 PRTI2: ADD A, 1 ;IN BCD - ZAHL UMWANDELN |
1139/ F453 : =>FALSE IF osver == 11 | 1193/ F4BF : 27 DAA ; |
1140/ F453 : LD (fcb+11),a | 1194/ F4C0 : 10 FB DJNZ PRTI2 ; |
AS V1.42 Beta [Bld 82] - source file os.asm - page 20 - 3/20/2012 20:42:07 | 1195/ F4C2 : 77 PRTI3: LD (HL),A |
| 1196/ F4C3 : 3E 33 LD A,33H ; |
| 1197/ F4C5 : ED 67 RRD ;IN DRUCKBARE ZEICHEN |
1141/ F453 : =>TRUE ELSE | 1198/ F4C7 : 23 INC HL ;UMWANDELN |
1142/ F453 : 32 73 00 LD (FCB+23),A ;KEIN SCHUTZ | 1199/ F4C8 : 77 LD (HL),A ; |
1143/ F456 : [1139] ENDIF | 1200/ F4C9 : 23 INC HL |
1144/ F456 : | 1201/ F4CA : 36 00 LD (HL),0 ;ENDE ZEICHENKETTE |
1145/ F456 : 01 70 17 LD BC,1770H ;LANGER VORTON | 1202/ F4CC : C1 POP BC |
1146/ F459 : AF XOR A | 1203/ F4CD : 03 INC BC |
1147/ F45A : 32 6B 00 LD (BLNR),A ;BLOCKNUMMER 0 | 1204/ F4CE : 15 DEC D |
1148/ F45D : 3E 02 LD A,2 | 1205/ F4CF : 20 E2 JR NZ, PRTI1 |
1149/ F45F : 32 6C 00 LD (LBLNR),A | 1206/ F4D1 : E1 POP HL |
1150/ F462 : CD 72 F4 CALL WRIT1 ;SCHREIBEN BLOCK | 1207/ F4D2 : D1 POP DE |
1151/ F465 : E1 POP HL | 1208/ F4D3 : 0E 08 LD C,8 |
1152/ F466 : 22 1B 00 LD (DMA),HL ;PUFFERADR. AUF AUSGANGSWERT | 1209/ F4D5 : C3 F7 F2 JP MOVE ;KETTE ZUR ANGEGEBENEN ADR. |
1153/ F469 : C9 RET | 1210/ F4D8 : ; |
1154/ F46A : ; | 1211/ F4D8 : ;BLOCKLESEN |
1155/ F46A : ;CLOSE FUER KASSETTE SCHREIBEN | 1212/ F4D8 : ; |
1156/ F46A : ; | 1213/ F4D8 : 2A 36 00 RRAND: LD HL,(EOR) ;LOGISCHES RAM - ENDE |
1157/ F46A : 3E FF CLOSW: LD A,0FFH | 1214/ F4DB : 11 7F 00 LD DE,7FH |
1158/ F46C : 32 6B 00 LD (BLNR),A ;BLOCKNUMMER FFH | 1215/ F4DE : ED 52 SBC HL,DE |
1159/ F46F : ; | 1216/ F4E0 : ED 5B 1B 00 LD DE,(DMA) ;PUFFERADRESSE |
1160/ F46F : ;BLOCKSCHREIBEN SEQUENTIELL | 1217/ F4E4 : CD BC FC CALL COMPW ;ADRESSVERGLEICH |
1161/ F46F : ; | 1218/ F4E7 : 3E 0A LD A,10 |
1162/ F46F : 01 A0 00 WRITE: LD BC,0A0H ;KURZER VORTON | 1219/ F4E9 : D8 RET C ;BLOCK UEBERSCHREIBT RAM - ENDE |
1163/ F472 : ED 5B 1B 00 WRIT1: LD DE,(DMA) ;PUFFERADRESSE | 1220/ F4EA : EB EX DE,HL |
1164/ F476 : 3A C0 EF LD A,(MAPPI) | 1221/ F4EB : CD 3B F2 CALL CHRAM ;LOGISCHER SPEICHERTEST |
1165/ F479 : B7 OR A | 1222/ F4EE : 3E 09 LD A,9 |
1166/ F47A : 28 04 JR Z, WRIT2 ;KEIN SCHUTZ VOR SCHREIBEN | 1223/ F4F0 : 30 1D JR NC, ERAND ;BEREICH GESCHUETZT/ROM |
1167/ F47C : 3E 09 WERR: LD A,9 ;SCHREIBSCHUTZ | 1224/ F4F2 : F5 RR1: PUSH AF |
1168/ F47E : 37 WERR1: SCF ;FEHLERAUSGANG | 1225/ F4F3 : F1 RR2: POP AF |
1169/ F47F : C9 RET | 1226/ F4F4 : CD 59 FF CALL MAREK ;EINGABE BLOCK |
1170/ F480 : 2A 36 00 WRIT2: LD HL,(EOR) ;LOGISCHES RAM - ENDE | 1227/ F4F7 : CD E3 FA CALL INITA ;TASTATUR INITIALISIEREN |
1171/ F483 : D5 PUSH DE | 1228/ F4FA : F5 PUSH AF |
1172/ F484 : 11 7F 00 LD DE,7FH | 1229/ F4FB : E5 PUSH HL |
1173/ F487 : ED 52 SBC HL,DE | 1230/ F4FC : 21 6C 00 LD HL,LBLNR ;ZU LESENDE BLOCKNUMMER |
1174/ F489 : D1 POP DE | 1231/ F4FF : 3A 6B 00 LD A,(BLNR) ;GELESENE BLOCKNUMMER |
1175/ F48A : CD BC FC CALL COMPW ;ADRESSVERGLEICH | 1232/ F502 : BE CP A, (HL) |
1176/ F48D : 3E 0A LD A,10 | 1233/ F503 : E1 POP HL |
1177/ F48F : 38 ED JR C, WERR1 ;BLOCK LIEGT HINTER RAM - ENDE | 1234/ F504 : 38 ED JR C, RR2 ;BLOCKNUMMER NOCH NICHT ERREICHT |
1178/ F491 : EB EX DE,HL | 1235/ F506 : 28 09 JR Z, RROK ;GEFUNDEN |
1179/ F492 : CD 3B F2 CALL CHRAM ;LOGISCHER SPEICHERTEST | 1236/ F508 : FE FF CP A, 0FFH |
1180/ F495 : 30 E5 JR NC, WERR ;BEREICH IST GESCHUETZT/ROM | 1237/ F50A : 28 05 JR Z, RROK ;ENDEBLOCK GELESEN |
1181/ F497 : CD D6 FE CALL KARAM ;AUSGABE BLOCK | 1238/ F50C : F1 POP AF |
1182/ F49A : 22 1B 00 LD (DMA),HL ;PUFFERADR. UM 128 ERHOEHEN | 1239/ F50D : 3E 0B LD A,11 ;BLOCKNUMMER ZU GROSS |
1183/ F49D : 21 6B 00 LD HL,BLNR | 1240/ F50F : 37 ERAND: SCF |
1184/ F4A0 : 7E LD A,(HL) | 1241/ F510 : C9 RET |
1185/ F4A1 : 32 0F 00 LD (ASV),A ;BLOCKNUMMER ZURUECKGEBEN | 1242/ F511 : F1 RROK: POP AF |
1186/ F4A4 : 34 INC (HL) ;BLOCKNUMMER ERHOEHEN | 1243/ F512 : 3E 0C LD A,12 |
1187/ F4A5 : C3 E3 FA JP INITA ;TASTATUR INITIALISIERN | 1244/ F514 : D8 RET C ;LESEFEHLER |
1188/ F4A8 : ; | 1245/ F515 : 3A 6B 00 LD A,(BLNR) ;RUECKGABE EOF - KENNZEICHEN |
1189/ F4A8 : ;AUSGABE DER AKTUELLEN UHRZEIT | 1246/ F518 : 3C INC A |
1190/ F4A8 : ; | 1247/ F519 : 3E 00 LD A,0 |
1191/ F4A8 : D5 PRITI: PUSH DE | 1248/ F51B : 20 01 JR NZ, RROK1 |
1192/ F4A9 : 01 1D 00 LD BC,STUND ;ADRESSE DER UHRZEIT | 1249/ F51D : 3C INC A |
1193/ F4AC : 16 03 LD D,3 | 1250/ F51E : 32 0F 00 RROK1: LD (ASV),A ;1 WENN ENDEBLOCK, SONST 0 |
1194/ F4AE : 21 01 01 LD HL,INTLN+1 ;ZWISCHENPUFFER | 1251/ F521 : C9 RET |
1195/ F4B1 : E5 PUSH HL | 1252/ F522 : ; |
1196/ F4B2 : 2B DEC HL | 1253/ F522 : ; |
1197/ F4B3 : 36 3A PRTI1: LD (HL),':' | 1254/ F522 : ; |
1198/ F4B5 : 23 INC HL | 1255/ F522 : ; |
1199/ F4B6 : 0A LD A,(BC) | 1256/ F522 : ;******************************************************************* |
1200/ F4B7 : C5 PUSH BC | 1257/ F522 : ;* C L O A D - KOMMANDO * |
AS V1.42 Beta [Bld 82] - source file os.asm - page 21 - 3/20/2012 20:42:07 | 1258/ F522 : ;******************************************************************* |
| 1259/ F522 : ; |
| 1260/ F522 : ; |
1201/ F4B8 : B7 OR A | 1261/ F522 : ; Funktion: Laden eines Programms |
1202/ F4B9 : 28 07 JR Z, PRTI3 | 1262/ F522 : ; a) Eingang |
1203/ F4BB : 47 LD B,A ; | 1263/ F522 : ; - LOAD |
1204/ F4BC : AF XOR A ;INTERNE ZAHL | 1264/ F522 : ; gerufen von: INFIL, CLOAD |
1205/ F4BD : C6 01 PRTI2: ADD A, 1 ;IN BCD - ZAHL UMWANDELN | 1265/ F522 : ; Parameter : CONBU mit gesuchtem Namen |
1206/ F4BF : 27 DAA ; | 1266/ F522 : ; b) gerufene Programme |
1207/ F4C0 : 10 FB DJNZ PRTI2 ; | 1267/ F522 : ; - GVAL Parameterübernahme |
1208/ F4C2 : 77 PRTI3: LD (HL),A | 1268/ F522 : ; - MOV verschieben Speicherbereich |
1209/ F4C3 : 3E 33 LD A,33H ; | 1269/ F522 : ; - OPENR Eröffnen für Lesen |
1210/ F4C5 : ED 67 RRD ;IN DRUCKBARE ZEICHEN | 1270/ F522 : ; - READ Lesen eines Blockes |
1211/ F4C7 : 23 INC HL ;UMWANDELN | 1271/ F522 : ; - REA Abfrage Bedienerhandlung bei Fehler |
1212/ F4C8 : 77 LD (HL),A ; | 1272/ F522 : ; c) Ausgang |
1213/ F4C9 : 23 INC HL | 1273/ F522 : ; - ERPAR Parameterfehler |
1214/ F4CA : 36 00 LD (HL),0 ;ENDE ZEICHENKETTE | 1274/ F522 : ; - ERINP Eingabefehler |
1215/ F4CC : C1 POP BC | 1275/ F522 : ; - OCRLF Ausgabe CR/LF nach Einlesen |
1216/ F4CD : 03 INC BC | 1276/ F522 : ; Parameter: CY 0 keine Fehler |
1217/ F4CE : 15 DEC D | 1277/ F522 : ; 1 Fehler, Code in A |
1218/ F4CF : 20 E2 JR NZ, PRTI1 | 1278/ F522 : ; Programm ab Anfangsadresse im Speicher |
1219/ F4D1 : E1 POP HL | 1279/ F522 : ; DMA nach Programm |
1220/ F4D2 : D1 POP DE | 1280/ F522 : ; |
1221/ F4D3 : 0E 08 LD C,8 | 1281/ F522 : CD EA F1 LOAD: CALL GVAL ;NAECHSTEN PARAMETER HOLEN |
1222/ F4D5 : C3 F7 F2 JP MOVE ;KETTE ZUR ANGEGEBENEN ADR. | 1282/ F525 : C8 RET Z ;KEIN GUELTIGER NAME |
1223/ F4D8 : ; | 1283/ F526 : ; |
1224/ F4D8 : ;BLOCKLESEN | 1284/ F526 : ;DATEI LADEN OHNE START |
1225/ F4D8 : ; | 1285/ F526 : 21 E6 F5 LOAD1: LD HL,ERPAR |
1226/ F4D8 : 2A 36 00 RRAND: LD HL,(EOR) ;LOGISCHES RAM - ENDE | 1286/ F529 : E5 PUSH HL |
1227/ F4DB : 11 7F 00 LD DE,7FH | 1287/ F52A : 3A 00 01 LD A,(INTLN) ;PARAMETERLAENGE |
1228/ F4DE : ED 52 SBC HL,DE | 1288/ F52D : FE 09 CP A, 9 |
1229/ F4E0 : ED 5B 1B 00 LD DE,(DMA) ;PUFFERADRESSE | 1289/ F52F : D0 RET NC ;NAME ZU LANG |
1230/ F4E4 : CD BC FC CALL COMPW ;ADRESSVERGLEICH | 1290/ F530 : 11 5C 00 LD DE,FCB |
1231/ F4E7 : 3E 0A LD A,10 | 1291/ F533 : 3E 08 LD A,8 |
1232/ F4E9 : D8 RET C ;BLOCK UEBERSCHREIBT RAM - ENDE | 1292/ F535 : CD 88 F5 CALL MOV ;NAME IN FCB EINTRAGEN |
1233/ F4EA : EB EX DE,HL | 1293/ F538 : 08 EX AF, AF' |
1234/ F4EB : CD 3B F2 CALL CHRAM ;LOGISCHER SPEICHERTEST | 1294/ F539 : 30 0E JR NC, LOAD3 ;DATEITYP FOLGT |
1235/ F4EE : 3E 09 LD A,9 | 1295/ F53B : 08 EX AF, AF' |
1236/ F4F0 : 30 1D JR NC, ERAND ;BEREICH GESCHUETZT/ROM | 1296/ F53C : 21 43 4F LD HL,4F43H ;STANDARDEINTRAGUNG |
1237/ F4F2 : F5 RR1: PUSH AF | 1297/ F53F : 22 64 00 LD (FCB+8),HL ; |
1238/ F4F3 : F1 RR2: POP AF | 1298/ F542 : 3E 4D LD A,'M' ;COM VORNEHMEN |
1239/ F4F4 : CD 59 FF CALL MAREK ;EINGABE BLOCK | 1299/ F544 : 32 66 00 LD (FCB+10),A ; |
1240/ F4F7 : CD E3 FA CALL INITA ;TASTATUR INITIALISIEREN | 1300/ F547 : 18 16 JR LOA33 |
1241/ F4FA : F5 PUSH AF | 1301/ F549 : 79 LOAD3: LD A,C |
1242/ F4FB : E5 PUSH HL | 1302/ F54A : FE 2E CP A, '.' |
1243/ F4FC : 21 6C 00 LD HL,LBLNR ;ZU LESENDE BLOCKNUMMER | 1303/ F54C : E1 POP HL |
1244/ F4FF : 3A 6B 00 LD A,(BLNR) ;GELESENE BLOCKNUMMER | 1304/ F54D : C2 E2 F5 JP NZ, ERINP ;FALSCHES TRENNZEICHEN |
1245/ F502 : BE CP A, (HL) | 1305/ F550 : E5 PUSH HL |
1246/ F503 : E1 POP HL | 1306/ F551 : CD EA F1 CALL GVAL ;PARAMETER HOLEN |
1247/ F504 : 38 ED JR C, RR2 ;BLOCKNUMMER NOCH NICHT ERREICHT | 1307/ F554 : C8 RET Z ;KEIN GUELTIGER TYP |
1248/ F506 : 28 09 JR Z, RROK ;GEFUNDEN | 1308/ F555 : 3E 03 LD A,3 |
1249/ F508 : FE FF CP A, 0FFH | 1309/ F557 : B8 CP A, B ;TYP IST ZU LANG |
1250/ F50A : 28 05 JR Z, RROK ;ENDEBLOCK GELESEN | 1310/ F558 : D8 RET C |
1251/ F50C : F1 POP AF | 1311/ F559 : 11 64 00 LD DE,FCB+8 ;TYP IN FCB EINTRAGEN |
1252/ F50D : 3E 0B LD A,11 ;BLOCKNUMMER ZU GROSS | 1312/ F55C : CD 88 F5 CALL MOV |
1253/ F50F : 37 ERAND: SCF | 1313/ F55F : E1 LOA33: POP HL |
1254/ F510 : C9 RET | 1314/ F560 : 08 EX AF, AF' |
1255/ F511 : F1 RROK: POP AF | 1315/ F561 : D2 E2 F5 JP NC, ERINP ;ZU VIELE PARAMETER |
1256/ F512 : 3E 0C LD A,12 | 1316/ F564 : CD F8 F3 LOAD4: CALL OPENR |
1257/ F514 : D8 RET C ;LESEFEHLER | 1317/ F567 : 30 09 JR NC, LOAD5 ;KEIN FEHLER |
1258/ F515 : 3A 6B 00 LD A,(BLNR) ;RUECKGABE EOF - KENNZEICHEN | 1318/ F569 : B7 OR A |
1259/ F518 : 3C INC A | 1319/ F56A : 37 SCF |
1260/ F519 : 3E 00 LD A,0 | 1320/ F56B : C8 RET Z ;STOP GEGEBEN |
AS V1.42 Beta [Bld 82] - source file os.asm - page 22 - 3/20/2012 20:42:07 | 1321/ F56C : CD A3 F5 CALL REA ;AUSG. FEHLERMELD. WARTEN REAKT. |
| 1322/ F56F : D8 RET C ;STOP GEGEBEN |
| 1323/ F570 : 18 F2 JR LOAD4 ;WIEDERHOLUNG |
1261/ F51B : 20 01 JR NZ, RROK1 | 1324/ F572 : 2A 6D 00 LOAD5: LD HL,(AADR) ;DATEIANFANGSADRESSE |
1262/ F51D : 3C INC A | 1325/ F575 : 22 1B 00 LD (DMA),HL ;NACH ADR. KASSETTENPUFFER |
1263/ F51E : 32 0F 00 RROK1: LD (ASV),A ;1 WENN ENDEBLOCK, SONST 0 | 1326/ F578 : CD 34 F4 LOA55: CALL READ ;LESEN BLOCK |
1264/ F521 : C9 RET | 1327/ F57B : 30 05 JR NC, LOAD6 ;KEIN FEHLER |
1265/ F522 : ; | 1328/ F57D : CD A3 F5 CALL REA ;AUSG. FEHLERMELD. WARTEN REAKT. |
1266/ F522 : ; | 1329/ F580 : D8 RET C ;STOP GEGEBEN |
1267/ F522 : ; | 1330/ F581 : AF XOR A |
1268/ F522 : ; | 1331/ F582 : B7 LOAD6: OR A |
1269/ F522 : ;******************************************************************* | 1332/ F583 : 28 F3 JR Z, LOA55 ;WEITER BIS DATEIENDE LESEN |
1270/ F522 : ;* C L O A D - KOMMANDO * | 1333/ F585 : C3 FE F2 JP OCRLF |
1271/ F522 : ;******************************************************************* | 1334/ F588 : ; |
1272/ F522 : ; | 1335/ F588 : 21 01 01 MOV: LD HL,INTLN+1 ;ZWISCHENPUFFER |
1273/ F522 : ; | 1336/ F58B : 47 LD B,A |
1274/ F522 : ; Funktion: Laden eines Programms | 1337/ F58C : 7E MOV2: LD A,(HL) |
1275/ F522 : ; a) Eingang | 1338/ F58D : 12 LD (DE),A |
1276/ F522 : ; - LOAD | 1339/ F58E : 23 INC HL |
1277/ F522 : ; gerufen von: INFIL, CLOAD | 1340/ F58F : 13 INC DE |
1278/ F522 : ; Parameter : CONBU mit gesuchtem Namen | 1341/ F590 : 10 FA DJNZ MOV2 |
1279/ F522 : ; b) gerufene Programme | 1342/ F592 : C9 RET |
1280/ F522 : ; - GVAL Parameterübernahme | 1343/ F593 : ; |
1281/ F522 : ; - MOV verschieben Speicherbereich | 1344/ F593 : ;AUSGABE STARTMELDUNG, WARTEN AUF ENTER |
1282/ F522 : ; - OPENR Eröffnen für Lesen | 1345/ F593 : ; |
1283/ F522 : ; - READ Lesen eines Blockes | 1346/ F593 : ; Funktion: Ausgabe String 'start tape' , warten auf ENTER |
1284/ F522 : ; - REA Abfrage Bedienerhandlung bei Fehler | 1347/ F593 : ; a) Eingang |
1285/ F522 : ; c) Ausgang | 1348/ F593 : ; - REQU |
1286/ F522 : ; - ERPAR Parameterfehler | 1349/ F593 : ; gerufen von: OPENR, OPENW |
1287/ F522 : ; - ERINP Eingabefehler | 1350/ F593 : ; - REQU0 |
1288/ F522 : ; - OCRLF Ausgabe CR/LF nach Einlesen | 1351/ F593 : ; gerufen von: REA |
1289/ F522 : ; Parameter: CY 0 keine Fehler | 1352/ F593 : ; b) gerufene Programme |
1290/ F522 : ; 1 Fehler, Code in A | 1353/ F593 : ; - PRNST Ausgabe String |
1291/ F522 : ; Programm ab Anfangsadresse im Speicher | 1354/ F593 : ; - GETMS Eingabe String |
1292/ F522 : ; DMA nach Programm | 1355/ F593 : ; c) Ausgang |
1293/ F522 : ; | 1356/ F593 : ; - |
1294/ F522 : CD EA F1 LOAD: CALL GVAL ;NAECHSTEN PARAMETER HOLEN | 1357/ F593 : ; d) Return |
1295/ F525 : C8 RET Z ;KEIN GUELTIGER NAME | 1358/ F593 : ; Parameter: A FFH wenn STOP |
1296/ F526 : ; | 1359/ F593 : ; 0 sonst |
1297/ F526 : ;DATEI LADEN OHNE START | 1360/ F593 : ; |
1298/ F526 : 21 E6 F5 LOAD1: LD HL,ERPAR | 1361/ F593 : 11 48 FC REQU: LD DE,TXTRC ;TEXTADRESSE STARTMELDUNG |
1299/ F529 : E5 PUSH HL | 1362/ F596 : CD E2 F3 CALL PRNST ;AUSGABE TEXT |
1300/ F52A : 3A 00 01 LD A,(INTLN) ;PARAMETERLAENGE | 1363/ F599 : CD 5C F3 REQU0: CALL GETMS ;EINGABE ZEICHENKETTE |
1301/ F52D : FE 09 CP A, 9 | 1364/ F59C : 2A 1B 00 LD HL,(DMA) |
1302/ F52F : D0 RET NC ;NAME ZU LANG | 1365/ F59F : D0 RET NC ;KEIN STOP |
1303/ F530 : 11 5C 00 LD DE,FCB | 1366/ F5A0 : 3E FF LD A,0FFH |
1304/ F533 : 3E 08 LD A,8 | 1367/ F5A2 : C9 RET |
1305/ F535 : CD 88 F5 CALL MOV ;NAME IN FCB EINTRAGEN | 1368/ F5A3 : ; |
1306/ F538 : 08 EX AF, AF' | 1369/ F5A3 : ;AUSGABE FEHLERMELDUNG, WARTEN AUF BEDIENERREAKTION |
1307/ F539 : 30 0E JR NC, LOAD3 ;DATEITYP FOLGT | 1370/ F5A3 : ; |
1308/ F53B : 08 EX AF, AF' | 1371/ F5A3 : ; Funktion: Ausgabe Fehlermeldung, warten auf Bedienerhandlung |
1309/ F53C : 21 43 4F LD HL,4F43H ;STANDARDEINTRAGUNG | 1372/ F5A3 : ; a) Eingang |
1310/ F53F : 22 64 00 LD (FCB+8),HL ; | 1373/ F5A3 : ; - REA |
1311/ F542 : 3E 4D LD A,'M' ;COM VORNEHMEN | 1374/ F5A3 : ; gerufen von: LOAD |
1312/ F544 : 32 66 00 LD (FCB+10),A ; | 1375/ F5A3 : ; Parameter: A Fehlercode |
1313/ F547 : 18 16 JR LOA33 | 1376/ F5A3 : ; b) gerufene Programme |
1314/ F549 : 79 LOAD3: LD A,C | 1377/ F5A3 : ; - REQUO warten auf Bedienerhandlung |
1315/ F54A : FE 2E CP A, '.' | 1378/ F5A3 : ; - MOD verändern Speicherkonfiguration (bei Fehler 9) |
1316/ F54C : E1 POP HL | 1379/ F5A3 : ; c) Ausgang |
1317/ F54D : C2 E2 F5 JP NZ, ERINP ;FALSCHES TRENNZEICHEN | 1380/ F5A3 : ; - |
1318/ F550 : E5 PUSH HL | 1381/ F5A3 : ; d) Return |
1319/ F551 : CD EA F1 CALL GVAL ;PARAMETER HOLEN | 1382/ F5A3 : ; Parameter: CY 0 kein STOP |
1320/ F554 : C8 RET Z ;KEIN GUELTIGER TYP | 1383/ F5A3 : ; 1 STOP, Fehlercode in A |
AS V1.42 Beta [Bld 82] - source file os.asm - page 23 - 3/20/2012 20:42:07 | 1384/ F5A3 : ; |
| 1385/ F5A3 : CD EA F5 REA: CALL ERDIS ;AUSGABE FEHLERMELDUNG |
| 1386/ F5A6 : CD 99 F5 REA1: CALL REQU0 ;EINGABE ZEICHENKETTE |
1321/ F555 : 3E 03 LD A,3 | 1387/ F5A9 : D8 RET C ;STOP GEGEBEN |
1322/ F557 : B8 CP A, B ;TYP IST ZU LANG | 1388/ F5AA : 3A 0F 00 LD A,(ASV) |
1323/ F558 : D8 RET C | 1389/ F5AD : FE 09 CP 9 ;FEHLER DURCH GESCHUETZT. BEREICH |
1324/ F559 : 11 64 00 LD DE,FCB+8 ;TYP IN FCB EINTRAGEN | 1390/ F5AF : 37 SCF |
1325/ F55C : CD 88 F5 CALL MOV | 1391/ F5B0 : 3F CCF |
1326/ F55F : E1 LOA33: POP HL | 1392/ F5B1 : C0 RET NZ ;NEIN |
1327/ F560 : 08 EX AF, AF' | 1393/ F5B2 : 0E 01 LD C,1 |
1328/ F561 : D2 E2 F5 JP NC, ERINP ;ZU VIELE PARAMETER | 1394/ F5B4 : CD 31 F2 CALL MOD ;SCHUTZ AUFHEBEN, DA NICHT STOP |
1329/ F564 : CD F8 F3 LOAD4: CALL OPENR | 1395/ F5B7 : B7 OR A |
1330/ F567 : 30 09 JR NC, LOAD5 ;KEIN FEHLER | 1396/ F5B8 : C9 RET |
1331/ F569 : B7 OR A | 1397/ F5B9 : ; |
1332/ F56A : 37 SCF | 1398/ F5B9 : ;VORVERARBEITEN EINER ZEICHENKETTE |
1333/ F56B : C8 RET Z ;STOP GEGEBEN | 1399/ F5B9 : ; |
1334/ F56C : CD A3 F5 CALL REA ;AUSG. FEHLERMELD. WARTEN REAKT. | 1400/ F5B9 : 13 COEXT: INC DE |
1335/ F56F : D8 RET C ;STOP GEGEBEN | 1401/ F5BA : 1A LD A,(DE) ;LAENGE ZEICHENKETTE |
1336/ F570 : 18 F2 JR LOAD4 ;WIEDERHOLUNG | 1402/ F5BB : B7 OR A |
1337/ F572 : 2A 6D 00 LOAD5: LD HL,(AADR) ;DATEIANFANGSADRESSE | 1403/ F5BC : 28 1E JR Z, COMP3 ;ZEICHENKETTE LEER |
1338/ F575 : 22 1B 00 LD (DMA),HL ;NACH ADR. KASSETTENPUFFER | 1404/ F5BE : 6B LD L,E |
1339/ F578 : CD 34 F4 LOA55: CALL READ ;LESEN BLOCK | 1405/ F5BF : 62 LD H,D |
1340/ F57B : 30 05 JR NC, LOAD6 ;KEIN FEHLER | 1406/ F5C0 : E5 PUSH HL |
1341/ F57D : CD A3 F5 CALL REA ;AUSG. FEHLERMELD. WARTEN REAKT. | 1407/ F5C1 : 23 INC HL |
1342/ F580 : D8 RET C ;STOP GEGEBEN | 1408/ F5C2 : 13 INC DE |
1343/ F581 : AF XOR A | 1409/ F5C3 : 47 LD B,A |
1344/ F582 : B7 LOAD6: OR A | 1410/ F5C4 : 0E 00 LD C,0 |
1345/ F583 : 28 F3 JR Z, LOA55 ;WEITER BIS DATEIENDE LESEN | 1411/ F5C6 : EB EX DE,HL |
1346/ F585 : C3 FE F2 JP OCRLF | 1412/ F5C7 : 3E 1F LD A,1FH |
1347/ F588 : ; | 1413/ F5C9 : BE COMP1: CP A, (HL) |
1348/ F588 : 21 01 01 MOV: LD HL,INTLN+1 ;ZWISCHENPUFFER | 1414/ F5CA : 30 05 JR NC, COMP2 ;STEUERZEICHEN UEBERGEHEN |
1349/ F58B : 47 LD B,A | 1415/ F5CC : ED A0 LDI ;ZEICHEN UEBERNEHMEN |
1350/ F58C : 7E MOV2: LD A,(HL) | 1416/ F5CE : 03 INC BC |
1351/ F58D : 12 LD (DE),A | 1417/ F5CF : 03 INC BC |
1352/ F58E : 23 INC HL | 1418/ F5D0 : 2B DEC HL |
1353/ F58F : 13 INC DE | 1419/ F5D1 : 23 COMP2: INC HL ;NAECHSTES ZEICHEN |
1354/ F590 : 10 FA DJNZ MOV2 | 1420/ F5D2 : 10 F5 DJNZ COMP1 |
1355/ F592 : C9 RET | 1421/ F5D4 : E1 POP HL |
1356/ F593 : ; | 1422/ F5D5 : 71 LD (HL),C ;NEUE LAENGE EINTRAGEN |
1357/ F593 : ;AUSGABE STARTMELDUNG, WARTEN AUF ENTER | 1423/ F5D6 : EB EX DE,HL |
1358/ F593 : ; | 1424/ F5D7 : 79 LD A,C |
1359/ F593 : ; Funktion: Ausgabe String 'start tape' , warten auf ENTER | 1425/ F5D8 : B7 OR A |
1360/ F593 : ; a) Eingang | 1426/ F5D9 : 36 00 LD (HL),0 ;0-BYTE AN KETTE ANHAENGEN |
1361/ F593 : ; - REQU | 1427/ F5DB : C0 RET NZ |
1362/ F593 : ; gerufen von: OPENR, OPENW | 1428/ F5DC : 37 COMP3: SCF ;NEUE ZEICHENKETTE IST LEER |
1363/ F593 : ; - REQU0 | 1429/ F5DD : C9 RET |
1364/ F593 : ; gerufen von: REA | 1430/ F5DE : ; |
1365/ F593 : ; b) gerufene Programme | 1431/ F5DE : ; |
1366/ F593 : ; - PRNST Ausgabe String | 1432/ F5DE : 3E 07 BOSER: LD A,7 |
1367/ F593 : ; - GETMS Eingabe String | 1433/ F5E0 : 37 SCF |
1368/ F593 : ; c) Ausgang | 1434/ F5E1 : C9 RET |
1369/ F593 : ; - | 1435/ F5E2 : 3E 02 ERINP: LD A,TYPIE |
1370/ F593 : ; d) Return | 1436/ F5E4 : 37 SCF |
1371/ F593 : ; Parameter: A FFH wenn STOP | 1437/ F5E5 : C9 RET |
1372/ F593 : ; 0 sonst | 1438/ F5E6 : 3E 01 ERPAR: LD A,1 |
1373/ F593 : ; | 1439/ F5E8 : 37 SCF |
1374/ F593 : 11 48 FC REQU: LD DE,TXTRC ;TEXTADRESSE STARTMELDUNG | 1440/ F5E9 : C9 RET |
1375/ F596 : CD E2 F3 CALL PRNST ;AUSGABE TEXT | 1441/ F5EA : ; |
1376/ F599 : CD 5C F3 REQU0: CALL GETMS ;EINGABE ZEICHENKETTE | 1442/ F5EA : ;AUSGEBEN FEHLERMELDUNG |
1377/ F59C : 2A 1B 00 LD HL,(DMA) | 1443/ F5EA : ; |
1378/ F59F : D0 RET NC ;KEIN STOP | 1444/ F5EA : ; Funktion: Ausgabe Fehlermeldung |
1379/ F5A0 : 3E FF LD A,0FFH | 1445/ F5EA : ; a) Eingang |
1380/ F5A2 : C9 RET | 1446/ F5EA : ; - ERDIS |
AS V1.42 Beta [Bld 82] - source file os.asm - page 24 - 3/20/2012 20:42:07 | 1447/ F5EA : ; gerufen von: BOSE, REA, GOCPM |
| 1448/ F5EA : ; Parameter : A Fehlercode |
| 1449/ F5EA : ; CY 1 (bei 0 RET) |
1381/ F5A3 : ; | 1450/ F5EA : ; b) gerufene Programme |
1382/ F5A3 : ;AUSGABE FEHLERMELDUNG, WARTEN AUF BEDIENERREAKTION | 1451/ F5EA : ; - PRNST Ausgabe String |
1383/ F5A3 : ; | 1452/ F5EA : ; - OUTA Ausgabe Zeichen in A |
1384/ F5A3 : ; Funktion: Ausgabe Fehlermeldung, warten auf Bedienerhandlung | 1453/ F5EA : ; - OCRCF Ausgabe CR/LF34 |
1385/ F5A3 : ; a) Eingang | 1454/ F5EA : ; c) Ausgang |
1386/ F5A3 : ; - REA | 1455/ F5EA : ; - |
1387/ F5A3 : ; gerufen von: LOAD | 1456/ F5EA : ; d) Return |
1388/ F5A3 : ; Parameter: A Fehlercode | 1457/ F5EA : ; Parameter: CY 1 |
1389/ F5A3 : ; b) gerufene Programme | 1458/ F5EA : ; A Fehlercode |
1390/ F5A3 : ; - REQUO warten auf Bedienerhandlung | 1459/ F5EA : ; |
1391/ F5A3 : ; - MOD verändern Speicherkonfiguration (bei Fehler 9) | 1460/ F5EA : D0 ERDIS: RET NC ;KEIN FEHLER |
1392/ F5A3 : ; c) Ausgang | 1461/ F5EB : FE FF CP A,0FFH |
1393/ F5A3 : ; - | 1462/ F5ED : 37 SCF |
1394/ F5A3 : ; d) Return | 1463/ F5EE : C8 RET Z ;KEINE MELDUNG, NUR INTERN |
1395/ F5A3 : ; Parameter: CY 0 kein STOP | 1464/ F5EF : 32 0F 00 LD (ASV),A ;FEHLERNUMMER ZURUECKGEBEN |
1396/ F5A3 : ; 1 STOP, Fehlercode in A | 1465/ F5F2 : B7 OR A |
1397/ F5A3 : ; | 1466/ F5F3 : 37 SCF |
1398/ F5A3 : CD EA F5 REA: CALL ERDIS ;AUSGABE FEHLERMELDUNG | 1467/ F5F4 : C8 RET Z ;KEINE MELDUNG, NUR WARNUNG |
1399/ F5A6 : CD 99 F5 REA1: CALL REQU0 ;EINGABE ZEICHENKETTE | 1468/ F5F5 : F5 PUSH AF |
1400/ F5A9 : D8 RET C ;STOP GEGEBEN | 1469/ F5F6 : |
1401/ F5AA : 3A 0F 00 LD A,(ASV) | 1470/ F5F6 : =>TRUE IF osver <> 11 |
1402/ F5AD : FE 09 CP 9 ;FEHLER DURCH GESCHUETZT. BEREICH | 1471/ F5F6 : AF XOR A |
1403/ F5AF : 37 SCF | 1472/ F5F7 : 32 15 00 LD (LISW),A ;DRUCKER AUS |
1404/ F5B0 : 3F CCF | 1473/ F5FA : [1470] ENDIF |
1405/ F5B1 : C0 RET NZ ;NEIN | 1474/ F5FA : |
1406/ F5B2 : 0E 01 LD C,1 | 1475/ F5FA : CD FE F2 CALL OCRLF |
1407/ F5B4 : CD 31 F2 CALL MOD ;SCHUTZ AUFHEBEN, DA NICHT STOP | 1476/ F5FD : F1 POP AF |
1408/ F5B7 : B7 OR A | 1477/ F5FE : 11 5B FC LD DE,TXTE |
1409/ F5B8 : C9 RET | 1478/ F601 : D6 05 SUB 5 |
1410/ F5B9 : ; | 1479/ F603 : 30 0C JR NC, ERD1 |
1411/ F5B9 : ;VORVERARBEITEN EINER ZEICHENKETTE | 1480/ F605 : F5 PUSH AF ;A = 1...4 |
1412/ F5B9 : ; | 1481/ F606 : CD E2 F3 CALL PRNST |
1413/ F5B9 : 13 COEXT: INC DE | 1482/ F609 : F1 POP AF |
1414/ F5BA : 1A LD A,(DE) ;LAENGE ZEICHENKETTE | 1483/ F60A : C6 35 ADD A, 35H |
1415/ F5BB : B7 OR A | 1484/ F60C : CD 05 F3 CALL OUTA |
1416/ F5BC : 28 1E JR Z, COMP3 ;ZEICHENKETTE LEER | 1485/ F60F : 18 4D JR ERD6 |
1417/ F5BE : 6B LD L,E | 1486/ F611 : D6 02 ERD1: SUB 2 |
1418/ F5BF : 62 LD H,D | 1487/ F613 : D8 RET C ;A = 5 U. 6 |
1419/ F5C0 : E5 PUSH HL | 1488/ F614 : F5 PUSH AF ;A = 7...13 |
1420/ F5C1 : 23 INC HL | 1489/ F615 : 11 56 FC LD DE,TXTBE |
1421/ F5C2 : 13 INC DE | 1490/ F618 : CD E2 F3 CALL PRNST |
1422/ F5C3 : 47 LD B,A | 1491/ F61B : 3E 3A LD A,':' |
1423/ F5C4 : 0E 00 LD C,0 | 1492/ F61D : CD 05 F3 CALL OUTA |
1424/ F5C6 : EB EX DE,HL | 1493/ F620 : CD 10 F3 CALL OSPAC |
1425/ F5C7 : 3E 1F LD A,1FH | 1494/ F623 : F1 POP AF |
1426/ F5C9 : BE COMP1: CP A, (HL) | 1495/ F624 : 20 04 JR NZ, ERD2 |
1427/ F5CA : 30 05 JR NC, COMP2 ;STEUERZEICHEN UEBERGEHEN | 1496/ F626 : 06 08 LD B,8 ;A = 7 |
1428/ F5CC : ED A0 LDI ;ZEICHEN UEBERNEHMEN | 1497/ F628 : 18 03 JR ERD21 |
1429/ F5CE : 03 INC BC | 1498/ F62A : 3D ERD2: DEC A |
1430/ F5CF : 03 INC BC | 1499/ F62B : 20 0F JR NZ, ERD3 |
1431/ F5D0 : 2B DEC HL | 1500/ F62D : 21 CC FB ERD21: LD HL,PHYDV-7 ;A = 8 |
1432/ F5D1 : 23 COMP2: INC HL ;NAECHSTES ZEICHEN | 1501/ F630 : 11 09 00 LD DE,9 |
1433/ F5D2 : 10 F5 DJNZ COMP1 | 1502/ F633 : CB 38 SRL B |
1434/ F5D4 : E1 POP HL | 1503/ F635 : 04 INC B |
1435/ F5D5 : 71 LD (HL),C ;NEUE LAENGE EINTRAGEN | 1504/ F636 : 19 ERD22: ADD HL,DE |
1436/ F5D6 : EB EX DE,HL | 1505/ F637 : 10 FD DJNZ ERD22 |
1437/ F5D7 : 79 LD A,C | 1506/ F639 : EB EX DE,HL |
1438/ F5D8 : B7 OR A | 1507/ F63A : 18 1F JR ERD5 |
1439/ F5D9 : 36 00 LD (HL),0 ;0-BYTE AN KETTE ANHAENGEN | 1508/ F63C : 11 62 FC ERD3: LD DE,TXTMP |
1440/ F5DB : C0 RET NZ | 1509/ F63F : 3D DEC A |
AS V1.42 Beta [Bld 82] - source file os.asm - page 25 - 3/20/2012 20:42:07 | 1510/ F640 : 28 19 JR Z, ERD5 ;A = 9 |
| 1511/ F642 : 11 73 FC LD DE,TXTEO |
| 1512/ F645 : 3D DEC A |
1441/ F5DC : 37 COMP3: SCF ;NEUE ZEICHENKETTE IST LEER | 1513/ F646 : 28 13 JR Z, ERD5 ;A = 10 |
1442/ F5DD : C9 RET | 1514/ F648 : 11 81 FC LD DE,TXTNB |
1443/ F5DE : ; | 1515/ F64B : 3D DEC A |
1444/ F5DE : ; | 1516/ F64C : 28 0D JR Z, ERD5 ;A = 11 |
1445/ F5DE : 3E 07 BOSER: LD A,7 | 1517/ F64E : 11 92 FC LD DE,TXTPT |
1446/ F5E0 : 37 SCF | 1518/ F651 : 3D DEC A |
1447/ F5E1 : C9 RET | 1519/ F652 : 28 07 JR Z, ERD5 ;A = 12 |
1448/ F5E2 : 3E 02 ERINP: LD A,TYPIE | 1520/ F654 : 11 9D FC LD DE,TXTNF |
1449/ F5E4 : 37 SCF | 1521/ F657 : 3D DEC A |
1450/ F5E5 : C9 RET | 1522/ F658 : 28 01 JR Z, ERD5 ;A = 13 |
1451/ F5E6 : 3E 01 ERPAR: LD A,1 | 1523/ F65A : 1B DEC DE |
1452/ F5E8 : 37 SCF | 1524/ F65B : CD E2 F3 ERD5: CALL PRNST ;AUSGABE MELDUNG |
1453/ F5E9 : C9 RET | 1525/ F65E : CD FE F2 ERD6: CALL OCRLF |
1454/ F5EA : ; | 1526/ F661 : AF STERR: XOR A |
1455/ F5EA : ;AUSGEBEN FEHLERMELDUNG | 1527/ F662 : 37 ENDER: SCF |
1456/ F5EA : ; | 1528/ F663 : C9 RET |
1457/ F5EA : ; Funktion: Ausgabe Fehlermeldung | 1529/ F664 : ; |
1458/ F5EA : ; a) Eingang | 1530/ F664 : ;******************************************************************* |
1459/ F5EA : ; - ERDIS | 1531/ F664 : ;* * |
1460/ F5EA : ; gerufen von: BOSE, REA, GOCPM | 1532/ F664 : ;* O P E R A T I N G - S Y S T E M * |
1461/ F5EA : ; Parameter : A Fehlercode | 1533/ F664 : ;* * |
1462/ F5EA : ; CY 1 (bei 0 RET) | 1534/ F664 : ;******************************************************************* |
1463/ F5EA : ; b) gerufene Programme | 1535/ F664 : ; |
1464/ F5EA : ; - PRNST Ausgabe String | 1536/ F664 : ;INITIALISIERUNG DES COMPUTERS |
1465/ F5EA : ; - OUTA Ausgabe Zeichen in A | 1537/ F664 : ; |
1466/ F5EA : ; - OCRCF Ausgabe CR/LF34 | 1538/ F664 : F3 INIT: DI |
1467/ F5EA : ; c) Ausgang | 1539/ F665 : 31 00 02 LD SP,200H ;CCP- UND ANWENDERSTACK |
1468/ F5EA : ; - | 1540/ F668 : |
1469/ F5EA : ; d) Return | 1541/ F668 : =>FALSE IF eorpatch |
1470/ F5EA : ; Parameter: CY 1 | 1542/ F668 : |
1471/ F5EA : ; A Fehlercode | 1543/ F668 : ;s.http://www.sax.de/~zander/z9001/tip/tipc.html |
1472/ F5EA : ; | 1544/ F668 : LD BC,100H ;100 Bytes |
1473/ F5EA : D0 ERDIS: RET NC ;KEIN FEHLER | 1545/ F668 : LD H,C |
1474/ F5EB : FE FF CP A,0FFH | 1546/ F668 : LD L,C ;HL=0000 |
1475/ F5ED : 37 SCF | 1547/ F668 : LD (HL),0FFH ;Adresse 0000 mit FF beschreiben |
1476/ F5EE : C8 RET Z ;KEINE MELDUNG, NUR INTERN | 1548/ F668 : LD D,H |
1477/ F5EF : 32 0F 00 LD (ASV),A ;FEHLERNUMMER ZURUECKGEBEN | 1549/ F668 : LD E,L ;DE=0000 |
1478/ F5F2 : B7 OR A | 1550/ F668 : INC DE ;DE=0001 |
1479/ F5F3 : 37 SCF | 1551/ F668 : LDIR ;001 bis 100 mit FF füllen |
1480/ F5F4 : C8 RET Z ;KEINE MELDUNG, NUR WARNUNG | 1552/ F668 : |
1481/ F5F5 : F5 PUSH AF | 1553/ F668 : =>TRUE else |
1482/ F5F6 : | 1554/ F668 : |
1483/ F5F6 : =>TRUE IF osver <> 11 | 1555/ F668 : 0E 00 LD C,0 |
1484/ F5F6 : AF XOR A | 1556/ F66A : 2A 36 00 LD HL,(EOR) ;LOGISCHES RAM - ENDE |
1485/ F5F7 : 32 15 00 LD (LISW),A ;DRUCKER AUS | 1557/ F66D : 5D LD E,L |
1486/ F5FA : [1483] ENDIF | 1558/ F66E : 54 LD D,H |
1487/ F5FA : | 1559/ F66F : 13 INC DE |
1488/ F5FA : CD FE F2 CALL OCRLF | 1560/ F670 : 06 01 LD B,1 |
1489/ F5FD : F1 POP AF | 1561/ F672 : ED B0 LDIR ;LOESCHEN 100H BYTES AB |
1490/ F5FE : 11 5B FC LD DE,TXTE | 1562/ F674 : ;LOG. RAM - ENDE |
1491/ F601 : D6 05 SUB 5 | 1563/ F674 : [1541] ENDIF |
1492/ F603 : 30 0C JR NC, ERD1 | 1564/ F674 : |
1493/ F605 : F5 PUSH AF ;A = 1...4 | 1565/ F674 : 3E 02 LD A,2 |
1494/ F606 : CD E2 F3 CALL PRNST | 1566/ F676 : ED 47 LD I,A |
1495/ F609 : F1 POP AF | 1567/ F678 : 3C INC A |
1496/ F60A : C6 35 ADD A, 35H | 1568/ F679 : D3 8A OUT SPIO1A, A |
1497/ F60C : CD 05 F3 CALL OUTA | 1569/ F67B : 3E CF LD A,0CFH |
1498/ F60F : 18 4D JR ERD6 | 1570/ F67D : D3 8A OUT SPIO1A, A ;PIO 1 PORT A IN BYTEAUSGABE |
1499/ F611 : D6 02 ERD1: SUB 2 | 1571/ F67F : AF XOR A |
1500/ F613 : D8 RET C ;A = 5 U. 6 | 1572/ F680 : D3 8A OUT SPIO1A, A |
AS V1.42 Beta [Bld 82] - source file os.asm - page 26 - 3/20/2012 20:42:07 | 1573/ F682 : D3 88 OUT DPIO1A, A |
| 1574/ F684 : ;PHYSISCHER SPEICHERTEST, SETZEN SPEICHERKONFIGURATION |
| 1575/ F684 : 21 00 FC MEMTE: LD HL,0FC00H |
1501/ F614 : F5 PUSH AF ;A = 7...13 | 1576/ F687 : 06 40 LD B,64 ;64 1k BYTES BEREICHE |
1502/ F615 : 11 56 FC LD DE,TXTBE | 1577/ F689 : 7E MEMT0: LD A,(HL) |
1503/ F618 : CD E2 F3 CALL PRNST | 1578/ F68A : 2F CPL |
1504/ F61B : 3E 3A LD A,':' | 1579/ F68B : 77 LD (HL),A |
1505/ F61D : CD 05 F3 CALL OUTA | 1580/ F68C : 56 LD D,(HL) |
1506/ F620 : CD 10 F3 CALL OSPAC | 1581/ F68D : BA CP A, D |
1507/ F623 : F1 POP AF | 1582/ F68E : 2F CPL |
1508/ F624 : 20 04 JR NZ, ERD2 | 1583/ F68F : 77 LD (HL),A |
1509/ F626 : 06 08 LD B,8 ;A = 7 | 1584/ F690 : 0E 01 LD C,1 |
1510/ F628 : 18 03 JR ERD21 | 1585/ F692 : 28 06 JR Z, MEMT1 ;RAM GEFUNDEN |
1511/ F62A : 3D ERD2: DEC A | 1586/ F694 : 0D DEC C |
1512/ F62B : 20 0F JR NZ, ERD3 | 1587/ F695 : 2B DEC HL |
1513/ F62D : 21 CC FB ERD21: LD HL,PHYDV-7 ;A = 8 | 1588/ F696 : 22 36 00 LD (EOR),HL ;VORLAEUFIGES LOG. RAM - ENDE |
1514/ F630 : 11 09 00 LD DE,9 | 1589/ F699 : 23 INC HL |
1515/ F633 : CB 38 SRL B | 1590/ F69A : CD 31 F2 MEMT1: CALL MOD ;MERKEN KONFIG. IM 64 BIT - REGISTER |
1516/ F635 : 04 INC B | 1591/ F69D : 10 EA DJNZ MEMT0 |
1517/ F636 : 19 ERD22: ADD HL,DE | 1592/ F69F : |
1518/ F637 : 10 FD DJNZ ERD22 | 1593/ F69F : =>FALSE if osver == 11 |
1519/ F639 : EB EX DE,HL | 1594/ F69F : ld a, 0C3h |
1520/ F63A : 18 1F JR ERD5 | 1595/ F69F : ld (5), a |
1521/ F63C : 11 62 FC ERD3: LD DE,TXTMP | 1596/ F69F : [1593] ENDIF |
1522/ F63F : 3D DEC A | 1597/ F69F : |
1523/ F640 : 28 19 JR Z, ERD5 ;A = 9 | 1598/ F69F : 21 14 F3 LD HL,BOS ;ADR. BOS FUER CALL 0005 |
1524/ F642 : 11 73 FC LD DE,TXTEO | 1599/ F6A2 : 22 06 00 LD (6),HL |
1525/ F645 : 3D DEC A | 1600/ F6A5 : CD E0 F6 CALL IOST ;INITIALISIEREN STANDARD-E/A |
1526/ F646 : 28 13 JR Z, ERD5 ;A = 10 | 1601/ F6A8 : 11 30 FC LD DE,MSG |
1527/ F648 : 11 81 FC LD DE,TXTNB | 1602/ F6AB : =>FALSE if rommenu |
1528/ F64B : 3D DEC A | 1603/ F6AB : CALL MENUE ;Menüanzeige (nur Version 2) |
1529/ F64C : 28 0D JR Z, ERD5 ;A = 11 | 1604/ F6AB : =>TRUE else |
1530/ F64E : 11 92 FC LD DE,TXTPT | 1605/ F6AB : CD E2 F3 CALL PRNST |
1531/ F651 : 3D DEC A | 1606/ F6AE : [1602] endif |
1532/ F652 : 28 07 JR Z, ERD5 ;A = 12 | 1607/ F6AE : ; |
1533/ F654 : 11 9D FC LD DE,TXTNF | 1608/ F6AE : ;WARMSTART, TEILINITIALISIERUNG |
1534/ F657 : 3D DEC A | 1609/ F6AE : ; |
1535/ F658 : 28 01 JR Z, ERD5 ;A = 13 | 1610/ F6AE : F3 WBOOT: DI |
1536/ F65A : 1B DEC DE | 1611/ F6AF : 31 00 02 LD SP,200H |
1537/ F65B : CD E2 F3 ERD5: CALL PRNST ;AUSGABE MELDUNG | 1612/ F6B2 : 3E C3 LD A,0C3H ;JMP - CODE |
1538/ F65E : CD FE F2 ERD6: CALL OCRLF | 1613/ F6B4 : 32 00 00 LD (0),A ;FUER CALL 0000 UND |
1539/ F661 : AF STERR: XOR A | 1614/ F6B7 : |
1540/ F662 : 37 ENDER: SCF | 1615/ F6B7 : =>TRUE IF osver <> 11 |
1541/ F663 : C9 RET | 1616/ F6B7 : 32 05 00 LD (5),A ;CALL 0005 SPEICHERN |
1542/ F664 : ; | 1617/ F6BA : [1615] ENDIF |
1543/ F664 : ;******************************************************************* | 1618/ F6BA : |
1544/ F664 : ;* * | 1619/ F6BA : 21 AE F6 LD HL,WBOOT ;ADR. WBOOT FUER CALL 0000 |
1545/ F664 : ;* O P E R A T I N G - S Y S T E M * | 1620/ F6BD : 22 01 00 LD (1),HL |
1546/ F664 : ;* * | 1621/ F6C0 : 3A 04 00 LD A,(IOBYT) |
1547/ F664 : ;******************************************************************* | 1622/ F6C3 : E6 FC AND A, 0FCH ;ZUWEISEN CONST:=CRT |
1548/ F664 : ; | 1623/ F6C5 : F6 01 OR 1 ; |
1549/ F664 : ;INITIALISIERUNG DES COMPUTERS | 1624/ F6C7 : CD 12 F7 CALL IOST1 ;TEILINITIALISIERUNG TREIBER |
1550/ F664 : ; | 1625/ F6CA : 11 F7 FB LD DE,TXTWB |
1551/ F664 : F3 INIT: DI | 1626/ F6CD : CD E2 F3 CALL PRNST |
1552/ F665 : 31 00 02 LD SP,200H ;CCP- UND ANWENDERSTACK | 1627/ F6D0 : 21 23 00 LD HL,0023H ;'#' |
1553/ F668 : | 1628/ F6D3 : 22 82 00 LD (CONBU+2),HL ;PSEUDOEINGABE # |
1554/ F668 : =>FALSE IF eorpatch | 1629/ F6D6 : CD EA F1 CALL GVAL ;PARAMETER HOLEN |
1555/ F668 : | 1630/ F6D9 : CD 8E F2 CALL CPROM ;TRANSIENTKOMMANDO SUCHEN |
1556/ F668 : ;s.http://www.sax.de/~zander/z9001/tip/tipc.html | 1631/ F6DC : C2 89 F0 JP NZ, GOCPM ;NICHT GEFUNDEN |
1557/ F668 : LD BC,100H ;100 Bytes | 1632/ F6DF : E9 JP (HL) ;SPRUNG ZUR SYSTEMERWEITERUNG |
1558/ F668 : LD H,C | 1633/ F6E0 : ; |
1559/ F668 : LD L,C ;HL=0000 | 1634/ F6E0 : ;INITIALISIERUNG STANDARD-E/A |
1560/ F668 : LD (HL),0FFH ;Adresse 0000 mit FF beschreiben | 1635/ F6E0 : 21 C9 EF IOST: LD HL,ATTY ;TABELLE TREIBERADRESSEN |
AS V1.42 Beta [Bld 82] - source file os.asm - page 27 - 3/20/2012 20:42:07 | 1636/ F6E3 : 11 CA EF LD DE,ATTY+1 |
| 1637/ F6E6 : 01 1F 00 LD BC,31 |
| 1638/ F6E9 : 36 FF LD (HL),-1 |
1561/ F668 : LD D,H | 1639/ F6EB : ED B0 LDIR ;ALLE AUF FFFFH LOESCHEN |
1562/ F668 : LD E,L ;DE=0000 | 1640/ F6ED : 11 00 02 LD DE,200H |
1563/ F668 : INC DE ;DE=0001 | 1641/ F6F0 : 21 B0 FC LD HL,INTV |
1564/ F668 : LDIR ;001 bis 100 mit FF füllen | 1642/ F6F3 : 0E 0C LD C,12 |
1565/ F668 : | 1643/ F6F5 : ED B0 LDIR ;INTERRUPTADRESSEN LADEN |
1566/ F668 : =>TRUE else | 1644/ F6F7 : =>TRUE if sysver = "os" |
1567/ F668 : | 1645/ F6F7 : 21 24 FC LD HL,LOGDV ; original |
1568/ F668 : 0E 00 LD C,0 | 1646/ F6FA : =>FALSE elseif ; bei UZ |
1569/ F66A : 2A 36 00 LD HL,(EOR) ;LOGISCHES RAM - ENDE | 1647/ F6FA : LD HL,LOGDV+1 |
1570/ F66D : 5D LD E,L | 1648/ F6FA : [1644] endif |
1571/ F66E : 54 LD D,H | 1649/ F6FA : 22 EB EF LD (TXRDR),HL ;ZEICHENKETTENADRESSEN |
1572/ F66F : 13 INC DE | 1650/ F6FD : 22 ED EF LD (TXPUN),HL ;FUER TREIBER |
1573/ F670 : 06 01 LD B,1 | 1651/ F700 : 22 EF EF LD (TXLPT),HL ;INITIALISIEREN |
1574/ F672 : ED B0 LDIR ;LOESCHEN 100H BYTES AB | 1652/ F703 : 21 B4 F7 LD HL,BAT ; |
1575/ F674 : ;LOG. RAM - ENDE | 1653/ F706 : 22 CD EF LD (ABAT),HL ; |
1576/ F674 : [1554] ENDIF | 1654/ F709 : AF XOR A |
1577/ F674 : | 1655/ F70A : 32 27 00 LD (ATRIB),A ;FARBE LOESCHEN |
1578/ F674 : 3E 02 LD A,2 | 1656/ F70D : 32 C0 EF LD (MAPPI),A ;SYSTEMSCHUTZ LOESCHEN |
1579/ F676 : ED 47 LD I,A | 1657/ F710 : 3E 01 LD A,STIOB ;STANDARD-I/O-BYTE |
1580/ F678 : 3C INC A | 1658/ F712 : ; |
1581/ F679 : D3 8A OUT SPIO1A, A | 1659/ F712 : ;TEILINITIALISIERUNG |
1582/ F67B : 3E CF LD A,0CFH | 1660/ F712 : 32 04 00 IOST1: LD (IOBYT),A |
1583/ F67D : D3 8A OUT SPIO1A, A ;PIO 1 PORT A IN BYTEAUSGABE | 1661/ F715 : 21 26 FC LD HL,LOGDV+2 |
1584/ F67F : AF XOR A | 1662/ F718 : 22 E9 EF LD (TXCON),HL ;ADRESSE VON 'CRT' EINTRAGEN |
1585/ F680 : D3 8A OUT SPIO1A, A | 1663/ F71B : 21 F1 F8 LD HL,CRT |
1586/ F682 : D3 88 OUT DPIO1A, A | 1664/ F71E : 22 CB EF LD (ACRT1),HL ;TREIBERADRESSE VON CRT LADEN |
1587/ F684 : ;PHYSISCHER SPEICHERTEST, SETZEN SPEICHERKONFIGURATION | 1665/ F721 : 22 E3 EF LD (ACRT2),HL ;(FUER CONST UND LIST) |
1588/ F684 : 21 00 FC MEMTE: LD HL,0FC00H | 1666/ F724 : ED 5E IM 2 |
1589/ F687 : 06 40 LD B,64 ;64 1k BYTES BEREICHE | 1667/ F726 : 11 FF FF LD DE,0FFFFH |
1590/ F689 : 7E MEMT0: LD A,(HL) | 1668/ F729 : 1B IOST2: DEC DE |
1591/ F68A : 2F CPL | 1669/ F72A : 7B LD A,E |
1592/ F68B : 77 LD (HL),A | 1670/ F72B : B2 OR D |
1593/ F68C : 56 LD D,(HL) | 1671/ F72C : 20 FB JR NZ, IOST2 ;ENTPRELLEN RESETTASTE |
1594/ F68D : BA CP A, D | 1672/ F72E : 32 15 00 LD (LISW),A ;DRUCKER AUS |
1595/ F68E : 2F CPL | 1673/ F731 : 3D DEC A |
1596/ F68F : 77 LD (HL),A | 1674/ F732 : E9 JP (HL) ;INITIALISIERUNG VON CRT |
1597/ F690 : 0E 01 LD C,1 | 1675/ F733 : ; |
1598/ F692 : 28 06 JR Z, MEMT1 ;RAM GEFUNDEN | 1676/ F733 : ;ABFRAGE LOGISCHE CURSORADRESSE |
1599/ F694 : 0D DEC C | 1677/ F733 : ; |
1600/ F695 : 2B DEC HL | 1678/ F733 : 2E 07 GCURS: LD L,7 |
1601/ F696 : 22 36 00 LD (EOR),HL ;VORLAEUFIGES LOG. RAM - ENDE | 1679/ F735 : 18 07 JR DCU |
1602/ F699 : 23 INC HL | 1680/ F737 : ; |
1603/ F69A : CD 31 F2 MEMT1: CALL MOD ;MERKEN KONFIG. IM 64 BIT - REGISTER | 1681/ F737 : ;SETZEN physische CURSORADRESSE |
1604/ F69D : 10 EA DJNZ MEMT0 | 1682/ F737 : ; |
1605/ F69F : | 1683/ F737 : 2E 05 SCURS: LD L,5 ; L := 8 (Fkt. Setzen phys.. Cursoradresse) |
1606/ F69F : =>FALSE if osver == 11 | 1684/ F739 : 59 LD E,C ;PARAMETER UEBERNEHMEN |
1607/ F69F : ld a, 0C3h | 1685/ F73A : 50 LD D,B ; |
1608/ F69F : ld (5), a | 1686/ F73B : ; |
1609/ F69F : [1606] ENDIF | 1687/ F73B : ;SETZEN logische CURSORADRESSE |
1610/ F69F : | 1688/ F73B : ; in: L=3, Anfangswert fuer Cursorrufe (BOS) |
1611/ F69F : 21 14 F3 LD HL,BOS ;ADR. BOS FUER CALL 0005 | 1689/ F73B : ; |
1612/ F6A2 : 22 06 00 LD (6),HL | 1690/ F73B : 2C SETCU: INC L ; L := 6 (Fkt. Setzen log. Cursoradresse) |
1613/ F6A5 : CD E0 F6 CALL IOST ;INITIALISIEREN STANDARD-E/A | 1691/ F73C : ; |
1614/ F6A8 : 11 30 FC LD DE,MSG | 1692/ F73C : ;ABFRAGE PHYSISCHE CURSORADRESSE |
1615/ F6AB : =>FALSE if rommenu | 1693/ F73C : ; |
1616/ F6AB : CALL MENUE ;Menüanzeige (nur Version 2) | 1694/ F73C : 2C GETCU: INC L ; L := 5 (Fkt. Abfrage phys. und log. Cursoradresse) |
1617/ F6AB : =>TRUE else | 1695/ F73D : ; |
1618/ F6AB : CD E2 F3 CALL PRNST | 1696/ F73D : ;ANZEIGEN CURSOR |
1619/ F6AE : [1615] endif | 1697/ F73D : ; |
1620/ F6AE : ; | 1698/ F73D : 2C SCU: INC L ; L := 4 (Fkt. Cursor anzeigen) |
AS V1.42 Beta [Bld 82] - source file os.asm - page 28 - 3/20/2012 20:42:07 | 1699/ F73E : ; |
| 1700/ F73E : ;LOESCHEN CURSOR |
| 1701/ F73E : ; in: L=3, Anfangswert fuer Cursorrufe (BOS) (Fkt. Cursor löschen) |
1621/ F6AE : ;WARMSTART, TEILINITIALISIERUNG | 1702/ F73E : ; |
1622/ F6AE : ; | 1703/ F73E : 7D DCU: LD A,L ;A=Fkt. des CONST-Treibers |
1623/ F6AE : F3 WBOOT: DI | 1704/ F73F : CD 58 F7 CALL CONS1 ;AUSFUEHREN DURCH CONST |
1624/ F6AF : 31 00 02 LD SP,200H | 1705/ F742 : D8 RET C ;FEHLER |
1625/ F6B2 : 3E C3 LD A,0C3H ;JMP - CODE | 1706/ F743 : FE 03 CP A, 3 |
1626/ F6B4 : 32 00 00 LD (0),A ;FUER CALL 0000 UND | 1707/ F745 : C8 RET Z ; bei bei Fkt. 3 (Cursor löschen) |
1627/ F6B7 : | 1708/ F746 : 4D LD C,L ; |
1628/ F6B7 : =>TRUE IF osver <> 11 | 1709/ F747 : 44 LD B,H ; |
1629/ F6B7 : 32 05 00 LD (5),A ;CALL 0005 SPEICHERN | 1710/ F748 : FE 06 CP A, 6 ; |
1630/ F6BA : [1628] ENDIF | 1711/ F74A : D0 RET NC ; Fkt. >= 6 |
1631/ F6BA : | 1712/ F74B : 22 0D 00 LD (BCSV),HL ;RUECKGABE PARAMETER |
1632/ F6BA : 21 AE F6 LD HL,WBOOT ;ADR. WBOOT FUER CALL 0000 | 1713/ F74E : FE 04 CP A, 4 ; |
1633/ F6BD : 22 01 00 LD (1),HL | 1714/ F750 : C8 RET Z ; bei Fkt. 4 (Cursor anzeigen) |
1634/ F6C0 : 3A 04 00 LD A,(IOBYT) | 1715/ F751 : ; bei Fkt. 5 (Abfrage phys. und log. Cursoradresse) |
1635/ F6C3 : E6 FC AND A, 0FCH ;ZUWEISEN CONST:=CRT | 1716/ F751 : ED 53 BC 01 LD (1BCH),DE ; Pos. von DE im BOS-Stack (SP = 1C0H) |
1636/ F6C5 : F6 01 OR 1 ; | 1717/ F755 : C9 RET |
1637/ F6C7 : CD 12 F7 CALL IOST1 ;TEILINITIALISIERUNG TREIBER | 1718/ F756 : ; |
1638/ F6CA : 11 F7 FB LD DE,TXTWB | 1719/ F756 : ; CONST, CONIN, CONOUT, LIST, LLIST, READER,PUNCH (CONST1, LIST1, RDR1) |
1639/ F6CD : CD E2 F3 CALL PRNST | 1720/ F756 : ; Funktion: Verzweigen zu log. Geräten |
1640/ F6D0 : 21 23 00 LD HL,0023H ;'#' | 1721/ F756 : ; a) Eingang |
1641/ F6D3 : 22 82 00 LD (CONBU+2),HL ;PSEUDOEINGABE # | 1722/ F756 : ; gerufen von: Systemruf, Cursorruf |
1642/ F6D6 : CD EA F1 CALL GVAL ;PARAMETER HOLEN | 1723/ F756 : ; Parameter: bei OUT Zeichen in C |
1643/ F6D9 : CD 8E F2 CALL CPROM ;TRANSIENTKOMMANDO SUCHEN | 1724/ F756 : ; b) gerufene Programme |
1644/ F6DC : C2 89 F0 JP NZ, GOCPM ;NICHT GEFUNDEN | 1725/ F756 : ; - EXIO Test Gerätezuweisung, Startadresse der Gerätetreiber holen |
1645/ F6DF : E9 JP (HL) ;SPRUNG ZUR SYSTEMERWEITERUNG | 1726/ F756 : ; c) Ausgang |
1646/ F6E0 : ; | 1727/ F756 : ; - |
1647/ F6E0 : ;INITIALISIERUNG STANDARD-E/A | 1728/ F756 : ; d) Return |
1648/ F6E0 : 21 C9 EF IOST: LD HL,ATTY ;TABELLE TREIBERADRESSEN | 1729/ F756 : ; Parameter: CY 0 kein Fehler |
1649/ F6E3 : 11 CA EF LD DE,ATTY+1 | 1730/ F756 : ; 1 Fehler, Code in A |
1650/ F6E6 : 01 1F 00 LD BC,31 | 1731/ F756 : ; B interne log. Gerätenummer |
1651/ F6E9 : 36 FF LD (HL),-1 | 1732/ F756 : ; A bei IN Zeichen |
1652/ F6EB : ED B0 LDIR ;ALLE AUF FFFFH LOESCHEN | 1733/ F756 : ; |
1653/ F6ED : 11 00 02 LD DE,200H | 1734/ F756 : ; |
1654/ F6F0 : 21 B0 FC LD HL,INTV | 1735/ F756 : ;ABFRAGE STATUS CONST |
1655/ F6F3 : 0E 0C LD C,12 | 1736/ F756 : ; |
1656/ F6F5 : ED B0 LDIR ;INTERRUPTADRESSEN LADEN | 1737/ F756 : 3E 00 CONST: LD A,0 |
1657/ F6F7 : =>TRUE if sysver = "os" | 1738/ F758 : 06 00 CONS1: LD B,0 ;INTERNE LOG. GERAETENR. CONST |
1658/ F6F7 : 21 24 FC LD HL,LOGDV ; original | 1739/ F75A : C5 CONS2: PUSH BC |
1659/ F6FA : =>FALSE elseif ; bei UZ | 1740/ F75B : D5 PUSH DE |
1660/ F6FA : LD HL,LOGDV+1 | 1741/ F75C : CD CE F2 CALL EXIO ;VERFUEGBARKEIT TREIBER PRUEFEN |
1661/ F6FA : [1657] endif | 1742/ F75F : D1 POP DE |
1662/ F6FA : 22 EB EF LD (TXRDR),HL ;ZEICHENKETTENADRESSEN | 1743/ F760 : 30 04 JR NC, CONS3 ;IN ORDNUNG |
1663/ F6FD : 22 ED EF LD (TXPUN),HL ;FUER TREIBER | 1744/ F762 : C1 POP BC |
1664/ F700 : 22 EF EF LD (TXLPT),HL ;INITIALISIEREN | 1745/ F763 : 3E 08 CON22: LD A,8 ;NICHT ZUGEWIESEN |
1665/ F703 : 21 B4 F7 LD HL,BAT ; | 1746/ F765 : C9 RET |
1666/ F706 : 22 CD EF LD (ABAT),HL ; | 1747/ F766 : E5 CONS3: PUSH HL |
1667/ F709 : AF XOR A | 1748/ F767 : 21 6F F7 LD HL,CONS4 |
1668/ F70A : 32 27 00 LD (ATRIB),A ;FARBE LOESCHEN | 1749/ F76A : E3 EX (SP),HL ;RUECKKEHRADR. KELLERN |
1669/ F70D : 32 C0 EF LD (MAPPI),A ;SYSTEMSCHUTZ LOESCHEN | 1750/ F76B : 32 2F 00 LD (PU),A |
1670/ F710 : 3E 01 LD A,STIOB ;STANDARD-I/O-BYTE | 1751/ F76E : E9 JP (HL) ;SPRUNG ZUR TREIBERROUTINE |
1671/ F712 : ; | 1752/ F76F : ; |
1672/ F712 : ;TEILINITIALISIERUNG | 1753/ F76F : C1 CONS4: POP BC |
1673/ F712 : 32 04 00 IOST1: LD (IOBYT),A | 1754/ F770 : 4F LD C,A |
1674/ F715 : 21 26 FC LD HL,LOGDV+2 | 1755/ F771 : 38 F0 JR C, CON22 ;FEHLER |
1675/ F718 : 22 E9 EF LD (TXCON),HL ;ADRESSE VON 'CRT' EINTRAGEN | 1756/ F773 : 3A 2F 00 LD A,(PU) |
1676/ F71B : 21 F1 F8 LD HL,CRT | 1757/ F776 : FE 02 CP A, 2 ;WAR RUF EINE EINGABE? |
1677/ F71E : 22 CB EF LD (ACRT1),HL ;TREIBERADRESSE VON CRT LADEN | 1758/ F778 : D0 RET NC ;NEIN |
1678/ F721 : 22 E3 EF LD (ACRT2),HL ;(FUER CONST UND LIST) | 1759/ F779 : 79 LD A,C |
1679/ F724 : ED 5E IM 2 | 1760/ F77A : 32 0F 00 LD (ASV),A ;STATUS ODER ZEICHEN ZURUECK |
1680/ F726 : 11 FF FF LD DE,0FFFFH | 1761/ F77D : B7 OR A |
AS V1.42 Beta [Bld 82] - source file os.asm - page 29 - 3/20/2012 20:42:07 | 1762/ F77E : C9 RET |
| 1763/ F77F : ; |
| 1764/ F77F : ;EINGABE VON CONST |
1681/ F729 : 1B IOST2: DEC DE | 1765/ F77F : ; |
1682/ F72A : 7B LD A,E | 1766/ F77F : 3E 01 CONIN: LD A,1 |
1683/ F72B : B2 OR D | 1767/ F781 : 18 D5 JR CONS1 |
1684/ F72C : 20 FB JR NZ, IOST2 ;ENTPRELLEN RESETTASTE | 1768/ F783 : ; |
1685/ F72E : 32 15 00 LD (LISW),A ;DRUCKER AUS | 1769/ F783 : ;AUSGABE ZU CONST |
1686/ F731 : 3D DEC A | 1770/ F783 : ; |
1687/ F732 : E9 JP (HL) ;INITIALISIERUNG VON CRT | 1771/ F783 : 79 COOUT: LD A,C |
1688/ F733 : ; | 1772/ F784 : FE 10 CP A, 10H ;CTRL/P |
1689/ F733 : ;ABFRAGE LOGISCHE CURSORADRESSE | 1773/ F786 : 20 08 JR NZ, COOU1 |
1690/ F733 : ; | 1774/ F788 : 3A 15 00 LD A,(LISW) |
1691/ F733 : 2E 07 GCURS: LD L,7 | 1775/ F78B : EE 01 XOR 1 ;DRUCKER EIN/AUS |
1692/ F735 : 18 07 JR DCU | 1776/ F78D : 32 15 00 LD (LISW),A |
1693/ F737 : ; | 1777/ F790 : |
1694/ F737 : ;SETZEN physische CURSORADRESSE | 1778/ F790 : =>FALSE if osver == 11 |
1695/ F737 : ; | 1779/ F790 : ret |
1696/ F737 : 2E 05 SCURS: LD L,5 ; L := 8 (Fkt. Setzen phys.. Cursoradresse) | 1780/ F790 : COOU1: ld a, (LISW) |
1697/ F739 : 59 LD E,C ;PARAMETER UEBERNEHMEN | 1781/ F790 : or a |
1698/ F73A : 50 LD D,B ; | 1782/ F790 : push bc |
1699/ F73B : ; | 1783/ F790 : call nz, LIST |
1700/ F73B : ;SETZEN logische CURSORADRESSE | 1784/ F790 : pop hl |
1701/ F73B : ; in: L=3, Anfangswert fuer Cursorrufe (BOS) | 1785/ F790 : ld c, l |
1702/ F73B : ; | 1786/ F790 : ret c |
1703/ F73B : 2C SETCU: INC L ; L := 6 (Fkt. Setzen log. Cursoradresse) | 1787/ F790 : ld a, 2 |
1704/ F73C : ; | 1788/ F790 : jr CONS1 |
1705/ F73C : ;ABFRAGE PHYSISCHE CURSORADRESSE | 1789/ F790 : =>TRUE ELSE |
1706/ F73C : ; | 1790/ F790 : 3E 02 COOU1: LD A,2 |
1707/ F73C : 2C GETCU: INC L ; L := 5 (Fkt. Abfrage phys. und log. Cursoradresse) | 1791/ F792 : C5 PUSH BC |
1708/ F73D : ; | 1792/ F793 : CD 58 F7 CALL CONS1 ;AUSGABE ZU CONST |
1709/ F73D : ;ANZEIGEN CURSOR | 1793/ F796 : E1 POP HL |
1710/ F73D : ; | 1794/ F797 : 4D LD C,L |
1711/ F73D : 2C SCU: INC L ; L := 4 (Fkt. Cursor anzeigen) | 1795/ F798 : D8 RET C ;FEHLER |
1712/ F73E : ; | 1796/ F799 : 3A 15 00 LD A,(LISW) |
1713/ F73E : ;LOESCHEN CURSOR | 1797/ F79C : B7 OR A |
1714/ F73E : ; in: L=3, Anfangswert fuer Cursorrufe (BOS) (Fkt. Cursor löschen) | 1798/ F79D : C8 RET Z ;KEINE AUSGABE ZU LIST |
1715/ F73E : ; | 1799/ F79E : [1778] ENDIF |
1716/ F73E : 7D DCU: LD A,L ;A=Fkt. des CONST-Treibers | 1800/ F79E : |
1717/ F73F : CD 58 F7 CALL CONS1 ;AUSFUEHREN DURCH CONST | 1801/ F79E : ; |
1718/ F742 : D8 RET C ;FEHLER | 1802/ F79E : ;AUSGABE ZU LIST |
1719/ F743 : FE 03 CP A, 3 | 1803/ F79E : ; |
1720/ F745 : C8 RET Z ; bei bei Fkt. 3 (Cursor löschen) | 1804/ F79E : 3E 02 LIST: LD A,2 |
1721/ F746 : 4D LD C,L ; | 1805/ F7A0 : 06 06 LIST1: LD B,6 ;INTERNE LOG. GERAETENR. LIST |
1722/ F747 : 44 LD B,H ; | 1806/ F7A2 : 18 B6 JR CONS2 |
1723/ F748 : FE 06 CP A, 6 ; | 1807/ F7A4 : ; |
1724/ F74A : D0 RET NC ; Fkt. >= 6 | 1808/ F7A4 : ;ABFRAGE STATUS LIST |
1725/ F74B : 22 0D 00 LD (BCSV),HL ;RUECKGABE PARAMETER | 1809/ F7A4 : ; |
1726/ F74E : FE 04 CP A, 4 ; | 1810/ F7A4 : 3E 00 LLIST: LD A,0 |
1727/ F750 : C8 RET Z ; bei Fkt. 4 (Cursor anzeigen) | 1811/ F7A6 : 18 F8 JR LIST1 |
1728/ F751 : ; bei Fkt. 5 (Abfrage phys. und log. Cursoradresse) | 1812/ F7A8 : ; |
1729/ F751 : ED 53 BC 01 LD (1BCH),DE ; Pos. von DE im BOS-Stack (SP = 1C0H) | 1813/ F7A8 : ;EINGABE VON READER |
1730/ F755 : C9 RET | 1814/ F7A8 : ; |
1731/ F756 : ; | 1815/ F7A8 : 3E 01 READR: LD A,1 |
1732/ F756 : ; CONST, CONIN, CONOUT, LIST, LLIST, READER,PUNCH (CONST1, LIST1, RDR1) | 1816/ F7AA : 06 02 RDR1: LD B,2 ;INTERNE LOG. GERAETENR. READER |
1733/ F756 : ; Funktion: Verzweigen zu log. Geräten | 1817/ F7AC : 18 AC JR CONS2 |
1734/ F756 : ; a) Eingang | 1818/ F7AE : ; |
1735/ F756 : ; gerufen von: Systemruf, Cursorruf | 1819/ F7AE : ;AUSGABE ZU PUNCH |
1736/ F756 : ; Parameter: bei OUT Zeichen in C | 1820/ F7AE : ; |
1737/ F756 : ; b) gerufene Programme | 1821/ F7AE : 3E 02 PUNCH: LD A,2 |
1738/ F756 : ; - EXIO Test Gerätezuweisung, Startadresse der Gerätetreiber holen | 1822/ F7B0 : 06 04 LD B,4 ;INTERNE LOG. GERAETENR. PUNCH |
1739/ F756 : ; c) Ausgang | 1823/ F7B2 : 18 A6 JR CONS2 |
1740/ F756 : ; - | 1824/ F7B4 : ; |
AS V1.42 Beta [Bld 82] - source file os.asm - page 30 - 3/20/2012 20:42:07 | 1825/ F7B4 : ;STEUERPROGRAMM FUER BATCH-MODE VON CONST |
| 1826/ F7B4 : ; |
| 1827/ F7B4 : FE 01 BAT: CP A, 1 ;EINGABE GEFORDERT |
1741/ F756 : ; d) Return | 1828/ F7B6 : 28 F0 JR Z, READR |
1742/ F756 : ; Parameter: CY 0 kein Fehler | 1829/ F7B8 : FE FF CP A, 0FFH ;INITIALISIERUNG GEFORDERT |
1743/ F756 : ; 1 Fehler, Code in A | 1830/ F7BA : 20 E4 JR NZ, LIST1 ;AUSGABE |
1744/ F756 : ; B interne log. Gerätenummer | 1831/ F7BC : |
1745/ F756 : ; A bei IN Zeichen | 1832/ F7BC : |
1746/ F756 : ; | 1833/ F7BC : =>FALSE if osver == 11 |
1747/ F756 : ; | 1834/ F7BC : CALL 0FFEEh ; ????? |
1748/ F756 : ;ABFRAGE STATUS CONST | 1835/ F7BC : =>TRUE ELSE |
1749/ F756 : ; | 1836/ F7BC : CD AA F7 CALL RDR1 ;INIT. READER |
1750/ F756 : 3E 00 CONST: LD A,0 | 1837/ F7BF : [1833] ENDIF |
1751/ F758 : 06 00 CONS1: LD B,0 ;INTERNE LOG. GERAETENR. CONST | 1838/ F7BF : |
1752/ F75A : C5 CONS2: PUSH BC | 1839/ F7BF : D8 RET C ;FEHLER |
1753/ F75B : D5 PUSH DE | 1840/ F7C0 : 3E FF LD A,0FFH |
1754/ F75C : CD CE F2 CALL EXIO ;VERFUEGBARKEIT TREIBER PRUEFEN | 1841/ F7C2 : 18 DC JR LIST1 ;INIT. LIST |
1755/ F75F : D1 POP DE | 1842/ F7C4 : ; |
1756/ F760 : 30 04 JR NC, CONS3 ;IN ORDNUNG | 1843/ F7C4 : ;ABFRAGE SPIELHEBEL |
1757/ F762 : C1 POP BC | 1844/ F7C4 : ; |
1758/ F763 : 3E 08 CON22: LD A,8 ;NICHT ZUGEWIESEN | 1845/ F7C4 : CD 8F FE GSTIK: CALL GPIOD ;TASTATUR-PIO DIREKT LESEN |
1759/ F765 : C9 RET | 1846/ F7C7 : ED 4B 13 00 LD BC,(JOYR) |
1760/ F766 : E5 CONS3: PUSH HL | 1847/ F7CB : ED 43 0D 00 LD (BCSV),BC ;RUECKGABE PARAMETER |
1761/ F767 : 21 6F F7 LD HL,CONS4 | 1848/ F7CF : C3 E9 FA JP INPIO ;INIT. TASTATUR-PIO |
1762/ F76A : E3 EX (SP),HL ;RUECKKEHRADR. KELLERN | 1849/ F7D2 : ; |
1763/ F76B : 32 2F 00 LD (PU),A | 1850/ F7D2 : ;ABFRAGE I/O-BYTE |
1764/ F76E : E9 JP (HL) ;SPRUNG ZUR TREIBERROUTINE | 1851/ F7D2 : ; |
1765/ F76F : ; | 1852/ F7D2 : 3A 04 00 GIOBY: LD A,(IOBYT) |
1766/ F76F : C1 CONS4: POP BC | 1853/ F7D5 : 32 0F 00 LD (ASV),A ;RUECKGABE PARAMETER |
1767/ F770 : 4F LD C,A | 1854/ F7D8 : 4F LD C,A |
1768/ F771 : 38 F0 JR C, CON22 ;FEHLER | 1855/ F7D9 : ; |
1769/ F773 : 3A 2F 00 LD A,(PU) | 1856/ F7D9 : ;SETZEN I/O-BYTE |
1770/ F776 : FE 02 CP A, 2 ;WAR RUF EINE EINGABE? | 1857/ F7D9 : ; |
1771/ F778 : D0 RET NC ;NEIN | 1858/ F7D9 : 79 SIOBY: LD A,C |
1772/ F779 : 79 LD A,C | 1859/ F7DA : 32 04 00 LD (IOBYT),A |
1773/ F77A : 32 0F 00 LD (ASV),A ;STATUS ODER ZEICHEN ZURUECK | 1860/ F7DD : B7 OR A |
1774/ F77D : B7 OR A | 1861/ F7DE : C9 RET |
1775/ F77E : C9 RET | 1862/ F7DF : ; |
1776/ F77F : ; | 1863/ F7DF : ;SETZEN KASSETTENPUFFER |
1777/ F77F : ;EINGABE VON CONST | 1864/ F7DF : ; |
1778/ F77F : ; | 1865/ F7DF : ED 43 1B 00 SDMA: LD (DMA),BC |
1779/ F77F : 3E 01 CONIN: LD A,1 | 1866/ F7E3 : B7 OR A |
1780/ F781 : 18 D5 JR CONS1 | 1867/ F7E4 : C9 RET |
1781/ F783 : ; | 1868/ F7E5 : ; |
1782/ F783 : ;AUSGABE ZU CONST | 1869/ F7E5 : ;LOGISCHER SPEICHERTEST |
1783/ F783 : ; | 1870/ F7E5 : ; |
1784/ F783 : 79 COOUT: LD A,C | 1871/ F7E5 : 69 GMEM: LD L,C |
1785/ F784 : FE 10 CP A, 10H ;CTRL/P | 1872/ F7E6 : 60 LD H,B |
1786/ F786 : 20 08 JR NZ, COOU1 | 1873/ F7E7 : CD 3B F2 CALL CHRAM ;TEST DER ADRESSE IN HL |
1787/ F788 : 3A 15 00 LD A,(LISW) | 1874/ F7EA : 3E 01 LD A,1 |
1788/ F78B : EE 01 XOR 1 ;DRUCKER EIN/AUS | 1875/ F7EC : 38 01 JR C, GM1 ;RAM GEFUNDEN |
1789/ F78D : 32 15 00 LD (LISW),A | 1876/ F7EE : 3D DEC A ;GESCHUETZT/ROM |
1790/ F790 : | 1877/ F7EF : 32 0F 00 GM1: LD (ASV),A ;RUECKGABE PARAMETER |
1791/ F790 : =>FALSE if osver == 11 | 1878/ F7F2 : B7 OR A |
1792/ F790 : ret | 1879/ F7F3 : C9 RET |
1793/ F790 : COOU1: ld a, (LISW) | 1880/ F7F4 : ; |
1794/ F790 : or a | 1881/ F7F4 : ;SETZEN SPEICHERKONFIGURATION |
1795/ F790 : push bc | 1882/ F7F4 : ; |
1796/ F790 : call nz, LIST | 1883/ F7F4 : 69 SMEM: LD L,C |
1797/ F790 : pop hl | 1884/ F7F5 : 60 LD H,B |
1798/ F790 : ld c, l | 1885/ F7F6 : 4F LD C,A |
1799/ F790 : ret c | 1886/ F7F7 : CD 31 F2 CALL MOD ;STATUS FUER ADR. IN HL AENDERN |
1800/ F790 : ld a, 2 | 1887/ F7FA : B7 OR A |
AS V1.42 Beta [Bld 82] - source file os.asm - page 31 - 3/20/2012 20:42:07 | 1888/ F7FB : C9 RET |
| 1889/ F7FC : ; |
| 1890/ F7FC : ;ABFRAGE AKTUELLE UHRZEIT |
1801/ F790 : jr CONS1 | 1891/ F7FC : ; |
1802/ F790 : =>TRUE ELSE | 1892/ F7FC : 3A 1D 00 GTIME: LD A,(STUND) |
1803/ F790 : 3E 02 COOU1: LD A,2 | 1893/ F7FF : 32 0F 00 LD (ASV),A ;RUECKGABE PARAMETER |
1804/ F792 : C5 PUSH BC | 1894/ F802 : 2A 1E 00 LD HL,(MIN) |
1805/ F793 : CD 58 F7 CALL CONS1 ;AUSGABE ZU CONST | 1895/ F805 : 4C LD C,H |
1806/ F796 : E1 POP HL | 1896/ F806 : 45 LD B,L |
1807/ F797 : 4D LD C,L | 1897/ F807 : ED 43 0D 00 LD (BCSV),BC ; |
1808/ F798 : D8 RET C ;FEHLER | 1898/ F80B : ; |
1809/ F799 : 3A 15 00 LD A,(LISW) | 1899/ F80B : ;STELLEN DER UHR |
1810/ F79C : B7 OR A | 1900/ F80B : ; |
1811/ F79D : C8 RET Z ;KEINE AUSGABE ZU LIST | 1901/ F80B : 32 1D 00 STIME: LD (STUND),A |
1812/ F79E : [1791] ENDIF | 1902/ F80E : 68 LD L,B |
1813/ F79E : | 1903/ F80F : 61 LD H,C |
1814/ F79E : ; | 1904/ F810 : 22 1E 00 LD (MIN),HL |
1815/ F79E : ;AUSGABE ZU LIST | 1905/ F813 : B7 OR A |
1816/ F79E : ; | 1906/ F814 : C9 RET |
1817/ F79E : 3E 02 LIST: LD A,2 | 1907/ F815 : ; |
1818/ F7A0 : 06 06 LIST1: LD B,6 ;INTERNE LOG. GERAETENR. LIST | 1908/ F815 : ;2-STELLIGE DEZIMALZAHL IN INTERNE DARSTELLUNG KONVERTIEREN |
1819/ F7A2 : 18 B6 JR CONS2 | 1909/ F815 : ; |
1820/ F7A4 : ; | 1910/ F815 : ; Funktion: Umwandlung Parameterstring (Dezimalzahl) in interne Darstellung (ein Byte) |
1821/ F7A4 : ;ABFRAGE STATUS LIST | 1911/ F815 : ; a) Eingang |
1822/ F7A4 : ; | 1912/ F815 : ; - VIEXT |
1823/ F7A4 : 3E 00 LLIST: LD A,0 | 1913/ F815 : ; gerufen von: GEVAL |
1824/ F7A6 : 18 F8 JR LIST1 | 1914/ F815 : ; Parameter : DE Stringadresse |
1825/ F7A8 : ; | 1915/ F815 : ; b) gerufene Programme |
1826/ F7A8 : ;EINGABE VON READER | 1916/ F815 : ; - FORMS formatieren Eingabe-String |
1827/ F7A8 : ; | 1917/ F815 : ; c) Ausgang |
1828/ F7A8 : 3E 01 READR: LD A,1 | 1918/ F815 : ; - |
1829/ F7AA : 06 02 RDR1: LD B,2 ;INTERNE LOG. GERAETENR. READER | 1919/ F815 : ; d) Return |
1830/ F7AC : 18 AC JR CONS2 | 1920/ F815 : ; Parameter: DE Adresse nach String |
1831/ F7AE : ; | 1921/ F815 : ; A Wert |
1832/ F7AE : ;AUSGABE ZU PUNCH | |
1833/ F7AE : ; | |
1834/ F7AE : 3E 02 PUNCH: LD A,2 | |
1835/ F7B0 : 06 04 LD B,4 ;INTERNE LOG. GERAETENR. PUNCH | |
1836/ F7B2 : 18 A6 JR CONS2 | |
1837/ F7B4 : ; | |
1838/ F7B4 : ;STEUERPROGRAMM FUER BATCH-MODE VON CONST | |
1839/ F7B4 : ; | |
1840/ F7B4 : FE 01 BAT: CP A, 1 ;EINGABE GEFORDERT | |
1841/ F7B6 : 28 F0 JR Z, READR | |
1842/ F7B8 : FE FF CP A, 0FFH ;INITIALISIERUNG GEFORDERT | |
1843/ F7BA : 20 E4 JR NZ, LIST1 ;AUSGABE | |
1844/ F7BC : | |
1845/ F7BC : | |
1846/ F7BC : =>FALSE if osver == 11 | |
1847/ F7BC : CALL 0FFEEh ; ????? | |
1848/ F7BC : =>TRUE ELSE | |
1849/ F7BC : CD AA F7 CALL RDR1 ;INIT. READER | |
1850/ F7BF : [1846] ENDIF | |
1851/ F7BF : | |
1852/ F7BF : D8 RET C ;FEHLER | |
1853/ F7C0 : 3E FF LD A,0FFH | |
1854/ F7C2 : 18 DC JR LIST1 ;INIT. LIST | |
1855/ F7C4 : ; | |
1856/ F7C4 : ;ABFRAGE SPIELHEBEL | |
1857/ F7C4 : ; | |
1858/ F7C4 : CD 8F FE GSTIK: CALL GPIOD ;TASTATUR-PIO DIREKT LESEN | |
1859/ F7C7 : ED 4B 13 00 LD BC,(JOYR) | |
1860/ F7CB : ED 43 0D 00 LD (BCSV),BC ;RUECKGABE PARAMETER | |
AS V1.42 Beta [Bld 82] - source file os.asm - page 32 - 3/20/2012 20:42:07 | |
| |
| |
1861/ F7CF : C3 E9 FA JP INPIO ;INIT. TASTATUR-PIO | |
1862/ F7D2 : ; | |
1863/ F7D2 : ;ABFRAGE I/O-BYTE | |
1864/ F7D2 : ; | |
1865/ F7D2 : 3A 04 00 GIOBY: LD A,(IOBYT) | |
1866/ F7D5 : 32 0F 00 LD (ASV),A ;RUECKGABE PARAMETER | |
1867/ F7D8 : 4F LD C,A | |
1868/ F7D9 : ; | |
1869/ F7D9 : ;SETZEN I/O-BYTE | |
1870/ F7D9 : ; | |
1871/ F7D9 : 79 SIOBY: LD A,C | |
1872/ F7DA : 32 04 00 LD (IOBYT),A | |
1873/ F7DD : B7 OR A | |
1874/ F7DE : C9 RET | |
1875/ F7DF : ; | |
1876/ F7DF : ;SETZEN KASSETTENPUFFER | |
1877/ F7DF : ; | |
1878/ F7DF : ED 43 1B 00 SDMA: LD (DMA),BC | |
1879/ F7E3 : B7 OR A | |
1880/ F7E4 : C9 RET | |
1881/ F7E5 : ; | |
1882/ F7E5 : ;LOGISCHER SPEICHERTEST | |
1883/ F7E5 : ; | |
1884/ F7E5 : 69 GMEM: LD L,C | |
1885/ F7E6 : 60 LD H,B | |
1886/ F7E7 : CD 3B F2 CALL CHRAM ;TEST DER ADRESSE IN HL | |
1887/ F7EA : 3E 01 LD A,1 | |
1888/ F7EC : 38 01 JR C, GM1 ;RAM GEFUNDEN | |
1889/ F7EE : 3D DEC A ;GESCHUETZT/ROM | |
1890/ F7EF : 32 0F 00 GM1: LD (ASV),A ;RUECKGABE PARAMETER | |
1891/ F7F2 : B7 OR A | |
1892/ F7F3 : C9 RET | |
1893/ F7F4 : ; | |
1894/ F7F4 : ;SETZEN SPEICHERKONFIGURATION | |
1895/ F7F4 : ; | |
1896/ F7F4 : 69 SMEM: LD L,C | |
1897/ F7F5 : 60 LD H,B | |
1898/ F7F6 : 4F LD C,A | |
1899/ F7F7 : CD 31 F2 CALL MOD ;STATUS FUER ADR. IN HL AENDERN | |
1900/ F7FA : B7 OR A | |
1901/ F7FB : C9 RET | |
1902/ F7FC : ; | |
1903/ F7FC : ;ABFRAGE AKTUELLE UHRZEIT | |
1904/ F7FC : ; | |
1905/ F7FC : 3A 1D 00 GTIME: LD A,(STUND) | |
1906/ F7FF : 32 0F 00 LD (ASV),A ;RUECKGABE PARAMETER | |
1907/ F802 : 2A 1E 00 LD HL,(MIN) | |
1908/ F805 : 4C LD C,H | |
1909/ F806 : 45 LD B,L | |
1910/ F807 : ED 43 0D 00 LD (BCSV),BC ; | |
1911/ F80B : ; | |
1912/ F80B : ;STELLEN DER UHR | |
1913/ F80B : ; | |
1914/ F80B : 32 1D 00 STIME: LD (STUND),A | |
1915/ F80E : 68 LD L,B | |
1916/ F80F : 61 LD H,C | |
1917/ F810 : 22 1E 00 LD (MIN),HL | |
1918/ F813 : B7 OR A | |
1919/ F814 : C9 RET | |
1920/ F815 : ; | |
AS V1.42 Beta [Bld 82] - source file os.asm - page 33 - 3/20/2012 20:42:07 | |
| |
| |
1921/ F815 : ;2-STELLIGE DEZIMALZAHL IN INTERNE DARSTELLUNG KONVERTIEREN | |
1922/ F815 : ; | 1922/ F815 : ; |
1923/ F815 : ; Funktion: Umwandlung Parameterstring (Dezimalzahl) in interne Darstellung (ein Byte) | 1923/ F815 : 1A VIEXT: LD A,(DE) |
1924/ F815 : ; a) Eingang | 1924/ F816 : B7 OR A |
1925/ F815 : ; - VIEXT | 1925/ F817 : 37 SCF |
1926/ F815 : ; gerufen von: GEVAL | 1926/ F818 : C8 RET Z ;ZEICHENKETTE LEER |
1927/ F815 : ; Parameter : DE Stringadresse | 1927/ F819 : 3E 02 LD A,2 ;NEUE LAENGE DER ZEICHENKETTE |
1928/ F815 : ; b) gerufene Programme | 1928/ F81B : CD 36 F8 CALL FORMS ;AUF NEUE LAENGE BRINGEN |
1929/ F815 : ; - FORMS formatieren Eingabe-String | 1929/ F81E : D8 RET C ;ZU VIELE DEZIMALSTELLEN |
1930/ F815 : ; c) Ausgang | 1930/ F81F : 01 02 00 LD BC,2 ;(C)=ANZAHL DER STELLEN |
1931/ F815 : ; - | 1931/ F822 : 1A ADEC1: LD A,(DE) |
1932/ F815 : ; d) Return | 1932/ F823 : 13 INC DE |
1933/ F815 : ; Parameter: DE Adresse nach String | 1933/ F824 : D6 30 SUB 30H |
1934/ F815 : ; A Wert | 1934/ F826 : D8 RET C ;FEHLER |
1935/ F815 : ; | 1935/ F827 : FE 0A CP A, 10 |
1936/ F815 : 1A VIEXT: LD A,(DE) | 1936/ F829 : 3F CCF |
1937/ F816 : B7 OR A | 1937/ F82A : D8 RET C ;FEHLER |
1938/ F817 : 37 SCF | 1938/ F82B : 80 ADD A, B |
1939/ F818 : C8 RET Z ;ZEICHENKETTE LEER | 1939/ F82C : 0D DEC C |
1940/ F819 : 3E 02 LD A,2 ;NEUE LAENGE DER ZEICHENKETTE | 1940/ F82D : C8 RET Z |
1941/ F81B : CD 36 F8 CALL FORMS ;AUF NEUE LAENGE BRINGEN | 1941/ F82E : 87 ADD A, A |
1942/ F81E : D8 RET C ;ZU VIELE DEZIMALSTELLEN | 1942/ F82F : 47 LD B,A |
1943/ F81F : 01 02 00 LD BC,2 ;(C)=ANZAHL DER STELLEN | 1943/ F830 : 87 ADD A, A |
1944/ F822 : 1A ADEC1: LD A,(DE) | 1944/ F831 : 87 ADD A, A |
1945/ F823 : 13 INC DE | 1945/ F832 : 80 ADD A, B |
1946/ F824 : D6 30 SUB 30H | 1946/ F833 : 47 LD B,A ;(B)=ZAHL |
1947/ F826 : D8 RET C ;FEHLER | 1947/ F834 : 18 EC JR ADEC1 |
1948/ F827 : FE 0A CP A, 10 | 1948/ F836 : ; |
1949/ F829 : 3F CCF | 1949/ F836 : ;ZEICHENKETTE AUF BESTIMMTE LAENGE FORMATIEREN |
1950/ F82A : D8 RET C ;FEHLER | 1950/ F836 : ; |
1951/ F82B : 80 ADD A, B | 1951/ F836 : ; Funktion: Formatieren String auf n Bytes für Konvertierung in interne Zahl |
1952/ F82C : 0D DEC C | 1952/ F836 : ; Ausblenden bzw. Einfügen von Vornullen |
1953/ F82D : C8 RET Z | 1953/ F836 : ; a) Eingang |
1954/ F82E : 87 ADD A, A | 1954/ F836 : ; - FORMS |
1955/ F82F : 47 LD B,A | 1955/ F836 : ; gerufen von: VIEXT37 |
1956/ F830 : 87 ADD A, A | 1956/ F836 : ; Parameter: DE Stringadresse |
1957/ F831 : 87 ADD A, A | 1957/ F836 : ; A neue gewünschte Länge |
1958/ F832 : 80 ADD A, B | 1958/ F836 : ; b) gerufene Programme |
1959/ F833 : 47 LD B,A ;(B)=ZAHL | 1959/ F836 : ; - MOVE verschieben Speicherbereich |
1960/ F834 : 18 EC JR ADEC1 | 1960/ F836 : ; c) Ausgang |
1961/ F836 : ; | 1961/ F836 : ; - |
1962/ F836 : ;ZEICHENKETTE AUF BESTIMMTE LAENGE FORMATIEREN | 1962/ F836 : ; d) Return |
1963/ F836 : ; | 1963/ F836 : ; Parameter: DE Adresse 1. Zeichen neuer String |
1964/ F836 : ; Funktion: Formatieren String auf n Bytes für Konvertierung in interne Zahl | 1964/ F836 : ; CY 0 kein Fehler |
1965/ F836 : ; Ausblenden bzw. Einfügen von Vornullen | 1965/ F836 : ; 1 zu viele signifikante Stellen (keine Vornullen) |
1966/ F836 : ; a) Eingang | 1966/ F836 : ; |
1967/ F836 : ; - FORMS | 1967/ F836 : 6B FORMS: LD L,E ;(DE)=ADR. DER KETTENLAENGE |
1968/ F836 : ; gerufen von: VIEXT37 | 1968/ F837 : 62 LD H,D |
1969/ F836 : ; Parameter: DE Stringadresse | 1969/ F838 : 13 INC DE |
1970/ F836 : ; A neue gewünschte Länge | 1970/ F839 : BE CP A, (HL) |
1971/ F836 : ; b) gerufene Programme | 1971/ F83A : C8 RET Z ;LAENGE ERREICHT |
1972/ F836 : ; - MOVE verschieben Speicherbereich | 1972/ F83B : 06 00 LD B,0 |
1973/ F836 : ; c) Ausgang | 1973/ F83D : 4E LD C,(HL) |
1974/ F836 : ; - | 1974/ F83E : 38 13 JR C, DHAZ ;ALT > NEU |
1975/ F836 : ; d) Return | 1975/ F840 : 77 LD (HL),A ;NEUE LAENGE |
1976/ F836 : ; Parameter: DE Adresse 1. Zeichen neuer String | 1976/ F841 : 91 SUB C |
1977/ F836 : ; CY 0 kein Fehler | 1977/ F842 : 09 FORM1: ADD HL,BC ; |
1978/ F836 : ; 1 zu viele signifikante Stellen (keine Vornullen) | 1978/ F843 : 5D LD E,L ; |
1979/ F836 : ; | 1979/ F844 : 54 LD D,H ; |
1980/ F836 : 6B FORMS: LD L,E ;(DE)=ADR. DER KETTENLAENGE | 1980/ F845 : 13 INC DE ; |
AS V1.42 Beta [Bld 82] - source file os.asm - page 34 - 3/20/2012 20:42:07 | 1981/ F846 : C5 PUSH BC ; |
| 1982/ F847 : ED B8 LDDR ;VORNULLEN EINFUEGEN |
| 1983/ F849 : C1 POP BC ; |
1981/ F837 : 62 LD H,D | 1984/ F84A : EB EX DE,HL ; |
1982/ F838 : 13 INC DE | 1985/ F84B : 36 30 LD (HL),'0' ; |
1983/ F839 : BE CP A, (HL) | 1986/ F84D : EB EX DE,HL ; |
1984/ F83A : C8 RET Z ;LAENGE ERREICHT | 1987/ F84E : 03 INC BC ; |
1985/ F83B : 06 00 LD B,0 | 1988/ F84F : 3D DEC A ; |
1986/ F83D : 4E LD C,(HL) | 1989/ F850 : 20 F0 JR NZ, FORM1 ; |
1987/ F83E : 38 13 JR C, DHAZ ;ALT > NEU | 1990/ F852 : C9 RET |
1988/ F840 : 77 LD (HL),A ;NEUE LAENGE | 1991/ F853 : ; |
1989/ F841 : 91 SUB C | 1992/ F853 : F5 DHAZ: PUSH AF |
1990/ F842 : 09 FORM1: ADD HL,BC ; | 1993/ F854 : 23 INC HL |
1991/ F843 : 5D LD E,L ; | 1994/ F855 : 23 INC HL |
1992/ F844 : 54 LD D,H ; | 1995/ F856 : 1A LD A,(DE) |
1993/ F845 : 13 INC DE ; | 1996/ F857 : FE 30 CP A, '0' |
1994/ F846 : C5 PUSH BC ; | 1997/ F859 : 20 0A JR NZ, DHAZE ;KEINE VORNULL |
1995/ F847 : ED B8 LDDR ;VORNULLEN EINFUEGEN | 1998/ F85B : 0D DEC C |
1996/ F849 : C1 POP BC ; | 1999/ F85C : CD F7 F2 CALL MOVE ;LOESCHEN VORNULL |
1997/ F84A : EB EX DE,HL ; | 2000/ F85F : 1B DEC DE |
1998/ F84B : 36 30 LD (HL),'0' ; | 2001/ F860 : 79 LD A,C |
1999/ F84D : EB EX DE,HL ; | 2002/ F861 : 12 LD (DE),A ;NEUE LAENGE |
2000/ F84E : 03 INC BC ; | 2003/ F862 : F1 POP AF |
2001/ F84F : 3D DEC A ; | 2004/ F863 : 18 D1 JR FORMS |
2002/ F850 : 20 F0 JR NZ, FORM1 ; | 2005/ F865 : ; |
2003/ F852 : C9 RET | 2006/ F865 : F1 DHAZE: POP AF ;ZU VIELE SIGNIFIKANTE STELLEN |
2004/ F853 : ; | 2007/ F866 : 37 SCF |
2005/ F853 : F5 DHAZ: PUSH AF | 2008/ F867 : C9 RET |
2006/ F854 : 23 INC HL | 2009/ F868 : ; |
2007/ F855 : 23 INC HL | 2010/ F868 : ;******************************************************************* |
2008/ F856 : 1A LD A,(DE) | 2011/ F868 : ;* CRT - TREIBER TEIL 1: BILDSCHIRM * |
2009/ F857 : FE 30 CP A, '0' | 2012/ F868 : ;******************************************************************* |
2010/ F859 : 20 0A JR NZ, DHAZE ;KEINE VORNULL | 2013/ F868 : ; |
2011/ F85B : 0D DEC C | 2014/ F868 : ;FARBCODEBERECHNUNG |
2012/ F85C : CD F7 F2 CALL MOVE ;LOESCHEN VORNULL | 2015/ F868 : D6 14 COL: SUB 14H ;(A)=FARBSTEUERCODE |
2013/ F85F : 1B DEC DE | 2016/ F86A : 38 15 JR C, RAND ;RANDFARBE AENDERN |
2014/ F860 : 79 LD A,C | 2017/ F86C : 28 06 JR Z, INK ;VORDERGRUNDFARBE AENDERN |
2015/ F861 : 12 LD (DE),A ;NEUE LAENGE | 2018/ F86E : |
2016/ F862 : F1 POP AF | 2019/ F86E : PAPER: |
2017/ F863 : 18 D1 JR FORMS | 2020/ F86E : =>FALSE IF farb16 |
2018/ F865 : ; | 2021/ F86E : LD B,0F0H ;Unterstützung für 16 Farben |
2019/ F865 : F1 DHAZE: POP AF ;ZU VIELE SIGNIFIKANTE STELLEN | 2022/ F86E : =>TRUE ELSE |
2020/ F866 : 37 SCF | 2023/ F86E : 06 F8 LD B,0F8H ;HINTERGRUNDFARBE AENDERN |
2021/ F867 : C9 RET | 2024/ F870 : [2020] ENDIF |
2022/ F868 : ; | 2025/ F870 : |
2023/ F868 : ;******************************************************************* | 2026/ F870 : 7B LD A,E ;ALTER FARBCODE |
2024/ F868 : ;* CRT - TREIBER TEIL 1: BILDSCHIRM * | 2027/ F871 : A0 P1: AND A, B |
2025/ F868 : ;******************************************************************* | 2028/ F872 : B1 OR C ;(C)=ALTER FARBCODE |
2026/ F868 : ; | 2029/ F873 : C9 RET ;(A)=RSULTIERENDER FARBCODE |
2027/ F868 : ;FARBCODEBERECHNUNG | 2030/ F874 : ; |
2028/ F868 : D6 14 COL: SUB 14H ;(A)=FARBSTEUERCODE | 2031/ F874 : |
2029/ F86A : 38 15 JR C, RAND ;RANDFARBE AENDERN | 2032/ F874 : INK: |
2030/ F86C : 28 06 JR Z, INK ;VORDERGRUNDFARBE AENDERN | 2033/ F874 : =>FALSE IF farb16 |
2031/ F86E : | 2034/ F874 : CALL INK16 ;Unterstützung für 16 Farben |
2032/ F86E : PAPER: | 2035/ F874 : =>TRUE else |
2033/ F86E : =>FALSE IF farb16 | 2036/ F874 : 7B LD A,E |
2034/ F86E : LD B,0F0H ;Unterstützung für 16 Farben | 2037/ F875 : 06 8F LD B,8FH |
2035/ F86E : =>TRUE ELSE | 2038/ F877 : [2033] ENDIF |
2036/ F86E : 06 F8 LD B,0F8H ;HINTERGRUNDFARBE AENDERN | 2039/ F877 : |
2037/ F870 : [2033] ENDIF | 2040/ F877 : CB 21 I0: SLA C |
2038/ F870 : | 2041/ F879 : CB 21 I1: SLA C |
2039/ F870 : 7B LD A,E ;ALTER FARBCODE | 2042/ F87B : CB 21 SLA C |
2040/ F871 : A0 P1: AND A, B | 2043/ F87D : CB 21 SLA C |
AS V1.42 Beta [Bld 82] - source file os.asm - page 35 - 3/20/2012 20:42:07 | 2044/ F87F : 18 F0 JR P1 |
| 2045/ F881 : ; |
| 2046/ F881 : DB 88 RAND: IN A, DPIO1A ;SYSTEMPORT PIO 1 |
2041/ F872 : B1 OR C ;(C)=ALTER FARBCODE | 2047/ F883 : =>FALSE IF farb16 |
2042/ F873 : C9 RET ;(A)=RSULTIERENDER FARBCODE | 2048/ F883 : CALL BORD |
2043/ F874 : ; | 2049/ F883 : AND B |
2044/ F874 : | 2050/ F883 : OR C |
2045/ F874 : INK: | 2051/ F883 : =>TRUE else |
2046/ F874 : =>FALSE IF farb16 | 2052/ F883 : 06 C7 LD B,0C7H |
2047/ F874 : CALL INK16 ;Unterstützung für 16 Farben | 2053/ F885 : CD 79 F8 CALL I1 |
2048/ F874 : =>TRUE else | 2054/ F888 : [2047] ENDIF |
2049/ F874 : 7B LD A,E | 2055/ F888 : D3 88 R1: OUT DPIO1A, A |
2050/ F875 : 06 8F LD B,8FH | 2056/ F88A : F1 POP AF ;RUECKKEHRADR. VERNICHTEN |
2051/ F877 : [2046] ENDIF | 2057/ F88B : 18 0E JR MCOL2 |
2052/ F877 : | 2058/ F88D : ; |
2053/ F877 : CB 21 I0: SLA C | 2059/ F88D : ;ZEICHENAUSGABE |
2054/ F879 : CB 21 I1: SLA C | 2060/ F88D : ; |
2055/ F87B : CB 21 SLA C | 2061/ F88D : ; Funktion: Behandlung alle Sonderzeichen (Farbe, Bell, Blinken, Invers) |
2056/ F87D : CB 21 SLA C | 2062/ F88D : ; a) Eingang |
2057/ F87F : 18 F0 JR P1 | 2063/ F88D : ; - OCHAR |
2058/ F881 : ; | 2064/ F88D : ; gerufen von: CRT |
2059/ F881 : DB 88 RAND: IN A, DPIO1A ;SYSTEMPORT PIO 1 | 2065/ F88D : ; Parameter : C Zeichen |
2060/ F883 : =>FALSE IF farb16 | 2066/ F88D : ; b) gerufene Programme |
2061/ F883 : CALL BORD | 2067/ F88D : ; - COL Farbbehandlung |
2062/ F883 : AND B | 2068/ F88D : ; - BELL1 Tonausgabe vorbereiten/beenden |
2063/ F883 : OR C | 2069/ F88D : ; - INIVT Initialisieren Ton |
2064/ F883 : =>TRUE else | 2070/ F88D : ; - AUS1 Ausgabe Ton |
2065/ F883 : 06 C7 LD B,0C7H | 2071/ F88D : ; - OC Ausgabe ASCII-Zeichen |
2066/ F885 : CD 79 F8 CALL I1 | 2072/ F88D : ; - MIAT Farbcode invertieren |
2067/ F888 : [2060] ENDIF | |
2068/ F888 : D3 88 R1: OUT DPIO1A, A | |
2069/ F88A : F1 POP AF ;RUECKKEHRADR. VERNICHTEN | |
2070/ F88B : 18 0E JR MCOL2 | |
2071/ F88D : ; | |
2072/ F88D : ;ZEICHENAUSGABE | |
2073/ F88D : ; | 2073/ F88D : ; |
2074/ F88D : ; Funktion: Behandlung alle Sonderzeichen (Farbe, Bell, Blinken, Invers) | 2074/ F88D : 3A 27 00 OCHAR: LD A,(ATRIB) ;AKTUELLER FARBCODE |
2075/ F88D : ; a) Eingang | 2075/ F890 : 5F LD E,A |
2076/ F88D : ; - OCHAR | 2076/ F891 : 7E LD A,(HL) ;(HL)=ADR. VON COLSW |
2077/ F88D : ; gerufen von: CRT | 2077/ F892 : B7 OR A |
2078/ F88D : ; Parameter : C Zeichen | 2078/ F893 : 28 09 JR Z, OCH1 ;ZEICHEN IST KEIN FARBCODE |
2079/ F88D : ; b) gerufene Programme | 2079/ F895 : CD 68 F8 MCOL: CALL COL ;NEUEN FARBCODE BERECHNEN |
2080/ F88D : ; - COL Farbbehandlung | 2080/ F898 : 32 27 00 MCOL1: LD (ATRIB),A ;NEUER AKTUELLER FARBCODE |
2081/ F88D : ; - BELL1 Tonausgabe vorbereiten/beenden | 2081/ F89B : AF MCOL2: XOR A |
2082/ F88D : ; - INIVT Initialisieren Ton | 2082/ F89C : 77 LD (HL),A ;FARBSCHALTERLOESCHEN |
2083/ F88D : ; - AUS1 Ausgabe Ton | 2083/ F89D : C9 RET |
2084/ F88D : ; - OC Ausgabe ASCII-Zeichen | 2084/ F89E : ; |
2085/ F88D : ; - MIAT Farbcode invertieren | 2085/ F89E : |
2086/ F88D : ; | 2086/ F89E : OCH1: |
2087/ F88D : 3A 27 00 OCHAR: LD A,(ATRIB) ;AKTUELLER FARBCODE | 2087/ F89E : =>FALSE if farb16 |
2088/ F890 : 5F LD E,A | 2088/ F89E : JP CTRLAD ;AUSZUGEBENDES ZEICHEN |
2089/ F891 : 7E LD A,(HL) ;(HL)=ADR. VON COLSW | 2089/ F89E : MF8A1: |
2090/ F892 : B7 OR A | 2090/ F89E : =>TRUE else |
2091/ F893 : 28 09 JR Z, OCH1 ;ZEICHEN IST KEIN FARBCODE | 2091/ F89E : 79 LD A,C ;AUSZUGEBENDES ZEICHEN |
2092/ F895 : CD 68 F8 MCOL: CALL COL ;NEUEN FARBCODE BERECHNEN | 2092/ F89F : D6 05 SUB 5 |
2093/ F898 : 32 27 00 MCOL1: LD (ATRIB),A ;NEUER AKTUELLER FARBCODE | 2093/ F8A1 : [2087] ENDIF |
2094/ F89B : AF MCOL2: XOR A | 2094/ F8A1 : |
2095/ F89C : 77 LD (HL),A ;FARBSCHALTERLOESCHEN | 2095/ F8A1 : 28 39 JR Z, SCOL ;STEUERCODE RANDFARBE GEFUNDEN (05 (F) CTRL/E) |
2096/ F89D : C9 RET | 2096/ F8A3 : 3D DEC A |
2097/ F89E : ; | 2097/ F8A4 : 20 05 JR NZ, OCH3 |
2098/ F89E : | 2098/ F8A6 : ;06 (F) CTRL/F Blinken EIN/AUS |
2099/ F89E : OCH1: | 2099/ F8A6 : 7B BLINK: LD A,E ;BLINKBIT EIN/AUS |
2100/ F89E : =>FALSE if farb16 | 2100/ F8A7 : EE 80 XOR 80H ;BLINKBIT AENDERN |
AS V1.42 Beta [Bld 82] - source file os.asm - page 36 - 3/20/2012 20:42:07 | 2101/ F8A9 : 18 ED JR MCOL1 |
| 2102/ F8AB : 3D OCH3: DEC A |
| 2103/ F8AC : 20 1D JR NZ, OCH4 |
2101/ F89E : JP CTRLAD ;AUSZUGEBENDES ZEICHEN | 2104/ F8AE : ;07 CTRL/G Ausgabe eines Summertones |
2102/ F89E : MF8A1: | 2105/ F8AE : F3 BELL: DI ;AUSGABE TASTATURTON |
2103/ F89E : =>TRUE else | 2106/ F8AF : CD C4 F8 CALL BELL1 ;SUMMER EIN/AUS |
2104/ F89E : 79 LD A,C ;AUSZUGEBENDES ZEICHEN | 2107/ F8B2 : CD 0D FF CALL INIVT ;INIT. TONAUSGABE |
2105/ F89F : D6 05 SUB 5 | 2108/ F8B5 : 01 30 00 LD BC,30H ;ANZAHL TOENE |
2106/ F8A1 : [2100] ENDIF | 2109/ F8B8 : CD 31 FF BELL0: CALL AUS1 ;AUSGABE |
2107/ F8A1 : | 2110/ F8BB : ED A1 CPI ; |
2108/ F8A1 : 28 39 JR Z, SCOL ;STEUERCODE RANDFARBE GEFUNDEN (05 (F) CTRL/E) | 2111/ F8BD : EA B8 F8 JP PE,BELL0 ; |
2109/ F8A3 : 3D DEC A | 2112/ F8C0 : 3E 03 LD A,3 |
2110/ F8A4 : 20 05 JR NZ, OCH3 | 2113/ F8C2 : D3 80 OUT CTC0, A ;CTC 0 HALT |
2111/ F8A6 : ;06 (F) CTRL/F Blinken EIN/AUS | 2114/ F8C4 : DB 88 BELL1: IN A, DPIO1A |
2112/ F8A6 : 7B BLINK: LD A,E ;BLINKBIT EIN/AUS | 2115/ F8C6 : EE 80 XOR 80H |
2113/ F8A7 : EE 80 XOR 80H ;BLINKBIT AENDERN | 2116/ F8C8 : D3 88 OUT DPIO1A, A |
2114/ F8A9 : 18 ED JR MCOL1 | 2117/ F8CA : C9 RET |
2115/ F8AB : 3D OCH3: DEC A | 2118/ F8CB : ; |
2116/ F8AC : 20 1D JR NZ, OCH4 | 2119/ F8CB : D6 0A OCH4: SUB 0AH |
2117/ F8AE : ;07 CTRL/G Ausgabe eines Summertones | 2120/ F8CD : 20 06 JR NZ, OCH44 |
2118/ F8AE : F3 BELL: DI ;AUSGABE TASTATURTON | 2121/ F8CF : ;11 CTRL/Q Kontrollton EIN/AUS |
2119/ F8AF : CD C4 F8 CALL BELL1 ;SUMMER EIN/AUS | 2122/ F8CF : 2B DEC HL ;(HL)=ADR. SCHALT. KONTROLLTON |
2120/ F8B2 : CD 0D FF CALL INIVT ;INIT. TONAUSGABE | 2123/ F8D0 : 7E LD A,(HL) ; |
2121/ F8B5 : 01 30 00 LD BC,30H ;ANZAHL TOENE | 2124/ F8D1 : EE 01 XOR 1 ;UMSCHALTEN |
2122/ F8B8 : CD 31 FF BELL0: CALL AUS1 ;AUSGABE | 2125/ F8D3 : 77 LD (HL),A ; |
2123/ F8BB : ED A1 CPI ; | 2126/ F8D4 : C9 RET |
2124/ F8BD : EA B8 F8 JP PE,BELL0 ; | 2127/ F8D5 : ; |
2125/ F8C0 : 3E 03 LD A,3 | 2128/ F8D5 : D6 03 OCH44: SUB 3 |
2126/ F8C2 : D3 80 OUT CTC0, A ;CTC 0 HALT | 2129/ F8D7 : 28 03 JR Z, SCOL ;FARBSTEUERCODE VORDERGRUND |
2127/ F8C4 : DB 88 BELL1: IN A, DPIO1A | 2130/ F8D9 : 3D DEC A |
2128/ F8C6 : EE 80 XOR 80H | 2131/ F8DA : 20 02 JR NZ, OCH5 ;KEIN FARBSTEUERCODE HINTERGRUND |
2129/ F8C8 : D3 88 OUT DPIO1A, A | 2132/ F8DC : ; 14 (F) COLOR CTRL/T nächstes Zeichen ist Code für Vordergrundfarbe |
2130/ F8CA : C9 RET | 2133/ F8DC : ; 15 (F) SHIFT+COLOR o. CTRL/U nächstes Zeichen ist Code für Hintergrundfarbe |
2131/ F8CB : ; | 2134/ F8DC : 79 SCOL: LD A,C ; C = 14h oder 15h |
2132/ F8CB : D6 0A OCH4: SUB 0AH | 2135/ F8DD : 77 LD (HL),A ;FARBSTEUERCODE IN COLSW MERKEN |
2133/ F8CD : 20 06 JR NZ, OCH44 | 2136/ F8DE : 3D OCH5: DEC A |
2134/ F8CF : ;11 CTRL/Q Kontrollton EIN/AUS | 2137/ F8DF : 28 0A JR Z, INVER ;FARBEN INVERTIEREN (bei A=15 und A=16) |
2135/ F8CF : 2B DEC HL ;(HL)=ADR. SCHALT. KONTROLLTON | 2138/ F8E1 : ; sonst normale Zeichenausgabe |
2136/ F8D0 : 7E LD A,(HL) ; | 2139/ F8E1 : CD 7D F9 CALL OC ;AUSGABE DES ZEICHENS |
2137/ F8D1 : EE 01 XOR 1 ;UMSCHALTEN | 2140/ F8E4 : 3A 16 00 LD A,(BSW) |
2138/ F8D3 : 77 LD (HL),A ; | 2141/ F8E7 : B7 OR A |
2139/ F8D4 : C9 RET | 2142/ F8E8 : C8 RET Z ;KEIN KONTROLLTON |
2140/ F8D5 : ; | 2143/ F8E9 : 18 C3 JR BELL ;KONTROLLTON AUSGEBEN |
2141/ F8D5 : D6 03 OCH44: SUB 3 | 2144/ F8EB : ; 16 (F) CTRL/V Inversdarstellung aller folgenden Zeichen |
2142/ F8D7 : 28 03 JR Z, SCOL ;FARBSTEUERCODE VORDERGRUND | 2145/ F8EB : 7B INVER: LD A,E |
2143/ F8D9 : 3D DEC A | 2146/ F8EC : CD D6 FA CALL MIAT ;FARBE INVERTIEREN |
2144/ F8DA : 20 02 JR NZ, OCH5 ;KEIN FARBSTEUERCODE HINTERGRUND | 2147/ F8EF : 18 A7 JR MCOL1 |
2145/ F8DC : ; 14 (F) COLOR CTRL/T nächstes Zeichen ist Code für Vordergrundfarbe | 2148/ F8F1 : ; |
2146/ F8DC : ; 15 (F) SHIFT+COLOR o. CTRL/U nächstes Zeichen ist Code für Hintergrundfarbe | 2149/ F8F1 : ;STEUERPROGRAMM DES CRT - TREIBERS |
2147/ F8DC : 79 SCOL: LD A,C ; C = 14h oder 15h | 2150/ F8F1 : ; |
2148/ F8DD : 77 LD (HL),A ;FARBSTEUERCODE IN COLSW MERKEN | 2151/ F8F1 : ; Funktion: Bildschirmtreiber, Tastaturtreiber, Steuerprogramm |
2149/ F8DE : 3D OCH5: DEC A | 2152/ F8F1 : ; a) Eingang |
2150/ F8DF : 28 0A JR Z, INVER ;FARBEN INVERTIEREN (bei A=15 und A=16) | 2153/ F8F1 : ; - CRT |
2151/ F8E1 : ; sonst normale Zeichenausgabe | 2154/ F8F1 : ; gerufen von: CONST1 (über JMP (HL)) |
2152/ F8E1 : CD 7D F9 CALL OC ;AUSGABE DES ZEICHENS | 2155/ F8F1 : ; Parameter : A Art des Rufes |
2153/ F8E4 : 3A 16 00 LD A,(BSW) | 2156/ F8F1 : ; FF Init. |
2154/ F8E7 : B7 OR A | 2157/ F8F1 : ; 0 Status Tastatur |
2155/ F8E8 : C8 RET Z ;KEIN KONTROLLTON | 2158/ F8F1 : ; 1 Eingabe |
2156/ F8E9 : 18 C3 JR BELL ;KONTROLLTON AUSGEBEN | 2159/ F8F1 : ; 2 Ausgabe |
2157/ F8EB : ; 16 (F) CTRL/V Inversdarstellung aller folgenden Zeichen | 2160/ F8F1 : ; (C Zeichen bei Ausgabe) |
2158/ F8EB : 7B INVER: LD A,E | 2161/ F8F1 : ; 3 Cursor löschen |
2159/ F8EC : CD D6 FA CALL MIAT ;FARBE INVERTIEREN | 2162/ F8F1 : ; 4 Cursor setzen |
2160/ F8EF : 18 A7 JR MCOL1 | 2163/ F8F1 : ; 5 Abfrage log. Cursoradr. |
AS V1.42 Beta [Bld 82] - source file os.asm - page 37 - 3/20/2012 20:42:07 | 2164/ F8F1 : ; 6 Setzen log. Cursoradr. |
| 2165/ F8F1 : ; (DE Adresse; Zeile/Spalte) |
| 2166/ F8F1 : ; 7 Abfrage phys. Cursoradr. |
2161/ F8F1 : ; | 2167/ F8F1 : ; 8 Setzen phys. Cursoradr. |
2162/ F8F1 : ;STEUERPROGRAMM DES CRT - TREIBERS | 2168/ F8F1 : ; (DE Adresse) |
2163/ F8F1 : ; | 2169/ F8F1 : ; b) gerufene Programme |
2164/ F8F1 : ; Funktion: Bildschirmtreiber, Tastaturtreiber, Steuerprogramm | 2170/ F8F1 : ; - OC Ausgabe ASCII-Zeichen |
2165/ F8F1 : ; a) Eingang | 2171/ F8F1 : ; c) Ausgang |
2166/ F8F1 : ; - CRT | 2172/ F8F1 : ; - INITA Tastaturinitialisierung |
2167/ F8F1 : ; gerufen von: CONST1 (über JMP (HL)) | 2173/ F8F1 : ; - OCHAR Ausgabe Zeichen |
2168/ F8F1 : ; Parameter : A Art des Rufes | 2174/ F8F1 : ; - OC Ausgabe ASCII-Zeichen (für Cursoroperationen) |
2169/ F8F1 : ; FF Init. | 2175/ F8F1 : ; d) Return |
2170/ F8F1 : ; 0 Status Tastatur | 2176/ F8F1 : ; Parameter: A Zeichen bei IN |
2171/ F8F1 : ; 1 Eingabe | 2177/ F8F1 : ; DE, HL Adressen bei Cursorabfrage |
2172/ F8F1 : ; 2 Ausgabe | 2178/ F8F1 : ; DE log. |
2173/ F8F1 : ; (C Zeichen bei Ausgabe) | 2179/ F8F1 : ; HL phys. |
2174/ F8F1 : ; 3 Cursor löschen | 2180/ F8F1 : ; ; |
2175/ F8F1 : ; 4 Cursor setzen | 2181/ F8F1 : 21 17 00 CRT: LD HL,COLSW ;HL FUER FARBBEHANDLUNG STELLEN |
2176/ F8F1 : ; 5 Abfrage log. Cursoradr. | 2182/ F8F4 : 3C INC A |
2177/ F8F1 : ; 6 Setzen log. Cursoradr. | 2183/ F8F5 : 20 23 JR NZ, CRT1 |
2178/ F8F1 : ; (DE Adresse; Zeile/Spalte) | 2184/ F8F7 : F3 ICRT: DI ;INITIALISIERUNG CRT |
2179/ F8F1 : ; 7 Abfrage phys. Cursoradr. | 2185/ F8F8 : 21 00 19 LD HL,1900H ;(24 Zeilen) |
2180/ F8F1 : ; 8 Setzen phys. Cursoradr. | 2186/ F8FB : 22 3B 00 LD (P1ROL),HL ;STANDARDFENSTER |
2181/ F8F1 : ; (DE Adresse) | 2187/ F8FE : 26 29 LD H,29H ;EINSTELLEN (40 Spalten) L = 0 |
2182/ F8F1 : ; b) gerufene Programme | 2188/ F900 : 22 3D 00 LD (P3ROL),HL ; |
2183/ F8F1 : ; - OC Ausgabe ASCII-Zeichen | 2189/ F903 : 26 00 LD H,0 ; L = 0 |
2184/ F8F1 : ; c) Ausgang | 2190/ F905 : 22 23 00 LD (COUNT),HL ; |
2185/ F8F1 : ; - INITA Tastaturinitialisierung | 2191/ F908 : 22 25 00 LD (KEYBU),HL ;ARBEITSZELLEN LOESCHEN |
2186/ F8F1 : ; - OCHAR Ausgabe Zeichen | 2192/ F90B : 22 13 00 LD (JOYR),HL ; |
2187/ F8F1 : ; - OC Ausgabe ASCII-Zeichen (für Cursoroperationen) | 2193/ F90E : 22 16 00 LD (BSW),HL ; |
2188/ F8F1 : ; d) Return | 2194/ F911 : DB 88 IN A, DPIO1A |
2189/ F8F1 : ; Parameter: A Zeichen bei IN | 2195/ F913 : E6 38 AND A, 38H ;GRAFIKANZEIGE UND |
2190/ F8F1 : ; DE, HL Adressen bei Cursorabfrage | 2196/ F915 : D3 88 OUT DPIO1A, A ;TASTATURSUMMER AUS |
2191/ F8F1 : ; DE log. | 2197/ F917 : C3 E3 FA JP INITA ;INIT. TASTATUR |
2192/ F8F1 : ; HL phys. | 2198/ F91A : ; |
2193/ F8F1 : ; ; | 2199/ F91A : 3D CRT1: DEC A |
2194/ F8F1 : 21 17 00 CRT: LD HL,COLSW ;HL FUER FARBBEHANDLUNG STELLEN | 2200/ F91B : 20 04 JR NZ, CRT2 |
2195/ F8F4 : 3C INC A | 2201/ F91D : |
2196/ F8F5 : 20 23 JR NZ, CRT1 | 2202/ F91D : ; 00 Abfrage Status |
2197/ F8F7 : F3 ICRT: DI ;INITIALISIERUNG CRT | 2203/ F91D : ; Return: |
2198/ F8F8 : 21 00 19 LD HL,1900H ;(24 Zeilen) | 2204/ F91D : ; A Status |
2199/ F8FB : 22 3B 00 LD (P1ROL),HL ;STANDARDFENSTER | 2205/ F91D : ; 0 kein Zeichen bei Eingabegerät, nicht bereit bei Ausgabegerät |
2200/ F8FE : 26 29 LD H,29H ;EINSTELLEN (40 Spalten) L = 0 | 2206/ F91D : ; sonst Zeichen liegt an bei Eingabegerät, |
2201/ F900 : 22 3D 00 LD (P3ROL),HL ; | 2207/ F91D : ; (im installierten CRT-Treiber wird der Zeichencode übergeben) |
2202/ F903 : 26 00 LD H,0 ; L = 0 | 2208/ F91D : 3A 25 00 STAT: LD A,(KEYBU) ;STATUS ABFRAGEN |
2203/ F905 : 22 23 00 LD (COUNT),HL ; | 2209/ F920 : C9 RET |
2204/ F908 : 22 25 00 LD (KEYBU),HL ;ARBEITSZELLEN LOESCHEN | 2210/ F921 : ; |
2205/ F90B : 22 13 00 LD (JOYR),HL ; | 2211/ F921 : 3D CRT2: DEC A |
2206/ F90E : 22 16 00 LD (BSW),HL ; | 2212/ F922 : 20 21 JR NZ, CRT3 |
2207/ F911 : DB 88 IN A, DPIO1A | 2213/ F924 : 3A 25 00 CI: LD A,(KEYBU) ;TASTATUREINGABE |
2208/ F913 : E6 38 AND A, 38H ;GRAFIKANZEIGE UND | 2214/ F927 : B7 OR A |
2209/ F915 : D3 88 OUT DPIO1A, A ;TASTATURSUMMER AUS | 2215/ F928 : 28 FA JR Z, CI ;WARTEN AUF ZEICHEN, 01 Eingabe Zeichen |
2210/ F917 : C3 E3 FA JP INITA ;INIT. TASTATUR | 2216/ F92A : F5 PUSH AF |
2211/ F91A : ; | 2217/ F92B : AF XOR A |
2212/ F91A : 3D CRT1: DEC A | 2218/ F92C : 32 25 00 LD (KEYBU),A ;TASTATURPUFFER LOESCHEN |
2213/ F91B : 20 04 JR NZ, CRT2 | 2219/ F92F : 32 13 00 LD (JOYR),A ;SPIELHEBELPUFFER |
2214/ F91D : | 2220/ F932 : 32 14 00 LD (JOYL),A ;LOESCHEN |
2215/ F91D : ; 00 Abfrage Status | 2221/ F935 : 7E LD A,(HL) ;(HL)=ADR. FARBSCHALTER |
2216/ F91D : ; Return: | 2222/ F936 : B7 OR A |
2217/ F91D : ; A Status | 2223/ F937 : 28 0A JR Z, CI2 ;ZEICHEN IST KEIN FARBCODE |
2218/ F91D : ; 0 kein Zeichen bei Eingabegerät, nicht bereit bei Ausgabegerät | 2224/ F939 : F1 POP AF |
2219/ F91D : ; sonst Zeichen liegt an bei Eingabegerät, | 2225/ F93A : |
2220/ F91D : ; (im installierten CRT-Treiber wird der Zeichencode übergeben) | 2226/ F93A : =>FALSE if farb16 |
AS V1.42 Beta [Bld 82] - source file os.asm - page 38 - 3/20/2012 20:42:07 | 2227/ F93A : CP A, 49H |
| 2228/ F93A : JR NC, CI ;KEIN GUELTIGER FARBCODE |
| 2229/ F93A : JP FARB16C ;WANDELN IN INTERNEN FARBCODE |
2221/ F91D : 3A 25 00 STAT: LD A,(KEYBU) ;STATUS ABFRAGEN | 2230/ F93A : MF941: OR A ;KEIN GUELTIGER FARBCODE |
2222/ F920 : C9 RET | 2231/ F93A : =>TRUE else |
2223/ F921 : ; | 2232/ F93A : FE 39 CP A, 39H |
2224/ F921 : 3D CRT2: DEC A | 2233/ F93C : 30 E6 JR NC, CI ;KEIN GUELTIGER FARBCODE |
2225/ F922 : 20 21 JR NZ, CRT3 | 2234/ F93E : D6 31 SUB 31H ;WANDELN IN INTERNEN FARBCODE |
2226/ F924 : 3A 25 00 CI: LD A,(KEYBU) ;TASTATUREINGABE | 2235/ F940 : 38 E2 JR C, CI ;KEIN GUELTIGER FARBCODE |
2227/ F927 : B7 OR A | 2236/ F942 : [2226] ENDIF |
2228/ F928 : 28 FA JR Z, CI ;WARTEN AUF ZEICHEN, 01 Eingabe Zeichen | 2237/ F942 : |
2229/ F92A : F5 PUSH AF | 2238/ F942 : F5 PUSH AF |
2230/ F92B : AF XOR A | 2239/ F943 : F1 CI2: POP AF |
2231/ F92C : 32 25 00 LD (KEYBU),A ;TASTATURPUFFER LOESCHEN | 2240/ F944 : C9 RET |
2232/ F92F : 32 13 00 LD (JOYR),A ;SPIELHEBELPUFFER | 2241/ F945 : ; |
2233/ F932 : 32 14 00 LD (JOYL),A ;LOESCHEN | 2242/ F945 : 3D CRT3: DEC A |
2234/ F935 : 7E LD A,(HL) ;(HL)=ADR. FARBSCHALTER | 2243/ F946 : CA 8D F8 JP Z, OCHAR ;02 ZEICHEN AUSGEBEN |
2235/ F936 : B7 OR A | 2244/ F949 : 0E 00 LD C,0 ;ZUFAELLIGES ZEICHEN LOESCHEN |
2236/ F937 : 28 0A JR Z, CI2 ;ZEICHEN IST KEIN FARBCODE | 2245/ F94B : 3D DEC A |
2237/ F939 : F1 POP AF | 2246/ F94C : CA 33 FA JP Z, DELC ;03 CURSOR LOESCHEN |
2238/ F93A : | 2247/ F94F : 3D DEC A |
2239/ F93A : =>FALSE if farb16 | 2248/ F950 : CA F3 F9 JP Z, SETC ;04 CURSOR ANZEIGEN |
2240/ F93A : CP A, 49H | 2249/ F953 : 3D DEC A |
2241/ F93A : JR NC, CI ;KEIN GUELTIGER FARBCODE | 2250/ F954 : 20 08 JR NZ, CRT4 |
2242/ F93A : JP FARB16C ;WANDELN IN INTERNEN FARBCODE | 2251/ F956 : |
2243/ F93A : MF941: OR A ;KEIN GUELTIGER FARBCODE | 2252/ F956 : ; 05 Abfrage logische und physische Cursoradresse |
2244/ F93A : =>TRUE else | 2253/ F956 : ; Return: |
2245/ F93A : FE 39 CP A, 39H | 2254/ F956 : ; HL physische Cursoradresse |
2246/ F93C : 30 E6 JR NC, CI ;KEIN GUELTIGER FARBCODE | 2255/ F956 : ; DE logische Cursoradresse |
2247/ F93E : D6 31 SUB 31H ;WANDELN IN INTERNEN FARBCODE | 2256/ F956 : CD 7D F9 GLCU: CALL OC ;ABFRAGE LOG. CURSORADRESSE |
2248/ F940 : 38 E2 JR C, CI ;KEIN GUELTIGER FARBCODE | 2257/ F959 : ;HL MIT PHYS. ADR. LADEN |
2249/ F942 : [2239] ENDIF | 2258/ F959 : ED 5B 2B 00 LD DE,(CHARP) ;LOG. ADRESSE |
2250/ F942 : | 2259/ F95D : C9 RET |
2251/ F942 : F5 PUSH AF | 2260/ F95E : ; |
2252/ F943 : F1 CI2: POP AF | 2261/ F95E : 3D CRT4: DEC A |
2253/ F944 : C9 RET | 2262/ F95F : 28 18 JR Z, SLCU ;06 LOG. CURSORADRESSE SETZEN |
2254/ F945 : ; | 2263/ F961 : 3D DEC A |
2255/ F945 : 3D CRT3: DEC A | 2264/ F962 : 28 19 JR Z, OC ;07 ABFRAGE PHYS. CURSORADRESSE |
2256/ F946 : CA 8D F8 JP Z, OCHAR ;02 ZEICHEN AUSGEBEN | 2265/ F964 : ;HL MIT PHYS. ADR. LADEN |
2257/ F949 : 0E 00 LD C,0 ;ZUFAELLIGES ZEICHEN LOESCHEN | 2266/ F964 : 3D DEC A ;08 Setzen Cursor auf physische Adresse |
2258/ F94B : 3D DEC A | 2267/ F965 : C0 RET NZ ;KEIN GUELTIGER RUF |
2259/ F94C : CA 33 FA JP Z, DELC ;03 CURSOR LOESCHEN | 2268/ F966 : |
2260/ F94F : 3D DEC A | 2269/ F966 : ; 08 Setzen Cursor auf physische Adresse |
2261/ F950 : CA F3 F9 JP Z, SETC ;04 CURSOR ANZEIGEN | 2270/ F966 : ; Eingang: |
2262/ F953 : 3D DEC A | 2271/ F966 : ; DE physische Cursoradresse |
2263/ F954 : 20 08 JR NZ, CRT4 | 2272/ F966 : 21 00 EC SPCU: LD HL,0EC00H ;CURSOR AUF PHYS. ADR. SETZEN |
2264/ F956 : | 2273/ F969 : EB EX DE,HL |
2265/ F956 : ; 05 Abfrage logische und physische Cursoradresse | 2274/ F96A : ED 52 SBC HL,DE |
2266/ F956 : ; Return: | 2275/ F96C : D8 RET C ;ADR. NICHT IM ZEICHENSPEICHER |
2267/ F956 : ; HL physische Cursoradresse | 2276/ F96D : 11 28 00 LD DE,40 ;UMRECHNEN PHYS. --> LOG. ADR. |
2268/ F956 : ; DE logische Cursoradresse | 2277/ F970 : ED 52 SP1: SBC HL,DE |
2269/ F956 : CD 7D F9 GLCU: CALL OC ;ABFRAGE LOG. CURSORADRESSE | 2278/ F972 : 3C INC A |
2270/ F959 : ;HL MIT PHYS. ADR. LADEN | 2279/ F973 : 30 FB JR NC, SP1 |
2271/ F959 : ED 5B 2B 00 LD DE,(CHARP) ;LOG. ADRESSE | 2280/ F975 : 19 ADD HL,DE |
2272/ F95D : C9 RET | 2281/ F976 : 2C INC L |
2273/ F95E : ; | 2282/ F977 : 67 LD H,A |
2274/ F95E : 3D CRT4: DEC A | 2283/ F978 : EB EX DE,HL |
2275/ F95F : 28 18 JR Z, SLCU ;06 LOG. CURSORADRESSE SETZEN | 2284/ F979 : |
2276/ F961 : 3D DEC A | 2285/ F979 : ;06 Setzen Cursor auf logische Adresse |
2277/ F962 : 28 19 JR Z, OC ;07 ABFRAGE PHYS. CURSORADRESSE | 2286/ F979 : ; Eingang: |
2278/ F964 : ;HL MIT PHYS. ADR. LADEN | 2287/ F979 : ; DE logische Cursoradresse |
2279/ F964 : 3D DEC A ;08 Setzen Cursor auf physische Adresse | 2288/ F979 : ED 53 2B 00 SLCU: LD (CHARP),DE ;CURSOR AUF LOG. ADR. SETZEN |
2280/ F965 : C0 RET NZ ;KEIN GUELTIGER RUF | 2289/ F97D : |
AS V1.42 Beta [Bld 82] - source file os.asm - page 39 - 3/20/2012 20:42:07 | 2290/ F97D : ; 07 Abfrage physische Cursoradresse |
| 2291/ F97D : ; Return: |
| 2292/ F97D : ; HL physische Cursoradresse |
2281/ F966 : | 2293/ F97D : |
2282/ F966 : ; 08 Setzen Cursor auf physische Adresse | 2294/ F97D : ; |
2283/ F966 : ; Eingang: | 2295/ F97D : ;******************************************************************* |
2284/ F966 : ; DE physische Cursoradresse | 2296/ F97D : ;* PHYSISCHER BILDSCHIRMTREIBER * |
2285/ F966 : 21 00 EC SPCU: LD HL,0EC00H ;CURSOR AUF PHYS. ADR. SETZEN | 2297/ F97D : ;******************************************************************* |
2286/ F969 : EB EX DE,HL | 2298/ F97D : ; |
2287/ F96A : ED 52 SBC HL,DE | 2299/ F97D : ; Funktion: phys. Bildschirmtreiber |
2288/ F96C : D8 RET C ;ADR. NICHT IM ZEICHENSPEICHER | 2300/ F97D : ; a) Eingang |
2289/ F96D : 11 28 00 LD DE,40 ;UMRECHNEN PHYS. --> LOG. ADR. | 2301/ F97D : ; - OC |
2290/ F970 : ED 52 SP1: SBC HL,DE | 2302/ F97D : ; gerufen von: CRT, OCHAR |
2291/ F972 : 3C INC A | 2303/ F97D : ; Parameter : C ASCII-Zeichen |
2292/ F973 : 30 FB JR NC, SP1 | 2304/ F97D : ; b) gerufene Programme |
2293/ F975 : 19 ADD HL,DE | 2305/ F97D : ; - DELC Cursor löschen |
2294/ F976 : 2C INC L | 2306/ F97D : ; - ROLU Rollen hoch |
2295/ F977 : 67 LD H,A | 2307/ F97D : ; - ROLD Rollen runter |
2296/ F978 : EB EX DE,HL | 2308/ F97D : ; - MIAT Farbcode investieren |
2297/ F979 : | 2309/ F97D : ; c) Ausgang |
2298/ F979 : ;06 Setzen Cursor auf logische Adresse | 2310/ F97D : ; - |
2299/ F979 : ; Eingang: | 2311/ F97D : ; d) Return |
2300/ F979 : ; DE logische Cursoradresse | 2312/ F97D : ; Parameter: HL phys. Cursoradresse |
2301/ F979 : ED 53 2B 00 SLCU: LD (CHARP),DE ;CURSOR AUF LOG. ADR. SETZEN | 2313/ F97D : ; |
2302/ F97D : | 2314/ F97D : =>FALSE OC: if krtgrafik |
2303/ F97D : ; 07 Abfrage physische Cursoradresse | 2315/ F97D : jp ocx |
2304/ F97D : ; Return: | 2316/ F97D : =>TRUE else |
2305/ F97D : ; HL physische Cursoradresse | 2317/ F97D : 21 F3 F9 LD HL,SETC ;ADR. FUER ABSCHLIESSENDES |
2306/ F97D : | 2318/ F980 : [2314] endif |
2307/ F97D : ; | 2319/ F980 : E5 oc0: PUSH HL ;CURSOR ANZEIGEN KELLERN |
2308/ F97D : ;******************************************************************* | 2320/ F981 : CD 33 FA CALL DELC ;CURSOR LOESCHEN |
2309/ F97D : ;* PHYSISCHER BILDSCHIRMTREIBER * | 2321/ F984 : ; HL = (CURS), DE= (CURS)-ONEKB (=Adr. im Farbspeicher) |
2310/ F97D : ;******************************************************************* | 2322/ F984 : 79 LD A,C ;AUSZUGEBENDES ZEICHEN |
2311/ F97D : ; | 2323/ F985 : D6 08 SUB 8 ;CURSOR LINKS |
2312/ F97D : ; Funktion: phys. Bildschirmtreiber | 2324/ F987 : D8 RET C ;FEHLER |
2313/ F97D : ; a) Eingang | 2325/ F988 : 28 4E JR Z, DECCP ;DEC ZEICHENZEIGER |
2314/ F97D : ; - OC | 2326/ F98A : 3D DEC A ;CURSOR RECHTS |
2315/ F97D : ; gerufen von: CRT, OCHAR | 2327/ F98B : 28 30 JR Z, INCCP ;INC ZEICHENZEIGER |
2316/ F97D : ; Parameter : C ASCII-Zeichen | 2328/ F98D : 3D DEC A ;CURSOR RUNTER (LF) |
2317/ F97D : ; b) gerufene Programme | 2329/ F98E : 28 3B JR Z, INCLP ;INC ZEILENZEIGER |
2318/ F97D : ; - DELC Cursor löschen | 2330/ F990 : 3D DEC A ;CURSOR HOCH |
2319/ F97D : ; - ROLU Rollen hoch | 2331/ F991 : 28 53 JR Z, DECLP ;DEC ZEILENZEIGER |
2320/ F97D : ; - ROLD Rollen runter | 2332/ F993 : 3D DEC A |
2321/ F97D : ; - MIAT Farbcode investieren | 2333/ F994 : 28 0D JR Z, HOME ;LOESCHEN BILDSCHIRM |
2322/ F97D : ; c) Ausgang | 2334/ F996 : 3D DEC A |
2323/ F97D : ; - | 2335/ F997 : 28 1E JR Z, CR ;CURSOR AUF ZEILENANFANG (CR) |
2324/ F97D : ; d) Return | 2336/ F999 : FE 13 CP A, FIRST-0DH |
2325/ F97D : ; Parameter: HL phys. Cursoradresse | 2337/ F99B : D8 RET C ;KEIN DRUCKBARES ZEICHEN |
2326/ F97D : ; | 2338/ F99C : ;Zeichenausgabe |
2327/ F97D : =>FALSE OC: if krtgrafik | 2339/ F99C : ; HL = (CURS), DE= (CURS)-ONEKB (=Adr. im Farbspeicher) |
2328/ F97D : jp ocx | 2340/ F99C : 71 DIS: LD (HL),C ;ZEICHEN IN ZEICHENSPEICHER |
2329/ F97D : =>TRUE else | 2341/ F99D : 3A 27 00 LD A,(ATRIB) ;AKTUELLER FARBCODE |
2330/ F97D : 21 F3 F9 LD HL,SETC ;ADR. FUER ABSCHLIESSENDES | 2342/ F9A0 : 12 LD (DE),A ;FARBCODE IN FARBSPEICHER |
2331/ F980 : [2327] endif | 2343/ F9A1 : 18 1A JR INCCP ;INC ZEICHENZEIGER |
2332/ F980 : E5 oc0: PUSH HL ;CURSOR ANZEIGEN KELLERN | 2344/ F9A3 : ;Sonderzeichen |
2333/ F981 : CD 33 FA CALL DELC ;CURSOR LOESCHEN | 2345/ F9A3 : 3A 3B 00 HOME: LD A,(P1ROL) |
2334/ F984 : ; HL = (CURS), DE= (CURS)-ONEKB (=Adr. im Farbspeicher) | 2346/ F9A6 : 3C INC A |
2335/ F984 : 79 LD A,C ;AUSZUGEBENDES ZEICHEN | 2347/ F9A7 : 32 2C 00 LD (LINEP),A ;CURSOR AUF 1. ZEILE |
2336/ F985 : D6 08 SUB 8 ;CURSOR LINKS | 2348/ F9AA : 47 LD B,A |
2337/ F987 : D8 RET C ;FEHLER | 2349/ F9AB : 3A 3C 00 LD A,(P2ROL) |
2338/ F988 : 28 4E JR Z, DECCP ;DEC ZEICHENZEIGER | 2350/ F9AE : 90 SUB B ;AKTUELLE ZEILENZAHL |
2339/ F98A : 3D DEC A ;CURSOR RECHTS | 2351/ F9AF : 47 LD B,A |
2340/ F98B : 28 30 JR Z, INCCP ;INC ZEICHENZEIGER | 2352/ F9B0 : C5 HOME1: PUSH BC |
AS V1.42 Beta [Bld 82] - source file os.asm - page 40 - 3/20/2012 20:42:07 | 2353/ F9B1 : CD 4F FA CALL ROLU ;ROLLEN AUFWAERTS |
| 2354/ F9B4 : C1 POP BC |
| 2355/ F9B5 : 10 F9 DJNZ HOME1 ;BIS FENSTER LEER |
2341/ F98D : 3D DEC A ;CURSOR RUNTER (LF) | 2356/ F9B7 : 3A 3D 00 CR: LD A,(P3ROL) |
2342/ F98E : 28 3B JR Z, INCLP ;INC ZEILENZEIGER | 2357/ F9BA : 32 2B 00 LD (CHARP),A ;CURSOR AUF 1. SPALTE-1 |
2343/ F990 : 3D DEC A ;CURSOR HOCH | 2358/ F9BD : ;INC ZEICHENZEIGER |
2344/ F991 : 28 53 JR Z, DECLP ;DEC ZEILENZEIGER | 2359/ F9BD : 21 2B 00 INCCP: LD HL,CHARP |
2345/ F993 : 3D DEC A | 2360/ F9C0 : 11 3E 00 LD DE,P4ROL |
2346/ F994 : 28 0D JR Z, HOME ;LOESCHEN BILDSCHIRM | 2361/ F9C3 : 34 INC (HL) ;CURSOR AUF NAECHSTE SPALTE |
2347/ F996 : 3D DEC A | 2362/ F9C4 : 1A LD A,(DE) |
2348/ F997 : 28 1E JR Z, CR ;CURSOR AUF ZEILENANFANG (CR) | 2363/ F9C5 : BE CP A, (HL) ;CURSOR AUS DEM FENSTER? |
2349/ F999 : FE 13 CP A, FIRST-0DH | 2364/ F9C6 : C0 RET NZ |
2350/ F99B : D8 RET C ;KEIN DRUCKBARES ZEICHEN | 2365/ F9C7 : 1B DEC DE |
2351/ F99C : ;Zeichenausgabe | 2366/ F9C8 : 1A LD A,(DE) |
2352/ F99C : ; HL = (CURS), DE= (CURS)-ONEKB (=Adr. im Farbspeicher) | 2367/ F9C9 : 3C INC A |
2353/ F99C : 71 DIS: LD (HL),C ;ZEICHEN IN ZEICHENSPEICHER | 2368/ F9CA : 77 LD (HL),A ;CURSOR AUF 1. SPALTE |
2354/ F99D : 3A 27 00 LD A,(ATRIB) ;AKTUELLER FARBCODE | 2369/ F9CB : ;INC ZEILENZEIGER |
2355/ F9A0 : 12 LD (DE),A ;FARBCODE IN FARBSPEICHER | 2370/ F9CB : 21 2C 00 INCLP: LD HL,LINEP |
2356/ F9A1 : 18 1A JR INCCP ;INC ZEICHENZEIGER | 2371/ F9CE : 34 INC (HL) ;CURSOR AUF NAECHSTE ZEILE |
2357/ F9A3 : ;Sonderzeichen | 2372/ F9CF : 3A 3C 00 LD A,(P2ROL) |
2358/ F9A3 : 3A 3B 00 HOME: LD A,(P1ROL) | 2373/ F9D2 : 3D DEC A |
2359/ F9A6 : 3C INC A | 2374/ F9D3 : BE CP A, (HL) ;CURSOR AUS DEM FENSTER? |
2360/ F9A7 : 32 2C 00 LD (LINEP),A ;CURSOR AUF 1. ZEILE | 2375/ F9D4 : D0 RET NC |
2361/ F9AA : 47 LD B,A | 2376/ F9D5 : 77 LD (HL),A ;CURSOR AUF LETZTE ZEILE |
2362/ F9AB : 3A 3C 00 LD A,(P2ROL) | 2377/ F9D6 : 18 77 JR ROLU ;ROLLEN AUFWAERTS |
2363/ F9AE : 90 SUB B ;AKTUELLE ZEILENZAHL | 2378/ F9D8 : ;DEC ZEICHENZEIGER |
2364/ F9AF : 47 LD B,A | 2379/ F9D8 : 21 2B 00 DECCP: LD HL,CHARP |
2365/ F9B0 : C5 HOME1: PUSH BC | 2380/ F9DB : 11 3D 00 LD DE,P3ROL |
2366/ F9B1 : CD 4F FA CALL ROLU ;ROLLEN AUFWAERTS | 2381/ F9DE : 35 DEC (HL) ;CURSOR AUF VORHERGEHENDE SPALTE |
2367/ F9B4 : C1 POP BC | 2382/ F9DF : 1A LD A,(DE) |
2368/ F9B5 : 10 F9 DJNZ HOME1 ;BIS FENSTER LEER | 2383/ F9E0 : BE CP A, (HL) ;CURSOR AUS DEM FENSTER? |
2369/ F9B7 : 3A 3D 00 CR: LD A,(P3ROL) | 2384/ F9E1 : C0 RET NZ |
2370/ F9BA : 32 2B 00 LD (CHARP),A ;CURSOR AUF 1. SPALTE-1 | 2385/ F9E2 : 13 INC DE |
2371/ F9BD : ;INC ZEICHENZEIGER | 2386/ F9E3 : 1A LD A,(DE) |
2372/ F9BD : 21 2B 00 INCCP: LD HL,CHARP | 2387/ F9E4 : 3D DEC A |
2373/ F9C0 : 11 3E 00 LD DE,P4ROL | 2388/ F9E5 : 77 LD (HL),A ;CURSOR AUF LETZTE SPALTE |
2374/ F9C3 : 34 INC (HL) ;CURSOR AUF NAECHSTE SPALTE | 2389/ F9E6 : ;DEC ZEILENZEIGER |
2375/ F9C4 : 1A LD A,(DE) | 2390/ F9E6 : 21 2C 00 DECLP: LD HL,LINEP |
2376/ F9C5 : BE CP A, (HL) ;CURSOR AUS DEM FENSTER? | 2391/ F9E9 : 35 DEC (HL) |
2377/ F9C6 : C0 RET NZ | 2392/ F9EA : 3A 3B 00 LD A,(P1ROL) |
2378/ F9C7 : 1B DEC DE | 2393/ F9ED : BE CP A, (HL) ;CURSOR AUS DEM FENSTER? |
2379/ F9C8 : 1A LD A,(DE) | 2394/ F9EE : D8 RET C |
2380/ F9C9 : 3C INC A | 2395/ F9EF : 3C INC A |
2381/ F9CA : 77 LD (HL),A ;CURSOR AUF 1. SPALTE | 2396/ F9F0 : 77 LD (HL),A ;CURSOR AUF 1. ZEILE |
2382/ F9CB : ;INC ZEILENZEIGER | 2397/ F9F1 : 18 5D JR ROLD ;ROLLEN ABWAERTS |
2383/ F9CB : 21 2C 00 INCLP: LD HL,LINEP | 2398/ F9F3 : ;CURSOR WIEDER ANZEIGEN |
2384/ F9CE : 34 INC (HL) ;CURSOR AUF NAECHSTE ZEILE | 2399/ F9F3 : ; 04 Cursor anzeigen |
2385/ F9CF : 3A 3C 00 LD A,(P2ROL) | 2400/ F9F3 : ; Return: |
2386/ F9D2 : 3D DEC A | 2401/ F9F3 : ; HL physische Cursoradresse |
2387/ F9D3 : BE CP A, (HL) ;CURSOR AUS DEM FENSTER? | 2402/ F9F3 : 3A 2B 00 SETC: LD A,(CHARP) |
2388/ F9D4 : D0 RET NC | 2403/ F9F6 : 4F LD C,A |
2389/ F9D5 : 77 LD (HL),A ;CURSOR AUF LETZTE ZEILE | 2404/ F9F7 : 3A 2C 00 LD A,(LINEP) |
2390/ F9D6 : 18 77 JR ROLU ;ROLLEN AUFWAERTS | 2405/ F9FA : 47 LD B,A |
2391/ F9D8 : ;DEC ZEICHENZEIGER | 2406/ F9FB : 21 D8 EB LD HL,SCTOP-LINEL ;ZEICHENSPEICHERADR.-ZEILENLAENGE |
2392/ F9D8 : 21 2B 00 DECCP: LD HL,CHARP | 2407/ F9FE : 11 28 00 LD DE,LINEL ;ZEILENLAENGE |
2393/ F9DB : 11 3D 00 LD DE,P3ROL | 2408/ FA01 : 19 SETC1: ADD HL,DE ; |
2394/ F9DE : 35 DEC (HL) ;CURSOR AUF VORHERGEHENDE SPALTE | 2409/ FA02 : 10 FD DJNZ SETC1 ; |
2395/ F9DF : 1A LD A,(DE) | 2410/ FA04 : 41 LD B,C ;BERECHNEN CURSORADR. |
2396/ F9E0 : BE CP A, (HL) ;CURSOR AUS DEM FENSTER? | 2411/ FA05 : 2B DEC HL ; |
2397/ F9E1 : C0 RET NZ | 2412/ FA06 : 23 SETC2: INC HL ; |
2398/ F9E2 : 13 INC DE | 2413/ FA07 : 10 FD DJNZ SETC2 ; |
2399/ F9E3 : 1A LD A,(DE) | 2414/ FA09 : 22 2D 00 LD (CURS),HL ;MERKEN CURSORADRESSE |
2400/ F9E4 : 3D DEC A | 2415/ FA0C : 3A C8 EF LD A,(MAPAR+7) ;KONFGURATIONSBYTE FUER FARBE |
AS V1.42 Beta [Bld 82] - source file os.asm - page 41 - 3/20/2012 20:42:07 | 2416/ FA0F : CB 6F BIT 5,A ;FARBVARIANTE? |
| 2417/ FA11 : 20 06 JR NZ, SETC5 ;FARBE |
| 2418/ FA13 : 7E LD A,(HL) ;KEINE FARBE->MERKEN ZEICHEN |
2401/ F9E5 : 77 LD (HL),A ;CURSOR AUF LETZTE SPALTE | 2419/ FA14 : 32 3F 00 LD (BUFF),A ; |
2402/ F9E6 : ;DEC ZEILENZEIGER | 2420/ FA17 : 36 FF LD (HL),0FFH ;SETZEN CURSOR |
2403/ F9E6 : 21 2C 00 DECLP: LD HL,LINEP | 2421/ FA19 : 11 00 04 SETC5: LD DE,ONEKB |
2404/ F9E9 : 35 DEC (HL) | 2422/ FA1C : E5 PUSH HL |
2405/ F9EA : 3A 3B 00 LD A,(P1ROL) | 2423/ FA1D : ED 52 SBC HL,DE ;ZUGEHOERIGE FARBCODEADRESSE |
2406/ F9ED : BE CP A, (HL) ;CURSOR AUS DEM FENSTER? | 2424/ FA1F : 7E LD A,(HL) ; |
2407/ F9EE : D8 RET C | 2425/ FA20 : 32 34 00 LD (BUFFA),A ;MERKEN FARBCODE |
2408/ F9EF : 3C INC A | 2426/ FA23 : 3A 27 00 LD A,(ATRIB) |
2409/ F9F0 : 77 LD (HL),A ;CURSOR AUF 1. ZEILE | 2427/ FA26 : EE 80 XOR 80H ;BLINKEN FUER CURSOR INVERTIEREN |
2410/ F9F1 : 18 5D JR ROLD ;ROLLEN ABWAERTS | 2428/ FA28 : 47 LD B,A |
2411/ F9F3 : ;CURSOR WIEDER ANZEIGEN | 2429/ FA29 : AE XOR (HL) |
2412/ F9F3 : ; 04 Cursor anzeigen | 2430/ FA2A : E6 F0 AND A, 0F0H |
2413/ F9F3 : ; Return: | 2431/ FA2C : 78 LD A,B |
2414/ F9F3 : ; HL physische Cursoradresse | 2432/ FA2D : |
2415/ F9F3 : 3A 2B 00 SETC: LD A,(CHARP) | 2433/ FA2D : =>FALSE if farb16 |
2416/ F9F6 : 4F LD C,A | 2434/ FA2D : NOP ;FARBE BLEIBT |
2417/ F9F7 : 3A 2C 00 LD A,(LINEP) | 2435/ FA2D : NOP |
2418/ F9FA : 47 LD B,A | 2436/ FA2D : NOP |
2419/ F9FB : 21 D8 EB LD HL,SCTOP-LINEL ;ZEICHENSPEICHERADR.-ZEILENLAENGE | 2437/ FA2D : =>TRUE else |
2420/ F9FE : 11 28 00 LD DE,LINEL ;ZEILENLAENGE | 2438/ FA2D : CC D6 FA CALL Z, MIAT ;CURSORFARBE INVERTIEREN |
2421/ FA01 : 19 SETC1: ADD HL,DE ; | 2439/ FA30 : [2433] ENDIF |
2422/ FA02 : 10 FD DJNZ SETC1 ; | 2440/ FA30 : |
2423/ FA04 : 41 LD B,C ;BERECHNEN CURSORADR. | 2441/ FA30 : 77 LD (HL),A ;CURSORFARBE SETZEN |
2424/ FA05 : 2B DEC HL ; | 2442/ FA31 : E1 POP HL |
2425/ FA06 : 23 SETC2: INC HL ; | 2443/ FA32 : C9 RET |
2426/ FA07 : 10 FD DJNZ SETC2 ; | 2444/ FA33 : ; |
2427/ FA09 : 22 2D 00 LD (CURS),HL ;MERKEN CURSORADRESSE | 2445/ FA33 : ;LOESCHEN CURSOR |
2428/ FA0C : 3A C8 EF LD A,(MAPAR+7) ;KONFGURATIONSBYTE FUER FARBE | 2446/ FA33 : ; 03 Cursor löschen |
2429/ FA0F : CB 6F BIT 5,A ;FARBVARIANTE? | 2447/ FA33 : 2A 2D 00 DELC: LD HL,(CURS) |
2430/ FA11 : 20 06 JR NZ, SETC5 ;FARBE | 2448/ FA36 : 3A C8 EF LD A,(MAPAR+7) ;KONFIGURATIONSBYTE FUER FARBE |
2431/ FA13 : 7E LD A,(HL) ;KEINE FARBE->MERKEN ZEICHEN | 2449/ FA39 : CB 6F BIT 5,A ;FARBVARIANTE? |
2432/ FA14 : 32 3F 00 LD (BUFF),A ; | 2450/ FA3B : 20 04 JR NZ, DELC1 ;FARBE |
2433/ FA17 : 36 FF LD (HL),0FFH ;SETZEN CURSOR | 2451/ FA3D : 3A 3F 00 LD A,(BUFF) ;KEINE FARBE |
2434/ FA19 : 11 00 04 SETC5: LD DE,ONEKB | 2452/ FA40 : 77 LD (HL),A ;ZEICHEN ZURUECK |
2435/ FA1C : E5 PUSH HL | 2453/ FA41 : 11 00 04 DELC1: LD DE,ONEKB |
2436/ FA1D : ED 52 SBC HL,DE ;ZUGEHOERIGE FARBCODEADRESSE | 2454/ FA44 : E5 PUSH HL |
2437/ FA1F : 7E LD A,(HL) ; | 2455/ FA45 : B7 OR A |
2438/ FA20 : 32 34 00 LD (BUFFA),A ;MERKEN FARBCODE | 2456/ FA46 : ED 52 SBC HL,DE ;ZUGEHOERIGE FARBCODEADRESSE |
2439/ FA23 : 3A 27 00 LD A,(ATRIB) | 2457/ FA48 : 3A 34 00 LD A,(BUFFA) |
2440/ FA26 : EE 80 XOR 80H ;BLINKEN FUER CURSOR INVERTIEREN | 2458/ FA4B : 77 LD (HL),A ;ALTEN FARBCODE ZURUECK |
2441/ FA28 : 47 LD B,A | 2459/ FA4C : EB EX DE,HL |
2442/ FA29 : AE XOR (HL) | 2460/ FA4D : E1 POP HL |
2443/ FA2A : E6 F0 AND A, 0F0H | 2461/ FA4E : C9 RET |
2444/ FA2C : 78 LD A,B | 2462/ FA4F : ; |
2445/ FA2D : | 2463/ FA4F : ;BILDSCHIRM ROLLEN (FENSTER) |
2446/ FA2D : =>FALSE if farb16 | 2464/ FA4F : ; |
2447/ FA2D : NOP ;FARBE BLEIBT | 2465/ FA4F : ; Funktion: Bildschirm rollen, letzte Zeile löschen38 |
2448/ FA2D : NOP | 2466/ FA4F : ; a) Eingang |
2449/ FA2D : NOP | 2467/ FA4F : ; - ROLU, ROLD |
2450/ FA2D : =>TRUE else | 2468/ FA4F : ; gerufen von: OC |
2451/ FA2D : CC D6 FA CALL Z, MIAT ;CURSORFARBE INVERTIEREN | 2469/ FA4F : ; - ROLL |
2452/ FA30 : [2446] ENDIF | 2470/ FA4F : ; gerufen von: ROLU, ROLD |
2453/ FA30 : | 2471/ FA4F : ; Parameter : A <>0 runter |
2454/ FA30 : 77 LD (HL),A ;CURSORFARBE SETZEN | 2472/ FA4F : ; =0 hoch |
2455/ FA31 : E1 POP HL | 2473/ FA4F : ; b) gerufene Programme |
2456/ FA32 : C9 RET | 2474/ FA4F : ; - MOVE Speicher verschieben |
2457/ FA33 : ; | |
2458/ FA33 : ;LOESCHEN CURSOR | |
2459/ FA33 : ; 03 Cursor löschen | |
2460/ FA33 : 2A 2D 00 DELC: LD HL,(CURS) | |
AS V1.42 Beta [Bld 82] - source file os.asm - page 42 - 3/20/2012 20:42:07 | |
| |
| |
2461/ FA36 : 3A C8 EF LD A,(MAPAR+7) ;KONFIGURATIONSBYTE FUER FARBE | |
2462/ FA39 : CB 6F BIT 5,A ;FARBVARIANTE? | |
2463/ FA3B : 20 04 JR NZ, DELC1 ;FARBE | |
2464/ FA3D : 3A 3F 00 LD A,(BUFF) ;KEINE FARBE | |
2465/ FA40 : 77 LD (HL),A ;ZEICHEN ZURUECK | |
2466/ FA41 : 11 00 04 DELC1: LD DE,ONEKB | |
2467/ FA44 : E5 PUSH HL | |
2468/ FA45 : B7 OR A | |
2469/ FA46 : ED 52 SBC HL,DE ;ZUGEHOERIGE FARBCODEADRESSE | |
2470/ FA48 : 3A 34 00 LD A,(BUFFA) | |
2471/ FA4B : 77 LD (HL),A ;ALTEN FARBCODE ZURUECK | |
2472/ FA4C : EB EX DE,HL | |
2473/ FA4D : E1 POP HL | |
2474/ FA4E : C9 RET | |
2475/ FA4F : ; | 2475/ FA4F : ; |
2476/ FA4F : ;BILDSCHIRM ROLLEN (FENSTER) | 2476/ FA4F : 3E ROLU: DB 3EH ;LD A, |
2477/ FA4F : ; | 2477/ FA50 : ; |
2478/ FA4F : ; Funktion: Bildschirm rollen, letzte Zeile löschen38 | 2478/ FA50 : AF ROLD: XOR A |
2479/ FA4F : ; a) Eingang | 2479/ FA51 : ; |
2480/ FA4F : ; - ROLU, ROLD | 2480/ FA51 : F5 ROL: PUSH AF |
2481/ FA4F : ; gerufen von: OC | 2481/ FA52 : 21 D8 EB LD HL,SCTOP-LINEL ;ZEICHENSPEICHERADR.-ZEILENLAENGE |
2482/ FA4F : ; - ROLL | 2482/ FA55 : 11 28 00 LD DE,LINEL ;ZEILENLAENGE |
2483/ FA4F : ; gerufen von: ROLU, ROLD | 2483/ FA58 : 3A 3B 00 LD A,(P1ROL) |
2484/ FA4F : ; Parameter : A <>0 runter | 2484/ FA5B : 3C INC A |
2485/ FA4F : ; =0 hoch | 2485/ FA5C : 4F LD C,A |
2486/ FA4F : ; b) gerufene Programme | 2486/ FA5D : 3A 3C 00 LD A,(P2ROL) |
2487/ FA4F : ; - MOVE Speicher verschieben | 2487/ FA60 : 3D DEC A |
2488/ FA4F : ; | 2488/ FA61 : 47 LD B,A |
2489/ FA4F : 3E ROLU: DB 3EH ;LD A, | 2489/ FA62 : F1 POP AF |
2490/ FA50 : ; | 2490/ FA63 : C5 PUSH BC |
2491/ FA50 : AF ROLD: XOR A | 2491/ FA64 : B7 OR A ;ROLLEN ABWAERTS? |
2492/ FA51 : ; | 2492/ FA65 : 28 01 JR Z, ROL1 |
2493/ FA51 : F5 ROL: PUSH AF | 2493/ FA67 : 41 LD B,C |
2494/ FA52 : 21 D8 EB LD HL,SCTOP-LINEL ;ZEICHENSPEICHERADR.-ZEILENLAENGE | 2494/ FA68 : 19 ROL1: ADD HL,DE |
2495/ FA55 : 11 28 00 LD DE,LINEL ;ZEILENLAENGE | 2495/ FA69 : 10 FD DJNZ ROL1 ;1. ZU ROLLENDE ZEILE |
2496/ FA58 : 3A 3B 00 LD A,(P1ROL) | 2496/ FA6B : C1 POP BC |
2497/ FA5B : 3C INC A | 2497/ FA6C : F5 PUSH AF |
2498/ FA5C : 4F LD C,A | 2498/ FA6D : 78 LD A,B |
2499/ FA5D : 3A 3C 00 LD A,(P2ROL) | 2499/ FA6E : 91 SUB C |
2500/ FA60 : 3D DEC A | 2500/ FA6F : 28 37 JR Z, ENDRO ;EINE ZEILE, NUR LOESCHEN |
2501/ FA61 : 47 LD B,A | 2501/ FA71 : 47 LD B,A |
2502/ FA62 : F1 POP AF | 2502/ FA72 : F1 ROL2: POP AF |
2503/ FA63 : C5 PUSH BC | 2503/ FA73 : E5 PUSH HL |
2504/ FA64 : B7 OR A ;ROLLEN ABWAERTS? | 2504/ FA74 : B7 OR A ;ROLLEN ABWAERTS? |
2505/ FA65 : 28 01 JR Z, ROL1 | 2505/ FA75 : 28 03 JR Z, ROL3 |
2506/ FA67 : 41 LD B,C | 2506/ FA77 : 19 ADD HL,DE |
2507/ FA68 : 19 ROL1: ADD HL,DE | 2507/ FA78 : 18 02 JR ROL4 |
2508/ FA69 : 10 FD DJNZ ROL1 ;1. ZU ROLLENDE ZEILE | 2508/ FA7A : ED 52 ROL3: SBC HL,DE |
2509/ FA6B : C1 POP BC | 2509/ FA7C : D1 ROL4: POP DE |
2510/ FA6C : F5 PUSH AF | 2510/ FA7D : F5 PUSH AF |
2511/ FA6D : 78 LD A,B | 2511/ FA7E : E5 PUSH HL |
2512/ FA6E : 91 SUB C | 2512/ FA7F : C5 PUSH BC |
2513/ FA6F : 28 37 JR Z, ENDRO ;EINE ZEILE, NUR LOESCHEN | 2513/ FA80 : ; |
2514/ FA71 : 47 LD B,A | 2514/ FA80 : ;EINE ZEILE IN ROLLRICHTUNG UMSPEICHERN |
2515/ FA72 : F1 ROL2: POP AF | 2515/ FA80 : 3A 3D 00 MOVEL: LD A,(P3ROL) |
2516/ FA73 : E5 PUSH HL | 2516/ FA83 : 3C INC A |
2517/ FA74 : B7 OR A ;ROLLEN ABWAERTS? | 2517/ FA84 : 47 LD B,A |
2518/ FA75 : 28 03 JR Z, ROL3 | 2518/ FA85 : 2B DEC HL |
2519/ FA77 : 19 ADD HL,DE | 2519/ FA86 : 1B DEC DE |
2520/ FA78 : 18 02 JR ROL4 | 2520/ FA87 : 23 MOVL1: INC HL |
AS V1.42 Beta [Bld 82] - source file os.asm - page 43 - 3/20/2012 20:42:07 | 2521/ FA88 : 13 INC DE |
| 2522/ FA89 : 10 FC DJNZ MOVL1 ;1. SPALTE SUCHEN |
| 2523/ FA8B : 4F LD C,A |
2521/ FA7A : ED 52 ROL3: SBC HL,DE | 2524/ FA8C : 3A 3E 00 LD A,(P4ROL) |
2522/ FA7C : D1 ROL4: POP DE | 2525/ FA8F : 91 SUB C |
2523/ FA7D : F5 PUSH AF | 2526/ FA90 : 4F LD C,A ;ZEICHENANZAHL |
2524/ FA7E : E5 PUSH HL | 2527/ FA91 : CD F7 F2 CALL MOVE ;UMSPEICHERN |
2525/ FA7F : C5 PUSH BC | 2528/ FA94 : C5 PUSH BC |
2526/ FA80 : ; | 2529/ FA95 : 01 00 04 LD BC,ONEKB |
2527/ FA80 : ;EINE ZEILE IN ROLLRICHTUNG UMSPEICHERN | 2530/ FA98 : EB EX DE,HL |
2528/ FA80 : 3A 3D 00 MOVEL: LD A,(P3ROL) | 2531/ FA99 : ED 42 SBC HL,BC ;ADR. IM FARBSPEICHER |
2529/ FA83 : 3C INC A | 2532/ FA9B : EB EX DE,HL |
2530/ FA84 : 47 LD B,A | 2533/ FA9C : ED 42 SBC HL,BC |
2531/ FA85 : 2B DEC HL | 2534/ FA9E : C1 POP BC |
2532/ FA86 : 1B DEC DE | 2535/ FA9F : ED B0 LDIR |
2533/ FA87 : 23 MOVL1: INC HL | 2536/ FAA1 : C1 POP BC |
2534/ FA88 : 13 INC DE | 2537/ FAA2 : E1 POP HL |
2535/ FA89 : 10 FC DJNZ MOVL1 ;1. SPALTE SUCHEN | 2538/ FAA3 : 11 28 00 LD DE,LINEL |
2536/ FA8B : 4F LD C,A | 2539/ FAA6 : 10 CA DJNZ ROL2 |
2537/ FA8C : 3A 3E 00 LD A,(P4ROL) | 2540/ FAA8 : F1 ENDRO: POP AF |
2538/ FA8F : 91 SUB C | 2541/ FAA9 : ; |
2539/ FA90 : 4F LD C,A ;ZEICHENANZAHL | 2542/ FAA9 : ;ZEILE LOESCHEN |
2540/ FA91 : CD F7 F2 CALL MOVE ;UMSPEICHERN | 2543/ FAA9 : 3A 3D 00 DELLI: LD A,(P3ROL) |
2541/ FA94 : C5 PUSH BC | 2544/ FAAC : 3C INC A |
2542/ FA95 : 01 00 04 LD BC,ONEKB | 2545/ FAAD : 4F LD C,A |
2543/ FA98 : EB EX DE,HL | 2546/ FAAE : 47 LD B,A |
2544/ FA99 : ED 42 SBC HL,BC ;ADR. IM FARBSPEICHER | 2547/ FAAF : 23 DELL1: INC HL |
2545/ FA9B : EB EX DE,HL | 2548/ FAB0 : 10 FD DJNZ DELL1 ;1. SPALTE SUCHEN |
2546/ FA9C : ED 42 SBC HL,BC | 2549/ FAB2 : 5D LD E,L |
2547/ FA9E : C1 POP BC | 2550/ FAB3 : 54 LD D,H |
2548/ FA9F : ED B0 LDIR | 2551/ FAB4 : 2B DEC HL |
2549/ FAA1 : C1 POP BC | 2552/ FAB5 : 3A 3E 00 LD A,(P4ROL) |
2550/ FAA2 : E1 POP HL | 2553/ FAB8 : 91 SUB C |
2551/ FAA3 : 11 28 00 LD DE,LINEL | 2554/ FAB9 : 4F LD C,A ;ANZAHL ZEICHEN |
2552/ FAA6 : 10 CA DJNZ ROL2 | 2555/ FABA : 0D DEC C |
2553/ FAA8 : F1 ENDRO: POP AF | 2556/ FABB : 36 20 LD (HL),SPACE |
2554/ FAA9 : ; | 2557/ FABD : C5 PUSH BC |
2555/ FAA9 : ;ZEILE LOESCHEN | 2558/ FABE : F5 PUSH AF |
2556/ FAA9 : 3A 3D 00 DELLI: LD A,(P3ROL) | 2559/ FABF : C4 F7 F2 CALL NZ, MOVE ;LOESCHEN |
2557/ FAAC : 3C INC A | 2560/ FAC2 : 11 00 04 LD DE,ONEKB |
2558/ FAAD : 4F LD C,A | 2561/ FAC5 : ED 52 SBC HL,DE ;ADR. IM FARBSPEICHER |
2559/ FAAE : 47 LD B,A | 2562/ FAC7 : 3A 27 00 LD A,(ATRIB) ;AKTUELLER FARBCODE |
2560/ FAAF : 23 DELL1: INC HL | 2563/ FACA : CB BF RES 7,A ;KEIN BLINKEN |
2561/ FAB0 : 10 FD DJNZ DELL1 ;1. SPALTE SUCHEN | 2564/ FACC : 77 LD (HL),A |
2562/ FAB2 : 5D LD E,L | 2565/ FACD : F1 POP AF |
2563/ FAB3 : 54 LD D,H | 2566/ FACE : C1 POP BC |
2564/ FAB4 : 2B DEC HL | 2567/ FACF : C8 RET Z |
2565/ FAB5 : 3A 3E 00 LD A,(P4ROL) | 2568/ FAD0 : 5D LD E,L |
2566/ FAB8 : 91 SUB C | 2569/ FAD1 : 54 LD D,H |
2567/ FAB9 : 4F LD C,A ;ANZAHL ZEICHEN | 2570/ FAD2 : 13 INC DE |
2568/ FABA : 0D DEC C | 2571/ FAD3 : ED B0 LDIR ;LOESCHEN FARBSPEICHER |
2569/ FABB : 36 20 LD (HL),SPACE | 2572/ FAD5 : C9 DELEN: RET |
2570/ FABD : C5 PUSH BC | 2573/ FAD6 : ; |
2571/ FABE : F5 PUSH AF | 2574/ FAD6 : ;FARBCODE INVERTIEREN |
2572/ FABF : C4 F7 F2 CALL NZ, MOVE ;LOESCHEN | 2575/ FAD6 : MIAT: |
2573/ FAC2 : 11 00 04 LD DE,ONEKB | 2576/ FAD6 : =>FALSE if farb16 |
2574/ FAC5 : ED 52 SBC HL,DE ;ADR. IM FARBSPEICHER | 2577/ FAD6 : JP MIATN |
2575/ FAC7 : 3A 27 00 LD A,(ATRIB) ;AKTUELLER FARBCODE | 2578/ FAD6 : NOP |
2576/ FACA : CB BF RES 7,A ;KEIN BLINKEN | 2579/ FAD6 : MFADA: |
2577/ FACC : 77 LD (HL),A | 2580/ FAD6 : =>TRUE else |
2578/ FACD : F1 POP AF | 2581/ FAD6 : 0E 00 LD C,0 |
2579/ FACE : C1 POP BC | 2582/ FAD8 : CB 27 SLA A |
2580/ FACF : C8 RET Z | 2583/ FADA : [2576] ENDIF |
AS V1.42 Beta [Bld 82] - source file os.asm - page 44 - 3/20/2012 20:42:07 | 2584/ FADA : |
| 2585/ FADA : CB 19 RR C ;MERKEN BLINKBIT |
| 2586/ FADC : 07 RLCA |
2581/ FAD0 : 5D LD E,L | 2587/ FADD : 07 RLCA |
2582/ FAD1 : 54 LD D,H | 2588/ FADE : 07 RLCA |
2583/ FAD2 : 13 INC DE | 2589/ FADF : E6 7F AND A, 7FH |
2584/ FAD3 : ED B0 LDIR ;LOESCHEN FARBSPEICHER | 2590/ FAE1 : B1 OR C ;BLINKBIT ZURUECK |
2585/ FAD5 : C9 DELEN: RET | 2591/ FAE2 : C9 RET |
2586/ FAD6 : ; | 2592/ FAE3 : ; |
2587/ FAD6 : ;FARBCODE INVERTIEREN | 2593/ FAE3 : ;******************************************************************* |
2588/ FAD6 : MIAT: | 2594/ FAE3 : ;* CRT-TREIBER TEIL 2: TASTATUR * |
2589/ FAD6 : =>FALSE if farb16 | 2595/ FAE3 : ;******************************************************************* |
2590/ FAD6 : JP MIATN | 2596/ FAE3 : ; |
2591/ FAD6 : NOP | 2597/ FAE3 : ;INITIALISIERUNG TASTATUR |
2592/ FAD6 : MFADA: | 2598/ FAE3 : ; |
2593/ FAD6 : =>TRUE else | 2599/ FAE3 : F3 INITA: DI |
2594/ FAD6 : 0E 00 LD C,0 | 2600/ FAE4 : F5 PUSH AF |
2595/ FAD8 : CB 27 SLA A | 2601/ FAE5 : CD F7 FA CALL INICT ;CTC INITIALISIEREN |
2596/ FADA : [2589] ENDIF | 2602/ FAE8 : F1 POP AF |
2597/ FADA : | 2603/ FAE9 : ; |
2598/ FADA : CB 19 RR C ;MERKEN BLINKBIT | 2604/ FAE9 : ;INITIALISIERUNG TASTATUR-PIO DATEN A AUF 0 |
2599/ FADC : 07 RLCA | 2605/ FAE9 : F5 INPIO: PUSH AF |
2600/ FADD : 07 RLCA | 2606/ FAEA : CD 15 FB CALL INITT ;INIT. PIO DATEN A AUF FFH |
2601/ FADE : 07 RLCA | 2607/ FAED : 3E 83 LD A,83H ;INTERRUPT |
2602/ FADF : E6 7F AND A, 7FH | 2608/ FAEF : D3 93 OUT SPIOB, A ;Interrupt ein |
2603/ FAE1 : B1 OR C ;BLINKBIT ZURUECK | 2609/ FAF1 : AF XOR A ;A=0 |
2604/ FAE2 : C9 RET | 2610/ FAF2 : D3 90 OUT DPIOA, A ;SPIOA alle Leitungen auf 0 |
2605/ FAE3 : ; | 2611/ FAF4 : ;bei Tastendruck wird jetzt ein LOW-Pegel von PIOA auf PIOB durchgeleitet |
2606/ FAE3 : ;******************************************************************* | 2612/ FAF4 : ;dieser löst einen Interrupt aus --> INTP |
2607/ FAE3 : ;* CRT-TREIBER TEIL 2: TASTATUR * | 2613/ FAF4 : F1 POP AF |
2608/ FAE3 : ;******************************************************************* | 2614/ FAF5 : FB EI |
2609/ FAE3 : ; | 2615/ FAF6 : C9 RET |
2610/ FAE3 : ;INITIALISIERUNG TASTATUR | 2616/ FAF7 : ; |
2611/ FAE3 : ; | 2617/ FAF7 : ;INITIALISIERUNG CTC |
2612/ FAE3 : F3 INITA: DI | 2618/ FAF7 : 3E 03 INICT: LD A,3 ;Steuerwort CTC: Reset |
2613/ FAE4 : F5 PUSH AF | 2619/ FAF9 : D3 80 OUT CTC0, A |
2614/ FAE5 : CD F7 FA CALL INICT ;CTC INITIALISIEREN | 2620/ FAFB : D3 82 OUT CTC2, A |
2615/ FAE8 : F1 POP AF | 2621/ FAFD : D3 8A OUT 8AH, A ;Steuerung PIO1 Kanal A, Interrupt aus |
2616/ FAE9 : ; | 2622/ FAFF : AF XOR A |
2617/ FAE9 : ;INITIALISIERUNG TASTATUR-PIO DATEN A AUF 0 | 2623/ FB00 : D3 80 OUT CTC0, A ;INTERRUPT-VEKTOR = 00h |
2618/ FAE9 : F5 INPIO: PUSH AF | 2624/ FB02 : 3E C7 LD A,0C7H ;ZAEHLERINTERRUPT (Steuerwort CTC3: EI, Reset, Zeitkonstante folgt) |
2619/ FAEA : CD 15 FB CALL INITT ;INIT. PIO DATEN A AUF FFH | 2625/ FB04 : D3 83 OUT CTC3, A |
2620/ FAED : 3E 83 LD A,83H ;INTERRUPT | 2626/ FB06 : 3E 40 LD A,40H ;Zeitkonstante 64, zusammen mit CTC2 ergibt das einen Takt von 1 sek = 1 Hz |
2621/ FAEF : D3 93 OUT SPIOB, A ;Interrupt ein | 2627/ FB08 : D3 83 OUT CTC3, A |
2622/ FAF1 : AF XOR A ;A=0 | 2628/ FB0A : 3E 27 INIC1: LD A,27H ;ZEITGEBER KEIN INTERRUPT (Steuerwort CTC2: Vorteiler 256, Reset, Zeitkonstante folgt) |
2623/ FAF2 : D3 90 OUT DPIOA, A ;SPIOA alle Leitungen auf 0 | 2629/ FB0C : D3 82 OUT CTC2, A |
2624/ FAF4 : ;bei Tastendruck wird jetzt ein LOW-Pegel von PIOA auf PIOB durchgeleitet | 2630/ FB0E : 3E 96 LD A,96H ;Zeitkonstante: 2,4576 Mhz / 256 / 96h = 64 Hz |
2625/ FAF4 : ;dieser löst einen Interrupt aus --> INTP | 2631/ FB10 : D3 82 OUT CTC2, A |
2626/ FAF4 : F1 POP AF | 2632/ FB12 : 3E 03 LD A,3 |
2627/ FAF5 : FB EI | 2633/ FB14 : C9 RET |
2628/ FAF6 : C9 RET | 2634/ FB15 : ; |
2629/ FAF7 : ; | 2635/ FB15 : ;INITIALISIERUNG TASTATUR-PIO DATEN A AUF FFH |
2630/ FAF7 : ;INITIALISIERUNG CTC | 2636/ FB15 : 3E CF INITT: LD A,0CFH ;BIT E/A |
2631/ FAF7 : 3E 03 INICT: LD A,3 ;Steuerwort CTC: Reset | 2637/ FB17 : D3 92 OUT SPIOA, A |
2632/ FAF9 : D3 80 OUT CTC0, A | 2638/ FB19 : AF XOR A ;ALLES AUSGAENGE |
2633/ FAFB : D3 82 OUT CTC2, A | 2639/ FB1A : D3 92 OUT SPIOA, A |
2634/ FAFD : D3 8A OUT 8AH, A ;Steuerung PIO1 Kanal A, Interrupt aus | 2640/ FB1C : 3E 08 LD A,8 ;Interruptvektor |
2635/ FAFF : AF XOR A | 2641/ FB1E : D3 93 OUT SPIOB, A |
2636/ FB00 : D3 80 OUT CTC0, A ;INTERRUPT-VEKTOR = 00h | 2642/ FB20 : 3E CF LD A,0CFH ;BIT E/A |
2637/ FB02 : 3E C7 LD A,0C7H ;ZAEHLERINTERRUPT (Steuerwort CTC3: EI, Reset, Zeitkonstante folgt) | 2643/ FB22 : D3 93 OUT SPIOB, A |
2638/ FB04 : D3 83 OUT CTC3, A | 2644/ FB24 : 3E FF LD A,0FFH ;ALLES EINGAENGE |
2639/ FB06 : 3E 40 LD A,40H ;Zeitkonstante 64, zusammen mit CTC2 ergibt das einen Takt von 1 sek = 1 Hz | 2645/ FB26 : D3 93 OUT SPIOB, A |
2640/ FB08 : D3 83 OUT CTC3, A | 2646/ FB28 : 3E 17 LD A,17H ;Interruptsteuerwort, OR, LOW-aktiv, Maske folgt |
AS V1.42 Beta [Bld 82] - source file os.asm - page 45 - 3/20/2012 20:42:07 | 2647/ FB2A : D3 93 OUT SPIOB, A |
| 2648/ FB2C : AF XOR A ;A=0, Interrupt-Maske |
| 2649/ FB2D : D3 93 OUT SPIOB, A ;alle Eingänge mit Interrupt |
2641/ FB0A : 3E 27 INIC1: LD A,27H ;ZEITGEBER KEIN INTERRUPT (Steuerwort CTC2: Vorteiler 256, Reset, Zeitkonstante folgt) | 2650/ FB2F : 3D DEC A ;A=FF |
2642/ FB0C : D3 82 OUT CTC2, A | 2651/ FB30 : D3 90 OUT DPIOA, A ;mit FF init. |
2643/ FB0E : 3E 96 LD A,96H ;Zeitkonstante: 2,4576 Mhz / 256 / 96h = 64 Hz | 2652/ FB32 : C9 RET |
2644/ FB10 : D3 82 OUT CTC2, A | 2653/ FB33 : |
2645/ FB12 : 3E 03 LD A,3 | 2654/ FB33 : =>TRUE IF tastneu = 0 |
2646/ FB14 : C9 RET | 2655/ FB33 : |
2647/ FB15 : ; | 2656/ FB33 : ; |
2648/ FB15 : ;INITIALISIERUNG TASTATUR-PIO DATEN A AUF FFH | 2657/ FB33 : ;UMC0DIERUNGSTABELLE FUER SONDERTASTEN+SHIFT |
2649/ FB15 : 3E CF INITT: LD A,0CFH ;BIT E/A | 2658/ FB33 : ;S64..S78 |
2650/ FB17 : D3 92 OUT SPIOA, A | 2659/ FB33 : 18 TAB1: DB 18H ; tab right |
2651/ FB19 : AF XOR A ;ALLES AUSGAENGE | 2660/ FB34 : 1E DB 1EH ; CONT |
2652/ FB1A : D3 92 OUT SPIOA, A | 2661/ FB35 : 1F DB 1FH ; DEL |
2653/ FB1C : 3E 08 LD A,8 ;Interruptvektor | 2662/ FB36 : 5D DB 5DH ; ] |
2654/ FB1E : D3 93 OUT SPIOB, A | 2663/ FB37 : 00 DB 0 |
2655/ FB20 : 3E CF LD A,0CFH ;BIT E/A | 2664/ FB38 : 08 DB 8 ; cu left |
2656/ FB22 : D3 93 OUT SPIOB, A | 2665/ FB39 : 09 DB 9 ; cu right |
2657/ FB24 : 3E FF LD A,0FFH ;ALLES EINGAENGE | 2666/ FB3A : 0A DB 0AH ; cu down |
2658/ FB26 : D3 93 OUT SPIOB, A | 2667/ FB3B : 0B DB 0BH ; cu up |
2659/ FB28 : 3E 17 LD A,17H ;Interruptsteuerwort, OR, LOW-aktiv, Maske folgt | 2668/ FB3C : 02 DB 2 ; CL LN |
2660/ FB2A : D3 93 OUT SPIOB, A | 2669/ FB3D : 0D DB 0DH ; ENTER |
2661/ FB2C : AF XOR A ;A=0, Interrupt-Maske | 2670/ FB3E : 03 DB 3 ; STOP |
2662/ FB2D : D3 93 OUT SPIOB, A ;alle Eingänge mit Interrupt | 2671/ FB3F : 20 DB 20H ; space |
2663/ FB2F : 3D DEC A ;A=FF | 2672/ FB40 : ; |
2664/ FB30 : D3 90 OUT DPIOA, A ;mit FF init. | 2673/ FB40 : ;UMCODIERUNGSTASTEN FUER SONDERTASTEN |
2665/ FB32 : C9 RET | 2674/ FB40 : ;S64..S78 |
2666/ FB33 : | 2675/ FB40 : 19 TAB2: DB 19H ; tab left |
2667/ FB33 : =>TRUE IF tastneu = 0 | 2676/ FB41 : 13 DB 13H ; PAUSE |
2668/ FB33 : | 2677/ FB42 : 1A DB 1AH ; INS |
2669/ FB33 : ; | 2678/ FB43 : 5E DB 5EH ; ^ |
2670/ FB33 : ;UMC0DIERUNGSTABELLE FUER SONDERTASTEN+SHIFT | 2679/ FB44 : 00 DB 0 |
2671/ FB33 : ;S64..S78 | 2680/ FB45 : 08 DB 8 ; cu left |
2672/ FB33 : 18 TAB1: DB 18H ; tab right | 2681/ FB46 : 09 DB 9 ; cu right |
2673/ FB34 : 1E DB 1EH ; CONT | 2682/ FB47 : 0A DB 0AH ; cu down |
2674/ FB35 : 1F DB 1FH ; DEL | 2683/ FB48 : 0B DB 0BH ; cu up |
2675/ FB36 : 5D DB 5DH ; ] | 2684/ FB49 : 1B DB 1BH ; ESC |
2676/ FB37 : 00 DB 0 | 2685/ FB4A : 0D DB 0DH ; ENTER |
2677/ FB38 : 08 DB 8 ; cu left | 2686/ FB4B : 03 DB 3 ; STOP |
2678/ FB39 : 09 DB 9 ; cu right | 2687/ FB4C : 20 DB 20H ; space |
2679/ FB3A : 0A DB 0AH ; cu down | 2688/ FB4D : 00 DB 0 |
2680/ FB3B : 0B DB 0BH ; cu up | 2689/ FB4E : 14 DB 14H ; COLOR |
2681/ FB3C : 02 DB 2 ; CL LN | 2690/ FB4F : 00 DB 0 |
2682/ FB3D : 0D DB 0DH ; ENTER | 2691/ FB50 : 7E DB 7EH ;INTERNER CODE GRAFIC-TASTE |
2683/ FB3E : 03 DB 3 ; STOP | 2692/ FB51 : 1C DB 1CH ; LIST |
2684/ FB3F : 20 DB 20H ; space | 2693/ FB52 : 1D DB 1DH ; RUN |
2685/ FB40 : ; | 2694/ FB53 : 7D DB 7DH ;INTERNER CODE SHLOC-TSTE |
2686/ FB40 : ;UMCODIERUNGSTASTEN FUER SONDERTASTEN | 2695/ FB54 : ; |
2687/ FB40 : ;S64..S78 | 2696/ FB54 : ;UMCODIERUNGSTABELLE FUER GRAFIKSYMBOLE |
2688/ FB40 : 19 TAB2: DB 19H ; tab left | 2697/ FB54 : AB TABG: DB 0ABH ;CTRL/A |
2689/ FB41 : 13 DB 13H ; PAUSE | 2698/ FB55 : |
2690/ FB42 : 1A DB 1AH ; INS | 2699/ FB55 : =>FALSE if osver == 11 |
2691/ FB43 : 5E DB 5EH ; ^ | 2700/ FB55 : DB 8Ch ; CTRL B |
2692/ FB44 : 00 DB 0 | 2701/ FB55 : =>TRUE ELSE |
2693/ FB45 : 08 DB 8 ; cu left | 2702/ FB55 : 8D DB 8DH |
2694/ FB46 : 09 DB 9 ; cu right | 2703/ FB56 : [2699] ENDIF |
2695/ FB47 : 0A DB 0AH ; cu down | 2704/ FB56 : |
2696/ FB48 : 0B DB 0BH ; cu up | 2705/ FB56 : 82 DB 82H ; CTRL C |
2697/ FB49 : 1B DB 1BH ; ESC | 2706/ FB57 : 85 DB 85H ; CTRL D |
2698/ FB4A : 0D DB 0DH ; ENTER | 2707/ FB58 : 86 DB 86H ; CTRL E |
2699/ FB4B : 03 DB 3 ; STOP | 2708/ FB59 : 84 DB 84H ; CTRL F |
2700/ FB4C : 20 DB 20H ; space | 2709/ FB5A : CF DB 0CFH ; CTRL G |
AS V1.42 Beta [Bld 82] - source file os.asm - page 46 - 3/20/2012 20:42:07 | 2710/ FB5B : C3 DB 0C3H ; CTRL H |
| 2711/ FB5C : 96 DB 96H ; CTRL I |
| 2712/ FB5D : 90 DB 90H ; CTRL J |
2701/ FB4D : 00 DB 0 | 2713/ FB5E : 9B DB 9BH ; CTRL K |
2702/ FB4E : 14 DB 14H ; COLOR | 2714/ FB5F : 9C DB 9CH ; CTRL L |
2703/ FB4F : 00 DB 0 | 2715/ FB60 : AF DB 0AFH ; CTRL M |
2704/ FB50 : 7E DB 7EH ;INTERNER CODE GRAFIC-TASTE | 2716/ FB61 : C4 DB 0C4H ; CTRL N |
2705/ FB51 : 1C DB 1CH ; LIST | 2717/ FB62 : 95 DB 95H ; CTRL O |
2706/ FB52 : 1D DB 1DH ; RUN | 2718/ FB63 : 92 DB 92H ; CTRL P |
2707/ FB53 : 7D DB 7DH ;INTERNER CODE SHLOC-TSTE | 2719/ FB64 : AE DB 0AEH ; CTRL Q |
2708/ FB54 : ; | 2720/ FB65 : 87 DB 87H ; CTRL R |
2709/ FB54 : ;UMCODIERUNGSTABELLE FUER GRAFIKSYMBOLE | 2721/ FB66 : AC DB 0ACH ; CTRL S |
2710/ FB54 : AB TABG: DB 0ABH ;CTRL/A | 2722/ FB67 : 8C DB 8CH ; CTRL T |
2711/ FB55 : | 2723/ FB68 : 91 DB 91H ; CTRL U |
2712/ FB55 : =>FALSE if osver == 11 | 2724/ FB69 : 83 DB 83H ; CTRL V |
2713/ FB55 : DB 8Ch ; CTRL B | 2725/ FB6A : AD DB 0ADH ; CTRL W |
2714/ FB55 : =>TRUE ELSE | 2726/ FB6B : 80 DB 80H ; CTRL X |
2715/ FB55 : 8D DB 8DH | 2727/ FB6C : 81 DB 81H ; CTRL Y |
2716/ FB56 : [2712] ENDIF | 2728/ FB6D : C2 DB 0C2H ; CTRL Z |
2717/ FB56 : | 2729/ FB6E : 00 DB 0 |
2718/ FB56 : 82 DB 82H ; CTRL C | 2730/ FB6F : 00 DB 0 |
2719/ FB57 : 85 DB 85H ; CTRL D | 2731/ FB70 : 00 DB 0 |
2720/ FB58 : 86 DB 86H ; CTRL E | 2732/ FB71 : 93 DB 93H ;CTRL/^ |
2721/ FB59 : 84 DB 84H ; CTRL F | 2733/ FB72 : 00 DB 0 |
2722/ FB5A : CF DB 0CFH ; CTRL G | 2734/ FB73 : 00 DB 0 |
2723/ FB5B : C3 DB 0C3H ; CTRL H | 2735/ FB74 : EC DB 0ECH ; SHIFT 1 |
2724/ FB5C : 96 DB 96H ; CTRL I | 2736/ FB75 : ED DB 0EDH ; SHIFT 2 |
2725/ FB5D : 90 DB 90H ; CTRL J | 2737/ FB76 : EE DB 0EEH ; SHIFT 3 |
2726/ FB5E : 9B DB 9BH ; CTRL K | 2738/ FB77 : EF DB 0EFH ; SHIFT 4 |
2727/ FB5F : 9C DB 9CH ; CTRL L | 2739/ FB78 : F0 DB 0F0H ; SHIFT 5 |
2728/ FB60 : AF DB 0AFH ; CTRL M | 2740/ FB79 : CA DB 0CAH ; SHIFT 6 |
2729/ FB61 : C4 DB 0C4H ; CTRL N | 2741/ FB7A : CC DB 0CCH ; SHIFT 7 |
2730/ FB62 : 95 DB 95H ; CTRL O | 2742/ FB7B : D0 DB 0D0H ; SHIFT 8 |
2731/ FB63 : 92 DB 92H ; CTRL P | 2743/ FB7C : D1 DB 0D1H ; SHIFT 9 |
2732/ FB64 : AE DB 0AEH ; CTRL Q | 2744/ FB7D : DA DB 0DAH ; SHIFT : |
2733/ FB65 : 87 DB 87H ; CTRL R | 2745/ FB7E : DE DB 0DEH ; SHIFT ; |
2734/ FB66 : AC DB 0ACH ; CTRL S | 2746/ FB7F : FC DB 0FCH ; ',' |
2735/ FB67 : 8C DB 8CH ; CTRL T | 2747/ FB80 : DF DB 0DFH ; SHIFT = |
2736/ FB68 : 91 DB 91H ; CTRL U | 2748/ FB81 : FD DB 0FDH ; '.' |
2737/ FB69 : 83 DB 83H ; CTRL V | 2749/ FB82 : DB DB 0DBH ; '?' |
2738/ FB6A : AD DB 0ADH ; CTRL W | 2750/ FB83 : B3 DB 0B3H ;'0' |
2739/ FB6B : 80 DB 80H ; CTRL X | 2751/ FB84 : A0 DB 0A0H ; '1' |
2740/ FB6C : 81 DB 81H ; CTRL Y | 2752/ FB85 : A1 DB 0A1H ; '2' |
2741/ FB6D : C2 DB 0C2H ; CTRL Z | 2753/ FB86 : 9E DB 9EH ; '3' |
2742/ FB6E : 00 DB 0 | 2754/ FB87 : 9F DB 9FH ; '4' |
2743/ FB6F : 00 DB 0 | 2755/ FB88 : C0 DB 0C0H ; '5' |
2744/ FB70 : 00 DB 0 | 2756/ FB89 : C7 DB 0C7H ; '6' |
2745/ FB71 : 93 DB 93H ;CTRL/^ | 2757/ FB8A : B4 DB 0B4H ; '7' |
2746/ FB72 : 00 DB 0 | 2758/ FB8B : B0 DB 0B0H ; '8' |
2747/ FB73 : 00 DB 0 | 2759/ FB8C : B1 DB 0B1H ; '9' |
2748/ FB74 : EC DB 0ECH ; SHIFT 1 | 2760/ FB8D : 8F DB 8FH ; ':' |
2749/ FB75 : ED DB 0EDH ; SHIFT 2 | 2761/ FB8E : FE DB 0FEH ; ';' |
2750/ FB76 : EE DB 0EEH ; SHIFT 3 | 2762/ FB8F : DC DB 0DCH ; SHIFT ',' |
2751/ FB77 : EF DB 0EFH ; SHIFT 4 | 2763/ FB90 : FF DB 0FFH ; '=' |
2752/ FB78 : F0 DB 0F0H ; SHIFT 5 | 2764/ FB91 : DD DB 0DDH ; SHIFT '.' |
2753/ FB79 : CA DB 0CAH ; SHIFT 6 | 2765/ FB92 : BE DB 0BEH ; '?' |
2754/ FB7A : CC DB 0CCH ; SHIFT 7 | 2766/ FB93 : B2 DB 0B2H ;'@' |
2755/ FB7B : D0 DB 0D0H ; SHIFT 8 | 2767/ FB94 : A3 DB 0A3H ; 'A' |
2756/ FB7C : D1 DB 0D1H ; SHIFT 9 | 2768/ FB95 : F9 DB 0F9H ; 'B' |
2757/ FB7D : DA DB 0DAH ; SHIFT : | 2769/ FB96 : AA DB 0AAH ; 'C' |
2758/ FB7E : DE DB 0DEH ; SHIFT ; | 2770/ FB97 : A5 DB 0A5H ; 'D' |
2759/ FB7F : FC DB 0FCH ; ',' | 2771/ FB98 : A9 DB 0A9H ; 'E' |
2760/ FB80 : DF DB 0DFH ; SHIFT = | 2772/ FB99 : 88 DB 88H ; 'F' |
AS V1.42 Beta [Bld 82] - source file os.asm - page 47 - 3/20/2012 20:42:07 | 2773/ FB9A : C8 DB 0C8H ; 'G' |
| 2774/ FB9B : C6 DB 0C6H ; 'H' |
| 2775/ FB9C : BC DB 0BCH ; 'I' |
2761/ FB81 : FD DB 0FDH ; '.' | 2776/ FB9D : B6 DB 0B6H ; 'J' |
2762/ FB82 : DB DB 0DBH ; '?' | 2777/ FB9E : BB DB 0BBH ; 'K' |
2763/ FB83 : B3 DB 0B3H ;'0' | 2778/ FB9F : BA DB 0BAH ; 'L' |
2764/ FB84 : A0 DB 0A0H ; '1' | 2779/ FBA0 : |
2765/ FB85 : A1 DB 0A1H ; '2' | 2780/ FBA0 : =>FALSE IF osver = 11 |
2766/ FB86 : 9E DB 9EH ; '3' | 2781/ FBA0 : DB 0FBH |
2767/ FB87 : 9F DB 9FH ; '4' | 2782/ FBA0 : =>TRUE ELSEIF osver = 12 |
2768/ FB88 : C0 DB 0C0H ; '5' | 2783/ FBA0 : B7 DB 0B7H ; 'M' |
2769/ FB89 : C7 DB 0C7H ; '6' | 2784/ FBA1 : =>FALSE ELSEIF osver = 13 |
2770/ FB8A : B4 DB 0B4H ; '7' | 2785/ FBA1 : DB 0FBH |
2771/ FB8B : B0 DB 0B0H ; '8' | 2786/ FBA1 : [2780] ENDIF |
2772/ FB8C : B1 DB 0B1H ; '9' | 2787/ FBA1 : |
2773/ FB8D : 8F DB 8FH ; ':' | 2788/ FBA1 : FA DB 0FAH ; 'N' |
2774/ FB8E : FE DB 0FEH ; ';' | 2789/ FBA2 : BD DB 0BDH ; 'O' |
2775/ FB8F : DC DB 0DCH ; SHIFT ',' | 2790/ FBA3 : B8 DB 0B8H ; 'P' |
2776/ FB90 : FF DB 0FFH ; '=' | 2791/ FBA4 : A8 DB 0A8H ; 'Q' |
2777/ FB91 : DD DB 0DDH ; SHIFT '.' | 2792/ FBA5 : C1 DB 0C1H ; 'R' |
2778/ FB92 : BE DB 0BEH ; '?' | 2793/ FBA6 : A6 DB 0A6H ; 'S' |
2779/ FB93 : B2 DB 0B2H ;'@' | 2794/ FBA7 : 89 DB 89H ; 'T' |
2780/ FB94 : A3 DB 0A3H ; 'A' | 2795/ FBA8 : B5 DB 0B5H ; 'U' |
2781/ FB95 : F9 DB 0F9H ; 'B' | 2796/ FBA9 : F8 DB 0F8H ; 'V' |
2782/ FB96 : AA DB 0AAH ; 'C' | 2797/ FBAA : A4 DB 0A4H ; 'W' |
2783/ FB97 : A5 DB 0A5H ; 'D' | 2798/ FBAB : A2 DB 0A2H ; 'X' |
2784/ FB98 : A9 DB 0A9H ; 'E' | 2799/ FBAC : A7 DB 0A7H ; 'Y' |
2785/ FB99 : 88 DB 88H ; 'F' | 2800/ FBAD : C5 DB 0C5H ; 'Z' |
2786/ FB9A : C8 DB 0C8H ; 'G' | 2801/ FBAE : 98 DB 98H ; CONTR : |
2787/ FB9B : C6 DB 0C6H ; 'H' | 2802/ FBAF : 00 DB 0 |
2788/ FB9C : BC DB 0BCH ; 'I' | 2803/ FBB0 : D7 DB 0D7H ; SHIFT ^ |
2789/ FB9D : B6 DB 0B6H ; 'J' | 2804/ FBB1 : B9 DB 0B9H ; ^ |
2790/ FB9E : BB DB 0BBH ; 'K' | 2805/ FBB2 : D2 DB 0D2H ; SHIFT 0 |
2791/ FB9F : BA DB 0BAH ; 'L' | 2806/ FBB3 : D3 DB 0D3H ; SHIFT @ |
2792/ FBA0 : | 2807/ FBB4 : F2 DB 0F2H ; SHIFT A |
2793/ FBA0 : =>FALSE IF osver = 11 | 2808/ FBB5 : E0 DB 0E0H ; SHIFT B |
2794/ FBA0 : DB 0FBH | 2809/ FBB6 : E2 DB 0E2H ; SHIFT C |
2795/ FBA0 : =>TRUE ELSEIF osver = 12 | 2810/ FBB7 : F4 DB 0F4H ; SHIFT D |
2796/ FBA0 : B7 DB 0B7H ; 'M' | 2811/ FBB8 : E8 DB 0E8H ; SHIFT E |
2797/ FBA1 : =>FALSE ELSEIF osver = 13 | 2812/ FBB9 : F5 DB 0F5H ; SHIFT F |
2798/ FBA1 : DB 0FBH | 2813/ FBBA : F6 DB 0F6H ; SHIFT G |
2799/ FBA1 : [2793] ENDIF | 2814/ FBBB : 8A DB 8AH ; SHIFT H |
2800/ FBA1 : | 2815/ FBBC : D4 DB 0D4H ; SHIFT I |
2801/ FBA1 : FA DB 0FAH ; 'N' | 2816/ FBBD : 8B DB 8BH ; SHIFT J |
2802/ FBA2 : BD DB 0BDH ; 'O' | 2817/ FBBE : D8 DB 0D8H ; SHIFT K |
2803/ FBA3 : B8 DB 0B8H ; 'P' | 2818/ FBBF : D9 DB 0D9H ; SHIFT L |
2804/ FBA4 : A8 DB 0A8H ; 'Q' | 2819/ FBC0 : CD DB 0CDH ; SHIFT M |
2805/ FBA5 : C1 DB 0C1H ; 'R' | 2820/ FBC1 : CE DB 0CEH ; SHIFT N |
2806/ FBA6 : A6 DB 0A6H ; 'S' | 2821/ FBC2 : D5 DB 0D5H ; SHIFT O |
2807/ FBA7 : 89 DB 89H ; 'T' | 2822/ FBC3 : D6 DB 0D6H ; SHIFT P |
2808/ FBA8 : B5 DB 0B5H ; 'U' | 2823/ FBC4 : EA DB 0EAH ; SHIFT Q |
2809/ FBA9 : F8 DB 0F8H ; 'V' | 2824/ FBC5 : E7 DB 0E7H ; SHIFT R |
2810/ FBAA : A4 DB 0A4H ; 'W' | 2825/ FBC6 : F3 DB 0F3H ; SHIFT S |
2811/ FBAB : A2 DB 0A2H ; 'X' | 2826/ FBC7 : E6 DB 0E6H ; SHIFT T |
2812/ FBAC : A7 DB 0A7H ; 'Y' | 2827/ FBC8 : C9 DB 0C9H ; SHIFT U |
2813/ FBAD : C5 DB 0C5H ; 'Z' | 2828/ FBC9 : E1 DB 0E1H ; SHIFT V |
2814/ FBAE : 98 DB 98H ; CONTR : | 2829/ FBCA : E9 DB 0E9H ; SHIFT W |
2815/ FBAF : 00 DB 0 | 2830/ FBCB : E3 DB 0E3H ; SHIFT X |
2816/ FBB0 : D7 DB 0D7H ; SHIFT ^ | 2831/ FBCC : E4 DB 0E4H ; SHIFT Y |
2817/ FBB1 : B9 DB 0B9H ; ^ | 2832/ FBCD : CB DB 0CBH ; SHIFT Z |
2818/ FBB2 : D2 DB 0D2H ; SHIFT 0 | 2833/ FBCE : 94 DB 94H ; CONTR < |
2819/ FBB3 : D3 DB 0D3H ; SHIFT @ | 2834/ FBCF : 9D DB 9DH ; CONTR , |
2820/ FBB4 : F2 DB 0F2H ; SHIFT A | 2835/ FBD0 : 97 DB 97H ; CONTR = |
AS V1.42 Beta [Bld 82] - source file os.asm - page 48 - 3/20/2012 20:42:07 | 2836/ FBD1 : 9A DB 9AH ; CONTR . |
| 2837/ FBD2 : 99 DB 99H ; CONTR ? |
| 2838/ FBD3 : |
2821/ FBB5 : E0 DB 0E0H ; SHIFT B | 2839/ FBD3 : =>FALSE ELSE ; tastneu = 1 |
2822/ FBB6 : E2 DB 0E2H ; SHIFT C | 2840/ FBD3 : |
2823/ FBB7 : F4 DB 0F4H ; SHIFT D | 2841/ FBD3 : ;Neue Tastaturtabelle: |
2824/ FBB8 : E8 DB 0E8H ; SHIFT E | 2842/ FBD3 : ; |
2825/ FBB9 : F5 DB 0F5H ; SHIFT F | 2843/ FBD3 : ;TABELLE FUER ALLE TASTEN |
2826/ FBBA : F6 DB 0F6H ; SHIFT G | 2844/ FBD3 : ; |
2827/ FBBB : 8A DB 8AH ; SHIFT H | 2845/ FBD3 : TAB1: |
2828/ FBBC : D4 DB 0D4H ; SHIFT I | 2846/ FBD3 : ;Spalte 0 |
2829/ FBBD : 8B DB 8BH ; SHIFT J | 2847/ FBD3 : DB '0' |
2830/ FBBE : D8 DB 0D8H ; SHIFT K | 2848/ FBD3 : DB '8' |
2831/ FBBF : D9 DB 0D9H ; SHIFT L | 2849/ FBD3 : DB '@' |
2832/ FBC0 : CD DB 0CDH ; SHIFT M | 2850/ FBD3 : DB 'H' |
2833/ FBC1 : CE DB 0CEH ; SHIFT N | 2851/ FBD3 : DB 'P' |
2834/ FBC2 : D5 DB 0D5H ; SHIFT O | 2852/ FBD3 : DB 'X' |
2835/ FBC3 : D6 DB 0D6H ; SHIFT P | 2853/ FBD3 : DB 08H ; <- |
2836/ FBC4 : EA DB 0EAH ; SHIFT Q | 2854/ FBD3 : DB 00H ; SHIFT |
2837/ FBC5 : E7 DB 0E7H ; SHIFT R | 2855/ FBD3 : ;Spalte 1 |
2838/ FBC6 : F3 DB 0F3H ; SHIFT S | 2856/ FBD3 : DB '1' |
2839/ FBC7 : E6 DB 0E6H ; SHIFT T | 2857/ FBD3 : DB '9' |
2840/ FBC8 : C9 DB 0C9H ; SHIFT U | 2858/ FBD3 : DB 'A' |
2841/ FBC9 : E1 DB 0E1H ; SHIFT V | 2859/ FBD3 : DB 'I' |
2842/ FBCA : E9 DB 0E9H ; SHIFT W | 2860/ FBD3 : DB 'Q' |
2843/ FBCB : E3 DB 0E3H ; SHIFT X | 2861/ FBD3 : DB 'Y' |
2844/ FBCC : E4 DB 0E4H ; SHIFT Y | 2862/ FBD3 : DB 09H ; -> |
2845/ FBCD : CB DB 0CBH ; SHIFT Z | 2863/ FBD3 : DB 14H ; COLOR |
2846/ FBCE : 94 DB 94H ; CONTR < | 2864/ FBD3 : ; Spalte 2 |
2847/ FBCF : 9D DB 9DH ; CONTR , | 2865/ FBD3 : DB '2' |
2848/ FBD0 : 97 DB 97H ; CONTR = | 2866/ FBD3 : DB ':' |
2849/ FBD1 : 9A DB 9AH ; CONTR . | 2867/ FBD3 : DB 'B' |
2850/ FBD2 : 99 DB 99H ; CONTR ? | 2868/ FBD3 : DB 'J' |
2851/ FBD3 : | 2869/ FBD3 : DB 'R' |
2852/ FBD3 : =>FALSE ELSE ; tastneu = 1 | 2870/ FBD3 : DB 'Z' |
2853/ FBD3 : | 2871/ FBD3 : DB 0AH ; cursor down |
2854/ FBD3 : ;Neue Tastaturtabelle: | 2872/ FBD3 : DB 00H ; CONTROL |
2855/ FBD3 : ; | 2873/ FBD3 : ; Spalte 3 |
2856/ FBD3 : ;TABELLE FUER ALLE TASTEN | 2874/ FBD3 : DB '3' |
2857/ FBD3 : ; | 2875/ FBD3 : DB ';' |
2858/ FBD3 : TAB1: | 2876/ FBD3 : DB 'C' |
2859/ FBD3 : ;Spalte 0 | 2877/ FBD3 : DB 'K' |
2860/ FBD3 : DB '0' | 2878/ FBD3 : DB 'S' |
2861/ FBD3 : DB '8' | 2879/ FBD3 : DB 19H ; |<- |
2862/ FBD3 : DB '@' | 2880/ FBD3 : DB 0BH ; cursor up |
2863/ FBD3 : DB 'H' | 2881/ FBD3 : DB 11H ; GRAFIK |
2864/ FBD3 : DB 'P' | 2882/ FBD3 : ; Spalte 4 |
2865/ FBD3 : DB 'X' | 2883/ FBD3 : DB '4' |
2866/ FBD3 : DB 08H ; <- | 2884/ FBD3 : DB ',' |
2867/ FBD3 : DB 00H ; SHIFT | 2885/ FBD3 : DB 'D' |
2868/ FBD3 : ;Spalte 1 | 2886/ FBD3 : DB 'L' |
2869/ FBD3 : DB '1' | 2887/ FBD3 : DB 'T' |
2870/ FBD3 : DB '9' | 2888/ FBD3 : DB 13H ; PAUSE |
2871/ FBD3 : DB 'A' | 2889/ FBD3 : DB 1BH ; ESC |
2872/ FBD3 : DB 'I' | 2890/ FBD3 : DB 1CH ; LIST |
2873/ FBD3 : DB 'Q' | 2891/ FBD3 : ; Spalte 5 |
2874/ FBD3 : DB 'Y' | 2892/ FBD3 : DB '5' |
2875/ FBD3 : DB 09H ; -> | 2893/ FBD3 : DB '=' |
2876/ FBD3 : DB 14H ; COLOR | 2894/ FBD3 : DB 'E' |
2877/ FBD3 : ; Spalte 2 | 2895/ FBD3 : DB 'M' |
2878/ FBD3 : DB '2' | 2896/ FBD3 : DB 'U' |
2879/ FBD3 : DB ':' | 2897/ FBD3 : DB 1AH ; INS |
2880/ FBD3 : DB 'B' | 2898/ FBD3 : DB 0DH ; ENTER |
AS V1.42 Beta [Bld 82] - source file os.asm - page 49 - 3/20/2012 20:42:07 | 2899/ FBD3 : DB 1DH ; RUN |
| 2900/ FBD3 : ; Spalte 6 |
| 2901/ FBD3 : DB '6' |
2881/ FBD3 : DB 'J' | 2902/ FBD3 : DB '.' |
2882/ FBD3 : DB 'R' | 2903/ FBD3 : DB 'F' |
2883/ FBD3 : DB 'Z' | 2904/ FBD3 : DB 'N' |
2884/ FBD3 : DB 0AH ; cursor down | 2905/ FBD3 : DB 'V' |
2885/ FBD3 : DB 00H ; CONTROL | 2906/ FBD3 : DB '^' |
2886/ FBD3 : ; Spalte 3 | 2907/ FBD3 : DB 03H ; STOP |
2887/ FBD3 : DB '3' | 2908/ FBD3 : DB 10H ; SHIFT LOCK |
2888/ FBD3 : DB ';' | 2909/ FBD3 : ; Spalte 7 |
2889/ FBD3 : DB 'C' | 2910/ FBD3 : DB '7' |
2890/ FBD3 : DB 'K' | 2911/ FBD3 : DB '?' |
2891/ FBD3 : DB 'S' | 2912/ FBD3 : DB 'G' |
2892/ FBD3 : DB 19H ; |<- | 2913/ FBD3 : DB 'O' |
2893/ FBD3 : DB 0BH ; cursor up | 2914/ FBD3 : DB 'W' |
2894/ FBD3 : DB 11H ; GRAFIK | 2915/ FBD3 : DB '[' ; (S68) |
2895/ FBD3 : ; Spalte 4 | 2916/ FBD3 : DB ' ' ; SPACE |
2896/ FBD3 : DB '4' | 2917/ FBD3 : DB ']' ; (S88) |
2897/ FBD3 : DB ',' | 2918/ FBD3 : ; |
2898/ FBD3 : DB 'D' | 2919/ FBD3 : ;TABELLE DER SONDERTASTEN (24) |
2899/ FBD3 : DB 'L' | 2920/ FBD3 : ; |
2900/ FBD3 : DB 'T' | 2921/ FBD3 : TAB2: DB '1' |
2901/ FBD3 : DB 13H ; PAUSE | 2922/ FBD3 : DB '2' |
2902/ FBD3 : DB 1BH ; ESC | 2923/ FBD3 : DB '3' |
2903/ FBD3 : DB 1CH ; LIST | 2924/ FBD3 : DB '4' |
2904/ FBD3 : ; Spalte 5 | 2925/ FBD3 : DB '5' |
2905/ FBD3 : DB '5' | 2926/ FBD3 : DB '6' |
2906/ FBD3 : DB '=' | 2927/ FBD3 : DB '7' |
2907/ FBD3 : DB 'E' | 2928/ FBD3 : DB '8' |
2908/ FBD3 : DB 'M' | 2929/ FBD3 : DB '9' |
2909/ FBD3 : DB 'U' | 2930/ FBD3 : DB '0' |
2910/ FBD3 : DB 1AH ; INS | 2931/ FBD3 : DB ':' |
2911/ FBD3 : DB 0DH ; ENTER | 2932/ FBD3 : DB ';' |
2912/ FBD3 : DB 1DH ; RUN | 2933/ FBD3 : DB ',' |
2913/ FBD3 : ; Spalte 6 | 2934/ FBD3 : DB '=' |
2914/ FBD3 : DB '6' | 2935/ FBD3 : DB '.' |
2915/ FBD3 : DB '.' | 2936/ FBD3 : DB '?' |
2916/ FBD3 : DB 'F' | 2937/ FBD3 : DB 19H ; |<- |
2917/ FBD3 : DB 'N' | 2938/ FBD3 : DB 13H ; PAUSE |
2918/ FBD3 : DB 'V' | 2939/ FBD3 : DB 1AH ; INS |
2919/ FBD3 : DB '^' | 2940/ FBD3 : DB 1BH ; ESC |
2920/ FBD3 : DB 03H ; STOP | 2941/ FBD3 : DB 20H ; SPACE |
2921/ FBD3 : DB 10H ; SHIFT LOCK | 2942/ FBD3 : DB 1CH ; LIST |
2922/ FBD3 : ; Spalte 7 | 2943/ FBD3 : DB 1DH ; RUN |
2923/ FBD3 : DB '7' | 2944/ FBD3 : DB 14H ; INK |
2924/ FBD3 : DB '?' | 2945/ FBD3 : ; |
2925/ FBD3 : DB 'G' | 2946/ FBD3 : ;TABELLE DER SONDERTASTEN + SHIFT |
2926/ FBD3 : DB 'O' | 2947/ FBD3 : ; |
2927/ FBD3 : DB 'W' | 2948/ FBD3 : DB '!' |
2928/ FBD3 : DB '[' ; (S68) | 2949/ FBD3 : DB '"' ; " |
2929/ FBD3 : DB ' ' ; SPACE | 2950/ FBD3 : DB '#' |
2930/ FBD3 : DB ']' ; (S88) | 2951/ FBD3 : DB '$' |
2931/ FBD3 : ; | 2952/ FBD3 : DB '%' |
2932/ FBD3 : ;TABELLE DER SONDERTASTEN (24) | 2953/ FBD3 : DB '&' |
2933/ FBD3 : ; | 2954/ FBD3 : DB 27H ; ’ |
2934/ FBD3 : TAB2: DB '1' | 2955/ FBD3 : DB '(' |
2935/ FBD3 : DB '2' | 2956/ FBD3 : DB ')' |
2936/ FBD3 : DB '3' | 2957/ FBD3 : DB '_' |
2937/ FBD3 : DB '4' | 2958/ FBD3 : DB '*' |
2938/ FBD3 : DB '5' | 2959/ FBD3 : DB '+' |
2939/ FBD3 : DB '6' | 2960/ FBD3 : DB '<' |
2940/ FBD3 : DB '7' | 2961/ FBD3 : DB '-' |
AS V1.42 Beta [Bld 82] - source file os.asm - page 50 - 3/20/2012 20:42:07 | 2962/ FBD3 : DB '>' |
| 2963/ FBD3 : DB 2FH ; / |
| 2964/ FBD3 : DB 18H ; ->| |
2941/ FBD3 : DB '8' | 2965/ FBD3 : DB 1EH ; CONT |
2942/ FBD3 : DB '9' | 2966/ FBD3 : DB 1FH ; DEL |
2943/ FBD3 : DB '0' | 2967/ FBD3 : DB 02H ; CLLN |
2944/ FBD3 : DB ':' | 2968/ FBD3 : DB 20H ; SPACE |
2945/ FBD3 : DB ';' | 2969/ FBD3 : DB 7CH ; | |
2946/ FBD3 : DB ',' | 2970/ FBD3 : DB 7FH ; |
2947/ FBD3 : DB '=' | 2971/ FBD3 : DB 15H ; PAPER |
2948/ FBD3 : DB '.' | 2972/ FBD3 : DB 0FFH |
2949/ FBD3 : DB '?' | 2973/ FBD3 : DB 0FFH |
2950/ FBD3 : DB 19H ; |<- | 2974/ FBD3 : |
2951/ FBD3 : DB 13H ; PAUSE | 2975/ FBD3 : if rommenu |
2952/ FBD3 : DB 1AH ; INS | 2976/ FBD3 : ;Menü, nur in der Version 2.1 implementiert, sonst alles 0FFH: |
2953/ FBD3 : DB 1BH ; ESC | 2977/ FBD3 : MENUE: CALL PRNST |
2954/ FBD3 : DB 20H ; SPACE | 2978/ FBD3 : LD A,(IOBYT) |
2955/ FBD3 : DB 1CH ; LIST | 2979/ FBD3 : AND 0FCH |
2956/ FBD3 : DB 1DH ; RUN | 2980/ FBD3 : OR 01H |
2957/ FBD3 : DB 14H ; INK | 2981/ FBD3 : CALL IOST1 |
2958/ FBD3 : ; | 2982/ FBD3 : LD HL,0048H ; "H" |
2959/ FBD3 : ;TABELLE DER SONDERTASTEN + SHIFT | 2983/ FBD3 : LD (CONBU+2),HL ; PSEUDOEINGABE "H" |
2960/ FBD3 : ; | 2984/ FBD3 : CALL GVAL |
2961/ FBD3 : DB '!' | 2985/ FBD3 : CALL CPROM ; SUCHEN KOMMANDO IM SPEICHER |
2962/ FBD3 : DB '"' | 2986/ FBD3 : RET NZ ; NICHT GEFUNDEN |
2963/ FBD3 : DB '#' | 2987/ FBD3 : JP (HL) ; SPRUNG ZUM PROGRAMM "H" |
2964/ FBD3 : DB '$' | 2988/ FBD3 : [2975] endif |
2965/ FBD3 : DB '%' | 2989/ FBD3 : |
2966/ FBD3 : DB '&' | 2990/ FBD3 : ;------------------------------------------------------------------------------ |
2967/ FBD3 : DB 27H ; ’ | 2991/ FBD3 : ; Patches V Pohlers |
2968/ FBD3 : DB '(' | 2992/ FBD3 : ;------------------------------------------------------------------------------ |
2969/ FBD3 : DB ')' | 2993/ FBD3 : |
2970/ FBD3 : DB '_' | 2994/ FBD3 : ; Anpassung Zeichenausgabe: Jedesmal die orig. Grafik wieder einschalten |
2971/ FBD3 : DB '*' | 2995/ FBD3 : if krtgrafik |
2972/ FBD3 : DB '+' | 2996/ FBD3 : ocx: ld a,0 |
2973/ FBD3 : DB '<' | 2997/ FBD3 : out 0b8h,a ;KRT-Grafik aus |
2974/ FBD3 : DB '-' | 2998/ FBD3 : LD HL,SETC ;orig. Code |
2975/ FBD3 : DB '>' | 2999/ FBD3 : jp oc0 |
2976/ FBD3 : DB 2FH ; / | 3000/ FBD3 : [2995] endif |
2977/ FBD3 : DB 18H ; ->| | 3001/ FBD3 : |
2978/ FBD3 : DB 1EH ; CONT | 3002/ FBD3 : org 0FBD3h |
2979/ FBD3 : DB 1FH ; DEL | |
2980/ FBD3 : DB 02H ; CLLN | |
2981/ FBD3 : DB 20H ; SPACE | |
2982/ FBD3 : DB 7CH ; | | |
2983/ FBD3 : DB 7FH ; | |
2984/ FBD3 : DB 15H ; PAPER | |
2985/ FBD3 : DB 0FFH | |
2986/ FBD3 : DB 0FFH | |
2987/ FBD3 : | |
2988/ FBD3 : if rommenu | |
2989/ FBD3 : ;Menü, nur in der Version 2.1 implementiert, sonst alles 0FFH: | |
2990/ FBD3 : MENUE: CALL PRNST | |
2991/ FBD3 : LD A,(IOBYT) | |
2992/ FBD3 : AND 0FCH | |
2993/ FBD3 : OR 01H | |
2994/ FBD3 : CALL IOST1 | |
2995/ FBD3 : LD HL,0048H ; "H" | |
2996/ FBD3 : LD (CONBU+2),HL ; PSEUDOEINGABE "H" | |
2997/ FBD3 : CALL GVAL | |
2998/ FBD3 : CALL CPROM ; SUCHEN KOMMANDO IM SPEICHER | |
2999/ FBD3 : RET NZ ; NICHT GEFUNDEN | |
3000/ FBD3 : JP (HL) ; SPRUNG ZUM PROGRAMM "H" | |
AS V1.42 Beta [Bld 82] - source file os.asm - page 51 - 3/20/2012 20:42:07 | |
| |
| |
3001/ FBD3 : [2988] endif | |
3002/ FBD3 : | |
3003/ FBD3 : ;------------------------------------------------------------------------------ | 3003/ FBD3 : ;------------------------------------------------------------------------------ |
3004/ FBD3 : ; Patches V Pohlers | 3004/ FBD3 : [2654] ENDIF |
3005/ FBD3 : ;------------------------------------------------------------------------------ | 3005/ FBD3 : |
3006/ FBD3 : | 3006/ FBD3 : ; |
3007/ FBD3 : ; Anpassung Zeichenausgabe: Jedesmal die orig. Grafik wieder einschalten | 3007/ FBD3 : ;TABELLE DER LOGISCHEN GERAETE |
3008/ FBD3 : if krtgrafik | 3008/ FBD3 : E9 EF PHYDV: DW TXCON |
3009/ FBD3 : ocx: ld a,0 | 3009/ FBD5 : 43 4F 4E 53 54 20 DB "CONST " |
3010/ FBD3 : out 0b8h,a ;KRT-Grafik aus | 3010/ FBDB : 00 DB 0 |
3011/ FBD3 : LD HL,SETC ;orig. Code | 3011/ FBDC : EB EF DW TXCON+2 |
3012/ FBD3 : jp oc0 | 3012/ FBDE : 52 45 41 44 45 52 DB "READER" |
3013/ FBD3 : [3008] endif | 3013/ FBE4 : 00 DB 0 |
3014/ FBD3 : | 3014/ FBE5 : ED EF DW TXCON+4 |
3015/ FBD3 : | 3015/ FBE7 : 50 55 4E 43 48 20 DB "PUNCH " |
3016/ FBD3 : if extcio | 3016/ FBED : 00 DB 0 |
3017/ FBD3 : ; Anpassung Kassettenroutinen - Testen auf ext. Erweiterung | 3017/ FBEE : EF EF DW TXCON+6 |
3018/ FBD3 : ; Block lesen | 3018/ FBF0 : 4C 49 53 54 20 20 DB "LIST " |
3019/ FBD3 : marekx: | 3019/ FBF6 : 00 DB 0 |
3020/ FBD3 : LD HL,(EXTRD) | 3020/ FBF7 : ; |
3021/ FBD3 : LD A,(HL) ;steht auf Anfang der EXTRD-Routine der | 3021/ FBF7 : ;WBOOT - MELDUNG |
3022/ FBD3 : CP A, 3AH ;Befehl "LD A,(nn)" | 3022/ FBF7 : 0A TXTWB: DB 0AH |
3023/ FBD3 : Jr NZ,marekx1 | 3023/ FBF8 : 0D DB 0DH |
3024/ FBD3 : jp (HL) ;dann Ansprung von EXTRD | 3024/ FBF9 : 4F 53 DB "OS" |
3025/ FBD3 : ; sonst orig Code von MAREK | 3025/ FBFB : 0A DB 0AH |
3026/ FBD3 : marekx1: | 3026/ FBFC : 0D DB 0DH |
3027/ FBD3 : DI | 3027/ FBFD : 00 DB 0 |
3028/ FBD3 : CALL INIC1 | 3028/ FBFE : ; |
3029/ FBD3 : jp marek0 | 3029/ FBFE : ;TABELLE DER RESIDENTEN KOMMANDOS |
3030/ FBD3 : | 3030/ FBFE : ; |
3031/ FBD3 : ; Block schreiben | 3031/ FC00 : ORG RESET+0C00H |
3032/ FBD3 : karamx: | 3032/ FC00 : ; |
3033/ FBD3 : LD HL,(EXTWR) | 3033/ FC00 : C3 BA F0 RESCO: JP ASGN |
3034/ FBD3 : LD A,(HL) ;steht auf Anfang der EXTWR-Routine der | 3034/ FC03 : 41 53 47 4E 20 20 DB "ASGN " |
3035/ FBD3 : CP A, 3AH ;Befehl "LD A,(nn)" | |
3036/ FBD3 : Jr NZ,karamx1 | |
3037/ FBD3 : jp (HL) ;dann Ansprung von EXTWR | |
3038/ FBD3 : ; sonst orig Code von KARAM | |
3039/ FBD3 : karamx1: | |
3040/ FBD3 : DI | |
3041/ FBD3 : XOR A | |
3042/ FBD3 : LD (PSUM),A | |
3043/ FBD3 : jp karam0 | |
3044/ FBD3 : [3016] endif | |
3045/ FBD3 : | |
3046/ FBD3 : | |
3047/ FBD3 : org 0FBD3h | |
3048/ FBD3 : ;------------------------------------------------------------------------------ | |
3049/ FBD3 : [2667] ENDIF | |
3050/ FBD3 : | |
3051/ FBD3 : ; | |
3052/ FBD3 : ;TABELLE DER LOGISCHEN GERAETE | |
3053/ FBD3 : E9 EF PHYDV: DW TXCON | |
3054/ FBD5 : 43 4F 4E 53 54 20 DB "CONST " | |
3055/ FBDB : 00 DB 0 | |
3056/ FBDC : EB EF DW TXCON+2 | |
3057/ FBDE : 52 45 41 44 45 52 DB "READER" | |
3058/ FBE4 : 00 DB 0 | |
3059/ FBE5 : ED EF DW TXCON+4 | |
3060/ FBE7 : 50 55 4E 43 48 20 DB "PUNCH " | |
AS V1.42 Beta [Bld 82] - source file os.asm - page 52 - 3/20/2012 20:42:07 | |
| |
| |
3061/ FBED : 00 DB 0 | |
3062/ FBEE : EF EF DW TXCON+6 | |
3063/ FBF0 : 4C 49 53 54 20 20 DB "LIST " | |
3064/ FBF6 : 00 DB 0 | |
3065/ FBF7 : ; | |
3066/ FBF7 : ;WBOOT - MELDUNG | |
3067/ FBF7 : 0A TXTWB: DB 0AH | |
3068/ FBF8 : 0D DB 0DH | |
3069/ FBF9 : 4F 53 DB "OS" | |
3070/ FBFB : 0A DB 0AH | |
3071/ FBFC : 0D DB 0DH | |
3072/ FBFD : 00 DB 0 | |
3073/ FBFE : ; | |
3074/ FBFE : ;TABELLE DER RESIDENTEN KOMMANDOS | |
3075/ FBFE : ; | |
3076/ FC00 : ORG RESET+0C00H | |
3077/ FC00 : ; | |
3078/ FC00 : C3 BA F0 RESCO: JP ASGN | |
3079/ FC03 : 41 53 47 4E 20 20 DB "ASGN " | |
20 20 | 20 20 |
3080/ FC0B : 00 DB 0 | 3035/ FC0B : 00 DB 0 |
3081/ FC0C : C3 81 F1 JP TIME_ | 3036/ FC0C : C3 81 F1 JP TIME_ |
3082/ FC0F : 54 49 4D 45 20 20 DB "TIME " | 3037/ FC0F : 54 49 4D 45 20 20 DB "TIME " |
20 20 | 20 20 |
3083/ FC17 : 00 DB 0 | 3038/ FC17 : 00 DB 0 |
3084/ FC18 : C3 22 F5 JP LOAD | 3039/ FC18 : C3 22 F5 JP LOAD |
3085/ FC1B : 43 4C 4F 41 44 20 DB "CLOAD " | 3040/ FC1B : 43 4C 4F 41 44 20 DB "CLOAD " |
20 20 | 20 20 |
3086/ FC23 : 00 DB 0 | 3041/ FC23 : 00 DB 0 |
3087/ FC24 : ; | 3042/ FC24 : ; |
3088/ FC24 : ;TABELLE DER PHYSISCHEN GERAETE IM MONITOR | 3043/ FC24 : ;TABELLE DER PHYSISCHEN GERAETE IM MONITOR |
3089/ FC24 : 01 00 LOGDV: DW 0001 ;LOG. GERAET CONST, PHYS. CRT | 3044/ FC24 : 01 00 LOGDV: DW 0001 ;LOG. GERAET CONST, PHYS. CRT |
3090/ FC26 : 43 52 54 DB "CRT" | 3045/ FC26 : 43 52 54 DB "CRT" |
3091/ FC29 : 00 DB 0 | 3046/ FC29 : 00 DB 0 |
3092/ FC2A : 02 00 DW 0002 ;LOG. GERAET CONST, PHYS. BAT | 3047/ FC2A : 02 00 DW 0002 ;LOG. GERAET CONST, PHYS. BAT |
3093/ FC2C : 42 41 54 DB "BAT" | 3048/ FC2C : 42 41 54 DB "BAT" |
3094/ FC2F : 00 DB 0 | 3049/ FC2F : 00 DB 0 |
3095/ FC30 : ; | 3050/ FC30 : ; |
3096/ FC30 : ;RESET - MELDUNG | 3051/ FC30 : ;RESET - MELDUNG |
3097/ FC30 : 14 MSG: DB 14H ; Color | 3052/ FC30 : 14 MSG: DB 14H ; Color |
3098/ FC31 : 01 DB 1 | 3053/ FC31 : 01 DB 1 |
3099/ FC32 : 0C DB 0CH | 3054/ FC32 : 0C DB 0CH |
3100/ FC33 : =>UNDEFINED IFNDEF resmsg | 3055/ FC33 : =>UNDEFINED IFNDEF resmsg |
3101/ FC33 : 72 6F 62 6F 74 72 DB "robotron Z 9001" | 3056/ FC33 : 72 6F 62 6F 74 72 DB "robotron Z 9001" |
6F 6E 20 20 5A 20 | 6F 6E 20 20 5A 20 |
39 30 30 31 | 39 30 30 31 |
3102/ FC43 : =>FALSE ELSE | 3057/ FC43 : =>FALSE ELSE |
3103/ FC43 : DB resmsg | 3058/ FC43 : DB resmsg |
3104/ FC43 : [3100] ENDIF | 3059/ FC43 : [3055] ENDIF |
3105/ FC43 : 0A DB 0AH | 3060/ FC43 : 0A DB 0AH |
3106/ FC44 : 0D DB 0DH | 3061/ FC44 : 0D DB 0DH |
3107/ FC45 : 14 DB 14H ; Color | 3062/ FC45 : 14 DB 14H ; Color |
3108/ FC46 : 02 DB 2 | 3063/ FC46 : 02 DB 2 |
3109/ FC47 : 00 DB 0 | 3064/ FC47 : 00 DB 0 |
3110/ FC48 : ; | 3065/ FC48 : ; |
3111/ FC48 : 0A TXTRC: DB 0AH | 3066/ FC48 : 0A TXTRC: DB 0AH |
3112/ FC49 : =>FALSE if osver == 11 | 3067/ FC49 : =>FALSE if osver == 11 |
3113/ FC49 : DB 0DH | 3068/ FC49 : DB 0DH |
3114/ FC49 : [3112] ENDIF | 3069/ FC49 : [3067] ENDIF |
3115/ FC49 : 73 74 61 72 74 20 DB "start tape" | 3070/ FC49 : 73 74 61 72 74 20 DB "start tape" |
AS V1.42 Beta [Bld 82] - source file os.asm - page 53 - 3/20/2012 20:42:07 | |
| |
74 61 70 65 | 74 61 70 65 |
3116/ FC53 : 0A DB 0AH | 3071/ FC53 : 0A DB 0AH |
3117/ FC54 : 0D DB 0DH | 3072/ FC54 : 0D DB 0DH |
3118/ FC55 : 00 DB 0 | 3073/ FC55 : 00 DB 0 |
3119/ FC56 : ; | 3074/ FC56 : ; |
3120/ FC56 : ;FEHLERMELDUNGEN | 3075/ FC56 : ;FEHLERMELDUNGEN |
3121/ FC56 : TXTBE: | 3076/ FC56 : TXTBE: |
3122/ FC56 : =>TRUE IF osver <> 11 | 3077/ FC56 : =>TRUE IF osver <> 11 |
3123/ FC56 : 07 DB 07 ;CTRL/G | 3078/ FC56 : 07 DB 07 ;CTRL/G |
3124/ FC57 : [3122] ENDIF | 3079/ FC57 : [3077] ENDIF |
3125/ FC57 : | 3080/ FC57 : |
3126/ FC57 : 42 4F 53 2D DB "BOS-" | 3081/ FC57 : 42 4F 53 2D DB "BOS-" |
3127/ FC5B : 65 72 72 6F 72 TXTE: DB "error" | 3082/ FC5B : 65 72 72 6F 72 TXTE: DB "error" |
3128/ FC60 : 07 DB 07 | 3083/ FC60 : 07 DB 07 |
3129/ FC61 : 00 DB 0 | 3084/ FC61 : 00 DB 0 |
3130/ FC62 : 6D 65 6D 6F 72 79 TXTMP: DB "memory protected" | 3085/ FC62 : 6D 65 6D 6F 72 79 TXTMP: DB "memory protected" |
20 70 72 6F 74 65 | 20 70 72 6F 74 65 |
63 74 65 64 | 63 74 65 64 |
3131/ FC72 : 00 DB 0 | 3086/ FC72 : 00 DB 0 |
3132/ FC73 : 65 6E 64 20 6F 66 TXTEO: DB "end of memory" | 3087/ FC73 : 65 6E 64 20 6F 66 TXTEO: DB "end of memory" |
20 6D 65 6D 6F 72 | 20 6D 65 6D 6F 72 |
79 | 79 |
3133/ FC80 : 00 DB 0 | 3088/ FC80 : 00 DB 0 |
3134/ FC81 : 72 65 63 6F 72 64 TXTNB: DB "record not found" | 3089/ FC81 : 72 65 63 6F 72 64 TXTNB: DB "record not found" |
20 6E 6F 74 20 66 | 20 6E 6F 74 20 66 |
6F 75 6E 64 | 6F 75 6E 64 |
3135/ FC91 : 00 DB 0 | 3090/ FC91 : 00 DB 0 |
3136/ FC92 : 62 61 64 20 72 65 TXTPT: DB "bad record" | 3091/ FC92 : 62 61 64 20 72 65 TXTPT: DB "bad record" |
63 6F 72 64 | 63 6F 72 64 |
3137/ FC9C : 00 DB 0 | 3092/ FC9C : 00 DB 0 |
3138/ FC9D : 66 69 6C 65 20 6E TXTNF: DB "file not found" | 3093/ FC9D : 66 69 6C 65 20 6E TXTNF: DB "file not found" |
6F 74 20 66 6F 75 | 6F 74 20 66 6F 75 |
6E 64 | 6E 64 |
3139/ FCAB : ; | 3094/ FCAB : ; |
3140/ FCAB : ;TABELLE DER TRENNZEICHEN | 3095/ FCAB : ;TABELLE DER TRENNZEICHEN |
3141/ FCAB : 00 DTAB: DB 0 | 3096/ FCAB : 00 DTAB: DB 0 |
3142/ FCAC : 20 2C 2E 3A DB " ,.:" | 3097/ FCAC : 20 2C 2E 3A DB " ,.:" |
3143/ FCB0 : ; | 3098/ FCB0 : ; |
3144/ FCB0 : ;INTERRUPTADRESSEN | 3099/ FCB0 : ;INTERRUPTADRESSEN |
3145/ FCB0 : 43 FF INTV: DW IKACT ;KASSETTE SCHREIBEN CTC0 | 3100/ FCB0 : 43 FF INTV: DW IKACT ;KASSETTE SCHREIBEN CTC0 |
3146/ FCB2 : 00 00 DW 0 ; CTC1 | 3101/ FCB2 : 00 00 DW 0 ; CTC1 |
3147/ FCB4 : FB FC DW ICTC ;VORTEILER UHR CTC2 | 3102/ FCB4 : FB FC DW ICTC ;VORTEILER UHR CTC2 |
3148/ FCB6 : C2 FC DW INUHR ;SEKUNDENTAKT UHR CTC3 | 3103/ FCB6 : C2 FC DW INUHR ;SEKUNDENTAKT UHR CTC3 |
3149/ FCB8 : E4 FC DW INTP ;TASTATUR PIOB | 3104/ FCB8 : E4 FC DW INTP ;TASTATUR PIOB |
3150/ FCBA : BD FF DW IKEP ;KASSETTE LESEN PIO1AS | 3105/ FCBA : BD FF DW IKEP ;KASSETTE LESEN PIO1AS |
3151/ FCBC : ; | 3106/ FCBC : ; |
3152/ FCBC : E5 COMPW: PUSH HL | 3107/ FCBC : E5 COMPW: PUSH HL |
3153/ FCBD : B7 OR A | 3108/ FCBD : B7 OR A |
3154/ FCBE : ED 52 SBC HL,DE | 3109/ FCBE : ED 52 SBC HL,DE |
3155/ FCC0 : E1 POP HL | 3110/ FCC0 : E1 POP HL |
3156/ FCC1 : C9 RET | 3111/ FCC1 : C9 RET |
3157/ FCC2 : ; | 3112/ FCC2 : ; |
3158/ FCC2 : ;UHRINTERRUPTROUTINE | 3113/ FCC2 : ;UHRINTERRUPTROUTINE |
3159/ FCC2 : ; | 3114/ FCC2 : ; |
3160/ FCC2 : FB INUHR: EI | 3115/ FCC2 : FB INUHR: EI |
3161/ FCC3 : E5 PUSH HL | 3116/ FCC3 : E5 PUSH HL |
3162/ FCC4 : C5 PUSH BC | 3117/ FCC4 : C5 PUSH BC |
3163/ FCC5 : F5 PUSH AF | 3118/ FCC5 : F5 PUSH AF |
3164/ FCC6 : 21 20 00 LD HL,SEK+1 | 3119/ FCC6 : 21 20 00 LD HL,SEK+1 |
3165/ FCC9 : 06 02 LD B,2 | 3120/ FCC9 : 06 02 LD B,2 |
AS V1.42 Beta [Bld 82] - source file os.asm - page 54 - 3/20/2012 20:42:07 | 3121/ FCCB : 3E 3C LD A,60 |
| 3122/ FCCD : 2B INUH1: DEC HL |
| 3123/ FCCE : 34 INC (HL) |
3166/ FCCB : 3E 3C LD A,60 | 3124/ FCCF : BE CP A, (HL) |
3167/ FCCD : 2B INUH1: DEC HL | 3125/ FCD0 : 20 0D JR NZ, INUH3 |
3168/ FCCE : 34 INC (HL) | 3126/ FCD2 : 36 00 LD (HL),0 |
3169/ FCCF : BE CP A, (HL) | 3127/ FCD4 : 10 F7 DJNZ INUH1 |
3170/ FCD0 : 20 0D JR NZ, INUH3 | 3128/ FCD6 : 3E 18 LD A,24 |
3171/ FCD2 : 36 00 LD (HL),0 | 3129/ FCD8 : 2B DEC HL |
3172/ FCD4 : 10 F7 DJNZ INUH1 | 3130/ FCD9 : 34 INC (HL) |
3173/ FCD6 : 3E 18 LD A,24 | 3131/ FCDA : BE CP A, (HL) |
3174/ FCD8 : 2B DEC HL | 3132/ FCDB : 20 02 JR NZ, INUH3 |
3175/ FCD9 : 34 INC (HL) | 3133/ FCDD : 36 00 LD (HL),0 |
3176/ FCDA : BE CP A, (HL) | 3134/ FCDF : F1 INUH3: POP AF |
3177/ FCDB : 20 02 JR NZ, INUH3 | 3135/ FCE0 : C1 POP BC |
3178/ FCDD : 36 00 LD (HL),0 | 3136/ FCE1 : E1 POP HL |
3179/ FCDF : F1 INUH3: POP AF | 3137/ FCE2 : ED 4D RETI |
3180/ FCE0 : C1 POP BC | 3138/ FCE4 : ; |
3181/ FCE1 : E1 POP HL | 3139/ FCE4 : ;TASTATURINTERRUPTROUTINE |
3182/ FCE2 : ED 4D RETI | 3140/ FCE4 : ;wird durch PIOB aktiv, wenn ein Eingang auf LOW geht |
3183/ FCE4 : ; | 3141/ FCE4 : ;weiter geht es mit einem Interrupt durch CTC2 --> ICTC |
3184/ FCE4 : ;TASTATURINTERRUPTROUTINE | 3142/ FCE4 : ; |
3185/ FCE4 : ;wird durch PIOB aktiv, wenn ein Eingang auf LOW geht | 3143/ FCE4 : F5 INTP: PUSH AF |
3186/ FCE4 : ;weiter geht es mit einem Interrupt durch CTC2 --> ICTC | 3144/ FCE5 : 3E 0A LD A,10 |
3187/ FCE4 : ; | 3145/ FCE7 : 32 23 00 LD (COUNT),A ;INTERRUPTZAEHLER LADEN |
3188/ FCE4 : F5 INTP: PUSH AF | 3146/ FCEA : 3E 7F LD A,7FH ;FUER ENTPRELLEN |
3189/ FCE5 : 3E 0A LD A,10 | 3147/ FCEC : 32 24 00 LD (LAKEY),A ;LETZES ZEICHEN LOESCHEN |
3190/ FCE7 : 32 23 00 LD (COUNT),A ;INTERRUPTZAEHLER LADEN | 3148/ FCEF : 3E A5 LD A,0A5H ;CTC 2 INTERRUPT ERLAUBEN |
3191/ FCEA : 3E 7F LD A,7FH ;FUER ENTPRELLEN | 3149/ FCF1 : D3 82 OUT CTC2, A ;EI, Zeitgeber, Vorteiler 256, Zeitkonstantenstart, Zeitkonstante folgt |
3192/ FCEC : 32 24 00 LD (LAKEY),A ;LETZES ZEICHEN LOESCHEN | 3150/ FCF3 : 3E 96 LD A,96H ;Zeitkonstante: 2,4576 Mhz / 256 / 96h = 64 Hz |
3193/ FCEF : 3E A5 LD A,0A5H ;CTC 2 INTERRUPT ERLAUBEN | 3151/ FCF5 : D3 82 OUT CTC2, A |
3194/ FCF1 : D3 82 OUT CTC2, A ;EI, Zeitgeber, Vorteiler 256, Zeitkonstantenstart, Zeitkonstante folgt | 3152/ FCF7 : F1 POP AF |
3195/ FCF3 : 3E 96 LD A,96H ;Zeitkonstante: 2,4576 Mhz / 256 / 96h = 64 Hz | 3153/ FCF8 : FB EI |
3196/ FCF5 : D3 82 OUT CTC2, A | 3154/ FCF9 : ED 4D RETI |
3197/ FCF7 : F1 POP AF | 3155/ FCFB : ; |
3198/ FCF8 : FB EI | 3156/ FCFB : ;INTERRUPTROUTINE ZUM TASTATUR ENTPRELLEN/REPEAT - FUNKTION |
3199/ FCF9 : ED 4D RETI | 3157/ FCFB : ;wird durch CTC2 aktiv |
3200/ FCFB : ; | 3158/ FCFB : ; |
3201/ FCFB : ;INTERRUPTROUTINE ZUM TASTATUR ENTPRELLEN/REPEAT - FUNKTION | 3159/ FCFB : FB ICTC: EI |
3202/ FCFB : ;wird durch CTC2 aktiv | 3160/ FCFC : F5 PUSH AF |
3203/ FCFB : ; | 3161/ FCFD : E5 PUSH HL |
3204/ FCFB : FB ICTC: EI | 3162/ FCFE : 21 23 00 LD HL,COUNT |
3205/ FCFC : F5 PUSH AF | 3163/ FD01 : 35 DEC (HL) |
3206/ FCFD : E5 PUSH HL | 3164/ FD02 : 28 13 JR Z, ICTC2 ;TASTATUR ABFRAGEN |
3207/ FCFE : 21 23 00 LD HL,COUNT | 3165/ FD04 : 3E 07 LD A,7 |
3208/ FD01 : 35 DEC (HL) | 3166/ FD06 : A6 AND A, (HL) |
3209/ FD02 : 28 13 JR Z, ICTC2 ;TASTATUR ABFRAGEN | 3167/ FD07 : 20 22 JR NZ, ENDI ;NOCH NICHT WIEDER ABFRAGEN |
3210/ FD04 : 3E 07 LD A,7 | 3168/ FD09 : 23 INC HL ;(HL)=ADR. LAKEY |
3211/ FD06 : A6 AND A, (HL) | 3169/ FD0A : CD 30 FD CALL DECO ;TASTATUR ABFRAGEN WENN LAKEY <>0 |
3212/ FD07 : 20 22 JR NZ, ENDI ;NOCH NICHT WIEDER ABFRAGEN | 3170/ FD0D : 28 1C JR Z, ENDI ;KEIN GUELTIGER TASTENCODE |
3213/ FD09 : 23 INC HL ;(HL)=ADR. LAKEY | 3171/ FD0F : BE CP A, (HL) ;VERGLEICH MIT LETZTEM CODE |
3214/ FD0A : CD 30 FD CALL DECO ;TASTATUR ABFRAGEN WENN LAKEY <>0 | 3172/ FD10 : 28 19 JR Z, ENDI |
3215/ FD0D : 28 1C JR Z, ENDI ;KEIN GUELTIGER TASTENCODE | 3173/ FD12 : 2B DEC HL |
3216/ FD0F : BE CP A, (HL) ;VERGLEICH MIT LETZTEM CODE | 3174/ FD13 : 36 28 LD (HL),40 ;NACH 1. ZEICHEN LANGE PAUSE |
3217/ FD10 : 28 19 JR Z, ENDI | 3175/ FD15 : 18 07 JR ICTC3 |
3218/ FD12 : 2B DEC HL | 3176/ FD17 : 36 06 ICTC2: LD (HL),6 ;SCHNELLES REPEAT |
3219/ FD13 : 36 28 LD (HL),40 ;NACH 1. ZEICHEN LANGE PAUSE | 3177/ FD19 : CD 33 FD CALL DECO0 ;TASTATUR ABFRAGEN |
3220/ FD15 : 18 07 JR ICTC3 | 3178/ FD1C : 28 0D JR Z, ENDI ;KEIN GUELTIGER CODE |
3221/ FD17 : 36 06 ICTC2: LD (HL),6 ;SCHNELLES REPEAT | 3179/ FD1E : 23 ICTC3: INC HL |
3222/ FD19 : CD 33 FD CALL DECO0 ;TASTATUR ABFRAGEN | 3180/ FD1F : 77 LD (HL),A |
3223/ FD1C : 28 0D JR Z, ENDI ;KEIN GUELTIGER CODE | 3181/ FD20 : 3A 25 00 LD A,(KEYBU) |
3224/ FD1E : 23 ICTC3: INC HL | 3182/ FD23 : FE 03 CP A, 3 ;STOP |
3225/ FD1F : 77 LD (HL),A | 3183/ FD25 : 28 04 JR Z, ENDI ;NICHT UEBERSCHREIBEN |
AS V1.42 Beta [Bld 82] - source file os.asm - page 55 - 3/20/2012 20:42:07 | 3184/ FD27 : 7E LD A,(HL) |
| 3185/ FD28 : 32 25 00 LD (KEYBU),A ;ZEICHEN IN TASTATURPUFFER |
| 3186/ FD2B : E1 ENDI: POP HL |
3226/ FD20 : 3A 25 00 LD A,(KEYBU) | 3187/ FD2C : F1 POP AF |
3227/ FD23 : FE 03 CP A, 3 ;STOP | 3188/ FD2D : FB EI |
3228/ FD25 : 28 04 JR Z, ENDI ;NICHT UEBERSCHREIBEN | 3189/ FD2E : ED 4D RETI |
3229/ FD27 : 7E LD A,(HL) | 3190/ FD30 : |
3230/ FD28 : 32 25 00 LD (KEYBU),A ;ZEICHEN IN TASTATURPUFFER | 3191/ FD30 : ; TASTATURMATRIX |
3231/ FD2B : E1 ENDI: POP HL | 3192/ FD30 : ; |
3232/ FD2C : F1 POP AF | 3193/ FD30 : ; PIO2A, Port 90H |
3233/ FD2D : FB EI | 3194/ FD30 : ; |
3234/ FD2E : ED 4D RETI | 3195/ FD30 : ; A0 A1 A2 A3 A4 A5 A6 A7 |
3235/ FD30 : | 3196/ FD30 : ; | | | | | | | | |
3236/ FD30 : ; TASTATURMATRIX | 3197/ FD30 : ; TI0 TI1 TI2 TI3 TI4 TI5 TI6 TI7 |
3237/ FD30 : ; | 3198/ FD30 : ; | | | | | | | | |
3238/ FD30 : ; PIO2A, Port 90H | 3199/ FD30 : ; ------------------------------------------------- PIO2B, Port 91H |
3239/ FD30 : ; | 3200/ FD30 : ; | S11 | S12 | S13 | S14 | S15 | S16 | S17 | S18 |--TO0-B0 |
3240/ FD30 : ; A0 A1 A2 A3 A4 A5 A6 A7 | 3201/ FD30 : ; | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
3241/ FD30 : ; | | | | | | | | | 3202/ FD30 : ; ------------------------------------------------- |
3242/ FD30 : ; TI0 TI1 TI2 TI3 TI4 TI5 TI6 TI7 | 3203/ FD30 : ; | S21 | S22 | S23 | S24 | S25 | S26 | S27 | S28 |--TO1-B1 |
3243/ FD30 : ; | | | | | | | | | 3204/ FD30 : ; | 8 | 9 | : | ; | , | = | . | ? | |
3244/ FD30 : ; ------------------------------------------------- PIO2B, Port 91H | 3205/ FD30 : ; ------------------------------------------------- |
3245/ FD30 : ; | S11 | S12 | S13 | S14 | S15 | S16 | S17 | S18 |--TO0-B0 | 3206/ FD30 : ; | S31 | S32 | S33 | S34 | S35 | S36 | S37 | S38 |--TO2-B2 |
3246/ FD30 : ; | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | | 3207/ FD30 : ; | @ | A | B | C | D | E | F | G | |
3247/ FD30 : ; ------------------------------------------------- | 3208/ FD30 : ; ------------------------------------------------- |
3248/ FD30 : ; | S21 | S22 | S23 | S24 | S25 | S26 | S27 | S28 |--TO1-B1 | 3209/ FD30 : ; | S41 | S42 | S43 | S44 | S45 | S46 | S47 | S48 |--TO3-B3 |
3249/ FD30 : ; | 8 | 9 | : | ; | , | = | . | ? | | 3210/ FD30 : ; | H | I | J | K | L | M | N | O | |
3250/ FD30 : ; ------------------------------------------------- | 3211/ FD30 : ; ------------------------------------------------- |
3251/ FD30 : ; | S31 | S32 | S33 | S34 | S35 | S36 | S37 | S38 |--TO2-B2 | 3212/ FD30 : ; | S51 | S52 | S53 | S54 | S55 | S56 | S57 | S58 |--TO4-B4 |
3252/ FD30 : ; | @ | A | B | C | D | E | F | G | | 3213/ FD30 : ; | P | Q | R | S | T | U | V | W | |
3253/ FD30 : ; ------------------------------------------------- | 3214/ FD30 : ; ------------------------------------------------- |
3254/ FD30 : ; | S41 | S42 | S43 | S44 | S45 | S46 | S47 | S48 |--TO3-B3 | 3215/ FD30 : ; | S61 | S62 | S63 | S64 | S65 | S66 | S67 |(S68)|--TO5-B5 |
3255/ FD30 : ; | H | I | J | K | L | M | N | O | | 3216/ FD30 : ; | X | Y | Z | tab |pause| ins | ^ | | |
3256/ FD30 : ; ------------------------------------------------- | 3217/ FD30 : ; ------------------------------------------------- |
3257/ FD30 : ; | S51 | S52 | S53 | S54 | S55 | S56 | S57 | S58 |--TO4-B4 | 3218/ FD30 : ; | S71 | S72 | S73 | S74 | S75 | S76 | S77 | S78 |--TO6-B6 |
3258/ FD30 : ; | P | Q | R | S | T | U | V | W | | 3219/ FD30 : ; |left |right| down| up | esc |enter|stop |space| |
3259/ FD30 : ; ------------------------------------------------- | 3220/ FD30 : ; ------------------------------------------------- |
3260/ FD30 : ; | S61 | S62 | S63 | S64 | S65 | S66 | S67 |(S68)|--TO5-B5 | 3221/ FD30 : ; | S81 | S82 | S83 | S84 | S85 | S86 | S87 |(S88)|--TO7-B7 |
3261/ FD30 : ; | X | Y | Z | tab |pause| ins | ^ | | | 3222/ FD30 : ; |shift|color|contr|graph|list | run |shlck| | |
3262/ FD30 : ; ------------------------------------------------- | 3223/ FD30 : ; ------------------------------------------------- |
3263/ FD30 : ; | S71 | S72 | S73 | S74 | S75 | S76 | S77 | S78 |--TO6-B6 | 3224/ FD30 : ; |
3264/ FD30 : ; |left |right| down| up | esc |enter|stop |space| | 3225/ FD30 : |
3265/ FD30 : ; ------------------------------------------------- | 3226/ FD30 : =>TRUE IF tastneu = 0 |
3266/ FD30 : ; | S81 | S82 | S83 | S84 | S85 | S86 | S87 |(S88)|--TO7-B7 | 3227/ FD30 : |
3267/ FD30 : ; |shift|color|contr|graph|list | run |shlck| | | 3228/ FD30 : ; |
3268/ FD30 : ; ------------------------------------------------- | 3229/ FD30 : ;DECODIEREN DER TASTATURMATRIX |
3269/ FD30 : ; | 3230/ FD30 : 7E DECO: LD A,(HL) ;(HL)=ADR. LAKEY |
3270/ FD30 : | 3231/ FD31 : B7 OR A |
3271/ FD30 : =>TRUE IF tastneu = 0 | 3232/ FD32 : C8 RET Z |
3272/ FD30 : | 3233/ FD33 : ; |
3273/ FD30 : ; | 3234/ FD33 : ; Funktion: dekodieren Tastaturmatrix |
3274/ FD30 : ;DECODIEREN DER TASTATURMATRIX | 3235/ FD33 : ; a) Eingang |
3275/ FD30 : 7E DECO: LD A,(HL) ;(HL)=ADR. LAKEY | 3236/ FD33 : ; - DECOO |
3276/ FD31 : B7 OR A | 3237/ FD33 : ; gerufen von: ICTC |
3277/ FD32 : C8 RET Z | 3238/ FD33 : ; b) gerufene Programme |
3278/ FD33 : ; | 3239/ FD33 : ; - GPIOD Abfrage Tastatur PIO |
3279/ FD33 : ; Funktion: dekodieren Tastaturmatrix | 3240/ FD33 : ; c) Ausgang |
3280/ FD33 : ; a) Eingang | 3241/ FD33 : ; - |
3281/ FD33 : ; - DECOO | 3242/ FD33 : ; d) Return |
3282/ FD33 : ; gerufen von: ICTC | 3243/ FD33 : ; Parameter: A Zeichen |
3283/ FD33 : ; b) gerufene Programme | 3244/ FD33 : ; Z 1 Fehler |
3284/ FD33 : ; - GPIOD Abfrage Tastatur PIO | 3245/ FD33 : ; 0 gültig |
3285/ FD33 : ; c) Ausgang | 3246/ FD33 : ; |
AS V1.42 Beta [Bld 82] - source file os.asm - page 56 - 3/20/2012 20:42:07 | 3247/ FD33 : E5 DECO0: PUSH HL |
| 3248/ FD34 : D5 PUSH DE |
| 3249/ FD35 : C5 PUSH BC |
3286/ FD33 : ; - | 3250/ FD36 : 21 68 FE LD HL,ERDEC |
3287/ FD33 : ; d) Return | 3251/ FD39 : E5 PUSH HL ;ADR. FUER ENDEBEHANDLUNG |
3288/ FD33 : ; Parameter: A Zeichen | 3252/ FD3A : CD 8F FE CALL GPIOD ;LESEN TASTATUR-PIO |
3289/ FD33 : ; Z 1 Fehler | 3253/ FD3D : 7A DEC2: LD A,D |
3290/ FD33 : ; 0 gültig | 3254/ FD3E : B7 OR A |
3291/ FD33 : ; | 3255/ FD3F : C8 RET Z ;KEIN KONTAKT IN MATRIXZEILE |
3292/ FD33 : E5 DECO0: PUSH HL | 3256/ FD40 : 7B LD A,E |
3293/ FD34 : D5 PUSH DE | 3257/ FD41 : B7 OR A |
3294/ FD35 : C5 PUSH BC | 3258/ FD42 : C8 RET Z ;KEIN KONTAKT IN MATRIXSPALTE |
3295/ FD36 : 21 68 FE LD HL,ERDEC | 3259/ FD43 : 3A 26 00 LD A,(SHLOC) |
3296/ FD39 : E5 PUSH HL ;ADR. FUER ENDEBEHANDLUNG | 3260/ FD46 : B7 OR A |
3297/ FD3A : CD 8F FE CALL GPIOD ;LESEN TASTATUR-PIO | 3261/ FD47 : 28 06 JR Z, DEC22 ;KEIN SHIFT LOCK |
3298/ FD3D : 7A DEC2: LD A,D | 3262/ FD49 : CB C3 SET 0,E |
3299/ FD3E : B7 OR A | 3263/ FD4B : CB FA SET 7,D ;BIT WIE BEI SHIFT STELLEN |
3300/ FD3F : C8 RET Z ;KEIN KONTAKT IN MATRIXZEILE | 3264/ FD4D : CB BD RES 7,L |
3301/ FD40 : 7B LD A,E | 3265/ FD4F : E5 DEC22: PUSH HL |
3302/ FD41 : B7 OR A | 3266/ FD50 : D5 PUSH DE |
3303/ FD42 : C8 RET Z ;KEIN KONTAKT IN MATRIXSPALTE | 3267/ FD51 : ;ZEILE DECODIEREN |
3304/ FD43 : 3A 26 00 LD A,(SHLOC) | 3268/ FD51 : 5A LD E,D |
3305/ FD46 : B7 OR A | 3269/ FD52 : 0E 08 LD C,8 |
3306/ FD47 : 28 06 JR Z, DEC22 ;KEIN SHIFT LOCK | 3270/ FD54 : CD 81 FE CALL M0 |
3307/ FD49 : CB C3 SET 0,E | 3271/ FD57 : 67 LD H,A |
3308/ FD4B : CB FA SET 7,D ;BIT WIE BEI SHIFT STELLEN | 3272/ FD58 : CD 89 FE CALL M2 |
3309/ FD4D : CB BD RES 7,L | 3273/ FD5B : 6F LD L,A |
3310/ FD4F : E5 DEC22: PUSH HL | 3274/ FD5C : D1 POP DE |
3311/ FD50 : D5 PUSH DE | 3275/ FD5D : C1 POP BC |
3312/ FD51 : ;ZEILE DECODIEREN | 3276/ FD5E : C0 RET NZ |
3313/ FD51 : 5A LD E,D | 3277/ FD5F : ;SPALTE DECODIEREN |
3314/ FD52 : 0E 08 LD C,8 | 3278/ FD5F : C5 PUSH BC |
3315/ FD54 : CD 81 FE CALL M0 | 3279/ FD60 : 0E 01 LD C,1 |
3316/ FD57 : 67 LD H,A | 3280/ FD62 : AF XOR A |
3317/ FD58 : CD 89 FE CALL M2 | 3281/ FD63 : CD 83 FE CALL M01 |
3318/ FD5B : 6F LD L,A | 3282/ FD66 : F5 PUSH AF |
3319/ FD5C : D1 POP DE | 3283/ FD67 : 84 ADD A, H |
3320/ FD5D : C1 POP BC | 3284/ FD68 : 67 LD H,A |
3321/ FD5E : C0 RET NZ | 3285/ FD69 : F1 POP AF |
3322/ FD5F : ;SPALTE DECODIEREN | 3286/ FD6A : 85 ADD A, L |
3323/ FD5F : C5 PUSH BC | 3287/ FD6B : BF CP A, A |
3324/ FD60 : 0E 01 LD C,1 | 3288/ FD6C : CD 89 FE CALL M2 |
3325/ FD62 : AF XOR A | 3289/ FD6F : 6F LD L,A |
3326/ FD63 : CD 83 FE CALL M01 | 3290/ FD70 : C1 POP BC |
3327/ FD66 : F5 PUSH AF | 3291/ FD71 : C0 RET NZ |
3328/ FD67 : 84 ADD A, H | 3292/ FD72 : ; |
3329/ FD68 : 67 LD H,A | 3293/ FD72 : DB 88 IN A, DPIO1A ;BIT FUER GRAFIK HOLEN (LED) |
3330/ FD69 : F1 POP AF | 3294/ FD74 : 5F LD E,A |
3331/ FD6A : 85 ADD A, L | 3295/ FD75 : 7D LD A,L |
3332/ FD6B : BF CP A, A | 3296/ FD76 : FE 48 CP A, 72 |
3333/ FD6C : CD 89 FE CALL M2 | 3297/ FD78 : 28 6E JR Z, EINET ;EINZELTASTE |
3334/ FD6F : 6F LD L,A | 3298/ FD7A : FE 41 CP A, 65 |
3335/ FD70 : C1 POP BC | 3299/ FD7C : 28 06 JR Z, SHT0 |
3336/ FD71 : C0 RET NZ | 3300/ FD7E : FE 46 CP A, 70 |
3337/ FD72 : ; | 3301/ FD80 : 20 0D JR NZ, SHT1 |
3338/ FD72 : DB 88 IN A, DPIO1A ;BIT FUER GRAFIK HOLEN (LED) | 3302/ FD82 : 3E A9 LD A,7DH+44 ;INTERNER CODE SHIFT LOCK + 44 |
3339/ FD74 : 5F LD E,A | 3303/ FD84 : ; |
3340/ FD75 : 7D LD A,L | 3304/ FD84 : D6 2C SHT0: SUB 44 |
3341/ FD76 : FE 48 CP A, 72 | 3305/ FD86 : 6F LD L,A |
3342/ FD78 : 28 6E JR Z, EINET ;EINZELTASTE | 3306/ FD87 : 7C LD A,H |
3343/ FD7A : FE 41 CP A, 65 | 3307/ FD88 : FE 38 CP A, 56 |
3344/ FD7C : 28 06 JR Z, SHT0 | 3308/ FD8A : C0 RET NZ |
3345/ FD7E : FE 46 CP A, 70 | 3309/ FD8B : 7D LD A,L |
AS V1.42 Beta [Bld 82] - source file os.asm - page 57 - 3/20/2012 20:42:07 | 3310/ FD8C : C3 38 FE JP ER1 |
| 3311/ FD8F : FE 40 SHT1: CP A, 64 |
| 3312/ FD91 : 28 6B JR Z, ZWEIT ;ZWEI TASTEN |
3346/ FD80 : 20 0D JR NZ, SHT1 | 3313/ FD93 : D0 RET NC |
3347/ FD82 : 3E A9 LD A,7DH+44 ;INTERNER CODE SHIFT LOCK + 44 | 3314/ FD94 : D6 39 SUB 57 |
3348/ FD84 : ; | 3315/ FD96 : D8 RET C |
3349/ FD84 : D6 2C SHT0: SUB 44 | 3316/ FD97 : 84 ADD A, H |
3350/ FD86 : 6F LD L,A | 3317/ FD98 : CB 78 BIT 7,B |
3351/ FD87 : 7C LD A,H | 3318/ FD9A : 28 2D JR Z, CONTT ;CONTROLTASTE |
3352/ FD88 : FE 38 CP A, 56 | 3319/ FD9C : 01 90 00 LD BC,90H ;B=0, C=DPIO1A |
3353/ FD8A : C0 RET NZ | 3320/ FD9F : 26 05 LD H,00000101B |
3354/ FD8B : 7D LD A,L | 3321/ FDA1 : ED 61 OUT (C), H |
3355/ FD8C : C3 38 FE JP ER1 | 3322/ FDA3 : 0C INC C |
3356/ FD8F : FE 40 SHT1: CP A, 64 | 3323/ FDA4 : ED 60 IN H, (C) |
3357/ FD91 : 28 6B JR Z, ZWEIT ;ZWEI TASTEN | 3324/ FDA6 : 0D DEC C |
3358/ FD93 : D0 RET NC | 3325/ FDA7 : ED 41 OUT (C), B |
3359/ FD94 : D6 39 SUB 57 | 3326/ FDA9 : CB 7C BIT 7,H |
3360/ FD96 : D8 RET C | 3327/ FDAB : C8 RET Z |
3361/ FD97 : 84 ADD A, H | 3328/ FDAC : 3C INC A |
3362/ FD98 : CB 78 BIT 7,B | 3329/ FDAD : FE 0C SHT2: CP A, 12 |
3363/ FD9A : 28 2D JR Z, CONTT ;CONTROLTASTE | 3330/ FDAF : 38 64 JR C, UCO20 |
3364/ FD9C : 01 90 00 LD BC,90H ;B=0, C=DPIO1A | 3331/ FDB1 : 28 60 JR Z, UCO30 |
3365/ FD9F : 26 05 LD H,00000101B | 3332/ FDB3 : FE 0E CP A, 14 |
3366/ FDA1 : ED 61 OUT (C), H | 3333/ FDB5 : 38 5E JR C, UCO20 |
3367/ FDA3 : 0C INC C | 3334/ FDB7 : 28 5A JR Z, UCO30 |
3368/ FDA4 : ED 60 IN H, (C) | 3335/ FDB9 : FE 0F CP A, 15 |
3369/ FDA6 : 0D DEC C | 3336/ FDBB : 28 58 JR Z, UCO20 |
3370/ FDA7 : ED 41 OUT (C), B | 3337/ FDBD : D6 2B SUB 43 |
3371/ FDA9 : CB 7C BIT 7,H | 3338/ FDBF : 38 4E JR C, UCO93 |
3372/ FDAB : C8 RET Z | 3339/ FDC1 : FE 0D CP A, 13 |
3373/ FDAC : 3C INC A | 3340/ FDC3 : D0 RET NC |
3374/ FDAD : FE 0C SHT2: CP A, 12 | 3341/ FDC4 : 21 33 FB LD HL,TAB1 ;SONDERTASTEN + SHIFT |
3375/ FDAF : 38 64 JR C, UCO20 | 3342/ FDC7 : 18 55 JR UCOTA |
3376/ FDB1 : 28 60 JR Z, UCO30 | 3343/ FDC9 : ; |
3377/ FDB3 : FE 0E CP A, 14 | 3344/ FDC9 : 3D CONTT: DEC A ;TASTE + CONTROL |
3378/ FDB5 : 38 5E JR C, UCO20 | 3345/ FDCA : D6 0A CONT2: SUB 10 |
3379/ FDB7 : 28 5A JR Z, UCO30 | 3346/ FDCC : D8 RET C |
3380/ FDB9 : FE 0F CP A, 15 | 3347/ FDCD : D6 06 SUB 6 |
3381/ FDBB : 28 58 JR Z, UCO20 | 3348/ FDCF : C8 RET Z |
3382/ FDBD : D6 2B SUB 43 | 3349/ FDD0 : 30 0D JR NC, CONT3 |
3383/ FDBF : 38 4E JR C, UCO93 | 3350/ FDD2 : FE FA CP A, 0FAH |
3384/ FDC1 : FE 0D CP A, 13 | 3351/ FDD4 : 20 02 JR NZ, COT22 |
3385/ FDC3 : D0 RET NC | 3352/ FDD6 : D6 1F SUB 1FH |
3386/ FDC4 : 21 33 FB LD HL,TAB1 ;SONDERTASTEN + SHIFT | 3353/ FDD8 : CB 73 COT22: BIT 6,E ;GRAFIK-MODE? |
3387/ FDC7 : 18 55 JR UCOTA | 3354/ FDDA : C8 RET Z |
3388/ FDC9 : ; | 3355/ FDDB : D6 80 SUB 80H |
3389/ FDC9 : 3D CONTT: DEC A ;TASTE + CONTROL | 3356/ FDDD : 18 38 JR ENDE |
3390/ FDCA : D6 0A CONT2: SUB 10 | 3357/ FDDF : FE 1B CONT3: CP A, 27 |
3391/ FDCC : D8 RET C | 3358/ FDE1 : 38 34 JR C, ENDE |
3392/ FDCD : D6 06 SUB 6 | 3359/ FDE3 : FE 1E CP A, 30 |
3393/ FDCF : C8 RET Z | 3360/ FDE5 : C0 RET NZ |
3394/ FDD0 : 30 0D JR NC, CONT3 | 3361/ FDE6 : 18 2F CONT4: JR ENDE |
3395/ FDD2 : FE FA CP A, 0FAH | 3362/ FDE8 : ; |
3396/ FDD4 : 20 02 JR NZ, COT22 | 3363/ FDE8 : 7C EINET: LD A,H ;EINZELTASTE |
3397/ FDD6 : D6 1F SUB 1FH | 3364/ FDE9 : FE 0C CP A, 12 |
3398/ FDD8 : CB 73 COT22: BIT 6,E ;GRAFIK-MODE? | 3365/ FDEB : 38 26 JR C, UCO30 |
3399/ FDDA : C8 RET Z | 3366/ FDED : 28 26 JR Z, UCO20 |
3400/ FDDB : D6 80 SUB 80H | 3367/ FDEF : FE 0E CP A, 14 |
3401/ FDDD : 18 38 JR ENDE | 3368/ FDF1 : 38 20 JR C, UCO30 |
3402/ FDDF : FE 1B CONT3: CP A, 27 | 3369/ FDF3 : 28 20 JR Z, UCO20 |
3403/ FDE1 : 38 34 JR C, ENDE | 3370/ FDF5 : D6 2B SUB 43 |
3404/ FDE3 : FE 1E CP A, 30 | 3371/ FDF7 : 38 18 JR C, UCO73 |
3405/ FDE5 : C0 RET NZ | 3372/ FDF9 : 21 40 FB LD HL,TAB2 ;SONDERTASTEN |
AS V1.42 Beta [Bld 82] - source file os.asm - page 58 - 3/20/2012 20:42:07 | 3373/ FDFC : 18 20 JR UCOTA |
| 3374/ FDFE : ; |
| 3375/ FDFE : 78 ZWEIT: LD A,B ;ZWEI TASTEN BETAETIGT |
3406/ FDE6 : 18 2F CONT4: JR ENDE | 3376/ FDFF : A9 XOR C |
3407/ FDE8 : ; | 3377/ FE00 : BA CP A, D |
3408/ FDE8 : 7C EINET: LD A,H ;EINZELTASTE | 3378/ FE01 : C0 RET NZ |
3409/ FDE9 : FE 0C CP A, 12 | 3379/ FE02 : 3E 03 LD A,3 |
3410/ FDEB : 38 26 JR C, UCO30 | 3380/ FE04 : A4 AND A, H |
3411/ FDED : 28 26 JR Z, UCO20 | 3381/ FE05 : 7C LD A,H |
3412/ FDEF : FE 0E CP A, 14 | 3382/ FE06 : 20 C2 JR NZ, CONT2 |
3413/ FDF1 : 38 20 JR C, UCO30 | 3383/ FE08 : B7 OR A |
3414/ FDF3 : 28 20 JR Z, UCO20 | 3384/ FE09 : 20 A2 JR NZ, SHT2 |
3415/ FDF5 : D6 2B SUB 43 | 3385/ FE0B : 3E 5F LD A,'_' |
3416/ FDF7 : 38 18 JR C, UCO73 | 3386/ FE0D : 18 08 JR ENDE |
3417/ FDF9 : 21 40 FB LD HL,TAB2 ;SONDERTASTEN | 3387/ FE0F : ;BERECHNEN CODES ALPHA-NUM.-ZEICHEN |
3418/ FDFC : 18 20 JR UCOTA | 3388/ FE0F : C6 20 UCO93: ADD A, 20H |
3419/ FDFE : ; | 3389/ FE11 : C6 2B UCO73: ADD A, 2BH |
3420/ FDFE : 78 ZWEIT: LD A,B ;ZWEI TASTEN BETAETIGT | 3390/ FE13 : C6 10 UCO30: ADD A, 10H |
3421/ FDFF : A9 XOR C | 3391/ FE15 : C6 20 UCO20: ADD A, 20H |
3422/ FE00 : BA CP A, D | 3392/ FE17 : CB 73 ENDE: BIT 6,E ;GRAFIK-MODE? |
3423/ FE01 : C0 RET NZ | 3393/ FE19 : 28 1D JR Z, ER1 |
3424/ FE02 : 3E 03 LD A,3 | 3394/ FE1B : 21 53 FB LD HL,TABG-1 ;GRAFIK-CODES |
3425/ FE04 : A4 AND A, H | 3395/ FE1E : 06 00 UCOTA: LD B,0 |
3426/ FE05 : 7C LD A,H | 3396/ FE20 : 4F LD C,A ;TABELLENOFFSET |
3427/ FE06 : 20 C2 JR NZ, CONT2 | 3397/ FE21 : 09 ADD HL,BC |
3428/ FE08 : B7 OR A | 3398/ FE22 : 7E LD A,(HL) |
3429/ FE09 : 20 A2 JR NZ, SHT2 | 3399/ FE23 : FE 5E CP A, '^' |
3430/ FE0B : 3E 5F LD A,'_' | 3400/ FE25 : 28 F0 JR Z, ENDE |
3431/ FE0D : 18 08 JR ENDE | 3401/ FE27 : FE 5D CP A, 5DH |
3432/ FE0F : ;BERECHNEN CODES ALPHA-NUM.-ZEICHEN | 3402/ FE29 : 28 EC JR Z, ENDE |
3433/ FE0F : C6 20 UCO93: ADD A, 20H | 3403/ FE2B : B7 OR A |
3434/ FE11 : C6 2B UCO73: ADD A, 2BH | 3404/ FE2C : E1 POP HL |
3435/ FE13 : C6 10 UCO30: ADD A, 10H | 3405/ FE2D : 20 0A JR NZ, ER2 ;GUELTIGER CODE |
3436/ FE15 : C6 20 UCO20: ADD A, 20H | 3406/ FE2F : 3E 7F LD A,7FH |
3437/ FE17 : CB 73 ENDE: BIT 6,E ;GRAFIK-MODE? | 3407/ FE31 : 32 24 00 LD (LAKEY),A ;LOESCHEN |
3438/ FE19 : 28 1D JR Z, ER1 | 3408/ FE34 : 3E 0A LD A,10 |
3439/ FE1B : 21 53 FB LD HL,TABG-1 ;GRAFIK-CODES | 3409/ FE36 : 18 43 JR ERDC2 |
3440/ FE1E : 06 00 UCOTA: LD B,0 | 3410/ FE38 : E1 ER1: POP HL |
3441/ FE20 : 4F LD C,A ;TABELLENOFFSET | 3411/ FE39 : FE 7E ER2: CP A, 7EH ;INTERNER CODE GRAFIK |
3442/ FE21 : 09 ADD HL,BC | 3412/ FE3B : 20 0D JR NZ, ER22 |
3443/ FE22 : 7E LD A,(HL) | 3413/ FE3D : 7B LD A,E |
3444/ FE23 : FE 5E CP A, '^' | 3414/ FE3E : EE 40 XOR 40H ;GRAFIK-LED EIN/AUS |
3445/ FE25 : 28 F0 JR Z, ENDE | 3415/ FE40 : D3 88 OUT DPIO1A, A |
3446/ FE27 : FE 5D CP A, 5DH | 3416/ FE42 : AF ER21: XOR A |
3447/ FE29 : 28 EC JR Z, ENDE | 3417/ FE43 : 32 24 00 LD (LAKEY),A ;WAR NUR INTERNE CODIERUNG |
3448/ FE2B : B7 OR A | 3418/ FE46 : 3E 28 LD A,40 ;LANGE REPEATPAUSE |
3449/ FE2C : E1 POP HL | 3419/ FE48 : 18 31 JR ERDC2 |
3450/ FE2D : 20 0A JR NZ, ER2 ;GUELTIGER CODE | 3420/ FE4A : FE 7D ER22: CP A, 7DH ;INTERNER CODE SHIFT LOCK |
3451/ FE2F : 3E 7F LD A,7FH | 3421/ FE4C : 20 0A JR NZ, ER3 |
3452/ FE31 : 32 24 00 LD (LAKEY),A ;LOESCHEN | 3422/ FE4E : 3A 26 00 LD A,(SHLOC) |
3453/ FE34 : 3E 0A LD A,10 | 3423/ FE51 : EE 01 XOR 1 ;SHIFT LOCK EIN/AUS |
3454/ FE36 : 18 43 JR ERDC2 | 3424/ FE53 : 32 26 00 LD (SHLOC),A |
3455/ FE38 : E1 ER1: POP HL | 3425/ FE56 : 18 EA JR ER21 |
3456/ FE39 : FE 7E ER2: CP A, 7EH ;INTERNER CODE GRAFIK | 3426/ FE58 : C1 ER3: POP BC |
3457/ FE3B : 20 0D JR NZ, ER22 | 3427/ FE59 : D1 POP DE |
3458/ FE3D : 7B LD A,E | 3428/ FE5A : E1 POP HL |
3459/ FE3E : EE 40 XOR 40H ;GRAFIK-LED EIN/AUS | 3429/ FE5B : FE 5D CP A, 5DH |
3460/ FE40 : D3 88 OUT DPIO1A, A | 3430/ FE5D : 28 06 JR Z, ER4 |
3461/ FE42 : AF ER21: XOR A | 3431/ FE5F : FE 60 CP A, 60H |
3462/ FE43 : 32 24 00 LD (LAKEY),A ;WAR NUR INTERNE CODIERUNG | 3432/ FE61 : 20 03 JR NZ, ER5 |
3463/ FE46 : 3E 28 LD A,40 ;LANGE REPEATPAUSE | 3433/ FE63 : D6 21 SUB 21H |
3464/ FE48 : 18 31 JR ERDC2 | 3434/ FE65 : 3C ER4: INC A |
3465/ FE4A : FE 7D ER22: CP A, 7DH ;INTERNER CODE SHIFT LOCK | 3435/ FE66 : B7 ER5: OR A |
AS V1.42 Beta [Bld 82] - source file os.asm - page 59 - 3/20/2012 20:42:07 | 3436/ FE67 : C9 RET |
| 3437/ FE68 : ;DEKODIERUNGSFEHLER |
| 3438/ FE68 : 3E 83 ERDEC: LD A,83H ;PIO UND CTC NEU INIT. |
3466/ FE4C : 20 0A JR NZ, ER3 | 3439/ FE6A : D3 93 OUT SPIOB, A |
3467/ FE4E : 3A 26 00 LD A,(SHLOC) | 3440/ FE6C : AF XOR A |
3468/ FE51 : EE 01 XOR 1 ;SHIFT LOCK EIN/AUS | 3441/ FE6D : D3 90 OUT DPIOA, A |
3469/ FE53 : 32 26 00 LD (SHLOC),A | 3442/ FE6F : 3E 25 LD A,25H |
3470/ FE56 : 18 EA JR ER21 | 3443/ FE71 : D3 82 OUT CTC2, A |
3471/ FE58 : C1 ER3: POP BC | 3444/ FE73 : 3E 96 LD A,96H |
3472/ FE59 : D1 POP DE | 3445/ FE75 : D3 82 OUT CTC2, A |
3473/ FE5A : E1 POP HL | 3446/ FE77 : AF XOR A |
3474/ FE5B : FE 5D CP A, 5DH | 3447/ FE78 : 32 24 00 LD (LAKEY),A |
3475/ FE5D : 28 06 JR Z, ER4 | 3448/ FE7B : 32 23 00 ERDC2: LD (COUNT),A |
3476/ FE5F : FE 60 CP A, 60H | 3449/ FE7E : AF XOR A |
3477/ FE61 : 20 03 JR NZ, ER5 | 3450/ FE7F : 18 D7 JR ER3 |
3478/ FE63 : D6 21 SUB 21H | 3451/ FE81 : ; |
3479/ FE65 : 3C ER4: INC A | 3452/ FE81 : 3E F7 M0: LD A,-9 |
3480/ FE66 : B7 ER5: OR A | 3453/ FE83 : 06 08 M01: LD B,8 |
3481/ FE67 : C9 RET | 3454/ FE85 : 81 M1: ADD A, C |
3482/ FE68 : ;DEKODIERUNGSFEHLER | 3455/ FE86 : CB 3B SRL E |
3483/ FE68 : 3E 83 ERDEC: LD A,83H ;PIO UND CTC NEU INIT. | 3456/ FE88 : D8 RET C |
3484/ FE6A : D3 93 OUT SPIOB, A | 3457/ FE89 : 10 FA M2: DJNZ M1 |
3485/ FE6C : AF XOR A | 3458/ FE8B : C0 RET NZ |
3486/ FE6D : D3 90 OUT DPIOA, A | 3459/ FE8C : 81 ADD A, C |
3487/ FE6F : 3E 25 LD A,25H | 3460/ FE8D : BF CP A, A |
3488/ FE71 : D3 82 OUT CTC2, A | 3461/ FE8E : C9 RET |
3489/ FE73 : 3E 96 LD A,96H | 3462/ FE8F : |
3490/ FE75 : D3 82 OUT CTC2, A | 3463/ FE8F : =>FALSE ELSE ; tastneu = 1 |
3491/ FE77 : AF XOR A | 3464/ FE8F : |
3492/ FE78 : 32 24 00 LD (LAKEY),A | 3465/ FE8F : ; |
3493/ FE7B : 32 23 00 ERDC2: LD (COUNT),A | 3466/ FE8F : ;DECODIEREN DER TASTATURMATRIX |
3494/ FE7E : AF XOR A | 3467/ FE8F : DECO: LD A, (HL) ;(HL)=ADR. LAKEY |
3495/ FE7F : 18 D7 JR ER3 | 3468/ FE8F : OR A |
3496/ FE81 : ; | 3469/ FE8F : RET Z |
3497/ FE81 : 3E F7 M0: LD A,-9 | 3470/ FE8F : DECO0: PUSH HL |
3498/ FE83 : 06 08 M01: LD B,8 | 3471/ FE8F : PUSH DE |
3499/ FE85 : 81 M1: ADD A, C | 3472/ FE8F : PUSH BC |
3500/ FE86 : CB 3B SRL E | 3473/ FE8F : LD HL, ERDEC ;DECODIERFEHLER_NEU |
3501/ FE88 : D8 RET C | 3474/ FE8F : PUSH HL ;ADR. FUER ENDEBEHANDLUNG |
3502/ FE89 : 10 FA M2: DJNZ M1 | 3475/ FE8F : CALL GPIOD ;LESEN TASTATUR-PIO |
3503/ FE8B : C0 RET NZ | 3476/ FE8F : DEC2: LD A, D ;D=Zeile |
3504/ FE8C : 81 ADD A, C | 3477/ FE8F : OR A |
3505/ FE8D : BF CP A, A | 3478/ FE8F : RET Z ;KEIN KONTAKT IN MATRIXZEILE |
3506/ FE8E : C9 RET | 3479/ FE8F : LD A, E ;E=Spalte |
3507/ FE8F : | 3480/ FE8F : OR A |
3508/ FE8F : =>FALSE ELSE ; tastneu = 1 | 3481/ FE8F : RET Z ;KEIN KONTAKT IN MATRIXSPALTE |
3509/ FE8F : | 3482/ FE8F : LD A, H ;H=Control-Taste |
3510/ FE8F : ; | 3483/ FE8F : AND 80H |
3511/ FE8F : ;DECODIEREN DER TASTATURMATRIX | 3484/ FE8F : LD H, 0C0H |
3512/ FE8F : DECO: LD A, (HL) ;(HL)=ADR. LAKEY | 3485/ FE8F : LD B, 0FBH |
3513/ FE8F : OR A | 3486/ FE8F : CALL MFDE0 |
3514/ FE8F : RET Z | 3487/ FE8F : JR Z, DEC3 |
3515/ FE8F : DECO0: PUSH HL | 3488/ FE8F : LD A, L |
3516/ FE8F : PUSH DE | 3489/ FE8F : AND 80H |
3517/ FE8F : PUSH BC | 3490/ FE8F : LD H, 20H |
3518/ FE8F : LD HL, ERDEC ;DECODIERFEHLER_NEU | 3491/ FE8F : LD B, 0FEH |
3519/ FE8F : PUSH HL ;ADR. FUER ENDEBEHANDLUNG | 3492/ FE8F : CALL MFDE0 |
3520/ FE8F : CALL GPIOD ;LESEN TASTATUR-PIO | 3493/ FE8F : JR Z, DEC3 |
3521/ FE8F : DEC2: LD A, D ;D=Zeile | 3494/ FE8F : if shlocFlg |
3522/ FE8F : OR A | 3495/ FE8F : ld a,(SHLOC) |
3523/ FE8F : RET Z ;KEIN KONTAKT IN MATRIXZEILE | 3496/ FE8F : else |
3524/ FE8F : LD A, E ;E=Spalte | 3497/ FE8F : IN A, (DPIO1A) |
3525/ FE8F : OR A | 3498/ FE8F : [3494] endif |
AS V1.42 Beta [Bld 82] - source file os.asm - page 60 - 3/20/2012 20:42:07 | 3499/ FE8F : AND 1 |
| 3500/ FE8F : LD H, 20H |
| 3501/ FE8F : JR NZ, DEC3 |
3526/ FE8F : RET Z ;KEIN KONTAKT IN MATRIXSPALTE | 3502/ FE8F : LD H, 0 |
3527/ FE8F : LD A, H ;H=Control-Taste | 3503/ FE8F : DEC3: LD A, H |
3528/ FE8F : AND 80H | 3504/ FE8F : OR A |
3529/ FE8F : LD H, 0C0H | 3505/ FE8F : JR Z, DEC4 |
3530/ FE8F : LD B, 0FBH | 3506/ FE8F : LD A, D |
3531/ FE8F : CALL MFDE0 | 3507/ FE8F : AND 7FH |
3532/ FE8F : JR Z, DEC3 | 3508/ FE8F : JR Z, DEC4 |
3533/ FE8F : LD A, L | 3509/ FE8F : LD D, A |
3534/ FE8F : AND 80H | 3510/ FE8F : DEC4: XOR A |
3535/ FE8F : LD H, 20H | 3511/ FE8F : LD C, 8 |
3536/ FE8F : LD B, 0FEH | 3512/ FE8F : CALL MFDE9 |
3537/ FE8F : CALL MFDE0 | 3513/ FE8F : RET NZ |
3538/ FE8F : JR Z, DEC3 | 3514/ FE8F : RET NC |
3539/ FE8F : if shlocFlg | 3515/ FE8F : SUB C |
3540/ FE8F : ld a,(SHLOC) | 3516/ FE8F : LD C, 1 |
3541/ FE8F : else | 3517/ FE8F : LD E, D |
3542/ FE8F : IN A, (DPIO1A) | 3518/ FE8F : CALL MFDE9 |
3543/ FE8F : [3539] endif | 3519/ FE8F : RET NZ |
3544/ FE8F : AND 1 | 3520/ FE8F : RET NC |
3545/ FE8F : LD H, 20H | 3521/ FE8F : SUB C |
3546/ FE8F : JR NZ, DEC3 | 3522/ FE8F : LD C, H |
3547/ FE8F : LD H, 0 | 3523/ FE8F : LD HL, TAB1 ;TABELLE FUER ALLE TASTEN |
3548/ FE8F : DEC3: LD A, H | 3524/ FE8F : LD D, 0 |
3549/ FE8F : OR A | 3525/ FE8F : LD E, A |
3550/ FE8F : JR Z, DEC4 | 3526/ FE8F : ADD HL, DE |
3551/ FE8F : LD A, D | 3527/ FE8F : LD A, (HL) |
3552/ FE8F : AND 7FH | 3528/ FE8F : CP 40H |
3553/ FE8F : JR Z, DEC4 | 3529/ FE8F : JR C, MFD9F ;wenn Sondertaste |
3554/ FE8F : LD D, A | 3530/ FE8F : ADD A, C |
3555/ FE8F : DEC4: XOR A | 3531/ FE8F : DEC5: LD B, A |
3556/ FE8F : LD C, 8 | 3532/ FE8F : IN A, (DPIO1A) |
3557/ FE8F : CALL MFDE9 | 3533/ FE8F : AND 40H ;Grafikmodus? |
3558/ FE8F : RET NZ | 3534/ FE8F : JR Z, DEC6 |
3559/ FE8F : RET NC | 3535/ FE8F : SET 7, B ;dann Bit 7 setzen |
3560/ FE8F : SUB C | 3536/ FE8F : DEC6: LD A, B |
3561/ FE8F : LD C, 1 | 3537/ FE8F : DEC7: POP BC |
3562/ FE8F : LD E, D | 3538/ FE8F : DEC8: POP BC |
3563/ FE8F : CALL MFDE9 | 3539/ FE8F : POP DE |
3564/ FE8F : RET NZ | 3540/ FE8F : POP HL |
3565/ FE8F : RET NC | 3541/ FE8F : OR A |
3566/ FE8F : SUB C | 3542/ FE8F : RET |
3567/ FE8F : LD C, H | 3543/ FE8F : ; Sondertasten |
3568/ FE8F : LD HL, TAB1 ;TABELLE FUER ALLE TASTEN | 3544/ FE8F : MFD9F: BIT 7, C |
3569/ FE8F : LD D, 0 | 3545/ FE8F : RET NZ |
3570/ FE8F : LD E, A | 3546/ FE8F : OR A |
3571/ FE8F : ADD HL, DE | 3547/ FE8F : RET Z |
3572/ FE8F : LD A, (HL) | 3548/ FE8F : CP 3 ;STOPTASTE? |
3573/ FE8F : CP 40H | 3549/ FE8F : JR Z, MFDB2 |
3574/ FE8F : JR C, MFD9F ;wenn Sondertaste | 3550/ FE8F : CP 10H ;SHIFT LOCK? |
3575/ FE8F : ADD A, C | 3551/ FE8F : JR Z, MFDC9 |
3576/ FE8F : DEC5: LD B, A | 3552/ FE8F : JR C, DEC7 |
3577/ FE8F : IN A, (DPIO1A) | 3553/ FE8F : CP 11H ;GRAFIK? |
3578/ FE8F : AND 40H ;Grafikmodus? | 3554/ FE8F : JR Z, MFDD8 |
3579/ FE8F : JR Z, DEC6 | 3555/ FE8F : ; |
3580/ FE8F : SET 7, B ;dann Bit 7 setzen | 3556/ FE8F : MFDB2: BIT 5, C |
3581/ FE8F : DEC6: LD A, B | 3557/ FE8F : JR Z, MFDC3 |
3582/ FE8F : DEC7: POP BC | 3558/ FE8F : LD HL, TAB2 ;TABELLE DER SONDERTASTEN |
3583/ FE8F : DEC8: POP BC | 3559/ FE8F : LD BC, 24 ;ANZAHL DER SONDERTASTEN |
3584/ FE8F : POP DE | 3560/ FE8F : CPIR |
3585/ FE8F : POP HL | 3561/ FE8F : RET NZ |
AS V1.42 Beta [Bld 82] - source file os.asm - page 61 - 3/20/2012 20:42:07 | 3562/ FE8F : LD C, 23 ;ANZAHL DER SONDERTASTEN - 1 |
| 3563/ FE8F : ADD HL, BC |
| 3564/ FE8F : LD A, (HL) |
3586/ FE8F : OR A | 3565/ FE8F : MFDC3: CP 1AH |
3587/ FE8F : RET | 3566/ FE8F : JR C, DEC7 |
3588/ FE8F : ; Sondertasten | 3567/ FE8F : JR DEC5 |
3589/ FE8F : MFD9F: BIT 7, C | 3568/ FE8F : ;SHIFT LOCK |
3590/ FE8F : RET NZ | 3569/ FE8F : MFDC9: if shlocFlg |
3591/ FE8F : OR A | 3570/ FE8F : ld hl, SHLOC |
3592/ FE8F : RET Z | 3571/ FE8F : ld a, (hl) |
3593/ FE8F : CP 3 ;STOPTASTE? | 3572/ FE8F : xor 1 |
3594/ FE8F : JR Z, MFDB2 | 3573/ FE8F : ld (hl), a |
3595/ FE8F : CP 10H ;SHIFT LOCK? | 3574/ FE8F : else |
3596/ FE8F : JR Z, MFDC9 | 3575/ FE8F : IN A, (DPIO1A) |
3597/ FE8F : JR C, DEC7 | 3576/ FE8F : XOR 1 |
3598/ FE8F : CP 11H ;GRAFIK? | 3577/ FE8F : OUT (DPIO1A), A |
3599/ FE8F : JR Z, MFDD8 | 3578/ FE8F : [3569] endif |
3600/ FE8F : ; | 3579/ FE8F : ER21: XOR A |
3601/ FE8F : MFDB2: BIT 5, C | 3580/ FE8F : LD (LAKEY), A ;WAR NUR INTERNE CODIERUNG |
3602/ FE8F : JR Z, MFDC3 | 3581/ FE8F : LD A, 40 ;LANGE REPEATPAUSE |
3603/ FE8F : LD HL, TAB2 ;TABELLE DER SONDERTASTEN | 3582/ FE8F : POP BC |
3604/ FE8F : LD BC, 24 ;ANZAHL DER SONDERTASTEN | 3583/ FE8F : JR ERDC2 |
3605/ FE8F : CPIR | 3584/ FE8F : ;GRAFIK |
3606/ FE8F : RET NZ | 3585/ FE8F : MFDD8: IN A, (DPIO1A) ;GRAFIK-LED EIN/AUS |
3607/ FE8F : LD C, 23 ;ANZAHL DER SONDERTASTEN - 1 | 3586/ FE8F : XOR 40H |
3608/ FE8F : ADD HL, BC | 3587/ FE8F : OUT (DPIO1A), A |
3609/ FE8F : LD A, (HL) | 3588/ FE8F : JR ER21 |
3610/ FE8F : MFDC3: CP 1AH | 3589/ FE8F : ; |
3611/ FE8F : JR C, DEC7 | 3590/ FE8F : MFDE0: RET NZ |
3612/ FE8F : JR DEC5 | 3591/ FE8F : PUSH AF |
3613/ FE8F : ;SHIFT LOCK | 3592/ FE8F : LD A, E |
3614/ FE8F : MFDC9: if shlocFlg | 3593/ FE8F : AND B |
3615/ FE8F : ld hl, SHLOC | 3594/ FE8F : JR Z, MFDE7 |
3616/ FE8F : ld a, (hl) | 3595/ FE8F : LD E, A |
3617/ FE8F : xor 1 | 3596/ FE8F : MFDE7: POP AF |
3618/ FE8F : ld (hl), a | 3597/ FE8F : RET |
3619/ FE8F : else | 3598/ FE8F : ; |
3620/ FE8F : IN A, (DPIO1A) | 3599/ FE8F : MFDE9: LD B, 8 |
3621/ FE8F : XOR 1 | 3600/ FE8F : MFDEB: ADD A, C |
3622/ FE8F : OUT (DPIO1A), A | 3601/ FE8F : SRL E |
3623/ FE8F : [3614] endif | 3602/ FE8F : RET C |
3624/ FE8F : ER21: XOR A | 3603/ FE8F : DJNZ MFDEB |
3625/ FE8F : LD (LAKEY), A ;WAR NUR INTERNE CODIERUNG | 3604/ FE8F : RET |
3626/ FE8F : LD A, 40 ;LANGE REPEATPAUSE | 3605/ FE8F : ; DEKODIERUNGSFEHLER |
3627/ FE8F : POP BC | 3606/ FE8F : ERDEC: LD A, 83H ;PIO UND CTC NEU INIT |
3628/ FE8F : JR ERDC2 | 3607/ FE8F : OUT (SPIOB), A |
3629/ FE8F : ;GRAFIK | 3608/ FE8F : XOR A |
3630/ FE8F : MFDD8: IN A, (DPIO1A) ;GRAFIK-LED EIN/AUS | 3609/ FE8F : OUT (DPIOA), A |
3631/ FE8F : XOR 40H | 3610/ FE8F : LD A, 25H |
3632/ FE8F : OUT (DPIO1A), A | 3611/ FE8F : OUT (CTC2), A |
3633/ FE8F : JR ER21 | 3612/ FE8F : LD A, 96H |
3634/ FE8F : ; | 3613/ FE8F : OUT (CTC2), A |
3635/ FE8F : MFDE0: RET NZ | 3614/ FE8F : XOR A |
3636/ FE8F : PUSH AF | 3615/ FE8F : LD (LAKEY), A |
3637/ FE8F : LD A, E | 3616/ FE8F : ERDC2: LD (COUNT), A |
3638/ FE8F : AND B | 3617/ FE8F : XOR A |
3639/ FE8F : JR Z, MFDE7 | 3618/ FE8F : JR DEC8 |
3640/ FE8F : LD E, A | 3619/ FE8F : |
3641/ FE8F : MFDE7: POP AF | 3620/ FE8F : if rombank |
3642/ FE8F : RET | 3621/ FE8F : ; |
3643/ FE8F : ; | 3622/ FE8F : ;ROM-BANK-ROUTINE |
3644/ FE8F : MFDE9: LD B, 8 | 3623/ FE8F : ; |
3645/ FE8F : MFDEB: ADD A, C | 3624/ FE8F : ROMBK: JP NZ, CP1 ;EPROM-BANK |
AS V1.42 Beta [Bld 82] - source file os.asm - page 62 - 3/20/2012 20:42:07 | 3625/ FE8F : OUT (78H), A ;BANK SCHALTEN |
| 3626/ FE8F : LD A, (0EC27H) ;BILDSCHIRMZELLE (1. ZEILE, LETZTES ZEICHEN) |
| 3627/ FE8F : ;; INC A |
3646/ FE8F : SRL E | 3628/ FE8F : dec a |
3647/ FE8F : RET C | 3629/ FE8F : LD (0EC27H), A ;WERT ZURUECK |
3648/ FE8F : DJNZ MFDEB | 3630/ FE8F : JP NZ, CPROM ;SUCHEN KOMMANDO IM SPEICHER |
3649/ FE8F : RET | 3631/ FE8F : INC H |
3650/ FE8F : ; DEKODIERUNGSFEHLER | 3632/ FE8F : RET |
3651/ FE8F : ERDEC: LD A, 83H ;PIO UND CTC NEU INIT | 3633/ FE8F : |
3652/ FE8F : OUT (SPIOB), A | 3634/ FE8F : [3620] endif |
3653/ FE8F : XOR A | 3635/ FE8F : |
3654/ FE8F : OUT (DPIOA), A | 3636/ FE8F : if farb16 |
3655/ FE8F : LD A, 25H | 3637/ FE8F : |
3656/ FE8F : OUT (CTC2), A | 3638/ FE8F : ;CTRL-A, CTRL-D |
3657/ FE8F : LD A, 96H | 3639/ FE8F : CTRLAD: LD A, C |
3658/ FE8F : OUT (CTC2), A | 3640/ FE8F : DEC A ;PRUEFEN CTRL-A |
3659/ FE8F : XOR A | 3641/ FE8F : JR Z, UMZ ;JA, ZEICHENSATZ UMSCHALTEN |
3660/ FE8F : LD (LAKEY), A | 3642/ FE8F : SUB 3 ;PRUEFEN CTRL-D |
3661/ FE8F : ERDC2: LD (COUNT), A | 3643/ FE8F : JR Z, UMBL ;UMSCHALTEN INK/BLINK |
3662/ FE8F : XOR A | 3644/ FE8F : DEC A |
3663/ FE8F : JR DEC8 | 3645/ FE8F : JP MF8A1 ;ZURUECK ZU OCH1 |
3664/ FE8F : | 3646/ FE8F : |
3665/ FE8F : if rombank | 3647/ FE8F : UMBL: |
3666/ FE8F : ; | 3648/ FE8F : ;; OUT (70H), A ;SETZEN INK/BLINK-FLIPFLOP |
3667/ FE8F : ;ROM-BANK-ROUTINE | 3649/ FE8F : ;; LD A, (MAPAR+7) ;(FARBRAMZELLE) |
3668/ FE8F : ; | 3650/ FE8F : ;; BIT 5, A ;SCHWARZ-WEISS? |
3669/ FE8F : ROMBK: JP NZ, CP1 ;EPROM-BANK | 3651/ FE8F : ;; RES 5, A |
3670/ FE8F : OUT (78H), A ;BANK SCHALTEN | 3652/ FE8F : ;; JR NZ, ABSP ;FARBVARIANTE |
3671/ FE8F : LD A, (0EC27H) ;BILDSCHIRMZELLE (1. ZEILE, LETZTES ZEICHEN) | 3653/ FE8F : ;; SET 5, A ;LADEN FARBVARIANTE |
3672/ FE8F : ;; INC A | 3654/ FE8F : |
3673/ FE8F : dec a | 3655/ FE8F : in a, (DPIO1A) |
3674/ FE8F : LD (0EC27H), A ;WERT ZURUECK | 3656/ FE8F : xor 1 |
3675/ FE8F : JP NZ, CPROM ;SUCHEN KOMMANDO IM SPEICHER | 3657/ FE8F : out (DPIO1A), a |
3676/ FE8F : INC H | 3658/ FE8F : ld a, (0EFC8h) |
3677/ FE8F : RET | 3659/ FE8F : xor 20h ; Toggle Bit 5 |
3678/ FE8F : | 3660/ FE8F : |
3679/ FE8F : [3665] endif | 3661/ FE8F : ABSP: LD (MAPAR+7), A ;IN DIE FARBRAMZELLE |
3680/ FE8F : | 3662/ FE8F : LD A, (ATRIB) |
3681/ FE8F : if farb16 | 3663/ FE8F : RES 7, A |
3682/ FE8F : | 3664/ FE8F : LD (ATRIB), A |
3683/ FE8F : ;CTRL-A, CTRL-D | 3665/ FE8F : RET |
3684/ FE8F : CTRLAD: LD A, C | 3666/ FE8F : |
3685/ FE8F : DEC A ;PRUEFEN CTRL-A | 3667/ FE8F : ;;UMZ: OUT (74H), A ;UMSCHALTEN ZEICHENSATZ |
3686/ FE8F : JR Z, UMZ ;JA, ZEICHENSATZ UMSCHALTEN | 3668/ FE8F : UMZ: OUT (0BBH), A ;UMSCHALTEN ZEICHENSATZ |
3687/ FE8F : SUB 3 ;PRUEFEN CTRL-D | 3669/ FE8F : RET |
3688/ FE8F : JR Z, UMBL ;UMSCHALTEN INK/BLINK | 3670/ FE8F : [3636] endif |
3689/ FE8F : DEC A | 3671/ FE8F : |
3690/ FE8F : JP MF8A1 ;ZURUECK ZU OCH1 | 3672/ FE8F : if farb16 |
3691/ FE8F : | 3673/ FE8F : ; Unterstützung für 16 Farben, CRT-Treiber (Teil 2): |
3692/ FE8F : UMBL: | 3674/ FE8F : |
3693/ FE8F : ;; OUT (70H), A ;SETZEN INK/BLINK-FLIPFLOP | 3675/ FE8F : ; FARBBEHANDLUNG INK |
3694/ FE8F : ;; LD A, (MAPAR+7) ;(FARBRAMZELLE) | 3676/ FE8F : INK16: LD A, (MAPAR+7) ;FARBRAMZELLE |
3695/ FE8F : ;; BIT 5, A ;SCHWARZ-WEISS? | 3677/ FE8F : BIT 5, A ;FARBE? |
3696/ FE8F : ;; RES 5, A | 3678/ FE8F : JR Z, INKNEU |
3697/ FE8F : ;; JR NZ, ABSP ;FARBVARIANTE | 3679/ FE8F : BLINK_: LD B, 8FH ;ALTE MASKE |
3698/ FE8F : ;; SET 5, A ;LADEN FARBVARIANTE | 3680/ FE8F : LD A, E |
3699/ FE8F : | 3681/ FE8F : RET |
3700/ FE8F : in a, (DPIO1A) | 3682/ FE8F : INKNEU: LD B, 0FH ;NEUE MASKE |
3701/ FE8F : xor 1 | 3683/ FE8F : LD A, E |
3702/ FE8F : out (DPIO1A), a | 3684/ FE8F : RET |
3703/ FE8F : ld a, (0EFC8h) | 3685/ FE8F : ; FARBBEHANDLUNG BORDER |
3704/ FE8F : xor 20h ; Toggle Bit 5 | 3686/ FE8F : BORD: LD B, 0C5H ;NEUE MASKE |
3705/ FE8F : | 3687/ FE8F : SLA C |
AS V1.42 Beta [Bld 82] - source file os.asm - page 63 - 3/20/2012 20:42:07 | 3688/ FE8F : SLA C |
| 3689/ FE8F : SLA C |
| 3690/ FE8F : BIT 6, C ;PRUEFEN NEUE FARBE |
3706/ FE8F : ABSP: LD (MAPAR+7), A ;IN DIE FARBRAMZELLE | 3691/ FE8F : JR Z, MFE64 ;KEINE NEUE FARBE |
3707/ FE8F : LD A, (ATRIB) | 3692/ FE8F : SET 1, C ;SETZEN FARBBIT NEU |
3708/ FE8F : RES 7, A | 3693/ FE8F : RES 6, C ;RUECKSETZEN GRAFIK |
3709/ FE8F : LD (ATRIB), A | 3694/ FE8F : RET |
3710/ FE8F : RET | 3695/ FE8F : MFE64: RES 1, C ;RUECKSETZEN FARBBIT |
3711/ FE8F : | 3696/ FE8F : RET |
3712/ FE8F : ;;UMZ: OUT (74H), A ;UMSCHALTEN ZEICHENSATZ | 3697/ FE8F : ; FARBERWEITERUNG COLOR A-H |
3713/ FE8F : UMZ: OUT (0BBH), A ;UMSCHALTEN ZEICHENSATZ | 3698/ FE8F : FARB16C: |
3714/ FE8F : RET | 3699/ FE8F : SUB 31H |
3715/ FE8F : [3681] endif | 3700/ FE8F : JP C, CI ; >= 1 |
3716/ FE8F : | 3701/ FE8F : CP 8 |
3717/ FE8F : if farb16 | 3702/ FE8F : JR C, MFE77 ; <= 8 |
3718/ FE8F : ; Unterstützung für 16 Farben, CRT-Treiber (Teil 2): | 3703/ FE8F : SUB 8 |
3719/ FE8F : | 3704/ FE8F : CP 8 |
3720/ FE8F : ; FARBBEHANDLUNG INK | 3705/ FE8F : JP C, CI ; <= H |
3721/ FE8F : INK16: LD A, (MAPAR+7) ;FARBRAMZELLE | 3706/ FE8F : MFE77: JP MF941 |
3722/ FE8F : BIT 5, A ;FARBE? | 3707/ FE8F : ; MIAT NEU |
3723/ FE8F : JR Z, INKNEU | 3708/ FE8F : MIATN: LD C, A |
3724/ FE8F : BLINK_: LD B, 8FH ;ALTE MASKE | 3709/ FE8F : LD A, (MAPAR+7) |
3725/ FE8F : LD A, E | 3710/ FE8F : BIT 5, A ;PRUEFEN FARBE |
3726/ FE8F : RET | 3711/ FE8F : LD A, C |
3727/ FE8F : INKNEU: LD B, 0FH ;NEUE MASKE | 3712/ FE8F : JR Z, I_MIAT |
3728/ FE8F : LD A, E | 3713/ FE8F : LD C, 0 |
3729/ FE8F : RET | 3714/ FE8F : SLA A |
3730/ FE8F : ; FARBBEHANDLUNG BORDER | 3715/ FE8F : JP MFADA |
3731/ FE8F : BORD: LD B, 0C5H ;NEUE MASKE | 3716/ FE8F : I_MIAT: RLCA |
3732/ FE8F : SLA C | 3717/ FE8F : RLCA |
3733/ FE8F : SLA C | 3718/ FE8F : RLCA |
3734/ FE8F : SLA C | 3719/ FE8F : RLCA |
3735/ FE8F : BIT 6, C ;PRUEFEN NEUE FARBE | 3720/ FE8F : RET |
3736/ FE8F : JR Z, MFE64 ;KEINE NEUE FARBE | 3721/ FE8F : [3672] endif |
3737/ FE8F : SET 1, C ;SETZEN FARBBIT NEU | 3722/ FE8F : |
3738/ FE8F : RES 6, C ;RUECKSETZEN GRAFIK | 3723/ FE8F : org 0FE8Fh |
3739/ FE8F : RET | 3724/ FE8F : [3226] ENDIF ; tastneu = 1 |
3740/ FE8F : MFE64: RES 1, C ;RUECKSETZEN FARBBIT | 3725/ FE8F : |
3741/ FE8F : RET | 3726/ FE8F : ; |
3742/ FE8F : ; FARBERWEITERUNG COLOR A-H | 3727/ FE8F : ;TASTATUR - PIO ABFRAGEN |
3743/ FE8F : FARB16C: | 3728/ FE8F : F3 GPIOD: DI |
3744/ FE8F : SUB 31H | 3729/ FE90 : DB 91 IN A, DPIOB |
3745/ FE8F : JP C, CI ; >= 1 | 3730/ FE92 : 2F CPL |
3746/ FE8F : CP 8 | 3731/ FE93 : 57 LD D,A ;NEGIERTE MATRIXZEILE |
3747/ FE8F : JR C, MFE77 ; <= 8 | 3732/ FE94 : 3E 03 LD A,3 |
3748/ FE8F : SUB 8 | 3733/ FE96 : D3 93 OUT SPIOB, A |
3749/ FE8F : CP 8 | 3734/ FE98 : 3E FB LD A,11111011B ;PRUEFEN CONTROL-TASTE |
3750/ FE8F : JP C, CI ; <= H | 3735/ FE9A : D3 90 OUT DPIOA, A |
3751/ FE8F : MFE77: JP MF941 | 3736/ FE9C : DB 91 IN A, DPIOB |
3752/ FE8F : ; MIAT NEU | 3737/ FE9E : 67 LD H,A |
3753/ FE8F : MIATN: LD C, A | 3738/ FE9F : 3E FE LD A,11111110B ;PRUEFEN SHIFT-TASTE |
3754/ FE8F : LD A, (MAPAR+7) | 3739/ FEA1 : D3 90 OUT DPIOA, A |
3755/ FE8F : BIT 5, A ;PRUEFEN FARBE | 3740/ FEA3 : DB 91 IN A, DPIOB |
3756/ FE8F : LD A, C | 3741/ FEA5 : 6F LD L,A |
3757/ FE8F : JR Z, I_MIAT | 3742/ FEA6 : 3E CF LD A,0CFH |
3758/ FE8F : LD C, 0 | 3743/ FEA8 : D3 92 OUT SPIOA, A |
3759/ FE8F : SLA A | 3744/ FEAA : 3E FF LD A,0FFH |
3760/ FE8F : JP MFADA | 3745/ FEAC : D3 92 OUT SPIOA, A |
3761/ FE8F : I_MIAT: RLCA | 3746/ FEAE : 3E CF LD A,0CFH |
3762/ FE8F : RLCA | 3747/ FEB0 : D3 93 OUT SPIOB, A |
3763/ FE8F : RLCA | 3748/ FEB2 : AF XOR A |
3764/ FE8F : RLCA | 3749/ FEB3 : D3 93 OUT SPIOB, A |
3765/ FE8F : RET | 3750/ FEB5 : D3 91 OUT DPIOB, A |
AS V1.42 Beta [Bld 82] - source file os.asm - page 64 - 3/20/2012 20:42:07 | 3751/ FEB7 : DB 90 IN A, DPIOA |
| 3752/ FEB9 : 2F CPL |
| 3753/ FEBA : 5F LD E,A ;NEGIERTE MATRIXSPALTE |
3766/ FE8F : [3717] endif | 3754/ FEBB : 3E 80 LD A,80H ;SPIELHEBEL 1 ABFRAGEN |
3767/ FE8F : | 3755/ FEBD : D3 91 OUT DPIOB, A |
3768/ FE8F : org 0FE8Fh | 3756/ FEBF : DB 90 IN A, DPIOA |
3769/ FE8F : [3271] ENDIF ; tastneu = 1 | 3757/ FEC1 : 2F CPL |
3770/ FE8F : | 3758/ FEC2 : 32 13 00 LD (JOYR),A |
3771/ FE8F : ; | 3759/ FEC5 : 3E 40 LD A,40H ;SPIELHEBEL 2 ABFRAGEN |
3772/ FE8F : ;TASTATUR - PIO ABFRAGEN | 3760/ FEC7 : D3 91 OUT DPIOB, A |
3773/ FE8F : F3 GPIOD: DI | 3761/ FEC9 : DB 90 IN A, DPIOA |
3774/ FE90 : DB 91 IN A, DPIOB | 3762/ FECB : 2F CPL |
3775/ FE92 : 2F CPL | 3763/ FECC : 32 14 00 LD (JOYL),A |
3776/ FE93 : 57 LD D,A ;NEGIERTE MATRIXZEILE | 3764/ FECF : CD 15 FB CALL INITT ;TATSTATUR INIT. |
3777/ FE94 : 3E 03 LD A,3 | 3765/ FED2 : AF XOR A |
3778/ FE96 : D3 93 OUT SPIOB, A | 3766/ FED3 : D3 90 OUT DPIOA, A |
3779/ FE98 : 3E FB LD A,11111011B ;PRUEFEN CONTROL-TASTE | 3767/ FED5 : C9 RET |
3780/ FE9A : D3 90 OUT DPIOA, A | 3768/ FED6 : ; |
3781/ FE9C : DB 91 IN A, DPIOB | 3769/ FED6 : ORG RESET+0ED6H |
3782/ FE9E : 67 LD H,A | 3770/ FED6 : ; |
3783/ FE9F : 3E FE LD A,11111110B ;PRUEFEN SHIFT-TASTE | 3771/ FED6 : ;******************************************************************* |
3784/ FEA1 : D3 90 OUT DPIOA, A | 3772/ FED6 : ;* KASSETTEN - E/A * |
3785/ FEA3 : DB 91 IN A, DPIOB | 3773/ FED6 : ;******************************************************************* |
3786/ FEA5 : 6F LD L,A | 3774/ FED6 : ; |
3787/ FEA6 : 3E CF LD A,0CFH | 3775/ FED6 : ;SCHREIBEN EINES BLOCKES |
3788/ FEA8 : D3 92 OUT SPIOA, A | 3776/ FED6 : ; |
3789/ FEAA : 3E FF LD A,0FFH | 3777/ FED6 : ; Funktion: Schreiben eines Blockes |
3790/ FEAC : D3 92 OUT SPIOA, A | 3778/ FED6 : ; a) Eingang |
3791/ FEAE : 3E CF LD A,0CFH | 3779/ FED6 : ; - KARAM |
3792/ FEB0 : D3 93 OUT SPIOB, A | 3780/ FED6 : ; gerufen von: WRIT |
3793/ FEB2 : AF XOR A | 3781/ FED6 : ; Parameter : DMA Blockadresse |
3794/ FEB3 : D3 93 OUT SPIOB, A | 3782/ FED6 : ; BLNR Blocknummer |
3795/ FEB5 : D3 91 OUT DPIOB, A | 3783/ FED6 : ; BC Anzahl der Vortonzeichen |
3796/ FEB7 : DB 90 IN A, DPIOA | 3784/ FED6 : ; b) gerufene Programme |
3797/ FEB9 : 2F CPL | 3785/ FED6 : ; - INIC1 CTC vorinitialialisieren |
3798/ FEBA : 5F LD E,A ;NEGIERTE MATRIXSPALTE | 3786/ FED6 : ; - INIVT Vorton initialisieren |
3799/ FEBB : 3E 80 LD A,80H ;SPIELHEBEL 1 ABFRAGEN | 3787/ FED6 : ; - AUS1 Ausgabe 1 Bit |
3800/ FEBD : D3 91 OUT DPIOB, A | 3788/ FED6 : ; - AUST Ausgabe Trennzeichen |
3801/ FEBF : DB 90 IN A, DPIOA | 3789/ FED6 : ; - KAUBT Ausgabe 1 Byte |
3802/ FEC1 : 2F CPL | 3790/ FED6 : ; c) Ausgang |
3803/ FEC2 : 32 13 00 LD (JOYR),A | 3791/ FED6 : ; - DYNST Ausgabe der letzten Halbperiode |
3804/ FEC5 : 3E 40 LD A,40H ;SPIELHEBEL 2 ABFRAGEN | 3792/ FED6 : ; d) Return |
3805/ FEC7 : D3 91 OUT DPIOB, A | 3793/ FED6 : ; |
3806/ FEC9 : DB 90 IN A, DPIOA | 3794/ FED6 : KARAM: |
3807/ FECB : 2F CPL | 3795/ FED6 : F3 DI |
3808/ FECC : 32 14 00 LD (JOYL),A | 3796/ FED7 : AF XOR A |
3809/ FECF : CD 15 FB CALL INITT ;TATSTATUR INIT. | 3797/ FED8 : 32 69 00 LD (PSUM),A |
3810/ FED2 : AF XOR A | 3798/ FEDB : CD 0A FB karam0: CALL INIC1 |
3811/ FED3 : D3 90 OUT DPIOA, A | 3799/ FEDE : D3 93 OUT SPIOB, A ;TASTATUR AUS (A ist 3) |
3812/ FED5 : C9 RET | 3800/ FEE0 : CD 0D FF CALL INIVT ;VORTON INIT. |
3813/ FED6 : ; | 3801/ FEE3 : CD 31 FF KARA1: CALL AUS1 ;VORTON AUSGEBEN |
3814/ FED6 : ORG RESET+0ED6H | 3802/ FEE6 : ED A1 CPI |
3815/ FED6 : ; | 3803/ FEE8 : EA E3 FE JP PE,KARA1 ;BC MAL |
3816/ FED6 : ;******************************************************************* | 3804/ FEEB : CD 29 FF CALL AUST ;TRENNZEICHEN |
3817/ FED6 : ;* KASSETTEN - E/A * | 3805/ FEEE : 3A 6B 00 LD A,(BLNR) |
3818/ FED6 : ;******************************************************************* | 3806/ FEF1 : CD 18 FF CALL KAUBT ;BLOCKNUMMER AUSGEBEN |
3819/ FED6 : ; | 3807/ FEF4 : 2A 1B 00 LD HL,(DMA) ;BLOCKADRESSE |
3820/ FED6 : ;SCHREIBEN EINES BLOCKES | 3808/ FEF7 : 06 80 LD B,80H ;ANZAHL BYTES |
3821/ FED6 : ; | 3809/ FEF9 : 7E KARA2: LD A,(HL) |
3822/ FED6 : ; Funktion: Schreiben eines Blockes | 3810/ FEFA : CD 18 FF CALL KAUBT ;AUSGABE DATENBYTE |
3823/ FED6 : ; a) Eingang | 3811/ FEFD : 3A 69 00 LD A,(PSUM) |
3824/ FED6 : ; - KARAM | 3812/ FF00 : 86 ADD A, (HL) ;NEUE PRUEFSUMME |
3825/ FED6 : ; gerufen von: WRIT | 3813/ FF01 : 32 69 00 LD (PSUM),A |
AS V1.42 Beta [Bld 82] - source file os.asm - page 65 - 3/20/2012 20:42:07 | 3814/ FF04 : 23 INC HL |
| 3815/ FF05 : 10 F2 DJNZ KARA2 |
| 3816/ FF07 : CD 18 FF CALL KAUBT ;PRUEFSUMME AUSGEBEN |
3826/ FED6 : ; Parameter : DMA Blockadresse | 3817/ FF0A : 7A LD A,D |
3827/ FED6 : ; BLNR Blocknummer | 3818/ FF0B : 18 2B JR DYNST ;LETZTE HALBPERIODE AUSGEBEN |
3828/ FED6 : ; BC Anzahl der Vortonzeichen | 3819/ FF0D : ; |
3829/ FED6 : ; b) gerufene Programme | 3820/ FF0D : ;VORTON INITIALISIEREN |
3830/ FED6 : ; - INIC1 CTC vorinitialialisieren | 3821/ FF0D : 3E 85 INIVT: LD A,85H ;Steuerwort CTC: (EI, Zeitkonstante folgt) |
3831/ FED6 : ; - INIVT Vorton initialisieren | 3822/ FF0F : D3 80 OUT CTC0, A ;CTC0 |
3832/ FED6 : ; - AUS1 Ausgabe 1 Bit | 3823/ FF11 : 3E 40 LD A,40H ;VORTON 1 |
3833/ FED6 : ; - AUST Ausgabe Trennzeichen | 3824/ FF13 : D3 80 OUT CTC0, A ;CTC0 Zeitkonstante: 2,4576 Mhz / 16 / 40h = 2400 Hz |
3834/ FED6 : ; - KAUBT Ausgabe 1 Byte | 3825/ FF15 : FB EI |
3835/ FED6 : ; c) Ausgang | 3826/ FF16 : 57 LD D,A ;LAENGE HALBPERIODE |
3836/ FED6 : ; - DYNST Ausgabe der letzten Halbperiode | 3827/ FF17 : C9 RET |
3837/ FED6 : ; d) Return | 3828/ FF18 : ; |
3838/ FED6 : ; | 3829/ FF18 : ;SCHREIBEN EINES BYTES |
3839/ FED6 : KARAM: | 3830/ FF18 : ; |
3840/ FED6 : =>FALSE if extcio | 3831/ FF18 : ; Funktion: Ausgabe eines Bytes |
3841/ FED6 : jp karamx | 3832/ FF18 : ; a) Eingang |
3842/ FED6 : nop | 3833/ FF18 : ; - KAUBT |
3843/ FED6 : nop | 3834/ FF18 : ; gerufen von: KARAM |
3844/ FED6 : =>TRUE else | 3835/ FF18 : ; Parameter : A Byte |
3845/ FED6 : F3 DI | 3836/ FF18 : ; D Länge Halbperiode vorheriges Bit |
3846/ FED7 : AF XOR A | 3837/ FF18 : ; - AUST |
3847/ FED8 : 32 69 00 LD (PSUM),A | 3838/ FF18 : ; gerufen von: KARAM |
3848/ FEDB : [3840] endif | 3839/ FF18 : ; Parameter : D Länge Halbperiode vorheriges Bit |
3849/ FEDB : CD 0A FB karam0: CALL INIC1 | 3840/ FF18 : ; - AUS1 |
3850/ FEDE : D3 93 OUT SPIOB, A ;TASTATUR AUS (A ist 3) | 3841/ FF18 : ; gerufen von: KARAM |
3851/ FEE0 : CD 0D FF CALL INIVT ;VORTON INIT. | 3842/ FF18 : ; Parameter : D Länge Halbperiode vorheriges Bit |
3852/ FEE3 : CD 31 FF KARA1: CALL AUS1 ;VORTON AUSGEBEN | 3843/ FF18 : ; b) gerufene Programme |
3853/ FEE6 : ED A1 CPI | 3844/ FF18 : ; - AUS1, AUS0 Ausgabe 1 Bit, 0 Bit |
3854/ FEE8 : EA E3 FE JP PE,KARA1 ;BC MAL | 3845/ FF18 : ; - DYNST Warten eine Halbperiode |
3855/ FEEB : CD 29 FF CALL AUST ;TRENNZEICHEN | 3846/ FF18 : ; c) Ausgang |
3856/ FEEE : 3A 6B 00 LD A,(BLNR) | 3847/ FF18 : ; - |
3857/ FEF1 : CD 18 FF CALL KAUBT ;BLOCKNUMMER AUSGEBEN | 3848/ FF18 : ; d) Return |
3858/ FEF4 : 2A 1B 00 LD HL,(DMA) ;BLOCKADRESSE | 3849/ FF18 : ; Parameter: D Länge Halbperiode vorheriges Bit |
3859/ FEF7 : 06 80 LD B,80H ;ANZAHL BYTES | 3850/ FF18 : ; |
3860/ FEF9 : 7E KARA2: LD A,(HL) | 3851/ FF18 : C5 KAUBT: PUSH BC |
3861/ FEFA : CD 18 FF CALL KAUBT ;AUSGABE DATENBYTE | 3852/ FF19 : 4F LD C,A |
3862/ FEFD : 3A 69 00 LD A,(PSUM) | 3853/ FF1A : 06 08 LD B,8 |
3863/ FF00 : 86 ADD A, (HL) ;NEUE PRUEFSUMME | 3854/ FF1C : CB 09 KAUB1: RRC C |
3864/ FF01 : 32 69 00 LD (PSUM),A | 3855/ FF1E : F5 PUSH AF |
3865/ FF04 : 23 INC HL | 3856/ FF1F : DC 31 FF CALL C, AUS1 ;1 BIT |
3866/ FF05 : 10 F2 DJNZ KARA2 | 3857/ FF22 : F1 POP AF |
3867/ FF07 : CD 18 FF CALL KAUBT ;PRUEFSUMME AUSGEBEN | 3858/ FF23 : D4 2D FF CALL NC, AUS0 ;0 BIT |
3868/ FF0A : 7A LD A,D | 3859/ FF26 : 10 F4 DJNZ KAUB1 |
3869/ FF0B : 18 2B JR DYNST ;LETZTE HALBPERIODE AUSGEBEN | 3860/ FF28 : C1 POP BC |
3870/ FF0D : ; | 3861/ FF29 : 1E 80 AUST: LD E,80H ;TRENNZEICHEN Zeitkonstante: 2,4576 Mhz / 16 / 80h = 600 Hz |
3871/ FF0D : ;VORTON INITIALISIEREN | 3862/ FF2B : 18 06 JR AUS |
3872/ FF0D : 3E 85 INIVT: LD A,85H ;Steuerwort CTC: (EI, Zeitkonstante folgt) | 3863/ FF2D : 1E 20 AUS0: LD E,20H ;0 BIT Zeitkonstante: 2,4576 Mhz / 16 / 20h = 1200 Hz |
3873/ FF0F : D3 80 OUT CTC0, A ;CTC0 | 3864/ FF2F : 18 02 JR AUS |
3874/ FF11 : 3E 40 LD A,40H ;VORTON 1 | 3865/ FF31 : 1E 40 AUS1: LD E,40H ;1 BIT Zeitkonstante: 2,4576 Mhz / 16 / 40h = 2400 Hz |
3875/ FF13 : D3 80 OUT CTC0, A ;CTC0 Zeitkonstante: 2,4576 Mhz / 16 / 40h = 2400 Hz | 3866/ FF33 : 7A AUS: LD A,D |
3876/ FF15 : FB EI | 3867/ FF34 : CD 38 FF CALL DYNST ;LETZTE HALBPERIODE NOCH AUSGEB. |
3877/ FF16 : 57 LD D,A ;LAENGE HALBPERIODE | 3868/ FF37 : 7A LD A,D ;1. HALBPERIODE NEUES BIT |
3878/ FF17 : C9 RET | 3869/ FF38 : 32 6A 00 DYNST: LD (ARB),A |
3879/ FF18 : ; | 3870/ FF3B : 3A 6A 00 DY1: LD A,(ARB) |
3880/ FF18 : ;SCHREIBEN EINES BYTES | 3871/ FF3E : B7 OR A |
3881/ FF18 : ; | 3872/ FF3F : 20 FA JR NZ, DY1 ;WARTEN BIS FLANKE AUSGEGEBEN |
3882/ FF18 : ; Funktion: Ausgabe eines Bytes | 3873/ FF41 : 53 LD D,E ;LAENGE NEUE HALBPERIODE |
3883/ FF18 : ; a) Eingang | 3874/ FF42 : C9 RET |
3884/ FF18 : ; - KAUBT | 3875/ FF43 : ; |
3885/ FF18 : ; gerufen von: KARAM | 3876/ FF43 : ;INTERRRUPTROUTINE ZUM SCHREIBEN |
AS V1.42 Beta [Bld 82] - source file os.asm - page 66 - 3/20/2012 20:42:07 | 3877/ FF43 : ; |
| 3878/ FF43 : ; Funktion: Interruptroutine Schreiben |
| 3879/ FF43 : ; a) Eingang |
3886/ FF18 : ; Parameter : A Byte | 3880/ FF43 : ; - IKACT |
3887/ FF18 : ; D Länge Halbperiode vorheriges Bit | 3881/ FF43 : ; Parameter: ARB Länge nächste Halbperiode39 |
3888/ FF18 : ; - AUST | 3882/ FF43 : ; b) gerufene Programme |
3889/ FF18 : ; gerufen von: KARAM | 3883/ FF43 : ; - |
3890/ FF18 : ; Parameter : D Länge Halbperiode vorheriges Bit | 3884/ FF43 : ; c) Ausgang |
3891/ FF18 : ; - AUS1 | 3885/ FF43 : ; - |
3892/ FF18 : ; gerufen von: KARAM | 3886/ FF43 : ; d) Return |
3893/ FF18 : ; Parameter : D Länge Halbperiode vorheriges Bit | 3887/ FF43 : ; Parameter: ARB 0 |
3894/ FF18 : ; b) gerufene Programme | 3888/ FF43 : ; |
3895/ FF18 : ; - AUS1, AUS0 Ausgabe 1 Bit, 0 Bit | 3889/ FF43 : F5 IKACT: PUSH AF |
3896/ FF18 : ; - DYNST Warten eine Halbperiode | 3890/ FF44 : 3E 03 LD A,3 ;Steuerwort CTC (Reset) |
3897/ FF18 : ; c) Ausgang | 3891/ FF46 : D3 80 OUT CTC0, A ;CTC0 |
3898/ FF18 : ; - | 3892/ FF48 : 3E 85 LD A,85H ;Steuerwort CTC (EI, Zeitkonstante folgt) |
3899/ FF18 : ; d) Return | 3893/ FF4A : D3 80 OUT CTC0, A ;CTC0 |
3900/ FF18 : ; Parameter: D Länge Halbperiode vorheriges Bit | 3894/ FF4C : 3A 6A 00 LD A,(ARB) ;Zeitkonstante holen |
3901/ FF18 : ; | 3895/ FF4F : D3 80 OUT CTC0, A ;ZAEHLERWERT ENTSPR. ZEICHEN |
3902/ FF18 : C5 KAUBT: PUSH BC | 3896/ FF51 : AF XOR A |
3903/ FF19 : 4F LD C,A | 3897/ FF52 : 32 6A 00 LD (ARB),A ;Arbeitszelle auf 0 setzen als Fertigmarkierung |
3904/ FF1A : 06 08 LD B,8 | 3898/ FF55 : F1 POP AF |
3905/ FF1C : CB 09 KAUB1: RRC C | 3899/ FF56 : FB EI |
3906/ FF1E : F5 PUSH AF | 3900/ FF57 : ED 4D RETI |
3907/ FF1F : DC 31 FF CALL C, AUS1 ;1 BIT | 3901/ FF59 : ; |
3908/ FF22 : F1 POP AF | 3902/ FF59 : ;LESEN EINES BLOCKES |
3909/ FF23 : D4 2D FF CALL NC, AUS0 ;0 BIT | 3903/ FF59 : ; |
3910/ FF26 : 10 F4 DJNZ KAUB1 | 3904/ FF59 : ; Funktion: Lesen eines Blockes |
3911/ FF28 : C1 POP BC | 3905/ FF59 : ; a) Eingang |
3912/ FF29 : 1E 80 AUST: LD E,80H ;TRENNZEICHEN Zeitkonstante: 2,4576 Mhz / 16 / 80h = 600 Hz | 3906/ FF59 : ; - MAREK |
3913/ FF2B : 18 06 JR AUS | 3907/ FF59 : ; gerufen von: RRAND |
3914/ FF2D : 1E 20 AUS0: LD E,20H ;0 BIT Zeitkonstante: 2,4576 Mhz / 16 / 20h = 1200 Hz | 3908/ FF59 : ; Parameter : DMA |
3915/ FF2F : 18 02 JR AUS | 3909/ FF59 : ; b) gerufene Programme |
3916/ FF31 : 1E 40 AUS1: LD E,40H ;1 BIT Zeitkonstante: 2,4576 Mhz / 16 / 40h = 2400 Hz | 3910/ FF59 : ; - INIC1 CTC vorinitialisieren |
3917/ FF33 : 7A AUS: LD A,D | 3911/ FF59 : ; - LSTOP Warten eine Periode |
3918/ FF34 : CD 38 FF CALL DYNST ;LETZTE HALBPERIODE NOCH AUSGEB. | 3912/ FF59 : ; - LS1 Warten eine Halbperiode41 |
3919/ FF37 : 7A LD A,D ;1. HALBPERIODE NEUES BIT | 3913/ FF59 : ; - IBYTE Lesen eines Bytes |
3920/ FF38 : 32 6A 00 DYNST: LD (ARB),A | 3914/ FF59 : ; c) Ausgang |
3921/ FF3B : 3A 6A 00 DY1: LD A,(ARB) | 3915/ FF59 : ; - |
3922/ FF3E : B7 OR A | 3916/ FF59 : ; d) Return |
3923/ FF3F : 20 FA JR NZ, DY1 ;WARTEN BIS FLANKE AUSGEGEBEN | 3917/ FF59 : ; Parameter: BLNR Blocknummer |
3924/ FF41 : 53 LD D,E ;LAENGE NEUE HALBPERIODE | 3918/ FF59 : ; PSUM Prüfsumme |
3925/ FF42 : C9 RET | 3919/ FF59 : ; CY 0 kein Fehler |
3926/ FF43 : ; | 3920/ FF59 : ; 1 Fehler |
3927/ FF43 : ;INTERRRUPTROUTINE ZUM SCHREIBEN | 3921/ FF59 : ; |
3928/ FF43 : ; | 3922/ FF59 : MAREK: |
3929/ FF43 : ; Funktion: Interruptroutine Schreiben | 3923/ FF59 : F3 DI |
3930/ FF43 : ; a) Eingang | 3924/ FF5A : CD 0A FB CALL INIC1 |
3931/ FF43 : ; - IKACT | 3925/ FF5D : D3 93 MAREK0: OUT SPIOB, A ;TASTATUR AUS |
3932/ FF43 : ; Parameter: ARB Länge nächste Halbperiode39 | 3926/ FF5F : D3 8A OUT SPIO1A, A |
3933/ FF43 : ; b) gerufene Programme | 3927/ FF61 : 3E 05 LD A,5 |
3934/ FF43 : ; - | 3928/ FF63 : D3 80 OUT CTC0, A ;CTC 0 ZUM ZEIT MESSEN |
3935/ FF43 : ; c) Ausgang | 3929/ FF65 : 3E B0 LD A,0B0H ;STARTWERT |
3936/ FF43 : ; - | 3930/ FF67 : D3 80 OUT CTC0, A |
3937/ FF43 : ; d) Return | 3931/ FF69 : 3E 0F LD A,0FH |
3938/ FF43 : ; Parameter: ARB 0 | 3932/ FF6B : D3 8A OUT SPIO1A, A |
3939/ FF43 : ; | 3933/ FF6D : 3E 0A LD A,0AH ;Interruptvektor 20A -> IKEP |
3940/ FF43 : F5 IKACT: PUSH AF | 3934/ FF6F : D3 8A OUT SPIO1A, A |
3941/ FF44 : 3E 03 LD A,3 ;Steuerwort CTC (Reset) | 3935/ FF71 : 3E E7 LD A,0E7H ;SYSTEM PIO INTERRUPT ERLAUBT |
3942/ FF46 : D3 80 OUT CTC0, A ;CTC0 | 3936/ FF73 : D3 8A OUT SPIO1A, A |
3943/ FF48 : 3E 85 LD A,85H ;Steuerwort CTC (EI, Zeitkonstante folgt) | 3937/ FF75 : FB EI |
3944/ FF4A : D3 80 OUT CTC0, A ;CTC0 | 3938/ FF76 : 06 16 MA1: LD B,22 ;22 VORTOENE SUCHEN |
3945/ FF4C : 3A 6A 00 LD A,(ARB) ;Zeitkonstante holen | 3939/ FF78 : CD D1 FF MA2: CALL LSTOP ;EIN BIT/TRENNZEICHEN LESEN |
AS V1.42 Beta [Bld 82] - source file os.asm - page 67 - 3/20/2012 20:42:07 | 3940/ FF7B : 38 F9 JR C, MA1 ;0 BIT GELESEN |
| 3941/ FF7D : FE 90 CP A, 90H |
| 3942/ FF7F : 38 F5 JR C, MA1 ;TRENNZEICHEN GELESEN |
3946/ FF4F : D3 80 OUT CTC0, A ;ZAEHLERWERT ENTSPR. ZEICHEN | 3943/ FF81 : 10 F5 DJNZ MA2 |
3947/ FF51 : AF XOR A | 3944/ FF83 : 06 02 LD B,2 ;1 TRENNZEICHEN |
3948/ FF52 : 32 6A 00 LD (ARB),A ;Arbeitszelle auf 0 setzen als Fertigmarkierung | 3945/ FF85 : AF MA3: XOR A |
3949/ FF55 : F1 POP AF | 3946/ FF86 : 32 69 00 LD (PSUM),A |
3950/ FF56 : FB EI | 3947/ FF89 : 4F LD C,A |
3951/ FF57 : ED 4D RETI | 3948/ FF8A : 32 6A 00 LD (ARB),A |
3952/ FF59 : ; | 3949/ FF8D : CD E0 FF CALL LS1 ;EINE HALBPERIODE MESSEN |
3953/ FF59 : ;LESEN EINES BLOCKES | 3950/ FF90 : FE 52 CP A, 52H |
3954/ FF59 : ; | 3951/ FF92 : 30 F1 JR NC, MA3 ;KEIN TRENNZEICHEN |
3955/ FF59 : ; Funktion: Lesen eines Blockes | 3952/ FF94 : 10 EF DJNZ MA3 |
3956/ FF59 : ; a) Eingang | 3953/ FF96 : CD E8 FF CALL IBYTE ;BLOCKNUMMER LESEN |
3957/ FF59 : ; - MAREK | 3954/ FF99 : D8 RET C ;FEHLER |
3958/ FF59 : ; gerufen von: RRAND | 3955/ FF9A : 32 6B 00 LD (BLNR),A |
3959/ FF59 : ; Parameter : DMA | 3956/ FF9D : 06 80 LD B,80H ;ANZAHL BYTES |
3960/ FF59 : ; b) gerufene Programme | 3957/ FF9F : 2A 1B 00 LD HL,(DMA) ;BLOCKADRESSE |
3961/ FF59 : ; - INIC1 CTC vorinitialisieren | 3958/ FFA2 : CD E8 FF MA4: CALL IBYTE ;DATENBYTE LESEN |
3962/ FF59 : ; - LSTOP Warten eine Periode | 3959/ FFA5 : D8 RET C ;FEHLER |
3963/ FF59 : ; - LS1 Warten eine Halbperiode41 | 3960/ FFA6 : 77 LD (HL),A |
3964/ FF59 : ; - IBYTE Lesen eines Bytes | 3961/ FFA7 : 3A 69 00 LD A,(PSUM) |
3965/ FF59 : ; c) Ausgang | 3962/ FFAA : 86 ADD A, (HL) ;NEUE PRUEFSUMME |
3966/ FF59 : ; - | 3963/ FFAB : 32 69 00 LD (PSUM),A |
3967/ FF59 : ; d) Return | 3964/ FFAE : 23 INC HL |
3968/ FF59 : ; Parameter: BLNR Blocknummer | 3965/ FFAF : 10 F1 DJNZ MA4 |
3969/ FF59 : ; PSUM Prüfsumme | 3966/ FFB1 : CD E8 FF CALL IBYTE ;PRUEFSUMME LESEN |
3970/ FF59 : ; CY 0 kein Fehler | 3967/ FFB4 : D8 RET C ;FEHLER |
3971/ FF59 : ; 1 Fehler | 3968/ FFB5 : 47 LD B,A |
3972/ FF59 : ; | 3969/ FFB6 : 3A 69 00 LD A,(PSUM) |
3973/ FF59 : MAREK: | 3970/ FFB9 : B8 CP A, B |
3974/ FF59 : =>FALSE if extcio | 3971/ FFBA : C8 RET Z ;IN ORDNUNG |
3975/ FF59 : JP marekx ;Patch f. ext. Routine | 3972/ FFBB : 37 SCF |
3976/ FF59 : nop | 3973/ FFBC : C9 RET ;FEHLER |
3977/ FF59 : =>TRUE else | 3974/ FFBD : ; |
3978/ FF59 : F3 DI | 3975/ FFBD : ;INTERRUPTROUTINE ZUM LESEN |
3979/ FF5A : CD 0A FB CALL INIC1 | 3976/ FFBD : ; |
3980/ FF5D : [3974] endif | 3977/ FFBD : ; Funktion: Interruptroutine lesen |
3981/ FF5D : D3 93 MAREK0: OUT SPIOB, A ;TASTATUR AUS | 3978/ FFBD : ; a) Eingang |
3982/ FF5F : D3 8A OUT SPIO1A, A | 3979/ FFBD : ; - IKEP |
3983/ FF61 : 3E 05 LD A,5 | 3980/ FFBD : ; b) gerufene Programme |
3984/ FF63 : D3 80 OUT CTC0, A ;CTC 0 ZUM ZEIT MESSEN | 3981/ FFBD : ; - |
3985/ FF65 : 3E B0 LD A,0B0H ;STARTWERT | 3982/ FFBD : ; c) Ausgang |
3986/ FF67 : D3 80 OUT CTC0, A | 3983/ FFBD : ; - |
3987/ FF69 : 3E 0F LD A,0FH | 3984/ FFBD : ; d) Return |
3988/ FF6B : D3 8A OUT SPIO1A, A | 3985/ FFBD : ; Parameter A Länge einer Halbperiode |
3989/ FF6D : 3E 0A LD A,0AH ;Interruptvektor | 3986/ FFBD : ; |
3990/ FF6F : D3 8A OUT SPIO1A, A | 3987/ FFBD : F5 IKEP: PUSH AF |
3991/ FF71 : 3E E7 LD A,0E7H ;SYSTEM PIO INTERRUPT ERLAUBT | 3988/ FFBE : DB 80 IN A, CTC0 |
3992/ FF73 : D3 8A OUT SPIO1A, A | 3989/ FFC0 : F5 PUSH AF |
3993/ FF75 : FB EI | 3990/ FFC1 : 3E 07 LD A,7 |
3994/ FF76 : 06 16 MA1: LD B,22 ;22 VORTOENE SUCHEN | 3991/ FFC3 : D3 80 OUT CTC0, A |
3995/ FF78 : CD D1 FF MA2: CALL LSTOP ;EIN BIT/TRENNZEICHEN LESEN | 3992/ FFC5 : 3E B0 LD A,0B0H ;NEUE ZEITMESSUNG |
3996/ FF7B : 38 F9 JR C, MA1 ;0 BIT GELESEN | 3993/ FFC7 : D3 80 OUT CTC0, A ;Startwert |
3997/ FF7D : FE 90 CP A, 90H | 3994/ FFC9 : F1 POP AF |
3998/ FF7F : 38 F5 JR C, MA1 ;TRENNZEICHEN GELESEN | 3995/ FFCA : 32 6A 00 LD (ARB),A ;gemessener Wert |
3999/ FF81 : 10 F5 DJNZ MA2 | 3996/ FFCD : F1 POP AF |
4000/ FF83 : 06 02 LD B,2 ;1 TRENNZEICHEN | 3997/ FFCE : FB EI |
4001/ FF85 : AF MA3: XOR A | 3998/ FFCF : ED 4D RETI |
4002/ FF86 : 32 69 00 LD (PSUM),A | 3999/ FFD1 : ; |
4003/ FF89 : 4F LD C,A | 4000/ FFD1 : ;LESEN EINES ZEICHENS |
4004/ FF8A : 32 6A 00 LD (ARB),A | 4001/ FFD1 : ; |
4005/ FF8D : CD E0 FF CALL LS1 ;EINE HALBPERIODE MESSEN | 4002/ FFD1 : ; Funktion: Lesen eines Bits |
AS V1.42 Beta [Bld 82] - source file os.asm - page 68 - 3/20/2012 20:42:07 | 4003/ FFD1 : ; a) Eingang |
| 4004/ FFD1 : ; - LSTOP |
| 4005/ FFD1 : ; gerufen von: MAREK, IBYTE |
4006/ FF90 : FE 52 CP A, 52H | 4006/ FFD1 : ; - LS1 |
4007/ FF92 : 30 F1 JR NC, MA3 ;KEIN TRENNZEICHEN | 4007/ FFD1 : ; gerufen von: MAREK |
4008/ FF94 : 10 EF DJNZ MA3 | 4008/ FFD1 : ; b) gerufene Programme |
4009/ FF96 : CD E8 FF CALL IBYTE ;BLOCKNUMMER LESEN | 4009/ FFD1 : ; - |
4010/ FF99 : D8 RET C ;FEHLER | 4010/ FFD1 : ; c) Ausgang |
4011/ FF9A : 32 6B 00 LD (BLNR),A | 4011/ FFD1 : ; - |
4012/ FF9D : 06 80 LD B,80H ;ANZAHL BYTES | 4012/ FFD1 : ; d) Return |
4013/ FF9F : 2A 1B 00 LD HL,(DMA) ;BLOCKADRESSE | 4013/ FFD1 : ; Parameter: C Länge der Periode |
4014/ FFA2 : CD E8 FF MA4: CALL IBYTE ;DATENBYTE LESEN | 4014/ FFD1 : ; CY 1 0 Bit |
4015/ FFA5 : D8 RET C ;FEHLER | 4015/ FFD1 : ; 0 und C < 90H Trennz. |
4016/ FFA6 : 77 LD (HL),A | 4016/ FFD1 : ; 0 und C >= 90H 1 Bit |
4017/ FFA7 : 3A 69 00 LD A,(PSUM) | 4017/ FFD1 : ; |
4018/ FFAA : 86 ADD A, (HL) ;NEUE PRUEFSUMME | 4018/ FFD1 : |
4019/ FFAB : 32 69 00 LD (PSUM),A | 4019/ FFD1 : ;Bit Wert B0-x *2 Return |
4020/ FFAE : 23 INC HL | 4020/ FFD1 : ; KAUBT |
4021/ FFAF : 10 F1 DJNZ MA4 | 4021/ FFD1 : ;------------------------------------- |
4022/ FFB1 : CD E8 FF CALL IBYTE ;PRUEFSUMME LESEN | 4022/ FFD1 : ;0 20h 90h 120h Cy=1 |
4023/ FFB4 : D8 RET C ;FEHLER | 4023/ FFD1 : ;1 40h 70h E0h > 90h |
4024/ FFB5 : 47 LD B,A | 4024/ FFD1 : ;Trennz 80h 30h 60h < 90h |
4025/ FFB6 : 3A 69 00 LD A,(PSUM) | 4025/ FFD1 : |
4026/ FFB9 : B8 CP A, B | 4026/ FFD1 : AF LSTOP: XOR A |
4027/ FFBA : C8 RET Z ;IN ORDNUNG | 4027/ FFD2 : 32 6A 00 LD (ARB),A |
4028/ FFBB : 37 SCF | 4028/ FFD5 : 3A 6A 00 LS0: LD A,(ARB) |
4029/ FFBC : C9 RET ;FEHLER | 4029/ FFD8 : B7 OR A |
4030/ FFBD : ; | 4030/ FFD9 : 28 FA JR Z, LS0 ;WARTEN AUF 1. FLANKE |
4031/ FFBD : ;INTERRUPTROUTINE ZUM LESEN | 4031/ FFDB : 4F LD C,A |
4032/ FFBD : ; | 4032/ FFDC : AF XOR A |
4033/ FFBD : ; Funktion: Interruptroutine lesen | 4033/ FFDD : 32 6A 00 LD (ARB),A |
4034/ FFBD : ; a) Eingang | 4034/ FFE0 : 3A 6A 00 LS1: LD A,(ARB) |
4035/ FFBD : ; - IKEP | 4035/ FFE3 : B7 OR A |
4036/ FFBD : ; b) gerufene Programme | 4036/ FFE4 : 28 FA JR Z, LS1 ;WARTEN AUF 2. FLANKE |
4037/ FFBD : ; - | 4037/ FFE6 : 81 ADD A, C |
4038/ FFBD : ; c) Ausgang | 4038/ FFE7 : C9 RET |
4039/ FFBD : ; - | 4039/ FFE8 : ; |
4040/ FFBD : ; d) Return | 4040/ FFE8 : ;LESEN EINES BYTES |
4041/ FFBD : ; Parameter A Länge einer Halbperiode | 4041/ FFE8 : ; |
4042/ FFBD : ; | 4042/ FFE8 : ; Funktion: Lesen eines Bytes |
4043/ FFBD : F5 IKEP: PUSH AF | 4043/ FFE8 : ; a) Eingang |
4044/ FFBE : DB 80 IN A, CTC0 | 4044/ FFE8 : ; - IBYTE |
4045/ FFC0 : F5 PUSH AF | 4045/ FFE8 : ; gerufen von: MAREK |
4046/ FFC1 : 3E 07 LD A,7 | 4046/ FFE8 : ; b) gerufene Programme |
4047/ FFC3 : D3 80 OUT CTC0, A | 4047/ FFE8 : ; - LSTOP Lesen eines Bits |
4048/ FFC5 : 3E B0 LD A,0B0H ;NEUE ZEITMESSUNG | 4048/ FFE8 : ; c) Ausgang |
4049/ FFC7 : D3 80 OUT CTC0, A | 4049/ FFE8 : ; - |
4050/ FFC9 : F1 POP AF | 4050/ FFE8 : ; d) Return |
4051/ FFCA : 32 6A 00 LD (ARB),A | 4051/ FFE8 : ; Parameter: A, E Byte |
4052/ FFCD : F1 POP AF | 4052/ FFE8 : ; CY 1 Fehler |
4053/ FFCE : FB EI | 4053/ FFE8 : ; 0 kein Fehler |
4054/ FFCF : ED 4D RETI | 4054/ FFE8 : ; |
4055/ FFD1 : ; | 4055/ FFE8 : 16 08 IBYTE: LD D,8 |
4056/ FFD1 : ;LESEN EINES ZEICHENS | 4056/ FFEA : AF XOR A |
4057/ FFD1 : ; | 4057/ FFEB : 5F LD E,A |
4058/ FFD1 : ; Funktion: Lesen eines Bits | 4058/ FFEC : CD D1 FF IB1: CALL LSTOP ;LESEN EIN ZEICHEN |
4059/ FFD1 : ; a) Eingang | 4059/ FFEF : 3F CCF |
4060/ FFD1 : ; - LSTOP | 4060/ FFF0 : 30 04 JR NC, IB2 ;0 BIT |
4061/ FFD1 : ; gerufen von: MAREK, IBYTE | 4061/ FFF2 : FE 90 CP A, 90H |
4062/ FFD1 : ; - LS1 | 4062/ FFF4 : D8 RET C ;TRENNZEICHEN |
4063/ FFD1 : ; gerufen von: MAREK | 4063/ FFF5 : 37 SCF ;1 BIT |
4064/ FFD1 : ; b) gerufene Programme | 4064/ FFF6 : CB 1B IB2: RR E |
4065/ FFD1 : ; - | 4065/ FFF8 : 15 DEC D |
AS V1.42 Beta [Bld 82] - source file os.asm - page 69 - 3/20/2012 20:42:07 | 4066/ FFF9 : 20 F1 JR NZ, IB1 |
| 4067/ FFFB : CD D1 FF CALL LSTOP ;LESEN TRENNZEICHEN |
| 4068/ FFFE : 7B LD A,E |
4066/ FFD1 : ; c) Ausgang | 4069/ FFFF : C9 RET |
4067/ FFD1 : ; - | 4070/ 10000 : ; |
4068/ FFD1 : ; d) Return | 4071/ 10000 : END |
4069/ FFD1 : ; Parameter: C Länge der Periode | </code> |
4070/ FFD1 : ; CY 1 0 Bit | |
4071/ FFD1 : ; 0 und C 90H Trennz. | |
4072/ FFD1 : ; 0 und C - 90H 1 Bit | |
4073/ FFD1 : ; | |
4074/ FFD1 : AF LSTOP: XOR A | |
4075/ FFD2 : 32 6A 00 LD (ARB),A | |
4076/ FFD5 : 3A 6A 00 LS0: LD A,(ARB) | |
4077/ FFD8 : B7 OR A | |
4078/ FFD9 : 28 FA JR Z, LS0 ;WARTEN AUF 1. FLANKE | |
4079/ FFDB : 4F LD C,A | |
4080/ FFDC : AF XOR A | |
4081/ FFDD : 32 6A 00 LD (ARB),A | |
4082/ FFE0 : 3A 6A 00 LS1: LD A,(ARB) | |
4083/ FFE3 : B7 OR A | |
4084/ FFE4 : 28 FA JR Z, LS1 ;WARTEN AUF 2. FLANKE | |
4085/ FFE6 : 81 ADD A, C | |
4086/ FFE7 : C9 RET | |
4087/ FFE8 : ; | |
4088/ FFE8 : ;LESEN EINES BYTES | |
4089/ FFE8 : ; | |
4090/ FFE8 : ; Funktion: Lesen eines Bytes | |
4091/ FFE8 : ; a) Eingang | |
4092/ FFE8 : ; - IBYTE | |
4093/ FFE8 : ; gerufen von: MAREK | |
4094/ FFE8 : ; b) gerufene Programme | |
4095/ FFE8 : ; - LSTOP Lesen eines Bits | |
4096/ FFE8 : ; c) Ausgang | |
4097/ FFE8 : ; - | |
4098/ FFE8 : ; d) Return | |
4099/ FFE8 : ; Parameter: A, E Byte | |
4100/ FFE8 : ; CY 1 Fehler | |
4101/ FFE8 : ; 0 kein Fehler | |
4102/ FFE8 : ; | |
4103/ FFE8 : 16 08 IBYTE: LD D,8 | |
4104/ FFEA : AF XOR A | |
4105/ FFEB : 5F LD E,A | |
4106/ FFEC : CD D1 FF IB1: CALL LSTOP ;LESEN EIN ZEICHEN | |
4107/ FFEF : 3F CCF | |
4108/ FFF0 : 30 04 JR NC, IB2 ;0 BIT | |
4109/ FFF2 : FE 90 CP A, 90H | |
4110/ FFF4 : D8 RET C ;TRENNZEICHEN | |
4111/ FFF5 : 37 SCF ;1 BIT | |
4112/ FFF6 : CB 1B IB2: RR E | |
4113/ FFF8 : 15 DEC D | |
4114/ FFF9 : 20 F1 JR NZ, IB1 | |
4115/ FFFB : CD D1 FF CALL LSTOP ;LESEN TRENNZEICHEN | |
4116/ FFFE : 7B LD A,E | |
4117/ FFFF : C9 RET | |
4118/ 10000 : ; | |
4119/ 10000 : END | |
</code> | |
</WRAP> | </WRAP> |