Dies ist eine alte Version des Dokuments!


Monitor

 AS V1.41r8 - Quelle LC80.ASM - Seite 1 - 31.8.2003 15:48:46
       1/       0 :                     	CPU	z80
       2/       0 :                     
       3/       0 : =2H                 ROM_: EQU 2     ; EIN ROM -> 1
       4/       0 :                           ; ZWEI ROM     -> 2
       5/       0 :                     
       6/       0 :                     ;        PIO-PORTS:
       7/       0 :                     
       8/       0 : =F4H                SEGMENT  EQU 0F4H ;AUSGABE-PORT SEGMENTANSTEUERUNG
       9/       0 : =F6H                PIO1AC   EQU 0F6H
      10/       0 :                     
      11/       0 : =F5H                DIGITAP  EQU 0F5H ;B2...B7=DIGITANST. UND TASTENMATRIX
      12/       0 :                                       ;B0=TAPE-IN, B1=TAPE-OUT
      13/       0 : =F7H                PIO1BC   EQU 0F7H
      14/       0 :                     
      15/       0 : =F8H                USERPORT EQU 0F8H ;U8ER-PORT, FREI VERFUEGBAR
      16/       0 : =FAH                PI02AC   EQU 0FAH
      17/       0 :                     
      18/       0 : =F9H                KEYIN    EQU 0F9H ;B4...B7=EINGAENGE TASTEN-ABFRAGE
      19/       0 :                                       ;B0...B3 FUER USER NUTZBAR
      20/       0 : =FBH                PIO2BC   EQU 0FBH
      21/       0 :                     
      22/       0 :                     ;        CTC-ADRESSEN
      23/       0 : =ECH                CTC0     EQU 0ECH
      24/       0 : =EDH                CTC1     EQU 0EDH
      25/       0 : =EEH                CTC2     EQU 0EEH
      26/       0 : =EFH                CTC3     EQU 0EFH
      27/       0 :                     
      28/       0 :                     ;VEREINBARUNGEN BEI ERWEITERUNGEN
      29/       0 : =0H                 INTVEK   EQU 00H       ;INT-VECT. FUER CTC
      30/       0 : =23H                HIINT    EQU 23H       ;CPU-I-REG
      31/       0 :                     
      32/       0 :                     
      33/       0 :                     ;*****************************************************
      34/       0 :                     ;
      35/       0 :                              ORG 0000H
      36/       0 :                     START:
      37/       0 : 06 00                  LD B,00H        ;EIN8CHALTVERZOEGERUNG
      38/       2 : 10 FE                  DJNZ $
      39/       4 : 18 35                  JR BEGIN
      40/       6 :                     
      41/       8 :                              ORG 08H
      42/       8 :                     RST1:
      43/       8 : C3 08 23               JP 2308H
      44/       B :                     
      45/      10 :                              ORG 10H
      46/      10 :                     RST2:
      47/      10 : C3 10 23               JP 2310H
      48/      13 :                     
      49/      18 :                              ORG 18H
      50/      18 :                     RST3:
      51/      18 : C3 18 23               JP 2318H
      52/      1B :                     
      53/      20 :                              ORG 20H
      54/      20 :                     RST4:
      55/      20 : C3 20 23               JP 2320H
      56/      23 :                     
      57/      28 :                              ORG 28H
      58/      28 :                     RST5:
      59/      28 : C3 28 23               JP 2328H
      60/      2B :                     
      61/      30 :                              ORG 30H
      62/      30 :                     RST6:
      63/      30 : C3 30 23               JP 2330H
      64/      33 :                     
      65/      38 :                              ORG 38H
      66/      38 :                     RST7:
      67/      38 : C3 38 23               JP 2338H
      68/      3B :                     
      69/      3B :                     ;-----------------------------------------------------
      70/      3B :                     BEGIN:
      71/      3B : 3A FC 23               LD A,(INIFLAG)      ;RAM LOESCHEN, WENN ERSTEINSCHALTUNG
      72/      3E : FE 80                  CP 80H
      73/      40 : 28 29                  JR Z,NOFF
      74/      42 : 21 00 20               LD HL,2000H
      75/      45 : 11 01 20               LD DE,2001H
      76/      48 : 01 FF 0F               LD BC,0FFFH
      77/      4B : 36 FF                  LD (HL),0FFH
      78/      4D : ED B0                  LDIR
      79/      4F : 01 03 00               LD BC,RSTLGT   ;STANDARD-RST38-PROG. LADEN
      80/      52 : 11 38 23               LD DE,2338H
      81/      55 : 21 11 01               LD HL,RSTUP
      82/      58 : ED B0                  LDIR
      83/      5A : 01 03 00               LD BC,NMILGT   ;STANDARD-NMI-PROG. LADEN
      84/      5D : 11 40 23               LD DE,2340H
      85/      60 : 21 EB 00               LD HL,NMIUP
      86/      63 : 18 04                  JR NMI+3
      87/      65 :                     
      88/      65 :                     ;-------------------- NMI-FKT. ANSPRINGEN ----------
      89/      66 :                              ORG 0066H
      90/      66 :                     NMI:
      91/      66 : C3 40 23               JP 2340H
      92/      69 :                     
      93/      69 :                     ;---------------------------------------------------------
      94/      69 : ED B0                  LDIR
      95/      6B :                     NOFF:
      96/      6B : 31 EA 23               LD SP,SPINI    ;SP AUF ANFANGSWERT
      97/      6E : CD CA 00               CALL IOINIT
      98/      71 : CD 99 00               CALL MEMTES
      99/      74 :                     ;--------------------- TEST, OB ERSTEINSCHALTUNG ----
     100/      74 : 3A FC 23               LD A,(INIFLAG)
     101/      77 : FE 80                  CP 80H
     102/      79 : C4 9C 02               CALL NZ,INI    ;MUSIK U. GRAPHIK, WENN ERSTEINSCH.
     103/      7C :                     ;--------------------- RESETZUSTAND HERSTELLEN ------
     104/      7C : 21 00 20               LD HL,2000H
     105/      7F : 22 F8 23               LD (USERPC),HL ;USER-PC AUF ANFANGSWERT
     106/      82 : AF                     XOR A
     107/      83 : 32 FD 23               LD (FUFEFLAG),A;FUNKTIONS- UND FEHLERFLAG LOESCHEN
     108/      86 : DD 21 74 09            LD IX,DISP1    ; "LC80"-TEXT
     109/      8A :                     ;--------------------- TEXT, ADR.- U. TAPE-CODE LOE.
     110/      8A :                     SETSTO:
     111/      8A : AF                     XOR A
     112/      8B : 32 FB 23               LD (ATCODE),A
     113/      8E :                     
     114/      8E :                     ;--------------------- HAUPTPROGRAMM ----------------
     115/      8E :                     MAIN:
     116/      8E : 31 EA 23               LD SP,SPINI    ;USER-PC AUF ANFANGSWERT
     117/      91 : CD 5A 08               CALL DAK1      ;ANZEIGE UND TASTATURABFRAGE
     118/      94 : CD 1B 01               CALL KEYEXC    ;TASTENBEHANDLUNG
     119/      97 : 18 F5                  JR MAIN
     120/      99 :                     
     121/      99 :                     ;--------------------- SPEICHERTEST ------------------
     122/      99 :                     MEMTES:
     123/      99 : 01 04 00               LD BC,0004H    ;1 K RAM
     124/      9C : 21 00 20               LD HL,2000H    ;ADR RAM
     125/      9F :                     RAMSL:
     126/      9F : CD 52 08               CALL RAMCHK
     127/      A2 : 28 01                  JR Z, RAMOK
     128/      A4 : 76                     HALT
     129/      A5 :                     RAMOK:
     130/      A5 : 23                     INC HL
     131/      A6 : 10 F7                  DJNZ RAMSL
     132/      A8 : 0D                     DEC C
     133/      A9 : 20 F4                  JR NZ,RAMSL
     134/      AB : AF                     XOR A
     135/      AC : 21 00 00               LD HL,0        ;ADR 1. ROM/EPROM
     136/      AF : 01 04 00               LD BC,0004H    ;1 K
     137/      B2 : CD C2 00               CALL ROMSL
     138/      B5 :                     
     139/      B5 : =>FALSE                IF ROM_=1
     140/      B5 :                        LD HL,0400H    ;WEITER 1. ROM
     141/      B5 :                        ENDIF
     142/      B5 :                     
     143/      B5 : =>TRUE                 IF ROM_=2
     144/      B5 : 21 00 08               LD HL,0800H    ;ADR 2. ROM
     145/      B8 :                        ENDIF
     146/      B8 :                     
     147/      B8 : 01 04 FF               LD BC,0FF04H   ;1K - 1BYTE
     148/      BB : CD C2 00               CALL ROMSL
     149/      BE : BE                     CP (HL)
     150/      BF : C8                     RET Z
     151/      C0 : 76                     HALT
     152/      C1 : C9                     RET
     153/      C2 :                     
     154/      C2 :                     ROMSL:
     155/      C2 : 86                     ADD A,(HL)
     156/      C3 : 23                     INC HL
     157/      C4 : 10 FC                  DJNZ ROMSL
     158/      C6 : 0D                     DEC C
     159/      C7 : 20 F9                  JR NZ,ROMSL
     160/      C9 : C9                     RET
     161/      CA :                     
     162/      CA :                     ;---------------------- IO-INITIALISIERUNG -----------
     163/      CA :                     IOINIT:           ;PIO-INITIALISIERUNG
     164/      CA : 3E CF                  LD A,0CFH      ;MODE 3
     165/      CC : D3 F6                  OUT (PIO1AC),A ;SEGMENT-PORT
     166/      CE : 3E FF                  LD A,0FFH
     167/      D0 : D3 F4                  OUT (SEGMENT),A;ALLE SEGMENTE AUSSCHALTEN
     168/      D2 : 3E 00                  LD A,0         ;E-A-DEFINITION
     169/      D4 : D3 F6                  OUT (PIO1AC),A
     170/      D6 :                     
     171/      D6 : 3E CF                  LD A,0CFH
     172/      D8 : D3 F7                  OUT (PIO1BC),A ;DIGIT-AUSG.
     173/      DA :                                       ;B2...B7 = D-LSD,D-MSD,A-LSD...A-MSD
     174/      DA : 3E FF                  LD A,0FFH      ;ALLE TREIBER SPERREN
     175/      DC : D3 F5                  OUT (DIGITAP),A
     176/      DE : 3E 01                  LD A,1          ;B0-EINGANG, B1...B7-AUSGAENGE
     177/      E0 : D3 F7                  OUT (PIO1BC),A
     178/      E2 :                     
     179/      E2 : 3E CF                  LD A,0CFH
     180/      E4 : D3 FB                  OUT (PIO2BC),A ;TASTEN-EINGAENGE B4...B7
     181/      E6 : 3E FF                  LD A,0FFH
     182/      E8 : D3 FB                  OUT (PIO2BC),A
     183/      EA : C9                     RET
     184/      EB :                     
     185/      EB :                     ;-----------------------------------------------------
     186/      EB :                     NMIUP:            ;NMI-UNTERPROGRAMM
     187/      EB : C3 EE 00               JP NMIUP1
     188/      EE : =3H                 NMILGT EQU $-NMIUP
     189/      EE :                     
     190/      EE :                     NMIUP1:
     191/      EE : F5                     PUSH AF
     192/      EF : C5                     PUSH BC
     193/      F0 : 08                     EX AF,AF'
     194/      F1 : D9                     EXX
     195/      F2 : F5                     PUSH AF
     196/      F3 : C5                     PUSH BC
     197/      F4 : D5                     PUSH DE
     198/      F5 : E5                     PUSH HL
     199/      F6 : D9                     EXX
     200/      F7 : DD E5                  PUSH IX
     201/      F9 : 06 28                  LD B,40        ;ANZEIGEZEIT "INT"
     202/      FB : DD 21 99 09            LD IX,DISP5
     203/      FF :                     NMISL:
     204/      FF : CD 83 08               CALL DAK2
     205/     102 : 10 FB                  DJNZ NMISL
     206/     104 : DD E1                  POP IX
     207/     106 : D9                     EXX
     208/     107 : E1                     POP HL
     209/     108 : D1                     POP DE
     210/     109 : C1                     POP BC
     211/     10A : F1                     POP AF
     212/     10B : D9                     EXX
     213/     10C : 08                     EX AF,AF'
     214/     10D : C1                     POP BC
     215/     10E : F1                     POP AF
     216/     10F : ED 45                  RETN
     217/     111 :                     
     218/     111 :                     ;-----------------------------------------------------
     219/     111 :                     RSTUP:
     220/     111 : C3 14 01               JP RSTUP1
     221/     114 : =3H                 RSTLGT EQU $-RSTUP
     222/     114 :                     
     223/     114 :                     RSTUP1:
     224/     114 : DD 21 9F 09            LD IX,DISP6
     225/     118 : C3 8A 00               JP SETSTO
     226/     11B :                     
     227/     11B :                     ;--------------------- TASTENBEHANDLUNGSPROGRAMM ----
     228/     11B :                     ;                 EINTRITT: INTERNER TASTENCODE IN A
     229/     11B :                     KEYEXC:
     230/     11B : FE 10                  CP 10H         ;TEST, OB FUNKTIONSTASTE
     231/     11D : 38 24                  JR  C,KHEX     ;SPR., WENN ZIFFERNTASTE
     232/     11F : 21 FD 23               LD HL,FUFEFLAG ;FLAG "FUNKTIONSTASTE" SETZEN
     233/     122 : CB C6                  SET 0,(HL)
     234/     124 : D6 10                  SUB 10H        ;OBERE ZIFFER DES CODES LOESCHEN
     235/     126 : FE 08                  CP 08H         ;TEST DER FUNKTIONSGRUPPE
     236/     128 : 21 AB 09               LD HL,KSUFUN
     237/     12B : DA 87 02               JP  C,BRANCH   ; WENN "+","-","EXEC" O. "DATA"-TASTE
     238/     12E :                     
     239/     12E :                                       ;ADR- ODER TAPE-TASTEN
     240/     12E : DD 21 F2 23            LD IX,DATLED   ;ADR. FUER DATEN- U. ADR.-ANZEIGE
     241/     132 : D6 08                  SUB 08H
     242/     134 : 21 FB 23               LD HL,ATCODE
     243/     137 : 77                     LD (HL),A      ;UMGERECHN. CODE HINTERLEGEN
     244/     138 : 21 FA 23               LD HL,ATFLAG
     245/     13B : 36 00                  LD (HL),0      ;FLAG LOESCHEN
     246/     13D : 21 B5 09               LD HL,KFUN
     247/     140 : C3 87 02               JP BRANCH
     248/     143 :                     
     249/     143 :                     ;----------------- AUSWERTUNG ZIFFERNTASTEN ---------
     250/     143 :                     KHEX:
     251/     143 : 4F                     LD C,A         ;TASTATURCODE UMSPEICHERN
     252/     144 : 21 BF 09               LD HL,HTAB
     253/     147 :                     BR1:
     254/     147 : 3A FB 23               LD A,(ATCODE)  ;WERT FUER AUSZUF. FUNKTION
     255/     14A : C3 87 02               JP BRANCH
     256/     14D :                     
     257/     14D :                     ;--------------------- EINTR.PKTE FUER +,-,EXEC,DATA -
     258/     14D :                     ;                           (UEBER KSUFUN-TABELLE)
     259/     14D :                     KINC:             ; "+"-TASTE
     260/     14D : 21 CB 09               LD HL,ITAB
     261/     150 : 18 F5                  JR BR1
     262/     152 :                     
     263/     152 :                     KDEC:             ; "-"-TASTE
     264/     152 : 21 D7 09               LD HL,DTAB
     265/     155 : 18 F0                  JR BR1
     266/     157 :                     
     267/     157 :                     KEXEC:            ; "EXEC"-TASTE
     268/     157 : 21 E3 09               LD HL, ETAB
     269/     15A : 18 EB                  JR BR1
     270/     15C :                     
     271/     15C :                     KDATA:            ; "DATA"-TASTE
     272/     15C : CD 27 09               CALL TESTM     ;TEST. OB ADR OD. DAT IN ATCODE
     273/     15F : CD C5 02               CALL MEMDP2    ;ADR U. DAT. ANZ., DAT. GEPUNKTET
     274/     162 : C9                     RET
     275/     163 :                     
     276/     163 :                     ;--------------------- EINTR.PKTE FUER ADRS U. TAPE -
     277/     163 :                     ;                           (UEBER KFUN-TABELLE)
     278/     163 :                     KADRS:            ; "ADRS"-TASTE
     279/     163 : CD BC 02               CALL MEMDP1    ;ADR. U. DAT. ANZ., ADR. GEPUNKTET
     280/     166 : C9                     RET
     281/     167 :                     
     282/     167 :                     KTAPWR:           ; "TO TAPE"- ODER "FROM TAPE"-TASTE
     283/     167 : CD E2 02               CALL STEPDP    ;PARAMETER ANZEIGEN
     284/     16A : C9                     RET
     285/     16B :                     
     286/     16B :                     ;--------------------- EINTR.PKTE FUER ZIFFERNEINGABEN
     287/     16B :                     ;                           (UEBER HTAB-TABELLE)
     288/     16B :                     HFIX:             ; BEDIENUNGSFEHLER
     289/     16B : C3 96 02               JP ERRDIS
     290/     16E :                     
     291/     16E :                     HDA:              ;ZIFFER ALS DATUM
     292/     16E : 2A F8 23               LD HL,(USERPC)
     293/     171 : CD 52 08               CALL RAMCHK    ;TEST, OB USER-PC IM RAM-BEREICH
     294/     174 : C2 96 02               JP NZ,ERRDIS   ;SPR., WENN KEIN RAM
     295/     177 : CD A8 02               CALL PRECL1    ;1 BYTE LOE., WENN FUFEFLAG NICHT 0
     296/     17A : 79                     LD A,C         ;EINGEG. ZIFFER
     297/     17B : ED 6F                  RLD            ;TETRADE IN RAM SCHIEBEN
     298/     17D : CD C5 02               CALL MEMDP2    ;ANZEIGEN
     299/     180 : C9                     RET
     300/     181 :                     
     301/     181 :                     HAD:              ;ZIFFER ALS ADRESSE
     302/     181 : 21 F8 23               LD HL,USERPC
     303/     184 : CD B4 02               CALL PRECL2    ;2 BYTE LOE., WENN FUFEFLAG NICHT 0
     304/     187 : 79                     LD A,C         ;EINGEG. ZIFFER
     305/     188 : ED 6F                  RLD            ;TETRADEN IN BEIDEN BYTE VERSCHIEBEN
     306/     18A : 23                     INC HL
     307/     18B : ED 6F                  RLD
     308/     18D : CD BC 02               CALL MEMDP1    ;ANZEIGEN
     309/     190 : C9                     RET
     310/     191 :                     
     311/     191 :                     HTAPWR:           ;ZIFFER ALS PARAMETER FUER BAND
     312/     191 : CD FD 02               CALL LOCTBF    ;ADR FUER PARAMETER BERECHNEN
     313/     194 : CD B4 02               CALL PRECL2    ;2 BYTE LOE., WENN FUFEFLAG NICHT 0
     314/     197 : 79                     LD A,C         ;EINGEG. ZIFFER
     315/     198 : ED 6F                  RLD            ;TETRADE IN BEIDEN BYTE VERSCHIEBEN
     316/     19A : 23                     INC HL
     317/     19B : ED 6F                  RLD
     318/     19D : CD E2 02               CALL STEPDP    ;PARAMETER ANZEIGEN
     319/     1A0 : C9                     RET
     320/     1A1 :                     
     321/     1A1 :                     ;---------------------- UNTEREINTRITT "+"-TASTE ----
     322/     1A1 :                     ;                            (UEBER ITAB)
     323/     1A1 :                     IFIX:             ;BEDIENUNGSFEHLER
     324/     1A1 : C3 96 02               JP ERRDIS
     325/     1A4 :                     
     326/     1A4 :                     ADRADD:           ;ANWENDER-PC ERHOEHEN
     327/     1A4 : 2A F8 23               LD HL,(USERPC)
     328/     1A7 : 23                     INC HL
     329/     1A8 : 22 F8 23               LD (USERPC),HL
     330/     1AB : CD C5 02               CALL MEMDP2    ;ANZEIGEN
     331/     1AE : C9                     RET
     332/     1AF :                     
     333/     1AF :                     TPFUN1:           ;BEI "TO TAPE" NAECHSTER PARAMETER
     334/     1AF : 21 FA 23               LD HL,ATFLAG
     335/     1B2 : 34                     INC (HL)       ;FLAS AUF NEUEN PARAMETER
     336/     1B3 : CD 07 03               CALL LOCTNA    ;PARMETER 'F','S' ODER 'E'
     337/     1B6 : 20 04                  JR NZ,ISTEP    ;SPRUNG, WENN RICHTIG
     338/     1B8 : 35                     DEC (HL)       ;FLAG AUF ALTEN WERT
     339/     1B9 : C3 96 02               JP ERRDIS      ;FEHLERANZEIGE
     340/     1BC :                     ISTEP:
     341/     1BC : CD E2 02               CALL STEPDP    ;PARAMETER ANZEIGEN
     342/     1BF : C9                     RET
     343/     1C0 :                     
     344/     1C0 :                     ;--------------------- UNTEREINTRITT "-"-TASTE -----
     345/     1C0 :                     ;                           (UEBER DTAB)
     346/     1C0 :                     DFIX:             ;BEDIENUNGSFEHLER
     347/     1C0 : C3 96 02               JP ERRDIS
     348/     1C3 :                     
     349/     1C3 :                     ADRDEC:           ;ANWENDER-PC ERNIDRIGEN
     350/     1C3 : 2A F8 23               LD HL,(USERPC)
     351/     1C6 : 2B                     DEC HL
     352/     1C7 : 22 F8 23               LD (USERPC),HL
     353/     1CA : CD C5 02               CALL MEMDP2    ;ANZEIGEN
     354/     1CD : C9                     RET
     355/     1CE :                     
     356/     1CE :                     TPTUN2:           ;BEI "TO TAPE" VORHERIGER PARAMETER
     357/     1CE : 21 FA 23               LD HL,ATFLAG
     358/     1D1 : 35                     DEC (HL)       ;FLAG AUF VORHER. PARAMETER
     359/     1D2 : CD 07 03               CALL LOCTNA    ;PARAMETER 'F', 'S' ODER 'E'
     360/     1D5 : 20 04                  JR NZ,DSTEP    ;SPR., WENN RICHTIG
     361/     1D7 : 34                     INC (HL)       ;ALTER FLAGWERT
     362/     1D8 : C3 96 02               JP ERRDIS      ;FEHLERANZEIGE
     363/     1DB :                     DSTEP:
     364/     1DB : CD E2 02               CALL STEPDP    ;PARAMETER ANZEIGEN
     365/     1DE : C9                     RET
     366/     1DF :                     
     367/     1DF :                     ;--------------------- UNTEREINTRITT "EXEC"-TASTE ---
     368/     1DF :                     ;                           (UEBER ETAB)
     369/     1DF :                     EFIX:             ;BEDIENUNGSFEHLER
     370/     1DF : C3 96 02               JP ERRDIS
     371/     1E2 :                     
     372/     1E2 :                     ADREXC:           ;PROGRAMAUSFUEHRUNG AB USER-PC
     373/     1E2 : E5                     PUSH HL
     374/     1E3 : 2A F8 23               LD HL,(USERPC)
     375/     1E6 : E3                     EX (SP),HL
     376/     1E7 : C9                     RET
     377/     1E8 :                     
     378/     1E8 :                     ENDFUN:           ; DE IN USER-PC ABSP. UND ANZEIGEN
     379/     1E8 : ED 53 F8 23            LD (USERPC),DE
     380/     1EC : CD C5 02               CALL MEMDP2
     381/     1EF : C9                     RET
     382/     1F0 :                     
     383/     1F0 :                     EWT:              ;UEBERSPIELEN AUF BAND
     384/     1F0 : CD 88 03               CALL SUM       ;PRUEFSUMME BERECHNEN
     385/     1F3 : 38 EA                  JR  C,EFIX     ;WENN ENDADR<ANF.ADR
     386/     1F5 : 32 F1 23               LD (CHKSUMH),A ;ABSPEICHERN
     387/     1F8 : 21 A0 0F               LD HL,0FA0H    ;AUSGABE 4000 x 1KHZ-TAKTE
     388/     1FB :                                       ;ALS START-SYNC SIGNAL
     389/     1FB : CD 70 03               CALL SOUN1K
     390/     1FE : 21 EB 23               LD HL,FILNAME  ;DESCRIPTOR UEBERTRAGEN
     391/     201 : 01 07 00               LD BC,0007H    ;7 BYTE
     392/     204 : CD 1B 08               CALL TAPOUT
     393/     207 : 21 A0 0F               LD HL,0FA0H    ;AUSGABE 4000 x 2KHZ-TAKTE
     394/     20A :                                       ;ALS MITTEL-SYNC SIGNAL
     395/     20A : CD 74 03               CALL SOUN2K
     396/     20D : CD 95 03               CALL GETPTR    ;LAENGE DES BLOCKES BER.
     397/     210 : CD 1B 08               CALL TAPOUT    ;DATE UEBERTRAGEN
     398/     213 : 21 A0 0F               LD HL,0FA0H    ;AUSGABE 4000 x 2KHZ-TAKTE
     399/     216 :                                       ;ALS END SYNC. SIGNAL
     400/     216 : CD 74 03               CALL SOUN2K
     401/     219 :                     ENDTAP:
     402/     219 : ED 5B EF 23            LD DE,(ENDADRH);STARTADR
     403/     21D : 18 C9                  JR ENDFUN      ;ABSP. UND ANZEIGEN
     404/     21F :                     
     405/     21F :                     ;----------------- FEHLERTEXT LADEN, SPR. Z. ANZEIGE -
     406/     21F :                     ERROR:
     407/     21F : DD 21 A5 09            LD  IX,ERR     ;ADR FEHLERTEXT
     408/     223 : C3 8A 00               JP SETSTO      ;SPR. ZUR ANZEIGE
     409/     226 :                     
     410/     226 :                     ;----------------- DATEN VOM BAND LESEN --------
     411/     226 :                     LOAD:
     412/     226 : 2A EB 23               LD HL,(FILNAME)
     413/     229 : 22 FE 23               LD  (FILE2),HL
     414/     22C : 3E EF                  LD A,0EFH      ;DEZIMALPUNKTE EIN
     415/     22E : 32 EA 23               LD  (TAPDIS),A
     416/     231 :                     LEAD:
     417/     231 : 3A EA 23               LD A,(TAPDIS)
     418/     234 : D3 F4                  OUT  (SEGMENT),A
     419/     236 : 21 E8 03               LD HL,1000
     420/     239 :                     LEAD1:
     421/     239 : CD 00 08               CALL PERIOD    ;EMPANGSFREQUENZ FESTSTELLEN
     422/     23C : 38 F3                  JR  C,LEAD     ;WDHLG., SOLANGE NICHT 1 KHZ
     423/     23E : 2B                     DEC HL         ;TEST, OB 1000 MAL 1 KHZ
     424/     23F : 7C                     LD A,H
     425/     240 : B5                     OR L
     426/     241 : 20 F6                  JR NZ,LEAD1    ;WDHLG., BIS 1000 x 1 KHZ
     427/     243 :                     LEAD2:
     428/     243 : CD 00 08               CALL PERIOD
     429/     246 : 30 FB                  JR NC,LEAD2    ;WDHLG., SOLANGE NOCH 1 KHZ
     430/     248 : 21 EB 23               LD HL,FILNAME  ;ADR FUER HINTERLEGUNG DESCRIPTOR
     431/     24B : 01 07 00               LD BC,0007H
     432/     24E : CD A7 03               CALL TAPEIN    ;7 BYTE LESEN
     433/     251 : 38 DE                  JR  C,LEAD     ;SPR., WENN UEBERTRAGUNGSFEHLER
     434/     253 : ED 5B EB 23            LD DE,(FILNAME)
     435/     257 : CD B7 08               CALL ADRSDP    ;EMPFANGENEN FILENAMEN DARSTELLEN
     436/     25A : 06 4B                  LD B,75
     437/     25C :                     FILEDP:
     438/     25C : CD 83 08               CALL DAK2      ;ANZEIGEN
     439/     25F : 10 FB                  DJNZ FILEDP
     440/     261 : 2A FE 23               LD HL,(FILE2)  ;SOLL-NAMEN LESEN
     441/     264 : B7                     OR A
     442/     265 : ED 52                  SBC HL,DE
     443/     267 : 3E F7                  LD A,0F7H      ;"-"-ZEICHEN
     444/     269 : 32 EA 23               LD (TAPDIS),A
     445/     26C : 20 C3                  JR NZ,LEAD     ;SPR., WENN FALSCHER FILENAME
     446/     26E : 3E FE                  LD A,0FEH      ; "'"-ZEICHEN EIN
     447/     270 : D3 F4                  OUT (SEGMENT),A
     448/     272 : CD 95 03               CALL GETPTR    ;LAENGE DES BLOCKES BER.
     449/     275 : 38 A8                  JR  C,ERROR    ;WENN ENDADR<ANF.ADR
     450/     277 : CD A7 03               CALL TAPEIN    ;DATENSATZ EINLESEN
     451/     27A : 38 A3                  JR  C,ERROR    ;SPR., WENN UEBERTR.FEHLER
     452/     27C : CD 88 03               CALL SUM       ;PRUEFSUMME BER.
     453/     27F : 21 F1 23               LD HL,CHKSUMH
     454/     282 : BE                     CP (HL)        ;VERGLEICH MIT UEBERTR. PRUEFS.
     455/     283 : 20 9A                  JR NZ,ERROR    ;SPR., WENN FEHLER
     456/     285 : 18 92                  JR ENDTAP
     457/     287 :                     
     458/     287 :                     ;----------------- FUNKTIONSTASTEN AUSWERTEN -------
     459/     287 :                     BRANCH:
     460/     287 : 5E                     LD E,(HL)      ;ADR DES FUNKTIONSPROGRAMMTEILS
     461/     288 : 23                     INC HL
     462/     289 : 56                     LD D,(HL)
     463/     28A : 23                     INC HL
     464/     28B : D5                     PUSH DE
     465/     28C : 5F                     LD E,A
     466/     28D : 16 00                  LD D,0
     467/     28F : 19                     ADD HL,DE
     468/     290 : D1                     POP DE
     469/     291 : 6E                     LD L,(HL)
     470/     292 : 26 00                  LD H,0
     471/     294 : 19                     ADD HL,DE      ;ADR DES GEW. PROG. TEILS
     472/     295 : E9                     JP (HL)
     473/     296 :                     
     474/     296 :                     ;----------------- -
     475/     296 :                     ERRDIS:
     476/     296 : 21 FD 23               LD HL,FUFEFLAG
     477/     299 : CB FE                  SET 7,(HL)
     478/     29B : C9                     RET
     479/     29C :                     
     480/     29C :                     ;----------------- MUSIK UND GRAPHIK BEI ERSTEINSCH. -
     481/     29C :                     INI:
     482/     29C : 3E 80                  LD A,80H
     483/     29E : 32 FC 23               LD (INIFLAG),A ;FLAG AUF INITIALISIERT SETZEN
     484/     2A1 : CD EA 08               CALL MONMUS    ; MUSIKPROGRAMM
     485/     2A4 : CD 1B 03               CALL INIDIP    ; ANFANGSGRAPHIK
     486/     2A7 : C9                     RET
     487/     2A8 :                     
     488/     2A8 :                     ;-----------------------------------------------------
     489/     2A8 :                     PRECL1:
     490/     2A8 : 3A FD 23               LD A,(FUFEFLAG)
     491/     2AB : B7                     OR A
     492/     2AC : C8                     RET Z          ;RET., WENN KEIN FLAG
     493/     2AD : 3E 00                  LD A,0
     494/     2AF : 77                     LD (HL),A      ;ZELLE LOESCHEN
     495/     2B0 : 32 FD 23               LD (FUFEFLAG),A;FLAG LOESCHEN
     496/     2B3 : C9                     RET
     497/     2B4 :                     
     498/     2B4 :                     ;---------------------- 2 BYTE IM RAM LOESCHEN ------
     499/     2B4 :                     PRECL2:
     500/     2B4 : CD A8 02               CALL PRECL1    ;1 BYTE LOE., WENN FUFEFLAG NICHT 0
     501/     2B7 : C8                     RET  Z         ;RET., WENN KEIN FLAG
     502/     2B8 : 23                     INC HL
     503/     2B9 : 77                     LD (HL),A      ;NAECHSTE ZELLE LOESCHEN
     504/     2BA : 2B                     DEC HL
     505/     2BB : C9                     RET
     506/     2BC :                     
     507/     2BC :                     ;--------------------- ADR U. DAT ANZ., ADR GEPUNKTET-
     508/     2BC :                     MEMDP1:
     509/     2BC : 3E 01                  LD A,01H       ;CODE "ADRESSE"
     510/     2BE : 06 04                  LD B,04H       ;ANZ. ADRESSSTELLEN
     511/     2C0 : 21 F4 23               LD HL,ADRLED
     512/     2C3 : 18 07                  JR SAV12
     513/     2C5 :                     
     514/     2C5 :                     ;--------------------- ADR U. DAT ANZ.,ADR GEPUNKTET -
     515/     2C5 :                     MEMDP2:
     516/     2C5 : 3E 02                  LD A,02H       ;CODE "DATEN"
     517/     2C7 : 06 02                  LD B,02H       ;ANZAHL DATENSTELLEN
     518/     2C9 : 21 F2 23               LD HL,DATLED
     519/     2CC :                     SAV12:
     520/     2CC : 32 FB 23               LD (ATCODE),A  ;CODE ABSPEICHERN
     521/     2CF : D9                     EXX
     522/     2D0 : ED 5B F8 23            LD DE,(USERPC) ;ANWENDERADR ANZEIGEN
     523/     2D4 : CD B7 08               CALL ADRSDP
     524/     2D7 : 1A                     LD A,(DE)      ;INHALT DER ADRESS. RAM-ZELLE
     525/     2D8 : CD C3 08               CALL DADP      ;DATUM ANZEIGEN
     526/     2DB : D9                     EXX
     527/     2DC :                     SETPT:
     528/     2DC : CB E6                  SET 4,(HL)     ; DEZIMALPUNKTE SETZEN
     529/     2DE : 23                     INC HL
     530/     2DF : 10 FB                  DJNZ SETPT     ;WDHLG., BIS ALLE DEZIMALPUNKTEPT
     531/     2E1 : C9                     RET
     532/     2E2 :                     
     533/     2E2 :                     ;--------------------- PARAMETER ANZEIGEN ----------
     534/     2E2 :                     STEPDP:
     535/     2E2 : CD FD 02               CALL LOCTBF    ;PARAMETERADR. BERECHNEN
     536/     2E5 : 5E                     LD E,(HL)      ;INHALT DER ADRES. ZELLE NACH DE
     537/     2E6 : 23                     INC HL
     538/     2E7 : 56                     LD D,(HL)
     539/     2E8 : CD B7 08               CALL ADRSDP    ;DARSTELLEN
     540/     2EB : 21 F4 23               LD HL,ADRLED   ;ADR PUNKTIEREN
     541/     2EE : 06 04                  LD B,04H
     542/     2F0 : CD DC 02               CALL SETPT
     543/     2F3 : CD 07 03               CALL LOCTNA    ;ZEICHEN FUER PARAMETERANZ. NACH A
     544/     2F6 : 6F                     LD L,A
     545/     2F7 : 26 08                  LD H,08H       ;"-"-ZEICHEN
     546/     2F9 : 22 F2 23               LD (DATLED),HL ;IN DATENANZ. DARSTELLEN
     547/     2FC : C9                     RET
     548/     2FD :                     
     549/     2FD :                     ;--------------------- PARAMETERADR. BERECHNEN ----
     550/     2FD :                                       ;EINTTRIT: ----
     551/     2FD :                                       ;AUSTRITT: ADR IN HL
     552/     2FD :                                       ;ZERSTOERT: A
     553/     2FD :                     LOCTBF:
     554/     2FD : 3A FA 23               LD A, (ATFLAG) ;PARAMETERCODE
     555/     300 : 87                     ADD A,A        ; x 2
     556/     301 : 21 EB 23               LD HL,FILNAME
     557/     304 : 85                     ADD A,L        ; + DESCRIPTOR-AREA
     558/     305 : 6F                     LD L,A
     559/     306 : C9                     RET
     560/     307 :                     
     561/     307 :                     ;--------------------- ZEICHEN FUER PARAMETERANZEIGE --
     562/     307 :                                       ;EINTRITT:
     563/     307 :                                       ;AUSTRITT: ZEICHEN IN A
     564/     307 :                                       ;ZERSTOERT: DE
     565/     307 :                     LOCTNA:
     566/     307 : 3A FB 23               LD A,(ATCODE)  ; CODE "FROM TAPE" ODER "TO TAPE"
     567/     30A : D6 04                  SUB 04H        ; - 4
     568/     30C : 87                     ADD A,A
     569/     30D : 87                     ADD A,A        ; x 4
     570/     30E : 11 89 09               LD DE,DISP4    ; ANZEIGETEXT
     571/     311 : 83                     ADD A,E
     572/     312 : 5F                     LD E,A         ;NEUE ADR NACH DE (FROM ODER TO)
     573/     313 : 3A FA 23               LD A,(ATFLAG)  ;CODE FUER PARAMETER
     574/     316 : 83                     ADD A,E
     575/     317 : 5F                     LD E,A         ;ADRESSE ZEICHEN
     576/     318 : 1A                     LD A,(DE)
     577/     319 : B7                     OR A
     578/     31A : C9                     RET
     579/     31B :                     
     580/     31B :                     ;--------------------- GRAPHIK FUER ANFANGS-ANZEIGE --
     581/     31B :                     INIDIP:
     582/     31B : 0E 05                  LD C,05H       ;ANZAHL DER WDHLG.
     583/     31D : 21 83 09               LD HL,DISP3    ;TEXT "HALLO "
     584/     320 : E5                     PUSH HL
     585/     321 : DD 21 7D 09            LD IX,DISP2    ;TEXT " USER "
     586/     325 :                     A1:
     587/     325 : CD 5E 03               CALL SOU1K
     588/     328 : DD E3                  EX (SP),IX     ;ADRESS-AUSTAUSCH
     589/     32A : 06 14                  LD B,20
     590/     32C :                     A2:
     591/     32C : CD 83 08               CALL DAK2
     592/     32F : 10 FB                  DJNZ A2
     593/     331 : CD 67 03               CALL SOU2K
     594/     334 : 06 14                  LD B,20
     595/     336 :                     A3:
     596/     336 : CD 83 08               CALL DAK2
     597/     339 : 10 FB                  DJNZ A3
     598/     33B : 0D                     DEC C
     599/     33C : 20 E7                  JR NZ,A1
     600/     33E :                     
     601/     33E : 0E 15                  LD C,21
     602/     340 : DD 21 89 09            LD IX,DISP4
     603/     344 :                     BLOOP:
     604/     344 : 06 0B                  LD B,11
     605/     346 :                     B1:
     606/     346 : CD 83 08               CALL DAK2
     607/     349 : 10 FB                  DJNZ B1
     608/     34B : CB 41                  BIT 0,C
     609/     34D : 20 05                  JR NZ,B2
     610/     34F : CD 67 03               CALL SOU2K
     611/     352 : 18 03                  JR B3
     612/     354 :                     B2:
     613/     354 : CD 5E 03               CALL SOU1K
     614/     357 :                     B3:
     615/     357 : DD 2B                  DEC IX
     616/     359 : 0D                     DEC C
     617/     35A : 20 E8                  JR NZ,BLOOP
     618/     35C :                     
     619/     35C : E1                     POP HL         ;STACK-KOR.
     620/     35D : C9                     RET
     621/     35E :                     
     622/     35E :                     ;---------------------- 1KHZ  80ms ----------------
     623/     35E :                     SOU1K:
     624/     35E : D9                     EXX
     625/     35F : 21 50 00               LD HL,80
     626/     362 : CD 70 03               CALL SOUN1K
     627/     365 : D9                     EXX
     628/     366 : C9                     RET
     629/     367 :                     
     630/     367 :                     ;--------------------- 2KHZ  80ms -----------------
     631/     367 :                     SOU2K:
     632/     367 : D9                     EXX
     633/     368 : 21 A0 00               LD HL,160
     634/     36B : CD 74 03               CALL SOUN2K
     635/     36E : D9                     EXX
     636/     36F : C9                     RET
     637/     370 :                     
     638/     370 :                     ;--------------------- TONSIGNAL 1KHZ --------------
     639/     370 :                     SOUN1K:
     640/     370 : 0E 20                  LD C,32
     641/     372 : 18 02                  JR SOUND
     642/     374 :                     
     643/     374 :                     ;--------------------- TONSIGNAL 2KHZ --------------
     644/     374 :                     SOUN2K:
     645/     374 : 0E 0F                  LD C,15
     646/     376 :                     
     647/     376 :                     SOUND:
     648/     376 : 29                     ADD HL,HL      ; x 2 WEGEN H- UND L-TEIL DES TAKTES
     649/     377 : 11 01 00               LD DE,0001H    ;FUER ZAEHLUNG
     650/     37A : 3E FF                  LD A,0FFH      ;TAPE.OUT=H, ANZEIGE AUS
     651/     37C :                     SQWAVE:
     652/     37C : D3 F5                  OUT (DIGITAP),A
     653/     37E : 41                     LD B,C
     654/     37F : 10 FE                  DJNZ $         ;ZEITVERZ.
     655/     381 : EE 02                  XOR 2          ;TAPE.OUT=L
     656/     383 : ED 52                  SBC HL,DE
     657/     385 : 20 F5                  JR NZ,SQWAVE   ;WDHLG., BIS ALLE TAKTE
     658/     387 : C9                     RET
     659/     388 :                     
     660/     388 :                     ;--------------------- PRUEFSUMME ----------------
     661/     388 :                                       ;EINTRITT: -
     662/     388 :                                       ;AUSTRITT: SUMME IN A
     663/     388 :                     SUM:
     664/     388 : CD 95 03               CALL GETPTR
     665/     38B : D8                     RET C          ;RET., WENN FEHLER
     666/     38C : AF                     XOR A
     667/     38D :                     SUMCAL:
     668/     38D : 86                     ADD A,(HL)     ;AUFSUMMIEREN
     669/     38E : ED A1                  CPI            ;NAECHSTE ADR
     670/     390 : EA 8D 03               JP PE,SUMCAL   ;WDHLG., BIS ALLE BYTES
     671/     393 : B7                     OR A
     672/     394 : C9                     RET
     673/     395 :                     
     674/     395 :                     ;--------------------- SPEICHERLAENGE BER. ---------
     675/     395 :                                       ;EINTRITT:
     676/     395 :                                       ;AUSTRITT: LAENGE IN BC
     677/     395 :                                       ;          BEI FEHLER CY=1
     678/     395 :                     GETPTR:
     679/     395 : 21 ED 23               LD HL,STARTADR ;DESCRIPTORAREA
     680/     398 : 5E                     LD E,(HL)      ;STARTADR
     681/     399 : 23                     INC HL
     682/     39A : 56                     LD D,(HL)
     683/     39B : 23                     INC HL
     684/     39C : 4E                     LD C,(HL)      ;ENDADR (C ZWI.SP. WEG. ADR IN HL)
     685/     39D : 23                     INC HL
     686/     39E : 66                     LD H,(HL)
     687/     39F : 69                     LD L,C
     688/     3A0 : B7                     OR A           ;CY LOESCHEN
     689/     3A1 : ED 52                  SBC HL, DE     ;ABSTAND
     690/     3A3 : 4D                     LD C,L         ;NACH BC LADEN
     691/     3A4 : 44                     LD B,H
     692/     3A5 : EB                     EX DE,HL
     693/     3A6 : C9                     RET
     694/     3A7 :                     
     695/     3A7 :                      ;---------------------- LESEN VOM BAND -------------
     696/     3A7 :                                       ;EINTRITT: ZIELANFANGSADR IN HL
     697/     3A7 :                                       ;          LAENGE IN BC
     698/     3A7 :                                       ;AUSTRITT:
     699/     3A7 :                      TAPEIN:
     700/     3A7 : AF                     XOR A
     701/     3A8 : 08                     EX AF,AF'
     702/     3A9 :                      TLOOP:
     703/     3A9 : CD B4 03               CALL GTBYTE    ;1 BYTE LESEN
     704/     3AC : 73                     LD  (HL),E     ;ABSPEICHERN
     705/     3AD : ED A1                  CPI            ;NAECHSTE ADR
     706/     3AF : EA A9 03               JP PE,TLOOP    ;WDHLG., BIS ALLE BYTE
     707/     3B2 : 08                     EX AF,AF'
     708/     3B3 : C9                     RET
     709/     3B4 :                     
     710/     3B4 :                      ;-------------------- 1 BYTE VOM BAND LESEN ----
     711/     3B4 :                                       ;EINTRITT:
     712/     3B4 :                                       ;AUSTRITT: DATENBYTE IN E
     713/     3B4 :                      GTBYTE:
     714/     3B4 : CD C5 03               CALL GETBIT    ;STARTBIT
     715/     3B7 : 16 08                  LD D,08H       ;8 BIT
     716/     3B9 :                      GLOOP:
     717/     3B9 : CD C5 03               CALL GETBIT    ;DATENBIT LESEN
     718/     3BC : CB 1B                  RR E           ;IN E SCHIEBEN
     719/     3BE : 15                     DEC D
     720/     3BF : 20 F8                  JR NZ,GLOOP    ;WDHLG., BIS 8 BIT
     721/     3C1 : CD C5 03               CALL GETBIT    ;STOPBIT
     722/     3C4 : C9                     RET
     723/     3C5 :                     
     724/     3C5 :                      ;-------------------- 1 BIT VOM BAND LESEN ---------
     725/     3C5 :                                       ;EINTRITT:
     726/     3C5 :                                       ;AUSTRITT: BIT IN CY
     727/     3C5 :                      GETBIT:
     728/     3C5 : D9                     EXX
     729/     3C6 : 21 00 00               LD HL,0000
     730/     3C9 :                      COUNT:
     731/     3C9 : CD 00 08               CALL PERIOD    ;TAKTLAENGE
     732/     3CC : 14                     INC D
     733/     3CD : 15                     DEC D          ;Z-FLAG SETZEN/RUECKSETZEN
     734/     3CE : 20 11                  JR NZ,TERR     ;SPR., WENN ZU GROSS (FEHLER)
     735/     3D0 : 38 06                  JR  C,SHORTP   ;SPR., WENN 1 KHZ
     736/     3D2 :                                       ;FREQU. IST 2 KHZ
     737/     3D2 : 2D                     DEC L          ;L=L-2
     738/     3D3 : 2D                     DEC L
     739/     3D4 : CB C4                  SET 0,H        ;H=1
     740/     3D6 : 18 F1                  JR COUNT       ;WDHLG.
     741/     3D8 :                     SHORTP:
     742/     3D8 :                                       ;FREQU. IST 1 KHZ
     743/     3D8 : 2C                     INC L          ;L=L+1
     744/     3D9 : CB 44                  BIT 0,H
     745/     3DB : 28 EC                  JR  Z,COUNT    ;SPR., WENN NOCH NICHT 2 KHZ EMPFANGEN
     746/     3DD : CB 15                  RL L           ;BIT IN CY
     747/     3DF : D9                     EXX
     748/     3E0 : C9                     RET
     749/     3E1 :                     TERR:
     750/     3E1 :                                       ;FREQUENZ AUSSER ERLAUBTEM BEREICH
     751/     3E1 : 08                     EX AF,AF'
     752/     3E2 : 37                     SCF
     753/     3E3 : 08                     EX AF,AF'
     754/     3E4 : D9                     EXX
     755/     3E5 : C9                     RET
     756/     3E6 :                     
     757/     3E6 :                     ;--------------------- ADR 2. ROM/EPROM --------------
     758/     400 :                              ORG 0400H
     759/     400 :                     
     760/     400 : =>TRUE                       IF ROM_=2
     761/     400 : FF                           DEFB 0FFH
     762/     800 :                              ORG 0800H
     763/     800 :                              ENDIF
     764/     800 :                     
     765/     800 :                     ;--------------------- TAKTLAENGE VOM BAND-SIGNAL ----
     766/     800 :                                       ;EINTRITT: ----
     767/     800 :                                       ;AUSTRITT: CY=O --> 1 KHZ
     768/     800 :                                       ;          CY=1 --> 2 KHZ
     769/     800 :                     PERIOD:
     770/     800 : 11 00 00               LD DE,0000     ;ZAEHLER = 0
     771/     803 :                     CHK0:
     772/     803 : DB F5                  IN A,(DIGITAP) ;EINLESEN
     773/     805 : 13                     INC DE         ;ZAEHLER ERHOEHEN
     774/     806 : 1F                    RRA
     775/     807 : 38 FA                  JR  C,CHK0     ;WDHLG., WENN EINGANG H
     776/     809 : 3E 00                  LD A,0         ;AZEIGE FREI, TAPE.OUT = L
     777/     80B : D3 F5                  OUT (DIGITAP),A
     778/     80D :                     CHK1:
     779/     80D : DB F5                  IN A,(DIGITAP) ;EINLESEN
     780/     80F : 13                     INC DE         ;ZAEHLER ERHOEHEN
     781/     810 : 1F                    RRA
     782/     811 : 30 FA                  JR NC,CHK1     ;WDHLG., WENN EINGANG L
     783/     813 : 3E 02                  LD A,2         ; ANZEIGE FREI, TAPE.OUT = H
     784/     815 : D3 F5                  OUT (DIGITAP),A
     785/     817 : 7B                     LD A,E
     786/     818 : FE 16                  CP 22          ;TEST   <> 1,5 KHZ
     787/     81A : C9                     RET
     788/     81B :                     
     789/     81B :                     ;--------------------- DATEN AUF BAND AUSGEBEN ------
     790/     81B :                                       ;EINTRITT: ANFANGSADR. IN HL
     791/     81B :                                       ;          ANZAHL IN BC
     792/     81B :                                       ;AUSTRITT:
     793/     81B :                     TAPOUT:
     794/     81B : 5E                     LD E,(HL)      ;BYTE NACH E
     795/     81C : CD 25 08               CALL OUTBYTE
     796/     81F : ED A1                  CPI            ;NAECHSTES BYTE
     797/     821 : EA 1B 08               JP PE,TAPOUT   ;WDHLG., WENN NOCH BYTES ZU SENDEN
     798/     824 : C9                     RET
     799/     825 :                     
     800/     825 :                     ;--------------------- EIN BYTE AUSGEBEN ----------
     801/     825 :                                       ;EINTRITT: BYTE IN E
     802/     825 :                                       ;AUSTRITT:
     803/     825 :                     OUTBYTE:
     804/     825 : 16 08                  LD D,08H       ;8 BIT
     805/     827 : B7                     OR A
     806/     828 : CD 38 08               CALL OUTBIT    ;STARTBIT
     807/     82B :                     OLOOP:
     808/     82B : CB 1B                  RR E           ;BIT IN CY
     809/     82D : CD 38 08               CALL OUTBIT    ;DATENBIT AUSGEBEN
     810/     830 : 15                     DEC D
     811/     831 : 20 F8                  JR NZ,OLOOP    ;WDHLG., BIS 8 BIT
     812/     833 : 37                     SCF
     813/     834 : CD 38 08               CALL OUTBIT    ;STOPBIT
     814/     837 : C9                     RET
     815/     838 :                     
     816/     838 :                     ;----------------- -
     817/     838 :                     OUTBIT:
     818/     838 : D9                     EXX            ;OUTPUT 1 BIT DATA
     819/     839 : 26 00                  LD H,0
     820/     83B : 38 09                  JR  C,OUT1
     821/     83D :                     OUT0:
     822/     83D : 2E 0C                  LD L,0CH
     823/     83F : CD 74 03               CALL SOUN2K
     824/     842 : 2E 03                  LD L,03H
     825/     844 : 18 07                  JR BITEND
     826/     846 :                     OUT1:
     827/     846 : 2E 06                  LD L,06H
     828/     848 : CD 74 03               CALL SOUN2K
     829/     84B : 2E 06                  LD L,06H
     830/     84D :                     BITEND:
     831/     84D : CD 70 03               CALL SOUN1K
     832/     850 : D9                     EXX
     833/     851 : C9                     RET
     834/     852 :                     ;---------------------- TEST, 0B (HL) RAM IST -------
     835/     852 :                     ;                      2 x INVERTIERTES SCHREIBEN UND
     836/     852 :                     ;                      LESEN AUS/IN DEN DURCH HL ANGEG.
     837/     852 :                     ;                      SPEICHERPLATZ UND VERGLEICHEN
     838/     852 :                     ;                      AUSGABE: Z=1, WENN RAM
     839/     852 :                     
     840/     852 :                     RAMCHK:
     841/     852 : 7E                     LD A,(HL)
     842/     853 : 2F                     CPL
     843/     854 : 77                     LD (HL),A
     844/     855 : 7E                     LD A,(HL)
     845/     856 : 2F                     CPL
     846/     857 : 77                     LD (HL),A
     847/     858 : BE                     CP (HL)
     848/     859 : C9                     RET
     849/     85A :                     
     850/     85A :                     ;--------------------- LED UND TASTATUR-ABFR.--------
     851/     85A :                     DAK1:
     852/     85A : DD E5                  PUSH IX        ;ADR ANZ.TEXT RETTEN
     853/     85C : 21 FD 23               LD HL,FUFEFLAG
     854/     85F : CB 7E                  BIT 7,(HL)     ;FEHLERFLAG TESTEN
     855/     861 : 28 04                  JR  Z,SCPRE    ;SPR., WENN KEIN FEHLER
     856/     863 : DD 21 A5 09            LD IX,ERR      ;ADR FEHLERTEXT
     857/     867 :                     SCPRE:
     858/     867 : 06 06                  LD B,06H
     859/     869 :                     SCNX:
     860/     869 : CD 83 08               CALL DAK2
     861/     86C : 30 F9                  JR NC,SCPRE    ;WDHLG., WENN TASTE NOCH GEDR.
     862/     86E : 10 F9                  DJNZ SCNX
     863/     870 : CB BE                  RES 7,(HL)     ;FEHLERLAG LOESCHEN
     864/     872 : DD E1                  POP IX         ;ALTER TEXT
     865/     874 :                     SCLOOP:
     866/     874 : CD 83 08               CALL DAK2
     867/     877 : 38 FB                  JR  C,SCLOOP   ;WDHLG., WENN KEINE TASTE GEDR.
     868/     879 : 21 EF 09               LD HL,KEYTAB   ;TASTE NACH TABELLE UMCODIEREN
     869/     87C : 85                     ADD A,L
     870/     87D : 6F                     LD L,A
     871/     87E : 30 01                  JR NC,SCNCY
     872/     880 : 24                     INC H
     873/     881 :                     SCNCY:
     874/     881 : 7E                     LD A,(HL)      ;UMCODIERTER TASTENWERT
     875/     882 : C9                     RET
     876/     883 :                     
     877/     883 :                     ;----------------- LED U. TASTATUR-UP --------------
     878/     883 :                     DAK2:
     879/     883 : 37                     SCF
     880/     884 : 08                     EX AF,AF'
     881/     885 : D9                     EXX
     882/     886 : 0E 00                  LD C,0         ;TASTENNUMMER = 0
     883/     888 : 1E FB                  LD E,11111011B ;BITMUSTER FUER DIGITANSTEUERUNG
     884/     88A :                     KCOL:
     885/     88A : DD 7E 00               LD A,(IX)      ;SEGMENTE ANSTEUERN
     886/     88D : 2F                     CPL
     887/     88E : D3 F4                  OUT (SEGMENT),A
     888/     890 : 7B                     LD A,E         ;DIGIT ANSTEUERN
     889/     891 : D3 F5                  OUT (DIGITAP),A
     890/     893 : 06 64                  LD B,100       ;ZEITVERZOEGERUNG
     891/     895 : 10 FE                  DJNZ $
     892/     897 : 06 04                  LD B,04H       ;ZEILENZAHL TASTENMATRIX
     893/     899 : DB F9                  IN A,(KEYIN)   ;TASTENWERT EINLESEN
     894/     89B : 57                     LD D,A         ;TEST, OB TASTE GEDRUECKT
     895/     89C :                     KROW:
     896/     89C : CB 12                  RL D
     897/     89E : 38 02                  JR  C,NOKEY
     898/     8A0 : 79                     LD A,C
     899/     8A1 : 08                     EX AF,AF'      
     900/     8A2 :                        ;WENN TASTE: -> CY=0, A = NUMMER
     901/     8A2 :                     NOKEY:
     902/     8A2 : 0C                     INC C          ;ABFRAGEZAEHLER ERHOEHEN
     903/     8A3 : 10 F7                  DJNZ KROW      ;WDHLG., WENN NOCH NICHT ALLE ZEILEN
     904/     8A5 : DD 23                  INC IX         ;NAECHSTES ZEICHEN ZUR ANZEIGE
     905/     8A7 : CB 03                  RLC E
     906/     8A9 : 3E FF                  LD A,0FFH
     907/     8AB : D3 F5                  OUT (DIGITAP),A;ANZEIGE AUS
     908/     8AD : 38 DB                  JR C,KCOL      ;GGF. NAECHSTE SPALTE
     909/     8AF : 11 FA FF               LD DE,0FFFAH
     910/     8B2 : DD 19                  ADD IX,DE      ;WIEDERHERST. ANF.ADR DES ANZ.TEXTES
     911/     8B4 : D9                     EXX
     912/     8B5 : 08                     EX AF,AF'
     913/     8B6 : C9                     RET
     914/     8B7 :                     
     915/     8B7 :                     ;-------------------- ADRESSE ANZEIGEN -------------
     916/     8B7 :                     ADRSDP:
     917/     8B7 : 21 F4 23               LD HL,ADRLED
     918/     8BA : 7B                     LD A,E         ;UNTERE 2 ZIFFERN
     919/     8BB : CD D9 08               CALL TWOSEG
     920/     8BE : 7A                     LD A,D         ;OBERE 2 ZIFFERN
     921/     8BF : CD D9 08               CALL TWOSEG
     922/     8C2 : C9                     RET
     923/     8C3 :                     
     924/     8C3 :                     ;---------------------- A-REG IN DAT-ANZ-SPEICHER ---
     925/     8C3 :                     DADP:
     926/     8C3 : 21 F2 23               LD HL,DATLED
     927/     8C6 : CD D9 08               CALL TWOSEG
     928/     8C9 : C9                     RET
     929/     8CA :                     
     930/     8CA :                     ;--------------------- -
     931/     8CA :                     ONESEG:
     932/     8CA : E5                     PUSH HL
     933/     8CB : D5                     PUSH DE
     934/     8CC : 21 07 0A               LD HL,SEGTAB   ;ADR DER SEGMENTTABELLE
     935/     8CF : E6 0F                  AND 0FH        ;OBERES HALBBYTE AUSBLENDEN
     936/     8D1 : 5F                     LD E,A
     937/     8D2 : 16 00                  LD D,0
     938/     8D4 : 19                     ADD HL,DE
     939/     8D5 : D1                     POP DE
     940/     8D6 : 7E                     LD A,(HL)      ;KONVERTIERTE ZAHL NACH A
     941/     8D7 : E1                     POP HL
     942/     8D8 : C9                     RET
     943/     8D9 :                     
     944/     8D9 :                     ;--------------------- -
     945/     8D9 :                     TWOSEG:
     946/     8D9 : F5                     PUSH AF
     947/     8DA : CD CA 08               CALL ONESEG    ;UNTERE ZIFFER UMWANDELN
     948/     8DD : 77                     LD (HL),A      ;ABSPEICHERN
     949/     8DE : 23                     INC HL         ;ADR FUER HINTERLEGUNG OBERE ZAHL
     950/     8DF : F1                     POP AF         ;URSPRUENGL. ZAHL
     951/     8E0 : 0F                     RRCA
     952/     8E1 : 0F                     RRCA
     953/     8E2 : 0F                     RRCA
     954/     8E3 : 0F                     RRCA           ;OBERES HALBBYTE
     955/     8E4 : CD CA 08               CALL ONESEG    ;OBERE ZIFFER UMWANDELN
     956/     8E7 : 77                     LD (HL),A      ;ABSPEICHERN
     957/     8E8 : 23                     INC HL         ;ADR GGF. NAECHSTE ZIFFER
     958/     8E9 : C9                     RET
     959/     8EA :                     
     960/     8EA :                     ;--------------------- MUSIKPROGRAMM -----------------
     961/     8EA :                     MONMUS:
     962/     8EA : FD 21 17 0A            LD IY,SONG     ;ADR DER NOTEN
     963/     8EE :                     MUSIC:
     964/     8EE : FD E5                  PUSH IY
     965/     8F0 : DD E1                  POP IX
     966/     8F2 :                     MUSLOOP:
     967/     8F2 : DD 7E 00               LD A,(IX)
     968/     8F5 : 87                     ADD A,A
     969/     8F6 : D8                     RET C          ;WENN WERT >= 80H
     970/     8F7 : FA EE 08               JP  M,MUSIC    ;WENN WERT >= 40H
     971/     8FA : 0E 00                  LD C,0
     972/     8FC : CB 77                  BIT 6,A
     973/     8FE : 20 02                  JR NZ,PLAY     ;WENN WERT >= 20H
     974/     900 : CB C9                  SET 1,C        ;AUSGABE-BIT
     975/     902 :                     PLAY:
     976/     902 : E6 3F                  AND 3FH
     977/     904 : 21 34 09               LD HL,FRQTAB
     978/     907 : 5F                     LD E,A
     979/     908 : 16 00                  LD D,0
     980/     90A : 19                     ADD HL,DE
     981/     90B : 5E                     LD E,(HL)
     982/     90C : 23                     INC HL
     983/     90D : 56                     LD D,(HL)
     984/     90E : DD 23                  INC IX
     985/     910 : DD 66 00               LD H,(IX)
     986/     913 : 3E FF                  LD A,0FFH
     987/     915 :                     TONE:
     988/     915 : 6A                    LD L,D
     989/     916 :                     TONOUT:
     990/     916 : D3 F5                  OUT (DIGITAP),A
     991/     918 : 43                     LD B,E
     992/     919 :                     DELAY:
     993/     919 : 00                     NOP
     994/     91A : 10 FD                  DJNZ DELAY
     995/     91C : A9                     XOR C
     996/     91D : 2D                     DEC L
     997/     91E : 20 F6                  JR NZ,TONOUT
     998/     920 : 25                     DEC H
     999/     921 : 20 F2                  JR NZ,TONE
    1000/     923 : DD 23                  INC IX
    1001/     925 : 18 CB                  JR MUSLOOP
    1002/     927 :                     
    1003/     927 :                     ;--------------------- ANZEIGEMOD TESTEN -------------
    1004/     927 :                     TESTM:
    1005/     927 : 3A FB 23               LD A,(ATCODE)
    1006/     92A : FE 01                  CP 01H
    1007/     92C : C8                     RET  Z
    1008/     92D : FE 02                  CP 02H
    1009/     92F : C8                     RET  Z
    1010/     930 : E1                     POP HL         ;RUECKKEHRADR. LOESCHEN
    1011/     931 : C3 96 02              JP ERRDIS
    1012/     934 :                     
    1013/     934 :                     ;--------------------- FREQUENZTABELLE ---------------
    1014/     934 :                     FRQTAB:
    1015/     934 : 70 18                 DEFW 1870H
    1016/     936 : 6A 1A                 DEFW 1A6AH
    1017/     938 : 64 1B                 DEFW 1B64H
    1018/     93A : 5E 1D                 DEFW 1D5EH
    1019/     93C : 59 1E                 DEFW 1E59H
    1020/     93E : 54 20                 DEFW 2054H
    1021/     940 : 4F 22                 DEFW 224FH
    1022/     942 : 4B 24                 DEFW 244BH
    1023/     944 : 46 26                 DEFW 2646H
    1024/     946 : 42 29                 DEFW 2942H
    1025/     948 : 3F 2B                 DEFW 2B3FH
    1026/     94A : 3B 2E                 DEFW 2E3BH
    1027/     94C : 38 31                 DEFW 3138H
    1028/     94E : 35 33                 DEFW 3335H
    1029/     950 : 32 37                 DEFW 3732H
    1030/     952 : 2F 3A                 DEFW 3A2FH
    1031/     954 : 2C 3D                 DEFW 3D2CH
    1032/     956 : 2A 41                 DEFW 412AH
    1033/     958 : 27 45                 DEFW 4527H
    1034/     95A : 25 49                 DEFW 4925H
    1035/     95C : 23 4D                 DEFW 4D23H
    1036/     95E : 21 52                 DEFW 5221H
    1037/     960 : 1F 57                 DEFW 571FH
    1038/     962 : 1D 5C                 DEFW 5C1DH
    1039/     964 : 1B 62                 DEFW 621BH
    1040/     966 : 1A 67                 DEFW 671AH
    1041/     968 : 18 6E                 DEFW 6E18H
    1042/     96A : 17 74                 DEFW 7417H
    1043/     96C : 16 7B                 DEFW 7B16H
    1044/     96E : 14 82                 DEFW 8214H
    1045/     970 : 13 8A                 DEFW 8A13H
    1046/     972 : 12 92                 DEFW 9212H
    1047/     974 :                     
    1048/     974 :                     ;---------------------- TEXTE ------------------------
    1049/     974 :                     DISP1:
    1050/     974 : E7                     DEFB 0E7H      ;"0"
    1051/     975 : EF                     DEFB 0EFH      ;"8"
    1052/     976 : 08                     DEFB 08H       ;"ù"
    1053/     977 : C6                     DEFB 0C6H      ;"C"
    1054/     978 : C2                     DEFB 0C2H      ;"L"
    1055/     979 : 00                     DEFB 00H       ;" "
    1056/     97A : 00                     DEFB 00H       ;" "
    1057/     97B : 4E                     DEFB 4EH       ;"F"
    1058/     97C : E7                     DEFB 0E7H      ;"0"
    1059/     97D :                     DISP2:
    1060/     97D : 00                     DEFB 00H       ;" "
    1061/     97E : 48                     DEFB 048H      ;"R"
    1062/     97F : CE                     DEFB 0CEH      ;"E"
    1063/     980 : AE                     DEFB 0AEH      ;"S"
    1064/     981 : E3                     DEFB 0E3H      ;"U"
    1065/     982 : 00                     DEFB 000H      ;" "
    1066/     983 :                     DISP3:
    1067/     983 : 00                     DEFB 000H      ;" "
    1068/     984 : E7                     DEFB 0E7H      ;"0"
    1069/     985 : C2                     DEFB 0C2H      ;"L"
    1070/     986 : C2                     DEFB 0C2H      ;"L"
    1071/     987 : 6F                     DEFB 06FH      ;"A"
    1072/     988 : 6B                     DEFB 06BH      ;"H"
    1073/     989 :                     DISP4:
    1074/     989 : 00                     DEFB 00H       ;" "
    1075/     98A : 00                     DEFB 00H       ;" "
    1076/     98B : 00                     DEFB 00H       ;" "
    1077/     98C : 00                     DEFB 00H       ;" "
    1078/     98D : 00                     DEFB 00H       ;" "
    1079/     98E : 00                     DEFB 00H       ;" "
    1080/     98F : 00                     DEFB 00H       ;" "
    1081/     990 : 00                     DEFB 00H       ;" "
    1082/     991 : 4E                     DEFB 04EH      ;"F"
    1083/     992 : AE                     DEFB 0AEH      ;"S"
    1084/     993 : CE                     DEFB 0CEH      ;"E"
    1085/     994 : 00                     DEFB 00H       ;" "
    1086/     995 : 4E                     DEFB 04EH      ;"F"
    1087/     996 : 00                     DEFB 00H       ;" "
    1088/     997 : 00                     DEFB 00H       ;" "
    1089/     998 : 00                     DEFB 00H       ;" "
    1090/     999 :                     DISP5:
    1091/     999 : 00                     DEFB 00H       ;" "
    1092/     99A : 00                     DEFB 00H       ;" "
    1093/     99B : CA                     DEFB 0CAH      ;"t"
    1094/     99C : 68                     DEFB 68H       ;"n"
    1095/     99D : 21                     DEFB 21H       ;"i"
    1096/     99E : 00                     DEFB 00H       ;" "
    1097/     99F :                     DISP6:
    1098/     99F : EF                     DEFB 0EFH      ;"8"
    1099/     9A0 : AD                     DEFB 0ADH      ;"3"
    1100/     9A1 : 00                     DEFB 00H       ;" "
    1101/     9A2 : CA                     DEFB 0CAH      ;"t"
    1102/     9A3 : AE                     DEFB 0AEH      ;"s"
    1103/     9A4 : 48                     DEFB 48H       ;"r"
    1104/     9A5 :                     ERR:
    1105/     9A5 : 00                     DEFB 00H       ;" "
    1106/     9A6 : 48                     DEFB 48H       ;"r"
    1107/     9A7 : E8                     DEFB 0E8H      ;"o"
    1108/     9A8 : 48                     DEFB 48H       ;"e"
    1109/     9A9 : 48                     DEFB 48H       ;"e"
    1110/     9AA : CE                     DEFB 0CEH      ;"E"
    1111/     9AB :                     
    1112/     9AB :                     ;--------------------- -
    1113/     9AB :                     KSUFUN:
    1114/     9AB : 4D 01                  DEFW KINC
    1115/     9AD : 00                     DEFB KINC-KINC ;"+"
    1116/     9AE : 05                     DEFB KDEC-KINC ;"-"
    1117/     9AF : 0A                     DEFB KEXEC-KINC;"EXEC"
    1118/     9B0 : 00                     DEFB 00H
    1119/     9B1 : 0F                     DEFB KDATA-KINC;"DATA"
    1120/     9B2 : 00                     DEFB 00H
    1121/     9B3 : 00                     DEFB 00H
    1122/     9B4 : 00                     DEFB 00H
    1123/     9B5 :                     ;--------------------- -
    1124/     9B5 :                     KFUN:
    1125/     9B5 : 63 01                  DEFW KADRS
    1126/     9B7 : 00                     DEFB 00H
    1127/     9B8 : 00                     DEFB KADRS-KADRS;"ADRS"
    1128/     9B9 : 00                     DEFB 00H
    1129/     9BA : 00                     DEFB 00H
    1130/     9BB : 00                     DEFB 00H
    1131/     9BC : 00                     DEFB 00H
    1132/     9BD : 04                     DEFB KTAPWR-KADRS;"TO TAPE"
    1133/     9BE : 04                     DEFB KTAPWR-KADRS;"FROM TAPE*
    1134/     9BF :                     ;--------------------- -
    1135/     9BF :                     HTAB:
    1136/     9BF : 6B 01                  DEFW HFIX
    1137/     9C1 : 00                     DEFB HFIX-HFIX ; FEHLER
    1138/     9C2 : 16                     DEFB HAD-HFIX  ;"ADRS"
    1139/     9C3 : 03                     DEFB HDA-HFIX  ;
    1140/     9C4 : 00                     DEFB 00H
    1141/     9C5 : 00                     DEFB 00H
    1142/     9C6 : 00                     DEFB 00H
    1143/     9C7 : 26                     DEFB HTAPWR-HFIX;"TO TAPE"
    1144/     9C8 : 26                     DEFB HTAPWR-HFIX;"FROM TAPE"
    1145/     9C9 : 00                     DEFB 00H
    1146/     9CA : 00                     DEFB 00H
    1147/     9CB :                     ;--------------------- -
    1148/     9CB :                     ITAB:
    1149/     9CB : A1 01                  DEFW IFIX
    1150/     9CD : 00                     DEFB IFIX-IFIX ;
    1151/     9CE : 03                     DEFB ADRADD-IFIX;
    1152/     9CF : 03                     DEFB ADRADD-IFIX;
    1153/     9D0 : 00                     DEFB 00H
    1154/     9D1 : 00                     DEFB 00H
    1155/     9D2 : 00                     DEFB 00H
    1156/     9D3 : 0E                     DEFB TPFUN1-IFIX;
    1157/     9D4 : 0E                     DEFB TPFUN1-IFIX;
    1158/     9D5 : 00                     DEFB 00H
    1159/     9D6 : 00                     DEFB 00H
    1160/     9D7 :                     ;--------------------- -
    1161/     9D7 :                     DTAB:
    1162/     9D7 : C0 01                  DEFW DFIX
    1163/     9D9 : 00                     DEFB 00H
    1164/     9DA : 03                     DEFB ADRDEC-DFIX;
    1165/     9DB : 03                     DEFB ADRDEC-DFIX;
    1166/     9DC : 00                     DEFB 00H
    1167/     9DD : 00                     DEFB 00H
    1168/     9DE : 00                     DEFB 00H
    1169/     9DF : 0E                     DEFB TPTUN2-DFIX;
    1170/     9E0 : 0E                     DEFB TPTUN2-DFIX;
    1171/     9E1 : 00                     DEFB 00H
    1172/     9E2 : 00                     DEFB 00H
    1173/     9E3 :                     ;--------------------- -
    1174/     9E3 :                     ETAB:
    1175/     9E3 : DF 01                  DEFW EFIX
    1176/     9E5 : 00                     DEFB 00H
    1177/     9E6 : 03                     DEFB ADREXC-EFIX;
    1178/     9E7 : 03                     DEFB ADREXC-EFIX;
    1179/     9E8 : 00                     DEFB 00H
    1180/     9E9 : 00                     DEFB 00H
    1181/     9EA : 00                     DEFB 00H
    1182/     9EB : 11                     DEFB EWT-EFIX  ;
    1183/     9EC : 47                     DEFB LOAD-EFIX ;
    1184/     9ED : 00                     DEFB 00H
    1185/     9EE : 00                     DEFB 00H
    1186/     9EF :                     ;----------------- TASTATURTABELLE -------------------
    1187/     9EF :                     KEYTAB:
    1188/     9EF : 12                     DEFB 12H       ;EXECUTE
    1189/     9F0 : 1E                     DEFB 1EH       ;STORE
    1190/     9F1 : 1F                     DEFB 1FH       ;LOAD
    1191/     9F2 : 00                     DEFB 0         ;NICHT BELEGT
    1192/     9F3 : 00                     DEFB 0         ;ZIFFERN 0...F
    1193/     9F4 : 01                     DEFB 1
    1194/     9F5 : 02                     DEFB 2
    1195/     9F6 : 03                     DEFB 3
    1196/     9F7 : 04                     DEFB 4
    1197/     9F8 : 05                     DEFB 5
    1198/     9F9 : 10                     DEFB 10H       ;+
    1199/     9FA : 07                     DEFB 7
    1200/     9FB : 08                     DEFB 8
    1201/     9FC : 09                     DEFB 9
    1202/     9FD : 0E                     DEFB 0EH
    1203/     9FE : 0B                     DEFB 0BH
    1204/     9FF : 0C                     DEFB 0CH
    1205/     A00 : 0D                     DEFB 0DH
    1206/     A01 : 0A                     DEFB 0AH
    1207/     A02 : 0F                     DEFB 0FH
    1208/     A03 : 19                     DEFB 19H       ;ADRESS
    1209/     A04 : 14                     DEFB 14H       ;DATA
    1210/     A05 : 06                     DEFB 6
    1211/     A06 : 11                     DEFB 11H       ;-
    1212/     A07 :                     
    1213/     A07 :                     ;----------------------- CODE FUER HEX-ZIFFERN --------
    1214/     A07 :                     SEGTAB:
    1215/     A07 : E7                     DEFB 0E7H      ; 0
    1216/     A08 : 21                     DEFB 21H       ; 1
    1217/     A09 : CD                     DEFB 0CDH      ; 2
    1218/     A0A : AD                     DEFB 0ADH      ; 3
    1219/     A0B : 2B                     DEFB 2BH       ; 4
    1220/     A0C : AE                     DEFB 0AEH      ; 5
    1221/     A0D : EE                     DEFB 0EEH      ; 6
    1222/     A0E : 25                     DEFB 25H       ; 7
    1223/     A0F : EF                     DEFB 0EFH      ; 8
    1224/     A10 : AF                     DEFB 0AFH      ; 9
    1225/     A11 : 6F                     DEFB 6FH       ; A
    1226/     A12 : EA                     DEFB 0EAH      ; B
    1227/     A13 : C6                     DEFB 0C6H      ; C
    1228/     A14 : E9                     DEFB 0E9H      ; D
    1229/     A15 : CE                     DEFB 0CEH      ; E
    1230/     A16 : 4E                     DEFB 4EH       ; F
    1231/     A17 :                     
    1232/     A17 :                     ;---------------------- LIED ------------------------
    1233/     A17 :                     SONG:
    1234/     A17 : 12 02                  DEFW 0212H
    1235/     A19 : 20 02                  DEFW 0220H
    1236/     A1B : 10 02                  DEFW 0210H
    1237/     A1D : 20 02                  DEFW 0220H
    1238/     A1F : 12 02                  DEFW 0212H
    1239/     A21 : 20 02                  DEFW 0220H
    1240/     A23 : 0D 02                  DEFW 020DH
    1241/     A25 : 20 02                  DEFW 0220H
    1242/     A27 : 09 02                  DEFW 0209H
    1243/     A29 : 20 02                  DEFW 0220H
    1244/     A2B : 0D 02                  DEFW 020DH
    1245/     A2D : 20 02                  DEFW 0220H
    1246/     A2F : 06 02                  DEFW 0206H
    1247/     A31 : 20 06                  DEFW 0620H
    1248/     A33 : 12 02                  DEFW 0212H
    1249/     A35 : 20 02                  DEFW 0220H
    1250/     A37 : 10 02                  DEFW 0210H
    1251/     A39 : 20 02                  DEFW 0220H
    1252/     A3B : 12 02                  DEFW 0212H
    1253/     A3D : 20 02                  DEFW 0220H
    1254/     A3F : 0D 02                  DEFW 020DH
    1255/     A41 : 20 02                  DEFW 0220H
    1256/     A43 : 09 02                  DEFW 0209H
    1257/     A45 : 20 02                  DEFW 0220H
    1258/     A47 : 0D 02                  DEFW 020DH
    1259/     A49 : 20 02                  DEFW 0220H
    1260/     A4B : 06 02                  DEFW 0206H
    1261/     A4D : 20 06                  DEFW 0620H
    1262/     A4F : 12 02                  DEFW 0212H
    1263/     A51 : 20 02                  DEFW 0220H
    1264/     A53 : 14 02                  DEFW 0214H
    1265/     A55 : 20 02                  DEFW 0220H
    1266/     A57 : 15 02                  DEFW 0215H
    1267/     A59 : 20 02                  DEFW 0220H
    1268/     A5B : 14 02                  DEFW 0214H
    1269/     A5D : 20 02                  DEFW 0220H
    1270/     A5F : 15 02                  DEFW 0215H
    1271/     A61 : 20 02                  DEFW 0220H
    1272/     A63 : 12 02                  DEFW 0212H
    1273/     A65 : 20 02                  DEFW 0220H
    1274/     A67 : 14 02                  DEFW 0214H
    1275/     A69 : 20 02                  DEFW 0220H
    1276/     A6B : 12 02                  DEFW 0212H
    1277/     A6D : 20 02                  DEFW 0220H
    1278/     A6F : 14 02                  DEFW 0214H
    1279/     A71 : 20 02                  DEFW 0220H
    1280/     A73 : 10 02                  DEFW 0210H
    1281/     A75 : 20 02                  DEFW 0220H
    1282/     A77 : 12 02                  DEFW 0212H
    1283/     A79 : 20 02                  DEFW 0220H
    1284/     A7B : 10 02                  DEFW 0210H
    1285/     A7D : 20 02                  DEFW 0220H
    1286/     A7F : 12 02                  DEFW 0212H
    1287/     A81 : 20 02                  DEFW 0220H
    1288/     A83 : 0D 02                  DEFW 020DH
    1289/     A85 : 20 02                  DEFW 0220H
    1290/     A87 : 12 04                  DEFW 0412H
    1291/     A89 : 20 06                  DEFW 0620H
    1292/     A8B : 80                     DEFB 80H
    1293/     A8C :                     ;-----------------------------------------------------
    1294/     A8C :                     
    1295/     A8C : =>FALSE                IF ROM_=1
    1296/     A8C :                        ORG 0690H
    1297/     A8C :                        ENDIF
    1298/     A8C :                     
    1299/     A8C : =>TRUE                 IF ROM_=2
    1300/     A90 :                        ORG 0A90H
    1301/     A90 :                        ENDIF
    1302/     A90 :                     
    1303/     A90 :                     START2:
    1304/     A90 : 22 EC 22               LD (REGHL),HL
    1305/     A93 : 21 46 0B               LD HL,RETURN
    1306/     A96 : 22 02 23               LD (STEPZEI),HL
    1307/     A99 :                     STARTST:
    1308/     A99 : E1                     POP HL
    1309/     A9A : E5                     PUSH HL
    1310/     A9B : ED 73 FA 22            LD (REGSP),SP
    1311/     A9F : 31 E4 22               LD SP,ARBSTA
    1312/     AA2 : CD 56 0B               CALL REGRET
    1313/     AA5 : 3A FE 22               LD A,(AREGST)
    1314/     AA8 : 2F                     CPL
    1315/     AA9 :                     DEANZ1:
    1316/     AA9 : FD 21 E6 22            LD IY,REGRAM
    1317/     AAD :                     DEANZ:
    1318/     AAD : F5                     PUSH AF
    1319/     AAE : 21 CF 0B               LD HL,REGSYM
    1320/     AB1 : 85                     ADD A,L
    1321/     AB2 : 6F                     LD L,A
    1322/     AB3 : 5E                     LD E,(HL)
    1323/     AB4 : 23                     INC HL
    1324/     AB5 : 56                     LD D,(HL)
    1325/     AB6 : ED 53 F2 23            LD (DATLED),DE
    1326/     ABA : F1                     POP AF
    1327/     ABB : 16 00                  LD D,0
    1328/     ABD : 5F                     LD E,A
    1329/     ABE : FD 19                  ADD IY,DE
    1330/     AC0 : FD 5E 00               LD E,(IY+0)
    1331/     AC3 : FD 56 01               LD D,(IY+1)
    1332/     AC6 : ED 53 04 23            LD (AREGIN),DE
    1333/     ACA : 2F                     CPL
    1334/     ACB : 32 FE 22               LD (AREGST),A
    1335/     ACE :                     DATLOOP:
    1336/     ACE : CD B7 08               CALL ADRSDP
    1337/     AD1 :                     DAK:
    1338/     AD1 : DD 21 F2 23            LD IX,DATLED
    1339/     AD5 : CD 5A 08               CALL DAK1
    1340/     AD8 : FE 10                  CP 10H
    1341/     ADA : 38 14                  JR C,HEXTAS
    1342/     ADC : 28 37                  JR Z, POSTAS
    1343/     ADE : FE 11                  CP 11H
    1344/     AE0 : 28 42                  JR Z,NEGTAS
    1345/     AE2 : FE 12                  CP 12H
    1346/     AE4 : 28 23                  JR Z,EXTAS
    1347/     AE6 : FE 19                  CP 19H
    1348/     AE8 : 28 49                  JR Z,ADRTAS
    1349/     AEA : FE 14                  CP 14H
    1350/     AEC : 28 5D                  JR Z,DATANZ
    1351/     AEE : 18 E1                  JR DAK
    1352/     AF0 :                     HEXTAS:
    1353/     AF0 : 21 04 23               LD HL,AREGIN
    1354/     AF3 : ED 6F                  RLD
    1355/     AF5 : 23                     INC HL
    1356/     AF6 : ED 6F                  RLD
    1357/     AF8 : ED 5B 04 23            LD DE,(AREGIN)
    1358/     AFC : CD B7 08               CALL ADRSDP
    1359/     AFF : 21 F4 23               LD HL,ADRLED
    1360/     B02 : 06 04                  LD B,4
    1361/     B04 : CD DC 02               CALL SETPT
    1362/     B07 : 18 C8                  JR DAK
    1363/     B09 :                     EXTAS:
    1364/     B09 : ED 5B 04 23            LD DE,(AREGIN)
    1365/     B0D : FD 73 00               LD (IY+0),E
    1366/     B10 : FD 72 01               LD (IY+1),D
    1367/     B13 : 18 B9                  JR DATLOOP
    1368/     B15 :                     POSTAS:
    1369/     B15 : 3A FE 22               LD A,(AREGST)
    1370/     B18 : 2F                     CPL
    1371/     B19 : FE 16                  CP 16H
    1372/     B1B : 38 02                  JR C,MPOS
    1373/     B1D : 3E FE                  LD A,0FEH
    1374/     B1F :                     MPOS:
    1375/     B1F : 3C                     INC A
    1376/     B20 : 3C                     INC A
    1377/     B21 : C3 A9 0A               JP DEANZ1
    1378/     B24 :                     NEGTAS:
    1379/     B24 : 3A FE 22               LD A,(AREGST)
    1380/     B27 : 2F                     CPL
    1381/     B28 : FE 00                  CP 0
    1382/     B2A : 20 02                  JR NZ,MNEG
    1383/     B2C : 3E 18                  LD A,18H
    1384/     B2E :                     MNEG:
    1385/     B2E : 3D                     DEC A
    1386/     B2F : 3D                     DEC A
    1387/     B30 : C3 A9 0A               JP DEANZ1
    1388/     B33 :                     ADRTAS:
    1389/     B33 : 31 E4 22               LD SP,ARBSTA
    1390/     B36 : CD 71 0B               CALL REGLAD
    1391/     B39 : ED 7B FA 22            LD SP,(REGSP)
    1392/     B3D : E1                     POP HL
    1393/     B3E : 2A FC 22               LD HL,(REGPC)
    1394/     B41 : E5                     PUSH HL
    1395/     B42 : 2A 02 23               LD HL,(STEPZEI)
    1396/     B45 : E9                     JP (HL)
    1397/     B46 :                     RETURN:
    1398/     B46 : 2A EC 22               LD HL,(REGHL)
    1399/     B49 : ED 45                  RETN
    1400/     B4B :                     DATANZ:
    1401/     B4B : 2A FC 22               LD HL,(REGPC)
    1402/     B4E : 7E                     LD A,(HL)
    1403/     B4F : EB                     EX DE,HL
    1404/     B50 : CD C3 08               CALL DADP
    1405/     B53 : C3 CE 0A               JP DATLOOP
    1406/     B56 :                     REGRET:
    1407/     B56 : 31 FE 22               LD SP,AREGST
    1408/     B59 : E5                     PUSH HL
    1409/     B5A : 3B                     DEC SP
    1410/     B5B : 3B                     DEC SP
    1411/     B5C : FD E5                  PUSH IY
    1412/     B5E : DD E5                  PUSH IX
    1413/     B60 : D9                     EXX
    1414/     B61 : 08                     EX AF,AF'
    1415/     B62 : E5                     PUSH HL
    1416/     B63 : D5                     PUSH DE
    1417/     B64 : C5                     PUSH BC
    1418/     B65 : F5                     PUSH AF
    1419/     B66 : D9                     EXX
    1420/     B67 : 08                     EX AF,AF'
    1421/     B68 : 3B                     DEC SP
    1422/     B69 : 3B                     DEC SP
    1423/     B6A : D5                     PUSH DE
    1424/     B6B : C5                     PUSH BC
    1425/     B6C : F5                     PUSH AF
    1426/     B6D : 31 E2 22               LD SP,ARBST2
    1427/     B70 : C9                     RET
    1428/     B71 :                     REGLAD:
    1429/     B71 : 31 E6 22               LD SP,REGRAM
    1430/     B74 : F1                     POP AF
    1431/     B75 : C1                     POP BC
    1432/     B76 : D1                     POP DE
    1433/     B77 : E1                     POP HL
    1434/     B78 : D9                     EXX
    1435/     B79 : 08                     EX AF,AF'
    1436/     B7A : F1                     POP AF
    1437/     B7B : C1                     POP BC
    1438/     B7C : D1                     POP DE
    1439/     B7D : E1                     POP HL
    1440/     B7E : D9                     EXX
    1441/     B7F : 08                     EX AF,AF'
    1442/     B80 : DD E1                  POP IX
    1443/     B82 : FD E1                  POP IY
    1444/     B84 : 31 E2 22               LD SP,ARBST2
    1445/     B87 : C9                     RET
    1446/     B88 :                     
    1447/     B88 :                        db 8 dup (?)
    1448/     B90 :                     
    1449/     B90 :                     STEPUP:
    1450/     B90 : 2A F8 23               LD HL,(USERPC)
    1451/     B93 : E5                     PUSH HL
    1452/     B94 : 21 C2 0B               LD HL,INTROUT
    1453/     B97 : 22 00 23               LD (INTTAF),HL
    1454/     B9A : 3E E9                  LD A,0E9H
    1455/     B9C : 32 FE 22               LD (AREGST),A
    1456/     B9F : 21 A5 0B               LD HL,CTCPRG
    1457/     BA2 : 22 02 23               LD (STEPZEI),HL
    1458/     BA5 :                     CTCPRG:
    1459/     BA5 : F5                     PUSH AF
    1460/     BA6 : 2A EC 22               LD HL,(REGHL)
    1461/     BA9 : 3E 00                  LD A,INTVEK
    1462/     BAB : D3 EC                  OUT (CTC0),A
    1463/     BAD : 3E 85                  LD A,85H
    1464/     BAF : D3 EC                  OUT (CTC0),A
    1465/     BB1 : 3E 04                  LD A,04H            ;ZK
    1466/     BB3 : D3 EC                  OUT (CTC0),A
    1467/     BB5 : ED 5E                  IM 2
    1468/     BB7 : 3E 23                  LD A,HIINT
    1469/     BB9 : ED 47                  LD I,A
    1470/     BBB : C6 00                  ADD A,0
    1471/     BBD : FB                     EI
    1472/     BBE : 00                     NOP
    1473/     BBF : F1                     POP AF
    1474/     BC0 : ED 4D                  RETI
    1475/     BC2 :                     INTROUT:
    1476/     BC2 : F3                     DI
    1477/     BC3 : F5                     PUSH AF
    1478/     BC4 : 3E 03                  LD A,03H
    1479/     BC6 : D3 EC                  OUT (CTC0),A
    1480/     BC8 : F1                     POP AF
    1481/     BC9 : 22 EC 22               LD (REGHL),HL
    1482/     BCC : C3 99 0A               JP STARTST
    1483/     BCF :                     
    1484/     BCF :                     REGSYM:
    1485/     BCF : 4E                     DEFB 4EH
    1486/     BD0 : 6F                     DEFB 6FH
    1487/     BD1 : C6                     DEFB 0C6H
    1488/     BD2 : EA                     DEFB 0EAH
    1489/     BD3 : CE                     DEFB 0CEH
    1490/     BD4 : E9                     DEFB 0E9H
    1491/     BD5 : C2                     DEFB 0C2H
    1492/     BD6 : 6B                     DEFB 06BH
    1493/     BD7 : 5E                     DEFB 05EH
    1494/     BD8 : 7F                     DEFB 07FH
    1495/     BD9 : D6                     DEFB 0D6H
    1496/     BDA : FA                     DEFB 0FAH
    1497/     BDB : DE                     DEFB 0DEH
    1498/     BDC : F9                     DEFB 0F9H
    1499/     BDD : D2                     DEFB 0D2H
    1500/     BDE : 7B                     DEFB 07BH
    1501/     BDF : 4A                     DEFB 04AH
    1502/     BE0 : 20                     DEFB 020H
    1503/     BE1 : AB                     DEFB 0ABH
    1504/     BE2 : 20                     DEFB 020H
    1505/     BE3 : 4F                     DEFB 04FH
    1506/     BE4 : AE                     DEFB 0AEH
    1507/     BE5 : C6                     DEFB 0C6H
    1508/     BE6 : 4F                     DEFB 04FH
    1509/     BE7 :                     
    1510/     BE7 : =>FALSE                IF ROM_=1
    1511/     BE7 :                        DEFB 05BH      ;PRUEFSUMMENDIFFERENZ
    1512/     BE7 :                        ENDIF
    1513/     BE7 :                     
    1514/     BE7 : =>TRUE                 IF ROM_=2
    1515/     BE7 : 23                     DEFB 023H      ;PRUEFSUMMENDIFFERENZ
    1516/     BE8 :                        ENDIF
    1517/     BE8 :                     
    1518/     BE8 :                     ;---------------------------------------------------
    1519/     BE8 : =>FALSE                IF ROM_=1
    1520/     BE8 :                        ORG 07FFH
    1521/     BE8 :                        DEFB 0A1H        ;PRUEFSUMME FUER 1-ROM-VARIANTE
    1522/     BE8 :                        ENDIF
    1523/     BE8 :                     
    1524/     BE8 : =>TRUE                 IF ROM_=2
    1525/     BFF :                        ORG 0BFFH
    1526/     BFF : 71                     DEFB 071H     ;PRUEFSUMME FUER 2-ROM-VARIANTE
    1527/     C00 :                        ENDIF
    1528/     C00 :                     
    1529/     C00 :                     
    1530/     C00 :                     ;***************************************************
    1531/     C00 :                     ;         RAM-ZELLEN
    1532/     C00 :                     
    1533/    22E2 :                              ORG 22E2H
    1534/    22E2 :                     
    1535/    22E2 :                     ARBST2:   DB 2 dup (?)
    1536/    22E4 :                     ARBSTA:   Db 2	dup (?)
    1537/    22E6 :                     REGRAM:   Db 6  dup (?)
    1538/    22EC :                     REGHL:    Db 14 dup (?)
    1539/    22FA :                     REGSP:    Db 2  dup (?)
    1540/    22FC :                     REGPC:    Db 2  dup (?)
    1541/    22FE :                     AREGST:   Db 2  dup (?)                             
    1542/    2300 :                     INTTAF:   Db 2  dup (?)
    1543/    2302 :                     STEPZEI:  Db 2  dup (?)
    1544/    2304 :                     AREGIN:   Db 2  dup (?)
    1545/    2306 :                     
    1546/    23EA :                              ORG 23EAH
    1547/    23EA :                     
    1548/    23EA : =23EAH              SPINI    EQU $    ;ANF.WERT FUER SP
    1549/    23EA :                     TAPDIS:   Db 1 dup(?)  ;DARZUSTELLENDES  ZEICHEN BEI LOAD
    1550/    23EB :                     FILNAME:  Db 2 dup(?)  ;NAME DES ZU UEBERTR. PROG.
    1551/    23ED :                     STARTADR: Db 2 dup(?)
    1552/    23EF :                     ENDADRH:  Db 2 dup(?)
    1553/    23F1 :                     CHKSUMH:  Db 1 dup(?)
    1554/    23F2 :                     DATLED:   Db 2 dup(?)  ;DATEN-ANZ.
    1555/    23F4 :                     ADRLED:   Db 4 dup(?)  ;ADR.-ANZ.
    1556/    23F8 :                     USERPC:   Db 2 dup(?)  ;ADRESSE
    1557/    23FA :                     ATFLAG:   Db 1 dup(?)  ; 0 <-- ADRS, TO TAPE, FROM TAPE
    1558/    23FB :                     ATCODE:   Db 1 dup(?)  ; 1-ADRS, 6-TO TAPE, 7-FROM TAPE
    1559/    23FC :                     INIFLAG:  Db 1 dup(?)  ;INI-CODE
    1560/    23FD :                     FUFEFLAG: Db 1 dup(?)
    1561/    23FE :                     FILE2:    Db 2 dup(?)
    1562/    2400 :                     
    1563/    2400 :                     ;*****************************************************
    1564/    2400 :                      END
  • lc80/programme/lc80.1451911374.txt.gz
  • Zuletzt geändert: 2016/01/04 12:42
  • von 127.0.0.1