Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
z1013:software:monitor:riesa202 [2011/11/28 15:01] – angelegt volkerpz1013:software:monitor:riesa202 [2012/11/04 14:20] (aktuell) volkerp
Zeile 1: Zeile 1:
-====== Der Monitor 2.02 ======+====== Monitor 2.02 ======
  
 +<WRAP lo>
 +<code>
 + AS V1.42 Beta [Bld 64] - source file z1013riesa.asm - page 1 - 12/15/2011 10:24:49
 +
 +       1/       0 :                      page 0
 +       2/       0 :                      CPU z80
 +       3/       0 :                     
 +       4/       0 :                     ;Z1013-MONITOR 2.02, A.2
 +       5/       0 :                     ;reass: 1988-1990 Volker Pohlers, Lomonossowallee 41/81, Greifswald, 2200
 +       6/       0 :                     ;basierend auf GENS3M-Listing des 2.02-Monitors von C.Fischer/Ilmenau
 +       7/       0 :                     ;Fassung für den Arnold-Assembler und vielfach erweiterte Kommentare
 +       8/       0 :                     ;Volker Pohlers, Sanitz, 23.04.2004
 +       9/       0 :                     ;letzte Änderung 07.12.2011
 +      10/       0 :                     
 +      11/       0 :                     ;
 +      12/       0 :                     ;gewünschten Monitortyp auskommentieren
 +      13/       0 :                     ;
 +      14/       0 : =Z1013_202          MONTYP EQU "Z1013_202"
 +      15/       0 :                     ;MONTYP EQU "Z1013_A2"
 +      16/       0 :                     
 +      17/       0 :                     ;die wichtigsten Unterschiede A2 <-> 2.02
 +      18/       0 :                     ;- kein H- und A- und F-Kommandos
 +      19/       0 :                     ;- andere Adressen Windows-Speicher
 +      20/       0 :                     ;- andere INKEY-Routine und auch INCH-Routine!
 +      21/       0 :                     ;- KDO mit RST-Aufrufen programmiert, damit Verschiebung aller Routinen des Monitors!
 +      22/       0 :                     
 +      23/       0 :                     ; Makros
 +      24/       0 :                     hi              function x, (x>>8) & 0ffh ; High-Byte
 +      25/       0 :                     lo              function x, x & 0ffh ; Low-Byte
 +      26/       0 :                     
 +      27/       0 :                     ;
 +      28/       0 :                     ;RAM-Zellen
 +      29/       0 :                     ;
 +      30/       0 : =3H                 R20BT: EQU 00003H ;Nummer des RST20-Calls
 +      31/       0 : =4H                 LAKEY: EQU 00004H ;letztes Zeichen von Tastatur
 +      32/       0 : =BH                 BPADR: EQU 0000BH ;Breakpointadresse
 +      33/       0 : =DH                 BPOPC: EQU 0000DH ;Operandenfolge bei Breakpoint
 +      34/       0 : =13H                DATA: EQU 00013H ;Adresse bei INHEX; intern f. INKEY b. A2
 +      35/       0 :                     ;SHILO: EQU 00015H ;
 +      36/       0 : =16H                SOIL: EQU 00016H ;Beginn Eingabezeile
 +      37/       0 : =1BH                ARG1: EQU 0001BH ;1. Argument
 +      38/       0 : =1DH                ARG2: EQU 0001DH ;2. Argument
 +      39/       0 : =1FH                BUFFA: EQU 0001FH ;vom Cursor verdecktes Zeichen
 +      40/       0 : =20H                RST20: EQU 00020H ;RST 20H
 +      41/       0 : =23H                ARG3: EQU 00023H ;3. Argument
 +      42/       0 : =25H                SOIL2: EQU 00025H ;Rest Eingabezeile
 +      43/       0 : =2BH                CUPOS: EQU 0002BH ;aktuelle Cursorposition
 +      44/       0 : =33H                LSYNC: EQU 00033H ;Kenntonlaenge
 +      45/       0 : =38H                RST38: EQU 00038H ;RST 38H
 +      46/       0 : =>FALSE              IF MONTYP == "Z1013_A2"
 +      47/       0 :                     WINDL: EQU 00035H ;Windowlaenge
 +      48/       0 :                     KYBTS: equ 00037h ;Tastaturroutinenzelle (Bit 4=Repeat)
 +      49/       0 :                     WINDA: EQU 0003BH ;Windowanfang
 +      50/       0 :                     WINDE: EQU 0003DH ;Windowende+1
 +      51/       0 : =>TRUE              ELSE
 +      52/       0 : =27H                KYBTS: EQU 00027H ;Tastaturroutinenzelle (0=ASCII,80h=Grafik)
 +      53/       0 : =47H                WINDL: EQU 00047H ;Windowlaenge
 +      54/       0 : =49H                WINDA: EQU 00049H ;Windowanfang
 +      55/       0 : =4BH                WINDE: EQU 0004BH ;Windowende+1
 +      56/       0 : [46]                ENDIF
 +      57/       0 : =4DH                REGBR: EQU 0004DH ;Registerrettebereich
 +      58/       0 : =5BH                REGAF: EQU 0005BH ;Register AF
 +      59/       0 : =61H                REGPC: EQU 00061H ;Register PC
 +      60/       0 : =63H                REGSP: EQU 00063H ;Userstack
 +      61/       0 : =66H                NMI: EQU 00066H
 +      62/       0 : =69H                NBYTE: EQU 00069H ;Operand bei NEXT
 +      63/       0 : =6AH                SPADR: EQU 0006AH ;SP-Zwischenspeicher
 +      64/       0 : =6CH                FBANZ: EQU 0006CH ;Zwsp. Anz. Suchbytes bei FIND
 +      65/       0 : =90H                USRSK: EQU 00090H ;Userstack
 +      66/       0 : =B0H                SYSSK: EQU 000B0H ;Systemstack
 +      67/       0 : =B0H                USRKD: EQU SYSSK
 +      68/       0 :                     ;Bildschirm
 +      69/       0 : =EC00H              BWS: EQU 0EC00H ;Beginn BWS
 +      70/       0 : =20H                BWSROW EQU 32 ;Anzahl Zeilen
 +      71/       0 : =20H                BWSCOL EQU 32 ;Anzahl Zeichen/Zeile
 +      72/       0 : =400H               BWSSZ EQU BWSROW*BWSCOL
 +      73/       0 :                     ;
 +      74/       0 :                     ;Markenvereinbarungen
 +      75/       0 :                     ;
 +      76/       0 : =CH                 CLS: EQU 0CH
 +      77/       0 : =DH                 CR: EQU 0DH
 +      78/       0 : =1BH                ESC: EQU 27
 +      79/       0 : =1EH                NL: EQU 1EH
 +      80/       0 : =AH                 LF: EQU 0AH
 +      81/       0 :                     ;
 +      82/       0 :                     ;PIO
 +      83/       0 : =0H                 PIOAD equ 00h ; PIO A User
 +      84/       0 : =1H                 PIOAC equ 01h
 +      85/       0 : =2H                 PIOBD equ 02h ; PIO B, Bit0..4 Tastaturzeile
 +      86/       0 : =3H                 PIOBC equ 03h ; Bit5->AB0 in, Bit6->TB in, Bit7->TB out
 +      87/       0 : =8H                 KEYP equ 08h ; Port Ausgabe Tastaturspalte
 +      88/       0 :                     ;
 +      89/       0 :                     ; Makros für Systemaufrufe über RST 20h
 +      90/       0 :                     ;
 +      91/       0 :                     ROUTC: MACRO
 +      92/       0 :                      RST 20H
 +      93/       0 :                      DB 0 ; OUTCH
 +      94/       0 :                      ENDM
 +      95/       0 :                     RINCH: MACRO
 +      96/       0 :                      RST 20H
 +      97/       0 :                      DB 01h ; INCH
 +      98/       0 :                      ENDM
 +      99/       0 :                     RPRST: MACRO
 +     100/       0 :                      RST 20H
 +     101/       0 :                      DB 02h ; PRST
 +     102/       0 :                      ENDM
 +     103/       0 :                     RINHX: MACRO
 +     104/       0 :                      RST 20H
 +     105/       0 :                      DB 03h ; INHEX
 +     106/       0 :                      ENDM
 +     107/       0 :                     RINKY: MACRO
 +     108/       0 :                      RST 20H
 +     109/       0 :                      DB 04h ; INKEY
 +     110/       0 :                      ENDM
 +     111/       0 :                     RINLN: MACRO
 +     112/       0 :                      RST 20H
 +     113/       0 :                      DB 05h ; INLIN
 +     114/       0 :                      ENDM
 +     115/       0 :                     ROTHX: MACRO
 +     116/       0 :                      RST 20H
 +     117/       0 :                      DB 06h ; OUTHX
 +     118/       0 :                      ENDM
 +     119/       0 :                     ROTHL: MACRO
 +     120/       0 :                      RST 20H
 +     121/       0 :                      DB 07h ; OUTHL
 +     122/       0 :                      ENDM
 +     123/       0 :                     ROTHS: MACRO
 +     124/       0 :                      RST 20H
 +     125/       0 :                      DB 0Ch ; OTHLS
 +     126/       0 :                      ENDM
 +     127/       0 :                     ROTDP: MACRO
 +     128/       0 :                      RST 20H
 +     129/       0 :                      DB 0Dh ; OUTDP
 +     130/       0 :                      ENDM
 +     131/       0 :                     ROTSP: MACRO
 +     132/       0 :                      RST 20H
 +     133/       0 :                      DB 0Eh ; OUTSP
 +     134/       0 :                      ENDM
 +     135/       0 :                     ;
 +     136/       0 :                     ;
 +     137/       0 :                     ;
 +     138/    F000 :                      ORG 0F000H
 +     139/    F000 :                     ;
 +     140/    F000 :                     ;-------------------------------------------------------------------------------
 +     141/    F000 :                     ; Start
 +     142/    F000 :                     ;-------------------------------------------------------------------------------
 +     143/    F000 :                     
 +     144/    F000 : 18 0D               INIT: JR INIT2
 +     145/    F002 :                     ;Initialisierung
 +     146/    F002 : 21 4D 00            INIT1: LD HL,REGBR ;Registerrette-
 +     147/    F005 : 11 4E 00            LD DE,REGBR+1 ;bereich loeschen
 +     148/    F008 : 36 00                LD (HL),0
 +     149/    F00A : 01 15 00            LD BC,0015H
 +     150/    F00D : ED B0                LDIR
 +     151/    F00F : 31 B0 00            INIT2: LD SP,SYSSK ;System-Stack
 +     152/    F012 : =>TRUE              IF MONTYP == "Z1013_202"
 +     153/    F012 : AF                  xor a ;Tastaturschalter
 +     154/    F013 : 32 27 00            ld (KYBTS), a ;auf ASCII
 +     155/    F016 : [152]                ENDIF
 +     156/    F016 : 3E C3                LD A,0C3H ;JMP ...
 +     157/    F018 : 32 20 00            LD (RST20),A
 +     158/    F01B : 21 E8 F0            LD HL,RST1 ;RST20 eintragen
 +     159/    F01E : 22 21 00            LD (RST20+1),HL
 +     160/    F021 : 3E CF                LD A,11001111b ;PIO Port B init.
 +     161/    F023 : D3 03                OUT PIOBC, A ;BIT-Mode 3
 +     162/    F025 : =>TRUE              IF MONTYP <> "Z1013_A2"
 +     163/    F025 : 3E 7F                LD A,01111111b ;BIT7-Ausgang
 +     164/    F027 : =>FALSE              ELSE
 +     165/    F027 :                      LD A,01101111b ;Bit7 und Bit4 Ausg.
 +     166/    F027 : [162]                ENDIF
 +     167/    F027 : D3 03                OUT PIOBC, A
 +     168/    F029 : 21 F2 F1            LD HL,MONTB ;System-RAM init.
 +     169/    F02C : 11 33 00            LD DE,LSYNC
 +     170/    F02F : 01 1A 00            LD BC,INCH-MONTB ;Laenge Tabelle
 +     171/    F032 : ED B0                LDIR
 +     172/    F034 :                     ;Systemmeldung
 +     173/    F034 : (MACRO)              RPRST
 +     173/    F034 : E7                          RST     20H
 +     173/    F035 : 02                          DB      02h                     ; PRST
 +     174/    F036 : 0C                  DB CLS
 +     175/    F037 : 0D                  DB CR
 +     176/    F038 : 0D                  DB CR
 +     177/    F039 : =>TRUE              IF MONTYP == "Z1013_202"
 +     178/    F039 : 72 6F 62 6F 74 72    DB "robotron Z 1013/2.02"
 +                    6F 6E 20 5A 20 31 
 +                    30 31 33 2F 32 2E 
 +                    30 32 
 +     179/    F04D : =>FALSE              ELSEIF MONTYP == "Z1013_A2"
 +     180/    F04D :                      DB "robotron Z 1013/A.2"
 +     181/    F04D : [177]                ENDIF
 +     182/    F04D : 8D                  DB CR+80H
 +     183/    F04E :                     ;
 +     184/    F04E : 21 90 00            LD HL,USRSK ;User-Stack
 +     185/    F051 : 22 63 00            LD (REGSP),HL
 +     186/    F054 : ED 5E                IM 2
 +     187/    F056 : 18 07                JR KDO2
 +     188/    F058 :                     ;
 +     189/    F058 :                     ;-------------------------------------------------------------------------------
 +     190/    F058 :                     ;Eingang Kommandomodus
 +     191/    F058 :                     ;-------------------------------------------------------------------------------
 +     192/    F058 :                     ;
 +     193/    F058 : 31 B0 00            KDO1: LD SP,SYSSK ;System-Stack
 +     194/    F05B : =>FALSE              IF MONTYP == "Z1013_A2"
 +     195/    F05B :                      RPRST
 +     196/    F05B : =>TRUE              ELSE
 +     197/    F05B : CD A5 F2            CALL PRST7
 +     198/    F05E : [194]                ENDIF
 +     199/    F05E : BF                  DB '?'+80H
 +     200/    F05F :                     KDO2:
 +     201/    F05F : =>FALSE              IF MONTYP == "Z1013_A2"
 +     202/    F05F :                      RINLN
 +     203/    F05F : =>TRUE              ELSE
 +     204/    F05F : CD B3 F2            CALL INLIN ;Zeile eingeben
 +     205/    F062 : [201]                ENDIF
 +     206/    F062 : ED 5B 16 00          LD DE,(SOIL)
 +     207/    F066 : CD CA F2            CALL SPACE ;Leerzeichen uebergehen
 +     208/    F069 : 47                  LD B,A ;B=1. Zeichen
 +     209/    F06A : 13                  INC DE
 +     210/    F06B : 1A                  LD A,(DE)
 +     211/    F06C : 4F                  LD C,A ;C=2. Zeichen
 +     212/    F06D : C5                  PUSH BC
 +     213/    F06E : 13                  INC DE
 +     214/    F06F : =>FALSE              IF MONTYP == "Z1013_A2"
 +     215/    F06F :                      RINHX
 +     216/    F06F : =>TRUE              ELSE
 +     217/    F06F : CD F4 F2            CALL INHEX
 +     218/    F072 : [214]                ENDIF
 +     219/    F072 : 20 05                JR NZ, KDO3
 +     220/    F074 : 1A                  LD A,(DE)
 +     221/    F075 : FE 3A                CP A, ':' ;die alten Werte nehmen ?
 +     222/    F077 : 28 0F                JR Z, KDO4
 +     223/    F079 : 22 1B 00            KDO3: LD (ARG1),HL ;neue Argumente holen
 +     224/    F07C : =>FALSE              IF MONTYP == "Z1013_A2"
 +     225/    F07C :                      RINHX
 +     226/    F07C : =>TRUE              ELSE
 +     227/    F07C : CD F4 F2            CALL INHEX
 +     228/    F07F : [224]                ENDIF
 +     229/    F07F : 22 1D 00            LD (ARG2),HL
 +     230/    F082 : =>FALSE              IF MONTYP == "Z1013_A2"
 +     231/    F082 :                      RINHX
 +     232/    F082 : =>TRUE              ELSE
 +     233/    F082 : CD F4 F2            CALL INHEX
 +     234/    F085 : [230]                ENDIF
 +     235/    F085 : 22 23 00            LD (ARG3),HL
 +     236/    F088 : C1                  KDO4: POP BC
 +     237/    F089 : 08                  EX AF, AF'
 +     238/    F08A : ED 53 25 00          LD (SOIL2),DE ;Anfang 4. Argument
 +     239/    F08E :                     ;Kommando (in Reg B) suchen
 +     240/    F08E : 21 B1 F0            LD HL,KDOTB ;in Kommandotabelle
 +     241/    F091 : 7E                  KDO5: LD A,(HL)
 +     242/    F092 : B8                  CP A, B
 +     243/    F093 : 28 11                JR Z, KDO6 ;wenn gefunden
 +     244/    F095 : 23                  INC HL
 +     245/    F096 : 23                  INC HL
 +     246/    F097 : 23                  INC HL
 +     247/    F098 : B7                  OR A ;Tabellenende?
 +     248/    F099 : 20 F6                JR NZ, KDO5 ;nein
 +     249/    F09B : 78                  LD A,B
 +     250/    F09C : FE 40                CP A, '@' ;"@"-Kommando?
 +     251/    F09E : 20 B8                JR NZ, KDO1 ;nein -> Eingabefehler
 +     252/    F0A0 : 21 B0 00            LD HL,USRKD ;Suchen in "@"-Kdo.tab.
 +     253/    F0A3 : 41                  LD B,C
 +     254/    F0A4 : 18 EB                JR KDO5
 +     255/    F0A6 :                     ;
 +     256/    F0A6 : 23                  KDO6: INC HL
 +     257/    F0A7 : 5E                  LD E,(HL)
 +     258/    F0A8 : 23                  INC HL
 +     259/    F0A9 : 56                  LD D,(HL)
 +     260/    F0AA : EB                  EX DE,HL ;HL=UP-Adresse
 +     261/    F0AB : 08                  EX AF, AF'
 +     262/    F0AC : 01 5F F0            LD BC,KDO2 ;Returnadresse
 +     263/    F0AF : C5                  PUSH BC
 +     264/    F0B0 : E9                  JP (HL) ;Sprung zur Routine
 +     265/    F0B1 :                     ;
 +     266/    F0B1 :                     KDOTB:
 +     267/    F0B1 : =>TRUE              IF MONTYP == "Z1013_202"
 +     268/    F0B1 : 41                  DB "A"
 +     269/    F0B2 : C5 F6                DW A_KDO
 +     270/    F0B4 : [267]                ENDIF
 +     271/    F0B4 : 42                  DB "B"
 +     272/    F0B5 : 87 F5                DW B_KDO
 +     273/    F0B7 : 43                  DB "C"
 +     274/    F0B8 : 77 F7                DW C_KDO
 +     275/    F0BA : 44                  DB "D"
 +     276/    F0BB : CE F4                DW D_KDO
 +     277/    F0BD : 45                  DB "E"
 +     278/    F0BE : 99 F5                DW E_KDO
 +     279/    F0C0 : =>TRUE              IF MONTYP <> "Z1013_A2"
 +     280/    F0C0 : 46                  DB "F"
 +     281/    F0C1 : A2 F7                DW F_KDO
 +     282/    F0C3 : [279]                ENDIF
 +     283/    F0C3 : 47                  DB "G"
 +     284/    F0C4 : B3 F5                DW G_KDO
 +     285/    F0C6 : =>TRUE              IF MONTYP == "Z1013_202"
 +     286/    F0C6 : 48                  DB "H"
 +     287/    F0C7 : B8 F6                DW H_KDO
 +     288/    F0C9 : [285]                ENDIF
 +     289/    F0C9 : 49                  DB "I"
 +     290/    F0CA : 02 F0                DW INIT1
 +     291/    F0CC : 4A                  DB "J"
 +     292/    F0CD : A5 F5                DW J_KDO
 +     293/    F0CF : 4B                  DB "K"
 +     294/    F0D0 : 0B F5                DW K_KDO
 +     295/    F0D2 : 4C                  DB "L"
 +     296/    F0D3 : F8 F3                DW CLOAD
 +     297/    F0D5 : 4D                  DB "M"
 +     298/    F0D6 : 25 F3                DW MEM
 +     299/    F0D8 : 4E                  DB "N"
 +     300/    F0D9 : 27 F7                DW N_KDO
 +     301/    F0DB : 52                  DB "R"
 +     302/    F0DC : DF F5                DW R_KDO
 +     303/    F0DE : 53                  DB "S"
 +     304/    F0DF : 69 F3                DW CSAVE
 +     305/    F0E1 : 54                  DB "T"
 +     306/    F0E2 : 1D F5                DW T_KDO
 +     307/    F0E4 : 57                  DB "W"
 +     308/    F0E5 : D1 F6                DW W_KDO
 +     309/    F0E7 : 00                  DB 0
 +     310/    F0E8 :                     ;
 +     311/    F0E8 :                     ;-------------------------------------------------------------------------------
 +     312/    F0E8 :                     ;Eingang bei RST 20H
 +     313/    F0E8 :                     ;-------------------------------------------------------------------------------
 +     314/    F0E8 :                     ;
 +     315/    F0E8 : E3                  RST1: EX (SP),HL
 +     316/    F0E9 : F5                  PUSH AF
 +     317/    F0EA : 7E                  LD A,(HL) ;Datenbyte hinter Ruf holen
 +     318/    F0EB : 32 03 00            LD (R20BT),A ;und ablegen
 +     319/    F0EE : 23                  INC HL ;Returnadresse erhoehen
 +     320/    F0EF : F1                  POP AF
 +     321/    F0F0 : E3                  EX (SP),HL
 +     322/    F0F1 :                     ;
 +     323/    F0F1 : E5                  PUSH HL
 +     324/    F0F2 : C5                  PUSH BC
 +     325/    F0F3 : F5                  PUSH AF
 +     326/    F0F4 : 21 08 F1            LD HL,RSTTB
 +     327/    F0F7 : 3A 03 00            LD A,(R20BT)
 +     328/    F0FA : CB 27                SLA A
 +     329/    F0FC : 4F                  LD C,A
 +     330/    F0FD : 06 00                LD B,0
 +     331/    F0FF : 09                  ADD HL,BC ;HL=Adresse in Tab.
 +     332/    F100 : 7E                  LD A,(HL)
 +     333/    F101 : 23                  INC HL
 +     334/    F102 : 66                  LD H,(HL)
 +     335/    F103 : 6F                  LD L,A ;HL=UP-Adresse
 +     336/    F104 : F1                  POP AF
 +     337/    F105 : C1                  POP BC
 +     338/    F106 : E3                  EX (SP),HL ;Ansprung der
 +     339/    F107 : C9                  RET ;Routine
 +     340/    F108 :                     ;
 +     341/    F108 : 1B F2               RSTTB: DW OUTCH ;DB 0
 +     342/    F10A : 0C F2                DW INCH ;DB 1
 +     343/    F10C : A5 F2                DW PRST7 ;DB 2
 +     344/    F10E : F4 F2                DW INHEX ;DB 3
 +     345/    F110 : 30 F1                DW INKEY ;DB 4
 +     346/    F112 : B3 F2                DW INLIN ;DB 5
 +     347/    F114 : 01 F3                DW OUTHX ;DB 6
 +     348/    F116 : 1A F3                DW OUTHL ;DB 7
 +     349/    F118 : 69 F3                DW CSAVE ;DB 8
 +     350/    F11A : F8 F3                DW CLOAD ;DB 9
 +     351/    F11C : 25 F3                DW MEM ;DB 10
 +     352/    F11E : D1 F6                DW W_KDO ;DB 11
 +     353/    F120 : C7 F5                DW OTHLS ;DB 12
 +     354/    F122 : C4 F5                DW OUTDP ;DB 13
 +     355/    F124 : CF F5                DW OUTSP ;DB 14
 +     356/    F126 : 1D F5                DW T_KDO ;DB 15
 +     357/    F128 : B9 F2                DW INSTR ;DB 16
 +     358/    F12A : 0B F5                DW K_KDO ;DB 17
 +     359/    F12C : =>TRUE              IF MONTYP <> "Z1013_A2"
 +     360/    F12C : B8 F6                DW H_KDO ;DB 18
 +     361/    F12E : C5 F6                DW A_KDO ;DB 19
 +     362/    F130 : [359]                ENDIF
 +     363/    F130 :                     
 +     364/    F130 :                     ;
 +     365/    F130 :                     ;-------------------------------------------------------------------------------
 +     366/    F130 :                     ;Eingabe ein Zeichen von der Tastatur in A
 +     367/    F130 :                     ;-------------------------------------------------------------------------------
 +     368/    F130 :                     ;
 +     369/    F130 : =>TRUE              IF MONTYP == "Z1013_202"
 +     370/    F130 :                     
 +     371/    F130 :                     ; Tastatur
 +     372/    F130 :                     ; --------
 +     373/    F130 :                     ;
 +     374/    F130 :                     ;      -------------------------------------------------        I-------I
 +     375/    F130 :                     ;      I X   I Y   I Z   I [ { I \ | I ] } I ^ ~ I _          I S1 S2 I
 +     376/    F130 :                     ;  RZ0-I                                        I       I
 +     377/    F130 :                     ;      I @ ` I A   I B   I C   I D   I E   I F   I G          I S0    I
 +     378/    F130 :                     ;      I-----+-----+-----+-----+-----+-----+-----+-----I        I-------I
 +     379/    F130 :                     ;      I 0   I 1 ! I 2 " I 3 # I 4 $ I 5 % I 6 & I 7 ' I
 +     380/    F130 :                     ;  RZ1-I                                        S0 = normal, Großbuchstaben
 +     381/    F130 :                     ;      I H   I I   I J   I K   I L   I M   I N   I O          S1 = Ziffern etc.
 +     382/    F130 :                     ;      I-----+-----+-----+-----+-----+-----+-----+-----I        S2 = Sonderzeichen etc.
 +     383/    F130 :                     ;      I 8 ( I 9 ) I : * I ; + I < , I = - I > . I ? / I        S3 = Kleinbuchstaben
 +     384/    F130 :                     ;  RZ2-I                                        S4 = Ctrl.
 +     385/    F130 :                     ;      I P   I Q   I R   I S   I T   I U   I V   I W   I
 +     386/    F130 :                     ;      I-----+-----+-----+-----+-----+-----+-----+-----I
 +     387/    F130 :                     ;      I                                 I
 +     388/    F130 :                     ;  RZ3-I                                 I
 +     389/    F130 :                     ;      I S1  I S2  I S3  I S4  I <-  I SP  I ->  I ENT I
 +     390/    F130 :                     ;      -------------------------------------------------
 +     391/    F130 :                     ;                                     !
 +     392/    F130 :                     ;        RS0   RS1   RS2   RS3   RS4   RS5   RS6   RS7
 +     393/    F130 :                     ;
 +     394/    F130 :                     ; IN 2 |                     OUT 8
 +     395/    F130 :                     
 +     396/    F130 :                     
 +     397/    F130 :                     inkey: ;bei Ret A=ASCII
 +     398/    F130 : AF                  xor a
 +     399/    F131 : 67                  ld h, a
 +     400/    F132 : 6F                  ld l, a
 +     401/    F133 : CD 88 F1            call ink9 ;Tastenabfrage
 +     402/    F136 : 30 4B                jr nc, ink8 ;Cy=0 keine Taste
 +     403/    F138 : 19                  add hl, de
 +     404/    F139 : CD 9E F1            call ink12 ;restl. Spalten
 +     405/    F13C : 0E 44                ld c, 44h ;Tastaturcodetabelle 0044H Shift-Ebene 0 40h,48h,50h
 +     406/    F13E : 38 07                jr c, ink1 ;Cy=1 2.Taste gedr.
 +     407/    F140 : EB                  ex de, hl
 +     408/    F141 : CB 5A                bit 3, d ;Abfrage Zeile 3
 +     409/    F143 : 28 0B                jr z, ink2 ;Z=1 Taste gedr.
 +     410/    F145 : 18 14                jr ink3
 +     411/    F147 : CB 5A               ink1: bit 3, d ;2. Taste ? Zeile 3
 +     412/    F149 : 28 05                jr z, ink2 ;Z=1 Taste gedr.
 +     413/    F14B : EB                  ex de, hl
 +     414/    F14C : CB 5A                bit 3, d ;1. Taste ? Zeile 3
 +     415/    F14E : 20 0B                jr nz, ink3 ;Z=1 Taste gedr.
 +     416/    F150 : CD A5 F1            ink2: call ink13 ;Welche Taste in Z3
 +     417/    F153 : C5                  push bc
 +     418/    F154 : CD DC F1            call ink22 ;Summand holen
 +     419/    F157 : C1                  pop bc
 +     420/    F158 : 28 06                jr z, ink4 ;Z=0 kein Summ.
 +     421/    F15A : EB                  ex de, hl
 +     422/    F15B : CD DC F1            ink3: call ink22 ;Summand holen
 +     423/    F15E : 20 23                jr nz, ink8 ;Z=0 kein Summ.
 +     424/    F160 : 83                  ink4: add a, e
 +     425/    F161 : 21 27 00            ld hl, KYBTS
 +     426/    F164 : 86                  add a, (hl)
 +     427/    F165 :                     ;Berechnung Ascii-Wert abgeschlossen
 +     428/    F165 : 21 04 00            ink5: ld hl, LAKEY ;Softwareentprel-
 +     429/    F168 : BE                  cp (hl) ;lung, verhindert
 +     430/    F169 : 28 C5                jr z, inkey ;Repeat-Funktion
 +     431/    F16B : 47                  ld b, a
 +     432/    F16C : 7E                  ld a, (hl)
 +     433/    F16D : B7                  or a
 +     434/    F16E : 78                  ld a, b
 +     435/    F16F : 20 BF                jr nz, inkey ;Z=1 vorher keine
 +     436/    F171 : 32 04 00            ld (LAKEY), a ;Taste gedrueckt
 +     437/    F174 : FE 91                cp 91h ;(S4/A)
 +     438/    F176 : 28 07                jr z, ink6 ;Z=1- ASCII
 +     439/    F178 : FE 17                cp 17h ;(S4/G)
 +     440/    F17A : C0                  ret nz ;Z=0 Ruecksprung
 +     441/    F17B : 3E 80                ld a, 80h
 +     442/    F17D : 18 01                jr ink7
 +     443/    F17F : AF                  ink6: xor a
 +     444/    F180 : 32 27 00            ink7: ld (KYBTS), a
 +     445/    F183 : AF                  ink8: xor a ;Ruecksprung wenn
 +     446/    F184 : 32 04 00            ld (LAKEY), a ;keine Taste gedr.
 +     447/    F187 : C9                  ret ;mit A=0
 +     448/    F188 :                     ;UP Tastenabfrage
 +     449/    F188 : 5F                  ink9: ld e, a ;E=Spaltennummer
 +     450/    F189 : D3 08                out (KEYP), a ;Ausgabe Spalte
 +     451/    F18B : 06 20                ld b, 20h
 +     452/    F18D : DB 02               ink10: in a, (PIOBD)
 +     453/    F18F : E6 0F                and 0Fh
 +     454/    F191 : 57                  ld d, a ;D=Zeilennummer
 +     455/    F192 : DB 02                in a, (PIOBD)
 +     456/    F194 : E6 0F                and 0Fh
 +     457/    F196 : BA                  cp d
 +     458/    F197 : 20 03                jr nz, ink11 ;Z=0 Taste prellt
 +     459/    F199 : FE 0F                cp 0Fh
 +     460/    F19B : C0                  ret nz ;Z=0 Taste gedr.
 +     461/    F19C : 10 EF               ink11: djnz ink10
 +     462/    F19E : 7B                  ink12: ld a, e ;Erhoeh. Spalten-
 +     463/    F19F : 3C                  inc a ;zahl
 +     464/    F1A0 : FE 08                cp 8
 +     465/    F1A2 : 20 E4                jr nz, ink9 ;Z=1 alle Tasten
 +     466/    F1A4 : C9                  ret ;abgefragt
 +     467/    F1A5 :                     ;Taste in Z3
 +     468/    F1A5 : 3E 01               ink13: ld a, 1 ;Untersuchung
 +     469/    F1A7 : BB                  cp e ;welche Taste in
 +     470/    F1A8 : 28 29                jr z, ink19 ;Zeile 3 gedr. ist
 +     471/    F1AA : 30 24                jr nc, ink18 ;E=Spaltenzahl
 +     472/    F1AC : C6 02                add a, 2 ;E=0 - C=41H
 +     473/    F1AE : BB                  cp e ;E=1 - C=3EH
 +     474/    F1AF : 28 28                jr z, ink21 ;E=2 - C=3BH
 +     475/    F1B1 : 30 23                jr nc, ink20 ;E=3 - C=35H
 +     476/    F1B3 : C6 02                add a, 2 ;E=4 - A=08H
 +     477/    F1B5 : BB                  cp e ;E=5 - A=20H
 +     478/    F1B6 : 28 0F                jr z, ink15 ;E=6 - A=09H
 +     479/    F1B8 : 30 11                jr nc, ink16 ;E=7 - A=0DH
 +     480/    F1BA : C6 02                add a, 2
 +     481/    F1BC : BB                  cp e
 +     482/    F1BD : 28 04                jr z, ink14
 +     483/    F1BF : 3E 09                ld a, 9 ; ->
 +     484/    F1C1 : 18 0A                jr ink17
 +     485/    F1C3 : 3E 0D               ink14: ld a, 0Dh ; ENT
 +     486/    F1C5 : 18 06                jr ink17
 +     487/    F1C7 : 3E 20               ink15: ld a, 20h ; SPACE
 +     488/    F1C9 : 18 02                jr ink17
 +     489/    F1CB : 3E 08               ink16: ld a, 8 ; <-
 +     490/    F1CD : C1                  ink17: pop bc
 +     491/    F1CE : 18 95                jr ink5
 +     492/    F1D0 : 0E 41               ink18: ld c, 41h ;Tastaturcodetabelle 0041H Shift-Ebene 1 58h,30h,38h
 +     493/    F1D2 : C9                  ret
 +     494/    F1D3 : 0E 3E               ink19: ld c, 3Eh ;Tastaturcodetabelle 003EH Shift-Ebene 2 78h,20h,28h
 +     495/    F1D5 : C9                  ret
 +     496/    F1D6 : 0E 3B               ink20: ld c, 3Bh ;Tastaturcodetabelle 003BH Shift-Ebene 3 60h,68h,70h
 +     497/    F1D8 : C9                  ret
 +     498/    F1D9 : 0E 35               ink21: ld c, 35h ;Tastaturcodetabelle 0035H Shift-Ebene 4 10h,00h,08h
 +     499/    F1DB : C9                  ret
 +     500/    F1DC :                     
 +     501/    F1DC :                     ;Summand holen
 +     502/    F1DC : CB 42               ink22: bit 0, d ;Abfrage Zeile 0
 +     503/    F1DE : 20 05                jr nz, ink24 ;Z=0 keine Taste
 +     504/    F1E0 : 69                  ink23: ld l, c
 +     505/    F1E1 : 26 00                ld h, 0
 +     506/    F1E3 : 7E                  ld a, (hl)
 +     507/    F1E4 : C9                  ret
 +     508/    F1E5 : 0C                  ink24: inc c
 +     509/    F1E6 : CB 4A                bit 1, d ;Abfrage Zeile 1
 +     510/    F1E8 : 20 02                jr nz, ink25 ;Z=0 keine Taste
 +     511/    F1EA : 18 F4                jr ink23
 +     512/    F1EC : 0C                  ink25: inc c
 +     513/    F1ED : CB 52                bit 2, d ;Abfrage Zeile 2
 +     514/    F1EF : C0                  ret nz ;Z=0 keine Taste
 +     515/    F1F0 : 18 EE                jr ink23
 +     516/    F1F2 :                     
 +     517/    F1F2 : =>FALSE              ELSEIF MONTYP == "Z1013_A2"
 +     518/    F1F2 :                     
 +     519/    F1F2 :                     ; Tastatur
 +     520/    F1F2 :                     ; --------
 +     521/    F1F2 :                     ;
 +     522/    F1F2 :                     ;      -------------------------------------------------
 +     523/    F1F2 :                     ;      I   ! I   # I   % I   ' I   ) I   = I         I
 +     524/    F1F2 :                     ;  RZ0-I                                 I
 +     525/    F1F2 :                     ;      I 1   I 3   I 5   I 7   I 9   I -   I GRA I     I
 +     526/    F1F2 :                     ;      I-----+-----+-----+-----+-----+-----+-----+-----I
 +     527/    F1F2 :                     ;      I                       ` I         I
 +     528/    F1F2 :                     ;  RZ1-I                                 I
 +     529/    F1F2 :                     ;      I Q   I E   I T   I U   I O   I @   I ENT I     I
 +     530/    F1F2 :                     ;      I-----+-----+-----+-----+-----+-----+-----+-----I
 +     531/    F1F2 :                     ;      I                       : I         I
 +     532/    F1F2 :                     ;  RZ2-I                         I Cu  I     I
 +     533/    F1F2 :                     ;      I A   I D   I G   I J   I L   I *   I leftI     I
 +     534/    F1F2 :                     ;      I-----+-----+-----+-----+-----+-----+-----+-----I
 +     535/    F1F2 :                     ;      I                   > I   ~ I         I
 +     536/    F1F2 :                     ;  RZ3-I                         I Cu  I     I
 +     537/    F1F2 :                     ;      I Y   I C   I B   I M       I ^   I rghtI     I
 +     538/    F1F2 :                     ;      I-----+-----+-----+-----+-----+-----+-----+-----I
 +     539/    F1F2 :                     ;      I   " I   $ I   & I   ( I       { I         I
 +     540/    F1F2 :                     ;  RZ4-I                                 I
 +     541/    F1F2 :                     ;  RZ0 I 2   I 4   I 6   I 8   I 0   I [   I Spc I     I
 +     542/    F1F2 :                     ;      I-----+-----+-----+-----+-----+-----+-----+-----I
 +     543/    F1F2 :                     ;      I                             } I     I
 +     544/    F1F2 :                     ;  RZ5-I                                 I
 +     545/    F1F2 :                     ;  RZ1 I W   I R   I Z   I I   I P   I ]   I CTRLI     I
 +     546/    F1F2 :                     ;      I-----+-----+-----+-----+-----+-----+-----+-----I
 +     547/    F1F2 :                     ;      I                   ; I   | I         I
 +     548/    F1F2 :                     ;  RZ6-I                         I Cu  I     I
 +     549/    F1F2 :                     ;  RZ2 I S   I F   I H   I K   I +   I \\  I up  I ShftI
 +     550/    F1F2 :                     ;      I-----+-----+-----+-----+-----+-----+-----+-----I
 +     551/    F1F2 :                     ;      I               < I   ? I    I         I
 +     552/    F1F2 :                     ;  RZ7-I                         I Cu  I ShftI
 +     553/    F1F2 :                     ;  RZ3 I X   I V   I N   I ,   I /   I _   I downI LockI
 +     554/    F1F2 :                     ;      -------------------------------------------------
 +     555/    F1F2 :                     ;                                     !
 +     556/    F1F2 :                     ;        RS0   RS1   RS2   RS3   RS4   RS5   RS6   RS7
 +     557/    F1F2 :                     ;
 +     558/    F1F2 :                     ; IN 2 |                     OUT 8
 +     559/    F1F2 :                     ;
 +     560/    F1F2 :                     ; Zeile 4..7 werden auf Zeile 0..3 gemuxt, wenn Pio B4=1
 +     561/    F1F2 :                     
 +     562/    F1F2 :                     inkey: ld hl, KYBTS ; Merkzelle
 +     563/    F1F2 :                      ld a, 01011011b
 +     564/    F1F2 :                      and (hl)
 +     565/    F1F2 :                      ld (hl), a
 +     566/    F1F2 :                      ld ix, keytab ; Tastaturcodetabelle
 +     567/    F1F2 :                      call ink16 ; normale Taste gedrückt?
 +     568/    F1F2 :                      jr nc, ink1 ; nein, dann evtl. Fkt.taste?
 +     569/    F1F2 :                      push de ;
 +     570/    F1F2 :                      set 7, (hl)
 +     571/    F1F2 :                      call ink20 ; ASCII-Code aus Tabelle ermitteln
 +     572/    F1F2 :                      ld (DATA), a ; ASCII-Code
 +     573/    F1F2 :                      pop de ;
 +     574/    F1F2 :                      call ink18 ;
 +     575/    F1F2 :                     ; Funktionstasten (Spalte 6)
 +     576/    F1F2 :                     ink1: ld ix, tab2 ; Tastaturcodetabelle
 +     577/    F1F2 :                      ld e, 6 ; Spalte 6
 +     578/    F1F2 :                      call ink19 ; Spalte abfragen
 +     579/    F1F2 :                      jr z, ink9 ; wenn keine Taste gedrückt
 +     580/    F1F2 :                      bit 0, c ; GRA ?
 +     581/    F1F2 :                      jr z, ink2
 +     582/    F1F2 :                      bit 5, c ; CTRL ?
 +     583/    F1F2 :                      jr z, ink5
 +     584/    F1F2 :                      call ink20 ; ASCII-Code aus Tabelle ermitteln
 +     585/    F1F2 :                      ret ; A = ASCII-Code
 +     586/    F1F2 :                     ; GRA
 +     587/    F1F2 :                     ink2: ld a, 2
 +     588/    F1F2 :                      res 3, (hl)
 +     589/    F1F2 :                     ink3: bit 6, (hl)
 +     590/    F1F2 :                      jr nz, ink4
 +     591/    F1F2 :                      set 6, (hl) ; Statusbit Grafikmode setzen
 +     592/    F1F2 :                      xor (hl)
 +     593/    F1F2 :                      ld (hl), a
 +     594/    F1F2 :                     ink4: xor a
 +     595/    F1F2 :                      ret
 +     596/    F1F2 :                     ; CTRL
 +     597/    F1F2 :                     ink5: set 5, (hl) ; Statusbit CTRL setzen
 +     598/    F1F2 :                      bit 7, (hl)
 +     599/    F1F2 :                      jr z, ink9
 +     600/    F1F2 :                      ld a, (DATA)
 +     601/    F1F2 :                      bit 6, a
 +     602/    F1F2 :                      jr nz, ink6
 +     603/    F1F2 :                      set 4, a
 +     604/    F1F2 :                     ink6: and 1Fh
 +     605/    F1F2 :                     ink7: bit 1, (hl)
 +     606/    F1F2 :                      ret z
 +     607/    F1F2 :                      set 7, a ; Bit 7 := 1 (Grafikzeichen)
 +     608/    F1F2 :                      ret
 +     609/    F1F2 :                     ; Shift
 +     610/    F1F2 :                     ink8: res 6, (hl)
 +     611/    F1F2 :                      bit 7, (hl)
 +     612/    F1F2 :                      ret z
 +     613/    F1F2 :                      ld a, (DATA)
 +     614/    F1F2 :                      jr ink7
 +     615/    F1F2 :                     ;
 +     616/    F1F2 :                     ink9: ld e, 7 ; Spalte 7 (Shift)
 +     617/    F1F2 :                      call ink19 ; Taste gedrückt?
 +     618/    F1F2 :                      jr z, ink10 ; nein
 +     619/    F1F2 :                      bit 7, c ; Shift Lock
 +     620/    F1F2 :                      jr z, ink15
 +     621/    F1F2 :                      bit 6, c ; Shift
 +     622/    F1F2 :                      jr nz, ink8
 +     623/    F1F2 :                      bit 5, (hl)
 +     624/    F1F2 :                      jr nz, ink15
 +     625/    F1F2 :                     ink10: bit 7, (hl) ;
 +     626/    F1F2 :                      ret z ; nein
 +     627/    F1F2 :                     ; Repeat
 +     628/    F1F2 :                      ld a, (DATA)
 +     629/    F1F2 :                      bit 6, c
 +     630/    F1F2 :                      jr z, ink11
 +     631/    F1F2 :                      bit 3, (hl)
 +     632/    F1F2 :                      jr z, ink7
 +     633/    F1F2 :                      jr ink12
 +     634/    F1F2 :                     ink11: bit 3, (hl)
 +     635/    F1F2 :                      jr nz, ink7
 +     636/    F1F2 :                     ink12: ld b, a
 +     637/    F1F2 :                      and 30h
 +     638/    F1F2 :                      ld a, b
 +     639/    F1F2 :                      jp po, ink13
 +     640/    F1F2 :                      res 4, a
 +     641/    F1F2 :                      jr ink14
 +     642/    F1F2 :                     ink13: set 4, a
 +     643/    F1F2 :                     ink14: set 5, a
 +     644/    F1F2 :                      jr ink7
 +     645/    F1F2 :                     ; Shift Lock
 +     646/    F1F2 :                     ink15: ld a, 8
 +     647/    F1F2 :                      jp ink3
 +     648/    F1F2 :                     ; normale Taste gedrückt?
 +     649/    F1F2 :                     ; IN: IX: Tastaturcodetabelle
 +     650/    F1F2 :                     ; OUT: Z-Flag=1: Taste gedrückt
 +     651/    F1F2 :                     ;      E = Spalte
 +     652/    F1F2 :                     ;      Cy=0: keine Taste gedrückt
 +     653/    F1F2 :                     ; IX: Tastaturcodetabelle aktuelle Zeile
 +     654/    F1F2 :                     ink16: ld e, 0 ; e = Spalte (0..5)
 +     655/    F1F2 :                     ink17: call ink19 ; Taste in Spalte gedrückt?
 +     656/    F1F2 :                      scf
 +     657/    F1F2 :                      ret nz ; wenn gedrueckt
 +     658/    F1F2 :                     ink18: inc e ; sonst naechste Spalte
 +     659/    F1F2 :                      ld bc, 8 ; und Pointer auf Tastaturcode-
 +     660/    F1F2 :                      add ix, bc ; tabelle erhöhen
 +     661/    F1F2 :                      ld a, e
 +     662/    F1F2 :                      cp 6 ; Spalte RS6 erreicht?
 +     663/    F1F2 :                      jr nz, ink17 ; bis alle 7 Spalten
 +     664/    F1F2 :                      scf
 +     665/    F1F2 :                      ccf ; Cy=0
 +     666/    F1F2 :                      ret
 +     667/    F1F2 :                     ; Abfrage einer Spalte
 +     668/    F1F2 :                     ; IN E: Spalte
 +     669/    F1F2 :                     ; OUT: C: Zeile
 +     670/    F1F2 :                     ;      A = 0
 +     671/    F1F2 :                     ;      Z-Flag=1: Taste gedrückt
 +     672/    F1F2 :                     ink19: ld a, e ; e = Spalte
 +     673/    F1F2 :                      out (KEYP), a ; Spalte aktivieren
 +     674/    F1F2 :                      out (PIOBD), a ; Pio B4 = 0 (Zeile 0..3)
 +     675/    F1F2 :                      in a, (PIOBD) ; Zeilen 0..3 einlesen
 +     676/    F1F2 :                      and 0Fh
 +     677/    F1F2 :                      ld c, a
 +     678/    F1F2 :                      set 4, a ; PIO B4 = 1 (Zeile 4..7)
 +     679/    F1F2 :                      out (PIOBD), a
 +     680/    F1F2 :                      in a, (PIOBD) ; Zeilen 4..7 einlesen
 +     681/    F1F2 :                      sla a ; in obere 4 Bits verschieben
 +     682/    F1F2 :                      sla a
 +     683/    F1F2 :                      sla a
 +     684/    F1F2 :                      sla a
 +     685/    F1F2 :                      ld d, a ; d = Zeile 4..7
 +     686/    F1F2 :                      add a, c
 +     687/    F1F2 :                      ld c, a ; c = Zeile 0..7
 +     688/    F1F2 :                     ; Entprellen ...
 +     689/    F1F2 :                      xor a ; a = 0
 +     690/    F1F2 :                      out (PIOBD), a ; Pio B4 = 0 (Zeile 0..3)
 +     691/    F1F2 :                      in a, (PIOBD) ; Zeilen 0..3 einlesen
 +     692/    F1F2 :                      and 0Fh
 +     693/    F1F2 :                      add a, d
 +     694/    F1F2 :                      cp c ; noch gleicher Wert?
 +     695/    F1F2 :                      jr nz, ink19 ; nein
 +     696/    F1F2 :                      cpl
 +     697/    F1F2 :                      or a
 +     698/    F1F2 :                      ld a, 0
 +     699/    F1F2 :                      ret
 +     700/    F1F2 :                     ; ASCII-Code aus Tabelle ermitteln
 +     701/    F1F2 :                     ; IN: C = Zeile = Bit 0..7
 +     702/    F1F2 :                     ;     IX = Tastaturcodetabelle
 +     703/    F1F2 :                     ink20: ld de, 0
 +     704/    F1F2 :                      ld b, 8 ; max 8 Zeilen
 +     705/    F1F2 :                     ink21: sra c ; nächste Zeile
 +     706/    F1F2 :                      jr nc, ink22
 +     707/    F1F2 :                      inc e
 +     708/    F1F2 :                      djnz ink21
 +     709/    F1F2 :                     ink22: add ix, de
 +     710/    F1F2 :                      ld a, (ix+0) ; A = ASCII-Code
 +     711/    F1F2 :                      res 6, (hl) ;
 +     712/    F1F2 :                      ret
 +     713/    F1F2 :                     
 +     714/    F1F2 : [369]                ENDIF
 +     715/    F1F2 :                     ;
 +     716/    F1F2 :                     ;-------------------------------------------------------------------------------
 +     717/    F1F2 :                     ;Monitorinit., wird nach 0033H (LSYNC) umgeladen
 +     718/    F1F2 :                     ;-------------------------------------------------------------------------------
 +     719/    F1F2 :                     ;
 +     720/    F1F2 :                     MONTB:
 +     721/      33 :                      phase 0033H
 +     722/      33 :                     
 +     723/      33 : =>TRUE              IF MONTYP == "Z1013_202"
 +     724/      33 :                     
 +     725/      33 : D0 07                DW 2000 ;Kenntonlaenge LSYNC
 +     726/      35 : 10 00 08            DB 10h,00h,08h ;Tastaturcodetabelle 0035H Shift-Ebene 4
 +     727/      38 : C3 58 F0            JP KDO1 ;RST38-Sprung RST38
 +     728/      3B : 60 68 70            db 60h,68h,70h ;Tastaturcodetabelle 003BH Shift-Ebene 3
 +     729/      3E : 78 20 28            db 78h,20h,28h ;Tastaturcodetabelle 003EH Shift-Ebene 2
 +     730/      41 : 58 30 38            db 58h,30h,38h ;Tastaturcodetabelle 0041H Shift-Ebene 1
 +     731/      44 : 40 48 50            db 40h,48h,50h ;Tastaturcodetabelle 0044H Shift-Ebene 0
 +     732/      47 : E0 03                DW 03E0H ;WINDOW-Laenge WINDL
 +     733/      49 : 00 EC                DW BWS ;WINDOW-Anfang WINDA
 +     734/      4B : 00 F0                DW BWS+BWSSZ ;WINDOW-Ende WINDE
 +     735/      4D :                     
 +     736/      4D : =>FALSE              ELSEIF MONTYP == "Z1013_A2"
 +     737/      4D :                     
 +     738/      4D :                      dw 2000 ;Kenntonlaenge LSYNC
 +     739/      4D :                      DW BWSSZ-BWSCOL ;WINDOW-Laenge WINDL
 +     740/      4D :                      db 0 ;Status-Merkzelle f. INKEY KYBTS
 +     741/      4D :                      jp KDO1 ;RST38-Sprung RST38
 +     742/      4D :                      DW BWS ;WINDOW-Anfang WINDA
 +     743/      4D :                      DW BWS+BWSSZ ;WINDOW-Ende WINDE
 +     744/      4D :                     
 +     745/      4D : [723]                ENDIF
 +     746/      4D :                     
 +     747/    F20C :                      dephase
 +     748/    F20C :                     ;
 +     749/    F20C :                     ;-------------------------------------------------------------------------------
 +     750/    F20C :                     ;Zeichen von Tastatur holen, warten bis Taste gedrueckt
 +     751/    F20C :                     ;-------------------------------------------------------------------------------
 +     752/    F20C :                     ;
 +     753/    F20C : =>TRUE              IF MONTYP == "Z1013_202"
 +     754/    F20C :                     
 +     755/    F20C : C5                  INCH: push bc
 +     756/    F20D : D5                  push de
 +     757/    F20E : E5                  push hl
 +     758/    F20F : CD 30 F1            INC1: CALL INKEY
 +     759/    F212 : B7                  OR A
 +     760/    F213 : 28 FA                JR Z, INC1 ;keine Taste gedrueckt
 +     761/    F215 : E1                  pop hl
 +     762/    F216 : D1                  pop de
 +     763/    F217 : C1                  pop bc
 +     764/    F218 : C9                  RET
 +     765/    F219 :                     
 +     766/    F219 : =>FALSE              ELSEIF MONTYP == "Z1013_A2"
 +     767/    F219 :                     
 +     768/    F219 :                     INCH: push ix
 +     769/    F219 :                      push bc
 +     770/    F219 :                      push de
 +     771/    F219 :                      push hl
 +     772/    F219 :                      ld bc, 1000h ; B := 16; C := 0 (256)
 +     773/    F219 :                     INC1: PUSH BC
 +     774/    F219 :                      CALL INKEY ; ret: hl=KYBTS
 +     775/    F219 :                      POP BC
 +     776/    F219 :                      LD IX, LAKEY
 +     777/    F219 :                      CP (IX+0)
 +     778/    F219 :                      JR NZ, INC6 ; wenn anderes Zeichen
 +     779/    F219 :                      OR A ; A = 0?
 +     780/    F219 :                      JR Z, INC5 ; wenn keine Taste gedückt
 +     781/    F219 :                     INC2: DEC C
 +     782/    F219 :                      JR NZ, INC2 ; kurz warten
 +     783/    F219 :                      BIT 4, (HL) ; Repeat?
 +     784/    F219 :                      JR NZ, INC4 ; ja -> gleich weiter
 +     785/    F219 :                      LD DE, 800H ; sonst längeres Warten
 +     786/    F219 :                     INC3: DEC DE
 +     787/    F219 :                      LD A, E
 +     788/    F219 :                      OR D
 +     789/    F219 :                      JR NZ, INC3
 +     790/    F219 :                     INC4: DJNZ INC1 ; 16x
 +     791/    F219 :                      SET 4, (HL) ; Repeat ein
 +     792/    F219 :                      XOR A ; A := 0, kein Zeichen
 +     793/    F219 :                      JR INC6
 +     794/    F219 :                     INC5: RES 4, (HL) ; kein Repeat mehr
 +     795/    F219 :                     INC6: LD (IX+0), A ; LAKEY füllen
 +     796/    F219 :                      OR A ; A = 0?
 +     797/    F219 :                      JR Z, INC1 ; nochmal, bis Taste gedrückt
 +     798/    F219 :                      POP HL
 +     799/    F219 :                      POP DE
 +     800/    F219 :                      POP BC
 +     801/    F219 :                      POP IX
 +     802/    F219 :                      RET
 +     803/    F219 :                     
 +     804/    F219 : [753]                ENDIF
 +     805/    F219 :                     ;
 +     806/    F219 :                     ;-------------------------------------------------------------------------------
 +     807/    F219 :                     ;Ausgabe Zeichen auf Bildschirm
 +     808/    F219 :                     ;-------------------------------------------------------------------------------
 +     809/    F219 :                     ;
 +     810/    F219 :                     ; Zeichenausgabe f. PRST7: Reset Bit 7
 +     811/    F219 : E6 7F               OUT0: AND A, 7FH
 +     812/    F21B :                     ; Zeichenausgabe
 +     813/    F21B : F5                  OUTCH: push af
 +     814/    F21C : C5                  push bc
 +     815/    F21D : D5                  push de
 +     816/    F21E : E5                  PUSH HL
 +     817/    F21F : 2A 2B 00            LD HL,(CUPOS)
 +     818/    F222 : F5                  PUSH AF
 +     819/    F223 : 3A 1F 00            LD A,(BUFFA) ;Zeichen unter Cursor
 +     820/    F226 : 77                  LD (HL),A ;zurueckschreiben
 +     821/    F227 : F1                  POP AF
 +     822/    F228 : FE 0D                CP A, CR ;neue Zeile?
 +     823/    F22A : 28 53                JR Z, OUT8
 +     824/    F22C : FE 0C                CP A, CLS ;Bildschirm loeschen?
 +     825/    F22E : 28 5E                JR Z, OUT10
 +     826/    F230 : FE 08                CP A, 8 ;Cursor links?
 +     827/    F232 : 28 48                JR Z, OUT7
 +     828/    F234 : FE 09                CP A, 9 ;Cursor rechts?
 +     829/    F236 : 28 01                JR Z, OUT2
 +     830/    F238 : 77                  LD (HL),A ;sonst Zeichen in BWS
 +     831/    F239 : 23                  OUT2: INC HL
 +     832/    F23A :                     ;
 +     833/    F23A : EB                  OUT3: EX DE,HL
 +     834/    F23B : 2A 4B 00            LD HL,(WINDE)
 +     835/    F23E : AF                  XOR A ;Test, ob neue Cursor-
 +     836/    F23F : ED 52                SBC HL,DE ;position schon
 +     837/    F241 : EB                  EX DE,HL ;ausserhalb Window
 +     838/    F242 : 20 2A                JR NZ, OUT6 ;nein
 +     839/    F244 :                     ;
 +     840/    F244 : ED 5B 49 00          LD DE,(WINDA) ;scrollen um
 +     841/    F248 : 21 20 00            LD HL,BWSCOL ;eine Zeile im Window
 +     842/    F24B : 19                  ADD HL,DE
 +     843/    F24C : ED 4B 47 00          LD BC,(WINDL) ;Windowlaenge
 +     844/    F250 : 78                  LD A,B
 +     845/    F251 : B1                  OR C ;=0?
 +     846/    F252 : 28 02                JR Z, OUT5 ;ja --> kein Scrollen
 +     847/    F254 : ED B0                LDIR
 +     848/    F256 : D5                  OUT5: PUSH DE ;letzte Zeile loeschen
 +     849/    F257 : E1                  POP HL
 +     850/    F258 : E5                  PUSH HL
 +     851/    F259 : 13                  INC DE
 +     852/    F25A : 36 20                LD (HL),' '
 +     853/    F25C : 01 1F 00            LD BC,BWSCOL-1
 +     854/    F25F : ED B0                LDIR
 +     855/    F261 :                     ;
 +     856/    F261 : 2A 16 00            LD HL,(SOIL) ;SOIL um eine Zeile
 +     857/    F264 : 11 20 00            LD DE,BWSCOL ;erhoehen
 +     858/    F267 : AF                  XOR A
 +     859/    F268 : ED 52                SBC HL,DE
 +     860/    F26A : 22 16 00            LD (SOIL),HL
 +     861/    F26D : E1                  POP HL
 +     862/    F26E :                     ;
 +     863/    F26E : 7E                  OUT6: LD A,(HL) ;Zeichen unter Cursor
 +     864/    F26F : 32 1F 00            LD (BUFFA),A ;sichern
 +     865/    F272 : 36 FF                LD (HL),0FFH ;Cursor setzen
 +     866/    F274 : 22 2B 00            LD (CUPOS),HL
 +     867/    F277 : E1                  POP HL
 +     868/    F278 : D1                  POP DE
 +     869/    F279 : C1                  POP BC
 +     870/    F27A : F1                  POP AF
 +     871/    F27B : C9                  RET
 +     872/    F27C :                     ;Cursor links
 +     873/    F27C : 2B                  OUT7: DEC HL
 +     874/    F27D : 18 BB                JR OUT3
 +     875/    F27F :                     ;neue Zeile
 +     876/    F27F : 3E E0               OUT8: LD A, 0E0H ;auf Zeilenanfang stellen
 +     877/    F281 : A5                  AND A, L ;A=Anfang akt. Zeile
 +     878/    F282 : C6 20                ADD A, BWSCOL ;A=NWB der Position
 +     879/    F284 : 4F                  LD C,A ;eine Zeile tiefer
 +     880/    F285 : 36 20               OUT9: LD (HL),' ' ;Rest der Zeile ab
 +     881/    F287 : 23                  INC HL ;ENTER loeschen
 +     882/    F288 : 7D                  LD A,L
 +     883/    F289 : B9                  CP A, C
 +     884/    F28A : 20 F9                JR NZ, OUT9
 +     885/    F28C : 18 AC                JR OUT3
 +     886/    F28E :                     ;
 +     887/    F28E :                     ;Window loeschen
 +     888/    F28E : 2A 47 00            OUT10: LD HL,(WINDL)
 +     889/    F291 : 01 1F 00            LD BC,BWSCOL-1
 +     890/    F294 : 09                  ADD HL,BC
 +     891/    F295 : E5                  PUSH HL
 +     892/    F296 : C1                  POP BC
 +     893/    F297 : 2A 49 00            LD HL,(WINDA)
 +     894/    F29A : E5                  PUSH HL
 +     895/    F29B : 36 20                LD (HL),' '
 +     896/    F29D : E5                  PUSH HL
 +     897/    F29E : D1                  POP DE
 +     898/    F29F : 13                  INC DE
 +     899/    F2A0 : ED B0                LDIR
 +     900/    F2A2 : E1                  POP HL
 +     901/    F2A3 : 18 C9                JR OUT6
 +     902/    F2A5 :                     ;
 +     903/    F2A5 :                     ;-------------------------------------------------------------------------------
 +     904/    F2A5 :                     ;Ausgabe String, bis Bit7=1
 +     905/    F2A5 :                     ;-------------------------------------------------------------------------------
 +     906/    F2A5 :                     ;
 +     907/    F2A5 : E3                  PRST7: EX (SP),HL ;Adresse hinter CALL
 +     908/    F2A6 : 7E                  PRS1: LD A,(HL)
 +     909/    F2A7 : 23                  INC HL
 +     910/    F2A8 : F5                  PUSH AF
 +     911/    F2A9 : CD 19 F2            CALL OUT0
 +     912/    F2AC : F1                  POP AF
 +     913/    F2AD : CB 7F                BIT 7,A ;Bit7 gesetzt?
 +     914/    F2AF : 28 F5                JR Z, PRS1 ;nein
 +     915/    F2B1 : E3                  EX (SP),HL ;neue Returnadresse
 +     916/    F2B2 : C9                  RET
 +     917/    F2B3 :                     ;
 +     918/    F2B3 :                     ;-------------------------------------------------------------------------------
 +     919/    F2B3 :                     ;Eingabe einer Zeile mit Promptsymbol
 +     920/    F2B3 :                     ;-------------------------------------------------------------------------------
 +     921/    F2B3 :                     ;
 +     922/    F2B3 : CD A5 F2            INLIN: CALL PRST7
 +     923/    F2B6 : 20 23                DB " #"
 +     924/    F2B8 : A0                  DB ' '+80H
 +     925/    F2B9 :                     ;
 +     926/    F2B9 :                     ;-------------------------------------------------------------------------------
 +     927/    F2B9 :                     ;Eingabe einer Zeichenkette
 +     928/    F2B9 :                     ;-------------------------------------------------------------------------------
 +     929/    F2B9 :                     ;
 +     930/    F2B9 : E5                  INSTR: PUSH HL
 +     931/    F2BA : 2A 2B 00            LD HL,(CUPOS)
 +     932/    F2BD : 22 16 00            LD (SOIL),HL ;SOIL=1.Position
 +     933/    F2C0 : (MACRO)             INS1: RINCH ;Zeichen von Tastatur
 +     933/    F2C0 : E7                          RST     20H
 +     933/    F2C1 : 01                          DB      01h                     ; INCH
 +     934/    F2C2 : (MACRO)              ROUTC ;anzeigen
 +     934/    F2C2 : E7                          RST     20H
 +     934/    F2C3 : 00                          DB      0                       ; OUTCH
 +     935/    F2C4 : FE 0D                CP A, CR ;>ENTER<?
 +     936/    F2C6 : 20 F8                JR NZ, INS1 ;nein --> weiter eingeben
 +     937/    F2C8 : E1                  POP HL
 +     938/    F2C9 : C9                  RET
 +     939/    F2CA :                     ;
 +     940/    F2CA :                     ;-------------------------------------------------------------------------------
 +     941/    F2CA :                     ;fuehrende Leerzeichen ueberlesen
 +     942/    F2CA :                     ;-------------------------------------------------------------------------------
 +     943/    F2CA :                     ;
 +     944/    F2CA : 1A                  SPACE: LD A,(DE)
 +     945/    F2CB : FE 20                CP A, ' '
 +     946/    F2CD : C0                  RET NZ
 +     947/    F2CE : 13                  INC DE
 +     948/    F2CF : 18 F9                JR SPACE
 +     949/    F2D1 :                     ;
 +     950/    F2D1 :                     ;-------------------------------------------------------------------------------
 +     951/    F2D1 :                     ;letzen vier Zeichen als Hexzahl konvertieren
 +     952/    F2D1 :                     ;und in DATA ablegen
 +     953/    F2D1 :                     ;-------------------------------------------------------------------------------
 +     954/    F2D1 :                     ;
 +     955/    F2D1 : CD CA F2            KONVX: CALL SPACE
 +     956/    F2D4 : AF                  XOR A
 +     957/    F2D5 : 21 13 00            LD HL,DATA
 +     958/    F2D8 : 77                  LD (HL),A ;DATA=0
 +     959/    F2D9 : 23                  INC HL
 +     960/    F2DA : 77                  LD (HL),A
 +     961/    F2DB : 1A                  KON1: LD A,(DE)
 +     962/    F2DC : 2B                  DEC HL
 +     963/    F2DD : D6 30                SUB 30H ;Zeichen<"0"?
 +     964/    F2DF : F8                  RET M
 +     965/    F2E0 : FE 0A                CP A, 0AH ;Zeichen<="9"?
 +     966/    F2E2 : 38 08                JR C, KON2
 +     967/    F2E4 : D6 07                SUB 7
 +     968/    F2E6 : FE 0A                CP A, 0AH ;Zeichen<"A"?
 +     969/    F2E8 : F8                  RET M
 +     970/    F2E9 : FE 10                CP A, 10H ;Zeichen>"F"?
 +     971/    F2EB : F0                  RET P
 +     972/    F2EC : 13                  KON2: INC DE ;Hexziffer eintragen
 +     973/    F2ED : ED 6F                RLD
 +     974/    F2EF : 23                  INC HL
 +     975/    F2F0 : ED 6F                RLD
 +     976/    F2F2 : 18 E7                JR KON1 ;naechste Ziffer
 +     977/    F2F4 :                     ;
 +     978/    F2F4 :                     ;-------------------------------------------------------------------------------
 +     979/    F2F4 :                     ;Konvertierung ASCII-Hex ab (DE) --> (HL)
 +     980/    F2F4 :                     ;-------------------------------------------------------------------------------
 +     981/    F2F4 :                     ;
 +     982/    F2F4 : C5                  INHEX: PUSH BC
 +     983/    F2F5 : CD D1 F2            CALL KONVX ;Konvertierung
 +     984/    F2F8 : 44                  LD B,H ;BC=HL=DATA+1
 +     985/    F2F9 : 4D                  LD C,L
 +     986/    F2FA : 6E                  LD L,(HL) ;unteres Byte
 +     987/    F2FB : 03                  INC BC
 +     988/    F2FC : 0A                  LD A,(BC)
 +     989/    F2FD : 67                  LD H,A ;oberes Byte
 +     990/    F2FE : B5                  OR L ;Z-Flag setzen
 +     991/    F2FF : C1                  POP BC
 +     992/    F300 : C9                  RET
 +     993/    F301 :                     ;
 +     994/    F301 :                     ;-------------------------------------------------------------------------------
 +     995/    F301 :                     ;Ausgabe (A) hexadezimal
 +     996/    F301 :                     ;-------------------------------------------------------------------------------
 +     997/    F301 :                     ;
 +     998/    F301 : F5                  OUTHX: PUSH AF
 +     999/    F302 : 1F                  RRA
 +    1000/    F303 : 1F                  RRA
 +    1001/    F304 : 1F                  RRA
 +    1002/    F305 : 1F                  RRA
 +    1003/    F306 : CD 0A F3            CALL OUX1 ;obere Tetrade ausgeben
 +    1004/    F309 : F1                  POP AF ;und die untere
 +    1005/    F30A : F5                  OUX1: PUSH AF
 +    1006/    F30B : E6 0F                AND A, 0FH
 +    1007/    F30D : C6 30                ADD A, 30H ;Konvertierung --> ASCII
 +    1008/    F30F : FE 3A                CP A, ':' ;Ziffer "A" ... "F"?
 +    1009/    F311 : 38 02                JR C, OUX2 ;nein
 +    1010/    F313 : C6 07                ADD A, 7 ;sonst Korrektur
 +    1011/    F315 : CD 1B F2            OUX2: CALL OUTCH ;und Ausgabe
 +    1012/    F318 : F1                  POP AF
 +    1013/    F319 : C9                  RET
 +    1014/    F31A :                     ;
 +    1015/    F31A :                     ;-------------------------------------------------------------------------------
 +    1016/    F31A :                     ;Ausgabe HL hexadezimal
 +    1017/    F31A :                     ;-------------------------------------------------------------------------------
 +    1018/    F31A :                     ;
 +    1019/    F31A : F5                  OUTHL: PUSH AF
 +    1020/    F31B : 7C                  LD A,H
 +    1021/    F31C : CD 01 F3            CALL OUTHX
 +    1022/    F31F : 7D                  LD A,L
 +    1023/    F320 : CD 01 F3            CALL OUTHX
 +    1024/    F323 : F1                  POP AF
 +    1025/    F324 : C9                  RET
 +    1026/    F325 :                     ;
 +    1027/    F325 :                     ;-------------------------------------------------------------------------------
 +    1028/    F325 :                     ;Speicherinhalt modifizieren
 +    1029/    F325 :                     ;-------------------------------------------------------------------------------
 +    1030/    F325 :                     ;
 +    1031/    F325 : 2A 1B 00            MEM: LD HL,(ARG1)
 +    1032/    F328 : (MACRO)             MEM1: ROTHL ;Ausgabe Adresse
 +    1032/    F328 : E7                          RST     20H
 +    1032/    F329 : 07                          DB      07h                     ; OUTHL
 +    1033/    F32A : E5                  PUSH HL
 +    1034/    F32B : (MACRO)              ROTSP ;Leerzeichen
 +    1034/    F32B : E7                          RST     20H
 +    1034/    F32C : 0E                          DB      0Eh                     ; OUTSP
 +    1035/    F32D : 7E                  LD A,(HL)
 +    1036/    F32E : (MACRO)              ROTHX ;Ausgabe Byte
 +    1036/    F32E : E7                          RST     20H
 +    1036/    F32F : 06                          DB      06h                     ; OUTHX
 +    1037/    F330 : CD B3 F2            CALL INLIN
 +    1038/    F333 : ED 5B 16 00          LD DE,(SOIL)
 +    1039/    F337 : 1A                  LD A,(DE)
 +    1040/    F338 : 08                  EX AF, AF'
 +    1041/    F339 : E1                  POP HL
 +    1042/    F33A : 2B                  DEC HL
 +    1043/    F33B : 23                  MEM2: INC HL
 +    1044/    F33C : E5                  PUSH HL
 +    1045/    F33D : CD F4 F2            CALL INHEX
 +    1046/    F340 : 28 0D                JR Z, MEM4 ;Trennzeichen
 +    1047/    F342 : 7D                  MEM3: LD A,L
 +    1048/    F343 : E1                  POP HL
 +    1049/    F344 : 77                  LD (HL),A
 +    1050/    F345 : BE                  CP A, (HL) ;RAM-Test
 +    1051/    F346 : 28 F3                JR Z, MEM2 ;i.O.
 +    1052/    F348 : (MACRO)              RPRST
 +    1052/    F348 : E7                          RST     20H
 +    1052/    F349 : 02                          DB      02h                     ; PRST
 +    1053/    F34A : 45 52                DB "ER"
 +    1054/    F34C : A0                  DB ' '+80H
 +    1055/    F34D : 18 D9                JR MEM1
 +    1056/    F34F :                     ;
 +    1057/    F34F : 1A                  MEM4: LD A,(DE) ;Test Datenbyte=0
 +    1058/    F350 : FE 20                CP A, ' ' ;wenn ja --> Z=1
 +    1059/    F352 : 28 EE                JR Z, MEM3
 +    1060/    F354 : E1                  POP HL
 +    1061/    F355 : 23                  INC HL
 +    1062/    F356 : 22 1D 00            LD (ARG2),HL ;1. nichtbearb. Adr.
 +    1063/    F359 : FE 3B                CP A, ';'
 +    1064/    F35B : C8                  RET Z ;Return, wenn ";" gegeben
 +    1065/    F35C : 08                  EX AF, AF'
 +    1066/    F35D : FE 20                CP A, ' '
 +    1067/    F35F : 28 C7                JR Z, MEM1 ;Z=1 keine Eingabe
 +    1068/    F361 : 2B                  DEC HL
 +    1069/    F362 : FE 52                CP A, 'R' ;"R" gegeben?
 +    1070/    F364 : 20 C2                JR NZ, MEM1 ;nein
 +    1071/    F366 : 2B                  DEC HL ;sonst eine Adresse
 +    1072/    F367 : 18 BF                JR MEM1 ;zurueck
 +    1073/    F369 :                     ;
 +    1074/    F369 :                     ;-------------------------------------------------------------------------------
 +    1075/    F369 :                     ;Speichern auf Kassette
 +    1076/    F369 :                     ;-------------------------------------------------------------------------------
 +    1077/    F369 :                     ;
 +    1078/    F369 : 2A 1B 00            CSAVE: LD HL,(ARG1)
 +    1079/    F36C : CD 7D F3            CALL SAV2 ;Ausgabe 20H Bytes
 +    1080/    F36F : EB                  SAV1: EX DE,HL
 +    1081/    F370 : 2A 1D 00            LD HL,(ARG2)
 +    1082/    F373 : A7                  AND A, A
 +    1083/    F374 : ED 52                SBC HL,DE
 +    1084/    F376 : EB                  EX DE,HL
 +    1085/    F377 : D8                  RET C ;wenn File zu Ende
 +    1086/    F378 : CD 83 F3            CALL SAV3 ;Ausgabe 20H Byte
 +    1087/    F37B : 18 F2                JR SAV1
 +    1088/    F37D :                     ;
 +    1089/    F37D : ED 5B 33 00         SAV2: LD DE,(LSYNC) ;langer Vorton
 +    1090/    F381 : 18 03                JR SAV4
 +    1091/    F383 :                     ;Ausgabe ein Block = 20H Bytes
 +    1092/    F383 : 11 0E 00            SAV3: LD DE,14 ;kurzer Vorton
 +    1093/    F386 :                     ;Vorton: DE Halbschwingungen a 640 Hz
 +    1094/    F386 : 06 70               SAV4: LD B,70H ;Ausg. Vorton
 +    1095/    F388 : 10 FE               SAV5: DJNZ SAV5
 +    1096/    F38A : CD F1 F3            CALL SAV21 ;Flanke wechseln
 +    1097/    F38D : 1B                  DEC DE
 +    1098/    F38E : 7B                  LD A,E
 +    1099/    F38F : B2                  OR D
 +    1100/    F390 : 20 F4                JR NZ,SAV4
 +    1101/    F392 :                     ;Trennschwingung: 1 Vollschwingung a 1280 Hz
 +    1102/    F392 : 0E 02                LD C,02H ;Ausgabe Synchron-
 +    1103/    F394 : 06 35               SAV6: LD B,35H ;impulse
 +    1104/    F396 : 10 FE               SAV7: DJNZ SAV7
 +    1105/    F398 : CD F1 F3            CALL SAV21 ;Flanke wechseln
 +    1106/    F39B : 0D                  DEC C
 +    1107/    F39C : 11 00 00            LD DE,0
 +    1108/    F39F : 20 F3                JR NZ,SAV6
 +    1109/    F3A1 :                     ;
 +    1110/    F3A1 : D5                  PUSH DE ;DE=IX=0000
 +    1111/    F3A2 : DD E1                POP IX
 +    1112/    F3A4 :                     ;Kopfinhalt ausgeben
 +    1113/    F3A4 : 06 12                LD B,12H ;kurze Pause
 +    1114/    F3A6 : 10 FE               SAV8: DJNZ SAV8
 +    1115/    F3A8 : CD D0 F3            CALL SAV14 ;Ausgabe DE
 +    1116/    F3AB : 06 0F                LD B,0FH ;kurze Pause
 +    1117/    F3AD : 10 FE               SAV9: DJNZ SAV9
 +    1118/    F3AF :                     ;20H Bytes ausgeben
 +    1119/    F3AF : 0E 10                LD C,10H ;10H*2 Bytes
 +    1120/    F3B1 : 5E                  SAV10: LD E,(HL)
 +    1121/    F3B2 : 23                  INC HL
 +    1122/    F3B3 : 56                  LD D,(HL)
 +    1123/    F3B4 : DD 19                ADD IX,DE ;Pruefsumme bilden
 +    1124/    F3B6 : 23                  INC HL
 +    1125/    F3B7 : C5                  PUSH BC
 +    1126/    F3B8 : CD D0 F3            CALL SAV14 ;Ausgabe DE
 +    1127/    F3BB : C1                  POP BC
 +    1128/    F3BC : 0D                  DEC C
 +    1129/    F3BD : 28 06                JR Z, SAV12 ;Block fertig geschrieben
 +    1130/    F3BF : 06 0E                LD B,0EH ;kurze Pause
 +    1131/    F3C1 : 10 FE               SAV11: DJNZ SAV11
 +    1132/    F3C3 : 18 EC                JR SAV10
 +    1133/    F3C5 :                     ;Pruefsumme ausgeben
 +    1134/    F3C5 : DD E5               SAV12: PUSH IX
 +    1135/    F3C7 : D1                  POP DE ;DE = Pruefsumme
 +    1136/    F3C8 : 06 10                LD B,10H ;kurze Pause
 +    1137/    F3CA : 10 FE               SAV13: DJNZ SAV13
 +    1138/    F3CC : CD D0 F3            CALL SAV14 ;DE ausgeben
 +    1139/    F3CF : C9                  RET
 +    1140/    F3D0 :                     ;Ausgabe 16 Bit DE
 +    1141/    F3D0 : 0E 10               SAV14: LD C,16 ;16 Bit
 +    1142/    F3D2 : CB 3A               SAV15: SRL D ;Hi-Bit in Cy schieben
 +    1143/    F3D4 : CB 1B                RR E
 +    1144/    F3D6 : 30 07                JR NC, SAV17 ;Cy=1, wenn Bit=1
 +    1145/    F3D8 :                     ;1-Bit 1 Halbschwingung mit 1280 Hz 
 +    1146/    F3D8 : 06 03                LD B,3
 +    1147/    F3DA : 10 FE               SAV16: DJNZ SAV16
 +    1148/    F3DC : 00                  NOP
 +    1149/    F3DD : 18 03                JR SAV18
 +    1150/    F3DF :                     ;0-Bit 1 Vollschwingung mit 2560 Hz 
 +    1151/    F3DF : CD F1 F3            SAV17: CALL SAV21 ;Flanke ausgeben
 +    1152/    F3E2 : 06 19               SAV18: LD B,19H
 +    1153/    F3E4 : 10 FE               SAV19: DJNZ SAV19
 +    1154/    F3E6 : CD F1 F3            CALL SAV21 ;Flanke ausgeben
 +    1155/    F3E9 : 0D                  DEC C
 +    1156/    F3EA : C8                  RET Z ;wenn fertig
 +    1157/    F3EB : 06 15                LD B,15H
 +    1158/    F3ED : 10 FE               SAV20: DJNZ SAV20
 +    1159/    F3EF : 18 E1                JR SAV15
 +    1160/    F3F1 :                     ;Flanke ausgeben
 +    1161/    F3F1 : DB 02               SAV21: IN A, PIOBD ;Flanke ausgeben
 +    1162/    F3F3 : EE 80                XOR 80H ;durch Bit-Negierung Bit7
 +    1163/    F3F5 : D3 02                OUT PIOBD, A
 +    1164/    F3F7 : C9                  RET
 +    1165/    F3F8 :                     ;
 +    1166/    F3F8 :                     ;-------------------------------------------------------------------------------
 +    1167/    F3F8 :                     ;Laden von Kassette
 +    1168/    F3F8 :                     ;-------------------------------------------------------------------------------
 +    1169/    F3F8 :                     ;
 +    1170/    F3F8 : 2A 1B 00            CLOAD: LD HL,(ARG1)
 +    1171/    F3FB : CD 17 F4            LOA1: CALL LOA3 ;laden 20H Bytes
 +    1172/    F3FE : 28 0C                JR Z, LOA2 ;wenn kein Ladefehler
 +    1173/    F400 : CD A5 F2            CALL PRST7 ;sonst Fehler
 +    1174/    F403 : 43 53                DB "CS"
 +    1175/    F405 : BC                  DB '<'+80h
 +    1176/    F406 : CD 1A F3            CALL OUTHL ;Adresse ausgeben
 +    1177/    F409 : CD CF F5            CALL OUTSP
 +    1178/    F40C : EB                  LOA2: EX DE,HL
 +    1179/    F40D : 2A 1D 00            LD HL,(ARG2)
 +    1180/    F410 : A7                  AND A, A
 +    1181/    F411 : ED 52                SBC HL,DE ;Endadresse erreicht?
 +    1182/    F413 : EB                  EX DE,HL
 +    1183/    F414 : D8                  RET C ;ja --> fertig
 +    1184/    F415 : 18 E4                JR LOA1 ;sonst weiterlesen
 +    1185/    F417 :                     ;20H Bytes laden nach (HL)
 +    1186/    F417 : CD BC F4            LOA3: CALL LOA24 ;synchronisieren
 +    1187/    F41A : CD C6 F4            CALL LOA25 ;Flanke abwarten
 +    1188/    F41D : 0E 07                LD C,7
 +    1189/    F41F : 11 10 09            LOA5: LD DE,0910H ;D=9, E=10h
 +    1190/    F422 : 3E 07                LD A,7
 +    1191/    F424 : 3D                  LOA6: DEC A
 +    1192/    F425 : 20 FD                JR NZ, LOA6
 +    1193/    F427 : CD BC F4            CALL LOA24 ;synchronisieren
 +    1194/    F42A : CD BC F4            LOA7: CALL LOA24 ;Flanke ?
 +    1195/    F42D : 20 E8                JR NZ, LOA3 ;wenn nicht Vorton
 +    1196/    F42F : 15                  DEC D
 +    1197/    F430 : 20 F8                JR NZ, LOA7
 +    1198/    F432 : 0D                  DEC C
 +    1199/    F433 : 28 0C                JR Z, LOA9
 +    1200/    F435 : DB 02               LOA8: IN A, 2
 +    1201/    F437 : A8                  XOR B
 +    1202/    F438 : CB 77                BIT 6,A
 +    1203/    F43A : 20 E3                JR NZ, LOA5
 +    1204/    F43C : 1D                  DEC E
 +    1205/    F43D : 20 F6                JR NZ, LOA8
 +    1206/    F43F : 18 D6                JR LOA3
 +    1207/    F441 :                     ;Synchronisierimpulse lesen
 +    1208/    F441 : CD C6 F4            LOA9: CALL LOA25 ;Flanke abwarten
 +    1209/    F444 : 3E 44                LD A,44H
 +    1210/    F446 : 3D                  LOA10: DEC A
 +    1211/    F447 : 20 FD                JR NZ, LOA10
 +    1212/    F449 : CD BC F4            CALL LOA24 ;Flanke ?
 +    1213/    F44C : 20 F3                JR NZ, LOA9 ;wenn nicht
 +    1214/    F44E : CD C6 F4            CALL LOA25 ;Flanke abwarten
 +    1215/    F451 : 3E 1E                LD A,1EH
 +    1216/    F453 : 3D                  LOA11: DEC A
 +    1217/    F454 : 20 FD                JR NZ, LOA11
 +    1218/    F456 :                     ;2 Bytes Kopf lesen
 +    1219/    F456 : CD 9D F4            CALL LOA19 ;lesen DE
 +    1220/    F459 :                     ;20H Byte Daten lesen
 +    1221/    F459 : 0E 10                LD C,10H ;10H x 2 Bytes
 +    1222/    F45B : D5                  PUSH DE
 +    1223/    F45C : DD E1                POP IX ;IX-Pruefsummenzaehler=
 +    1224/    F45E : 3E 1A                LD A,1AH
 +    1225/    F460 : 3D                  LOA12: DEC A
 +    1226/    F461 : 20 FD                JR NZ, LOA12
 +    1227/    F463 : CD 9D F4            LOA13: CALL LOA19 ;laden DE
 +    1228/    F466 : DD 19                ADD IX,DE ;Pruefsumme bilden
 +    1229/    F468 : C5                  PUSH BC
 +    1230/    F469 : 4D                  LD C,L
 +    1231/    F46A : 44                  LD B,H
 +    1232/    F46B : 2A 1D 00            LD HL,(ARG2)
 +    1233/    F46E : AF                  XOR A
 +    1234/    F46F : ED 42                SBC HL,BC ;Endadresse erreicht?
 +    1235/    F471 : 69                  LD L,C
 +    1236/    F472 : 60                  LD H,B
 +    1237/    F473 : C1                  POP BC
 +    1238/    F474 : 38 05                JR C, LOA14 ;ja --> Leseende
 +    1239/    F476 : 73                  LD (HL),E
 +    1240/    F477 : 23                  INC HL
 +    1241/    F478 : 72                  LD (HL),D
 +    1242/    F479 : 18 06                JR LOA16
 +    1243/    F47B : 3E 01               LOA14: LD A,1
 +    1244/    F47D : 3D                  LOA15: DEC A
 +    1245/    F47E : 20 FD                JR NZ, LOA15
 +    1246/    F480 : 23                  INC HL
 +    1247/    F481 : 23                  LOA16: INC HL
 +    1248/    F482 : 0D                  DEC C
 +    1249/    F483 : 28 07                JR Z, LOA18 ;wenn Blockende
 +    1250/    F485 : 3E 12                LD A,12H
 +    1251/    F487 : 3D                  LOA17: DEC A
 +    1252/    F488 : 20 FD                JR NZ, LOA17
 +    1253/    F48A : 18 D7                JR LOA13 ;naechte 2 Byte
 +    1254/    F48C : 3E 12               LOA18: LD A,12H
 +    1255/    F48E : 3D                  LOA27: DEC A
 +    1256/    F48F : 20 FD                JR NZ, LOA27
 +    1257/    F491 :                     ;Pruefsumme lesen
 +    1258/    F491 : CD 9D F4            CALL LOA19 ;laden DE
 +    1259/    F494 : EB                  EX DE,HL
 +    1260/    F495 : DD E5                PUSH IX
 +    1261/    F497 : C1                  POP BC
 +    1262/    F498 : AF                  XOR A
 +    1263/    F499 : ED 42                SBC HL,BC ;Prüfsumme gleich?
 +    1264/    F49B : EB                  EX DE,HL ;Z=0 Ladefehler
 +    1265/    F49C : C9                  RET
 +    1266/    F49D :                     ;Laden 2 Byte nach DE
 +    1267/    F49D : E5                  LOA19: PUSH HL
 +    1268/    F49E : 2E 10                LD L,10H ;16 Datenbits
 +    1269/    F4A0 : CD BC F4            LOA20: CALL LOA24 ;Flanke ?
 +    1270/    F4A3 : 20 03                JR NZ, LOA21
 +    1271/    F4A5 : AF                  XOR A ;Cy=0
 +    1272/    F4A6 : 18 01                JR LOA22
 +    1273/    F4A8 : 37                  LOA21: SCF
 +    1274/    F4A9 : CB 1A               LOA22: RR D
 +    1275/    F4AB : CB 1B                RR E
 +    1276/    F4AD : CD C6 F4            CALL LOA25 ;Flanke abwarten
 +    1277/    F4B0 : 2D                  DEC L
 +    1278/    F4B1 : 28 07                JR Z, LOA23 ;wenn fertig
 +    1279/    F4B3 : 3E 1E                LD A,1EH
 +    1280/    F4B5 : 3D                  LOA26: DEC A
 +    1281/    F4B6 : 20 FD                JR NZ, LOA26
 +    1282/    F4B8 : 18 E6                JR LOA20
 +    1283/    F4BA : E1                  LOA23: POP HL
 +    1284/    F4BB : C9                  RET
 +    1285/    F4BC :                     ;Portabfrage
 +    1286/    F4BC : DB 02               LOA24: IN A, PIOBD
 +    1287/    F4BE : A8                  XOR B
 +    1288/    F4BF : CB 77                BIT 6,A ;Bit6->TB in
 +    1289/    F4C1 : F5                  PUSH AF
 +    1290/    F4C2 : A8                  XOR B
 +    1291/    F4C3 : 47                  LD B,A
 +    1292/    F4C4 : F1                  POP AF ;Z=0 --> Flanke
 +    1293/    F4C5 : C9                  RET
 +    1294/    F4C6 :                     ;Warten auf Flankenwechsel
 +    1295/    F4C6 : DB 02               LOA25: IN A, PIOBD
 +    1296/    F4C8 : A8                  XOR B
 +    1297/    F4C9 : CB 77                BIT 6,A ;Bit6->TB in
 +    1298/    F4CB : 28 F9                JR Z, LOA25
 +    1299/    F4CD : C9                  RET
 +    1300/    F4CE :                     ;
 +    1301/    F4CE :                     ;-------------------------------------------------------------------------------
 +    1302/    F4CE :                     ;Speicherinhalt mit Checksumme anzeigen
 +    1303/    F4CE :                     ;-------------------------------------------------------------------------------
 +    1304/    F4CE :                     ;
 +    1305/    F4CE : 2A 1B 00            D_KDO: LD HL,(ARG1)
 +    1306/    F4D1 : ED 5B 1D 00         DKO1: LD DE,(ARG2)
 +    1307/    F4D5 : 37                  SCF
 +    1308/    F4D6 : E5                  PUSH HL
 +    1309/    F4D7 : ED 52                SBC HL,DE
 +    1310/    F4D9 : E1                  POP HL
 +    1311/    F4DA : D0                  RET NC ;wenn EADR<AADR
 +    1312/    F4DB : (MACRO)              ROTHL
 +    1312/    F4DB : E7                          RST     20H
 +    1312/    F4DC : 07                          DB      07h                     ; OUTHL
 +    1313/    F4DD : 01 00 08            LD BC,0800H ;B=8
 +    1314/    F4E0 : 1E 00                LD E,0 ;EC=0 - Checksumme
 +    1315/    F4E2 : (MACRO)             DKO2: RPRST
 +    1315/    F4E2 : E7                          RST     20H
 +    1315/    F4E3 : 02                          DB      02h                     ; PRST
 +    1316/    F4E4 : A0                  DB ' '+80H
 +    1317/    F4E5 : 7E                  LD A,(HL)
 +    1318/    F4E6 : (MACRO)              ROTHX
 +    1318/    F4E6 : E7                          RST     20H
 +    1318/    F4E7 : 06                          DB      06h                     ; OUTHX
 +    1319/    F4E8 : 81                  ADD A, C ;Checksumme bilden
 +    1320/    F4E9 : 4F                  LD C,A
 +    1321/    F4EA : 30 04                JR NC, DKO3
 +    1322/    F4EC : 3E 00                LD A,0
 +    1323/    F4EE : 8B                  ADC A, E
 +    1324/    F4EF : 5F                  LD E,A
 +    1325/    F4F0 : 23                  DKO3: INC HL
 +    1326/    F4F1 : 10 EF                DJNZ DKO2
 +    1327/    F4F3 : (MACRO)              RPRST
 +    1327/    F4F3 : E7                          RST     20H
 +    1327/    F4F4 : 02                          DB      02h                     ; PRST
 +    1328/    F4F5 : A0                  DB ' '+80H
 +    1329/    F4F6 : 7B                  LD A,E
 +    1330/    F4F7 : CD 0A F3            CALL OUX1 ;Checksumme ausgeben
 +    1331/    F4FA : 79                  LD A,C
 +    1332/    F4FB : (MACRO)              ROTHX
 +    1332/    F4FB : E7                          RST     20H
 +    1332/    F4FC : 06                          DB      06h                     ; OUTHX
 +    1333/    F4FD : 18 D2                JR DKO1
 +    1334/    F4FF :                     ;
 +    1335/    F4FF :                     ;-------------------------------------------------------------------------------
 +    1336/    F4FF :                     ;Argumente uebergeben
 +    1337/    F4FF :                     ;-------------------------------------------------------------------------------
 +    1338/    F4FF :                     ;
 +    1339/    F4FF : 2A 1B 00            PARA: LD HL,(ARG1)
 +    1340/    F502 : ED 5B 1D 00          LD DE,(ARG2)
 +    1341/    F506 : ED 4B 23 00          LD BC,(ARG3)
 +    1342/    F50A : C9                  RET
 +    1343/    F50B :                     ;
 +    1344/    F50B :                     ;-------------------------------------------------------------------------------
 +    1345/    F50B :                     ;Speicherbereich mit Byte beschreiben
 +    1346/    F50B :                     ;-------------------------------------------------------------------------------
 +    1347/    F50B :                     ;
 +    1348/    F50B : CD FF F4            K_KDO: CALL PARA
 +    1349/    F50E : 71                  LD (HL),C ;C=Fuellbyte
 +    1350/    F50F : E5                  PUSH HL
 +    1351/    F510 : AF                  XOR A
 +    1352/    F511 : EB                  EX DE,HL
 +    1353/    F512 : ED 52                SBC HL,DE
 +    1354/    F514 : 44                  LD B,H
 +    1355/    F515 : 4D                  LD C,L ;BC=Laenge
 +    1356/    F516 : E1                  POP HL
 +    1357/    F517 : 54                  LD D,H
 +    1358/    F518 : 5D                  LD E,L
 +    1359/    F519 : 13                  INC DE
 +    1360/    F51A : ED B0                LDIR
 +    1361/    F51C : C9                  RET
 +    1362/    F51D :                     ;
 +    1363/    F51D :                     ;-------------------------------------------------------------------------------
 +    1364/    F51D :                     ;Speicherbereich verschieben
 +    1365/    F51D :                     ;-------------------------------------------------------------------------------
 +    1366/    F51D :                     ;
 +    1367/    F51D : CD FF F4            T_KDO: CALL PARA
 +    1368/    F520 : AF                  XOR A
 +    1369/    F521 : E5                  PUSH HL
 +    1370/    F522 : ED 52                SBC HL,DE
 +    1371/    F524 : E1                  POP HL
 +    1372/    F525 : 38 03                JR C, TKO1 ;wenn Zieladr. groesser
 +    1373/    F527 : ED B0                LDIR ;Vorwaertstransfer
 +    1374/    F529 : C9                  RET
 +    1375/    F52A : 09                  TKO1: ADD HL,BC
 +    1376/    F52B : EB                  EX DE,HL
 +    1377/    F52C : 09                  ADD HL,BC
 +    1378/    F52D : EB                  EX DE,HL
 +    1379/    F52E : 2B                  DEC HL
 +    1380/    F52F : 1B                  DEC DE
 +    1381/    F530 : ED B8                LDDR ;Rueckwaertstransfer
 +    1382/    F532 : C9                  RET
 +    1383/    F533 :                     ;
 +    1384/    F533 :                     ;-------------------------------------------------------------------------------
 +    1385/    F533 :                     ;Debugging-Funktionen
 +    1386/    F533 :                     ;-------------------------------------------------------------------------------
 +    1387/    F533 :                     ;
 +    1388/    F533 :                     ;Register im Registerrettebereich ablegen
 +    1389/    F533 :                     ;
 +    1390/    F533 : ED 73 13 00         REGA: LD (DATA),SP
 +    1391/    F537 : 31 61 00            LD SP,REGPC
 +    1392/    F53A : DD E5                PUSH IX
 +    1393/    F53C : FD E5                PUSH IY
 +    1394/    F53E : F5                  PUSH AF
 +    1395/    F53F : C5                  PUSH BC
 +    1396/    F540 : D5                  PUSH DE
 +    1397/    F541 : E5                  PUSH HL
 +    1398/    F542 : D9                  EXX
 +    1399/    F543 : 08                  EX AF, AF'
 +    1400/    F544 : F5                  PUSH AF
 +    1401/    F545 : C5                  PUSH BC
 +    1402/    F546 : D5                  PUSH DE
 +    1403/    F547 : E5                  PUSH HL
 +    1404/    F548 : 18 15                JR REG1
 +    1405/    F54A :                     ;Register aus Registerrettebereich holen
 +    1406/    F54A : ED 73 13 00         REGH: LD (DATA),SP
 +    1407/    F54E : 31 4D 00            LD SP,REGBR
 +    1408/    F551 : E1                  POP HL
 +    1409/    F552 : D1                  POP DE
 +    1410/    F553 : C1                  POP BC
 +    1411/    F554 : F1                  POP AF
 +    1412/    F555 : D9                  EXX
 +    1413/    F556 : 08                  EX AF, AF'
 +    1414/    F557 : E1                  POP HL
 +    1415/    F558 : D1                  POP DE
 +    1416/    F559 : C1                  POP BC
 +    1417/    F55A : F1                  POP AF
 +    1418/    F55B : FD E1                POP IY
 +    1419/    F55D : DD E1                POP IX
 +    1420/    F55F : ED 7B 13 00         REG1: LD SP,(DATA)
 +    1421/    F563 : C9                  RET
 +    1422/    F564 :                     ;
 +    1423/    F564 :                     ;Einsprung bei Breakpoint
 +    1424/    F564 :                     ;
 +    1425/    F564 : CD 33 F5            BREAK: CALL REGA ;Register ablegen
 +    1426/    F567 : E1                  POP HL ;HL=Breakadr.+3
 +    1427/    F568 : ED 73 63 00          LD (REGSP),SP ;SP sichern
 +    1428/    F56C : 31 B0 00            LD SP,SYSSK ;Systemstack nutzen
 +    1429/    F56F : 2B                  DEC HL
 +    1430/    F570 : 2B                  DEC HL
 +    1431/    F571 : 2B                  DEC HL
 +    1432/    F572 : 22 61 00            LD (REGPC),HL ;Breakadresse
 +    1433/    F575 : ED 5B 0B 00          LD DE,(BPADR) ;die originalen 3 Byte
 +    1434/    F579 : 21 0D 00            LD HL,BPOPC ;Operanden zurueckbringen
 +    1435/    F57C : 01 03 00            LD BC,3
 +    1436/    F57F : ED B0                LDIR
 +    1437/    F581 : CD E4 F5            CALL REGDA
 +    1438/    F584 : C3 5F F0            JP KDO2
 +    1439/    F587 :                     ;
 +    1440/    F587 :                     ;-------------------------------------------------------------------------------
 +    1441/    F587 :                     ;Breakpoint-Adresse setzen
 +    1442/    F587 :                     ;-------------------------------------------------------------------------------
 +    1443/    F587 :                     ;
 +    1444/    F587 : 2A 1B 00            B_KDO: LD HL,(ARG1)
 +    1445/    F58A : 22 0B 00            LD (BPADR),HL
 +    1446/    F58D : 11 0D 00            LD DE,BPOPC ;3 Byte Operanden
 +    1447/    F590 : 01 03 00            LD BC,3 ;retten
 +    1448/    F593 : ED B0                LDIR
 +    1449/    F595 : CD E4 F5            CALL REGDA ;Register anzeigen
 +    1450/    F598 : C9                  RET
 +    1451/    F599 :                     ;
 +    1452/    F599 :                     ;-------------------------------------------------------------------------------
 +    1453/    F599 :                     ;Programm starten mit Breakpoint
 +    1454/    F599 :                     ;-------------------------------------------------------------------------------
 +    1455/    F599 :                     ;
 +    1456/    F599 : 2A 0B 00            E_KDO: LD HL,(BPADR)
 +    1457/    F59C : 36 CD                LD (HL),0CDH ;CALL ...
 +    1458/    F59E : 23                  INC HL
 +    1459/    F59F : 11 64 F5            LD DE,BREAK ;an Breakpoint Unter-
 +    1460/    F5A2 : 73                  LD (HL),E ;Brechung zu BREAK eintragen
 +    1461/    F5A3 : 23                  INC HL
 +    1462/    F5A4 : 72                  LD (HL),D
 +    1463/    F5A5 :                     ;
 +    1464/    F5A5 :                     ;-------------------------------------------------------------------------------
 +    1465/    F5A5 :                     ;Programm starten
 +    1466/    F5A5 :                     ;-------------------------------------------------------------------------------
 +    1467/    F5A5 :                     ;
 +    1468/    F5A5 : 2A 1B 00            J_KDO: LD HL,(ARG1) ;Startadresse
 +    1469/    F5A8 : 22 61 00            LD (REGPC),HL ;zwischenspeichern
 +    1470/    F5AB : ED 7B 63 00          LD SP,(REGSP) ;Stack generieren
 +    1471/    F5AF : E5                  PUSH HL ;Startadresse in Stack
 +    1472/    F5B0 : C3 4A F5            JP REGH ;Register holen
 +    1473/    F5B3 :                      ;und Pgm. durch RET starten
 +    1474/    F5B3 :                     ;
 +    1475/    F5B3 :                     ;-------------------------------------------------------------------------------
 +    1476/    F5B3 :                     ;Programm nach Break fortsetzen
 +    1477/    F5B3 :                     ;-------------------------------------------------------------------------------
 +    1478/    F5B3 :                     ;
 +    1479/    F5B3 : 2A 61 00            G_KDO: LD HL,(REGPC)
 +    1480/    F5B6 : 22 1B 00            LD (ARG1),HL
 +    1481/    F5B9 : ED 5B 0B 00          LD DE,(BPADR)
 +    1482/    F5BD : AF                  XOR A ;Cy=0
 +    1483/    F5BE : ED 52                SBC HL,DE
 +    1484/    F5C0 : 20 D7                JR NZ, E_KDO ;wenn nicht Breakpoint
 +    1485/    F5C2 : 18 E1                JR J_KDO ;starten
 +    1486/    F5C4 :                     ;
 +    1487/    F5C4 :                     ;-------------------------------------------------------------------------------
 +    1488/    F5C4 :                     ;Ausgabe eines Doppelpunktes und (HL) und Leerzeichen
 +    1489/    F5C4 :                     ;-------------------------------------------------------------------------------
 +    1490/    F5C4 :                     ;
 +    1491/    F5C4 : (MACRO)             OUTDP: RPRST
 +    1491/    F5C4 : E7                          RST     20H
 +    1491/    F5C5 : 02                          DB      02h                     ; PRST
 +    1492/    F5C6 : BA                  DB ':'+80H
 +    1493/    F5C7 :                     ;
 +    1494/    F5C7 :                     ;-------------------------------------------------------------------------------
 +    1495/    F5C7 :                     ;Ausgabe hex 2 Byte Speicher (HL) und (HL-1)
 +    1496/    F5C7 :                     ;und ein Leerzeichen
 +    1497/    F5C7 :                     ;-------------------------------------------------------------------------------
 +    1498/    F5C7 :                     ;
 +    1499/    F5C7 : 7E                  OTHLS: LD A,(HL) ;hoeherwertiges Byte
 +    1500/    F5C8 : (MACRO)              ROTHX ;ausgeben
 +    1500/    F5C8 : E7                          RST     20H
 +    1500/    F5C9 : 06                          DB      06h                     ; OUTHX
 +    1501/    F5CA : 2B                  DEC HL
 +    1502/    F5CB : 7E                  LD A,(HL) ;niederwertiges Byte
 +    1503/    F5CC : (MACRO)              ROTHX ;ausgeben
 +    1503/    F5CC : E7                          RST     20H
 +    1503/    F5CD : 06                          DB      06h                     ; OUTHX
 +    1504/    F5CE : 2B                  DEC HL ;naechsten Aufruf vorbereiten
 +    1505/    F5CF :                     ;
 +    1506/    F5CF :                     ;-------------------------------------------------------------------------------
 +    1507/    F5CF :                     ;Ausgabe ein Leerzeichen
 +    1508/    F5CF :                     ;-------------------------------------------------------------------------------
 +    1509/    F5CF :                     ;
 +    1510/    F5CF : (MACRO)             OUTSP: RPRST
 +    1510/    F5CF : E7                          RST     20H
 +    1510/    F5D0 : 02                          DB      02h                     ; PRST
 +    1511/    F5D1 : A0                  DB ' '+80H
 +    1512/    F5D2 : C9                  RET
 +    1513/    F5D3 :                     ;
 +    1514/    F5D3 :                     ;-------------------------------------------------------------------------------
 +    1515/    F5D3 :                     ;Registermodifizerung und -anzeige
 +    1516/    F5D3 :                     ;-------------------------------------------------------------------------------
 +    1517/    F5D3 :                     ;
 +    1518/    F5D3 :                     ;Z-Flag-Anzeige
 +    1519/    F5D3 :                     ;
 +    1520/    F5D3 : (MACRO)             AUS1: RPRST ;Ausg. "1 "
 +    1520/    F5D3 : E7                          RST     20H
 +    1520/    F5D4 : 02                          DB      02h                     ; PRST
 +    1521/    F5D5 : 31                  DB "1"
 +    1522/    F5D6 : A0                  DB ' '+80H
 +    1523/    F5D7 : C9                  RET
 +    1524/    F5D8 : 20 F9               AUSX: JR NZ, AUS1
 +    1525/    F5DA : (MACRO)              RPRST ;Ausg. "0 "
 +    1525/    F5DA : E7                          RST     20H
 +    1525/    F5DB : 02                          DB      02h                     ; PRST
 +    1526/    F5DC : 30                  DB "0"
 +    1527/    F5DD : A0                  DB ' '+80H
 +    1528/    F5DE : C9                  RET
 +    1529/    F5DF :                     ;
 +    1530/    F5DF :                     ; R-Kommando
 +    1531/    F5DF :                     ;
 +    1532/    F5DF : FE 3A               R_KDO: CP A, ':'
 +    1533/    F5E1 : C2 5A F6            JP NZ, RKO3 ;wenn Modifizierung
 +    1534/    F5E4 :                     ;
 +    1535/    F5E4 : (MACRO)             REGDA: RPRST ;Anzeige Breakpointadresse
 +    1535/    F5E4 : E7                          RST     20H
 +    1535/    F5E5 : 02                          DB      02h                     ; PRST
 +    1536/    F5E6 : 0D                  DB CR
 +    1537/    F5E7 : 42                  DB "B" ;"BP"
 +    1538/    F5E8 : D0                  DB 'P'+80H
 +    1539/    F5E9 : 21 0C 00            LD HL,BPADR+1
 +    1540/    F5EC : (MACRO)              ROTDP
 +    1540/    F5EC : E7                          RST     20H
 +    1540/    F5ED : 0D                          DB      0Dh                     ; OUTDP
 +    1541/    F5EE : (MACRO)              RPRST ;Ausgabe Operandenfolge
 +    1541/    F5EE : E7                          RST     20H
 +    1541/    F5EF : 02                          DB      02h                     ; PRST
 +    1542/    F5F0 : 42 53                DB "BS" ;am Breakpoint
 +    1543/    F5F2 : BA                  DB ':'+80H
 +    1544/    F5F3 : 06 03                LD B,3 ;3 Byte
 +    1545/    F5F5 : 21 0D 00            LD HL,BPOPC
 +    1546/    F5F8 : 7E                  RKO1: LD A,(HL)
 +    1547/    F5F9 : (MACRO)              ROTHX
 +    1547/    F5F9 : E7                          RST     20H
 +    1547/    F5FA : 06                          DB      06h                     ; OUTHX
 +    1548/    F5FB : 23                  INC HL
 +    1549/    F5FC : 10 FA                DJNZ RKO1
 +    1550/    F5FE :                     ;
 +    1551/    F5FE : (MACRO)              RPRST ;Flaganzeige
 +    1551/    F5FE : E7                          RST     20H
 +    1551/    F5FF : 02                          DB      02h                     ; PRST
 +    1552/    F600 : 20 20 20 53 20 5A    DB "   S Z C"
 +                    20 43 
 +    1553/    F608 : A0                  DB ' '+80H
 +    1554/    F609 : 3A 5B 00            LD A,(REGAF) ;A-Flagregister
 +    1555/    F60C : 6F                  LD L,A
 +    1556/    F60D : CB 7D                BIT 7,L ;S-Flag
 +    1557/    F60F : CD D8 F5            CALL AUSX
 +    1558/    F612 : CB 75                BIT 6,L ;Z-Flag
 +    1559/    F614 : CD D8 F5            CALL AUSX
 +    1560/    F617 : CB 45                BIT 0,L ;Cy-Flag
 +    1561/    F619 : CD D8 F5            CALL AUSX
 +    1562/    F61C :                     ;
 +    1563/    F61C : 21 64 00            LD HL,REGSP+1 ;Sonderregister-anzeige
 +    1564/    F61F : 06 02                LD B,2 ;2 Registersaetze
 +    1565/    F621 : (MACRO)              RPRST
 +    1565/    F621 : E7                          RST     20H
 +    1565/    F622 : 02                          DB      02h                     ; PRST
 +    1566/    F623 : 53                  RKO2: DB "S"
 +    1567/    F624 : D0                  DB 'P'+80H
 +    1568/    F625 : (MACRO)              ROTDP
 +    1568/    F625 : E7                          RST     20H
 +    1568/    F626 : 0D                          DB      0Dh                     ; OUTDP
 +    1569/    F627 : (MACRO)              RPRST
 +    1569/    F627 : E7                          RST     20H
 +    1569/    F628 : 02                          DB      02h                     ; PRST
 +    1570/    F629 : 50                  DB "P"
 +    1571/    F62A : C3                  DB 'C'+80H
 +    1572/    F62B : (MACRO)              ROTDP
 +    1572/    F62B : E7                          RST     20H
 +    1572/    F62C : 0D                          DB      0Dh                     ; OUTDP
 +    1573/    F62D : (MACRO)              RPRST
 +    1573/    F62D : E7                          RST     20H
 +    1573/    F62E : 02                          DB      02h                     ; PRST
 +    1574/    F62F : 49                  DB "I"
 +    1575/    F630 : D8                  DB 'X'+80H
 +    1576/    F631 : (MACRO)              ROTDP
 +    1576/    F631 : E7                          RST     20H
 +    1576/    F632 : 0D                          DB      0Dh                     ; OUTDP
 +    1577/    F633 : (MACRO)              RPRST
 +    1577/    F633 : E7                          RST     20H
 +    1577/    F634 : 02                          DB      02h                     ; PRST
 +    1578/    F635 : 49                  DB "I"
 +    1579/    F636 : D9                  DB 'Y'+80H
 +    1580/    F637 : (MACRO)              ROTDP
 +    1580/    F637 : E7                          RST     20H
 +    1580/    F638 : 0D                          DB      0Dh                     ; OUTDP
 +    1581/    F639 :                     ;
 +    1582/    F639 : (MACRO)             RKO4: RPRST ;Registersatz anzeigen
 +    1582/    F639 : E7                          RST     20H
 +    1582/    F63A : 02                          DB      02h                     ; PRST
 +    1583/    F63B : 41                  DB "A"
 +    1584/    F63C : C6                  DB 'F'+80H
 +    1585/    F63D : (MACRO)              ROTDP
 +    1585/    F63D : E7                          RST     20H
 +    1585/    F63E : 0D                          DB      0Dh                     ; OUTDP
 +    1586/    F63F : (MACRO)              RPRST
 +    1586/    F63F : E7                          RST     20H
 +    1586/    F640 : 02                          DB      02h                     ; PRST
 +    1587/    F641 : 42                  DB "B"
 +    1588/    F642 : C3                  DB 'C'+80H
 +    1589/    F643 : (MACRO)              ROTDP
 +    1589/    F643 : E7                          RST     20H
 +    1589/    F644 : 0D                          DB      0Dh                     ; OUTDP
 +    1590/    F645 : (MACRO)              RPRST
 +    1590/    F645 : E7                          RST     20H
 +    1590/    F646 : 02                          DB      02h                     ; PRST
 +    1591/    F647 : 44                  DB "D"
 +    1592/    F648 : C5                  DB 'E'+80H
 +    1593/    F649 : (MACRO)              ROTDP
 +    1593/    F649 : E7                          RST     20H
 +    1593/    F64A : 0D                          DB      0Dh                     ; OUTDP
 +    1594/    F64B : (MACRO)              RPRST
 +    1594/    F64B : E7                          RST     20H
 +    1594/    F64C : 02                          DB      02h                     ; PRST
 +    1595/    F64D : 48                  DB "H"
 +    1596/    F64E : CC                  DB 'L'+80H
 +    1597/    F64F : (MACRO)              ROTDP
 +    1597/    F64F : E7                          RST     20H
 +    1597/    F650 : 0D                          DB      0Dh                     ; OUTDP
 +    1598/    F651 : 10 E6                DJNZ RKO4
 +    1599/    F653 :                     ;
 +    1600/    F653 : 2A 2B 00            LD HL,(CUPOS) ;2. Satz als Schatten-
 +    1601/    F656 : 2B                  DEC HL ;register markieren:
 +    1602/    F657 : 36 27                LD (HL),27H ;"'"
 +    1603/    F659 : C9                  RET
 +    1604/    F65A :                     ;
 +    1605/    F65A : 01 00 04            RKO3: LD BC,0400H ;B=4, C-Registernummer
 +    1606/    F65D : 2A 16 00            LD HL,(SOIL)
 +    1607/    F660 : 23                  INC HL
 +    1608/    F661 : 23                  INC HL
 +    1609/    F662 : 11 23 F6            LD DE,RKO2
 +    1610/    F665 : 1A                  RKO5: LD A,(DE) ;Vergleich Registereingabe
 +    1611/    F666 : BE                  CP A, (HL) ;mit allen Registern
 +    1612/    F667 : 28 17                JR Z, RKO8 ;wenn gefunden
 +    1613/    F669 : 13                  INC DE
 +    1614/    F66A : E5                  RKO6: PUSH HL
 +    1615/    F66B : 21 05 00            LD HL,5
 +    1616/    F66E : 19                  ADD HL,DE
 +    1617/    F66F : EB                  EX DE,HL ;naechster Reg.name
 +    1618/    F670 : E1                  POP HL
 +    1619/    F671 : 0C                  INC C ;C-Registernummer
 +    1620/    F672 : 10 F1                DJNZ RKO5
 +    1621/    F674 : 06 04                LD B,4
 +    1622/    F676 : 79                  LD A,C
 +    1623/    F677 : FE 08                CP A, 8
 +    1624/    F679 : 20 EA                JR NZ, RKO5 ;weitersuchen
 +    1625/    F67B : F1                  POP AF ;sonst falsche Eingabe
 +    1626/    F67C : FF                  RST 38H ;--> zum KDO-Monitor
 +    1627/    F67D :                     ;
 +    1628/    F67D : 2B                  RKO7: DEC HL ;weitersuchen
 +    1629/    F67E : 18 EA                JR RKO6
 +    1630/    F680 :                     ;
 +    1631/    F680 : 13                  RKO8: INC DE ;Ueberpruefen zweiter
 +    1632/    F681 : 23                  INC HL ;Buchstabe
 +    1633/    F682 : 1A                  LD A,(DE)
 +    1634/    F683 : E6 7F                AND A, 7FH
 +    1635/    F685 : BE                  CP A, (HL)
 +    1636/    F686 : 20 F5                JR NZ, RKO7 ;wenn ungleich
 +    1637/    F688 : 23                  INC HL
 +    1638/    F689 : 7E                  LD A,(HL) ;Schattenregister ?
 +    1639/    F68A : FE 27                CP A, 27H ;"'"
 +    1640/    F68C : 79                  LD A,C
 +    1641/    F68D : 20 02                JR NZ, RKO9 ;wenn nicht
 +    1642/    F68F : C6 04                ADD A, 4
 +    1643/    F691 : CB 27               RKO9: SLA A
 +    1644/    F693 : 4F                  LD C,A
 +    1645/    F694 : 06 00                LD B,0
 +    1646/    F696 : 21 64 00            LD HL,REGSP+1
 +    1647/    F699 : ED 42                SBC HL,BC
 +    1648/    F69B : 44                  LD B,H ;HL=Adresse im
 +    1649/    F69C : 4D                  LD C,L ;Registerrettebereich
 +    1650/    F69D : (MACRO)              ROTHS ;Ausgabe Wert
 +    1650/    F69D : E7                          RST     20H
 +    1650/    F69E : 0C                          DB      0Ch                     ; OTHLS
 +    1651/    F69F : CD B3 F2            CALL INLIN ;Eingabe neuer Wert
 +    1652/    F6A2 : ED 5B 16 00          LD DE,(SOIL)
 +    1653/    F6A6 : CD F4 F2            CALL INHEX ;HL=neuer Wert
 +    1654/    F6A9 : 20 04                JR NZ, RKO10 ;wenn alles ok
 +    1655/    F6AB : 1A                  LD A,(DE) ;keine Zahl, vielleicht
 +    1656/    F6AC : FE 3B                CP A, ';' ;Abbruch ?
 +    1657/    F6AE : C8                  RET Z
 +    1658/    F6AF :                     ;
 +    1659/    F6AF : EB                  RKO10: EX DE,HL
 +    1660/    F6B0 : C5                  PUSH BC
 +    1661/    F6B1 : E1                  POP HL ;Adr. im Reg.rettebereich
 +    1662/    F6B2 : 72                  LD (HL),D ;neuen Wert eintragen
 +    1663/    F6B3 : 2B                  DEC HL
 +    1664/    F6B4 : 73                  LD (HL),E
 +    1665/    F6B5 : C3 E4 F5            JP REGDA ;Registeranzeige
 +    1666/    F6B8 :                     
 +    1667/    F6B8 : =>TRUE              IF MONTYP == "Z1013_202"
 +    1668/    F6B8 :                     ;
 +    1669/    F6B8 :                     ;-------------------------------------------------------------------------------
 +    1670/    F6B8 :                     ;Hex-Umschaltung
 +    1671/    F6B8 :                     ;-------------------------------------------------------------------------------
 +    1672/    F6B8 :                     ;
 +    1673/    F6B8 : 21 48 50            H_KDO: ld hl,5048h ;Aenderung der Tastaturcodetab.
 +    1674/    F6BB : 22 42 00            ld (LSYNC+15),hl ;Shift-Ebene 1, Zeile 2 und 3
 +    1675/    F6BE : 21 30 38            ld hl,3830h ;vertauschen mit
 +    1676/    F6C1 : 22 45 00            ld (LSYNC+18),hl ;Shift-Ebene 0, Zeile 2 und 3
 +    1677/    F6C4 : C9                  RET
 +    1678/    F6C5 :                     ;
 +    1679/    F6C5 :                     ;-------------------------------------------------------------------------------
 +    1680/    F6C5 :                     ;ASCII-Umschaltung
 +    1681/    F6C5 :                     ;-------------------------------------------------------------------------------
 +    1682/    F6C5 :                     ;
 +    1683/    F6C5 : 21 F4 F1            A_KDO: ld hl,MONTB+2 ;Laden der alten
 +    1684/    F6C8 : 11 35 00            ld de,LSYNC+2 ;Tastaturcodetab.
 +    1685/    F6CB : 01 12 00            ld bc,12h
 +    1686/    F6CE : ED B0                ldir
 +    1687/    F6D0 : C9                  RET
 +    1688/    F6D1 :                     
 +    1689/    F6D1 : [1667]              ENDIF
 +    1690/    F6D1 :                     ;
 +    1691/    F6D1 :                     ;-------------------------------------------------------------------------------
 +    1692/    F6D1 :                     ;Window definieren
 +    1693/    F6D1 :                     ;-------------------------------------------------------------------------------
 +    1694/    F6D1 :                     ;
 +    1695/    F6D1 : CD ED F6            W_KDO: CALL WKO1 ;Kontrolle Parameter
 +    1696/    F6D4 : 38 4C                JR C, WKO3 ;wenn Fehleingabe
 +    1697/    F6D6 : 22 47 00            LD (WINDL),HL ;neue Werte eintragen
 +    1698/    F6D9 : ED 43 49 00          LD (WINDA),BC
 +    1699/    F6DD : 2A 1D 00            LD HL,(ARG2)
 +    1700/    F6E0 : 22 4B 00            LD (WINDE),HL
 +    1701/    F6E3 : 2A 2B 00            LD HL,(CUPOS) ;Cursor loeschen
 +    1702/    F6E6 : 36 20                LD (HL),' '
 +    1703/    F6E8 : ED 43 2B 00          LD (CUPOS),BC ;Cursor home
 +    1704/    F6EC : C9                  RET
 +    1705/    F6ED :                     ;
 +    1706/    F6ED : 3A 1C 00            WKO1: LD A,(ARG1+1)
 +    1707/    F6F0 : FE EC                CP A, hi(BWS) ;innerhalb BWS ?
 +    1708/    F6F2 : D8                  RET C ;nein
 +    1709/    F6F3 : 3A 1B 00            LD A,(ARG1) ;WINDOW-Anfang
 +    1710/    F6F6 : E6 E0                AND A, 0E0H ;auf Zeilenanfang stellen
 +    1711/    F6F8 : 32 1B 00            LD (ARG1),A
 +    1712/    F6FB : 3A 1D 00            LD A,(ARG2) ;ebenso WINDOW-Ende
 +    1713/    F6FE : E6 E0                AND A, 0E0H ;auf Zeilenanfang stellen
 +    1714/    F700 : 32 1D 00            LD (ARG2),A
 +    1715/    F703 : 2A 1D 00            LD HL,(ARG2)
 +    1716/    F706 : ED 4B 1B 00          LD BC,(ARG1)
 +    1717/    F70A : ED 42                SBC HL,BC
 +    1718/    F70C : D8                  RET C ;Endadresse zu klein
 +    1719/    F70D : 28 11                JR Z, WKO2 ;kein Window --> Fehler
 +    1720/    F70F : 2B                  DEC HL
 +    1721/    F710 : 3E 03                LD A,3 ;WINDOW zu gross ?
 +    1722/    F712 : BC                  CP A, H
 +    1723/    F713 : D8                  RET C ;ja
 +    1724/    F714 : 23                  INC HL
 +    1725/    F715 : 11 40 00            LD DE,2*BWSCOL
 +    1726/    F718 : ED 52                SBC HL,DE
 +    1727/    F71A : D8                  RET C ;wenn WINDOW zu klein
 +    1728/    F71B : 11 20 00            LD DE,BWSCOL
 +    1729/    F71E : 19                  ADD HL,DE
 +    1730/    F71F : C9                  RET
 +    1731/    F720 :                     ;
 +    1732/    F720 : 37                  WKO2: SCF
 +    1733/    F721 : C9                  RET
 +    1734/    F722 :                     ;
 +    1735/    F722 : F1                  WKO3: POP AF
 +    1736/    F723 : FF                  RST 38H
 +    1737/    F724 :                     ;
 +    1738/    F724 :                     ;-------------------------------------------------------------------------------
 +    1739/    F724 :                     ;NEXT-Kommando, Step-Betrieb
 +    1740/    F724 :                     ;-------------------------------------------------------------------------------
 +    1741/    F724 :                     ;
 +    1742/    F724 :                     ;Initialisierungstabelle fuer PIO bei NEXT
 +    1743/    F724 :                     ;PIO B5 => AB0 in
 +    1744/    F724 :                     ;
 +    1745/    F724 : FE                  NKTA: DB Lo(NINTA) ;Interruptvektor Low Byte
 +    1746/    F725 : 97                  DB 10010111b ;Interruptsteuerwort, EI, Low-aktiv, Mask folgt
 +    1747/    F726 : DF                  DB 11011111b ;Interruptmaske Bit5 aktiv
 +    1748/    F727 :                     ;
 +    1749/    F727 :                     ;NEXT-Kommando
 +    1750/    F727 :                     ;
 +    1751/    F727 : 3E F7               N_KDO: LD A,Hi(NINTA)
 +    1752/    F729 : ED 47                LD I,A ;Interruptvektor
 +    1753/    F72B : F3                  DI
 +    1754/    F72C : 21 24 F7            LD HL,NKTA ;Initialisieren PIO Port B
 +    1755/    F72F : 01 03 03            LD BC,0303H ;3 Bytes, Port PIOBC
 +    1756/    F732 : ED B3                OTIR ;loest selbstaendig INT aus
 +    1757/    F734 : 2A 0B 00            LD HL,(BPADR) ;Byte vor Breakadr.(!)
 +    1758/    F737 : 2B                  DEC HL ;wird EI
 +    1759/    F738 : 7E                  LD A,(HL)
 +    1760/    F739 : 32 69 00            LD (NBYTE),A ;Byte retten
 +    1761/    F73C : 36 FB                LD (HL),0FBH ;Code EI einschreiben
 +    1762/    F73E : ED 73 6A 00          LD (SPADR),SP
 +    1763/    F742 : ED 7B 63 00          LD SP,(REGSP)
 +    1764/    F746 : E5                  PUSH HL ;Adr. mit EI-Befehl
 +    1765/    F747 : C3 4A F5            JP REGH ;Register holen und Start
 +    1766/    F74A :                     ;Die PIO generiert bereits beim OTIR eine Interruptanforderung, da dabei AB0 => 0.
 +    1767/    F74A :                     ;Sobald EI und nachfolgender Befehl ausgeführt wird, wird der Interrupt angenommen
 +    1768/    F74A :                     ;und nachfolgende Routine über Inhalt der Adr. NINTA angesprungen (da IM 2)
 +    1769/    F74A :                     ;
 +    1770/    F74A :                     ;Eingang bei Interrupt
 +    1771/    F74A : F3                  NINTR: DI
 +    1772/    F74B : CD 33 F5            CALL REGA ;Register retten
 +    1773/    F74E : 3E 07                LD A,00000111b ;Interrupt von PIO
 +    1774/    F750 : D3 03                OUT PIOBC, A ;verbieten
 +    1775/    F752 : 2A 0B 00            LD HL,(BPADR) ;EI-Befehl durch Original-
 +    1776/    F755 : 2B                  DEC HL ;Byte ersetzen
 +    1777/    F756 : 3A 69 00            LD A,(NBYTE)
 +    1778/    F759 : 77                  LD (HL),A
 +    1779/    F75A : E1                  POP HL
 +    1780/    F75B : 22 0B 00            LD (BPADR),HL ;neue Breakadresse
 +    1781/    F75E : 22 61 00            LD (REGPC),HL
 +    1782/    F761 : ED 73 63 00          LD (REGSP),SP
 +    1783/    F765 : ED 7B 6A 00          LD SP,(SPADR) ;neue Operandenfolge
 +    1784/    F769 : 11 0D 00            LD DE,BPOPC ;umladen
 +    1785/    F76C : 01 03 00            LD BC,3
 +    1786/    F76F : ED B0                LDIR
 +    1787/    F771 : 21 E4 F5            LD HL,REGDA
 +    1788/    F774 : E5                  PUSH HL
 +    1789/    F775 : ED 4D                RETI ;Sprung zur Registeranzeige
 +    1790/    F777 :                     ;
 +    1791/    F777 :                     ;-------------------------------------------------------------------------------
 +    1792/    F777 :                     ;Speicherbereiche vergleichen
 +    1793/    F777 :                     ;-------------------------------------------------------------------------------
 +    1794/    F777 :                     ;
 +    1795/    F777 : CD FF F4            C_KDO: CALL PARA ;Parameter holen
 +    1796/    F77A : 1A                  CKO1: LD A,(DE)
 +    1797/    F77B : BE                  CP A, (HL) ;Vergleich
 +    1798/    F77C : 20 08                JR NZ, CKO3 ;wenn ungleich
 +    1799/    F77E : 0B                  CKO2: DEC BC
 +    1800/    F77F : 23                  INC HL
 +    1801/    F780 : 13                  INC DE
 +    1802/    F781 : 78                  LD A,B
 +    1803/    F782 : B1                  OR C
 +    1804/    F783 : C8                  RET Z ;wenn alles geprueft
 +    1805/    F784 : 18 F4                JR CKO1 ;sonst weitertesten
 +    1806/    F786 :                     ;
 +    1807/    F786 : (MACRO)             CKO3: ROTHL ;1. Adresse
 +    1807/    F786 : E7                          RST     20H
 +    1807/    F787 : 07                          DB      07h                     ; OUTHL
 +    1808/    F788 : (MACRO)              ROTSP
 +    1808/    F788 : E7                          RST     20H
 +    1808/    F789 : 0E                          DB      0Eh                     ; OUTSP
 +    1809/    F78A : 7E                  LD A,(HL)
 +    1810/    F78B : (MACRO)              ROTHX ;1. Byte
 +    1810/    F78B : E7                          RST     20H
 +    1810/    F78C : 06                          DB      06h                     ; OUTHX
 +    1811/    F78D : (MACRO)              ROTSP
 +    1811/    F78D : E7                          RST     20H
 +    1811/    F78E : 0E                          DB      0Eh                     ; OUTSP
 +    1812/    F78F : EB                  EX DE,HL
 +    1813/    F790 : (MACRO)              ROTHL ;2. Adresse
 +    1813/    F790 : E7                          RST     20H
 +    1813/    F791 : 07                          DB      07h                     ; OUTHL
 +    1814/    F792 : (MACRO)              ROTSP
 +    1814/    F792 : E7                          RST     20H
 +    1814/    F793 : 0E                          DB      0Eh                     ; OUTSP
 +    1815/    F794 : EB                  EX DE,HL
 +    1816/    F795 : 1A                  LD A,(DE)
 +    1817/    F796 : (MACRO)              ROTHX ;2. Byte
 +    1817/    F796 : E7                          RST     20H
 +    1817/    F797 : 06                          DB      06h                     ; OUTHX
 +    1818/    F798 : (MACRO)              RPRST
 +    1818/    F798 : E7                          RST     20H
 +    1818/    F799 : 02                          DB      02h                     ; PRST
 +    1819/    F79A : 8D                  DB CR+80H
 +    1820/    F79B : (MACRO)              RINCH ;warten auf Tastendruck
 +    1820/    F79B : E7                          RST     20H
 +    1820/    F79C : 01                          DB      01h                     ; INCH
 +    1821/    F79D : FE 0D                CP A, CR
 +    1822/    F79F : C0                  RET NZ ;Abbruch wenn <> >ENTER<
 +    1823/    F7A0 : 18 DC                JR CKO2 ;sonst weitertesten
 +    1824/    F7A2 :                     
 +    1825/    F7A2 : =>TRUE              IF MONTYP <> "Z1013_A2"
 +    1826/    F7A2 :                     ;
 +    1827/    F7A2 :                     ;-------------------------------------------------------------------------------
 +    1828/    F7A2 :                     ;Bytefolge suchen
 +    1829/    F7A2 :                     ;-------------------------------------------------------------------------------
 +    1830/    F7A2 :                     ;
 +    1831/    F7A2 : ED 5B 25 00         F_KDO: LD DE,(SOIL2)
 +    1832/    F7A6 : 1B                  DEC DE
 +    1833/    F7A7 : 1B                  DEC DE
 +    1834/    F7A8 : ED 53 23 00          LD (ARG3),DE ;DE = Beginn Bytefolge
 +    1835/    F7AC : ED 4B 1B 00          LD BC,(ARG1) ;Suchadresse
 +    1836/    F7B0 : ED 5B 23 00         FKO1: LD DE,(ARG3)
 +    1837/    F7B4 : (MACRO)              RINHX ;L = 1. Suchbyte
 +    1837/    F7B4 : E7                          RST     20H
 +    1837/    F7B5 : 03                          DB      03h                     ; INHEX
 +    1838/    F7B6 : 0A                  FKO2: LD A,(BC)
 +    1839/    F7B7 : BD                  CP A, L ;L = Suchbyte
 +    1840/    F7B8 : 28 07                JR Z, FKO3 ;wenn Bytes gleich
 +    1841/    F7BA : 03                  INC BC ;sonst naechste Suchadresse
 +    1842/    F7BB : 78                  LD A,B
 +    1843/    F7BC : B1                  OR C
 +    1844/    F7BD : 28 32                JR Z, FKO7 ;wenn Speicherende erreicht
 +    1845/    F7BF : 18 F5                JR FKO2 ;weitersuchen
 +    1846/    F7C1 :                     ;
 +    1847/    F7C1 : C5                  FKO3: PUSH BC
 +    1848/    F7C2 : D5                  PUSH DE
 +    1849/    F7C3 : ED 5B 1D 00          LD DE,(ARG2) ;Suchbyteanzahl
 +    1850/    F7C7 : 1B                  DEC DE
 +    1851/    F7C8 : ED 53 6C 00          LD (FBANZ),DE ;Zwischenspeicher fuer Anzahl
 +    1852/    F7CC : 03                  INC BC
 +    1853/    F7CD : 7A                  FKO4: LD A,D
 +    1854/    F7CE : B3                  OR E ;alle Suchbytes verglichen?
 +    1855/    F7CF : D1                  POP DE
 +    1856/    F7D0 : 28 13                JR Z, FKO5 ;wenn Bytefolge gefunden
 +    1857/    F7D2 : (MACRO)              RINHX ;naechstes Suchbyte holen
 +    1857/    F7D2 : E7                          RST     20H
 +    1857/    F7D3 : 03                          DB      03h                     ; INHEX
 +    1858/    F7D4 : 0A                  LD A,(BC)
 +    1859/    F7D5 : BD                  CP A, L
 +    1860/    F7D6 : 20 15                JR NZ, FKO6 ;wenn Folge nicht gefunden
 +    1861/    F7D8 : D5                  PUSH DE
 +    1862/    F7D9 : ED 5B 6C 00          LD DE,(FBANZ) ;1 Byte weniger zu vergleichen
 +    1863/    F7DD : 1B                  DEC DE
 +    1864/    F7DE : ED 53 6C 00          LD (FBANZ),DE
 +    1865/    F7E2 : 03                  INC BC
 +    1866/    F7E3 : 18 E8                JR FKO4 ;weitervergleichen
 +    1867/    F7E5 :                     ;Bytefolge gefunden
 +    1868/    F7E5 : C1                  FKO5: POP BC
 +    1869/    F7E6 : ED 43 1B 00          LD (ARG1),BC
 +    1870/    F7EA : C3 25 F3            JP MEM ;Speicher modifizieren
 +    1871/    F7ED :                     ;
 +    1872/    F7ED : C1                  FKO6: POP BC
 +    1873/    F7EE : 03                  INC BC
 +    1874/    F7EF : 18 BF                JR FKO1
 +    1875/    F7F1 :                     ;Bytefolge nirgends gefunden
 +    1876/    F7F1 : (MACRO)             FKO7: RPRST
 +    1876/    F7F1 : E7                          RST     20H
 +    1876/    F7F2 : 02                          DB      02h                     ; PRST
 +    1877/    F7F3 : 4E 4F 54 20 46 4F    DB "NOT FOUND"
 +                    55 4E 44 
 +    1878/    F7FC : 8D                  DB CR+80H
 +    1879/    F7FD : C9                  RET
 +    1880/    F7FE :                     
 +    1881/    F7FE : [1825]              ENDIF
 +    1882/    F7FE :                     
 +    1883/    F7FE : =>FALSE              IF MONTYP == "Z1013_A2"
 +    1884/    F7FE :                     ;
 +    1885/    F7FE :                     ;-------------------------------------------------------------------------------
 +    1886/    F7FE :                     ; Tastaturcodetabelle
 +    1887/    F7FE :                     ;-------------------------------------------------------------------------------
 +    1888/    F7FE :                     ;
 +    1889/    F7FE :                     keytab:
 +    1890/    F7FE :                     ; spalte 0
 +    1891/    F7FE :                      db  31h ; 1
 +    1892/    F7FE :                      db  51h ; Q
 +    1893/    F7FE :                      db  41h ; A
 +    1894/    F7FE :                      db  59h ; Y
 +    1895/    F7FE :                      db  32h ; 2
 +    1896/    F7FE :                      db  57h ; W
 +    1897/    F7FE :                      db  53h ; S
 +    1898/    F7FE :                      db  58h ; X
 +    1899/    F7FE :                     ; Spalte 1
 +    1900/    F7FE :                      db  33h ; 3
 +    1901/    F7FE :                      db  45h ; E
 +    1902/    F7FE :                      db  44h ; D
 +    1903/    F7FE :                      db  43h ; C
 +    1904/    F7FE :                      db  34h ; 4
 +    1905/    F7FE :                      db  52h ; R
 +    1906/    F7FE :                      db  46h ; F
 +    1907/    F7FE :                      db  56h ; V
 +    1908/    F7FE :                     ; Spalte 2
 +    1909/    F7FE :                      db  35h ; 5
 +    1910/    F7FE :                      db  54h ; T
 +    1911/    F7FE :                      db  47h ; G
 +    1912/    F7FE :                      db  42h ; B
 +    1913/    F7FE :                      db  36h ; 6
 +    1914/    F7FE :                      db  5Ah ; Z
 +    1915/    F7FE :                      db  48h ; H
 +    1916/    F7FE :                      db  4Eh ; N
 +    1917/    F7FE :                     ; Spalte 3
 +    1918/    F7FE :                      db  37h ; 7
 +    1919/    F7FE :                      db  55h ; U
 +    1920/    F7FE :                      db  4Ah ; J
 +    1921/    F7FE :                      db  4Dh ; M
 +    1922/    F7FE :                      db  38h ; 8
 +    1923/    F7FE :                      db  49h ; I
 +    1924/    F7FE :                      db  4Bh ; K
 +    1925/    F7FE :                      db  2Ch ; ,
 +    1926/    F7FE :                     ; Spalte 4
 +    1927/    F7FE :                      db  39h ; 9
 +    1928/    F7FE :                      db  4Fh ; O
 +    1929/    F7FE :                      db  4Ch ; L
 +    1930/    F7FE :                      db  2Eh ; .
 +    1931/    F7FE :                      db  30h ; 0
 +    1932/    F7FE :                      db  50h ; P
 +    1933/    F7FE :                      db  2Bh ; +
 +    1934/    F7FE :                      db  2Fh ; /
 +    1935/    F7FE :                     ; Spalte 5
 +    1936/    F7FE :                      db  2Dh ; -
 +    1937/    F7FE :                      db  40h ; @
 +    1938/    F7FE :                      db  2Ah ; *
 +    1939/    F7FE :                      db  5Eh ; ^
 +    1940/    F7FE :                      db  5Bh ; [
 +    1941/    F7FE :                      db  5Dh ; ]
 +    1942/    F7FE :                      db  5Ch ;
 +    1943/    F7FE :                      db  5Fh ; _
 +    1944/    F7FE :                     ; Spalte 6
 +    1945/    F7FE :                     tab2: db    0 ; Graph E/A
 +    1946/    F7FE :                      db  0Dh ; ENT
 +    1947/    F7FE :                      db    8 ; Cu. links
 +    1948/    F7FE :                      db    9 ; Cu. rechts
 +    1949/    F7FE :                      db  20h ; Leerz.
 +    1950/    F7FE :                      db    0 ; CTRL
 +    1951/    F7FE :                      db  0Bh ; Cu. hoch
 +    1952/    F7FE :                      db  0Ah ; Cu. runter
 +    1953/    F7FE :                     
 +    1954/    F7FE : [1883]              ENDIF
 +    1955/    F7FE :                     
 +    1956/    F7FE :                     ;
 +    1957/    F7FE :                     ;-------------------------------------------------------------------------------
 +    1958/    F7FE :                     ;Interrupttabelle fuer Break
 +    1959/    F7FE :                     ;-------------------------------------------------------------------------------
 +    1960/    F7FE :                     ;
 +    1961/    F7FE :                     
 +    1962/    F7FE :                      align 2
 +    1963/    F7FE : 4A F7               NINTA: DW NINTR
 +    1964/    F800 :                     
 +    1965/    F800 :                      END
 +</code>
 +</WRAP>
  
  • z1013/software/monitor/riesa202.1322492469.txt.gz
  • Zuletzt geändert: 2011/11/28 15:01
  • von volkerp