Version OS 1.2

 AS V1.42 Beta [Bld 88] - source file os.asm - page 1 - 6/11/2013 15:15:29


       1/       0 :                     		page	0
       2/       0 :                     
       3/       0 :                     ;------------------------------------------------------------------------------
       4/       0 :                     ; 20.05.2004 volker pohlers; letzte Änderung 12.05.2013
       5/       0 :                     ; basierend auf der PDF-Datei von U. Zander habe ich das Listing korrigiert
       6/       0 :                     ; und an den Arnold-Assembler angepasst. Das erzeugte Binärfile entspricht
       7/       0 :                     ; zu 100% dem BIOS des Z9001.
       8/       0 :                     ; Lediglich die Meldungstexte wurden an die Schreibweise des BIOS des Z9001
       9/       0 :                     ; angepasst (orig. Zeilen 2225-2252).
      10/       0 :                     ;
      11/       0 :                     ; vp 2007: Einbindung aller bekannten Versionen des OS
      12/       0 :                     ; vp 2007: Einbinden der ROMBANK-Erweiterung von U.Zander
      13/       0 :                     ; vp 2007: erweiterte Dokumentation im Listing
      14/       0 :                     ; vp 19.10.2009: OS 1.1 ergänzt
      15/       0 :                     ; vp 21.01.2011: neu strukturiert, einzelne Patches sind optional wählbar
      16/       0 :                     ;	neu eorpatch, krtgrafik
      17/       0 :                     ; vp 24.01.2011  neuer Patch von U.Zander f. SHLOC
      18/       0 :                     ; vp 12.05.2013  Kommentare f. Kassettenroutinen erweitert
      19/       0 :                     ;------------------------------------------------------------------------------
      20/       0 :                     
      21/       0 :                     ; OS-Version 1.1, 1.2 oder 1.3
      22/       0 : =$C                 osver		equ	12	;11,12,13
      23/       0 :                     
      24/       0 :                     ; Systemversion, setzt sich aus Einzelpatches zusammen
      25/       0 : =os                 sysver		equ	"os"	;os,rb21,rb,vp
      26/       0 :                     
      27/       0 : =>TRUE              		if sysver == "os"
      28/       0 :                     ;Standard-OS, keine Patches
      29/       0 : =$0                 tastneu		equ	0	; geänderte Tastaturabfrage Version RB21
      30/       0 : =$0                 shlocFlg	equ	0	; Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag
      31/       0 :                     ;; nur wenn tastneu = 1, können die nachfolgenden Patches genutzt werden
      32/       0 : =$0                 farb16		equ	0	; 16-Farben-Unterstützung
      33/       0 : =$0                 rombank		equ	0	; ROM-Bank durchsuchen
      34/       0 : =$0                 rommenu		equ	0	; Option f. ROM-Bank: autom. Aufruf von "H"
      35/       0 : =$0                 eorpatch	equ	0	; Geänderte Speicherinitialisierung wg. abschaltbarer Module
      36/       0 : =$0                 krtgrafik	equ	0	; bei interner Zeichenausgabe KRT abschalten
      37/       0 :                     ;geänderte Begrüßung 16 Zeichen, wenn leer, dann orig. "robotron  Z 9001"
      38/       0 :                     ;resmsg		equ	"robotron  Z 9001"
      39/       0 :                     
      40/       0 : =>FALSE             		elseif sysver == "rb21"
      41/       0 :                     ; Version U. Zander RB21
      42/       0 :                     tastneu		equ	1	; geänderte Tastaturabfrage Version RB21
      43/       0 :                     shlocFlg	equ	0	; Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag
      44/       0 :                     farb16		equ	1	; 16-Farben-Unterstützung
      45/       0 :                     rombank		equ	1	; ROM-Bank durchsuchen
      46/       0 :                     rommenu		equ	1	; Option f. ROM-Bank: autom. Aufruf von "H"
      47/       0 :                     eorpatch	equ	0	; Geänderte Speicherinitialisierung wg. abschaltbarer Module
      48/       0 :                     krtgrafik	equ	0	; bei interner Zeichenausgabe KRT abschalten
      49/       0 :                     resmsg		equ	" Z-80 COMPUTER Ë"	; U. Zander f. RB21
      50/       0 :                     
      51/       0 : =>FALSE             		elseif sysver == "rb"
      52/       0 :                     ; Version U. Zander farb16neu 24.01.2011
      53/       0 :                     ; Änderung gegenüber tastneu: Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag
      54/       0 :                     tastneu		equ	1	; geänderte Tastaturabfrage Version RB21
      55/       0 :                     shlocFlg	equ	1	; Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag
      56/       0 :                     farb16		equ	1	; 16-Farben-Unterstützung
      57/       0 :                     rombank		equ	1	; ROM-Bank durchsuchen
      58/       0 :                     rommenu		equ	0	; Option f. ROM-Bank: autom. Aufruf von "H"
      59/       0 :                     eorpatch	equ	1	; Geänderte Speicherinitialisierung wg. abschaltbarer Module
      60/       0 :                     krtgrafik	equ	0	; bei interner Zeichenausgabe KRT abschalten
      61/       0 :                     resmsg		equ	"robotron Z9001 Ë"	; farb16
      62/       0 :                     
      63/       0 : =>FALSE             		elseif sysver == "vp"
      64/       0 :                     ; Version VP
      65/       0 :                     tastneu		equ	1	; geänderte Tastaturabfrage Version RB21
      66/       0 :                     shlocFlg	equ	1	; Nutzung von Adr. 26h (SHLOC) statt PIO 88h f. CAPS LOCK Flag
      67/       0 :                     farb16		equ	1	; 16-Farben-Unterstützung
      68/       0 :                     rombank		equ	0	; ROM-Bank durchsuchen
      69/       0 :                     rommenu		equ	0	; Option f. ROM-Bank: autom. Aufruf von "H"
      70/       0 :                     eorpatch	equ	1	; Geänderte Speicherinitialisierung wg. abschaltbarer Module
      71/       0 :                     krtgrafik	equ	1	; bei interner Zeichenausgabe KRT abschalten
      72/       0 :                     resmsg		equ	"Z9001 kompakt   "	; VP
      73/       0 : [27]                		endif
      74/       0 :                     
      75/       0 :                     	;PN	MONITOR 16.08.85
      76/       0 :                     ;
      77/       0 :                     ;MONITOR FUER SERIENGERAET 1985
      78/       0 :                     ;V 01.02.
      79/       0 :                     ;
      80/       0 :                     ;	TITL	' R0BOTRON  Z  9001  -  MONITOR '
      81/       0 :                     ;
      82/       0 :                     	cpu	z80
      83/    F000 :                     	ORG	0F000H
      84/    F000 :                     ;
      85/    F000 :                     ;*******************************************************************
      86/    F000 :                     ;*                                                                 *
      87/    F000 :                     ;*	MONITOR - D E F I N I T I O N E N                          *
      88/    F000 :                     ;*                                                                 *
      89/    F000 :                     ;*******************************************************************
      90/    F000 :                     ;
      91/    F000 : =4H                 IOBYT:	EQU	4		;I/O-BYTE
      92/    F000 : =BH                 SPSV:	EQU	0BH		;REGISTER FUER NUTZERSTACK
      93/    F000 : =DH                 BCSV:	EQU	0DH		;REGISTER FUER BC
      94/    F000 : =FH                 ASV:	EQU	0FH		;REGISTER FUER A
      95/    F000 : =13H                JOYR:	EQU	13H		;SPIELHEBEL 1
      96/    F000 : =14H                JOYL:	EQU	14H		;SPIELHEBEL 2
      97/    F000 : =15H                LISW:	EQU	15H		;SCHALTER FUER DRUCKERAUSGABE
      98/    F000 : =16H                BSW:	EQU	16H		;SCHALTER KONTROLLTON
      99/    F000 : =17H                COLSW:	EQU	17H		;PUFFER FARBSTEUERCODE
     100/    F000 : =1BH                DMA:	EQU	1BH		;ZEIGER AUF KASSETTENPUFFER
     101/    F000 : =1DH                STUND:	EQU	1DH		;PUFFER STUNDEN
     102/    F000 : =1EH                MIN:	EQU	1EH		;PUFFER MINUTEN
     103/    F000 : =1FH                SEK:	EQU	1FH		;PUFFER SEKUNDEN
     104/    F000 : =23H                COUNT:	EQU	23H		;ZAEHLER CTC2 - INTERRUPTS
     105/    F000 : =24H                LAKEY:	EQU	24H		;LETZTES GUELTIGES ZEICHEN
     106/    F000 : =25H                KEYBU:	EQU	25H		;TASTATURPUFFER
     107/    F000 : =26H                SHLOC:	EQU	26H		;SCHALTER SHIFT LOCK
     108/    F000 : =27H                ATRIB:	EQU	27H		;AKTUELLES FARBATRIBUT
     109/    F000 : =2BH                CHARP:	EQU	2BH		;ZEIGER AUF SPALTE
     110/    F000 : =2CH                LINEP:	EQU	2CH		;ZEIGER AUF ZEILE
     111/    F000 : =2DH                CURS:	EQU	2DH		;PHYS. CURSORADRESSE
     112/    F000 : =2FH                PU:	EQU	2FH		;HILFSZELLE			(TIME + Status CONST)
     113/    F000 : =33H                WORKA:	EQU	33H		;HILFSZELLE			(ASGN)
     114/    F000 : =34H                BUFFA:	EQU	34H		;PUFFER FARBCODE		Zeichen unter Cursor
     115/    F000 : =35H                BU:	EQU	35H		;HILFSZELLE			(RCONB)
     116/    F000 : =36H                EOR:	EQU	36H		;ZEIGER AUF LOG. RAM - ENDE
     117/    F000 : =3BH                P1ROL:	EQU	3BH		;1. ZU ROLLENDE ZEILE-1
     118/    F000 : =3CH                P2ROL:	EQU	3CH		;LETZTE ZU ROLLENDE ZEILE+1
     119/    F000 : =3DH                P3ROL:	EQU	3DH		;1. ZU ROLLENDE SPALTE-1
     120/    F000 : =3EH                P4ROL:	EQU	3EH		;LETZTE ZU ROLLENDE SPALTE+1
     121/    F000 : =3FH                BUFF:	EQU	3FH		;PUFFER FUER ZEICHEN		unter Cursor
     122/    F000 : =40H                PARBU:	EQU	40H		;HILFSZELLE			(ASGN)
     123/    F000 : =5CH                FCB:	EQU	5CH		;FILE-CONTROL-BLOCK
     124/    F000 : =69H                PSUM:	EQU	69H		;PRUEFSUMME
     125/    F000 : =6AH                ARB:	EQU	6AH		;ARBEITSZELLE
     126/    F000 : =6BH                BLNR:	EQU	6BH		;BLOCKNUMMER
     127/    F000 : =6CH                LBLNR:	EQU	6CH		;ZU LESENDE BLOCKNUMMER
     128/    F000 : =6DH                AADR:	EQU	6DH		;ANFANGSADRESSE
     129/    F000 : =6FH                EADR:	EQU	6FH		;ENDADRESSE
     130/    F000 : =71H                START:	EQU	71H		;STARTADRESSE
     131/    F000 : =80H                CONBU:	EQU	80H		;CCP ZEICHENKETTENPUFFER
     132/    F000 : =80H                STDMA:	EQU	80H		;STANDARDPUFFER FUER KASSETTE
     133/    F000 : =100H               INTLN:	EQU	100H		;INTERNER ZWISCHENPUFFER
     134/    F000 : =EC00H              SCTOP:	EQU	0EC00H		;ADR. ZEICHENSPEICHER
     135/    F000 : =EFC0H              MAPPI:	EQU	0F000H-64	;SYSTEMBYTE
     136/    F000 : =EFC1H              MAPAR:	EQU	MAPPI+1		;64 BIT KONFIG.-REGISTER
     137/    F000 : =EFC9H              ATTY:	EQU	MAPAR+8		;ADR. TREIBERADRESSVEKTOR
     138/    F000 : =EFCBH              ACRT1:	EQU	ATTY+2		;VEKT.-ADR. CRT-TREIBER CONST
     139/    F000 : =EFCDH              ABAT:	EQU	ACRT1+2		;VEKT.-ADR. BAT-TREIBER CONST
     140/    F000 : =EFE3H              ACRT2:	EQU	ACRT1+24	;VEKT.-ADR. CRT-TREIBER LIST
     141/    F000 : =EFE9H              TXCON:	EQU	ATTY+32		;ZEICHENKETTENADRESSVEKTOR
     142/    F000 :                     				;VEKT.-ADR. STRING FUER CONST
     143/    F000 : =EFEBH              TXRDR:	EQU	TXCON+2		;VEKT.-ADR. STRING FUER READER
     144/    F000 : =EFEDH              TXPUN:	EQU	TXCON+4		;VEKT.-ADR. STRING FUER PUNCH
     145/    F000 : =EFEFH              TXLPT:	EQU	TXCON+6		;VEKT.-ADR. STRING FUER LIST
     146/    F000 : =28H                LINEL:	EQU	40		;LAENGE PHYSISCHE BILDSCHIRMZEILE
     147/    F000 : =400H               ONEKB:	EQU	400H		;KONSTANTE 1 KBYTE
     148/    F000 : =1H                 STIOB:	EQU	1		;STANDARD I/O-BYTE
     149/    F000 : =2H                 TYPIE:	EQU	2		;TYP EINGABEFEHLER
     150/    F000 : =3H                 ZYPRE:	EQU	3		;TYP BEREICHSFEHLER
     151/    F000 : =8H                 CURSL:	EQU	8		;CURSOR LINKS
     152/    F000 : =9H                 CURSR:	EQU	9		;CURSOR RECHTS
     153/    F000 : =AH                 CURSD:	EQU	0AH		;CURSOR RUNTER (LF)
     154/    F000 : =BH                 CURSU:	EQU	0BH		;CURSOR HOCH
     155/    F000 : =CH                 CLEAR:	EQU	0CH		;BILDSCHIRM LOESCHEN
     156/    F000 : =DH                 CARIG:	EQU	0DH		;CURSOR AN ZEILENANFANG (CR)
     157/    F000 : =20H                SPACE:	EQU	20H		;LEERZEICHEN
     158/    F000 : =20H                FIRST:	EQU	SPACE		;1. DRUCKBARES ZEICHEN
     159/    F000 :                     ;
     160/    F000 :                     ; System-PIO ist PIO1
     161/    F000 : =88H                DPIO1A:	equ	88H		;Daten Kanal A		Video
     162/    F000 : =89H                DPIO1B:	equ	89H		;Daten Kanal B		User-E/A
     163/    F000 : =8AH                SPIO1A:	equ	8aH		;Steuerung Kanal A
     164/    F000 : =8BH                SPIO1B:	equ	8bH		;Steuerung Kanal B
     165/    F000 :                     
     166/    F000 :                     ; Tastatur-PIO ist PIO2
     167/    F000 : =90H                DPIOA:	EQU	90H		;TASTATUR-PIO A DATEN
     168/    F000 : =91H                DPIOB:	EQU	91H		;TASTATUR-PIO B DATEN
     169/    F000 : =92H                SPIOA:	EQU	92H		;TASTATUR-PIO A KOMMANDO
     170/    F000 : =93H                SPIOB:	EQU	93H		;TASTATUR-PIO B KOMMANDO
     171/    F000 : =80H                CTC0:	EQU	80H
     172/    F000 : =82H                CTC2:	EQU	82H
     173/    F000 : =83H                CTC3:	EQU	83H
     174/    F000 :                     ;
     175/    F000 :                     ;	EJEC
     176/    F000 :                     ;
     177/    F000 :                     ;*******************************************************************
     178/    F000 :                     ;*                                                                 *
     179/    F000 :                     ;* 	OPERATING SYSTEM  -  S P R U N G TA B E L L E              *
     180/    F000 :                     ;*                                                                 *
     181/    F000 :                     ;*******************************************************************
     182/    F000 :                     ;
     183/    F000 : C3 64 F6            RESET:	JP	INIT		;KALTSTART
     184/    F003 : C3 AE F6            	JP	WBOOT		;WARMSTART
     185/    F006 : C3 56 F7            CSTS:	JP	CONST		;STATUS CONST
     186/    F009 : C3 7F F7            CONSI:	JP	CONIN		;EINGABE ZEICHEN VON CONST
     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
     190/    F015 : C3 A8 F7            READI:	JP	READR		;EINGABE ZEICHEN VON READER
     191/    F018 : C3 C4 F7            GETST:	JP	GSTIK		;ABFRAGE SPIELHEBEL
     192/    F01B : C3 DE F5            	JP	BOSER		;NICHT GENUTZT
     193/    F01E : C3 0B F8            SETTI:	JP	STIME		;STELLEN UHRZEIT
     194/    F021 : C3 FC F7            GETTI:	JP	GTIME		;ABFRAGE UHRZEIT
     195/    F024 : C3 DF F7            SETDM:	JP	SDMA		;SETZEN ADR. KASSETTENPUFFER
     196/    F027 : C3 34 F4            READS:	JP	READ		;BLOCKLESEN SEQUENTIELL
     197/    F02A : C3 6F F4            WRITS:	JP	WRITE		;BLOCKSCHREIBEN SEQUENTIELL
     198/    F02D : C3 A4 F7            	JP	LLIST		;STATUS LIST
     199/    F030 : C3 33 F7            	JP	GCURS		;ABFRAGE PHYS. CURSORADRESSE
     200/    F033 : C3 37 F7            	JP	SCURS		;SETZEN PHYS. CURSORADRESSE
     201/    F036 : C3 DE F5            	JP	BOSER		;NICHT GENUTZT
     202/    F039 : C3 D2 F7            GETIO:	JP	GIOBY		;ABFRAGE I/O-BYTE
     203/    F03C : C3 D9 F7            SETIO:	JP	SIOBY		;SETZEN I/O-BYTE
     204/    F03F : C3 E5 F7            GETM:	JP	GMEM		;LOGISCHER SPEICHERTEST
     205/    F042 : C3 F4 F7            SETM:	JP	SMEM		;SETZEN SPEICHERKONFIGURATION
     206/    F045 :                     ;
     207/    F045 :                     ;	EJEC
     208/    F045 :                     ;
     209/    F045 :                     ;*******************************************************************
     210/    F045 :                     ;*                                                                 *
     211/    F045 :                     ;* 	BASIC OPERATING SYSTEM  -  A D R E S S T A B E L L E       *
     212/    F045 :                     ;*                                                                 *
     213/    F045 :                     ;*******************************************************************
     214/    F045 :                     ;
     215/    F045 : 64 F6               JPVEK:	DW	INIT		;KALTSTART/RESET		<00>
     216/    F047 : 09 F0               	DW	CONSI		;EINGABE VON CONST		<01>
     217/    F049 : 0C F0               	DW	CONSO		;AUSGABE ZU CONST		<02>
     218/    F04B : 15 F0               	DW	READI		;EINGABE VON READER		<03>
     219/    F04D : 12 F0               	DW	PUNO		;AUSGABE ZU PUNCH		<04>
     220/    F04F : 0F F0               	DW	LISTO		;AUSGABE ZU LIST		<05>
     221/    F051 : 18 F0               	DW	GETST		;ABFRAGE SPIELHEBEL		<06>
     222/    F053 : 39 F0               	DW	GETIO		;ABFRAGE I/O-BYTE		<07>
     223/    F055 : 3C F0               	DW	SETIO		;SETZEN I/O-BYTE		<08>
     224/    F057 : E2 F3               	DW	PRNST		;AUSGABE ZEICHENKETTE		<09>
     225/    F059 : 65 F3               	DW	RCONB		;EINGABE ZEICHENKETTE		<10>
     226/    F05B : 06 F0               	DW	CSTS		;STATUS CONST			<11>
     227/    F05D : F3 F3               	DW	RETVN		;ABFRAGEVERSIONSNUMMER		<12>
     228/    F05F : F8 F3               	DW	OPENR		;OPEN LESEN KASSETTE		<13>
     229/    F061 : 2D F4               	DW	CLOSR		;CLOSE LESEN KASSETTE		<14>
     230/    F063 : 45 F4               	DW	OPENW		;OPEN SCHREIBEN KASSETTE	<15>
     231/    F065 : 6A F4               	DW	CLOSW		;CLOSE SCHREIBEN KASSETTE	<16>
     232/    F067 : 3C F7               	DW	GETCU		;ABFRAGE LOG. CURSORADR.	<17>
     233/    F069 : 3B F7               	DW	SETCU		;SETZEN LOG. CURSORADR.		<18>
     234/    F06B : DE F5               	DW	BOSER		;NICHT GENUTZT
     235/    F06D : 27 F0               	DW	READS		;BLOCKLESEN SEQUENTIELL		<20>
     236/    F06F : 2A F0               	DW	WRITS		;BLOCKSCHREIBEN SEQUENTIELL	<21>
     237/    F071 : 1E F0               	DW	SETTI		;STELLEN UHRZEIT		<22>
     238/    F073 : 21 F0               	DW	GETTI		;ABFRAGE UHRZEIT		<23>
     239/    F075 : A8 F4               	DW	PRITI		;AUSGABE UHRZEIT		<24>
     240/    F077 : E3 FA               	DW	INITA		;INITIALISIERUNG TASTATUR	<25>
     241/    F079 : 24 F0               	DW	SETDM		;SETZEN ADR. KASSETTENPUFF.	<26>
     242/    F07B : 3F F0               	DW	GETM		;LOG. SPEICHERTEST		<27>
     243/    F07D : 42 F0               	DW	SETM		;SETZEN SPEICHERKONFIG.		<28>
     244/    F07F : 3E F7               	DW	DCU		;LOESCHEN CURSOR		<29>
     245/    F081 : 3D F7               	DW	SCU		;ANZEIGE CURSOR			<30>
     246/    F083 : B9 F5               	DW	COEXT		;VORVERARBEITEN ZEICHENKET.	<31>
     247/    F085 : DE F5               	DW	BOSER		;NICHT GENUTZT
     248/    F087 : D8 F4               	DW	RRAND		;BLOCKLESEN			<33>
     249/    F089 :                     ;
     250/    F089 :                     ;	EJEC
     251/    F089 :                     ;
     252/    F089 :                     ;*******************************************************************
     253/    F089 :                     ;*                                                                 *
     254/    F089 :                     ;* 	C O N S O L  -  C O M M A N D  -  P R O G R A M            *
     255/    F089 :                     ;*                                                                 *
     256/    F089 :                     ;*******************************************************************
     257/    F089 :                     ;
     258/    F089 : 21 89 F0            GOCPM:	LD	HL,GOCPM
     259/    F08C : E5                  	PUSH	HL		;RUECKKEHRADR. KELLERN
     260/    F08D : 21 80 00            	LD	HL,STDMA
     261/    F090 : 22 1B 00            	LD	(DMA),HL	;STANDARDKASSETTENPUFFER
     262/    F093 : 3E 3E               	LD	A,'>'
     263/    F095 : CD 05 F3            	CALL	OUTA		;AUSGABE PROMPT
     264/    F098 : CD 5C F3            	CALL	GETMS		;EINGABE KOMMANDOZEILE
     265/    F09B : 38 23               	JR	C, DISPE	;STOP-TASTE ODER FEHLER
     266/    F09D : CD B9 F5            	CALL	COEXT		;VORVERARB. EINGABEZEILE
     267/    F0A0 : D8                  	RET	C		;ZEICHENKETTE LEER
     268/    F0A1 : 21 EA F5            	LD	HL,ERDIS
     269/    F0A4 : E5                  	PUSH	HL		;ADR. FEHLERROUTINE KELLERN
     270/    F0A5 : CD EA F1            	CALL	GVAL		;1.PARAMETER HOLEN
     271/    F0A8 : CA E6 F5            	JP	Z, ERPAR	;KEIN NAME
     272/    F0AB :                     ;*******************************************************************
     273/    F0AB :                     ;* 	BEHANDLUNG TRANSIENTKOMMANDOS                              *
     274/    F0AB :                     ;*******************************************************************
     275/    F0AB :                     ;
     276/    F0AB :                     ;NAMEN IM SPEICHER SUCHEN
     277/    F0AB : C5                  INDV:	PUSH	BC		;TRENNZEICHEN MERKEN
     278/    F0AC : CD 8E F2            	CALL	CPROM		;NAMEN IM SPEICHER SUCHEN
     279/    F0AF : C1                  	POP	BC
     280/    F0B0 : 28 07               	JR	Z, JMPHL	;NAMEN GEFUNDEN (HL)=STARTADR.
     281/    F0B2 :                     ;*******************************************************************
     282/    F0B2 :                     ;* 	PROGRAMM LADEN UND STARTEN                                 *
     283/    F0B2 :                     ;*******************************************************************
     284/    F0B2 : CD 26 F5            INFIL:	CALL	LOAD1		;DATEI LADEN
     285/    F0B5 : D8                  	RET	C		;FEHLER BEIM LADEN
     286/    F0B6 : 2A 71 00            	LD	HL,(START)	;(HL)=GELESENE STARTADRESSE
     287/    F0B9 : E9                  JMPHL:	JP	(HL)		;SPRUNG ZUR AUSFUEHRUNG
     288/    F0BA :                     ;*******************************************************************
     289/    F0BA :                     ;* 	A S G N   -   KOMMANDO                                     *
     290/    F0BA :                     ;*******************************************************************
     291/    F0BA :                     ; Funktion: Zuweisung log. Gerät - phys. Gerät
     292/    F0BA :                     ; 	    Anzeige der aktuellen Zuweisung
     293/    F0BA :                     ; a) Eingang
     294/    F0BA :                     ; 	- ASGN
     295/    F0BA :                     ; 	gerufen von:  GOCPM über JMP (HL)
     296/    F0BA :                     ; 	Parameter  : CY 0 weitere Parameter im Konsolpuffer
     297/    F0BA :                     ; 		        1 keine weiteren Parameter
     298/    F0BA :                     ; b) gerufene Programme
     299/    F0BA :                     ; c) Ausgang
     300/    F0BA :                     ; 	- ALDEV
     301/    F0BA :                     ; 	- DISPA
     302/    F0BA :                     ;
     303/    F0BA : 08                  ASGN:	EX	AF, AF'
     304/    F0BB : 30 2A               	JR	NC, ALDEV	;WEITERE PARAMETER FOLGEN
     305/    F0BD :                     ;
     306/    F0BD :                     ;ANZEIGE DER AKTUELLEN ZUWEISUNGEN
     307/    F0BD :                     ;
     308/    F0BD :                     ; Funktion:  Anzeige der aktuellen Gerätezuweisung
     309/    F0BD :                     ; a) Eingang
     310/    F0BD :                     ; 	- DISPA
     311/    F0BD :                     ; 	gerufen von: ASGN, ALDEV
     312/    F0BD :                     ; 	Parameter  : SADV Stringadreßvektor zur Adressierung der zum log. Gerät
     313/    F0BD :                     ; 			definierten Ausgebestrings
     314/    F0BD :                     ; 		     LOGDV Tabelle der logischen Geräte
     315/    F0BD :                     ; 	- DISPE
     316/    F0BD :                     ; 	gerufen von: GOCPM Zeichen-E/A-Fehler in der Kommandoeingabe
     317/    F0BD :                     ; b) gerufene Programme
     318/    F0BD :                     ; 	- OCRLF Ausgabe CRLF
     319/    F0BD :                     ; 	- PRNST Ausgabe String
     320/    F0BD :                     ; 	- OUTA Ausgabe Zeichen
     321/    F0BD :                     ; c) Ausgang
     322/    F0BD :                     ; 	- WBOOT Fehler nach Gerätezuweisung bei Zeichenausgabe
     323/    F0BD :                     ; d) Return
     324/    F0BD :                     ; 	Parameter: -
     325/    F0BD :                     ;
     326/    F0BD : CD FE F2            DISPA:	CALL	OCRLF
     327/    F0C0 : DA AE F6            DISPE:	JP	C, WBOOT	;FEHLER NACH ZUWEISUNG
     328/    F0C3 : 06 04               	LD	B,4		;ANZAHL DER LOG. GERAETE
     329/    F0C5 : 21 E9 EF            	LD	HL,TXCON	;ADRESSTABELLE ZEICHENKETTEN
     330/    F0C8 : 11 D5 FB            	LD	DE,PHYDV+2	;NAMENSTABELLE DER GERAETE
     331/    F0CB : CD E2 F3            DA2:	CALL	PRNST
     332/    F0CE : 3E 3A               	LD	A,':'
     333/    F0D0 : CD 05 F3            	CALL	OUTA
     334/    F0D3 : D5                  	PUSH	DE
     335/    F0D4 : 5E                  	LD	E,(HL)		;
     336/    F0D5 : 23                  	INC	HL		;
     337/    F0D6 : 56                  	LD	D,(HL)		;(DE)=ADRESSE DER ZUGEHOERIGEN
     338/    F0D7 : 23                  	INC	HL		;ZEICHENKETTE
     339/    F0D8 : E5                  	PUSH	HL
     340/    F0D9 : CD E2 F3            	CALL	PRNST		;AUSGABE ZEICHENKETTE
     341/    F0DC : E1                  	POP	HL
     342/    F0DD : D1                  	POP	DE
     343/    F0DE : 13                  	INC	DE
     344/    F0DF : 13                  	INC	DE
     345/    F0E0 : 13                  	INC	DE		;NAECHSTER GERAETENAME
     346/    F0E1 : CD FE F2            	CALL	OCRLF
     347/    F0E4 : 10 E5               	DJNZ	DA2
     348/    F0E6 : C9                  	RET
     349/    F0E7 :                     ;
     350/    F0E7 :                     ;
     351/    F0E7 :                     ;ZUWEISUNG LOGISCHES GERAET - PHYSISCHES GERAET
     352/    F0E7 :                     ;
     353/    F0E7 :                     ; a) Eingang
     354/    F0E7 :                     ;	- ALDEV
     355/    F0E7 :                     ; 	gerufen von: ASGN
     356/    F0E7 :                     ; 	Parameter : CONBU Konsolpuffer mit weiteren Eingabeparametern
     357/    F0E7 :                     ; b) gerufene Programme
     358/    F0E7 :                     ; 	- GVAL Parameter übernehmen
     359/    F0E7 :                     ; 	- LOCK  log. Gerätenamen suchen
     360/    F0E7 :                     ; 	- CDEL Zeichentest
     361/    F0E7 :                     ; 	- LOPDV  Suchen phys. Gerätenamen
     362/    F0E7 :                     ; 	- INDV Einlesen Treiberprogramm
     363/    F0E7 :                     ; 	- EXIO  Prüfen der Zuweisung
     364/    F0E7 :                     ; c) Ausgang
     365/    F0E7 :                     ; 	- ERPAR Parameterfehler
     366/    F0E7 :                     ; 	- ERINP Eingabefehler
     367/    F0E7 :                     ; 	- DISPA
     368/    F0E7 :                     ;
     369/    F0E7 : CD EA F1            ALDEV:	CALL	GVAL		;NAECHSTEN PARAMETER HOLEN
     370/    F0EA : 28 2C               	JR	Z, ALDE1	;KEIN NAME
     371/    F0EC : 08                  	EX	AF, AF'
     372/    F0ED : DA E6 F5            	JP	C, ERPAR	;NAECHSTER PARAMETER FEHLT
     373/    F0F0 : C5                  	PUSH	BC		;TRENNZEICHEN MERKEN
     374/    F0F1 : 01 09 04            	LD	BC,409H		;(B)=ANZAHL LOG. GERAETE
     375/    F0F4 :                     				;(C)=LAENGE TABELLENNAME
     376/    F0F4 : 21 D5 FB            	LD	HL,PHYDV+2
     377/    F0F7 : CD B8 F2            	CALL	LOCK		;NAME SUCHEN
     378/    F0FA : 58                  	LD	E,B
     379/    F0FB : C1                  	POP	BC
     380/    F0FC : 20 50               	JR	NZ, ALD00	;NAME NICHT GEFUNDEN
     381/    F0FE : 3E 04               	LD	A,4
     382/    F100 : 93                  	SUB	E
     383/    F101 : 87                  	ADD	A, A
     384/    F102 : 32 33 00            	LD	(WORKA),A	;ZWISCHENERGEBNIS MERKEN
     385/    F105 : 22 40 00            	LD	(PARBU),HL	;ADR. ZEICHENKETTE MERKEN
     386/    F108 : 79                  	LD	A,C
     387/    F109 : FE 3A               	CP	A, ':'
     388/    F10B : 20 05               	JR	NZ, ALDE0
     389/    F10D : CD C4 F1            	CALL	CDEL
     390/    F110 : FE 3D               	CP	A, '='
     391/    F112 : C2 E2 F5            ALDE0:	JP	NZ, ERINP	;FALSCHE TRENNZEICHEN
     392/    F115 : CD EA F1            	CALL	GVAL		;LETZTEN PARAMETER HOLEN
     393/    F118 : 28 5B               ALDE1:	JR	Z, ALDER	;KEIN NAME
     394/    F11A : C5                  	PUSH	BC		;TRENNZEICHEN MERKEN
     395/    F11B : CD B2 F2            	CALL	LOLDV		;PHYS. GERAETENAMEN SUCHEN
     396/    F11E : C1                  	POP	BC
     397/    F11F : 28 17               	JR	Z, ALD0		;NAMEN GEFUNDEN
     398/    F121 : CD AB F0            	CALL	INDV		;TREIBER VON KASSETTE HOLEN
     399/    F124 : D8                  	RET	C		;FEHLER BEIM LADEN
     400/    F125 :                     
     401/    F125 :                     ALD:
     402/    F125 : =>FALSE             	IF	osver == 11
     403/    F125 :                     	ex      af, af'
     404/    F125 : =>TRUE              	ELSE
     405/    F125 : 00                  	NOP
     406/    F126 : [402]               	ENDIF
     407/    F126 :                     
     408/    F126 : E5                  	PUSH	HL
     409/    F127 : D5                  	PUSH	DE
     410/    F128 : 7C                  	LD	A,H		;(H)=LOG. GERAETENUMMER (0,2,4,6,)
     411/    F129 : 84                  	ADD	A, H
     412/    F12A : 85                  	ADD	A, L		;(L)=PHYS. GERAETENUMMER
     413/    F12B : 87                  	ADD	A, A
     414/    F12C : 16 00               	LD	D,0
     415/    F12E : 5F                  	LD	E,A
     416/    F12F : 21 C9 EF            	LD	HL,ATTY		;TABELLE DER TREIBERADRESSEN
     417/    F132 : 19                  	ADD	HL,DE
     418/    F133 : 71                  	LD	(HL),C		;
     419/    F134 : 23                  	INC	HL		;ADRESSE IN TABELLE BRINGEN
     420/    F135 : 70                  	LD	(HL),B		;
     421/    F136 : D1                  	POP	DE
     422/    F137 : E1                  	POP	HL
     423/    F138 : 3A 04 00            ALD0:	LD	A,(IOBYT)	;I/O-BYTE MERKEN
     424/    F13B : 08                  	EX	AF, AF'
     425/    F13C : 30 37               	JR	NC, ALDER	;ZU VIELE PARAMETER
     426/    F13E : 3A 33 00            	LD	A,(WORKA)	;ZWISCHENERGEBNIS ZURUECK
     427/    F141 : 47                  	LD	B,A
     428/    F142 : 4D                  	LD	C,L
     429/    F143 : BC                  	CP	A, H		;
     430/    F144 : 28 0A               	JR	Z, ALD1		;
     431/    F146 : 95                  	SUB	L		;
     432/    F147 : 3C                  	INC	A		;
     433/    F148 : FE 06               	CP	A, 6		;TEST AUF ZULAESSIGE GERAETE
     434/    F14A : 28 04               	JR	Z, ALD1		;
     435/    F14C : 3D                  	DEC	A		;
     436/    F14D : B8                  	CP	A, B		;
     437/    F14E : 20 25               ALD00:	JR	NZ, ALDER	;FALSCHES GERAET
     438/    F150 : D5                  ALD1:	PUSH	DE
     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
     442/    F155 : 06 09               	LD	B,9
     443/    F157 : 3C                  	INC	A
     444/    F158 : CB 1E               ALD6:	RR	(HL)		;
     445/    F15A : 3D                  	DEC	A		;
     446/    F15B : 20 07               	JR	NZ, ALD66	;
     447/    F15D : CB 39               	SRL	C		;I/O-BYTE MODIFIZIEREN
     448/    F15F : CB 1E               	RR	(HL)		;
     449/    F161 : CB 39               	SRL	C		;
     450/    F163 : 05                  	DEC	B		;
     451/    F164 : 10 F2               ALD66:	DJNZ	ALD6
     452/    F166 : 43                  	LD	B,E
     453/    F167 : CD CE F2            	CALL	EXIO		;ZUWEISUNG PRUEFEN
     454/    F16A : D1                  	POP	DE
     455/    F16B : 30 0B               	JR	NC, ALD7	;ZUWEISUNGSFEHLER
     456/    F16D : 08                  	EX	AF, AF'
     457/    F16E : 32 04 00            	LD	(IOBYT),A	;I/O-BYTE RESTAURIEREN
     458/    F171 : 3E 04               	LD	A,4
     459/    F173 : 37                  	SCF
     460/    F174 : C9                  	RET
     461/    F175 : C3 E6 F5            ALDER:	JP	ERPAR
     462/    F178 : 2A 40 00            ALD7:	LD	HL,(PARBU)	;ZEICHENKETTENADR. ZURUECK
     463/    F17B : 73                  	LD	(HL),E		;
     464/    F17C : 23                  	INC	HL		;ADRESSE EINTRAGEN IN TABELLE
     465/    F17D : 72                  	LD	(HL),D		;
     466/    F17E : C3 BD F0            	JP	DISPA		;ZUWEISUNG ANZEIGEN
     467/    F181 :                     ;
     468/    F181 :                     ;*******************************************************************
     469/    F181 :                     ;* 	T I M E  -  KOMMANDO                                       *
     470/    F181 :                     ;*******************************************************************
     471/    F181 :                     ;
     472/    F181 : 08                  TIME_:	EX	AF, AF'
     473/    F182 : 38 34               	JR	C, ZAU		;KEIN WEITERER PARAMETER
     474/    F184 : 06 03               	LD	B,3		;ANZAHL PARAMETER
     475/    F186 : 3E 17               	LD	A,23		;BEREICHSGRENZE STUNDEN
     476/    F188 : 32 2F 00            T0:	LD	(PU),A
     477/    F18B : C5                  	PUSH	BC
     478/    F18C : CD EA F1            	CALL	GVAL		;NAECHSTEN PARAMETER HOLEN
     479/    F18F : C1                  	POP	BC
     480/    F190 : 20 E3               	JR	NZ, ALDER	;KEINE ZAHL
     481/    F192 : D8                  	RET	C		;NICHT KONVERTIERBAR
     482/    F193 : 5F                  	LD	E,A
     483/    F194 : 3A 2F 00            	LD	A,(PU)
     484/    F197 : BB                  	CP	A, E		;VERGLEICH MIT BEREICH
     485/    F198 : 3E 03               	LD	A,3
     486/    F19A : D8                  	RET	C		;WERT ZU GROSS
     487/    F19B : 4D                  T1:	LD	C,L
     488/    F19C : 6C                  	LD	L,H
     489/    F19D : 63                  	LD	H,E
     490/    F19E : 08                  	EX	AF, AF'
     491/    F19F : 38 10               	JR	C, T3		;KEIN WEITERER PARAMETER
     492/    F1A1 : 3E 3B               	LD	A,59		;GRENZE FUER MINUTEN; SEKUNDEN
     493/    F1A3 : 10 E3               	DJNZ	T0
     494/    F1A5 : C3 E2 F5            	JP	ERINP		;ZU VIELE PARAMETER
     495/    F1A8 : 22 1E 00            T2:	LD	(MIN),HL
     496/    F1AB : 79                  	LD	A,C
     497/    F1AC : 32 1D 00            	LD	(STUND),A
     498/    F1AF : B7                  	OR	A
     499/    F1B0 : C9                  	RET
     500/    F1B1 :                     ;FEHLENDE PARAMETER MIT 00 BELEGEN
     501/    F1B1 : 1E 00               T3:	LD	E,0
     502/    F1B3 : 08                  	EX	AF, AF'
     503/    F1B4 : 10 E5               	DJNZ	T1
     504/    F1B6 : 18 F0               	JR	T2		;EINTRAGEN
     505/    F1B8 :                     ;
     506/    F1B8 :                     ;AUSGABE DER AKTUELLEN UHRZEIT
     507/    F1B8 :                     ;
     508/    F1B8 : 11 01 01            ZAU:	LD	DE,INTLN+1	;ZWISCHENPUFFER
     509/    F1BB : CD A8 F4            	CALL	PRITI		;ZEICHENKETTE ERZEUGEN
     510/    F1BE : CD E2 F3            	CALL	PRNST		;ZEICHENKETTE AUSGEBEN
     511/    F1C1 : C3 FE F2            	JP	OCRLF
     512/    F1C4 :                     ;
     513/    F1C4 :                     ;ZEICHENTEST IN EINGABEZEILE
     514/    F1C4 :                     ;
     515/    F1C4 :                     ; Funktion: Übernahme des nächsten Zeichens aus dem Konsolpuffer
     516/    F1C4 :                     ; 	    Löschen des Zeichens mit Leerzeichen
     517/    F1C4 :                     ; 	    Test des Zeichens auf Trennzeichen (20H,’,’.’:’,0)
     518/    F1C4 :                     ; a) Eingang
     519/    F1C4 :                     ; 	- CDEL
     520/    F1C4 :                     ; 	gerufen von: GVAL, ALDER
     521/    F1C4 :                     ; 	Parameter  : CONBU Konsolpuffer
     522/    F1C4 :                     ; 	- CDEL2
     523/    F1C4 :                     ; 	gerufen von: GVAL Test eines Zeichens auf Trennzeichen 0
     524/    F1C4 :                     ; 	Parameter  : A zu testendes Zeichen
     525/    F1C4 :                     ; 		     Z 1
     526/    F1C4 :                     ; b)  gerufene Programme
     527/    F1C4 :                     ; 	- CDELI Zeichentest
     528/    F1C4 :                     ; c) Ausgang
     529/    F1C4 :                     ; 	-
     530/    F1C4 :                     ; d)  Return
     531/    F1C4 :                     ; 	Parameter: A, C getestetes Zeichen
     532/    F1C4 :                     ; 	Z 0   kein Trennzeichen, 1  Trennzeichen
     533/    F1C4 :                     ; 	CY 1   Trennzeichen, 0 (Kennzeichen für Stringende)
     534/    F1C4 :                     ; 	CONBU getestetes Zeichen gelöscht mit Leerzeichen
     535/    F1C4 :                     ;
     536/    F1C4 : 21 81 00            CDEL:	LD	HL,CONBU+1
     537/    F1C7 : 23                  CDEL1:	INC	HL
     538/    F1C8 : 7E                  	LD	A,(HL)
     539/    F1C9 : FE 20               	CP	A, ' '
     540/    F1CB : 28 FA               	JR	Z, CDEL1	;1. ZEICHEN<>20H SUCHEN
     541/    F1CD : CD D7 F1            	CALL	CDELI		;TRENNZEICHENTEST
     542/    F1D0 : 4F                  CDEL2:	LD	C,A
     543/    F1D1 : C0                  	RET	NZ		;ZEICHEN
     544/    F1D2 : FE 01               	CP	A, 1
     545/    F1D4 : D8                  	RET	C		;ENDE ZEICHENKETTE
     546/    F1D5 : BF                  	CP	A, A
     547/    F1D6 : C9                  	RET			;TRENNZEICHEN
     548/    F1D7 :                     ;
     549/    F1D7 :                     ;TEST AUF TRENNZEICHEN UND LOESCHEN GESTESTETES ZEICHEN
     550/    F1D7 : 7E                  CDELI:	LD	A,(HL)
     551/    F1D8 : B7                  	OR	A
     552/    F1D9 : C8                  	RET	Z		;ENDE ZEICHENKETTE
     553/    F1DA : E5                  	PUSH	HL
     554/    F1DB : C5                  	PUSH	BC
     555/    F1DC : 21 AB FC            	LD	HL,DTAB		;TABELLE DER TRENNZEICHEN
     556/    F1DF : 01 05 00            	LD	BC,5
     557/    F1E2 : ED B1               	CPIR
     558/    F1E4 : C1                  	POP	BC
     559/    F1E5 : E1                  	POP	HL
     560/    F1E6 : 36 20               	LD	(HL),' '	;LOESCHEN ZEICHEN IN PUFFER
     561/    F1E8 : 23                  	INC	HL
     562/    F1E9 : C9                  	RET
     563/    F1EA :                     ;
     564/    F1EA :                     ;PARAMETER AUS EINGABEZEILE HOLEN
     565/    F1EA :                     ;
     566/    F1EA :                     ; Funktion: Löschen internen Puffer (INTLN).
     567/    F1EA :                     ; 	    Übernahme Parameter aus CONBU nach INTLN
     568/    F1EA :                     ; 	    Test auf Parameterart
     569/    F1EA :                     ; 	    Konvertieren Parameter, wenn dieser ein Wert ist
     570/    F1EA :                     ; a) Eingang
     571/    F1EA :                     ; 	- GVAL
     572/    F1EA :                     ; 	gerufen von: WBOOT, GOCPM, ALDEV, STIME, LOAD
     573/    F1EA :                     ; 	Parameter  : CONBU Konsolpuffer
     574/    F1EA :                     ; b) gerufene Programme
     575/    F1EA :                     ; 	- CDEL Übernahme Zeichen aus CONBU und Test
     576/    F1EA :                     ; 	- CDEL1 Test Zeichen
     577/    F1EA :                     ; 	- CDEL2 Test Zeichen
     578/    F1EA :                     ; 	- CONV konvertieren Parameter
     579/    F1EA :                     ; c) Ausgang
     580/    F1EA :                     ; 	- ERINP  Eingabefehler im Parameter
     581/    F1EA :                     ; d) Return
     582/    F1EA :                     ; 	Parameter: Z  1 Parameter war Dezimalzahl
     583/    F1EA :                     ; 		      0 Parameter war keine Zahl
     584/    F1EA :                     ; 		   CY  0 kein Fehler
     585/    F1EA :                     ; 		       1 Fehler im Parameter
     586/    F1EA :                     ; 		   A  Konvertierte Dezimalzahl, wenn Z = 1 und CY = 0
     587/    F1EA :                     ; 		   C  den Parameter begrenzendes Trennzeichen
     588/    F1EA :                     ; 		   B  Länge des Parameters
     589/    F1EA :                     ; 		   HL  Adresse des nächsten Zeichens in CONBU
     590/    F1EA :                     ; 		   CY’ 0 weitere Parameter in CONBU (ist in Doku falsch!)
     591/    F1EA :                     ; 		       1 keine weiteren Parameter (ist in Doku falsch!)
     592/    F1EA :                     ; 		   A’ den Parameter begrenzendes Trennzeichen
     593/    F1EA :                     ; 		   INTLN  Länge des Parameters
     594/    F1EA :                     ; 		   INTLN+1. . . übernommener Parameter
     595/    F1EA :                     ; 		   CONBU übernommener Parameter und Trennzeichen gelöscht mit
     596/    F1EA :                     ; 			 Leerzeichen
     597/    F1EA :                     ;
     598/    F1EA : 11 52 01            GVAL:	LD	DE,INTLN+82
     599/    F1ED : AF                  	XOR	A
     600/    F1EE : 06 51               	LD	B,81
     601/    F1F0 : 12                  MOP0:	LD	(DE),A		;
     602/    F1F1 : 1B                  	DEC	DE		;LOESCHEN ZWISCHENPUFFER
     603/    F1F2 : 10 FC               	DJNZ	MOP0		;
     604/    F1F4 : E5                  	PUSH	HL
     605/    F1F5 : CD C4 F1            	CALL	CDEL		;TEST AUF TRENNZEICHEN
     606/    F1F8 : 38 0D               	JR	C, MOP3		;ENDE DER ZEICHENKETTE
     607/    F1FA : 28 0B               	JR	Z, MOP3		;TRENNZEICHEN GEFUNDEN
     608/    F1FC : 12                  MOP1:	LD	(DE),A
     609/    F1FD : 04                  	INC	B		;ALLE ZEICHEN BIS
     610/    F1FE : 13                  	INC	DE		;ZUM NAECHSTEN TRENNZEICHEN
     611/    F1FF : CD D7 F1            	CALL	CDELI		;UEBERNEHMEN
     612/    F202 : 20 F8               	JR	NZ, MOP1	;
     613/    F204 : CD D0 F1            	CALL	CDEL2
     614/    F207 : 78                  MOP3:	LD	A,B
     615/    F208 : 32 00 01            	LD	(INTLN),A	;PARAMETERLAENGE MERKEN
     616/    F20B : 79                  	LD	A,C
     617/    F20C : E1                  	POP	HL		;TRENNZEICHEN MERKEN
     618/    F20D : 08                  	EX	AF, AF'
     619/    F20E : 3A 01 01            	LD	A,(INTLN+1)
     620/    F211 : FE 30               	CP	A, '0'
     621/    F213 : 38 16               	JR	C, GV3
     622/    F215 : FE 3A               	CP	A, '9'+1
     623/    F217 : 30 12               	JR	NC, GV3
     624/    F219 : E5                  	PUSH	HL
     625/    F21A : C5                  	PUSH	BC
     626/    F21B : 11 00 01            	LD	DE,INTLN
     627/    F21E : CD 15 F8            	CALL	VIEXT		;KONVERTIEREN PARAMETER
     628/    F221 : C1                  	POP	BC
     629/    F222 : E1                  	POP	HL
     630/    F223 : 38 02               	JR	C, GV2		;NICHT KONVERTIERBAR
     631/    F225 : BF                  	CP	A, A
     632/    F226 : C9                  	RET			;IN ORDNUNG
     633/    F227 : BF                  GV2:	CP	A, A
     634/    F228 : C3 E2 F5            	JP	ERINP		;NICHT KONVERTIERBAR
     635/    F22B : FE 40               GV3:	CP	A, 40H
     636/    F22D : 38 F8               	JR	C, GV2
     637/    F22F : 37                  	SCF
     638/    F230 : C9                  	RET			;PARAMETER KEINE DEZIMALZAHL
     639/    F231 :                     ;
     640/    F231 :                     ;AENDERN LOGISCHE SPEICHERKONFIGURATION
     641/    F231 :                     ;
     642/    F231 : E5                  MOD:	PUSH	HL		;(HL)=SPEICHERADRESSE
     643/    F232 : C5                  	PUSH	BC		;(C)=STATUS (1 RAM, 0 ROM)
     644/    F233 : CD 4D F2            	CALL	CHR0
     645/    F236 : F5                  	PUSH	AF
     646/    F237 : CB 39               	SRL	C
     647/    F239 : 18 06               	JR	CR1
     648/    F23B :                     ;
     649/    F23B :                     ;LOGISCHER SPEICHERTEST
     650/    F23B :                     ;
     651/    F23B : E5                  CHRAM:	PUSH	HL		;(HL)=SPEICHERADRESSE
     652/    F23C : C5                  	PUSH	BC
     653/    F23D : CD 4D F2            	CALL	CHR0
     654/    F240 : F5                  	PUSH	AF
     655/    F241 : CD 69 F2            CR1:	CALL	CHR5
     656/    F244 : F1                  	POP	AF
     657/    F245 : C1                  	POP	BC
     658/    F246 : E1                  	POP	HL
     659/    F247 : F5                  	PUSH	AF
     660/    F248 : B7                  	OR	A
     661/    F249 : ED 52               	SBC	HL,DE		;HL=HL-400H
     662/    F24B : F1                  	POP	AF		;(A)=STATUS (1 RAM, 0 ROM)
     663/    F24C : C9                  	RET
     664/    F24D :                     ;
     665/    F24D : 11 00 04            CHR0:	LD	DE,400H
     666/    F250 : AF                  	XOR	A
     667/    F251 : ED 52               CHR1:	SBC	HL,DE
     668/    F253 : 3C                  	INC	A
     669/    F254 : 30 FB               	JR	NC, CHR1
     670/    F256 : 21 C1 EF            	LD	HL,MAPAR	;ADR. 64 BIT REGISTER FUER
     671/    F259 :                     				;SPEICHERSTATUS
     672/    F259 : D6 08               CHR2:	SUB	8
     673/    F25B : 23                  	INC	HL
     674/    F25C : 30 FB               	JR	NC, CHR2
     675/    F25E : C6 08               CHR3:	ADD	A, 8
     676/    F260 : 2B                  	DEC	HL
     677/    F261 : 28 FB               	JR	Z, CHR3
     678/    F263 : 06 09               CR33:	LD	B,9
     679/    F265 : CB 16               CHR4:	RL	(HL)
     680/    F267 : 3D                  	DEC	A
     681/    F268 : C8                  	RET	Z
     682/    F269 : 10 FA               CHR5:	DJNZ	CHR4
     683/    F26B : C9                  	RET
     684/    F26C :                     ;
     685/    F26C :                     ;ZEICHENKETTENVERGLEICH
     686/    F26C :                     ;
     687/    F26C :                     ; Funktion: Stringvergleich
     688/    F26C :                     ; a) Eingang
     689/    F26C :                     ; 	- CHEC
     690/    F26C :                     ; 	gerufen von: LOCK, OPENR
     691/    F26C :                     ; 	Parameter  : HL Adresse String 1
     692/    F26C :                     ; 		     DE Adresse String 2
     693/    F26C :                     ; 		     B Anzahl zu vergleichender Zeichen
     694/    F26C :                     ; b)  gerufene Programme
     695/    F26C :                     ; 	-
     696/    F26C :                     ; c)  Ausgang
     697/    F26C :                     ; 	-
     698/    F26C :                     ; d)  Return
     699/    F26C :                     ; 	Parameter: Z 1 String 1 = String 2
     700/    F26C :                     ; 	DE unverändert
     701/    F26C :                     ; 	HL Wort vor String 2
     702/    F26C :                     ;
     703/    F26C : E5                  CHEC:	PUSH	HL		;ADR. 1. ZEICHENKETTE
     704/    F26D : D5                  	PUSH	DE		;ADR. 2. ZEICHENKETTE
     705/    F26E : EB                  	EX	DE,HL
     706/    F26F : 1A                  CHC0:	LD	A,(DE)
     707/    F270 : FE 20               	CP	A, 20H
     708/    F272 : 28 04               	JR	Z, CH0
     709/    F274 : FE 40               	CP	A, 40H
     710/    F276 : 38 02               	JR	C, CHC01
     711/    F278 : E6 DF               CH0:	AND	A, 0DFH		;NUR GROSSBUCHSTABEN
     712/    F27A : BE                  CHC01:	CP	A, (HL)
     713/    F27B : 13                  	INC	DE
     714/    F27C : 23                  	INC	HL
     715/    F27D : 20 0C               	JR	NZ, CHC1
     716/    F27F : 10 EE               	DJNZ	CHC0		;(B)=ANZAHL ZEICHEN
     717/    F281 : D1                  	POP	DE
     718/    F282 : D1                  	POP	DE		;ADR. 1. ZEICHENKETTE
     719/    F283 : 6B                  	LD	L,E
     720/    F284 : 62                  	LD	H,D
     721/    F285 : 2B                  	DEC	HL
     722/    F286 : 7E                  	LD	A,(HL)
     723/    F287 : 2B                  	DEC	HL
     724/    F288 : 6E                  	LD	L,(HL)
     725/    F289 : 67                  	LD	H,A		;(HL)=WORT VOR 1. ZEICHENKETTE
     726/    F28A : C9                  	RET
     727/    F28B : D1                  CHC1:	POP	DE
     728/    F28C : E1                  	POP	HL
     729/    F28D : C9                  	RET
     730/    F28E :                     ;
     731/    F28E :                     ;SUCHEN TRANSIENTKOMMANDO IM SPEICHER
     732/    F28E :                     ;
     733/    F28E :                     ; Funktion: Suchen Kommando im Speicher
     734/    F28E :                     ; Kommando muß auf  integraler 100H-Grenze beginnen
     735/    F28E :                     ; Aufbau:JP KOMM
     736/    F28E :                     ; 	DB 'KNAME   ' ;8 Zeichen mit Space aufgefüllt
     737/    F28E :                     ; 	DA 00 ;Ende Kommandofeld
     738/    F28E :                     ; oder 	JP KOMM1
     739/    F28E :                     ; 	DB 'K1NAME  '
     740/    F28E :                     ; 	DB 0 ;Ende Kommando 1
     741/    F28E :                     ; 	JP KOMM2
     742/    F28E :                     ; 	DB 'K2NAME  '
     743/    F28E :                     ; 	DB 0 ;Ende Kommando 2
     744/    F28E :                     ; 	...
     745/    F28E :                     ; 	JP KOMMN
     746/    F28E :                     ; 	DB 'KNNAME  '
     747/    F28E :                     ; 	DA 0 ;Ende Kommandofeld
     748/    F28E :                     ; a) Eingang
     749/    F28E :                     ; 	- CPROM
     750/    F28E :                     ; 	gerufen von: WBOOT, GOCPM
     751/    F28E :                     ; 	Parameter  : INTLN INTLN+1 enthält Kommando in der Länge 8 Bytes
     752/    F28E :                     ; b) gerufene Programme
     753/    F28E :                     ; 	- LOCK Suchen String
     754/    F28E :                     ; c) Ausgang
     755/    F28E :                     ; d) Return
     756/    F28E :                     ; 	Parameter: Z 0 Kommando nicht gefunden
     757/    F28E :                     ; 		     1 Kommando gefunden
     758/    F28E :                     ; 		HL Adresse der Kommandoroutine
     759/    F28E :                     ; 		DE Adresse des Kommandos im Speicher
     760/    F28E :                     ;
     761/    F28E : 21 00 FC            CPROM:	LD	HL,0FC00H	;ANFANGSADRESSE
     762/    F291 : E5                  CP1:	PUSH	HL
     763/    F292 : 3E C3               CP2:	LD	A,0C3H
     764/    F294 : ED A1               	CPI			;SPRUNGBEFEHL SUCHEN
     765/    F296 : 20 12               	JR	NZ, CP22	;AUF NAECHSTER ADRESSSE SUCHEN
     766/    F298 : 23                  	INC	HL
     767/    F299 : 23                  	INC	HL
     768/    F29A : C5                  	PUSH	BC
     769/    F29B : 01 0B 01            	LD	BC,10BH
     770/    F29E : CD B8 F2            	CALL	LOCK		;VERGLEICH ZEICHENKETTE
     771/    F2A1 : C1                  	POP	BC
     772/    F2A2 : 28 0C               	JR	Z, CPE1		;GEFUNDEN
     773/    F2A4 : AF                  	XOR	A
     774/    F2A5 : 2B                  	DEC	HL
     775/    F2A6 : 2B                  	DEC	HL
     776/    F2A7 : BE                  	CP	A, (HL)		;00h statt C3h (Listendende)?
     777/    F2A8 : 20 E8               	JR	NZ, CP2		;WEITER MIT KOMMANDOTABELLE
     778/    F2AA : E1                  CP22:	POP	HL
     779/    F2AB : 25                  CP3:	DEC	H		;NAECHSTE 100H-GRENZE
     780/    F2AC : =>FALSE             	if rombank
     781/    F2AC :                     	JP	ROMBK		;Sprung zur ROM-Bank
     782/    F2AC : =>TRUE              	else
     783/    F2AC : 20 E3               	JR	NZ, CP1
     784/    F2AE : 24                  	INC	H
     785/    F2AF : [780]               	endif
     786/    F2AF : C9                  	RET			;NICHT GEFUNDEN
     787/    F2B0 : C1                  CPE1:	POP	BC		;TRANS.-KOMMANDO GEFUNDEN
     788/    F2B1 : C9                  	RET
     789/    F2B2 :                     ;VERGLEICH EINGABE MIT TREIBERNAMEN  BAT  UND  CRT
     790/    F2B2 : 01 06 02            LOLDV:	LD	BC,0206H
     791/    F2B5 : 21 26 FC            	LD	HL,LOGDV+2	;NAMENSTABELLE
     792/    F2B8 :                     ;VERGLEICH
     793/    F2B8 : 11 01 01            LOCK:	LD	DE,INTLN+1
     794/    F2BB : C5                  LOCK1:	PUSH	BC
     795/    F2BC : 41                  	LD	B,C
     796/    F2BD : 05                  	DEC	B
     797/    F2BE : 05                  	DEC	B
     798/    F2BF : CD 6C F2            	CALL	CHEC
     799/    F2C2 : C1                  	POP	BC
     800/    F2C3 : C8                  	RET	Z		;GEFUNDEN
     801/    F2C4 : 79                  	LD	A,C
     802/    F2C5 : 23                  LOCK2:	INC	HL
     803/    F2C6 : 3D                  	DEC	A
     804/    F2C7 : 20 FC               	JR	NZ, LOCK2
     805/    F2C9 : 10 F0               	DJNZ	LOCK1
     806/    F2CB : F6 01               	OR	1
     807/    F2CD : C9                  	RET
     808/    F2CE :                     ;
     809/    F2CE :                     ;PRUEFEN TREIBERADRESSE ENTSPRECHEND I/O-BYTE
     810/    F2CE :                     ;
     811/    F2CE :                     ; Funktion: Lesen einer ausgewählten Treiberadresse
     812/    F2CE :                     ; 	    Prüfen der gültigen Zuweisung
     813/    F2CE :                     ; a) Eingang
     814/    F2CE :                     ; 	- EXIO
     815/    F2CE :                     ; 	gerufen von: ALDEV, CONST
     816/    F2CE :                     ; 	Parameter  : B interne Nummer des log. Gerätes (0, 2, 4, 6)
     817/    F2CE :                     ; 			0 : CONST
     818/    F2CE :                     ; 			6 : LIST
     819/    F2CE :                     ; 		     IOBYT
     820/    F2CE :                     ; 		     Treiberadreßvektor
     821/    F2CE :                     ; b) gerufene Programme
     822/    F2CE :                     ; 	- COMPW Vergleichen DE und HL
     823/    F2CE :                     ; c) Ausgang
     824/    F2CE :                     ; 	-
     825/    F2CE :                     ; d) Return
     826/    F2CE :                     ; 	Parameter: CY 1 keine Treiberadresse gefunden (FFFFH)
     827/    F2CE :                     ; 		      0 Adresse gefunden
     828/    F2CE :                     ; 	           HL Treiberadresse
     829/    F2CE :                     ;
     830/    F2CE : F5                  EXIO:	PUSH	AF
     831/    F2CF : 16 00               	LD	D,0
     832/    F2D1 : 58                  	LD	E,B		;INTERNE LOG. GERAETENUMMER
     833/    F2D2 : 78                  	LD	A,B		;(0, 2, 4, 6)
     834/    F2D3 : B7                  	OR	A
     835/    F2D4 : 3A 04 00            	LD	A,(IOBYT)
     836/    F2D7 : 28 04               	JR	Z, SH1
     837/    F2D9 : CB 3F               SH:	SRL	A
     838/    F2DB : 10 FC               	DJNZ	SH
     839/    F2DD : CB 23               SH1:	SLA	E
     840/    F2DF : E6 03               	AND	A, 3
     841/    F2E1 : 83                  	ADD	A, E
     842/    F2E2 : 5F                  	LD	E,A
     843/    F2E3 : 21 C9 EF            	LD	HL,ATTY		;TABELLE DER TREIBERADRESSEN
     844/    F2E6 : F1                  	POP	AF
     845/    F2E7 : 19                  	ADD	HL,DE		;ADRESSE DER BENOETIGTEN
     846/    F2E8 : 19                  	ADD	HL,DE		;TREIBERADR. BERECHNEN
     847/    F2E9 : E5                  	PUSH	HL
     848/    F2EA : 5E                  	LD	E,(HL)
     849/    F2EB : 23                  	INC	HL
     850/    F2EC : 56                  	LD	D,(HL)
     851/    F2ED : 21 FF FF            	LD	HL,-1
     852/    F2F0 : EB                  	EX	DE,HL
     853/    F2F1 : CD BC FC            	CALL	COMPW		;TREIBERADR. = FFFFH
     854/    F2F4 :                     				;JA --> GERAET NICHT ZUGEWIESEN
     855/    F2F4 : D1                  	POP	DE
     856/    F2F5 : 3F                  	CCF
     857/    F2F6 : C9                  	RET			;(HL)=ADR. DER TREIBERROUTINE
     858/    F2F7 :                     ;
     859/    F2F7 : E5                  MOVE:	PUSH	HL
     860/    F2F8 : D5                  	PUSH	DE
     861/    F2F9 : C5                  	PUSH	BC
     862/    F2FA : ED B0               	LDIR
     863/    F2FC : 18 0E               	JR	OUTS2
     864/    F2FE :                     ;
     865/    F2FE : 3E 0D               OCRLF:	LD	A,0DH
     866/    F300 : CD 05 F3            	CALL	OUTA
     867/    F303 : 3E 0A               	LD	A,0AH
     868/    F305 :                     ;
     869/    F305 : E5                  OUTA:	PUSH	HL
     870/    F306 : D5                  	PUSH	DE
     871/    F307 : C5                  	PUSH	BC
     872/    F308 : 4F                  	LD	C,A
     873/    F309 : CD 83 F7            	CALL	COOUT
     874/    F30C : C1                  OUTS2:	POP	BC
     875/    F30D : D1                  	POP	DE
     876/    F30E : E1                  	POP	HL
     877/    F30F : C9                  	RET
     878/    F310 :                     ;
     879/    F310 : 3E 20               OSPAC:	LD	A,20H
     880/    F312 : 18 F1               	JR	OUTA
     881/    F314 :                     ;
     882/    F314 :                     ;	EJEC
     883/    F314 :                     ;
     884/    F314 :                     ;*******************************************************************
     885/    F314 :                     ;*                                                                 *
     886/    F314 :                     ;* 	B A S I C  -  O P E R A T I N G  -  S Y S T E M            *
     887/    F314 :                     ;*                                                                 *
     888/    F314 :                     ;*******************************************************************
     889/    F314 :                     ;
     890/    F314 : ED 73 0B 00         BOS:	LD	(SPSV),SP	;SICHERN ANWENDERSTACK
     891/    F318 : 31 C0 01            	LD	SP,1C0H		;BOS - STACK
     892/    F31B : 37                  	SCF
     893/    F31C : 3F                  	CCF
     894/    F31D : E5                  	PUSH	HL
     895/    F31E : D5                  	PUSH	DE
     896/    F31F : F5                  	PUSH	AF
     897/    F320 : ED 43 0D 00         	LD	(BCSV),BC
     898/    F324 : 32 0F 00            	LD	(ASV),A
     899/    F327 : 21 45 F3            	LD	HL,BOSE
     900/    F32A : E5                  	PUSH	HL		;RUECKKEHRADRESSE KELLERN
     901/    F32B : 3E 21               	LD	A,33
     902/    F32D : B9                  	CP	A, C
     903/    F32E : DA DE F5            	JP	C, BOSER	;UNERLAUBTER SYSTEMRUF
     904/    F331 : 06 00               	LD	B,0
     905/    F333 : 21 45 F0            	LD	HL,JPVEK	;ADRESSTABELLE DER SYSTEMRUFE
     906/    F336 : 09                  	ADD	HL,BC
     907/    F337 : 09                  	ADD	HL,BC
     908/    F338 : 7E                  	LD	A,(HL)
     909/    F339 : 23                  	INC	HL
     910/    F33A : 66                  	LD	H,(HL)
     911/    F33B : 6F                  	LD	L,A
     912/    F33C : 4B                  	LD	C,E		;EINGANGSPARAMETER
     913/    F33D : 42                  	LD	B,D		;UEBERNEHMEN
     914/    F33E : 3A 0F 00            	LD	A,(ASV)
     915/    F341 : E5                  	PUSH	HL		;SYSTEMRUFADRESSE KELLERN
     916/    F342 : 2E 03               	LD	L,3		;ANFANGSWERT FUER CURSORRUFE
     917/    F344 : C9                  	RET			;SPRUNG ZUR AUSFUEHRUNG
     918/    F345 :                     ;
     919/    F345 :                     ;AUSGANG AUS BOS
     920/    F345 : 30 06               BOSE:	JR	NC, BOSE1	;KEIN FEHLER
     921/    F347 : CD EA F5            	CALL	ERDIS		;AUSGABE FEHLERMELDUNG
     922/    F34A : F1                  	POP	AF
     923/    F34B : 37                  	SCF			;SETZEN FEHLERSTATUS
     924/    F34C : F5                  	PUSH	AF
     925/    F34D : F1                  BOSE1:	POP	AF
     926/    F34E : D1                  	POP	DE
     927/    F34F : E1                  	POP	HL
     928/    F350 : 3A 0F 00            	LD	A,(ASV)
     929/    F353 : ED 4B 0D 00         	LD	BC,(BCSV)
     930/    F357 : ED 7B 0B 00         	LD	SP,(SPSV)
     931/    F35B : C9                  	RET
     932/    F35C :                     ;
     933/    F35C :                     ;EINGABE ZEICHENKETTE IN MONITORPUFFER
     934/    F35C :                     ;
     935/    F35C :                     ; Funktion:    Eingabe String in Monitorpuffer (80H)
     936/    F35C :                     ; a) Eingang
     937/    F35C :                     ; 	- GETMS
     938/    F35C :                     ; 	gerufen von: GOCPM, REQU
     939/    F35C :                     ; 	Parameter  : -
     940/    F35C :                     ; b) gerufene Programme
     941/    F35C :                     ; 	- CONIN Eingabe Zeichen
     942/    F35C :                     ; 	- OUTA Ausgabe Zeichen in A
     943/    F35C :                     ; c) Ausgang
     944/    F35C :                     ; 	- RCONB
     945/    F35C :                     ; 	Parameter: DE Adresse Consolepuffer (80H)
     946/    F35C :                     ;
     947/    F35C : 11 80 00            GETMS:	LD	DE,CONBU
     948/    F35F : 3E 50               	LD	A,80		;LAENGE INITIALISIEREN
     949/    F361 : 12                  	LD	(DE),A
     950/    F362 : 3A 0F 00            	LD	A,(ASV)
     951/    F365 :                     ;
     952/    F365 :                     ;EINGABE ZEICHENKETTE
     953/    F365 :                     ;
     954/    F365 : 6B                  RCONB:	LD	L,E
     955/    F366 : 62                  	LD	H,D
     956/    F367 : 23                  	INC	HL
     957/    F368 : 4D                  	LD	C,L
     958/    F369 : 44                  	LD	B,H
     959/    F36A : 03                  	INC	BC
     960/    F36B : 36 00               	LD	(HL),0		;LAENGE ZEICHENKETTE = 0
     961/    F36D : 32 35 00            	LD	(BU),A
     962/    F370 : E5                  GETS1:	PUSH	HL
     963/    F371 : D5                  	PUSH	DE
     964/    F372 : C5                  	PUSH	BC
     965/    F373 : CD 7F F7            	CALL	CONIN		;EINGABE EIN ZEICHEN
     966/    F376 : C1                  	POP	BC
     967/    F377 : D1                  	POP	DE
     968/    F378 : E1                  	POP	HL
     969/    F379 : D8                  	RET	C		;FEHLER BEI ZEICHENEINGABE
     970/    F37A : E5                  	PUSH	HL
     971/    F37B : 21 17 00            	LD	HL,COLSW	;ZELLE FUER FARBSTEUERZEICHEN
     972/    F37E : 34                  	INC	(HL)
     973/    F37F : 35                  	DEC	(HL)		; HL <> 0 ?
     974/    F380 : E1                  	POP	HL
     975/    F381 : 20 2B               	JR	NZ, GETS0	;dann UEBERNEHMEN FARBCODE
     976/    F383 : FE 03               	CP	A, 03		;STOP - TASTE
     977/    F385 : 20 03               	JR	NZ, GETS2
     978/    F387 : AF                  	XOR	A
     979/    F388 : 37                  	SCF
     980/    F389 : C9                  	RET
     981/    F38A : FE 1F               GETS2:	CP	A, 1FH		;DEL - TASTE
     982/    F38C : 28 1B               	JR	Z, GETS5	;LOESCHEN LETZTES ZEICHEN
     983/    F38E : FE 02               	CP	A, 2		;CLLN - TASTE
     984/    F390 : 20 07               	JR	NZ, GETS4
     985/    F392 : CD C6 F3            GETS3:	CALL	GETBS
     986/    F395 : 20 FB               	JR	NZ, GETS3	;LOESCHEN GESAMTE ZEILE
     987/    F397 : 18 D7               	JR	GETS1
     988/    F399 : FE 0D               GETS4:	CP	A, 0DH		;ENTER - TASTE
     989/    F39B : 28 20               	JR	Z, GETSE	;ENDE
     990/    F39D : FE 0B               	CP	A, 0BH		;CURSOR HOCH
     991/    F39F : 28 CF               	JR	Z, GETS1	;IGNORIEREN
     992/    F3A1 : FE 0A               	CP	A, 0AH		;CURSOR RUNTER
     993/    F3A3 : 28 CB               	JR	Z, GETS1	;IGNORIEREN
     994/    F3A5 : FE 08               	CP	A, 8		;CURSOR LINKS
     995/    F3A7 : 20 05               	JR	NZ, GETS0
     996/    F3A9 : CD C6 F3            GETS5:	CALL	GETBS		;LETZTES ZEICHEN LOESCHEN
     997/    F3AC : 18 C2               	JR	GETS1
     998/    F3AE : FE 10               GETS0:	CP	A, 10H		;CTRL/P
     999/    F3B0 : 28 03               	JR	Z, GETS8	;NUR AUSFUEHREN
    1000/    F3B2 : 34                  	INC	(HL)		;ZEICHEN IN
    1001/    F3B3 : 02                  	LD	(BC),A		;ZEICHENKETTE
    1002/    F3B4 : 03                  	INC	BC		;UEBERNEHMEN
    1003/    F3B5 : CD 05 F3            GETS8:	CALL	OUTA		;AUSGABE DES ZEICHENS
    1004/    F3B8 : D8                  	RET	C		;FEHLER BEI AUSGABE
    1005/    F3B9 : 1A                  	LD	A,(DE)
    1006/    F3BA : BE                  	CP	A, (HL)		;PUFFER VOLL?
    1007/    F3BB : 20 B3               	JR	NZ, GETS1
    1008/    F3BD : 3A 35 00            GETSE:	LD	A,(BU)
    1009/    F3C0 : 32 0F 00            	LD	(ASV),A
    1010/    F3C3 : C3 FE F2            	JP	OCRLF
    1011/    F3C6 :                     ;
    1012/    F3C6 :                     ;BEHANDLUNG EIN ZEICHEN LOESCHEN
    1013/    F3C6 : 34                  GETBS:	INC	(HL)
    1014/    F3C7 : 35                  GBS1:	DEC	(HL)
    1015/    F3C8 : C8                  	RET	Z		;ALLES GELOESCHT
    1016/    F3C9 : 0B                  	DEC	BC
    1017/    F3CA : 0A                  	LD	A,(BC)
    1018/    F3CB : FE 09               	CP	A, 9		;CURSOR RECHTS
    1019/    F3CD :                     
    1020/    F3CD : 28 0C               	JR	Z, GBS2
    1021/    F3CF : FE 20               	CP	A, 20H
    1022/    F3D1 : 38 F4               	JR	C, GBS1		;STEUERZEICHEN GEFUNDEN
    1023/    F3D3 : 3E 08               	LD	A,8
    1024/    F3D5 : CD 05 F3            	CALL	OUTA
    1025/    F3D8 : CD 10 F3            	CALL	OSPAC
    1026/    F3DB : 3E 08               GBS2:	LD	A,8
    1027/    F3DD : CD 05 F3            	CALL	OUTA
    1028/    F3E0 : 35                  	DEC	(HL)
    1029/    F3E1 : C9                  	RET
    1030/    F3E2 :                     ;
    1031/    F3E2 :                     ;AUSGABE ZEICHENKETTE
    1032/    F3E2 : 1A                  PRNST:	LD	A,(DE)
    1033/    F3E3 : B7                  	OR	A		;ZEICHENKETTENENDE ?
    1034/    F3E4 : 20 06               	JR	NZ, PRN1
    1035/    F3E6 : 3A 17 00            	LD	A,(COLSW)
    1036/    F3E9 : B7                  	OR	A		;WAR 0-BYTE EIN FARBCODE ?
    1037/    F3EA : C8                  	RET	Z		;KEIN FARBCODE
    1038/    F3EB : AF                  	XOR	A
    1039/    F3EC : CD 05 F3            PRN1:	CALL	OUTA
    1040/    F3EF : D8                  	RET	C		;FEHLER BEI AUSGABE
    1041/    F3F0 : 13                  	INC	DE
    1042/    F3F1 : 18 EF               	JR	PRNST		;NAECHSTES ZEICHEN
    1043/    F3F3 :                     ;
    1044/    F3F3 :                     ;ABFRAGE VERSIONSNUMMER
    1045/    F3F3 :                     ;
    1046/    F3F3 : =>FALSE             RETVN:	IF osver == 11
    1047/    F3F3 :                     	LD	HL,101H
    1048/    F3F3 : =>TRUE              	ELSEIF osver == 12
    1049/    F3F3 : 21 02 01            	LD	HL,102H
    1050/    F3F6 : =>FALSE             	ELSEIF osver == 13
    1051/    F3F6 :                     	LD	HL,103H
    1052/    F3F6 : [1046]              	ENDIF
    1053/    F3F6 : 18 38               	JR	CLR1
    1054/    F3F8 :                     ;
    1055/    F3F8 :                     ;OPEN FUER KASSETTE LESEN
    1056/    F3F8 :                     ;
    1057/    F3F8 : CD 93 F5            OPENR:	CALL	REQU		;AUSGABE STARTMELDUNG
    1058/    F3FB : 3C                  	INC	A
    1059/    F3FC : D8                  	RET	C		;STOP GEGEBEN
    1060/    F3FD : E5                  	PUSH	HL
    1061/    F3FE : AF                  	XOR	A		;BLOCKNUMMER 0 LESEN
    1062/    F3FF : 32 6C 00            	LD	(LBLNR),A
    1063/    F402 : CD 34 F4            	CALL	READ		;BLOCKLESEN
    1064/    F405 : E1                  	POP	HL
    1065/    F406 : 22 1B 00            	LD	(DMA),HL	;PUFFERADR. ZURUECKSETZEN
    1066/    F409 : D8                  	RET	C		;LESEFEHLER
    1067/    F40A : E5                  	PUSH	HL
    1068/    F40B : 11 11 00            	LD	DE,17		;OFFS. AADR (= AADR-FCB)
    1069/    F40E : 19                  	ADD	HL,DE
    1070/    F40F : 11 6D 00            	LD	DE,AADR
    1071/    F412 :                     
    1072/    F412 : =>FALSE             	IF	osver == 11
    1073/    F412 :                     	LD	BC,6
    1074/    F412 : =>TRUE              	ELSE
    1075/    F412 : 01 08 00            	LD	BC,8
    1076/    F415 : [1072]              	ENDIF
    1077/    F415 :                     
    1078/    F415 : ED B0               	LDIR			;DATEIPARAMETER UEBERNEHMEN
    1079/    F417 : D1                  	POP	DE
    1080/    F418 : 21 5C 00            	LD	HL,FCB
    1081/    F41B : 06 0B               	LD	B,11
    1082/    F41D : CD 6C F2            	CALL	CHEC		;NAMENSVERGLEICH
    1083/    F420 : 3E 0D               	LD	A,13
    1084/    F422 : 37                  	SCF
    1085/    F423 : C0                  	RET	NZ		;FALSCHE DATEI GELESEN
    1086/    F424 :                     
    1087/    F424 : =>FALSE             	IF	osver == 11
    1088/    F424 :                     	LD	a,(fcb+11)
    1089/    F424 : =>TRUE              	ELSE
    1090/    F424 : 3A 73 00            	LD	A,(FCB+23)	;SCHUTZBYTE
    1091/    F427 : [1087]              	ENDIF
    1092/    F427 :                     
    1093/    F427 : B7                  	OR	A
    1094/    F428 : C8                  	RET	Z		;KEIN SCHUTZ
    1095/    F429 : 32 C0 EF            	LD	(MAPPI),A	;SYSTEMSCHUTZ EIN
    1096/    F42C : C9                  	RET
    1097/    F42D :                     ;
    1098/    F42D :                     ;CLOSE FUER KASSETTE LESEN
    1099/    F42D :                     ;
    1100/    F42D : 21 6D 00            CLOSR:	LD	HL,AADR		;ADRESSE DER DATEIPARAMETER
    1101/    F430 : 22 0D 00            CLR1:	LD	(BCSV),HL	;UEBERGEBEN
    1102/    F433 : C9                  	RET
    1103/    F434 :                     ;
    1104/    F434 :                     ;BLOCKLESEN SEQUENTIELL
    1105/    F434 :                     ;
    1106/    F434 : CD D8 F4            READ:	CALL	RRAND		;BLOCK LESEN
    1107/    F437 : D8                  	RET	C		;LESEFEHLER
    1108/    F438 : 22 1B 00            	LD	(DMA),HL	;PUFFERADR. UM 128 ERHOEHEN
    1109/    F43B : 21 6C 00            	LD	HL,LBLNR
    1110/    F43E : 34                  	INC	(HL)		;ZU LESENDE BLOCKNUMMER ERHOEHEN
    1111/    F43F : F5                  	PUSH	AF
    1112/    F440 : CD 10 F3            	CALL	OSPAC		;AUSGABE LEERZEICHEN
    1113/    F443 : F1                  	POP	AF
    1114/    F444 : C9                  	RET
    1115/    F445 :                     ;
    1116/    F445 :                     ;OPEN FUER KASSETTE SCHREIBEN
    1117/    F445 :                     ;
    1118/    F445 : CD 93 F5            OPENW:	CALL	REQU		;AUSGABE STARTMELDUNG
    1119/    F448 : 3C                  	INC	A
    1120/    F449 : D8                  	RET	C		;STOP GEGEBEN
    1121/    F44A : E5                  	PUSH	HL
    1122/    F44B : 21 5C 00            	LD	HL,FCB
    1123/    F44E : 22 1B 00            	LD	(DMA),HL	;SCHREIBEN DES FCB
    1124/    F451 : 3E 00               	LD	A,0
    1125/    F453 :                     
    1126/    F453 : =>FALSE             	IF	osver == 11
    1127/    F453 :                     	LD	(fcb+11),a
    1128/    F453 : =>TRUE              	ELSE
    1129/    F453 : 32 73 00            	LD	(FCB+23),A	;KEIN SCHUTZ
    1130/    F456 : [1126]              	ENDIF
    1131/    F456 :                     
    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
    1135/    F45D : 3E 02               	LD	A,2
    1136/    F45F : 32 6C 00            	LD	(LBLNR),A
    1137/    F462 : CD 72 F4            	CALL	WRIT1		;SCHREIBEN BLOCK
    1138/    F465 : E1                  	POP	HL
    1139/    F466 : 22 1B 00            	LD	(DMA),HL	;PUFFERADR. AUF AUSGANGSWERT
    1140/    F469 : C9                  	RET
    1141/    F46A :                     ;
    1142/    F46A :                     ;CLOSE FUER KASSETTE SCHREIBEN
    1143/    F46A :                     ;
    1144/    F46A : 3E FF               CLOSW:	LD	A,0FFH
    1145/    F46C : 32 6B 00            	LD	(BLNR),A	;BLOCKNUMMER FFH
    1146/    F46F :                     ;
    1147/    F46F :                     ;BLOCKSCHREIBEN SEQUENTIELL
    1148/    F46F :                     ;
    1149/    F46F : 01 A0 00            WRITE:	LD	BC,0A0H		;KURZER VORTON
    1150/    F472 : ED 5B 1B 00         WRIT1:	LD	DE,(DMA)	;PUFFERADRESSE
    1151/    F476 : 3A C0 EF            	LD	A,(MAPPI)
    1152/    F479 : B7                  	OR	A
    1153/    F47A : 28 04               	JR	Z, WRIT2	;KEIN SCHUTZ VOR SCHREIBEN
    1154/    F47C : 3E 09               WERR:	LD	A,9		;SCHREIBSCHUTZ
    1155/    F47E : 37                  WERR1:	SCF			;FEHLERAUSGANG
    1156/    F47F : C9                  	RET
    1157/    F480 : 2A 36 00            WRIT2:	LD	HL,(EOR)	;LOGISCHES RAM - ENDE
    1158/    F483 : D5                  	PUSH	DE
    1159/    F484 : 11 7F 00            	LD	DE,7FH
    1160/    F487 : ED 52               	SBC	HL,DE
    1161/    F489 : D1                  	POP	DE
    1162/    F48A : CD BC FC            	CALL	COMPW		;ADRESSVERGLEICH
    1163/    F48D : 3E 0A               	LD	A,10
    1164/    F48F : 38 ED               	JR	C, WERR1	;BLOCK LIEGT HINTER RAM - ENDE
    1165/    F491 : EB                  	EX	DE,HL
    1166/    F492 : CD 3B F2            	CALL	CHRAM		;LOGISCHER SPEICHERTEST
    1167/    F495 : 30 E5               	JR	NC, WERR	;BEREICH IST GESCHUETZT/ROM
    1168/    F497 : CD D6 FE            	CALL	KARAM		;AUSGABE BLOCK
    1169/    F49A : 22 1B 00            	LD	(DMA),HL	;PUFFERADR. UM 128 ERHOEHEN
    1170/    F49D : 21 6B 00            	LD	HL,BLNR
    1171/    F4A0 : 7E                  	LD	A,(HL)
    1172/    F4A1 : 32 0F 00            	LD	(ASV),A		;BLOCKNUMMER ZURUECKGEBEN
    1173/    F4A4 : 34                  	INC	(HL)		;BLOCKNUMMER ERHOEHEN
    1174/    F4A5 : C3 E3 FA            	JP	INITA		;TASTATUR INITIALISIERN
    1175/    F4A8 :                     ;
    1176/    F4A8 :                     ;AUSGABE DER AKTUELLEN UHRZEIT
    1177/    F4A8 :                     ;
    1178/    F4A8 : D5                  PRITI:	PUSH	DE
    1179/    F4A9 : 01 1D 00            	LD	BC,STUND	;ADRESSE DER UHRZEIT
    1180/    F4AC : 16 03               	LD	D,3
    1181/    F4AE : 21 01 01            	LD	HL,INTLN+1	;ZWISCHENPUFFER
    1182/    F4B1 : E5                  	PUSH	HL
    1183/    F4B2 : 2B                  	DEC	HL
    1184/    F4B3 : 36 3A               PRTI1:	LD	(HL),':'
    1185/    F4B5 : 23                  	INC	HL
    1186/    F4B6 : 0A                  	LD	A,(BC)
    1187/    F4B7 : C5                  	PUSH	BC
    1188/    F4B8 : B7                  	OR	A
    1189/    F4B9 : 28 07               	JR	Z, PRTI3
    1190/    F4BB : 47                  	LD	B,A		;
    1191/    F4BC : AF                  	XOR	A		;INTERNE ZAHL
    1192/    F4BD : C6 01               PRTI2:	ADD	A, 1		;IN BCD - ZAHL UMWANDELN
    1193/    F4BF : 27                  	DAA			;
    1194/    F4C0 : 10 FB               	DJNZ	PRTI2		;
    1195/    F4C2 : 77                  PRTI3:	LD	(HL),A
    1196/    F4C3 : 3E 33               	LD	A,33H		;
    1197/    F4C5 : ED 67               	RRD			;IN DRUCKBARE ZEICHEN
    1198/    F4C7 : 23                  	INC	HL		;UMWANDELN
    1199/    F4C8 : 77                  	LD	(HL),A  	;
    1200/    F4C9 : 23                  	INC	HL
    1201/    F4CA : 36 00               	LD	(HL),0		;ENDE ZEICHENKETTE
    1202/    F4CC : C1                  	POP	BC
    1203/    F4CD : 03                  	INC	BC
    1204/    F4CE : 15                  	DEC	D
    1205/    F4CF : 20 E2               	JR	NZ, PRTI1
    1206/    F4D1 : E1                  	POP	HL
    1207/    F4D2 : D1                  	POP	DE
    1208/    F4D3 : 0E 08               	LD	C,8
    1209/    F4D5 : C3 F7 F2            	JP	MOVE		;KETTE ZUR ANGEGEBENEN ADR.
    1210/    F4D8 :                     ;
    1211/    F4D8 :                     ;BLOCKLESEN
    1212/    F4D8 :                     ;
    1213/    F4D8 : 2A 36 00            RRAND:	LD	HL,(EOR)	;LOGISCHES RAM - ENDE
    1214/    F4DB : 11 7F 00            	LD	DE,7FH
    1215/    F4DE : ED 52               	SBC	HL,DE
    1216/    F4E0 : ED 5B 1B 00         	LD	DE,(DMA)	;PUFFERADRESSE
    1217/    F4E4 : CD BC FC            	CALL	COMPW		;ADRESSVERGLEICH
    1218/    F4E7 : 3E 0A               	LD	A,10
    1219/    F4E9 : D8                  	RET	C		;BLOCK UEBERSCHREIBT RAM - ENDE
    1220/    F4EA : EB                  	EX	DE,HL
    1221/    F4EB : CD 3B F2            	CALL	CHRAM		;LOGISCHER SPEICHERTEST
    1222/    F4EE : 3E 09               	LD	A,9
    1223/    F4F0 : 30 1D               	JR	NC, ERAND	;BEREICH GESCHUETZT/ROM
    1224/    F4F2 : F5                  RR1:	PUSH	AF
    1225/    F4F3 : F1                  RR2:	POP	AF
    1226/    F4F4 : CD 59 FF            	CALL	MAREK		;EINGABE BLOCK
    1227/    F4F7 : CD E3 FA            	CALL	INITA		;TASTATUR INITIALISIEREN
    1228/    F4FA : F5                  	PUSH	AF
    1229/    F4FB : E5                  	PUSH	HL
    1230/    F4FC : 21 6C 00            	LD	HL,LBLNR	;ZU LESENDE BLOCKNUMMER
    1231/    F4FF : 3A 6B 00            	LD	A,(BLNR)	;GELESENE BLOCKNUMMER
    1232/    F502 : BE                  	CP	A, (HL)
    1233/    F503 : E1                  	POP	HL
    1234/    F504 : 38 ED               	JR	C, RR2		;BLOCKNUMMER NOCH NICHT ERREICHT
    1235/    F506 : 28 09               	JR	Z, RROK		;GEFUNDEN
    1236/    F508 : FE FF               	CP	A, 0FFH
    1237/    F50A : 28 05               	JR	Z, RROK		;ENDEBLOCK GELESEN
    1238/    F50C : F1                  	POP	AF
    1239/    F50D : 3E 0B               	LD	A,11		;BLOCKNUMMER ZU GROSS
    1240/    F50F : 37                  ERAND:	SCF
    1241/    F510 : C9                  	RET
    1242/    F511 : F1                  RROK:	POP	AF
    1243/    F512 : 3E 0C               	LD	A,12
    1244/    F514 : D8                  	RET	C		;LESEFEHLER
    1245/    F515 : 3A 6B 00            	LD	A,(BLNR)	;RUECKGABE EOF - KENNZEICHEN
    1246/    F518 : 3C                  	INC	A
    1247/    F519 : 3E 00               	LD	A,0
    1248/    F51B : 20 01               	JR	NZ, RROK1
    1249/    F51D : 3C                  	INC	A
    1250/    F51E : 32 0F 00            RROK1:	LD	(ASV),A		;1 WENN ENDEBLOCK, SONST 0
    1251/    F521 : C9                  	RET
    1252/    F522 :                     ;
    1253/    F522 :                     ;
    1254/    F522 :                     ;
    1255/    F522 :                     ;
    1256/    F522 :                     ;*******************************************************************
    1257/    F522 :                     ;* 	C L O A D   -   KOMMANDO                                   *
    1258/    F522 :                     ;*******************************************************************
    1259/    F522 :                     ;
    1260/    F522 :                     ;
    1261/    F522 :                     ; Funktion:    Laden eines Programms
    1262/    F522 :                     ; a) Eingang
    1263/    F522 :                     ; 	- LOAD
    1264/    F522 :                     ; 	gerufen von: INFIL, CLOAD
    1265/    F522 :                     ; 	Parameter  : CONBU mit gesuchtem Namen
    1266/    F522 :                     ; b)  gerufene Programme
    1267/    F522 :                     ; 	- GVAL Parameterübernahme
    1268/    F522 :                     ; 	- MOV verschieben Speicherbereich
    1269/    F522 :                     ; 	- OPENR Eröffnen für Lesen
    1270/    F522 :                     ; 	- READ Lesen eines Blockes
    1271/    F522 :                     ; 	- REA Abfrage Bedienerhandlung bei Fehler
    1272/    F522 :                     ; c) Ausgang
    1273/    F522 :                     ; 	- ERPAR Parameterfehler
    1274/    F522 :                     ; 	- ERINP Eingabefehler
    1275/    F522 :                     ; 	- OCRLF Ausgabe CR/LF nach Einlesen
    1276/    F522 :                     ; 	Parameter: CY 0 keine Fehler
    1277/    F522 :                     ; 		      1 Fehler, Code in A
    1278/    F522 :                     ; 		   Programm ab Anfangsadresse im Speicher
    1279/    F522 :                     ; 		   DMA nach Programm
    1280/    F522 :                     ;
    1281/    F522 : CD EA F1            LOAD:	CALL	GVAL		;NAECHSTEN PARAMETER HOLEN
    1282/    F525 : C8                  	RET	Z		;KEIN GUELTIGER NAME
    1283/    F526 :                     ;
    1284/    F526 :                     ;DATEI LADEN OHNE START
    1285/    F526 : 21 E6 F5            LOAD1:	LD	HL,ERPAR
    1286/    F529 : E5                  	PUSH	HL
    1287/    F52A : 3A 00 01            	LD	A,(INTLN)	;PARAMETERLAENGE
    1288/    F52D : FE 09               	CP	A, 9
    1289/    F52F : D0                  	RET	NC		;NAME ZU LANG
    1290/    F530 : 11 5C 00            	LD	DE,FCB
    1291/    F533 : 3E 08               	LD	A,8
    1292/    F535 : CD 88 F5            	CALL	MOV		;NAME IN FCB EINTRAGEN
    1293/    F538 : 08                  	EX	AF, AF'
    1294/    F539 : 30 0E               	JR	NC, LOAD3	;DATEITYP FOLGT
    1295/    F53B : 08                  	EX	AF, AF'
    1296/    F53C : 21 43 4F            	LD	HL,4F43H	;STANDARDEINTRAGUNG
    1297/    F53F : 22 64 00            	LD	(FCB+8),HL	;
    1298/    F542 : 3E 4D               	LD	A,'M'		;COM VORNEHMEN
    1299/    F544 : 32 66 00            	LD	(FCB+10),A	;
    1300/    F547 : 18 16               	JR	LOA33
    1301/    F549 : 79                  LOAD3:	LD	A,C
    1302/    F54A : FE 2E               	CP	A, '.'
    1303/    F54C : E1                  	POP	HL
    1304/    F54D : C2 E2 F5            	JP	NZ, ERINP	;FALSCHES TRENNZEICHEN
    1305/    F550 : E5                  	PUSH	HL
    1306/    F551 : CD EA F1            	CALL	GVAL		;PARAMETER HOLEN
    1307/    F554 : C8                  	RET	Z		;KEIN GUELTIGER TYP
    1308/    F555 : 3E 03               	LD	A,3
    1309/    F557 : B8                  	CP	A, B		;TYP IST ZU LANG
    1310/    F558 : D8                  	RET	C
    1311/    F559 : 11 64 00            	LD	DE,FCB+8	;TYP IN FCB EINTRAGEN
    1312/    F55C : CD 88 F5            	CALL	MOV
    1313/    F55F : E1                  LOA33:	POP	HL
    1314/    F560 : 08                  	EX	AF, AF'
    1315/    F561 : D2 E2 F5            	JP	NC, ERINP	;ZU VIELE PARAMETER
    1316/    F564 : CD F8 F3            LOAD4:	CALL	OPENR
    1317/    F567 : 30 09               	JR	NC, LOAD5	;KEIN FEHLER
    1318/    F569 : B7                  	OR	A
    1319/    F56A : 37                  	SCF
    1320/    F56B : C8                  	RET	Z		;STOP GEGEBEN
    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
    1324/    F572 : 2A 6D 00            LOAD5:	LD	HL,(AADR)	;DATEIANFANGSADRESSE
    1325/    F575 : 22 1B 00            	LD	(DMA),HL	;NACH ADR. KASSETTENPUFFER
    1326/    F578 : CD 34 F4            LOA55:	CALL	READ		;LESEN BLOCK
    1327/    F57B : 30 05               	JR	NC, LOAD6	;KEIN FEHLER
    1328/    F57D : CD A3 F5            	CALL	REA		;AUSG. FEHLERMELD. WARTEN REAKT.
    1329/    F580 : D8                  	RET	C		;STOP GEGEBEN
    1330/    F581 : AF                  	XOR	A
    1331/    F582 : B7                  LOAD6:	OR	A
    1332/    F583 : 28 F3               	JR	Z, LOA55	;WEITER BIS DATEIENDE LESEN
    1333/    F585 : C3 FE F2            	JP	OCRLF
    1334/    F588 :                     ;
    1335/    F588 : 21 01 01            MOV:	LD	HL,INTLN+1	;ZWISCHENPUFFER
    1336/    F58B : 47                  	LD	B,A
    1337/    F58C : 7E                  MOV2:	LD	A,(HL)
    1338/    F58D : 12                  	LD	(DE),A
    1339/    F58E : 23                  	INC	HL
    1340/    F58F : 13                  	INC	DE
    1341/    F590 : 10 FA               	DJNZ	MOV2
    1342/    F592 : C9                  	RET
    1343/    F593 :                     ;
    1344/    F593 :                     ;AUSGABE STARTMELDUNG, WARTEN AUF ENTER
    1345/    F593 :                     ;
    1346/    F593 :                     ; Funktion: Ausgabe String 'start tape' , warten auf ENTER
    1347/    F593 :                     ; a) Eingang
    1348/    F593 :                     ; 	- REQU
    1349/    F593 :                     ; 	gerufen von: OPENR, OPENW
    1350/    F593 :                     ; 	- REQU0
    1351/    F593 :                     ; 	gerufen von: REA
    1352/    F593 :                     ; b) gerufene Programme
    1353/    F593 :                     ; 	- PRNST Ausgabe String
    1354/    F593 :                     ; 	- GETMS Eingabe String
    1355/    F593 :                     ; c) Ausgang
    1356/    F593 :                     ; 	-
    1357/    F593 :                     ; d) Return
    1358/    F593 :                     ; 	Parameter: A FFH wenn STOP
    1359/    F593 :                     ; 	             0 sonst
    1360/    F593 :                     ;
    1361/    F593 : 11 48 FC            REQU:	LD	DE,TXTRC	;TEXTADRESSE STARTMELDUNG
    1362/    F596 : CD E2 F3            	CALL	PRNST		;AUSGABE TEXT
    1363/    F599 : CD 5C F3            REQU0:	CALL	GETMS		;EINGABE ZEICHENKETTE
    1364/    F59C : 2A 1B 00            	LD	HL,(DMA)
    1365/    F59F : D0                  	RET	NC		;KEIN STOP
    1366/    F5A0 : 3E FF               	LD	A,0FFH
    1367/    F5A2 : C9                  	RET
    1368/    F5A3 :                     ;
    1369/    F5A3 :                     ;AUSGABE FEHLERMELDUNG, WARTEN AUF BEDIENERREAKTION
    1370/    F5A3 :                     ;
    1371/    F5A3 :                     ; Funktion: Ausgabe Fehlermeldung,  warten auf Bedienerhandlung
    1372/    F5A3 :                     ; a) Eingang
    1373/    F5A3 :                     ; 	- REA
    1374/    F5A3 :                     ; 	gerufen von: LOAD
    1375/    F5A3 :                     ; 	Parameter: A Fehlercode
    1376/    F5A3 :                     ; b) gerufene Programme
    1377/    F5A3 :                     ; 	- REQUO  warten auf Bedienerhandlung
    1378/    F5A3 :                     ; 	- MOD  verändern Speicherkonfiguration (bei Fehler 9)
    1379/    F5A3 :                     ; c) Ausgang
    1380/    F5A3 :                     ; 	-
    1381/    F5A3 :                     ; d) Return
    1382/    F5A3 :                     ; 	Parameter: CY 0 kein STOP
    1383/    F5A3 :                     ; 	              1 STOP, Fehlercode in A
    1384/    F5A3 :                     ;
    1385/    F5A3 : CD EA F5            REA:	CALL	ERDIS		;AUSGABE FEHLERMELDUNG
    1386/    F5A6 : CD 99 F5            REA1:	CALL	REQU0		;EINGABE ZEICHENKETTE
    1387/    F5A9 : D8                  	RET	C		;STOP GEGEBEN
    1388/    F5AA : 3A 0F 00            	LD	A,(ASV)
    1389/    F5AD : FE 09               	CP	9		;FEHLER DURCH GESCHUETZT. BEREICH
    1390/    F5AF : 37                  	SCF
    1391/    F5B0 : 3F                  	CCF
    1392/    F5B1 : C0                  	RET	NZ		;NEIN
    1393/    F5B2 : 0E 01               	LD	C,1
    1394/    F5B4 : CD 31 F2            	CALL	MOD		;SCHUTZ AUFHEBEN, DA NICHT STOP
    1395/    F5B7 : B7                  	OR	A
    1396/    F5B8 : C9                  	RET
    1397/    F5B9 :                     ;
    1398/    F5B9 :                     ;VORVERARBEITEN EINER ZEICHENKETTE
    1399/    F5B9 :                     ;
    1400/    F5B9 : 13                  COEXT:	INC	DE
    1401/    F5BA : 1A                  	LD	A,(DE)		;LAENGE ZEICHENKETTE
    1402/    F5BB : B7                  	OR	A
    1403/    F5BC : 28 1E               	JR	Z, COMP3	;ZEICHENKETTE LEER
    1404/    F5BE : 6B                  	LD	L,E
    1405/    F5BF : 62                  	LD	H,D
    1406/    F5C0 : E5                  	PUSH	HL
    1407/    F5C1 : 23                  	INC	HL
    1408/    F5C2 : 13                  	INC	DE
    1409/    F5C3 : 47                  	LD	B,A
    1410/    F5C4 : 0E 00               	LD	C,0
    1411/    F5C6 : EB                  	EX	DE,HL
    1412/    F5C7 : 3E 1F               	LD	A,1FH
    1413/    F5C9 : BE                  COMP1:	CP	A, (HL)
    1414/    F5CA : 30 05               	JR	NC, COMP2	;STEUERZEICHEN UEBERGEHEN
    1415/    F5CC : ED A0               	LDI			;ZEICHEN UEBERNEHMEN
    1416/    F5CE : 03                  	INC	BC
    1417/    F5CF : 03                  	INC	BC
    1418/    F5D0 : 2B                  	DEC	HL
    1419/    F5D1 : 23                  COMP2:	INC	HL		;NAECHSTES ZEICHEN
    1420/    F5D2 : 10 F5               	DJNZ	COMP1
    1421/    F5D4 : E1                  	POP	HL
    1422/    F5D5 : 71                  	LD	(HL),C		;NEUE LAENGE EINTRAGEN
    1423/    F5D6 : EB                  	EX	DE,HL
    1424/    F5D7 : 79                  	LD	A,C
    1425/    F5D8 : B7                  	OR	A
    1426/    F5D9 : 36 00               	LD	(HL),0		;0-BYTE AN KETTE ANHAENGEN
    1427/    F5DB : C0                  	RET	NZ
    1428/    F5DC : 37                  COMP3:	SCF			;NEUE ZEICHENKETTE IST LEER
    1429/    F5DD : C9                  	RET
    1430/    F5DE :                     ;
    1431/    F5DE :                     ;
    1432/    F5DE : 3E 07               BOSER:	LD	A,7
    1433/    F5E0 : 37                  	SCF
    1434/    F5E1 : C9                  	RET
    1435/    F5E2 : 3E 02               ERINP:	LD	A,TYPIE
    1436/    F5E4 : 37                  	SCF
    1437/    F5E5 : C9                  	RET
    1438/    F5E6 : 3E 01               ERPAR:	LD	A,1
    1439/    F5E8 : 37                  	SCF
    1440/    F5E9 : C9                  	RET
    1441/    F5EA :                     ;
    1442/    F5EA :                     ;AUSGEBEN FEHLERMELDUNG
    1443/    F5EA :                     ;
    1444/    F5EA :                     ; Funktion: Ausgabe Fehlermeldung
    1445/    F5EA :                     ; a) Eingang
    1446/    F5EA :                     ; 	- ERDIS
    1447/    F5EA :                     ; 	gerufen von: BOSE, REA, GOCPM
    1448/    F5EA :                     ; 	Parameter  : A Fehlercode
    1449/    F5EA :                     ; 		     CY 1 (bei 0 RET)
    1450/    F5EA :                     ; b) gerufene Programme
    1451/    F5EA :                     ; 	- PRNST Ausgabe String
    1452/    F5EA :                     ; 	- OUTA Ausgabe Zeichen in A
    1453/    F5EA :                     ; 	- OCRCF Ausgabe CR/LF34
    1454/    F5EA :                     ; c) Ausgang
    1455/    F5EA :                     ; 	-
    1456/    F5EA :                     ; d) Return
    1457/    F5EA :                     ; 	Parameter: CY 1
    1458/    F5EA :                     ; 		   A Fehlercode
    1459/    F5EA :                     ;
    1460/    F5EA : D0                  ERDIS:	RET	NC		;KEIN FEHLER
    1461/    F5EB : FE FF               	CP	A,0FFH
    1462/    F5ED : 37                  	SCF
    1463/    F5EE : C8                  	RET	Z		;KEINE MELDUNG, NUR INTERN
    1464/    F5EF : 32 0F 00            	LD	(ASV),A		;FEHLERNUMMER ZURUECKGEBEN
    1465/    F5F2 : B7                  	OR	A
    1466/    F5F3 : 37                  	SCF
    1467/    F5F4 : C8                  	RET	Z		;KEINE MELDUNG, NUR WARNUNG
    1468/    F5F5 : F5                  	PUSH	AF
    1469/    F5F6 :                     
    1470/    F5F6 : =>TRUE              	IF	osver <> 11
    1471/    F5F6 : AF                  	XOR	A
    1472/    F5F7 : 32 15 00            	LD	(LISW),A	;DRUCKER AUS
    1473/    F5FA : [1470]              	ENDIF
    1474/    F5FA :                     
    1475/    F5FA : CD FE F2            	CALL	OCRLF
    1476/    F5FD : F1                  	POP	AF
    1477/    F5FE : 11 5B FC            	LD	DE,TXTE
    1478/    F601 : D6 05               	SUB	5
    1479/    F603 : 30 0C               	JR	NC, ERD1
    1480/    F605 : F5                  	PUSH	AF		;A = 1...4
    1481/    F606 : CD E2 F3            	CALL	PRNST
    1482/    F609 : F1                  	POP	AF
    1483/    F60A : C6 35               	ADD	A, 35H
    1484/    F60C : CD 05 F3            	CALL	OUTA
    1485/    F60F : 18 4D               	JR	ERD6
    1486/    F611 : D6 02               ERD1:	SUB	2
    1487/    F613 : D8                  	RET	C		;A = 5 U. 6
    1488/    F614 : F5                  	PUSH	AF		;A = 7...13
    1489/    F615 : 11 56 FC            	LD	DE,TXTBE
    1490/    F618 : CD E2 F3            	CALL	PRNST
    1491/    F61B : 3E 3A               	LD	A,':'
    1492/    F61D : CD 05 F3            	CALL	OUTA
    1493/    F620 : CD 10 F3            	CALL	OSPAC
    1494/    F623 : F1                  	POP	AF
    1495/    F624 : 20 04               	JR	NZ, ERD2
    1496/    F626 : 06 08               	LD	B,8		;A = 7
    1497/    F628 : 18 03               	JR	ERD21
    1498/    F62A : 3D                  ERD2:	DEC	A
    1499/    F62B : 20 0F               	JR	NZ, ERD3
    1500/    F62D : 21 CC FB            ERD21:	LD	HL,PHYDV-7	;A = 8
    1501/    F630 : 11 09 00            	LD	DE,9
    1502/    F633 : CB 38               	SRL	B
    1503/    F635 : 04                  	INC	B
    1504/    F636 : 19                  ERD22:	ADD	HL,DE
    1505/    F637 : 10 FD               	DJNZ	ERD22
    1506/    F639 : EB                  	EX	DE,HL
    1507/    F63A : 18 1F               	JR	ERD5
    1508/    F63C : 11 62 FC            ERD3:	LD	DE,TXTMP
    1509/    F63F : 3D                  	DEC	A
    1510/    F640 : 28 19               	JR	Z, ERD5		;A = 9
    1511/    F642 : 11 73 FC            	LD	DE,TXTEO
    1512/    F645 : 3D                  	DEC	A
    1513/    F646 : 28 13               	JR	Z, ERD5		;A = 10
    1514/    F648 : 11 81 FC            	LD	DE,TXTNB
    1515/    F64B : 3D                  	DEC	A
    1516/    F64C : 28 0D               	JR	Z, ERD5		;A = 11
    1517/    F64E : 11 92 FC            	LD	DE,TXTPT
    1518/    F651 : 3D                  	DEC	A
    1519/    F652 : 28 07               	JR	Z, ERD5		;A = 12
    1520/    F654 : 11 9D FC            	LD	DE,TXTNF
    1521/    F657 : 3D                  	DEC	A
    1522/    F658 : 28 01               	JR	Z, ERD5		;A = 13
    1523/    F65A : 1B                  	DEC	DE
    1524/    F65B : CD E2 F3            ERD5:	CALL	PRNST		;AUSGABE MELDUNG
    1525/    F65E : CD FE F2            ERD6:	CALL	OCRLF
    1526/    F661 : AF                  STERR:	XOR	A
    1527/    F662 : 37                  ENDER:	SCF
    1528/    F663 : C9                  	RET
    1529/    F664 :                     ;
    1530/    F664 :                     ;*******************************************************************
    1531/    F664 :                     ;*                                                                 *
    1532/    F664 :                     ;*	O P E R A T I N G  -  S Y S T E M                          *
    1533/    F664 :                     ;*                                                                 *
    1534/    F664 :                     ;*******************************************************************
    1535/    F664 :                     ;
    1536/    F664 :                     ;INITIALISIERUNG DES COMPUTERS
    1537/    F664 :                     ;
    1538/    F664 : F3                  INIT:	DI
    1539/    F665 : 31 00 02            	LD	SP,200H		;CCP- UND ANWENDERSTACK
    1540/    F668 :                     
    1541/    F668 : =>FALSE             	IF eorpatch
    1542/    F668 :                     
    1543/    F668 :                     	;s.http://www.sax.de/~zander/z9001/tip/tipc.html
    1544/    F668 :                     	LD 	BC,100H 	;100 Bytes
    1545/    F668 :                     	LD 	H,C
    1546/    F668 :                     	LD 	L,C 		;HL=0000
    1547/    F668 :                     	LD 	(HL),0FFH 	;Adresse 0000 mit FF beschreiben
    1548/    F668 :                     	LD 	D,H
    1549/    F668 :                     	LD 	E,L 		;DE=0000
    1550/    F668 :                     	INC 	DE 		;DE=0001
    1551/    F668 :                     	LDIR 			;001 bis 100 mit FF füllen
    1552/    F668 :                     
    1553/    F668 : =>TRUE              	else
    1554/    F668 :                     
    1555/    F668 : 0E 00               	LD	C,0
    1556/    F66A : 2A 36 00            	LD	HL,(EOR)	;LOGISCHES RAM - ENDE
    1557/    F66D : 5D                  	LD	E,L
    1558/    F66E : 54                  	LD	D,H
    1559/    F66F : 13                  	INC	DE
    1560/    F670 : 06 01               	LD	B,1
    1561/    F672 : ED B0               	LDIR			;LOESCHEN 100H BYTES AB
    1562/    F674 :                     				;LOG. RAM - ENDE
    1563/    F674 : [1541]              	ENDIF
    1564/    F674 :                     
    1565/    F674 : 3E 02               	LD	A,2
    1566/    F676 : ED 47               	LD	I,A
    1567/    F678 : 3C                  	INC	A
    1568/    F679 : D3 8A               	OUT	SPIO1A, A
    1569/    F67B : 3E CF               	LD	A,0CFH
    1570/    F67D : D3 8A               	OUT	SPIO1A, A	;PIO 1  PORT A  IN BYTEAUSGABE
    1571/    F67F : AF                  	XOR	A
    1572/    F680 : D3 8A               	OUT	SPIO1A, A
    1573/    F682 : D3 88               	OUT	DPIO1A, A
    1574/    F684 :                     ;PHYSISCHER SPEICHERTEST, SETZEN SPEICHERKONFIGURATION
    1575/    F684 : 21 00 FC            MEMTE:	LD	HL,0FC00H
    1576/    F687 : 06 40               	LD	B,64		;64  1k BYTES BEREICHE
    1577/    F689 : 7E                  MEMT0:	LD	A,(HL)
    1578/    F68A : 2F                  	CPL
    1579/    F68B : 77                  	LD	(HL),A
    1580/    F68C : 56                  	LD	D,(HL)
    1581/    F68D : BA                  	CP	A, D
    1582/    F68E : 2F                  	CPL
    1583/    F68F : 77                  	LD	(HL),A
    1584/    F690 : 0E 01               	LD	C,1
    1585/    F692 : 28 06               	JR	Z, MEMT1	;RAM GEFUNDEN
    1586/    F694 : 0D                  	DEC	C
    1587/    F695 : 2B                  	DEC	HL
    1588/    F696 : 22 36 00            	LD	(EOR),HL	;VORLAEUFIGES LOG. RAM - ENDE
    1589/    F699 : 23                  	INC	HL
    1590/    F69A : CD 31 F2            MEMT1:	CALL	MOD		;MERKEN KONFIG. IM 64 BIT - REGISTER
    1591/    F69D : 10 EA               	DJNZ	MEMT0
    1592/    F69F :                     
    1593/    F69F : =>FALSE             	if osver == 11
    1594/    F69F :                     	ld      a, 0C3h
    1595/    F69F :                     	ld      (5), a
    1596/    F69F : [1593]              	ENDIF
    1597/    F69F :                     
    1598/    F69F : 21 14 F3            	LD	HL,BOS		;ADR. BOS FUER CALL 0005
    1599/    F6A2 : 22 06 00            	LD	(6),HL
    1600/    F6A5 : CD E0 F6            	CALL	IOST		;INITIALISIEREN STANDARD-E/A
    1601/    F6A8 : 11 30 FC            	LD	DE,MSG
    1602/    F6AB : =>FALSE             	if rommenu
    1603/    F6AB :                     	CALL	MENUE		;Menüanzeige (nur Version 2)
    1604/    F6AB : =>TRUE              	else
    1605/    F6AB : CD E2 F3            	CALL	PRNST
    1606/    F6AE : [1602]              	endif
    1607/    F6AE :                     ;
    1608/    F6AE :                     ;WARMSTART, TEILINITIALISIERUNG
    1609/    F6AE :                     ;
    1610/    F6AE : F3                  WBOOT:	DI
    1611/    F6AF : 31 00 02            	LD	SP,200H
    1612/    F6B2 : 3E C3               	LD	A,0C3H		;JMP - CODE
    1613/    F6B4 : 32 00 00            	LD	(0),A		;FUER CALL 0000 UND
    1614/    F6B7 :                     
    1615/    F6B7 : =>TRUE              	IF	osver <> 11
    1616/    F6B7 : 32 05 00            	LD	(5),A		;CALL 0005 SPEICHERN
    1617/    F6BA : [1615]              	ENDIF
    1618/    F6BA :                     
    1619/    F6BA : 21 AE F6            	LD	HL,WBOOT	;ADR. WBOOT FUER CALL 0000
    1620/    F6BD : 22 01 00            	LD	(1),HL
    1621/    F6C0 : 3A 04 00            	LD	A,(IOBYT)
    1622/    F6C3 : E6 FC               	AND	A, 0FCH		;ZUWEISEN CONST:=CRT
    1623/    F6C5 : F6 01               	OR	1		;
    1624/    F6C7 : CD 12 F7            	CALL	IOST1		;TEILINITIALISIERUNG TREIBER
    1625/    F6CA : 11 F7 FB            	LD	DE,TXTWB
    1626/    F6CD : CD E2 F3            	CALL	PRNST
    1627/    F6D0 : 21 23 00            	LD	HL,0023H	;'#'
    1628/    F6D3 : 22 82 00            	LD	(CONBU+2),HL	;PSEUDOEINGABE #
    1629/    F6D6 : CD EA F1            	CALL	GVAL		;PARAMETER HOLEN
    1630/    F6D9 : CD 8E F2            	CALL	CPROM		;TRANSIENTKOMMANDO SUCHEN
    1631/    F6DC : C2 89 F0            	JP	NZ, GOCPM	;NICHT GEFUNDEN
    1632/    F6DF : E9                  	JP	(HL)		;SPRUNG ZUR SYSTEMERWEITERUNG
    1633/    F6E0 :                     ;
    1634/    F6E0 :                     ;INITIALISIERUNG STANDARD-E/A
    1635/    F6E0 : 21 C9 EF            IOST:	LD	HL,ATTY		;TABELLE TREIBERADRESSEN
    1636/    F6E3 : 11 CA EF            	LD	DE,ATTY+1
    1637/    F6E6 : 01 1F 00            	LD	BC,31
    1638/    F6E9 : 36 FF               	LD	(HL),-1
    1639/    F6EB : ED B0               	LDIR			;ALLE AUF FFFFH LOESCHEN
    1640/    F6ED : 11 00 02            	LD	DE,200H
    1641/    F6F0 : 21 B0 FC            	LD	HL,INTV
    1642/    F6F3 : 0E 0C               	LD	C,12
    1643/    F6F5 : ED B0               	LDIR			;INTERRUPTADRESSEN LADEN
    1644/    F6F7 : =>TRUE              	if sysver = "os"
    1645/    F6F7 : 21 24 FC            	LD	HL,LOGDV	; original
    1646/    F6FA : =>FALSE             	elseif 			; bei UZ
    1647/    F6FA :                     	LD	HL,LOGDV+1
    1648/    F6FA : [1644]              	endif
    1649/    F6FA : 22 EB EF            	LD	(TXRDR),HL	;ZEICHENKETTENADRESSEN
    1650/    F6FD : 22 ED EF            	LD	(TXPUN),HL	;FUER TREIBER
    1651/    F700 : 22 EF EF            	LD	(TXLPT),HL	;INITIALISIEREN
    1652/    F703 : 21 B4 F7            	LD	HL,BAT		;
    1653/    F706 : 22 CD EF            	LD	(ABAT),HL	;
    1654/    F709 : AF                  	XOR	A
    1655/    F70A : 32 27 00            	LD	(ATRIB),A	;FARBE LOESCHEN
    1656/    F70D : 32 C0 EF            	LD	(MAPPI),A	;SYSTEMSCHUTZ LOESCHEN
    1657/    F710 : 3E 01               	LD	A,STIOB		;STANDARD-I/O-BYTE
    1658/    F712 :                     ;
    1659/    F712 :                     ;TEILINITIALISIERUNG
    1660/    F712 : 32 04 00            IOST1:	LD	(IOBYT),A
    1661/    F715 : 21 26 FC            	LD	HL,LOGDV+2
    1662/    F718 : 22 E9 EF            	LD	(TXCON),HL	;ADRESSE VON 'CRT' EINTRAGEN
    1663/    F71B : 21 F1 F8            	LD	HL,CRT
    1664/    F71E : 22 CB EF            	LD	(ACRT1),HL	;TREIBERADRESSE VON CRT LADEN
    1665/    F721 : 22 E3 EF            	LD	(ACRT2),HL	;(FUER CONST UND LIST)
    1666/    F724 : ED 5E               	IM	2
    1667/    F726 : 11 FF FF            	LD	DE,0FFFFH
    1668/    F729 : 1B                  IOST2:	DEC	DE
    1669/    F72A : 7B                  	LD	A,E
    1670/    F72B : B2                  	OR	D
    1671/    F72C : 20 FB               	JR	NZ, IOST2	;ENTPRELLEN RESETTASTE
    1672/    F72E : 32 15 00            	LD	(LISW),A	;DRUCKER AUS
    1673/    F731 : 3D                  	DEC	A
    1674/    F732 : E9                  	JP	(HL)		;INITIALISIERUNG VON CRT
    1675/    F733 :                     ;
    1676/    F733 :                     ;ABFRAGE LOGISCHE CURSORADRESSE
    1677/    F733 :                     ;
    1678/    F733 : 2E 07               GCURS:	LD	L,7
    1679/    F735 : 18 07               	JR	DCU
    1680/    F737 :                     ;
    1681/    F737 :                     ;SETZEN physische CURSORADRESSE
    1682/    F737 :                     ;
    1683/    F737 : 2E 05               SCURS:	LD	L,5		; L := 8 (Fkt. Setzen phys.. Cursoradresse)
    1684/    F739 : 59                  	LD	E,C		;PARAMETER UEBERNEHMEN
    1685/    F73A : 50                  	LD	D,B		;
    1686/    F73B :                     ;
    1687/    F73B :                     ;SETZEN logische CURSORADRESSE
    1688/    F73B :                     ; in: L=3, Anfangswert fuer Cursorrufe (BOS)
    1689/    F73B :                     ;
    1690/    F73B : 2C                  SETCU:	INC	L		; L := 6 (Fkt. Setzen log. Cursoradresse)
    1691/    F73C :                     ;
    1692/    F73C :                     ;ABFRAGE PHYSISCHE CURSORADRESSE
    1693/    F73C :                     ;
    1694/    F73C : 2C                  GETCU:	INC	L		; L := 5 (Fkt. Abfrage phys. und log. Cursoradresse)
    1695/    F73D :                     ;
    1696/    F73D :                     ;ANZEIGEN CURSOR
    1697/    F73D :                     ;
    1698/    F73D : 2C                  SCU:	INC	L		; L := 4 (Fkt. Cursor anzeigen)
    1699/    F73E :                     ;
    1700/    F73E :                     ;LOESCHEN CURSOR
    1701/    F73E :                     ; in: L=3, Anfangswert fuer Cursorrufe (BOS) (Fkt. Cursor löschen)
    1702/    F73E :                     ;
    1703/    F73E : 7D                  DCU:	LD	A,L		;A=Fkt. des CONST-Treibers
    1704/    F73F : CD 58 F7            	CALL	CONS1		;AUSFUEHREN DURCH CONST
    1705/    F742 : D8                  	RET	C		;FEHLER
    1706/    F743 : FE 03               	CP	A, 3
    1707/    F745 : C8                  	RET	Z		; bei bei Fkt. 3 (Cursor löschen)
    1708/    F746 : 4D                  	LD	C,L		;
    1709/    F747 : 44                  	LD	B,H		;
    1710/    F748 : FE 06               	CP	A, 6		;
    1711/    F74A : D0                  	RET	NC		; Fkt. >= 6
    1712/    F74B : 22 0D 00            	LD	(BCSV),HL	;RUECKGABE PARAMETER
    1713/    F74E : FE 04               	CP	A, 4		;
    1714/    F750 : C8                  	RET	Z		; bei Fkt. 4 (Cursor anzeigen)
    1715/    F751 :                     	; bei Fkt. 5 (Abfrage phys. und log. Cursoradresse)
    1716/    F751 : ED 53 BC 01         	LD	(1BCH),DE	; Pos. von DE im BOS-Stack (SP = 1C0H)
    1717/    F755 : C9                  	RET
    1718/    F756 :                     ;
    1719/    F756 :                     ; CONST, CONIN, CONOUT, LIST, LLIST, READER,PUNCH (CONST1, LIST1, RDR1)
    1720/    F756 :                     ; Funktion:   Verzweigen zu log. Geräten
    1721/    F756 :                     ; a) Eingang
    1722/    F756 :                     ; 	gerufen  von: Systemruf, Cursorruf
    1723/    F756 :                     ; 	Parameter: bei OUT Zeichen in C
    1724/    F756 :                     ; b) gerufene Programme
    1725/    F756 :                     ; 	- EXIO Test Gerätezuweisung, Startadresse der Gerätetreiber holen
    1726/    F756 :                     ; c) Ausgang
    1727/    F756 :                     ; 	-
    1728/    F756 :                     ; d) Return
    1729/    F756 :                     ; 	Parameter: CY 0 kein Fehler
    1730/    F756 :                     ; 		      1 Fehler, Code in A
    1731/    F756 :                     ; 		   B interne log. Gerätenummer
    1732/    F756 :                     ; 		   A bei IN Zeichen
    1733/    F756 :                     ;
    1734/    F756 :                     ;
    1735/    F756 :                     ;ABFRAGE STATUS CONST
    1736/    F756 :                     ;
    1737/    F756 : 3E 00               CONST:	LD	A,0
    1738/    F758 : 06 00               CONS1:	LD	B,0		;INTERNE LOG. GERAETENR. CONST
    1739/    F75A : C5                  CONS2:	PUSH	BC
    1740/    F75B : D5                  	PUSH	DE
    1741/    F75C : CD CE F2            	CALL	EXIO		;VERFUEGBARKEIT TREIBER PRUEFEN
    1742/    F75F : D1                  	POP	DE
    1743/    F760 : 30 04               	JR	NC, CONS3	;IN ORDNUNG
    1744/    F762 : C1                  	POP	BC
    1745/    F763 : 3E 08               CON22:	LD	A,8		;NICHT ZUGEWIESEN
    1746/    F765 : C9                  	RET
    1747/    F766 : E5                  CONS3:	PUSH	HL
    1748/    F767 : 21 6F F7            	LD	HL,CONS4
    1749/    F76A : E3                  	EX	(SP),HL		;RUECKKEHRADR. KELLERN
    1750/    F76B : 32 2F 00            	LD	(PU),A
    1751/    F76E : E9                  	JP	(HL)		;SPRUNG ZUR TREIBERROUTINE
    1752/    F76F :                     ;
    1753/    F76F : C1                  CONS4:	POP	BC
    1754/    F770 : 4F                  	LD	C,A
    1755/    F771 : 38 F0               	JR	C, CON22	;FEHLER
    1756/    F773 : 3A 2F 00            	LD	A,(PU)
    1757/    F776 : FE 02               	CP	A, 2		;WAR RUF EINE EINGABE?
    1758/    F778 : D0                  	RET	NC		;NEIN
    1759/    F779 : 79                  	LD	A,C
    1760/    F77A : 32 0F 00            	LD	(ASV),A		;STATUS ODER ZEICHEN ZURUECK
    1761/    F77D : B7                  	OR	A
    1762/    F77E : C9                  	RET
    1763/    F77F :                     ;
    1764/    F77F :                     ;EINGABE VON CONST
    1765/    F77F :                     ;
    1766/    F77F : 3E 01               CONIN:	LD	A,1
    1767/    F781 : 18 D5               	JR	CONS1
    1768/    F783 :                     ;
    1769/    F783 :                     ;AUSGABE ZU CONST
    1770/    F783 :                     ;
    1771/    F783 : 79                  COOUT:	LD	A,C
    1772/    F784 : FE 10               	CP	A, 10H		;CTRL/P
    1773/    F786 : 20 08               	JR	NZ, COOU1
    1774/    F788 : 3A 15 00            	LD	A,(LISW)
    1775/    F78B : EE 01               	XOR	1		;DRUCKER EIN/AUS
    1776/    F78D : 32 15 00            	LD	(LISW),A
    1777/    F790 :                     
    1778/    F790 : =>FALSE             	if osver == 11
    1779/    F790 :                     	ret
    1780/    F790 :                     COOU1:  ld      a, (LISW)
    1781/    F790 :                             or      a
    1782/    F790 :                             push    bc
    1783/    F790 :                             call    nz, LIST
    1784/    F790 :                             pop     hl
    1785/    F790 :                             ld      c, l
    1786/    F790 :                             ret     c
    1787/    F790 :                             ld      a, 2
    1788/    F790 :                             jr      CONS1
    1789/    F790 : =>TRUE              	ELSE
    1790/    F790 : 3E 02               COOU1:	LD	A,2
    1791/    F792 : C5                  	PUSH	BC
    1792/    F793 : CD 58 F7            	CALL	CONS1		;AUSGABE ZU CONST
    1793/    F796 : E1                  	POP	HL
    1794/    F797 : 4D                  	LD	C,L
    1795/    F798 : D8                  	RET	C		;FEHLER
    1796/    F799 : 3A 15 00            	LD	A,(LISW)
    1797/    F79C : B7                  	OR	A
    1798/    F79D : C8                  	RET	Z		;KEINE AUSGABE ZU LIST
    1799/    F79E : [1778]              	ENDIF
    1800/    F79E :                     
    1801/    F79E :                     ;
    1802/    F79E :                     ;AUSGABE ZU LIST
    1803/    F79E :                     ;
    1804/    F79E : 3E 02               LIST:	LD	A,2
    1805/    F7A0 : 06 06               LIST1:	LD	B,6		;INTERNE LOG. GERAETENR. LIST
    1806/    F7A2 : 18 B6               	JR	CONS2
    1807/    F7A4 :                     ;
    1808/    F7A4 :                     ;ABFRAGE STATUS LIST
    1809/    F7A4 :                     ;
    1810/    F7A4 : 3E 00               LLIST:	LD	A,0
    1811/    F7A6 : 18 F8               	JR	LIST1
    1812/    F7A8 :                     ;
    1813/    F7A8 :                     ;EINGABE VON READER
    1814/    F7A8 :                     ;
    1815/    F7A8 : 3E 01               READR:	LD	A,1
    1816/    F7AA : 06 02               RDR1:	LD	B,2		;INTERNE LOG. GERAETENR. READER
    1817/    F7AC : 18 AC               	JR	CONS2
    1818/    F7AE :                     ;
    1819/    F7AE :                     ;AUSGABE ZU PUNCH
    1820/    F7AE :                     ;
    1821/    F7AE : 3E 02               PUNCH:	LD	A,2
    1822/    F7B0 : 06 04               	LD	B,4		;INTERNE LOG. GERAETENR. PUNCH
    1823/    F7B2 : 18 A6               	JR	CONS2
    1824/    F7B4 :                     ;
    1825/    F7B4 :                     ;STEUERPROGRAMM FUER BATCH-MODE VON CONST
    1826/    F7B4 :                     ;
    1827/    F7B4 : FE 01               BAT:	CP	A, 1		;EINGABE GEFORDERT
    1828/    F7B6 : 28 F0               	JR	Z, READR
    1829/    F7B8 : FE FF               	CP	A, 0FFH		;INITIALISIERUNG GEFORDERT
    1830/    F7BA : 20 E4               	JR	NZ, LIST1	;AUSGABE
    1831/    F7BC :                     
    1832/    F7BC :                     
    1833/    F7BC : =>FALSE             	if osver == 11
    1834/    F7BC :                     	CALL	0FFEEh		; ?????
    1835/    F7BC : =>TRUE              	ELSE
    1836/    F7BC : CD AA F7            	CALL	RDR1		;INIT. READER
    1837/    F7BF : [1833]              	ENDIF
    1838/    F7BF :                     
    1839/    F7BF : D8                  	RET	C		;FEHLER
    1840/    F7C0 : 3E FF               	LD	A,0FFH
    1841/    F7C2 : 18 DC               	JR	LIST1		;INIT. LIST
    1842/    F7C4 :                     ;
    1843/    F7C4 :                     ;ABFRAGE SPIELHEBEL
    1844/    F7C4 :                     ;
    1845/    F7C4 : CD 8F FE            GSTIK:	CALL	GPIOD		;TASTATUR-PIO DIREKT LESEN
    1846/    F7C7 : ED 4B 13 00         	LD	BC,(JOYR)
    1847/    F7CB : ED 43 0D 00         	LD	(BCSV),BC	;RUECKGABE PARAMETER
    1848/    F7CF : C3 E9 FA            	JP	INPIO		;INIT. TASTATUR-PIO
    1849/    F7D2 :                     ;
    1850/    F7D2 :                     ;ABFRAGE I/O-BYTE
    1851/    F7D2 :                     ;
    1852/    F7D2 : 3A 04 00            GIOBY:	LD	A,(IOBYT)
    1853/    F7D5 : 32 0F 00            	LD	(ASV),A		;RUECKGABE PARAMETER
    1854/    F7D8 : 4F                  	LD	C,A
    1855/    F7D9 :                     ;
    1856/    F7D9 :                     ;SETZEN I/O-BYTE
    1857/    F7D9 :                     ;
    1858/    F7D9 : 79                  SIOBY:	LD	A,C
    1859/    F7DA : 32 04 00            	LD	(IOBYT),A
    1860/    F7DD : B7                  	OR	A
    1861/    F7DE : C9                  	RET
    1862/    F7DF :                     ;
    1863/    F7DF :                     ;SETZEN KASSETTENPUFFER
    1864/    F7DF :                     ;
    1865/    F7DF : ED 43 1B 00         SDMA:	LD	(DMA),BC
    1866/    F7E3 : B7                  	OR	A
    1867/    F7E4 : C9                  	RET
    1868/    F7E5 :                     ;
    1869/    F7E5 :                     ;LOGISCHER SPEICHERTEST
    1870/    F7E5 :                     ;
    1871/    F7E5 : 69                  GMEM:	LD	L,C
    1872/    F7E6 : 60                  	LD	H,B
    1873/    F7E7 : CD 3B F2            	CALL	CHRAM		;TEST DER ADRESSE IN HL
    1874/    F7EA : 3E 01               	LD	A,1
    1875/    F7EC : 38 01               	JR	C, GM1		;RAM GEFUNDEN
    1876/    F7EE : 3D                  	DEC	A		;GESCHUETZT/ROM
    1877/    F7EF : 32 0F 00            GM1:	LD	(ASV),A		;RUECKGABE PARAMETER
    1878/    F7F2 : B7                  	OR	A
    1879/    F7F3 : C9                  	RET
    1880/    F7F4 :                     ;
    1881/    F7F4 :                     ;SETZEN SPEICHERKONFIGURATION
    1882/    F7F4 :                     ;
    1883/    F7F4 : 69                  SMEM:	LD	L,C
    1884/    F7F5 : 60                  	LD	H,B
    1885/    F7F6 : 4F                  	LD	C,A
    1886/    F7F7 : CD 31 F2            	CALL	MOD		;STATUS FUER ADR. IN HL AENDERN
    1887/    F7FA : B7                  	OR	A
    1888/    F7FB : C9                  	RET
    1889/    F7FC :                     ;
    1890/    F7FC :                     ;ABFRAGE AKTUELLE UHRZEIT
    1891/    F7FC :                     ;
    1892/    F7FC : 3A 1D 00            GTIME:	LD	A,(STUND)
    1893/    F7FF : 32 0F 00            	LD	(ASV),A		;RUECKGABE PARAMETER
    1894/    F802 : 2A 1E 00            	LD	HL,(MIN)
    1895/    F805 : 4C                  	LD	C,H
    1896/    F806 : 45                  	LD	B,L
    1897/    F807 : ED 43 0D 00         	LD	(BCSV),BC	;
    1898/    F80B :                     ;
    1899/    F80B :                     ;STELLEN DER UHR
    1900/    F80B :                     ;
    1901/    F80B : 32 1D 00            STIME:	LD	(STUND),A
    1902/    F80E : 68                  	LD	L,B
    1903/    F80F : 61                  	LD	H,C
    1904/    F810 : 22 1E 00            	LD	(MIN),HL
    1905/    F813 : B7                  	OR	A
    1906/    F814 : C9                  	RET
    1907/    F815 :                     ;
    1908/    F815 :                     ;2-STELLIGE DEZIMALZAHL IN INTERNE DARSTELLUNG KONVERTIEREN
    1909/    F815 :                     ;
    1910/    F815 :                     ; Funktion:    Umwandlung Parameterstring (Dezimalzahl) in interne Darstellung (ein Byte)
    1911/    F815 :                     ; a) Eingang
    1912/    F815 :                     ; 	- VIEXT
    1913/    F815 :                     ; 	gerufen von: GEVAL
    1914/    F815 :                     ; 	Parameter  : DE Stringadresse
    1915/    F815 :                     ; b) gerufene Programme
    1916/    F815 :                     ; 	- FORMS formatieren Eingabe-String
    1917/    F815 :                     ; c) Ausgang
    1918/    F815 :                     ;	-
    1919/    F815 :                     ; d) Return
    1920/    F815 :                     ; 	Parameter: DE Adresse nach String
    1921/    F815 :                     ; 		   A Wert
    1922/    F815 :                     ;
    1923/    F815 : 1A                  VIEXT:	LD	A,(DE)
    1924/    F816 : B7                  	OR	A
    1925/    F817 : 37                  	SCF
    1926/    F818 : C8                  	RET	Z		;ZEICHENKETTE LEER
    1927/    F819 : 3E 02               	LD	A,2		;NEUE LAENGE DER ZEICHENKETTE
    1928/    F81B : CD 36 F8            	CALL	FORMS		;AUF NEUE LAENGE BRINGEN
    1929/    F81E : D8                  	RET	C		;ZU VIELE DEZIMALSTELLEN
    1930/    F81F : 01 02 00            	LD	BC,2		;(C)=ANZAHL DER STELLEN
    1931/    F822 : 1A                  ADEC1:	LD	A,(DE)
    1932/    F823 : 13                  	INC	DE
    1933/    F824 : D6 30               	SUB	30H
    1934/    F826 : D8                  	RET	C		;FEHLER
    1935/    F827 : FE 0A               	CP	A, 10
    1936/    F829 : 3F                  	CCF
    1937/    F82A : D8                  	RET	C		;FEHLER
    1938/    F82B : 80                  	ADD	A, B
    1939/    F82C : 0D                  	DEC	C
    1940/    F82D : C8                  	RET	Z
    1941/    F82E : 87                  	ADD	A, A
    1942/    F82F : 47                  	LD	B,A
    1943/    F830 : 87                  	ADD	A, A
    1944/    F831 : 87                  	ADD	A, A
    1945/    F832 : 80                  	ADD	A, B
    1946/    F833 : 47                  	LD	B,A		;(B)=ZAHL
    1947/    F834 : 18 EC               	JR	ADEC1
    1948/    F836 :                     ;
    1949/    F836 :                     ;ZEICHENKETTE AUF BESTIMMTE LAENGE FORMATIEREN
    1950/    F836 :                     ;
    1951/    F836 :                     ; Funktion:    Formatieren String  auf n Bytes für Konvertierung in interne Zahl
    1952/    F836 :                     ; Ausblenden bzw. Einfügen von Vornullen
    1953/    F836 :                     ; a) Eingang
    1954/    F836 :                     ; 	- FORMS
    1955/    F836 :                     ; 	gerufen von:  VIEXT37
    1956/    F836 :                     ; 	Parameter: DE Stringadresse
    1957/    F836 :                     ; 	           A neue gewünschte Länge
    1958/    F836 :                     ; b) gerufene Programme
    1959/    F836 :                     ; 	- MOVE verschieben Speicherbereich
    1960/    F836 :                     ; c) Ausgang
    1961/    F836 :                     ; 	-
    1962/    F836 :                     ; d) Return
    1963/    F836 :                     ; 	Parameter: DE Adresse 1. Zeichen neuer String
    1964/    F836 :                     ; 		   CY 0 kein Fehler
    1965/    F836 :                     ; 		      1 zu viele signifikante Stellen (keine Vornullen)
    1966/    F836 :                     ;
    1967/    F836 : 6B                  FORMS:	LD	L,E		;(DE)=ADR. DER KETTENLAENGE
    1968/    F837 : 62                  	LD	H,D
    1969/    F838 : 13                  	INC	DE
    1970/    F839 : BE                  	CP	A, (HL)
    1971/    F83A : C8                  	RET	Z		;LAENGE ERREICHT
    1972/    F83B : 06 00               	LD	B,0
    1973/    F83D : 4E                  	LD	C,(HL)
    1974/    F83E : 38 13               	JR	C, DHAZ		;ALT > NEU
    1975/    F840 : 77                  	LD	(HL),A		;NEUE LAENGE
    1976/    F841 : 91                  	SUB	C
    1977/    F842 : 09                  FORM1:	ADD	HL,BC		;
    1978/    F843 : 5D                  	LD	E,L		;
    1979/    F844 : 54                  	LD	D,H		;
    1980/    F845 : 13                  	INC	DE		;
    1981/    F846 : C5                  	PUSH	BC		;
    1982/    F847 : ED B8               	LDDR			;VORNULLEN EINFUEGEN
    1983/    F849 : C1                  	POP	BC		;
    1984/    F84A : EB                  	EX	DE,HL		;
    1985/    F84B : 36 30               	LD	(HL),'0'	;
    1986/    F84D : EB                  	EX	DE,HL		;
    1987/    F84E : 03                  	INC	BC		;
    1988/    F84F : 3D                  	DEC	A		;
    1989/    F850 : 20 F0               	JR	NZ, FORM1	;
    1990/    F852 : C9                  	RET
    1991/    F853 :                     ;
    1992/    F853 : F5                  DHAZ:	PUSH	AF
    1993/    F854 : 23                  	INC	HL
    1994/    F855 : 23                  	INC	HL
    1995/    F856 : 1A                  	LD	A,(DE)
    1996/    F857 : FE 30               	CP	A, '0'
    1997/    F859 : 20 0A               	JR	NZ, DHAZE	;KEINE VORNULL
    1998/    F85B : 0D                  	DEC	C
    1999/    F85C : CD F7 F2            	CALL	MOVE		;LOESCHEN VORNULL
    2000/    F85F : 1B                  	DEC	DE
    2001/    F860 : 79                  	LD	A,C
    2002/    F861 : 12                  	LD	(DE),A		;NEUE LAENGE
    2003/    F862 : F1                  	POP	AF
    2004/    F863 : 18 D1               	JR	FORMS
    2005/    F865 :                     ;
    2006/    F865 : F1                  DHAZE:	POP	AF		;ZU VIELE SIGNIFIKANTE STELLEN
    2007/    F866 : 37                  	SCF
    2008/    F867 : C9                  	RET
    2009/    F868 :                     ;
    2010/    F868 :                     ;*******************************************************************
    2011/    F868 :                     ;*	CRT - TREIBER	TEIL 1: BILDSCHIRM                         *
    2012/    F868 :                     ;*******************************************************************
    2013/    F868 :                     ;
    2014/    F868 :                     ;FARBCODEBERECHNUNG
    2015/    F868 : D6 14               COL:	SUB	14H		;(A)=FARBSTEUERCODE
    2016/    F86A : 38 15               	JR	C, RAND		;RANDFARBE AENDERN
    2017/    F86C : 28 06               	JR	Z, INK		;VORDERGRUNDFARBE AENDERN
    2018/    F86E :                     
    2019/    F86E :                     PAPER:
    2020/    F86E : =>FALSE             	IF farb16
    2021/    F86E :                     	LD	B,0F0H		;Unterstützung für 16 Farben
    2022/    F86E : =>TRUE              	ELSE
    2023/    F86E : 06 F8               	LD	B,0F8H		;HINTERGRUNDFARBE AENDERN
    2024/    F870 : [2020]              	ENDIF
    2025/    F870 :                     
    2026/    F870 : 7B                  	LD	A,E		;ALTER FARBCODE
    2027/    F871 : A0                  P1:	AND	A, B
    2028/    F872 : B1                  	OR	C		;(C)=ALTER FARBCODE
    2029/    F873 : C9                  	RET			;(A)=RSULTIERENDER FARBCODE
    2030/    F874 :                     ;
    2031/    F874 :                     
    2032/    F874 :                     INK:
    2033/    F874 : =>FALSE             	IF farb16
    2034/    F874 :                     	CALL	INK16		;Unterstützung für 16 Farben
    2035/    F874 : =>TRUE              	else
    2036/    F874 : 7B                  	LD	A,E
    2037/    F875 : 06 8F               	LD	B,8FH
    2038/    F877 : [2033]              	ENDIF
    2039/    F877 :                     
    2040/    F877 : CB 21               I0:	SLA	C
    2041/    F879 : CB 21               I1:	SLA	C
    2042/    F87B : CB 21               	SLA	C
    2043/    F87D : CB 21               	SLA	C
    2044/    F87F : 18 F0               	JR	P1
    2045/    F881 :                     ;
    2046/    F881 : DB 88               RAND:	IN	A, DPIO1A	;SYSTEMPORT PIO 1
    2047/    F883 : =>FALSE             	IF farb16
    2048/    F883 :                     	CALL	BORD
    2049/    F883 :                     	AND	B
    2050/    F883 :                     	OR 	C
    2051/    F883 : =>TRUE              	else
    2052/    F883 : 06 C7               	LD	B,0C7H
    2053/    F885 : CD 79 F8            	CALL	I1
    2054/    F888 : [2047]              	ENDIF
    2055/    F888 : D3 88               R1:	OUT	DPIO1A, A
    2056/    F88A : F1                  	POP	AF		;RUECKKEHRADR. VERNICHTEN
    2057/    F88B : 18 0E               	JR	MCOL2
    2058/    F88D :                     ;
    2059/    F88D :                     ;ZEICHENAUSGABE
    2060/    F88D :                     ;
    2061/    F88D :                     ; Funktion: Behandlung alle Sonderzeichen (Farbe, Bell, Blinken, Invers)
    2062/    F88D :                     ; a) Eingang
    2063/    F88D :                     ; 	- OCHAR
    2064/    F88D :                     ; 	gerufen von: CRT
    2065/    F88D :                     ; 	Parameter  : C Zeichen
    2066/    F88D :                     ; b) gerufene Programme
    2067/    F88D :                     ; 	- COL Farbbehandlung
    2068/    F88D :                     ; 	- BELL1 Tonausgabe vorbereiten/beenden
    2069/    F88D :                     ; 	- INIVT Initialisieren Ton
    2070/    F88D :                     ; 	- AUS1 Ausgabe Ton
    2071/    F88D :                     ; 	- OC Ausgabe ASCII-Zeichen
    2072/    F88D :                     ; 	- MIAT Farbcode invertieren
    2073/    F88D :                     ;
    2074/    F88D : 3A 27 00            OCHAR:	LD	A,(ATRIB)	;AKTUELLER FARBCODE
    2075/    F890 : 5F                  	LD	E,A
    2076/    F891 : 7E                  	LD	A,(HL)		;(HL)=ADR. VON COLSW
    2077/    F892 : B7                  	OR	A
    2078/    F893 : 28 09               	JR	Z, OCH1		;ZEICHEN IST KEIN FARBCODE
    2079/    F895 : CD 68 F8            MCOL:	CALL	COL		;NEUEN FARBCODE BERECHNEN
    2080/    F898 : 32 27 00            MCOL1:	LD	(ATRIB),A	;NEUER AKTUELLER FARBCODE
    2081/    F89B : AF                  MCOL2:	XOR	A
    2082/    F89C : 77                  	LD	(HL),A		;FARBSCHALTERLOESCHEN
    2083/    F89D : C9                  	RET
    2084/    F89E :                     ;
    2085/    F89E :                     
    2086/    F89E :                     OCH1:
    2087/    F89E : =>FALSE             	if farb16
    2088/    F89E :                     	JP	CTRLAD		;AUSZUGEBENDES ZEICHEN
    2089/    F89E :                     MF8A1:
    2090/    F89E : =>TRUE              	else
    2091/    F89E : 79                  	LD	A,C		;AUSZUGEBENDES ZEICHEN
    2092/    F89F : D6 05               	SUB	5
    2093/    F8A1 : [2087]              	ENDIF
    2094/    F8A1 :                     
    2095/    F8A1 : 28 39               	JR	Z, SCOL		;STEUERCODE RANDFARBE GEFUNDEN (05 (F) CTRL/E)
    2096/    F8A3 : 3D                  	DEC	A
    2097/    F8A4 : 20 05               	JR	NZ, OCH3
    2098/    F8A6 :                     ;06 (F) CTRL/F Blinken EIN/AUS
    2099/    F8A6 : 7B                  BLINK:	LD	A,E		;BLINKBIT EIN/AUS
    2100/    F8A7 : EE 80               	XOR	80H		;BLINKBIT AENDERN
    2101/    F8A9 : 18 ED               	JR	MCOL1
    2102/    F8AB : 3D                  OCH3:	DEC	A
    2103/    F8AC : 20 1D               	JR	NZ, OCH4
    2104/    F8AE :                     ;07 CTRL/G Ausgabe eines Summertones
    2105/    F8AE : F3                  BELL:	DI			;AUSGABE TASTATURTON
    2106/    F8AF : CD C4 F8            	CALL	BELL1		;SUMMER EIN/AUS
    2107/    F8B2 : CD 0D FF            	CALL	INIVT		;INIT. TONAUSGABE
    2108/    F8B5 : 01 30 00            	LD	BC,30H		;ANZAHL TOENE
    2109/    F8B8 : CD 31 FF            BELL0:	CALL	AUS1		;AUSGABE
    2110/    F8BB : ED A1               	CPI			;
    2111/    F8BD : EA B8 F8            	JP	PE,BELL0	;
    2112/    F8C0 : 3E 03               	LD	A,3
    2113/    F8C2 : D3 80               	OUT	CTC0, A		;CTC 0  HALT
    2114/    F8C4 : DB 88               BELL1:	IN	A, DPIO1A
    2115/    F8C6 : EE 80               	XOR	80H
    2116/    F8C8 : D3 88               	OUT	DPIO1A, A
    2117/    F8CA : C9                  	RET
    2118/    F8CB :                     ;
    2119/    F8CB : D6 0A               OCH4:	SUB	0AH
    2120/    F8CD : 20 06               	JR	NZ, OCH44
    2121/    F8CF :                     ;11 CTRL/Q Kontrollton EIN/AUS
    2122/    F8CF : 2B                  	DEC	HL		;(HL)=ADR. SCHALT. KONTROLLTON
    2123/    F8D0 : 7E                  	LD	A,(HL)		;
    2124/    F8D1 : EE 01               	XOR	1		;UMSCHALTEN
    2125/    F8D3 : 77                  	LD	(HL),A		;
    2126/    F8D4 : C9                  	RET
    2127/    F8D5 :                     ;
    2128/    F8D5 : D6 03               OCH44:	SUB	3
    2129/    F8D7 : 28 03               	JR	Z, SCOL		;FARBSTEUERCODE VORDERGRUND
    2130/    F8D9 : 3D                  	DEC	A
    2131/    F8DA : 20 02               	JR	NZ, OCH5	;KEIN FARBSTEUERCODE HINTERGRUND
    2132/    F8DC :                     ; 14 (F) COLOR CTRL/T nächstes Zeichen ist Code für Vordergrundfarbe
    2133/    F8DC :                     ; 15 (F) SHIFT+COLOR o. CTRL/U nächstes Zeichen ist Code für Hintergrundfarbe
    2134/    F8DC : 79                  SCOL:	LD	A,C		; C = 14h oder 15h
    2135/    F8DD : 77                  	LD	(HL),A		;FARBSTEUERCODE IN COLSW MERKEN
    2136/    F8DE : 3D                  OCH5:	DEC	A
    2137/    F8DF : 28 0A               	JR	Z, INVER	;FARBEN INVERTIEREN (bei A=15 und A=16)
    2138/    F8E1 :                     ; sonst normale Zeichenausgabe
    2139/    F8E1 : CD 7D F9            	CALL	OC		;AUSGABE DES ZEICHENS
    2140/    F8E4 : 3A 16 00            	LD	A,(BSW)
    2141/    F8E7 : B7                  	OR	A
    2142/    F8E8 : C8                  	RET	Z		;KEIN KONTROLLTON
    2143/    F8E9 : 18 C3               	JR	BELL		;KONTROLLTON AUSGEBEN
    2144/    F8EB :                     ; 16 (F) CTRL/V Inversdarstellung aller folgenden Zeichen
    2145/    F8EB : 7B                  INVER:	LD	A,E
    2146/    F8EC : CD D6 FA            	CALL	MIAT		;FARBE INVERTIEREN
    2147/    F8EF : 18 A7               	JR	MCOL1
    2148/    F8F1 :                     ;
    2149/    F8F1 :                     ;STEUERPROGRAMM DES CRT - TREIBERS
    2150/    F8F1 :                     ;
    2151/    F8F1 :                     ; Funktion:  Bildschirmtreiber, Tastaturtreiber, Steuerprogramm
    2152/    F8F1 :                     ; a) Eingang
    2153/    F8F1 :                     ; 	- CRT
    2154/    F8F1 :                     ; 	gerufen von: CONST1 (über JMP (HL))
    2155/    F8F1 :                     ; 	Parameter  : A Art des Rufes
    2156/    F8F1 :                     ; 			FF Init.
    2157/    F8F1 :                     ; 			0 Status Tastatur
    2158/    F8F1 :                     ; 			1 Eingabe
    2159/    F8F1 :                     ; 			2 Ausgabe
    2160/    F8F1 :                     ; 		     (C Zeichen bei Ausgabe)
    2161/    F8F1 :                     ; 			3 Cursor löschen
    2162/    F8F1 :                     ; 			4 Cursor setzen
    2163/    F8F1 :                     ; 			5  Abfrage log. Cursoradr.
    2164/    F8F1 :                     ; 			6  Setzen log. Cursoradr.
    2165/    F8F1 :                     ; 		     (DE Adresse; Zeile/Spalte)
    2166/    F8F1 :                     ; 			7  Abfrage phys. Cursoradr.
    2167/    F8F1 :                     ; 			8 Setzen phys. Cursoradr.
    2168/    F8F1 :                     ; 		     (DE Adresse)
    2169/    F8F1 :                     ; b) gerufene Programme
    2170/    F8F1 :                     ; 	- OC Ausgabe ASCII-Zeichen
    2171/    F8F1 :                     ; c)  Ausgang
    2172/    F8F1 :                     ; 	- INITA Tastaturinitialisierung
    2173/    F8F1 :                     ; 	- OCHAR Ausgabe Zeichen
    2174/    F8F1 :                     ; 	- OC Ausgabe ASCII-Zeichen (für Cursoroperationen)
    2175/    F8F1 :                     ; d) Return
    2176/    F8F1 :                     ; 	Parameter: A Zeichen bei IN
    2177/    F8F1 :                     ; 		DE, HL Adressen bei Cursorabfrage
    2178/    F8F1 :                     ; 		DE log.
    2179/    F8F1 :                     ; 		HL phys.
    2180/    F8F1 :                     ; ;
    2181/    F8F1 : 21 17 00            CRT:	LD	HL,COLSW	;HL FUER FARBBEHANDLUNG STELLEN
    2182/    F8F4 : 3C                  	INC	A
    2183/    F8F5 : 20 23               	JR	NZ, CRT1
    2184/    F8F7 : F3                  ICRT:	DI			;INITIALISIERUNG CRT
    2185/    F8F8 : 21 00 19            	LD	HL,1900H	;(24 Zeilen)
    2186/    F8FB : 22 3B 00            	LD	(P1ROL),HL	;STANDARDFENSTER
    2187/    F8FE : 26 29               	LD	H,29H		;EINSTELLEN (40 Spalten) L = 0
    2188/    F900 : 22 3D 00            	LD	(P3ROL),HL	;
    2189/    F903 : 26 00               	LD	H,0		; L = 0
    2190/    F905 : 22 23 00            	LD	(COUNT),HL	;
    2191/    F908 : 22 25 00            	LD	(KEYBU),HL	;ARBEITSZELLEN LOESCHEN
    2192/    F90B : 22 13 00            	LD	(JOYR),HL	;
    2193/    F90E : 22 16 00            	LD	(BSW),HL	;
    2194/    F911 : DB 88               	IN	A, DPIO1A
    2195/    F913 : E6 38               	AND	A, 38H		;GRAFIKANZEIGE UND
    2196/    F915 : D3 88               	OUT	DPIO1A, A	;TASTATURSUMMER AUS
    2197/    F917 : C3 E3 FA            	JP	INITA		;INIT. TASTATUR
    2198/    F91A :                     ;
    2199/    F91A : 3D                  CRT1:	DEC	A
    2200/    F91B : 20 04               	JR	NZ, CRT2
    2201/    F91D :                     
    2202/    F91D :                     ; 00	Abfrage Status
    2203/    F91D :                     ;	Return:
    2204/    F91D :                     ;		A Status
    2205/    F91D :                     ;		0 kein Zeichen bei Eingabegerät, nicht bereit bei Ausgabegerät
    2206/    F91D :                     ;		sonst Zeichen liegt an bei Eingabegerät,
    2207/    F91D :                     ;		(im installierten CRT-Treiber wird der Zeichencode übergeben)
    2208/    F91D : 3A 25 00            STAT:	LD	A,(KEYBU)	;STATUS ABFRAGEN
    2209/    F920 : C9                  	RET
    2210/    F921 :                     ;
    2211/    F921 : 3D                  CRT2:	DEC	A
    2212/    F922 : 20 21               	JR	NZ, CRT3
    2213/    F924 : 3A 25 00            CI:	LD	A,(KEYBU)	;TASTATUREINGABE
    2214/    F927 : B7                  	OR	A
    2215/    F928 : 28 FA               	JR	Z, CI		;WARTEN AUF ZEICHEN, 01 Eingabe Zeichen
    2216/    F92A : F5                  	PUSH	AF
    2217/    F92B : AF                  	XOR	A
    2218/    F92C : 32 25 00            	LD	(KEYBU),A	;TASTATURPUFFER LOESCHEN
    2219/    F92F : 32 13 00            	LD	(JOYR),A	;SPIELHEBELPUFFER
    2220/    F932 : 32 14 00            	LD	(JOYL),A	;LOESCHEN
    2221/    F935 : 7E                  	LD	A,(HL)		;(HL)=ADR. FARBSCHALTER
    2222/    F936 : B7                  	OR	A
    2223/    F937 : 28 0A               	JR	Z, CI2		;ZEICHEN IST KEIN FARBCODE
    2224/    F939 : F1                  	POP	AF
    2225/    F93A :                     
    2226/    F93A : =>FALSE             	if farb16
    2227/    F93A :                     	CP	A, 49H
    2228/    F93A :                     	JR	NC, CI		;KEIN GUELTIGER FARBCODE
    2229/    F93A :                     	JP	FARB16C		;WANDELN IN INTERNEN FARBCODE
    2230/    F93A :                     MF941:	OR	A		;KEIN GUELTIGER FARBCODE
    2231/    F93A : =>TRUE              	else
    2232/    F93A : FE 39               	CP	A, 39H
    2233/    F93C : 30 E6               	JR	NC, CI		;KEIN GUELTIGER FARBCODE
    2234/    F93E : D6 31               	SUB	31H		;WANDELN IN INTERNEN FARBCODE
    2235/    F940 : 38 E2               	JR	C, CI		;KEIN GUELTIGER FARBCODE
    2236/    F942 : [2226]              	ENDIF
    2237/    F942 :                     
    2238/    F942 : F5                  	PUSH	AF
    2239/    F943 : F1                  CI2:	POP	AF
    2240/    F944 : C9                  	RET
    2241/    F945 :                     ;
    2242/    F945 : 3D                  CRT3:	DEC	A
    2243/    F946 : CA 8D F8            	JP	Z, OCHAR	;02 ZEICHEN AUSGEBEN
    2244/    F949 : 0E 00               	LD	C,0		;ZUFAELLIGES ZEICHEN LOESCHEN
    2245/    F94B : 3D                  	DEC	A
    2246/    F94C : CA 33 FA            	JP	Z, DELC		;03 CURSOR LOESCHEN
    2247/    F94F : 3D                  	DEC	A
    2248/    F950 : CA F3 F9            	JP	Z, SETC		;04 CURSOR ANZEIGEN
    2249/    F953 : 3D                  	DEC	A
    2250/    F954 : 20 08               	JR	NZ, CRT4
    2251/    F956 :                     
    2252/    F956 :                     ; 05	Abfrage logische und physische Cursoradresse
    2253/    F956 :                     ;	Return:
    2254/    F956 :                     ;		HL physische Cursoradresse
    2255/    F956 :                     ;		DE logische Cursoradresse
    2256/    F956 : CD 7D F9            GLCU:	CALL	OC		;ABFRAGE LOG. CURSORADRESSE
    2257/    F959 :                     				;HL MIT PHYS. ADR. LADEN
    2258/    F959 : ED 5B 2B 00         	LD	DE,(CHARP)	;LOG. ADRESSE
    2259/    F95D : C9                  	RET
    2260/    F95E :                     ;
    2261/    F95E : 3D                  CRT4:	DEC	A
    2262/    F95F : 28 18               	JR	Z, SLCU		;06 LOG. CURSORADRESSE SETZEN
    2263/    F961 : 3D                  	DEC	A
    2264/    F962 : 28 19               	JR	Z, OC		;07 ABFRAGE PHYS. CURSORADRESSE
    2265/    F964 :                     				;HL MIT PHYS. ADR. LADEN
    2266/    F964 : 3D                  	DEC	A		;08 Setzen Cursor auf physische Adresse
    2267/    F965 : C0                  	RET	NZ		;KEIN GUELTIGER RUF
    2268/    F966 :                     
    2269/    F966 :                     ; 08	Setzen Cursor auf physische Adresse
    2270/    F966 :                     ;	Eingang:
    2271/    F966 :                     ;		DE physische Cursoradresse
    2272/    F966 : 21 00 EC            SPCU:	LD	HL,0EC00H	;CURSOR AUF PHYS. ADR. SETZEN
    2273/    F969 : EB                  	EX	DE,HL
    2274/    F96A : ED 52               	SBC	HL,DE
    2275/    F96C : D8                  	RET	C		;ADR. NICHT IM ZEICHENSPEICHER
    2276/    F96D : 11 28 00            	LD	DE,40		;UMRECHNEN PHYS. --> LOG. ADR.
    2277/    F970 : ED 52               SP1:	SBC	HL,DE
    2278/    F972 : 3C                  	INC	A
    2279/    F973 : 30 FB               	JR	NC, SP1
    2280/    F975 : 19                  	ADD	HL,DE
    2281/    F976 : 2C                  	INC	L
    2282/    F977 : 67                  	LD	H,A
    2283/    F978 : EB                  	EX	DE,HL
    2284/    F979 :                     
    2285/    F979 :                     ;06	Setzen Cursor auf logische Adresse
    2286/    F979 :                     ;	Eingang:
    2287/    F979 :                     ;		DE logische Cursoradresse
    2288/    F979 : ED 53 2B 00         SLCU:	LD	(CHARP),DE	;CURSOR AUF LOG. ADR. SETZEN
    2289/    F97D :                     
    2290/    F97D :                     ; 07	Abfrage physische Cursoradresse
    2291/    F97D :                     ;	Return:
    2292/    F97D :                     ;		HL physische Cursoradresse
    2293/    F97D :                     
    2294/    F97D :                     ;
    2295/    F97D :                     ;*******************************************************************
    2296/    F97D :                     ;*	PHYSISCHER BILDSCHIRMTREIBER                               *
    2297/    F97D :                     ;*******************************************************************
    2298/    F97D :                     ;
    2299/    F97D :                     ; Funktion:  phys. Bildschirmtreiber
    2300/    F97D :                     ; a) Eingang
    2301/    F97D :                     ; 	- OC
    2302/    F97D :                     ; 	gerufen von: CRT, OCHAR
    2303/    F97D :                     ; 	Parameter  : C  ASCII-Zeichen
    2304/    F97D :                     ; b) gerufene Programme
    2305/    F97D :                     ; 	- DELC Cursor löschen
    2306/    F97D :                     ; 	- ROLU Rollen hoch
    2307/    F97D :                     ; 	- ROLD Rollen runter
    2308/    F97D :                     ; 	- MIAT Farbcode investieren
    2309/    F97D :                     ; c) Ausgang
    2310/    F97D :                     ; 	-
    2311/    F97D :                     ; d) Return
    2312/    F97D :                     ; 	Parameter: HL phys. Cursoradresse
    2313/    F97D :                     ;
    2314/    F97D : =>FALSE             OC:	if krtgrafik
    2315/    F97D :                     	jp	ocx
    2316/    F97D : =>TRUE              	else
    2317/    F97D : 21 F3 F9            	LD	HL,SETC		;ADR. FUER ABSCHLIESSENDES
    2318/    F980 : [2314]              	endif
    2319/    F980 : E5                  oc0:	PUSH	HL		;CURSOR ANZEIGEN KELLERN
    2320/    F981 : CD 33 FA            	CALL	DELC		;CURSOR LOESCHEN
    2321/    F984 :                     	; HL = (CURS), DE= (CURS)-ONEKB (=Adr. im Farbspeicher)
    2322/    F984 : 79                  	LD	A,C		;AUSZUGEBENDES ZEICHEN
    2323/    F985 : D6 08               	SUB	8		;CURSOR LINKS
    2324/    F987 : D8                  	RET	C		;FEHLER
    2325/    F988 : 28 4E               	JR	Z, DECCP	;DEC ZEICHENZEIGER
    2326/    F98A : 3D                  	DEC	A		;CURSOR RECHTS
    2327/    F98B : 28 30               	JR	Z, INCCP	;INC ZEICHENZEIGER
    2328/    F98D : 3D                  	DEC	A		;CURSOR RUNTER (LF)
    2329/    F98E : 28 3B               	JR	Z, INCLP	;INC ZEILENZEIGER
    2330/    F990 : 3D                  	DEC	A		;CURSOR HOCH
    2331/    F991 : 28 53               	JR	Z, DECLP	;DEC ZEILENZEIGER
    2332/    F993 : 3D                  	DEC	A
    2333/    F994 : 28 0D               	JR	Z, HOME		;LOESCHEN BILDSCHIRM
    2334/    F996 : 3D                  	DEC	A
    2335/    F997 : 28 1E               	JR	Z, CR		;CURSOR AUF ZEILENANFANG (CR)
    2336/    F999 : FE 13               	CP	A, FIRST-0DH
    2337/    F99B : D8                  	RET	C		;KEIN DRUCKBARES ZEICHEN
    2338/    F99C :                     ;Zeichenausgabe
    2339/    F99C :                     ; HL = (CURS), DE= (CURS)-ONEKB (=Adr. im Farbspeicher)
    2340/    F99C : 71                  DIS:	LD	(HL),C		;ZEICHEN IN ZEICHENSPEICHER
    2341/    F99D : 3A 27 00            	LD	A,(ATRIB)	;AKTUELLER FARBCODE
    2342/    F9A0 : 12                  	LD	(DE),A		;FARBCODE IN FARBSPEICHER
    2343/    F9A1 : 18 1A               	JR	INCCP		;INC ZEICHENZEIGER
    2344/    F9A3 :                     ;Sonderzeichen
    2345/    F9A3 : 3A 3B 00            HOME:	LD	A,(P1ROL)
    2346/    F9A6 : 3C                  	INC	A
    2347/    F9A7 : 32 2C 00            	LD	(LINEP),A	;CURSOR AUF 1. ZEILE
    2348/    F9AA : 47                  	LD	B,A
    2349/    F9AB : 3A 3C 00            	LD	A,(P2ROL)
    2350/    F9AE : 90                  	SUB	B		;AKTUELLE ZEILENZAHL
    2351/    F9AF : 47                  	LD	B,A
    2352/    F9B0 : C5                  HOME1:	PUSH	BC
    2353/    F9B1 : CD 4F FA            	CALL	ROLU		;ROLLEN AUFWAERTS
    2354/    F9B4 : C1                  	POP	BC
    2355/    F9B5 : 10 F9               	DJNZ	HOME1		;BIS FENSTER LEER
    2356/    F9B7 : 3A 3D 00            CR:	LD	A,(P3ROL)
    2357/    F9BA : 32 2B 00            	LD	(CHARP),A	;CURSOR AUF 1. SPALTE-1
    2358/    F9BD :                     ;INC ZEICHENZEIGER
    2359/    F9BD : 21 2B 00            INCCP:	LD	HL,CHARP
    2360/    F9C0 : 11 3E 00            	LD	DE,P4ROL
    2361/    F9C3 : 34                  	INC	(HL)		;CURSOR AUF NAECHSTE SPALTE
    2362/    F9C4 : 1A                  	LD	A,(DE)
    2363/    F9C5 : BE                  	CP	A, (HL)		;CURSOR AUS DEM FENSTER?
    2364/    F9C6 : C0                  	RET	NZ
    2365/    F9C7 : 1B                  	DEC	DE
    2366/    F9C8 : 1A                  	LD	A,(DE)
    2367/    F9C9 : 3C                  	INC	A
    2368/    F9CA : 77                  	LD	(HL),A		;CURSOR AUF 1. SPALTE
    2369/    F9CB :                     ;INC ZEILENZEIGER
    2370/    F9CB : 21 2C 00            INCLP:	LD	HL,LINEP
    2371/    F9CE : 34                  	INC	(HL)		;CURSOR AUF NAECHSTE ZEILE
    2372/    F9CF : 3A 3C 00            	LD	A,(P2ROL)
    2373/    F9D2 : 3D                  	DEC	A
    2374/    F9D3 : BE                  	CP	A, (HL)		;CURSOR AUS DEM FENSTER?
    2375/    F9D4 : D0                  	RET	NC
    2376/    F9D5 : 77                  	LD	(HL),A		;CURSOR AUF LETZTE ZEILE
    2377/    F9D6 : 18 77               	JR	ROLU		;ROLLEN AUFWAERTS
    2378/    F9D8 :                     ;DEC ZEICHENZEIGER
    2379/    F9D8 : 21 2B 00            DECCP:	LD	HL,CHARP
    2380/    F9DB : 11 3D 00            	LD	DE,P3ROL
    2381/    F9DE : 35                  	DEC	(HL)		;CURSOR AUF VORHERGEHENDE SPALTE
    2382/    F9DF : 1A                  	LD	A,(DE)
    2383/    F9E0 : BE                  	CP	A, (HL)		;CURSOR AUS DEM FENSTER?
    2384/    F9E1 : C0                  	RET	NZ
    2385/    F9E2 : 13                  	INC	DE
    2386/    F9E3 : 1A                  	LD	A,(DE)
    2387/    F9E4 : 3D                  	DEC	A
    2388/    F9E5 : 77                  	LD	(HL),A		;CURSOR AUF LETZTE SPALTE
    2389/    F9E6 :                     ;DEC ZEILENZEIGER
    2390/    F9E6 : 21 2C 00            DECLP:	LD	HL,LINEP
    2391/    F9E9 : 35                  	DEC	(HL)
    2392/    F9EA : 3A 3B 00            	LD	A,(P1ROL)
    2393/    F9ED : BE                  	CP	A, (HL)		;CURSOR AUS DEM FENSTER?
    2394/    F9EE : D8                  	RET	C
    2395/    F9EF : 3C                  	INC	A
    2396/    F9F0 : 77                  	LD	(HL),A		;CURSOR AUF 1. ZEILE
    2397/    F9F1 : 18 5D               	JR	ROLD		;ROLLEN ABWAERTS
    2398/    F9F3 :                     ;CURSOR WIEDER ANZEIGEN
    2399/    F9F3 :                     ; 04	Cursor anzeigen
    2400/    F9F3 :                     ;	Return:
    2401/    F9F3 :                     ;		HL physische Cursoradresse
    2402/    F9F3 : 3A 2B 00            SETC:	LD	A,(CHARP)
    2403/    F9F6 : 4F                  	LD	C,A
    2404/    F9F7 : 3A 2C 00            	LD	A,(LINEP)
    2405/    F9FA : 47                  	LD	B,A
    2406/    F9FB : 21 D8 EB            	LD	HL,SCTOP-LINEL 	;ZEICHENSPEICHERADR.-ZEILENLAENGE
    2407/    F9FE : 11 28 00            	LD	DE,LINEL	;ZEILENLAENGE
    2408/    FA01 : 19                  SETC1:	ADD	HL,DE		;
    2409/    FA02 : 10 FD               	DJNZ	SETC1		;
    2410/    FA04 : 41                  	LD	B,C		;BERECHNEN CURSORADR.
    2411/    FA05 : 2B                  	DEC	HL		;
    2412/    FA06 : 23                  SETC2:	INC	HL		;
    2413/    FA07 : 10 FD               	DJNZ	SETC2		;
    2414/    FA09 : 22 2D 00            	LD	(CURS),HL	;MERKEN CURSORADRESSE
    2415/    FA0C : 3A C8 EF            	LD	A,(MAPAR+7)	;KONFGURATIONSBYTE FUER FARBE
    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
    2419/    FA14 : 32 3F 00            	LD	(BUFF),A	;
    2420/    FA17 : 36 FF               	LD	(HL),0FFH	;SETZEN CURSOR
    2421/    FA19 : 11 00 04            SETC5:	LD	DE,ONEKB
    2422/    FA1C : E5                  	PUSH	HL
    2423/    FA1D : ED 52               	SBC	HL,DE		;ZUGEHOERIGE FARBCODEADRESSE
    2424/    FA1F : 7E                  	LD	A,(HL)		;
    2425/    FA20 : 32 34 00            	LD	(BUFFA),A	;MERKEN FARBCODE
    2426/    FA23 : 3A 27 00            	LD	A,(ATRIB)
    2427/    FA26 : EE 80               	XOR	80H		;BLINKEN FUER CURSOR INVERTIEREN
    2428/    FA28 : 47                  	LD	B,A
    2429/    FA29 : AE                  	XOR	(HL)
    2430/    FA2A : E6 F0               	AND	A, 0F0H
    2431/    FA2C : 78                  	LD	A,B
    2432/    FA2D :                     
    2433/    FA2D : =>FALSE             	if farb16
    2434/    FA2D :                     	NOP			;FARBE BLEIBT
    2435/    FA2D :                     	NOP
    2436/    FA2D :                     	NOP
    2437/    FA2D : =>TRUE              	else
    2438/    FA2D : CC D6 FA            	CALL	Z, MIAT		;CURSORFARBE INVERTIEREN
    2439/    FA30 : [2433]              	ENDIF
    2440/    FA30 :                     
    2441/    FA30 : 77                  	LD	(HL),A		;CURSORFARBE SETZEN
    2442/    FA31 : E1                  	POP	HL
    2443/    FA32 : C9                  	RET
    2444/    FA33 :                     ;
    2445/    FA33 :                     ;LOESCHEN CURSOR
    2446/    FA33 :                     ; 03	Cursor löschen
    2447/    FA33 : 2A 2D 00            DELC:	LD	HL,(CURS)
    2448/    FA36 : 3A C8 EF            	LD	A,(MAPAR+7)	;KONFIGURATIONSBYTE FUER FARBE
    2449/    FA39 : CB 6F               	BIT	5,A		;FARBVARIANTE?
    2450/    FA3B : 20 04               	JR	NZ, DELC1	;FARBE
    2451/    FA3D : 3A 3F 00            	LD	A,(BUFF)	;KEINE FARBE
    2452/    FA40 : 77                  	LD	(HL),A		;ZEICHEN ZURUECK
    2453/    FA41 : 11 00 04            DELC1:	LD	DE,ONEKB
    2454/    FA44 : E5                  	PUSH	HL
    2455/    FA45 : B7                  	OR	A
    2456/    FA46 : ED 52               	SBC	HL,DE		;ZUGEHOERIGE FARBCODEADRESSE
    2457/    FA48 : 3A 34 00            	LD	A,(BUFFA)
    2458/    FA4B : 77                  	LD	(HL),A		;ALTEN FARBCODE ZURUECK
    2459/    FA4C : EB                  	EX	DE,HL
    2460/    FA4D : E1                  	POP	HL
    2461/    FA4E : C9                  	RET
    2462/    FA4F :                     ;
    2463/    FA4F :                     ;BILDSCHIRM ROLLEN (FENSTER)
    2464/    FA4F :                     ;
    2465/    FA4F :                     ; Funktion: Bildschirm rollen, letzte Zeile löschen38
    2466/    FA4F :                     ; a) Eingang
    2467/    FA4F :                     ; 	- ROLU, ROLD
    2468/    FA4F :                     ; 	gerufen von:  OC
    2469/    FA4F :                     ; 	- ROLL
    2470/    FA4F :                     ; 	gerufen von: ROLU, ROLD
    2471/    FA4F :                     ; 	Parameter  : A <>0 runter
    2472/    FA4F :                     ; 		       =0 hoch
    2473/    FA4F :                     ; b) gerufene Programme
    2474/    FA4F :                     ; 	- MOVE Speicher verschieben
    2475/    FA4F :                     ;
    2476/    FA4F : 3E                  ROLU:	DB	3EH		;LD A,
    2477/    FA50 :                     ;
    2478/    FA50 : AF                  ROLD:	XOR	A
    2479/    FA51 :                     ;
    2480/    FA51 : F5                  ROL:	PUSH	AF
    2481/    FA52 : 21 D8 EB            	LD	HL,SCTOP-LINEL	;ZEICHENSPEICHERADR.-ZEILENLAENGE
    2482/    FA55 : 11 28 00            	LD	DE,LINEL	;ZEILENLAENGE
    2483/    FA58 : 3A 3B 00            	LD	A,(P1ROL)
    2484/    FA5B : 3C                  	INC	A
    2485/    FA5C : 4F                  	LD	C,A
    2486/    FA5D : 3A 3C 00            	LD	A,(P2ROL)
    2487/    FA60 : 3D                  	DEC	A
    2488/    FA61 : 47                  	LD	B,A
    2489/    FA62 : F1                  	POP	AF
    2490/    FA63 : C5                  	PUSH	BC
    2491/    FA64 : B7                  	OR	A		;ROLLEN ABWAERTS?
    2492/    FA65 : 28 01               	JR	Z, ROL1
    2493/    FA67 : 41                  	LD	B,C
    2494/    FA68 : 19                  ROL1:	ADD	HL,DE
    2495/    FA69 : 10 FD               	DJNZ	ROL1		;1. ZU ROLLENDE ZEILE
    2496/    FA6B : C1                  	POP	BC
    2497/    FA6C : F5                  	PUSH	AF
    2498/    FA6D : 78                  	LD	A,B
    2499/    FA6E : 91                  	SUB	C
    2500/    FA6F : 28 37               	JR	Z, ENDRO	;EINE ZEILE, NUR LOESCHEN
    2501/    FA71 : 47                  	LD	B,A
    2502/    FA72 : F1                  ROL2:	POP	AF
    2503/    FA73 : E5                  	PUSH	HL
    2504/    FA74 : B7                  	OR	A		;ROLLEN ABWAERTS?
    2505/    FA75 : 28 03               	JR	Z, ROL3
    2506/    FA77 : 19                  	ADD	HL,DE
    2507/    FA78 : 18 02               	JR	ROL4
    2508/    FA7A : ED 52               ROL3:	SBC	HL,DE
    2509/    FA7C : D1                  ROL4:	POP	DE
    2510/    FA7D : F5                  	PUSH	AF
    2511/    FA7E : E5                  	PUSH	HL
    2512/    FA7F : C5                  	PUSH	BC
    2513/    FA80 :                     ;
    2514/    FA80 :                     ;EINE ZEILE IN ROLLRICHTUNG UMSPEICHERN
    2515/    FA80 : 3A 3D 00            MOVEL:	LD	A,(P3ROL)
    2516/    FA83 : 3C                  	INC	A
    2517/    FA84 : 47                  	LD	B,A
    2518/    FA85 : 2B                  	DEC	HL
    2519/    FA86 : 1B                  	DEC	DE
    2520/    FA87 : 23                  MOVL1:	INC	HL
    2521/    FA88 : 13                  	INC	DE
    2522/    FA89 : 10 FC               	DJNZ	MOVL1		;1. SPALTE SUCHEN
    2523/    FA8B : 4F                  	LD	C,A
    2524/    FA8C : 3A 3E 00            	LD	A,(P4ROL)
    2525/    FA8F : 91                  	SUB	C
    2526/    FA90 : 4F                  	LD	C,A		;ZEICHENANZAHL
    2527/    FA91 : CD F7 F2            	CALL	MOVE		;UMSPEICHERN
    2528/    FA94 : C5                  	PUSH	BC
    2529/    FA95 : 01 00 04            	LD	BC,ONEKB
    2530/    FA98 : EB                  	EX	DE,HL
    2531/    FA99 : ED 42               	SBC	HL,BC		;ADR. IM FARBSPEICHER
    2532/    FA9B : EB                  	EX	DE,HL
    2533/    FA9C : ED 42               	SBC	HL,BC
    2534/    FA9E : C1                  	POP	BC
    2535/    FA9F : ED B0               	LDIR
    2536/    FAA1 : C1                  	POP	BC
    2537/    FAA2 : E1                  	POP	HL
    2538/    FAA3 : 11 28 00            	LD	DE,LINEL
    2539/    FAA6 : 10 CA               	DJNZ	ROL2
    2540/    FAA8 : F1                  ENDRO:	POP	AF
    2541/    FAA9 :                     ;
    2542/    FAA9 :                     ;ZEILE LOESCHEN
    2543/    FAA9 : 3A 3D 00            DELLI:	LD	A,(P3ROL)
    2544/    FAAC : 3C                  	INC	A
    2545/    FAAD : 4F                  	LD	C,A
    2546/    FAAE : 47                  	LD	B,A
    2547/    FAAF : 23                  DELL1:	INC	HL
    2548/    FAB0 : 10 FD               	DJNZ	DELL1		;1. SPALTE SUCHEN
    2549/    FAB2 : 5D                  	LD	E,L
    2550/    FAB3 : 54                  	LD	D,H
    2551/    FAB4 : 2B                  	DEC	HL
    2552/    FAB5 : 3A 3E 00            	LD	A,(P4ROL)
    2553/    FAB8 : 91                  	SUB	C
    2554/    FAB9 : 4F                  	LD	C,A		;ANZAHL ZEICHEN
    2555/    FABA : 0D                  	DEC	C
    2556/    FABB : 36 20               	LD	(HL),SPACE
    2557/    FABD : C5                  	PUSH	BC
    2558/    FABE : F5                  	PUSH	AF
    2559/    FABF : C4 F7 F2            	CALL	NZ, MOVE	;LOESCHEN
    2560/    FAC2 : 11 00 04            	LD	DE,ONEKB
    2561/    FAC5 : ED 52               	SBC	HL,DE		;ADR. IM FARBSPEICHER
    2562/    FAC7 : 3A 27 00            	LD	A,(ATRIB)	;AKTUELLER FARBCODE
    2563/    FACA : CB BF               	RES	7,A		;KEIN BLINKEN
    2564/    FACC : 77                  	LD	(HL),A
    2565/    FACD : F1                  	POP	AF
    2566/    FACE : C1                  	POP	BC
    2567/    FACF : C8                  	RET	Z
    2568/    FAD0 : 5D                  	LD	E,L
    2569/    FAD1 : 54                  	LD	D,H
    2570/    FAD2 : 13                  	INC	DE
    2571/    FAD3 : ED B0               	LDIR			;LOESCHEN FARBSPEICHER
    2572/    FAD5 : C9                  DELEN:	RET
    2573/    FAD6 :                     ;
    2574/    FAD6 :                     ;FARBCODE INVERTIEREN
    2575/    FAD6 :                     MIAT:
    2576/    FAD6 : =>FALSE             	if farb16
    2577/    FAD6 :                     	JP	MIATN
    2578/    FAD6 :                     	NOP
    2579/    FAD6 :                     MFADA:
    2580/    FAD6 : =>TRUE              	else
    2581/    FAD6 : 0E 00               	LD	C,0
    2582/    FAD8 : CB 27               	SLA	A
    2583/    FADA : [2576]              	ENDIF
    2584/    FADA :                     
    2585/    FADA : CB 19               	RR	C		;MERKEN BLINKBIT
    2586/    FADC : 07                  	RLCA
    2587/    FADD : 07                  	RLCA
    2588/    FADE : 07                  	RLCA
    2589/    FADF : E6 7F               	AND	A, 7FH
    2590/    FAE1 : B1                  	OR	C		;BLINKBIT ZURUECK
    2591/    FAE2 : C9                  	RET
    2592/    FAE3 :                     ;
    2593/    FAE3 :                     ;*******************************************************************
    2594/    FAE3 :                     ;* 	CRT-TREIBER  TEIL 2: TASTATUR                              *
    2595/    FAE3 :                     ;*******************************************************************
    2596/    FAE3 :                     ;
    2597/    FAE3 :                     ;INITIALISIERUNG TASTATUR
    2598/    FAE3 :                     ;
    2599/    FAE3 : F3                  INITA:	DI
    2600/    FAE4 : F5                  	PUSH	AF
    2601/    FAE5 : CD F7 FA            	CALL	INICT		;CTC INITIALISIEREN
    2602/    FAE8 : F1                  	POP	AF
    2603/    FAE9 :                     ;
    2604/    FAE9 :                     ;INITIALISIERUNG TASTATUR-PIO  DATEN A  AUF 0
    2605/    FAE9 : F5                  INPIO:	PUSH	AF
    2606/    FAEA : CD 15 FB            	CALL	INITT		;INIT. PIO DATEN A AUF FFH
    2607/    FAED : 3E 83               	LD	A,83H		;INTERRUPT
    2608/    FAEF : D3 93               	OUT	SPIOB, A	;Interrupt ein
    2609/    FAF1 : AF                  	XOR	A		;A=0
    2610/    FAF2 : D3 90               	OUT	DPIOA, A	;SPIOA alle Leitungen auf 0
    2611/    FAF4 :                     ;bei Tastendruck wird jetzt ein LOW-Pegel von PIOA auf PIOB durchgeleitet
    2612/    FAF4 :                     ;dieser löst einen Interrupt aus --> INTP
    2613/    FAF4 : F1                  	POP	AF
    2614/    FAF5 : FB                  	EI
    2615/    FAF6 : C9                  	RET
    2616/    FAF7 :                     ;
    2617/    FAF7 :                     ;INITIALISIERUNG CTC
    2618/    FAF7 : 3E 03               INICT:	LD	A,3		;Steuerwort CTC: Reset
    2619/    FAF9 : D3 80               	OUT	CTC0, A
    2620/    FAFB : D3 82               	OUT	CTC2, A
    2621/    FAFD : D3 8A               	OUT	8AH, A		;Steuerung PIO1 Kanal A, Interrupt aus
    2622/    FAFF : AF                  	XOR	A
    2623/    FB00 : D3 80               	OUT	CTC0, A		;INTERRUPT-VEKTOR = 00h
    2624/    FB02 : 3E C7               	LD	A,0C7H		;ZAEHLERINTERRUPT (Steuerwort CTC3: EI, Reset, Zeitkonstante folgt)
    2625/    FB04 : D3 83               	OUT	CTC3, A
    2626/    FB06 : 3E 40               	LD	A,40H		;Zeitkonstante 64, zusammen mit CTC2 ergibt das einen Takt von 1 sek = 1 Hz
    2627/    FB08 : D3 83               	OUT	CTC3, A
    2628/    FB0A : 3E 27               INIC1:	LD	A,27H		;ZEITGEBER KEIN INTERRUPT (Steuerwort CTC2: Vorteiler 256, Reset, Zeitkonstante folgt)
    2629/    FB0C : D3 82               	OUT	CTC2, A
    2630/    FB0E : 3E 96               	LD	A,96H		;Zeitkonstante: 2,4576 Mhz / 256 / 96h = 64 Hz
    2631/    FB10 : D3 82               	OUT	CTC2, A
    2632/    FB12 : 3E 03               	LD	A,3
    2633/    FB14 : C9                  	RET
    2634/    FB15 :                     ;
    2635/    FB15 :                     ;INITIALISIERUNG TASTATUR-PIO DATEN A AUF FFH
    2636/    FB15 : 3E CF               INITT:	LD	A,0CFH		;BIT E/A
    2637/    FB17 : D3 92               	OUT	SPIOA, A
    2638/    FB19 : AF                  	XOR	A		;ALLES AUSGAENGE
    2639/    FB1A : D3 92               	OUT	SPIOA, A
    2640/    FB1C : 3E 08               	LD	A,8		;Interruptvektor
    2641/    FB1E : D3 93               	OUT	SPIOB, A
    2642/    FB20 : 3E CF               	LD	A,0CFH		;BIT E/A
    2643/    FB22 : D3 93               	OUT	SPIOB, A
    2644/    FB24 : 3E FF               	LD	A,0FFH		;ALLES EINGAENGE
    2645/    FB26 : D3 93               	OUT	SPIOB, A
    2646/    FB28 : 3E 17               	LD	A,17H		;Interruptsteuerwort, OR, LOW-aktiv, Maske folgt
    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
    2650/    FB2F : 3D                  	DEC	A		;A=FF
    2651/    FB30 : D3 90               	OUT	DPIOA, A	;mit FF init.
    2652/    FB32 : C9                  	RET
    2653/    FB33 :                     
    2654/    FB33 : =>TRUE              	IF tastneu = 0
    2655/    FB33 :                     
    2656/    FB33 :                     ;
    2657/    FB33 :                     ;UMC0DIERUNGSTABELLE FUER SONDERTASTEN+SHIFT
    2658/    FB33 :                     ;S64..S78
    2659/    FB33 : 18                  TAB1:	DB	18H		; tab right
    2660/    FB34 : 1E                  	DB	1EH		; CONT
    2661/    FB35 : 1F                  	DB	1FH		; DEL
    2662/    FB36 : 5D                  	DB	5DH		; ]
    2663/    FB37 : 00                  	DB	0
    2664/    FB38 : 08                  	DB	8		; cu left
    2665/    FB39 : 09                  	DB	9		; cu right
    2666/    FB3A : 0A                  	DB	0AH		; cu down
    2667/    FB3B : 0B                  	DB	0BH		; cu up
    2668/    FB3C : 02                  	DB	2		; CL LN
    2669/    FB3D : 0D                  	DB	0DH		; ENTER
    2670/    FB3E : 03                  	DB	3		; STOP
    2671/    FB3F : 20                  	DB	20H		; space
    2672/    FB40 :                     ;
    2673/    FB40 :                     ;UMCODIERUNGSTASTEN FUER SONDERTASTEN
    2674/    FB40 :                     ;S64..S78
    2675/    FB40 : 19                  TAB2:	DB	19H		; tab left
    2676/    FB41 : 13                  	DB	13H		; PAUSE
    2677/    FB42 : 1A                  	DB	1AH		; INS
    2678/    FB43 : 5E                  	DB	5EH		; ^
    2679/    FB44 : 00                  	DB	0
    2680/    FB45 : 08                  	DB	8		; cu left
    2681/    FB46 : 09                  	DB	9		; cu right
    2682/    FB47 : 0A                  	DB	0AH		; cu down
    2683/    FB48 : 0B                  	DB	0BH		; cu up
    2684/    FB49 : 1B                  	DB	1BH		; ESC
    2685/    FB4A : 0D                  	DB	0DH		; ENTER
    2686/    FB4B : 03                  	DB	3		; STOP
    2687/    FB4C : 20                  	DB	20H		; space
    2688/    FB4D : 00                  	DB	0
    2689/    FB4E : 14                  	DB	14H		; COLOR
    2690/    FB4F : 00                  	DB	0
    2691/    FB50 : 7E                  	DB	7EH		;INTERNER CODE GRAFIC-TASTE
    2692/    FB51 : 1C                  	DB	1CH		; LIST
    2693/    FB52 : 1D                  	DB	1DH		; RUN
    2694/    FB53 : 7D                  	DB	7DH		;INTERNER CODE SHLOC-TSTE
    2695/    FB54 :                     ;
    2696/    FB54 :                     ;UMCODIERUNGSTABELLE FUER GRAFIKSYMBOLE
    2697/    FB54 : AB                  TABG:	DB	0ABH		;CTRL/A
    2698/    FB55 :                     
    2699/    FB55 : =>FALSE             	if osver == 11
    2700/    FB55 :                     	DB	8Ch		; CTRL B
    2701/    FB55 : =>TRUE              	ELSE
    2702/    FB55 : 8D                  	DB	8DH
    2703/    FB56 : [2699]              	ENDIF
    2704/    FB56 :                     
    2705/    FB56 : 82                  	DB	82H		; CTRL C
    2706/    FB57 : 85                  	DB	85H		; CTRL D
    2707/    FB58 : 86                  	DB	86H		; CTRL E
    2708/    FB59 : 84                  	DB	84H		; CTRL F
    2709/    FB5A : CF                  	DB	0CFH		; CTRL G
    2710/    FB5B : C3                  	DB	0C3H		; CTRL H
    2711/    FB5C : 96                  	DB	96H		; CTRL I
    2712/    FB5D : 90                  	DB	90H		; CTRL J
    2713/    FB5E : 9B                  	DB	9BH		; CTRL K
    2714/    FB5F : 9C                  	DB	9CH		; CTRL L
    2715/    FB60 : AF                  	DB	0AFH		; CTRL M
    2716/    FB61 : C4                  	DB	0C4H		; CTRL N
    2717/    FB62 : 95                  	DB	95H		; CTRL O
    2718/    FB63 : 92                  	DB	92H		; CTRL P
    2719/    FB64 : AE                  	DB	0AEH		; CTRL Q
    2720/    FB65 : 87                  	DB	87H		; CTRL R
    2721/    FB66 : AC                  	DB	0ACH		; CTRL S
    2722/    FB67 : 8C                  	DB	8CH		; CTRL T
    2723/    FB68 : 91                  	DB	91H		; CTRL U
    2724/    FB69 : 83                  	DB	83H		; CTRL V
    2725/    FB6A : AD                  	DB	0ADH		; CTRL W
    2726/    FB6B : 80                  	DB	80H		; CTRL X
    2727/    FB6C : 81                  	DB	81H		; CTRL Y
    2728/    FB6D : C2                  	DB	0C2H		; CTRL Z
    2729/    FB6E : 00                  	DB	0
    2730/    FB6F : 00                  	DB	0
    2731/    FB70 : 00                  	DB	0
    2732/    FB71 : 93                  	DB	93H		;CTRL/^
    2733/    FB72 : 00                  	DB	0
    2734/    FB73 : 00                  	DB	0
    2735/    FB74 : EC                  	DB	0ECH		; SHIFT 1
    2736/    FB75 : ED                  	DB	0EDH		; SHIFT 2
    2737/    FB76 : EE                  	DB	0EEH		; SHIFT 3
    2738/    FB77 : EF                  	DB	0EFH		; SHIFT 4
    2739/    FB78 : F0                  	DB	0F0H		; SHIFT 5
    2740/    FB79 : CA                  	DB	0CAH		; SHIFT 6
    2741/    FB7A : CC                  	DB	0CCH		; SHIFT 7
    2742/    FB7B : D0                  	DB	0D0H		; SHIFT 8
    2743/    FB7C : D1                  	DB	0D1H		; SHIFT 9
    2744/    FB7D : DA                  	DB	0DAH		; SHIFT :
    2745/    FB7E : DE                  	DB	0DEH		; SHIFT ;
    2746/    FB7F : FC                  	DB	0FCH		; ','
    2747/    FB80 : DF                  	DB	0DFH		; SHIFT =
    2748/    FB81 : FD                  	DB	0FDH		; '.'
    2749/    FB82 : DB                  	DB	0DBH		; '?'
    2750/    FB83 : B3                  	DB	0B3H		;'0'
    2751/    FB84 : A0                  	DB	0A0H		; '1'
    2752/    FB85 : A1                  	DB	0A1H		; '2'
    2753/    FB86 : 9E                  	DB	9EH		; '3'
    2754/    FB87 : 9F                  	DB	9FH		; '4'
    2755/    FB88 : C0                  	DB	0C0H		; '5'
    2756/    FB89 : C7                  	DB	0C7H		; '6'
    2757/    FB8A : B4                  	DB	0B4H		; '7'
    2758/    FB8B : B0                  	DB	0B0H		; '8'
    2759/    FB8C : B1                  	DB	0B1H		; '9'
    2760/    FB8D : 8F                  	DB	8FH		; ':'
    2761/    FB8E : FE                  	DB	0FEH		; ';'
    2762/    FB8F : DC                  	DB	0DCH		; SHIFT ','
    2763/    FB90 : FF                  	DB	0FFH		; '='
    2764/    FB91 : DD                  	DB	0DDH		; SHIFT '.'
    2765/    FB92 : BE                  	DB	0BEH		; '?'
    2766/    FB93 : B2                  	DB	0B2H		;'@'
    2767/    FB94 : A3                  	DB	0A3H		; 'A'
    2768/    FB95 : F9                  	DB	0F9H		; 'B'
    2769/    FB96 : AA                  	DB	0AAH		; 'C'
    2770/    FB97 : A5                  	DB	0A5H		; 'D'
    2771/    FB98 : A9                  	DB	0A9H		; 'E'
    2772/    FB99 : 88                  	DB	88H		; 'F'
    2773/    FB9A : C8                  	DB	0C8H		; 'G'
    2774/    FB9B : C6                  	DB	0C6H		; 'H'
    2775/    FB9C : BC                  	DB	0BCH		; 'I'
    2776/    FB9D : B6                  	DB	0B6H		; 'J'
    2777/    FB9E : BB                  	DB	0BBH		; 'K'
    2778/    FB9F : BA                  	DB	0BAH		; 'L'
    2779/    FBA0 :                     
    2780/    FBA0 : =>FALSE             	IF osver = 11
    2781/    FBA0 :                     	DB	0FBH
    2782/    FBA0 : =>TRUE              	ELSEIF osver = 12
    2783/    FBA0 : B7                  	DB	0B7H		; 'M'
    2784/    FBA1 : =>FALSE             	ELSEIF osver = 13
    2785/    FBA1 :                     	DB	0FBH
    2786/    FBA1 : [2780]              	ENDIF
    2787/    FBA1 :                     
    2788/    FBA1 : FA                  	DB	0FAH		; 'N'
    2789/    FBA2 : BD                  	DB	0BDH		; 'O'
    2790/    FBA3 : B8                  	DB	0B8H		; 'P'
    2791/    FBA4 : A8                  	DB	0A8H		; 'Q'
    2792/    FBA5 : C1                  	DB	0C1H		; 'R'
    2793/    FBA6 : A6                  	DB	0A6H		; 'S'
    2794/    FBA7 : 89                  	DB	89H		; 'T'
    2795/    FBA8 : B5                  	DB	0B5H		; 'U'
    2796/    FBA9 : F8                  	DB	0F8H		; 'V'
    2797/    FBAA : A4                  	DB	0A4H		; 'W'
    2798/    FBAB : A2                  	DB	0A2H		; 'X'
    2799/    FBAC : A7                  	DB	0A7H		; 'Y'
    2800/    FBAD : C5                  	DB	0C5H		; 'Z'
    2801/    FBAE : 98                  	DB	98H		; CONTR :
    2802/    FBAF : 00                  	DB	0
    2803/    FBB0 : D7                  	DB	0D7H		; SHIFT ^
    2804/    FBB1 : B9                  	DB	0B9H		; ^
    2805/    FBB2 : D2                  	DB	0D2H		; SHIFT 0
    2806/    FBB3 : D3                  	DB	0D3H		; SHIFT @
    2807/    FBB4 : F2                  	DB	0F2H		; SHIFT A
    2808/    FBB5 : E0                  	DB	0E0H		; SHIFT B
    2809/    FBB6 : E2                  	DB	0E2H		; SHIFT C
    2810/    FBB7 : F4                  	DB	0F4H		; SHIFT D
    2811/    FBB8 : E8                  	DB	0E8H		; SHIFT E
    2812/    FBB9 : F5                  	DB	0F5H		; SHIFT F
    2813/    FBBA : F6                  	DB	0F6H		; SHIFT G
    2814/    FBBB : 8A                  	DB	8AH		; SHIFT H
    2815/    FBBC : D4                  	DB	0D4H		; SHIFT I
    2816/    FBBD : 8B                  	DB	8BH		; SHIFT J
    2817/    FBBE : D8                  	DB	0D8H		; SHIFT K
    2818/    FBBF : D9                  	DB	0D9H		; SHIFT L
    2819/    FBC0 : CD                  	DB	0CDH		; SHIFT M
    2820/    FBC1 : CE                  	DB	0CEH		; SHIFT N
    2821/    FBC2 : D5                  	DB	0D5H		; SHIFT O
    2822/    FBC3 : D6                  	DB	0D6H		; SHIFT P
    2823/    FBC4 : EA                  	DB	0EAH		; SHIFT Q
    2824/    FBC5 : E7                  	DB	0E7H		; SHIFT R
    2825/    FBC6 : F3                  	DB	0F3H		; SHIFT S
    2826/    FBC7 : E6                  	DB	0E6H		; SHIFT T
    2827/    FBC8 : C9                  	DB	0C9H		; SHIFT U
    2828/    FBC9 : E1                  	DB	0E1H		; SHIFT V
    2829/    FBCA : E9                  	DB	0E9H		; SHIFT W
    2830/    FBCB : E3                  	DB	0E3H		; SHIFT X
    2831/    FBCC : E4                  	DB	0E4H		; SHIFT Y
    2832/    FBCD : CB                  	DB	0CBH		; SHIFT Z
    2833/    FBCE : 94                  	DB	94H		; CONTR <
    2834/    FBCF : 9D                  	DB	9DH		; CONTR ,
    2835/    FBD0 : 97                  	DB	97H		; CONTR =
    2836/    FBD1 : 9A                  	DB	9AH		; CONTR .
    2837/    FBD2 : 99                  	DB	99H		; CONTR ?
    2838/    FBD3 :                     
    2839/    FBD3 : =>FALSE             	ELSE	; tastneu = 1
    2840/    FBD3 :                     
    2841/    FBD3 :                     ;Neue Tastaturtabelle:
    2842/    FBD3 :                     ;
    2843/    FBD3 :                     ;TABELLE FUER ALLE TASTEN
    2844/    FBD3 :                     ;
    2845/    FBD3 :                     TAB1:
    2846/    FBD3 :                     ;Spalte 0
    2847/    FBD3 :                     	DB  '0'
    2848/    FBD3 :                     	DB  '8'
    2849/    FBD3 :                     	DB  '@'
    2850/    FBD3 :                     	DB  'H'
    2851/    FBD3 :                     	DB  'P'
    2852/    FBD3 :                     	DB  'X'
    2853/    FBD3 :                     	DB  08H  ; <-
    2854/    FBD3 :                     	DB  00H  ; SHIFT
    2855/    FBD3 :                     ;Spalte 1
    2856/    FBD3 :                     	DB  '1'
    2857/    FBD3 :                     	DB  '9'
    2858/    FBD3 :                     	DB  'A'
    2859/    FBD3 :                     	DB  'I'
    2860/    FBD3 :                     	DB  'Q'
    2861/    FBD3 :                     	DB  'Y'
    2862/    FBD3 :                     	DB  09H  ; ->
    2863/    FBD3 :                     	DB  14H  ; COLOR
    2864/    FBD3 :                     ; Spalte 2
    2865/    FBD3 :                     	DB  '2'
    2866/    FBD3 :                     	DB  ':'
    2867/    FBD3 :                     	DB  'B'
    2868/    FBD3 :                     	DB  'J'
    2869/    FBD3 :                     	DB  'R'
    2870/    FBD3 :                     	DB  'Z'
    2871/    FBD3 :                     	DB  0AH  ; cursor down
    2872/    FBD3 :                     	DB  00H  ; CONTROL
    2873/    FBD3 :                     ; Spalte 3
    2874/    FBD3 :                     	DB  '3'
    2875/    FBD3 :                     	DB  ';'
    2876/    FBD3 :                     	DB  'C'
    2877/    FBD3 :                     	DB  'K'
    2878/    FBD3 :                     	DB  'S'
    2879/    FBD3 :                     	DB  19H  ; |<-
    2880/    FBD3 :                     	DB  0BH  ; cursor up
    2881/    FBD3 :                     	DB  11H  ; GRAFIK
    2882/    FBD3 :                     ; Spalte 4
    2883/    FBD3 :                     	DB  '4'
    2884/    FBD3 :                     	DB  ','
    2885/    FBD3 :                     	DB  'D'
    2886/    FBD3 :                     	DB  'L'
    2887/    FBD3 :                     	DB  'T'
    2888/    FBD3 :                     	DB  13H  ; PAUSE
    2889/    FBD3 :                     	DB  1BH  ; ESC
    2890/    FBD3 :                     	DB  1CH  ; LIST
    2891/    FBD3 :                     ; Spalte 5
    2892/    FBD3 :                     	DB  '5'
    2893/    FBD3 :                     	DB  '='
    2894/    FBD3 :                     	DB  'E'
    2895/    FBD3 :                     	DB  'M'
    2896/    FBD3 :                     	DB  'U'
    2897/    FBD3 :                     	DB  1AH  ; INS
    2898/    FBD3 :                     	DB  0DH  ; ENTER
    2899/    FBD3 :                     	DB  1DH  ; RUN
    2900/    FBD3 :                     ; Spalte 6
    2901/    FBD3 :                     	DB  '6'
    2902/    FBD3 :                     	DB  '.'
    2903/    FBD3 :                     	DB  'F'
    2904/    FBD3 :                     	DB  'N'
    2905/    FBD3 :                     	DB  'V'
    2906/    FBD3 :                     	DB  '^'
    2907/    FBD3 :                     	DB  03H  ; STOP
    2908/    FBD3 :                     	DB  10H  ; SHIFT LOCK
    2909/    FBD3 :                     ; Spalte 7
    2910/    FBD3 :                     	DB  '7'
    2911/    FBD3 :                     	DB  '?'
    2912/    FBD3 :                     	DB  'G'
    2913/    FBD3 :                     	DB  'O'
    2914/    FBD3 :                     	DB  'W'
    2915/    FBD3 :                     	DB  '[' ; (S68)
    2916/    FBD3 :                     	DB  ' '	; SPACE
    2917/    FBD3 :                     	DB  ']' ; (S88)
    2918/    FBD3 :                     ;
    2919/    FBD3 :                     ;TABELLE DER SONDERTASTEN (24)
    2920/    FBD3 :                     ;
    2921/    FBD3 :                     TAB2:	DB  '1'
    2922/    FBD3 :                     	DB  '2'
    2923/    FBD3 :                     	DB  '3'
    2924/    FBD3 :                     	DB  '4'
    2925/    FBD3 :                     	DB  '5'
    2926/    FBD3 :                     	DB  '6'
    2927/    FBD3 :                     	DB  '7'
    2928/    FBD3 :                     	DB  '8'
    2929/    FBD3 :                     	DB  '9'
    2930/    FBD3 :                     	DB  '0'
    2931/    FBD3 :                     	DB  ':'
    2932/    FBD3 :                     	DB  ';'
    2933/    FBD3 :                     	DB  ','
    2934/    FBD3 :                     	DB  '='
    2935/    FBD3 :                     	DB  '.'
    2936/    FBD3 :                     	DB  '?'
    2937/    FBD3 :                     	DB  19H  ; |<-
    2938/    FBD3 :                     	DB  13H  ; PAUSE
    2939/    FBD3 :                     	DB  1AH  ; INS
    2940/    FBD3 :                     	DB  1BH  ; ESC
    2941/    FBD3 :                     	DB  20H  ; SPACE
    2942/    FBD3 :                       	DB  1CH  ; LIST
    2943/    FBD3 :                     	DB  1DH  ; RUN
    2944/    FBD3 :                     	DB  14H  ; INK
    2945/    FBD3 :                     ;
    2946/    FBD3 :                     ;TABELLE DER SONDERTASTEN + SHIFT
    2947/    FBD3 :                     ;
    2948/    FBD3 :                     	DB  '!'
    2949/    FBD3 :                     	DB  '"'	 ; "
    2950/    FBD3 :                     	DB  '#'
    2951/    FBD3 :                     	DB  '$'
    2952/    FBD3 :                     	DB  '%'
    2953/    FBD3 :                     	DB  '&'
    2954/    FBD3 :                     	DB  27H  ; ’
    2955/    FBD3 :                     	DB  '('
    2956/    FBD3 :                     	DB  ')'
    2957/    FBD3 :                     	DB  '_'
    2958/    FBD3 :                     	DB  '*'
    2959/    FBD3 :                     	DB  '+'
    2960/    FBD3 :                     	DB  '<'
    2961/    FBD3 :                     	DB  '-'
    2962/    FBD3 :                     	DB  '>'
    2963/    FBD3 :                     	DB  2FH  ; /
    2964/    FBD3 :                     	DB  18H  ; ->|
    2965/    FBD3 :                     	DB  1EH  ; CONT
    2966/    FBD3 :                     	DB  1FH  ; DEL
    2967/    FBD3 :                     	DB  02H  ; CLLN
    2968/    FBD3 :                     	DB  20H  ; SPACE
    2969/    FBD3 :                     	DB  7CH  ; |
    2970/    FBD3 :                     	DB  7FH  ;
    2971/    FBD3 :                     	DB  15H  ; PAPER
    2972/    FBD3 :                     	DB  0FFH
    2973/    FBD3 :                     	DB  0FFH
    2974/    FBD3 :                     
    2975/    FBD3 :                     	if rommenu
    2976/    FBD3 :                     ;Menü, nur in der Version 2.1 implementiert, sonst alles 0FFH:
    2977/    FBD3 :                     MENUE:	CALL	PRNST
    2978/    FBD3 :                     	LD	A,(IOBYT)
    2979/    FBD3 :                     	AND	0FCH
    2980/    FBD3 :                     	OR	01H
    2981/    FBD3 :                     	CALL 	IOST1
    2982/    FBD3 :                     	LD	HL,0048H 	; "H"
    2983/    FBD3 :                     	LD	(CONBU+2),HL	; PSEUDOEINGABE "H"
    2984/    FBD3 :                     	CALL	GVAL
    2985/    FBD3 :                     	CALL	CPROM		; SUCHEN KOMMANDO IM SPEICHER
    2986/    FBD3 :                     	RET	NZ  		; NICHT GEFUNDEN
    2987/    FBD3 :                     	JP	(HL)  		; SPRUNG ZUM PROGRAMM "H"
    2988/    FBD3 : [2975]              	endif
    2989/    FBD3 :                     
    2990/    FBD3 :                     ;------------------------------------------------------------------------------
    2991/    FBD3 :                     ; Patches V Pohlers
    2992/    FBD3 :                     ;------------------------------------------------------------------------------
    2993/    FBD3 :                     
    2994/    FBD3 :                     ; Anpassung Zeichenausgabe: Jedesmal die orig. Grafik wieder einschalten
    2995/    FBD3 :                     	if krtgrafik
    2996/    FBD3 :                     ocx:	ld	a,0
    2997/    FBD3 :                     	out	0b8h,a		;KRT-Grafik aus
    2998/    FBD3 :                     	LD	HL,SETC		;orig. Code
    2999/    FBD3 :                     	jp	oc0
    3000/    FBD3 : [2995]              	endif
    3001/    FBD3 :                     
    3002/    FBD3 :                     	org	0FBD3h
    3003/    FBD3 :                     ;------------------------------------------------------------------------------
    3004/    FBD3 : [2654]              	ENDIF
    3005/    FBD3 :                     
    3006/    FBD3 :                     ;
    3007/    FBD3 :                     ;TABELLE DER LOGISCHEN GERAETE
    3008/    FBD3 : E9 EF               PHYDV:	DW	TXCON
    3009/    FBD5 : 43 4F 4E 53 54 20   	DB	"CONST "
    3010/    FBDB : 00                  	DB	0
    3011/    FBDC : EB EF               	DW	TXCON+2
    3012/    FBDE : 52 45 41 44 45 52   	DB	"READER"
    3013/    FBE4 : 00                  	DB	0
    3014/    FBE5 : ED EF               	DW	TXCON+4
    3015/    FBE7 : 50 55 4E 43 48 20   	DB	"PUNCH "
    3016/    FBED : 00                  	DB	0
    3017/    FBEE : EF EF               	DW	TXCON+6
    3018/    FBF0 : 4C 49 53 54 20 20   	DB	"LIST  "
    3019/    FBF6 : 00                  	DB	0
    3020/    FBF7 :                     ;
    3021/    FBF7 :                     ;WBOOT - MELDUNG
    3022/    FBF7 : 0A                  TXTWB:	DB	0AH
    3023/    FBF8 : 0D                  	DB	0DH
    3024/    FBF9 : 4F 53               	DB	"OS"
    3025/    FBFB : 0A                  	DB	0AH
    3026/    FBFC : 0D                  	DB	0DH
    3027/    FBFD : 00                  	DB	0
    3028/    FBFE :                     ;
    3029/    FBFE :                     ;TABELLE DER RESIDENTEN KOMMANDOS
    3030/    FBFE :                     ;
    3031/    FC00 :                     	ORG	RESET+0C00H
    3032/    FC00 :                     ;
    3033/    FC00 : C3 BA F0            RESCO:	JP	ASGN
    3034/    FC03 : 41 53 47 4E 20 20   	DB	"ASGN    "
                    20 20 
    3035/    FC0B : 00                  	DB	0
    3036/    FC0C : C3 81 F1            	JP	TIME_
    3037/    FC0F : 54 49 4D 45 20 20   	DB	"TIME    "
                    20 20 
    3038/    FC17 : 00                  	DB	0
    3039/    FC18 : C3 22 F5            	JP	LOAD
    3040/    FC1B : 43 4C 4F 41 44 20   	DB	"CLOAD   "
                    20 20 
    3041/    FC23 : 00                  	DB	0
    3042/    FC24 :                     ;
    3043/    FC24 :                     ;TABELLE DER PHYSISCHEN GERAETE IM MONITOR
    3044/    FC24 : 01 00               LOGDV:	DW	0001		;LOG. GERAET CONST, PHYS. CRT
    3045/    FC26 : 43 52 54            	DB	"CRT"
    3046/    FC29 : 00                  	DB	0
    3047/    FC2A : 02 00               	DW	0002		;LOG. GERAET CONST, PHYS. BAT
    3048/    FC2C : 42 41 54            	DB	"BAT"
    3049/    FC2F : 00                  	DB	0
    3050/    FC30 :                     ;
    3051/    FC30 :                     ;RESET - MELDUNG
    3052/    FC30 : 14                  MSG:	DB	14H	; Color
    3053/    FC31 : 01                  	DB	1
    3054/    FC32 : 0C                  	DB	0CH
    3055/    FC33 : =>UNDEFINED         	IFNDEF  resmsg
    3056/    FC33 : 72 6F 62 6F 74 72   	DB	"robotron  Z 9001"
                    6F 6E 20 20 5A 20 
                    39 30 30 31 
    3057/    FC43 : =>FALSE             	ELSE
    3058/    FC43 :                     	DB	resmsg
    3059/    FC43 : [3055]              	ENDIF
    3060/    FC43 : 0A                  	DB	0AH
    3061/    FC44 : 0D                  	DB	0DH
    3062/    FC45 : 14                  	DB	14H	; Color
    3063/    FC46 : 02                  	DB	2
    3064/    FC47 : 00                  	DB	0
    3065/    FC48 :                     ;
    3066/    FC48 : 0A                  TXTRC:	DB	0AH
    3067/    FC49 : =>FALSE             	if osver == 11
    3068/    FC49 :                     	DB	0DH
    3069/    FC49 : [3067]              	ENDIF
    3070/    FC49 : 73 74 61 72 74 20   	DB	"start tape"
                    74 61 70 65 
    3071/    FC53 : 0A                  	DB	0AH
    3072/    FC54 : 0D                  	DB	0DH
    3073/    FC55 : 00                  	DB	0
    3074/    FC56 :                     ;
    3075/    FC56 :                     ;FEHLERMELDUNGEN
    3076/    FC56 :                     TXTBE:
    3077/    FC56 : =>TRUE              	IF	osver <> 11
    3078/    FC56 : 07                  	DB	07		;CTRL/G
    3079/    FC57 : [3077]              	ENDIF
    3080/    FC57 :                     
    3081/    FC57 : 42 4F 53 2D         	DB	"BOS-"
    3082/    FC5B : 65 72 72 6F 72      TXTE:	DB	"error"
    3083/    FC60 : 07                  	DB	07
    3084/    FC61 : 00                  	DB	0
    3085/    FC62 : 6D 65 6D 6F 72 79   TXTMP:	DB	"memory protected"
                    20 70 72 6F 74 65 
                    63 74 65 64 
    3086/    FC72 : 00                  	DB	0
    3087/    FC73 : 65 6E 64 20 6F 66   TXTEO:	DB	"end of memory"
                    20 6D 65 6D 6F 72 
                    79 
    3088/    FC80 : 00                  	DB	0
    3089/    FC81 : 72 65 63 6F 72 64   TXTNB:	DB	"record not found"
                    20 6E 6F 74 20 66 
                    6F 75 6E 64 
    3090/    FC91 : 00                  	DB	0
    3091/    FC92 : 62 61 64 20 72 65   TXTPT:	DB	"bad record"
                    63 6F 72 64 
    3092/    FC9C : 00                  	DB	0
    3093/    FC9D : 66 69 6C 65 20 6E   TXTNF:	DB	"file not found"
                    6F 74 20 66 6F 75 
                    6E 64 
    3094/    FCAB :                     ;
    3095/    FCAB :                     ;TABELLE DER TRENNZEICHEN
    3096/    FCAB : 00                  DTAB:	DB	0
    3097/    FCAC : 20 2C 2E 3A         	DB	" ,.:"
    3098/    FCB0 :                     ;
    3099/    FCB0 :                     ;INTERRUPTADRESSEN
    3100/    FCB0 : 43 FF               INTV:	DW	IKACT		;KASSETTE SCHREIBEN	CTC0
    3101/    FCB2 : 00 00               	DW	0		;			CTC1
    3102/    FCB4 : FB FC               	DW	ICTC		;VORTEILER UHR		CTC2
    3103/    FCB6 : C2 FC               	DW	INUHR		;SEKUNDENTAKT UHR	CTC3
    3104/    FCB8 : E4 FC               	DW	INTP		;TASTATUR		PIOB
    3105/    FCBA : BD FF               	DW	IKEP		;KASSETTE LESEN		PIO1AS
    3106/    FCBC :                     ;
    3107/    FCBC : E5                  COMPW:	PUSH	HL
    3108/    FCBD : B7                  	OR	A
    3109/    FCBE : ED 52               	SBC	HL,DE
    3110/    FCC0 : E1                  	POP	HL
    3111/    FCC1 : C9                  	RET
    3112/    FCC2 :                     ;
    3113/    FCC2 :                     ;UHRINTERRUPTROUTINE
    3114/    FCC2 :                     ;
    3115/    FCC2 : FB                  INUHR:	EI
    3116/    FCC3 : E5                  	PUSH	HL
    3117/    FCC4 : C5                  	PUSH	BC
    3118/    FCC5 : F5                  	PUSH	AF
    3119/    FCC6 : 21 20 00            	LD	HL,SEK+1
    3120/    FCC9 : 06 02               	LD	B,2
    3121/    FCCB : 3E 3C               	LD	A,60
    3122/    FCCD : 2B                  INUH1:	DEC	HL
    3123/    FCCE : 34                  	INC	(HL)
    3124/    FCCF : BE                  	CP	A, (HL)
    3125/    FCD0 : 20 0D               	JR	NZ, INUH3
    3126/    FCD2 : 36 00               	LD	(HL),0
    3127/    FCD4 : 10 F7               	DJNZ	INUH1
    3128/    FCD6 : 3E 18               	LD	A,24
    3129/    FCD8 : 2B                  	DEC	HL
    3130/    FCD9 : 34                  	INC	(HL)
    3131/    FCDA : BE                  	CP	A, (HL)
    3132/    FCDB : 20 02               	JR	NZ, INUH3
    3133/    FCDD : 36 00               	LD	(HL),0
    3134/    FCDF : F1                  INUH3:	POP	AF
    3135/    FCE0 : C1                  	POP	BC
    3136/    FCE1 : E1                  	POP	HL
    3137/    FCE2 : ED 4D               	RETI
    3138/    FCE4 :                     ;
    3139/    FCE4 :                     ;TASTATURINTERRUPTROUTINE
    3140/    FCE4 :                     ;wird durch PIOB aktiv, wenn ein Eingang auf LOW geht
    3141/    FCE4 :                     ;weiter geht es mit einem Interrupt durch CTC2 --> ICTC
    3142/    FCE4 :                     ;
    3143/    FCE4 : F5                  INTP:	PUSH	AF
    3144/    FCE5 : 3E 0A               	LD	A,10
    3145/    FCE7 : 32 23 00            	LD	(COUNT),A	;INTERRUPTZAEHLER LADEN
    3146/    FCEA : 3E 7F               	LD	A,7FH		;FUER ENTPRELLEN
    3147/    FCEC : 32 24 00            	LD	(LAKEY),A	;LETZES ZEICHEN LOESCHEN
    3148/    FCEF : 3E A5               	LD	A,0A5H		;CTC 2  INTERRUPT ERLAUBEN
    3149/    FCF1 : D3 82               	OUT	CTC2, A		;EI, Zeitgeber, Vorteiler 256, Zeitkonstantenstart, Zeitkonstante folgt
    3150/    FCF3 : 3E 96               	LD	A,96H		;Zeitkonstante: 2,4576 Mhz / 256 / 96h = 64 Hz
    3151/    FCF5 : D3 82               	OUT	CTC2, A
    3152/    FCF7 : F1                  	POP	AF
    3153/    FCF8 : FB                  	EI
    3154/    FCF9 : ED 4D               	RETI
    3155/    FCFB :                     ;
    3156/    FCFB :                     ;INTERRUPTROUTINE ZUM TASTATUR ENTPRELLEN/REPEAT - FUNKTION
    3157/    FCFB :                     ;wird durch CTC2 aktiv
    3158/    FCFB :                     ;
    3159/    FCFB : FB                  ICTC:	EI
    3160/    FCFC : F5                  	PUSH	AF
    3161/    FCFD : E5                  	PUSH	HL
    3162/    FCFE : 21 23 00            	LD	HL,COUNT
    3163/    FD01 : 35                  	DEC	(HL)
    3164/    FD02 : 28 13               	JR	Z, ICTC2	;TASTATUR ABFRAGEN
    3165/    FD04 : 3E 07               	LD	A,7
    3166/    FD06 : A6                  	AND	A, (HL)
    3167/    FD07 : 20 22               	JR	NZ, ENDI	;NOCH NICHT WIEDER ABFRAGEN
    3168/    FD09 : 23                  	INC	HL		;(HL)=ADR. LAKEY
    3169/    FD0A : CD 30 FD            	CALL	DECO		;TASTATUR ABFRAGEN WENN LAKEY <>0
    3170/    FD0D : 28 1C               	JR	Z, ENDI		;KEIN GUELTIGER TASTENCODE
    3171/    FD0F : BE                  	CP	A, (HL)		;VERGLEICH MIT LETZTEM CODE
    3172/    FD10 : 28 19               	JR	Z, ENDI
    3173/    FD12 : 2B                  	DEC	HL
    3174/    FD13 : 36 28               	LD	(HL),40		;NACH 1. ZEICHEN LANGE PAUSE
    3175/    FD15 : 18 07               	JR	ICTC3
    3176/    FD17 : 36 06               ICTC2:	LD	(HL),6		;SCHNELLES REPEAT
    3177/    FD19 : CD 33 FD            	CALL	DECO0		;TASTATUR ABFRAGEN
    3178/    FD1C : 28 0D               	JR	Z, ENDI		;KEIN GUELTIGER CODE
    3179/    FD1E : 23                  ICTC3:	INC	HL
    3180/    FD1F : 77                  	LD	(HL),A
    3181/    FD20 : 3A 25 00            	LD	A,(KEYBU)
    3182/    FD23 : FE 03               	CP	A, 3		;STOP
    3183/    FD25 : 28 04               	JR	Z, ENDI		;NICHT UEBERSCHREIBEN
    3184/    FD27 : 7E                  	LD	A,(HL)
    3185/    FD28 : 32 25 00            	LD	(KEYBU),A	;ZEICHEN IN TASTATURPUFFER
    3186/    FD2B : E1                  ENDI:	POP	HL
    3187/    FD2C : F1                  	POP	AF
    3188/    FD2D : FB                  	EI
    3189/    FD2E : ED 4D               	RETI
    3190/    FD30 :                     
    3191/    FD30 :                     ; TASTATURMATRIX
    3192/    FD30 :                     ;
    3193/    FD30 :                     ; PIO2A, Port 90H
    3194/    FD30 :                     ;
    3195/    FD30 :                     ;   A0    A1    A2    A3    A4    A5    A6    A7
    3196/    FD30 :                     ;   |     |     |     |     |     |     |     |
    3197/    FD30 :                     ;  TI0   TI1   TI2   TI3   TI4   TI5   TI6   TI7
    3198/    FD30 :                     ;   |     |     |     |     |     |     |     |
    3199/    FD30 :                     ; -------------------------------------------------      PIO2B, Port 91H
    3200/    FD30 :                     ; | S11 | S12 | S13 | S14 | S15 | S16 | S17 | S18 |--TO0-B0
    3201/    FD30 :                     ; |   0 |   1 |   2 |   3 |   4 |   5 |   6 |   7 |
    3202/    FD30 :                     ; -------------------------------------------------
    3203/    FD30 :                     ; | S21 | S22 | S23 | S24 | S25 | S26 | S27 | S28 |--TO1-B1
    3204/    FD30 :                     ; |   8 |   9 |   : |   ; |   , |   = |   . |   ? |
    3205/    FD30 :                     ; -------------------------------------------------
    3206/    FD30 :                     ; | S31 | S32 | S33 | S34 | S35 | S36 | S37 | S38 |--TO2-B2
    3207/    FD30 :                     ; |   @ |   A |   B |   C |   D |   E |   F |   G |
    3208/    FD30 :                     ; -------------------------------------------------
    3209/    FD30 :                     ; | S41 | S42 | S43 | S44 | S45 | S46 | S47 | S48 |--TO3-B3
    3210/    FD30 :                     ; |   H |   I |   J |   K |   L |   M |   N |   O |
    3211/    FD30 :                     ; -------------------------------------------------
    3212/    FD30 :                     ; | S51 | S52 | S53 | S54 | S55 | S56 | S57 | S58 |--TO4-B4
    3213/    FD30 :                     ; |   P |   Q |   R |   S |   T |   U |   V |   W |
    3214/    FD30 :                     ; -------------------------------------------------
    3215/    FD30 :                     ; | S61 | S62 | S63 | S64 | S65 | S66 | S67 |(S68)|--TO5-B5
    3216/    FD30 :                     ; |   X |   Y |   Z | tab |pause| ins |   ^ |     |
    3217/    FD30 :                     ; -------------------------------------------------
    3218/    FD30 :                     ; | S71 | S72 | S73 | S74 | S75 | S76 | S77 | S78 |--TO6-B6
    3219/    FD30 :                     ; |left |right| down|  up | esc |enter|stop |space|
    3220/    FD30 :                     ; -------------------------------------------------
    3221/    FD30 :                     ; | S81 | S82 | S83 | S84 | S85 | S86 | S87 |(S88)|--TO7-B7
    3222/    FD30 :                     ; |shift|color|contr|graph|list | run |shlck|     |
    3223/    FD30 :                     ; -------------------------------------------------
    3224/    FD30 :                     ;
    3225/    FD30 :                     
    3226/    FD30 : =>TRUE              	IF tastneu = 0
    3227/    FD30 :                     
    3228/    FD30 :                     ;
    3229/    FD30 :                     ;DECODIEREN DER TASTATURMATRIX
    3230/    FD30 : 7E                  DECO:	LD	A,(HL)		;(HL)=ADR. LAKEY
    3231/    FD31 : B7                  	OR	A
    3232/    FD32 : C8                  	RET	Z
    3233/    FD33 :                     ;
    3234/    FD33 :                     ; Funktion: dekodieren Tastaturmatrix
    3235/    FD33 :                     ; a) Eingang
    3236/    FD33 :                     ; 	- DECOO
    3237/    FD33 :                     ; 	gerufen von: ICTC
    3238/    FD33 :                     ; b) gerufene Programme
    3239/    FD33 :                     ; 	- GPIOD Abfrage Tastatur PIO
    3240/    FD33 :                     ; c) Ausgang
    3241/    FD33 :                     ; 	-
    3242/    FD33 :                     ; d) Return
    3243/    FD33 :                     ; 	Parameter: A Zeichen
    3244/    FD33 :                     ; 		   Z 1 Fehler
    3245/    FD33 :                     ; 		     0 gültig
    3246/    FD33 :                     ;
    3247/    FD33 : E5                  DECO0:	PUSH	HL
    3248/    FD34 : D5                  	PUSH	DE
    3249/    FD35 : C5                  	PUSH	BC
    3250/    FD36 : 21 68 FE            	LD	HL,ERDEC
    3251/    FD39 : E5                  	PUSH	HL		;ADR. FUER ENDEBEHANDLUNG
    3252/    FD3A : CD 8F FE            	CALL	GPIOD		;LESEN TASTATUR-PIO
    3253/    FD3D : 7A                  DEC2:	LD	A,D
    3254/    FD3E : B7                  	OR	A
    3255/    FD3F : C8                  	RET	Z		;KEIN KONTAKT IN MATRIXZEILE
    3256/    FD40 : 7B                  	LD	A,E
    3257/    FD41 : B7                  	OR	A
    3258/    FD42 : C8                  	RET	Z		;KEIN KONTAKT IN MATRIXSPALTE
    3259/    FD43 : 3A 26 00            	LD	A,(SHLOC)
    3260/    FD46 : B7                  	OR	A
    3261/    FD47 : 28 06               	JR	Z, DEC22	;KEIN SHIFT LOCK
    3262/    FD49 : CB C3               	SET	0,E
    3263/    FD4B : CB FA               	SET	7,D		;BIT WIE BEI SHIFT STELLEN
    3264/    FD4D : CB BD               	RES	7,L
    3265/    FD4F : E5                  DEC22:	PUSH	HL
    3266/    FD50 : D5                  	PUSH	DE
    3267/    FD51 :                     ;ZEILE DECODIEREN
    3268/    FD51 : 5A                  	LD	E,D
    3269/    FD52 : 0E 08               	LD	C,8
    3270/    FD54 : CD 81 FE            	CALL	M0
    3271/    FD57 : 67                  	LD	H,A
    3272/    FD58 : CD 89 FE            	CALL	M2
    3273/    FD5B : 6F                  	LD	L,A
    3274/    FD5C : D1                  	POP	DE
    3275/    FD5D : C1                  	POP	BC
    3276/    FD5E : C0                  	RET	NZ
    3277/    FD5F :                     ;SPALTE DECODIEREN
    3278/    FD5F : C5                  	PUSH	BC
    3279/    FD60 : 0E 01               	LD	C,1
    3280/    FD62 : AF                  	XOR	A
    3281/    FD63 : CD 83 FE            	CALL	M01
    3282/    FD66 : F5                  	PUSH	AF
    3283/    FD67 : 84                  	ADD	A, H
    3284/    FD68 : 67                  	LD	H,A
    3285/    FD69 : F1                  	POP	AF
    3286/    FD6A : 85                  	ADD	A, L
    3287/    FD6B : BF                  	CP	A, A
    3288/    FD6C : CD 89 FE            	CALL	M2
    3289/    FD6F : 6F                  	LD	L,A
    3290/    FD70 : C1                  	POP	BC
    3291/    FD71 : C0                  	RET	NZ
    3292/    FD72 :                     ;
    3293/    FD72 : DB 88               	IN	A, DPIO1A	;BIT FUER GRAFIK HOLEN (LED)
    3294/    FD74 : 5F                  	LD	E,A
    3295/    FD75 : 7D                  	LD	A,L
    3296/    FD76 : FE 48               	CP	A, 72
    3297/    FD78 : 28 6E               	JR	Z, EINET	;EINZELTASTE
    3298/    FD7A : FE 41               	CP	A, 65
    3299/    FD7C : 28 06               	JR	Z, SHT0
    3300/    FD7E : FE 46               	CP	A, 70
    3301/    FD80 : 20 0D               	JR	NZ, SHT1
    3302/    FD82 : 3E A9               	LD	A,7DH+44	;INTERNER CODE SHIFT LOCK + 44
    3303/    FD84 :                     ;
    3304/    FD84 : D6 2C               SHT0:	SUB	44
    3305/    FD86 : 6F                  	LD	L,A
    3306/    FD87 : 7C                  	LD	A,H
    3307/    FD88 : FE 38               	CP	A, 56
    3308/    FD8A : C0                  	RET	NZ
    3309/    FD8B : 7D                  	LD	A,L
    3310/    FD8C : C3 38 FE            	JP	ER1
    3311/    FD8F : FE 40               SHT1:	CP	A, 64
    3312/    FD91 : 28 6B               	JR	Z, ZWEIT	;ZWEI TASTEN
    3313/    FD93 : D0                  	RET	NC
    3314/    FD94 : D6 39               	SUB	57
    3315/    FD96 : D8                  	RET	C
    3316/    FD97 : 84                  	ADD	A, H
    3317/    FD98 : CB 78               	BIT	7,B
    3318/    FD9A : 28 2D               	JR	Z, CONTT	;CONTROLTASTE
    3319/    FD9C : 01 90 00            	LD	BC,90H		;B=0, C=DPIO1A
    3320/    FD9F : 26 05               	LD	H,00000101B
    3321/    FDA1 : ED 61               	OUT	(C), H
    3322/    FDA3 : 0C                  	INC	C
    3323/    FDA4 : ED 60               	IN	H, (C)
    3324/    FDA6 : 0D                  	DEC	C
    3325/    FDA7 : ED 41               	OUT	(C), B
    3326/    FDA9 : CB 7C               	BIT	7,H
    3327/    FDAB : C8                  	RET	Z
    3328/    FDAC : 3C                  	INC	A
    3329/    FDAD : FE 0C               SHT2:	CP	A, 12
    3330/    FDAF : 38 64               	JR	C, UCO20
    3331/    FDB1 : 28 60               	JR	Z, UCO30
    3332/    FDB3 : FE 0E               	CP	A, 14
    3333/    FDB5 : 38 5E               	JR	C, UCO20
    3334/    FDB7 : 28 5A               	JR	Z, UCO30
    3335/    FDB9 : FE 0F               	CP	A, 15
    3336/    FDBB : 28 58               	JR	Z, UCO20
    3337/    FDBD : D6 2B               	SUB	43
    3338/    FDBF : 38 4E               	JR	C, UCO93
    3339/    FDC1 : FE 0D               	CP	A, 13
    3340/    FDC3 : D0                  	RET	NC
    3341/    FDC4 : 21 33 FB            	LD	HL,TAB1		;SONDERTASTEN + SHIFT
    3342/    FDC7 : 18 55               	JR	UCOTA
    3343/    FDC9 :                     ;
    3344/    FDC9 : 3D                  CONTT:	DEC	A		;TASTE + CONTROL
    3345/    FDCA : D6 0A               CONT2:	SUB	10
    3346/    FDCC : D8                  	RET	C
    3347/    FDCD : D6 06               	SUB	6
    3348/    FDCF : C8                  	RET	Z
    3349/    FDD0 : 30 0D               	JR	NC, CONT3
    3350/    FDD2 : FE FA               	CP	A, 0FAH
    3351/    FDD4 : 20 02               	JR	NZ, COT22
    3352/    FDD6 : D6 1F               	SUB	1FH
    3353/    FDD8 : CB 73               COT22:	BIT	6,E		;GRAFIK-MODE?
    3354/    FDDA : C8                  	RET	Z
    3355/    FDDB : D6 80               	SUB	80H
    3356/    FDDD : 18 38               	JR	ENDE
    3357/    FDDF : FE 1B               CONT3:	CP	A, 27
    3358/    FDE1 : 38 34               	JR	C, ENDE
    3359/    FDE3 : FE 1E               	CP	A, 30
    3360/    FDE5 : C0                  	RET	NZ
    3361/    FDE6 : 18 2F               CONT4:	JR	ENDE
    3362/    FDE8 :                     ;
    3363/    FDE8 : 7C                  EINET:	LD	A,H		;EINZELTASTE
    3364/    FDE9 : FE 0C               	CP	A, 12
    3365/    FDEB : 38 26               	JR	C, UCO30
    3366/    FDED : 28 26               	JR	Z, UCO20
    3367/    FDEF : FE 0E               	CP	A, 14
    3368/    FDF1 : 38 20               	JR	C, UCO30
    3369/    FDF3 : 28 20               	JR	Z, UCO20
    3370/    FDF5 : D6 2B               	SUB	43
    3371/    FDF7 : 38 18               	JR	C, UCO73
    3372/    FDF9 : 21 40 FB            	LD	HL,TAB2		;SONDERTASTEN
    3373/    FDFC : 18 20               	JR	UCOTA
    3374/    FDFE :                     ;
    3375/    FDFE : 78                  ZWEIT:	LD	A,B		;ZWEI TASTEN BETAETIGT
    3376/    FDFF : A9                  	XOR	C
    3377/    FE00 : BA                  	CP	A, D
    3378/    FE01 : C0                  	RET	NZ
    3379/    FE02 : 3E 03               	LD	A,3
    3380/    FE04 : A4                  	AND	A, H
    3381/    FE05 : 7C                  	LD	A,H
    3382/    FE06 : 20 C2               	JR	NZ, CONT2
    3383/    FE08 : B7                  	OR	A
    3384/    FE09 : 20 A2               	JR	NZ, SHT2
    3385/    FE0B : 3E 5F               	LD	A,'_'
    3386/    FE0D : 18 08               	JR	ENDE
    3387/    FE0F :                     ;BERECHNEN CODES ALPHA-NUM.-ZEICHEN
    3388/    FE0F : C6 20               UCO93:	ADD	A, 20H
    3389/    FE11 : C6 2B               UCO73:	ADD	A, 2BH
    3390/    FE13 : C6 10               UCO30:	ADD	A, 10H
    3391/    FE15 : C6 20               UCO20:	ADD	A, 20H
    3392/    FE17 : CB 73               ENDE:	BIT	6,E		;GRAFIK-MODE?
    3393/    FE19 : 28 1D               	JR	Z, ER1
    3394/    FE1B : 21 53 FB            	LD	HL,TABG-1	;GRAFIK-CODES
    3395/    FE1E : 06 00               UCOTA:	LD	B,0
    3396/    FE20 : 4F                  	LD	C,A		;TABELLENOFFSET
    3397/    FE21 : 09                  	ADD	HL,BC
    3398/    FE22 : 7E                  	LD	A,(HL)
    3399/    FE23 : FE 5E               	CP	A, '^'
    3400/    FE25 : 28 F0               	JR	Z, ENDE
    3401/    FE27 : FE 5D               	CP	A, 5DH
    3402/    FE29 : 28 EC               	JR	Z, ENDE
    3403/    FE2B : B7                  	OR	A
    3404/    FE2C : E1                  	POP	HL
    3405/    FE2D : 20 0A               	JR	NZ, ER2		;GUELTIGER CODE
    3406/    FE2F : 3E 7F               	LD	A,7FH
    3407/    FE31 : 32 24 00            	LD	(LAKEY),A	;LOESCHEN
    3408/    FE34 : 3E 0A               	LD	A,10
    3409/    FE36 : 18 43               	JR	ERDC2
    3410/    FE38 : E1                  ER1:	POP	HL
    3411/    FE39 : FE 7E               ER2:	CP	A, 7EH		;INTERNER CODE GRAFIK
    3412/    FE3B : 20 0D               	JR	NZ, ER22
    3413/    FE3D : 7B                  	LD	A,E
    3414/    FE3E : EE 40               	XOR	40H		;GRAFIK-LED EIN/AUS
    3415/    FE40 : D3 88               	OUT	DPIO1A, A
    3416/    FE42 : AF                  ER21:	XOR	A
    3417/    FE43 : 32 24 00            	LD	(LAKEY),A	;WAR NUR INTERNE CODIERUNG
    3418/    FE46 : 3E 28               	LD	A,40		;LANGE REPEATPAUSE
    3419/    FE48 : 18 31               	JR	ERDC2
    3420/    FE4A : FE 7D               ER22:	CP	A, 7DH		;INTERNER CODE SHIFT LOCK
    3421/    FE4C : 20 0A               	JR	NZ, ER3
    3422/    FE4E : 3A 26 00            	LD	A,(SHLOC)
    3423/    FE51 : EE 01               	XOR	1		;SHIFT LOCK EIN/AUS
    3424/    FE53 : 32 26 00            	LD	(SHLOC),A
    3425/    FE56 : 18 EA               	JR	ER21
    3426/    FE58 : C1                  ER3:	POP	BC
    3427/    FE59 : D1                  	POP	DE
    3428/    FE5A : E1                  	POP	HL
    3429/    FE5B : FE 5D               	CP	A, 5DH
    3430/    FE5D : 28 06               	JR	Z, ER4
    3431/    FE5F : FE 60               	CP	A, 60H
    3432/    FE61 : 20 03               	JR	NZ, ER5
    3433/    FE63 : D6 21               	SUB	21H
    3434/    FE65 : 3C                  ER4:	INC	A
    3435/    FE66 : B7                  ER5:	OR	A
    3436/    FE67 : C9                  	RET
    3437/    FE68 :                     ;DEKODIERUNGSFEHLER
    3438/    FE68 : 3E 83               ERDEC:	LD	A,83H		;PIO UND CTC NEU INIT.
    3439/    FE6A : D3 93               	OUT	SPIOB, A
    3440/    FE6C : AF                  	XOR	A
    3441/    FE6D : D3 90               	OUT	DPIOA, A
    3442/    FE6F : 3E 25               	LD	A,25H
    3443/    FE71 : D3 82               	OUT	CTC2, A
    3444/    FE73 : 3E 96               	LD	A,96H
    3445/    FE75 : D3 82               	OUT	CTC2, A
    3446/    FE77 : AF                  	XOR	A
    3447/    FE78 : 32 24 00            	LD	(LAKEY),A
    3448/    FE7B : 32 23 00            ERDC2:	LD	(COUNT),A
    3449/    FE7E : AF                  	XOR	A
    3450/    FE7F : 18 D7               	JR	ER3
    3451/    FE81 :                     ;
    3452/    FE81 : 3E F7               M0:	LD	A,-9
    3453/    FE83 : 06 08               M01:	LD	B,8
    3454/    FE85 : 81                  M1:	ADD	A, C
    3455/    FE86 : CB 3B               	SRL	E
    3456/    FE88 : D8                  	RET	C
    3457/    FE89 : 10 FA               M2:	DJNZ	M1
    3458/    FE8B : C0                  	RET	NZ
    3459/    FE8C : 81                  	ADD	A, C
    3460/    FE8D : BF                  	CP	A, A
    3461/    FE8E : C9                  	RET
    3462/    FE8F :                     
    3463/    FE8F : =>FALSE             	ELSE	; tastneu = 1
    3464/    FE8F :                     
    3465/    FE8F :                     ;
    3466/    FE8F :                     ;DECODIEREN DER TASTATURMATRIX
    3467/    FE8F :                     DECO:	LD	A, (HL)		;(HL)=ADR. LAKEY
    3468/    FE8F :                     	OR	A
    3469/    FE8F :                     	RET	Z
    3470/    FE8F :                     DECO0:	PUSH	HL
    3471/    FE8F :                     	PUSH	DE
    3472/    FE8F :                     	PUSH	BC
    3473/    FE8F :                     	LD	HL, ERDEC	;DECODIERFEHLER_NEU
    3474/    FE8F :                     	PUSH	HL		;ADR. FUER ENDEBEHANDLUNG
    3475/    FE8F :                     	CALL	GPIOD		;LESEN TASTATUR-PIO
    3476/    FE8F :                     DEC2:	LD	A, D		;D=Zeile
    3477/    FE8F :                     	OR	A
    3478/    FE8F :                     	RET	Z		;KEIN KONTAKT IN MATRIXZEILE
    3479/    FE8F :                     	LD	A, E		;E=Spalte
    3480/    FE8F :                     	OR	A
    3481/    FE8F :                     	RET	Z		;KEIN KONTAKT IN MATRIXSPALTE
    3482/    FE8F :                     	LD	A, H		;H=Control-Taste
    3483/    FE8F :                     	AND	80H
    3484/    FE8F :                     	LD	H, 0C0H
    3485/    FE8F :                     	LD	B, 0FBH
    3486/    FE8F :                     	CALL	MFDE0
    3487/    FE8F :                     	JR	Z, DEC3
    3488/    FE8F :                     	LD	A, L
    3489/    FE8F :                     	AND	80H
    3490/    FE8F :                     	LD	H, 20H
    3491/    FE8F :                     	LD	B, 0FEH
    3492/    FE8F :                     	CALL	MFDE0
    3493/    FE8F :                     	JR	Z, DEC3
    3494/    FE8F :                     	if shlocFlg
    3495/    FE8F :                     	ld	a,(SHLOC)
    3496/    FE8F :                     	else
    3497/    FE8F :                     	IN	A, (DPIO1A)
    3498/    FE8F : [3494]              	endif
    3499/    FE8F :                     	AND	1
    3500/    FE8F :                     	LD	H, 20H
    3501/    FE8F :                     	JR	NZ, DEC3
    3502/    FE8F :                     	LD	H, 0
    3503/    FE8F :                     DEC3:	LD	A, H
    3504/    FE8F :                     	OR	A
    3505/    FE8F :                     	JR	Z, DEC4
    3506/    FE8F :                     	LD	A, D
    3507/    FE8F :                     	AND	7FH
    3508/    FE8F :                     	JR	Z, DEC4
    3509/    FE8F :                     	LD	D, A
    3510/    FE8F :                     DEC4:	XOR	A
    3511/    FE8F :                     	LD	C, 8
    3512/    FE8F :                     	CALL	MFDE9
    3513/    FE8F :                     	RET	NZ
    3514/    FE8F :                     	RET	NC
    3515/    FE8F :                     	SUB	C
    3516/    FE8F :                     	LD	C, 1
    3517/    FE8F :                     	LD	E, D
    3518/    FE8F :                     	CALL	MFDE9
    3519/    FE8F :                     	RET	NZ
    3520/    FE8F :                     	RET	NC
    3521/    FE8F :                     	SUB	C
    3522/    FE8F :                     	LD	C, H
    3523/    FE8F :                     	LD	HL, TAB1	;TABELLE FUER ALLE TASTEN
    3524/    FE8F :                     	LD	D, 0
    3525/    FE8F :                     	LD	E, A
    3526/    FE8F :                     	ADD	HL, DE
    3527/    FE8F :                     	LD	A, (HL)
    3528/    FE8F :                     	CP	40H
    3529/    FE8F :                     	JR	C, MFD9F	;wenn Sondertaste
    3530/    FE8F :                     	ADD	A, C
    3531/    FE8F :                     DEC5:	LD	B, A
    3532/    FE8F :                     	IN	A, (DPIO1A)
    3533/    FE8F :                     	AND	40H		;Grafikmodus?
    3534/    FE8F :                     	JR	Z, DEC6
    3535/    FE8F :                     	SET	7, B		;dann Bit 7 setzen
    3536/    FE8F :                     DEC6:	LD	A, B
    3537/    FE8F :                     DEC7:	POP	BC
    3538/    FE8F :                     DEC8:	POP	BC
    3539/    FE8F :                     	POP	DE
    3540/    FE8F :                     	POP	HL
    3541/    FE8F :                     	OR	A
    3542/    FE8F :                     	RET
    3543/    FE8F :                     ; Sondertasten
    3544/    FE8F :                     MFD9F:	BIT	7, C
    3545/    FE8F :                     	RET	NZ
    3546/    FE8F :                     	OR	A
    3547/    FE8F :                     	RET	Z
    3548/    FE8F :                     	CP	3		;STOPTASTE?
    3549/    FE8F :                     	JR	Z, MFDB2
    3550/    FE8F :                     	CP	10H		;SHIFT LOCK?
    3551/    FE8F :                     	JR	Z, MFDC9
    3552/    FE8F :                     	JR	C, DEC7
    3553/    FE8F :                     	CP	11H		;GRAFIK?
    3554/    FE8F :                     	JR	Z, MFDD8
    3555/    FE8F :                     ;
    3556/    FE8F :                     MFDB2:	BIT	5, C
    3557/    FE8F :                     	JR	Z, MFDC3
    3558/    FE8F :                     	LD	HL, TAB2	;TABELLE DER SONDERTASTEN
    3559/    FE8F :                     	LD	BC, 24		;ANZAHL DER SONDERTASTEN
    3560/    FE8F :                     	CPIR
    3561/    FE8F :                     	RET	NZ
    3562/    FE8F :                     	LD	C, 23		;ANZAHL DER SONDERTASTEN - 1
    3563/    FE8F :                     	ADD	HL, BC
    3564/    FE8F :                     	LD	A, (HL)
    3565/    FE8F :                     MFDC3:	CP	1AH
    3566/    FE8F :                     	JR	C, DEC7
    3567/    FE8F :                     	JR	DEC5
    3568/    FE8F :                     ;SHIFT LOCK
    3569/    FE8F :                     MFDC9:	if shlocFlg
    3570/    FE8F :                             ld      hl, SHLOC
    3571/    FE8F :                             ld      a, (hl)
    3572/    FE8F :                             xor     1
    3573/    FE8F :                             ld      (hl), a
    3574/    FE8F :                     	else
    3575/    FE8F :                     	IN	A, (DPIO1A)
    3576/    FE8F :                     	XOR	1
    3577/    FE8F :                     	OUT	(DPIO1A), A
    3578/    FE8F : [3569]              	endif
    3579/    FE8F :                     ER21:	XOR	A
    3580/    FE8F :                     	LD	(LAKEY), A	;WAR NUR INTERNE CODIERUNG
    3581/    FE8F :                     	LD	A, 40		;LANGE REPEATPAUSE
    3582/    FE8F :                     	POP	BC
    3583/    FE8F :                     	JR	ERDC2
    3584/    FE8F :                     ;GRAFIK
    3585/    FE8F :                     MFDD8:	IN	A, (DPIO1A)	;GRAFIK-LED EIN/AUS
    3586/    FE8F :                     	XOR	40H
    3587/    FE8F :                     	OUT	(DPIO1A), A
    3588/    FE8F :                     	JR	ER21
    3589/    FE8F :                     ;
    3590/    FE8F :                     MFDE0:	RET	NZ
    3591/    FE8F :                     	PUSH	AF
    3592/    FE8F :                     	LD	A, E
    3593/    FE8F :                     	AND	B
    3594/    FE8F :                     	JR	Z, MFDE7
    3595/    FE8F :                     	LD	E, A
    3596/    FE8F :                     MFDE7:	POP	AF
    3597/    FE8F :                     	RET
    3598/    FE8F :                     ;
    3599/    FE8F :                     MFDE9:	LD	B, 8
    3600/    FE8F :                     MFDEB:	ADD	A, C
    3601/    FE8F :                     	SRL	E
    3602/    FE8F :                     	RET	C
    3603/    FE8F :                     	DJNZ	MFDEB
    3604/    FE8F :                     	RET
    3605/    FE8F :                     ; DEKODIERUNGSFEHLER
    3606/    FE8F :                     ERDEC:	LD	A, 83H		;PIO UND CTC NEU INIT
    3607/    FE8F :                     	OUT	(SPIOB), A
    3608/    FE8F :                     	XOR	A
    3609/    FE8F :                     	OUT	(DPIOA), A
    3610/    FE8F :                     	LD	A, 25H
    3611/    FE8F :                     	OUT	(CTC2), A
    3612/    FE8F :                     	LD	A, 96H
    3613/    FE8F :                     	OUT	(CTC2), A
    3614/    FE8F :                     	XOR	A
    3615/    FE8F :                     	LD	(LAKEY), A
    3616/    FE8F :                     ERDC2:	LD	(COUNT), A
    3617/    FE8F :                     	XOR	A
    3618/    FE8F :                     	JR	DEC8
    3619/    FE8F :                     
    3620/    FE8F :                     	if rombank
    3621/    FE8F :                     ;
    3622/    FE8F :                     ;ROM-BANK-ROUTINE
    3623/    FE8F :                     ;
    3624/    FE8F :                     ROMBK:	JP	NZ, CP1		;EPROM-BANK
    3625/    FE8F :                     	OUT	(78H), A	;BANK SCHALTEN
    3626/    FE8F :                     	LD	A, (0EC27H)	;BILDSCHIRMZELLE (1. ZEILE, LETZTES ZEICHEN)
    3627/    FE8F :                     ;;	INC	A
    3628/    FE8F :                     	dec	a
    3629/    FE8F :                     	LD	(0EC27H), A	;WERT ZURUECK
    3630/    FE8F :                     	JP	NZ, CPROM	;SUCHEN KOMMANDO IM SPEICHER
    3631/    FE8F :                     	INC	H
    3632/    FE8F :                     	RET
    3633/    FE8F :                     
    3634/    FE8F : [3620]              	endif
    3635/    FE8F :                     
    3636/    FE8F :                     	if farb16
    3637/    FE8F :                     
    3638/    FE8F :                     ;CTRL-A, CTRL-D
    3639/    FE8F :                     CTRLAD:	LD	A, C
    3640/    FE8F :                     	DEC	A		;PRUEFEN CTRL-A
    3641/    FE8F :                     	JR	Z, UMZ		;JA, ZEICHENSATZ UMSCHALTEN
    3642/    FE8F :                     	SUB	3		;PRUEFEN CTRL-D
    3643/    FE8F :                     	JR	Z, UMBL		;UMSCHALTEN INK/BLINK
    3644/    FE8F :                     	DEC	A
    3645/    FE8F :                     	JP	MF8A1		;ZURUECK ZU OCH1
    3646/    FE8F :                     
    3647/    FE8F :                     UMBL:
    3648/    FE8F :                     ;;	OUT	(70H), A	;SETZEN INK/BLINK-FLIPFLOP
    3649/    FE8F :                     ;;	LD	A, (MAPAR+7)	;(FARBRAMZELLE)
    3650/    FE8F :                     ;;	BIT	5, A		;SCHWARZ-WEISS?
    3651/    FE8F :                     ;;	RES	5, A
    3652/    FE8F :                     ;;	JR	NZ, ABSP	;FARBVARIANTE
    3653/    FE8F :                     ;;	SET	5, A		;LADEN FARBVARIANTE
    3654/    FE8F :                     
    3655/    FE8F :                             in      a, (DPIO1A)
    3656/    FE8F :                     	xor     1
    3657/    FE8F :                     	out     (DPIO1A), a
    3658/    FE8F :                     	ld      a, (0EFC8h)
    3659/    FE8F :                     	xor     20h 		; Toggle Bit 5
    3660/    FE8F :                     
    3661/    FE8F :                     ABSP:	LD	(MAPAR+7), A	;IN DIE FARBRAMZELLE
    3662/    FE8F :                     	LD	A, (ATRIB)
    3663/    FE8F :                     	RES	7, A
    3664/    FE8F :                     	LD	(ATRIB), A
    3665/    FE8F :                     	RET
    3666/    FE8F :                     
    3667/    FE8F :                     ;;UMZ:	OUT	(74H), A	;UMSCHALTEN ZEICHENSATZ
    3668/    FE8F :                     UMZ:	OUT	(0BBH), A	;UMSCHALTEN ZEICHENSATZ
    3669/    FE8F :                     	RET
    3670/    FE8F : [3636]              	endif
    3671/    FE8F :                     
    3672/    FE8F :                     	if farb16
    3673/    FE8F :                     ; Unterstützung für 16 Farben, CRT-Treiber (Teil 2):
    3674/    FE8F :                     
    3675/    FE8F :                     ; FARBBEHANDLUNG INK
    3676/    FE8F :                     INK16:	LD	A, (MAPAR+7)	;FARBRAMZELLE
    3677/    FE8F :                     	BIT	5, A		;FARBE?
    3678/    FE8F :                     	JR	Z, INKNEU
    3679/    FE8F :                     BLINK_:	LD	B, 8FH		;ALTE MASKE
    3680/    FE8F :                     	LD	A, E
    3681/    FE8F :                     	RET
    3682/    FE8F :                     INKNEU:	LD	B, 0FH		;NEUE MASKE
    3683/    FE8F :                     	LD	A, E
    3684/    FE8F :                     	RET
    3685/    FE8F :                     ; FARBBEHANDLUNG BORDER
    3686/    FE8F :                     BORD:	LD	B, 0C5H		;NEUE MASKE
    3687/    FE8F :                     	SLA	C
    3688/    FE8F :                     	SLA	C
    3689/    FE8F :                     	SLA	C
    3690/    FE8F :                     	BIT	6, C		;PRUEFEN NEUE FARBE
    3691/    FE8F :                     	JR	Z, MFE64	;KEINE NEUE FARBE
    3692/    FE8F :                     	SET	1, C		;SETZEN FARBBIT NEU
    3693/    FE8F :                     	RES	6, C		;RUECKSETZEN GRAFIK
    3694/    FE8F :                     	RET
    3695/    FE8F :                     MFE64:	RES	1, C		;RUECKSETZEN FARBBIT
    3696/    FE8F :                     	RET
    3697/    FE8F :                     ; FARBERWEITERUNG COLOR A-H
    3698/    FE8F :                     FARB16C:
    3699/    FE8F :                     	SUB	31H
    3700/    FE8F :                     	JP	C, CI		; >= 1
    3701/    FE8F :                     	CP	8
    3702/    FE8F :                     	JR	C, MFE77	; <= 8
    3703/    FE8F :                     	SUB	8
    3704/    FE8F :                     	CP	8
    3705/    FE8F :                     	JP	C, CI		; <= H
    3706/    FE8F :                     MFE77:	JP	MF941
    3707/    FE8F :                     ; MIAT NEU
    3708/    FE8F :                     MIATN:	LD	C, A
    3709/    FE8F :                     	LD	A, (MAPAR+7)
    3710/    FE8F :                     	BIT	5, A		;PRUEFEN FARBE
    3711/    FE8F :                     	LD	A, C
    3712/    FE8F :                     	JR	Z, I_MIAT
    3713/    FE8F :                     	LD	C, 0
    3714/    FE8F :                     	SLA	A
    3715/    FE8F :                     	JP	MFADA
    3716/    FE8F :                     I_MIAT:	RLCA
    3717/    FE8F :                     	RLCA
    3718/    FE8F :                     	RLCA
    3719/    FE8F :                     	RLCA
    3720/    FE8F :                     	RET
    3721/    FE8F : [3672]              	endif
    3722/    FE8F :                     
    3723/    FE8F :                     	org	0FE8Fh
    3724/    FE8F : [3226]              	ENDIF		; tastneu = 1
    3725/    FE8F :                     
    3726/    FE8F :                     ;
    3727/    FE8F :                     ;TASTATUR - PIO ABFRAGEN
    3728/    FE8F : F3                  GPIOD:	DI
    3729/    FE90 : DB 91               	IN	A, DPIOB
    3730/    FE92 : 2F                  	CPL
    3731/    FE93 : 57                  	LD	D,A		;NEGIERTE MATRIXZEILE
    3732/    FE94 : 3E 03               	LD	A,3
    3733/    FE96 : D3 93               	OUT	SPIOB, A
    3734/    FE98 : 3E FB               	LD	A,11111011B	;PRUEFEN CONTROL-TASTE
    3735/    FE9A : D3 90               	OUT	DPIOA, A
    3736/    FE9C : DB 91               	IN	A, DPIOB
    3737/    FE9E : 67                  	LD	H,A
    3738/    FE9F : 3E FE               	LD	A,11111110B	;PRUEFEN SHIFT-TASTE
    3739/    FEA1 : D3 90               	OUT	DPIOA, A
    3740/    FEA3 : DB 91               	IN	A, DPIOB
    3741/    FEA5 : 6F                  	LD	L,A
    3742/    FEA6 : 3E CF               	LD	A,0CFH
    3743/    FEA8 : D3 92               	OUT	SPIOA, A
    3744/    FEAA : 3E FF               	LD	A,0FFH
    3745/    FEAC : D3 92               	OUT	SPIOA, A
    3746/    FEAE : 3E CF               	LD	A,0CFH
    3747/    FEB0 : D3 93               	OUT	SPIOB, A
    3748/    FEB2 : AF                  	XOR	A
    3749/    FEB3 : D3 93               	OUT	SPIOB, A
    3750/    FEB5 : D3 91               	OUT	DPIOB, A
    3751/    FEB7 : DB 90               	IN	A, DPIOA
    3752/    FEB9 : 2F                  	CPL
    3753/    FEBA : 5F                  	LD	E,A		;NEGIERTE MATRIXSPALTE
    3754/    FEBB : 3E 80               	LD	A,80H		;SPIELHEBEL 1 ABFRAGEN
    3755/    FEBD : D3 91               	OUT	DPIOB, A
    3756/    FEBF : DB 90               	IN	A, DPIOA
    3757/    FEC1 : 2F                  	CPL
    3758/    FEC2 : 32 13 00            	LD	(JOYR),A
    3759/    FEC5 : 3E 40               	LD	A,40H		;SPIELHEBEL 2 ABFRAGEN
    3760/    FEC7 : D3 91               	OUT	DPIOB, A
    3761/    FEC9 : DB 90               	IN	A, DPIOA
    3762/    FECB : 2F                  	CPL
    3763/    FECC : 32 14 00            	LD	(JOYL),A
    3764/    FECF : CD 15 FB            	CALL	INITT		;TATSTATUR INIT.
    3765/    FED2 : AF                  	XOR	A
    3766/    FED3 : D3 90               	OUT	DPIOA, A
    3767/    FED5 : C9                  	RET
    3768/    FED6 :                     ;
    3769/    FED6 :                     	ORG	RESET+0ED6H
    3770/    FED6 :                     ;
    3771/    FED6 :                     ;*******************************************************************
    3772/    FED6 :                     ;*	KASSETTEN - E/A                                            *
    3773/    FED6 :                     ;*******************************************************************
    3774/    FED6 :                     ;
    3775/    FED6 :                     ;SCHREIBEN EINES BLOCKES
    3776/    FED6 :                     ;
    3777/    FED6 :                     ; Funktion: Schreiben eines Blockes
    3778/    FED6 :                     ; a) Eingang
    3779/    FED6 :                     ; 	- KARAM
    3780/    FED6 :                     ; 	gerufen von: WRIT
    3781/    FED6 :                     ; 	Parameter  : DMA  Blockadresse
    3782/    FED6 :                     ; 		     BLNR Blocknummer
    3783/    FED6 :                     ; 		     BC Anzahl der Vortonzeichen
    3784/    FED6 :                     ; b) gerufene Programme
    3785/    FED6 :                     ; 	- INIC1 CTC vorinitialialisieren
    3786/    FED6 :                     ; 	- INIVT Vorton initialisieren
    3787/    FED6 :                     ; 	- AUS1 Ausgabe 1 Bit
    3788/    FED6 :                     ; 	- AUST Ausgabe Trennzeichen
    3789/    FED6 :                     ; 	- KAUBT Ausgabe 1 Byte
    3790/    FED6 :                     ; c) Ausgang
    3791/    FED6 :                     ; 	- DYNST  Ausgabe der letzten Halbperiode
    3792/    FED6 :                     ; d) Return
    3793/    FED6 :                     ;
    3794/    FED6 :                     KARAM:
    3795/    FED6 : F3                  	DI
    3796/    FED7 : AF                  	XOR	A
    3797/    FED8 : 32 69 00            	LD	(PSUM),A
    3798/    FEDB : CD 0A FB            karam0:	CALL	INIC1
    3799/    FEDE : D3 93               	OUT	SPIOB, A	;TASTATUR AUS (A ist 3)
    3800/    FEE0 : CD 0D FF            	CALL	INIVT		;VORTON INIT.
    3801/    FEE3 : CD 31 FF            KARA1:	CALL	AUS1		;VORTON AUSGEBEN
    3802/    FEE6 : ED A1               	CPI
    3803/    FEE8 : EA E3 FE            	JP	PE,KARA1	;BC MAL
    3804/    FEEB : CD 29 FF            	CALL	AUST		;TRENNZEICHEN
    3805/    FEEE : 3A 6B 00            	LD	A,(BLNR)
    3806/    FEF1 : CD 18 FF            	CALL	KAUBT		;BLOCKNUMMER AUSGEBEN
    3807/    FEF4 : 2A 1B 00            	LD	HL,(DMA)	;BLOCKADRESSE
    3808/    FEF7 : 06 80               	LD	B,80H		;ANZAHL BYTES
    3809/    FEF9 : 7E                  KARA2:	LD	A,(HL)
    3810/    FEFA : CD 18 FF            	CALL	KAUBT		;AUSGABE DATENBYTE
    3811/    FEFD : 3A 69 00            	LD	A,(PSUM)
    3812/    FF00 : 86                  	ADD	A, (HL)		;NEUE PRUEFSUMME
    3813/    FF01 : 32 69 00            	LD	(PSUM),A
    3814/    FF04 : 23                  	INC	HL
    3815/    FF05 : 10 F2               	DJNZ	KARA2
    3816/    FF07 : CD 18 FF            	CALL	KAUBT		;PRUEFSUMME AUSGEBEN
    3817/    FF0A : 7A                  	LD	A,D
    3818/    FF0B : 18 2B               	JR	DYNST		;LETZTE HALBPERIODE AUSGEBEN
    3819/    FF0D :                     ;
    3820/    FF0D :                     ;VORTON INITIALISIEREN
    3821/    FF0D : 3E 85               INIVT:	LD	A,85H		;Steuerwort CTC: (EI, Zeitkonstante folgt)
    3822/    FF0F : D3 80               	OUT	CTC0, A		;CTC0
    3823/    FF11 : 3E 40               	LD	A,40H		;VORTON 1
    3824/    FF13 : D3 80               	OUT	CTC0, A		;CTC0 Zeitkonstante: 2,4576 Mhz / 16 / 40h = 2400 Hz
    3825/    FF15 : FB                  	EI
    3826/    FF16 : 57                  	LD	D,A		;LAENGE HALBPERIODE
    3827/    FF17 : C9                  	RET
    3828/    FF18 :                     ;
    3829/    FF18 :                     ;SCHREIBEN EINES BYTES
    3830/    FF18 :                     ;
    3831/    FF18 :                     ; Funktion:   Ausgabe eines Bytes
    3832/    FF18 :                     ; a) Eingang
    3833/    FF18 :                     ; 	- KAUBT
    3834/    FF18 :                     ; 	gerufen von: KARAM
    3835/    FF18 :                     ; 	Parameter  : A Byte
    3836/    FF18 :                     ; 		     D Länge Halbperiode vorheriges Bit
    3837/    FF18 :                     ; 	- AUST
    3838/    FF18 :                     ; 	gerufen von: KARAM
    3839/    FF18 :                     ; 	Parameter  : D Länge Halbperiode vorheriges Bit
    3840/    FF18 :                     ; 	- AUS1
    3841/    FF18 :                     ; 	gerufen von: KARAM
    3842/    FF18 :                     ; 	Parameter  : D Länge Halbperiode vorheriges Bit
    3843/    FF18 :                     ; b)  gerufene Programme
    3844/    FF18 :                     ; 	- AUS1, AUS0 Ausgabe 1 Bit, 0 Bit
    3845/    FF18 :                     ; 	- DYNST Warten eine Halbperiode
    3846/    FF18 :                     ; c) Ausgang
    3847/    FF18 :                     ; 	-
    3848/    FF18 :                     ; d) Return
    3849/    FF18 :                     ; 	Parameter: D Länge Halbperiode vorheriges Bit
    3850/    FF18 :                     ;
    3851/    FF18 : C5                  KAUBT:	PUSH	BC
    3852/    FF19 : 4F                  	LD	C,A
    3853/    FF1A : 06 08               	LD	B,8
    3854/    FF1C : CB 09               KAUB1:	RRC	C
    3855/    FF1E : F5                  	PUSH	AF
    3856/    FF1F : DC 31 FF            	CALL	C, AUS1		;1 BIT
    3857/    FF22 : F1                  	POP	AF
    3858/    FF23 : D4 2D FF            	CALL	NC, AUS0	;0 BIT
    3859/    FF26 : 10 F4               	DJNZ	KAUB1
    3860/    FF28 : C1                  	POP	BC
    3861/    FF29 : 1E 80               AUST:	LD	E,80H		;TRENNZEICHEN Zeitkonstante: 2,4576 Mhz / 16 / 80h = 600 Hz
    3862/    FF2B : 18 06               	JR	AUS
    3863/    FF2D : 1E 20               AUS0:	LD	E,20H		;0 BIT Zeitkonstante: 2,4576 Mhz / 16 / 20h = 1200 Hz
    3864/    FF2F : 18 02               	JR	AUS
    3865/    FF31 : 1E 40               AUS1:	LD	E,40H		;1 BIT Zeitkonstante: 2,4576 Mhz / 16 / 40h = 2400 Hz
    3866/    FF33 : 7A                  AUS:	LD	A,D
    3867/    FF34 : CD 38 FF            	CALL	DYNST		;LETZTE HALBPERIODE NOCH AUSGEB.
    3868/    FF37 : 7A                  	LD	A,D		;1. HALBPERIODE NEUES BIT
    3869/    FF38 : 32 6A 00            DYNST:	LD	(ARB),A
    3870/    FF3B : 3A 6A 00            DY1:	LD	A,(ARB)
    3871/    FF3E : B7                  	OR	A
    3872/    FF3F : 20 FA               	JR	NZ, DY1		;WARTEN BIS FLANKE AUSGEGEBEN
    3873/    FF41 : 53                  	LD	D,E		;LAENGE NEUE HALBPERIODE
    3874/    FF42 : C9                  	RET
    3875/    FF43 :                     ;
    3876/    FF43 :                     ;INTERRRUPTROUTINE ZUM SCHREIBEN
    3877/    FF43 :                     ;
    3878/    FF43 :                     ; Funktion: Interruptroutine Schreiben
    3879/    FF43 :                     ; a) Eingang
    3880/    FF43 :                     ; 	- IKACT
    3881/    FF43 :                     ; 	Parameter: ARB Länge nächste Halbperiode39
    3882/    FF43 :                     ; b) gerufene Programme
    3883/    FF43 :                     ; 	-
    3884/    FF43 :                     ; c) Ausgang
    3885/    FF43 :                     ; 	-
    3886/    FF43 :                     ; d) Return
    3887/    FF43 :                     ; 	Parameter: ARB 0
    3888/    FF43 :                     ;
    3889/    FF43 : F5                  IKACT:	PUSH	AF
    3890/    FF44 : 3E 03               	LD	A,3		;Steuerwort CTC (Reset)
    3891/    FF46 : D3 80               	OUT	CTC0, A		;CTC0
    3892/    FF48 : 3E 85               	LD	A,85H		;Steuerwort CTC (EI, Zeitkonstante folgt)
    3893/    FF4A : D3 80               	OUT	CTC0, A		;CTC0
    3894/    FF4C : 3A 6A 00            	LD	A,(ARB)		;Zeitkonstante holen
    3895/    FF4F : D3 80               	OUT	CTC0, A		;ZAEHLERWERT ENTSPR. ZEICHEN
    3896/    FF51 : AF                  	XOR	A
    3897/    FF52 : 32 6A 00            	LD	(ARB),A		;Arbeitszelle auf 0 setzen als Fertigmarkierung
    3898/    FF55 : F1                  	POP	AF
    3899/    FF56 : FB                  	EI
    3900/    FF57 : ED 4D               	RETI
    3901/    FF59 :                     ;
    3902/    FF59 :                     ;LESEN EINES BLOCKES
    3903/    FF59 :                     ;
    3904/    FF59 :                     ; Funktion: Lesen eines Blockes
    3905/    FF59 :                     ; a) Eingang
    3906/    FF59 :                     ; 	- MAREK
    3907/    FF59 :                     ; 	gerufen von: RRAND
    3908/    FF59 :                     ; 	Parameter  : DMA
    3909/    FF59 :                     ; b) gerufene Programme
    3910/    FF59 :                     ; 	- INIC1 CTC vorinitialisieren
    3911/    FF59 :                     ; 	- LSTOP Warten eine Periode
    3912/    FF59 :                     ; 	- LS1 Warten eine Halbperiode41
    3913/    FF59 :                     ; 	- IBYTE Lesen eines Bytes
    3914/    FF59 :                     ; c) Ausgang
    3915/    FF59 :                     ; 	-
    3916/    FF59 :                     ; d) Return
    3917/    FF59 :                     ; 	Parameter: BLNR Blocknummer
    3918/    FF59 :                     ; 		   PSUM Prüfsumme
    3919/    FF59 :                     ; 		   CY 0 kein Fehler
    3920/    FF59 :                     ; 		      1 Fehler
    3921/    FF59 :                     ;
    3922/    FF59 :                     MAREK:
    3923/    FF59 : F3                  	DI
    3924/    FF5A : CD 0A FB            	CALL	INIC1
    3925/    FF5D : D3 93               MAREK0:	OUT	SPIOB, A	;TASTATUR AUS
    3926/    FF5F : D3 8A               	OUT	SPIO1A, A
    3927/    FF61 : 3E 05               	LD	A,5
    3928/    FF63 : D3 80               	OUT	CTC0, A		;CTC 0 ZUM ZEIT MESSEN
    3929/    FF65 : 3E B0               	LD	A,0B0H		;STARTWERT
    3930/    FF67 : D3 80               	OUT	CTC0, A
    3931/    FF69 : 3E 0F               	LD	A,0FH
    3932/    FF6B : D3 8A               	OUT	SPIO1A, A
    3933/    FF6D : 3E 0A               	LD	A,0AH		;Interruptvektor 20A -> IKEP
    3934/    FF6F : D3 8A               	OUT	SPIO1A, A
    3935/    FF71 : 3E E7               	LD	A,0E7H		;SYSTEM PIO INTERRUPT ERLAUBT
    3936/    FF73 : D3 8A               	OUT	SPIO1A, A
    3937/    FF75 : FB                  	EI
    3938/    FF76 : 06 16               MA1:	LD	B,22		;22 VORTOENE SUCHEN
    3939/    FF78 : CD D1 FF            MA2:	CALL	LSTOP		;EIN BIT/TRENNZEICHEN LESEN
    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
    3943/    FF81 : 10 F5               	DJNZ	MA2
    3944/    FF83 : 06 02               	LD	B,2		;1 TRENNZEICHEN
    3945/    FF85 : AF                  MA3:	XOR	A
    3946/    FF86 : 32 69 00            	LD	(PSUM),A
    3947/    FF89 : 4F                  	LD	C,A
    3948/    FF8A : 32 6A 00            	LD	(ARB),A
    3949/    FF8D : CD E0 FF            	CALL	LS1		;EINE HALBPERIODE MESSEN
    3950/    FF90 : FE 52               	CP	A, 52H
    3951/    FF92 : 30 F1               	JR	NC, MA3		;KEIN TRENNZEICHEN
    3952/    FF94 : 10 EF               	DJNZ	MA3
    3953/    FF96 : CD E8 FF            	CALL	IBYTE		;BLOCKNUMMER LESEN
    3954/    FF99 : D8                  	RET	C		;FEHLER
    3955/    FF9A : 32 6B 00            	LD	(BLNR),A
    3956/    FF9D : 06 80               	LD	B,80H		;ANZAHL BYTES
    3957/    FF9F : 2A 1B 00            	LD	HL,(DMA)	;BLOCKADRESSE
    3958/    FFA2 : CD E8 FF            MA4:	CALL	IBYTE		;DATENBYTE LESEN
    3959/    FFA5 : D8                  	RET	C		;FEHLER
    3960/    FFA6 : 77                  	LD	(HL),A
    3961/    FFA7 : 3A 69 00            	LD	A,(PSUM)
    3962/    FFAA : 86                  	ADD	A, (HL)		;NEUE PRUEFSUMME
    3963/    FFAB : 32 69 00            	LD	(PSUM),A
    3964/    FFAE : 23                  	INC	HL
    3965/    FFAF : 10 F1               	DJNZ	MA4
    3966/    FFB1 : CD E8 FF            	CALL	IBYTE		;PRUEFSUMME LESEN
    3967/    FFB4 : D8                  	RET	C		;FEHLER
    3968/    FFB5 : 47                  	LD	B,A
    3969/    FFB6 : 3A 69 00            	LD	A,(PSUM)
    3970/    FFB9 : B8                  	CP	A, B
    3971/    FFBA : C8                  	RET	Z		;IN ORDNUNG
    3972/    FFBB : 37                  	SCF
    3973/    FFBC : C9                  	RET			;FEHLER
    3974/    FFBD :                     ;
    3975/    FFBD :                     ;INTERRUPTROUTINE ZUM LESEN
    3976/    FFBD :                     ;
    3977/    FFBD :                     ; Funktion:   Interruptroutine lesen
    3978/    FFBD :                     ; a) Eingang
    3979/    FFBD :                     ; 	- IKEP
    3980/    FFBD :                     ; b) gerufene Programme
    3981/    FFBD :                     ; 	-
    3982/    FFBD :                     ; c) Ausgang
    3983/    FFBD :                     ; 	-
    3984/    FFBD :                     ; d) Return
    3985/    FFBD :                     ; 	Parameter A Länge einer Halbperiode
    3986/    FFBD :                     ;
    3987/    FFBD : F5                  IKEP:	PUSH	AF
    3988/    FFBE : DB 80               	IN	A, CTC0
    3989/    FFC0 : F5                  	PUSH	AF
    3990/    FFC1 : 3E 07               	LD	A,7
    3991/    FFC3 : D3 80               	OUT	CTC0, A
    3992/    FFC5 : 3E B0               	LD	A,0B0H		;NEUE ZEITMESSUNG
    3993/    FFC7 : D3 80               	OUT	CTC0, A		;Startwert
    3994/    FFC9 : F1                  	POP	AF
    3995/    FFCA : 32 6A 00            	LD	(ARB),A		;gemessener Wert
    3996/    FFCD : F1                  	POP	AF
    3997/    FFCE : FB                  	EI
    3998/    FFCF : ED 4D               	RETI
    3999/    FFD1 :                     ;
    4000/    FFD1 :                     ;LESEN EINES ZEICHENS
    4001/    FFD1 :                     ;
    4002/    FFD1 :                     ; Funktion: Lesen eines Bits
    4003/    FFD1 :                     ; a) Eingang
    4004/    FFD1 :                     ; 	- LSTOP
    4005/    FFD1 :                     ; 	gerufen von:     MAREK, IBYTE
    4006/    FFD1 :                     ; 	- LS1
    4007/    FFD1 :                     ; 	gerufen von:     MAREK
    4008/    FFD1 :                     ; b) gerufene Programme
    4009/    FFD1 :                     ; 	-
    4010/    FFD1 :                     ; c) Ausgang
    4011/    FFD1 :                     ; 	-
    4012/    FFD1 :                     ; d) Return
    4013/    FFD1 :                     ; 	Parameter:  C Länge der Periode
    4014/    FFD1 :                     ; 		     CY 1             0 Bit
    4015/    FFD1 :                     ; 		        0 und C < 90H Trennz.
    4016/    FFD1 :                     ; 		        0 und C >= 90H 1 Bit
    4017/    FFD1 :                     ;
    4018/    FFD1 :                     
    4019/    FFD1 :                     ;Bit	Wert	B0-x	*2	Return
    4020/    FFD1 :                     ;       KAUBT
    4021/    FFD1 :                     ;-------------------------------------
    4022/    FFD1 :                     ;0	20h	90h	120h	Cy=1
    4023/    FFD1 :                     ;1	40h	70h	E0h	> 90h
    4024/    FFD1 :                     ;Trennz	80h	30h	60h	< 90h
    4025/    FFD1 :                     
    4026/    FFD1 : AF                  LSTOP:	XOR	A
    4027/    FFD2 : 32 6A 00            	LD	(ARB),A
    4028/    FFD5 : 3A 6A 00            LS0:	LD	A,(ARB)
    4029/    FFD8 : B7                  	OR	A
    4030/    FFD9 : 28 FA               	JR	Z, LS0		;WARTEN AUF 1. FLANKE
    4031/    FFDB : 4F                  	LD	C,A
    4032/    FFDC : AF                  	XOR	A
    4033/    FFDD : 32 6A 00            	LD	(ARB),A
    4034/    FFE0 : 3A 6A 00            LS1:	LD	A,(ARB)
    4035/    FFE3 : B7                  	OR	A
    4036/    FFE4 : 28 FA               	JR	Z, LS1		;WARTEN AUF 2. FLANKE
    4037/    FFE6 : 81                  	ADD	A, C
    4038/    FFE7 : C9                  	RET
    4039/    FFE8 :                     ;
    4040/    FFE8 :                     ;LESEN EINES BYTES
    4041/    FFE8 :                     ;
    4042/    FFE8 :                     ; Funktion: Lesen eines Bytes
    4043/    FFE8 :                     ; a) Eingang
    4044/    FFE8 :                     ; 	- IBYTE
    4045/    FFE8 :                     ; 	gerufen von: MAREK
    4046/    FFE8 :                     ; b) gerufene Programme
    4047/    FFE8 :                     ; 	- LSTOP  Lesen eines Bits
    4048/    FFE8 :                     ; c) Ausgang
    4049/    FFE8 :                     ; 	-
    4050/    FFE8 :                     ; d) Return
    4051/    FFE8 :                     ; 	Parameter: A, E  Byte
    4052/    FFE8 :                     ; 	           CY 1 Fehler
    4053/    FFE8 :                     ; 		      0 kein Fehler
    4054/    FFE8 :                     ;
    4055/    FFE8 : 16 08               IBYTE:	LD	D,8
    4056/    FFEA : AF                  	XOR	A
    4057/    FFEB : 5F                  	LD	E,A
    4058/    FFEC : CD D1 FF            IB1:	CALL	LSTOP		;LESEN EIN ZEICHEN
    4059/    FFEF : 3F                  	CCF
    4060/    FFF0 : 30 04               	JR	NC, IB2		;0 BIT
    4061/    FFF2 : FE 90               	CP	A, 90H
    4062/    FFF4 : D8                  	RET	C		;TRENNZEICHEN
    4063/    FFF5 : 37                  	SCF			;1 BIT
    4064/    FFF6 : CB 1B               IB2:	RR	E
    4065/    FFF8 : 15                  	DEC	D
    4066/    FFF9 : 20 F1               	JR	NZ, IB1
    4067/    FFFB : CD D1 FF            	CALL	LSTOP		;LESEN TRENNZEICHEN
    4068/    FFFE : 7B                  	LD	A,E
    4069/    FFFF : C9                  	RET
    4070/   10000 :                     ;
    4071/   10000 :                     	END
  • z9001/software/os/os12.txt
  • Zuletzt geändert: 2013/06/11 13:37
  • von volkerp