EP3 ASM ;
;
;UP."DISRAM"
;
;REALISIERT DIE ANZEIGE EINES
;RAM-BEREICHES IN ANLEHNUNG AN DIE
;DISPLAY-FUNKTION IM "CAOS"
;
;
DISRAM LD HL,(K17) ;STARTADRESSE
DLE LD DE,0BH ;ZEILENANZAHL D.
; ;DARSTELLUNG
DADR CALL UP
DEFB 1AH ;AUSG.STARTADR.
CALL LEER ;AUSG.EINES
;LEER-ZEICHENS
PUSH HL ;>> ;RETTEN STARTADR
LD B,8 ;INFORMATIONS-
;ANZAHL JE ZEILE
DHEX CALL IRMA
LD A,(HL) ;AUSGABEINFORM.
PUSH AF
CALL IRME
POP AF
CALL UP ;AUSG. INFORM.
DEFB 1CH
CALL LEER ;LEER-ZEICHEN
INC HL
DJNZ DHEX ;AUSG.WEITERER
;7 INFORMATIONEN
CALL LEER ;LEER-ZEICHEN
POP HL ;<< ;STARTADR. HOLEN
;
;AUSGABE DER ASCII-CODE
;
LD B,8 ;ZAEHLER
DASCII CALL IRMA
LD A,(HL) ;AUSGABEINFORM.
PUSH AF
CALL IRME
POP AF
CP 20H ;LEER-ZEICHEN ?
JR C DCTRL ;WENN JA
CP 7FH ; < 7FH ?
JR C DANZ ;WENN JA
LD A,2AH ;WENN NEIN
; := "*"
JR DANZ
DCTRL LD A,2EH ; := "."
DANZ CALL CHROUT ;ZEICHENAUSG.
INC HL
DJNZ DASCII ;AUSG. WEITERER
;7 ZEICHEN
LD A,0DH ;"enter" ZEILEN-
CALL CHROUT ;SCHALTUG
LD A,0AH ;CURSOR "down"
CALL CHROUT
DEC E ;LETZTE ZEILE
;IM FENSTER ?
JP NZ DADR ;WENN NEIN
;
D2 PUSH HL ;WENN JA
CALL UP ;EINGABEABFRAGE
DEFB 4
POP HL
CP 0DH ;TASTE "enter" ?
JP Z DLE ;WENN JA
CP 3 ;TASTE "break" ?
JR Z D6 ;WENN JA
CP 13H ;TASTE "stop" ?
JR Z D7 ;WENN JA
JR D2
;
;PROGRAMMFORTSETZUNG "break"
;
D6 CALL UP
DEFB 23H
DEFB 11H
DEFB 0
RET
;
;PROGRAMMFORTSETZUNG "stop"
;(KORREKTUR DER BILDSCHIRMAUSG.)
;
D7 LD A,(K9) ;MENUTYP
CP 0 ;LESEN ?
JR Z D71 ;WENN JA
CALL UP
DEFB 23H
DEFB 11H
DEFB 0
LD HL,0A06H ;CURSOR IN EIN-
LD CA,HL ;GRUNDSTELLUNG
LD BC,0A06H ;CURSORPOSI-
;ZAEHLER
;(LETZTE ZEILE, 6.SPALTE)
;
D8 CALL UP
DEFB 4 ;INFORM.EINGABE
CP 3 ;TASTE "break" ?
JP Z D13 ;WENN JA
CP 0DH ;TASTE "enter" ?
JP Z D14 ;WENN JA
CP 8 ;CURSOR "left" ?
JR Z D9 ;WENN JA
CP 20H ;TASTE "space" ?
JR Z D10 ;WENN JA
CP 9 ;CURSOR"right" ?
JR Z D10 ;WENN JA
CP 0AH ;CURSOR "down" ?
JR Z D11 ;WENN JA
CP 0BH ;CURSOR "up" ?
JR Z D12 ;WENN JA
CP 47H ; =, > 47H ?
JR NC D8 ;WENN JA
CP 30H ; < 30H ?
JR C D8 ;WENN JA
CALL UP ;AUSG.GUELT.ZIFF
DEFB 0
LD A,C ; AKTUELLE
;SPALTENINFORM.
CP 1CH ;LETZTE EING.SP?
JR Z D15 ;WENN JA
INC C ;ERHOEHEN SP.Z.
JR D8
;
;DISPLAY-FUNKTIONSBEARBEITUNG
;IM FALLE MENU-PROGRAMM "READ"
;
D71 LD HL,D1 ;ENDE
EX (SP),HL ;BEI > LDISPL
RET
;
;
D15 LD A,8 ;CURSOR "left"
JR SZA ;STEUERZEICHEN
;AUSGABE
;
;PROGRAMMFORTSETZUNG
;CURSOR "left"
;
D9 LD A,C
CP 6 ;SPALTENANFANG ?
JR Z D8 ;WENN JA
DEC C ;SP.ZAHLER ERN.
LD A,8 ;CURSOR "left"
JR SZA ;STEUERZ. AUSG.
;
;PROGRAMMF.
;CURSOR "right"
;
D10 LD A,C
CP 1CH ;SPALTENENDE ?
JR Z D8 ;WENN JA
INC C ;SP.ZAEHLER ERH.
LD A,9 ;CURSOR "right"
JR SZA ;STEUERZ. AUSG.
;
;PROGRAMMF.
;CURSOR "down"
;
D11 LD A,B
CP 0AH ;LETZTE ZEILE ?
JR Z D8 ;WENN JA
INC B ;Z.ZAEHLER ERH.
LD A,0AH ;CURSOR "down"
JR SZA ;STEUERZ. AUSG.
;
;PROGRAMMF.
;CURSOR "UP"
;
D12 LD A,B
CP 0 ;1.ZEILE ?
JR Z D8 ;WENN JA
DEC B ;Z.ZAEHLER ERN.
LD A,0BH ;CURSOR "up"
;
;STEUERZEICHENAUSGABE
;
SZA CALL UP
DEFB 24H
JR D8
;
;PROGRAMMF.
;TASTE "break"
;DATENEINGABEBESTAETIGUNG
;
D13 LD DE,0 ;CURSORPOSITION
LD CA,DE
CALL UP
DEFB 32H
LD DE,K15
LD BC,4
;
;UEBRTRAEGT DIE AKTUELLE
;AUSGABEADRESSE (OBERER LINKER
;BILDRAND) DER DISPLAY-FUNKTION
;IN DIE ARBEITSZELLEN
;
LDIR
LD IY,K15
CALL ASHEX
;
;WANDLUNG DER ADRESSE
;ASCII-HEXAD.
;
LD (K18),DE ;ABLAGE DER ADR.
LD BC,57H ;BYTEZAEHLER
LD DE,6 ;CURSORPOSITION
LD HL,(K18) ;STARTADR.
D18 PUSH HL
PUSH DE
PUSH BC
LD CA,DE ;CURSOR
;
;AUF ERSTES HEX-DUMP BYTE SETZEN
;
CALL UP
DEFB 32H
LD DE,K20 ;ZIELADR.
LD BC,2
LDIR ;UEBERGABE DATEN
CALL ASHD ;IN ARBEITS-
;ZELLEN ASCII-
;HEXAD.-WANDLUNG
;
POP BC ;BYTEZAEHLER
POP DE ;CURSORPOSITION
CALL IRMA
LD HL,K20 ;HEXAD.-WERT AUF
INC HL ;HL+1
LD A,(HL) ; := "WERT"
POP HL ;STARTADR. RAM
LD (HL),A ;UEBERG. "WERT"
CALL IRME
INC HL ;RAM+1
LD A,B
OR C ;LETZTES BYTE
JR Z D19 ;WENN JA
DEC BC
LD A,E
ADD 3
CP 1EH ;LETZTE SPALTE ?
JR Z D17 ;WENN JA
LD E,A ;AKT. KURSOR-
;SPALTENPOS.
JR D18
;
;
D17 INC D ;AKT. KURSOR-
;ZEILENPOS.
LD E,6 ;SPALTENPOS.
JR D18
;
D19 LD HL,D20 ;UP.-ENDE
EX (SP),HL
RET
;
D20 LD HL,0
LD CA,HL
CALL UP
DEFB 23H
DEFB 12H
DEFB 0
LD HL,(K18) ;RAM-STARTADR.
CALL DLE ;AUSGABE DES
;KORRIGIERTEN
;RAM-BEREICHES
JP DRAM
;
;
;PROGRAMMF.
;TASTE "enter"
;
D14 LD A,B
CP 0AH ;LETZTE ZEILE ?
JR Z D16 ;WENN JA
INC B ;ZEILENSCHALTUNG
;
;KURSOR AUF NEUE POSITION
;EINSTELLEN
;
D16 LD C,6
LD L,C
LD H,B
LD CA,HL
JP D8
;
;
;UP."DISROM"
;
;REALISIERT DIE DISPLAY-FUNKTION
;IN ANLEHNUNG AN DAS "CAOS"
;DIE DATENANZEIGE ERFOLGT AUS DEM EPROM
;OHNE VORHERIGER UMKOPIERUNG DES DATEN-
;INHALTES IN DEN RAM-BEREICH.
;EINE AENDERUNG DER AUSGABEDATEN IST
;NICHT MOEGLICH.
;
DISROM JP BLESEN ;ERMITTLUNG
;
;DES EPROMTYP'S UND DER START-
;ADRESSE DER STEUERCODETABELLE
;RUECKKEHR ZUR MARKE "D4"
;
D4 LD A,0FFH
OUT P2SA
OUT P2SA
LD A,(IY+8)
OUT P2DB
LD A,10H ;ZK.EINSCHWING-
;ZEIT Vcc
CALL UP
DEFB 14H
LD HL,(K16) ;EPROM-STARTADR.
DELO LD DE,0BH ;DARSTELLUNG
;VON 11 ZEILEN
DADRO CALL UP
DEFB 1AH ;AUSG. STARTADR.
CALL LEER ;AUSG. EINES
;LEER-ZEICHENS
PUSH HL
LD B,8 ;ZEICHENZAEHLER
DHEXO CALL INROM ;EINLESEN EINES
;ZEICHENS VOM
;EPROM
CALL UP
DEFB 1CH ;AUSG.DES
;ZEICHENS
LD A,(IY+8)
OUT P2DB
CALL LEER ;AUSG. EINES
;LEERZEICHENS
INC HL
DJNZ DHEXO ;FORTSETZUNG
;AUSG.WEITERER
;7 ZEICHEN
;
;
;AUSGABE DER ZUGEHOERIGEN
;8 ASCII-ZEICHEN
;
CALL LEER ;AUSG. EINES
;LEERZEICHENS
POP HL ;STARTADR.
LD B,8 ;ZEICHENZAEHLER
;
DASCIIO CALL INROM ;EINLESEN EINES
;ZEICHEN VOM
;EPROM
PUSH AF
LD A,(IY+8)
OUT P2DB
POP AF
CP 20H ; < 20H ?
;WENN JA
JR C DCTRLO ;STEUERZEICHEN
;
;
CP 7FH ; < 7FH ?
;WENN JA
JR C DANZO ;ASCII-ZEICHEN
;
; ;WENN NEIN
LD A,2AH ; := "*"
JR DANZO ;AUSGABE
;
;
;STEUERZEICHENAUSGABE
;
DCTRLO LD A,2EH ; := "."
DANZO CALL CHROUT
PUSH BC
;
LD BC,(K5)
LD A,C
OR B ;LETZTES EPROM
;LESE-BYTE ?
JP Z D5 ;WENN JA
DEC B
LD (K5),BC
;
POP BC
INC HL
DJNZ DASCIIO ;AUSG. WEITERER
;7 ASCII-CODE
;
LD A,0DH ;AUSG. "enter"
CALL CHROUT
;
LD A,0AH ;CURSOR "down"
CALL CHROUT
DEC E
;LETZTE AUSGABE-
;ZEILE ?
JR NZ DADRO ;WENN NEIN
;
D3 PUSH HL
CALL UP ;TASTATUREIN-
DEFB 4 ;GABEABFRAGE
POP HL
CP 0DH ;TASTE "enter" ?
JR Z DELO ;WENN JA
CP 3 ;TASTE "break" ?
JR NZ D3 ;WENN NEIN
;
CALL UP ;UP. ENDE
DEFB 23H
DEFB 11H
DEFB 0
RET
;
;
D5 POP BC ;UP. ENDE
;FORTSETZUNG
LD HL,DISPLAY ;> DISPLAY
EX (SP),HL
RET
;
;
;UP."INROM"
;
;EINLESEN EINES BYTE'S VOM EPROM
;
;
INROM LD A,L
OUT P1DA
PUSH DE
LD A,H
LD D,A
CALL PGME ;PGM EIN?
OUT P1DB
POP DE
LD A,(IY+7)
OUT P2DB
IN A,P2DA
RET
;
;
;UP."LEER"
;
;AUSGABE EINES LEERZEICHENS (space)
;
;
LEER LD A,20H
CHROUT CALL UP
DEFB 24H
RET
;
;
;UP."DRAM"
;
;HILFSPROGRAMM UP."DISRAM"
;(DATENEINGABE, KONTROLLE AUF GUELTIG-
;KEIT, AUFRUF FENSTER FUER DATENAUSGABE)
;
DRAM EXX
LD D,1 ;DISP.RAM EIN
EXX
CALL H1
CALL H8
LD A,6
LD CO,A
LD HL,1000H
LD FA,HL
LD HL,0F28H
LD FG,HL
LD HL,403H
LD CA,HL
CALL UP
DEFB 23H
DEFM 'FROM ADR:'
DEFB 0
DRAM1 CALL FA140D
CALL FE140D
CALL DE140D
CALL GULB
EXX
LD DE,101H ;DIS.ANZ. EIN
EXX
LD HL,100H
LD FA,HL
LD HL,0C28H
LD FG,HL
LD HL,0
LD CA,HL
CALL UP
DEFB 23H
DEFB 0CH
DEFB 12H
DEFB 0
CALL DISRAM
JR DRAM
;
;
;UP."DROM"
;
;HILFSPROGRAMM FUER UP."DISROM"
;(DATENEINGABE, KONTROLLE AUF GUELTIG-
;KEIT, FENSTERAUFRUF FUER DATENAUSGABE,
;PROGRAMMBEENDIGUNG)
;
DROM CALL H1
CALL H6
CALL H7
CALL H9
LD A,6
LD CO,A
LD HL,1000H
LD FA,HL
LD HL,0F28H
LD FG,HL
LD HL,401H
LD CA,HL
CALL DA2
CALL FA1406
CALL DA00
CALL DA140DT
CALL FE1406
CALL DE1406
CALL GULA
CALL TABFR
LD (K17),HL
CALL SUBTA
CALL SUBBA
EXX
LD DE,1
EXX
LD HL,100H
LD FA,HL
LD HL,0C28H
LD FG,HL
LD HL,0
LD CA,HL
CALL UP
DEFB 23H
DEFB 0CH
DEFB 12H
DEFB 0
CALL DISROM
DYN LD A,6
LD (K23),A
CALL H1
CALL H4
CALL H5
CALL H9
JP D27
;
;
;UP."H9"
;
;HILFSPROGRAMM ZUR EPROM-TYP-AUSGABE
;IM UP."DISPLAY"
;
H9 LD A,(K1) ;n.w.T CURSOR
;EPROM-TYP
CP 0A0H ;2716 ?
JR Z D22
CP 0C8H ;2732 ?
JR Z D23
CP 0F0H ;2764 ?
JR Z D24
CP 18H ;27128 ?
JR Z D25
CP 40H ;27256 ?
JR Z D26
CP 68H ;27256A ?
JR Z D26
LD HL,ANF
EX (SP),HL
RET
;
D22 CALL UP
DEFB 23H
DEFM ' 2716'
DEFB 0
RET
D23 CALL UP
DEFB 23H
DEFM ' 2732'
DEFB 0
RET
D24 CALL UP
DEFB 23H
DEFM ' 2764'
DEFB 0
RET
D25 CALL UP
DEFB 23H
DEFM ' 27128'
DEFB 0
RET
D26 CALL UP
DEFB 23H
DEFM ' 27(C)256'
DEFB 0
RET
;
;UP. "DISPLAY" ENDE
;
D27 CALL DEYN
D21 CP 59H ;TASTE "Y" ?
JP Z DEABC2 ;WENN JA >MENU
CP 4EH ;TASTE "N" ?
JP Z DISPLAY ;WENN JA
CALL DEYN
JR D21
;
;
;UP."GUELT"
;
;TESTET DIE GUELTIGKEIT DER DATENEIN-
;GABE IN DEN FENSTERN A,B,C
;
;RECHTSBUENDIGES AUFREIHEN VON ASCII-
;ZEICHEN, DIE DEN CODE 0-0FH ENTSPRE-
;CHEN. LEERZEICHEN DIE ZWISCHEN GUEL-
;TIGEN ASCII-ZEICHEN ANGEORDNET SIND
;WERDEN AUSGEBLENDET. ANSCHLIESSEND WIRD
;DIE URSPRUENGLICHE ANZAHL VON LEERZEI-
;CHEN DURCH "NULLEN" (30H), WELCHE ALS
;VORNULLEN GESCHRIEBEN WERDEN AUFGE-
;FUELLT. EIN ERKANNTES BYTE "00" WIRD IN
;EIN LEERZEICHEN (20H) UMGEWANDELT.
;DER ASCII-CODE "2A" (*) BEWIRKT DEN
;RUECKSPRUNG INS "EPROMMER"-MENU.
;
;
GUELT LD HL,(K3) ;INFORMATIONS-
;ZEIGER
LD DE,(K3) ;UMLADE-ZEIGER
;
;EINGABESPEICHER XX XX XX XX
; ^
; HL
; DE
DEC HL
LD (K4),HL
LD IY,K4
INC HL
LD A,L
ADD 3
LD L,A
LD E,A
LD BC,0
A3 LD A,L
CP (IY) ;LETZTES
;ZEICHEN ?
JR Z A1 ;WENN JA
;
LD A,(HL) ;AUSWERTUNG
;ZEICHEN
CP 2AH ; := "*" ?
JP Z ORG2 ;WENN JA > MENU
CP 47H ; > "0FH" ?
JP NC ORG ;WENN JA
;EINGABEWIEDERH.
CP 30H ; =,< 30H ?
JP C A2 ;WENN JA
JR A5
A2 CP 30H ; = 30H ?
JR Z A5 ;WENN JA
CP 0 ; = "00" ?
JR Z A6 ;WENN JA
CP 20H ; = 20H ?
JR NZ ORG ;WENN NEIN
DEC HL
INC BC
JR A3
;
;UMLADEN JEDES GUELTIGEN ZEICH-
;ENS
;
A5 PUSH BC
LDI
POP BC
DEC DE
DEC DE
DEC HL
DEC HL
JR A3
;
;INHALT DURCH LEERZEICHEN ERSET-
;ZEN
;
A6 LD (HL),20H
JR A3
;
;AUFFUELLEN DER LEERZEICHEN MIT
;"NULLEN" (30H)
;
A1 LD A,C
OR B
JR Z A4
INC HL
LD (HL),30H
DEC BC
JR A1
;
;UP. ENDE
;
A4 RET
;
;
;UP."ORG"
;
;BEENDIGUNG UP."X" UND SPRUNG ZUM ORGA-
;NISATORISCHEN VERTEILER (MA 28)
;
ORG LD HL,MA28
EX (SP),HL
RET
MA28 LD A,(K9)
CP 0 ;LESEN ?
JP Z ORG3
CP 1
JP Z COMPARE
CP 2
JP Z CHECKSU
CP 3
JP Z CHECK
CP 4
JP Z BLANK
CP 5
JP Z SCHREIBEN
CP 6
JP Z DISPLAY
CP 7
JP Z TAPE
JP MENU
;
;
;UP."ORG1"
;
;BEENDIGUNG UP."X" UND SPRUNG ZUR MARKE
;-MA 29-
;(TEST AUF ABRUCH "TASTE-break-" IM
;FENSTER "Vpp" UND RUECKSPRUNG INS"CAOS"
;
ORG1 LD HL,MA29
EX (SP),HL
RET
MA29 LD A,(K11)
CP 3
JP Z EXIT
JP MENU
;
;
;UP."ORG2"
;
;BEENDIGUNG UP."X" UND RUECKSPRUNG ZUM
;PROGRAMM-WARMSTART "EPROMMER"
;
;
ORG2 LD HL,ANF
EX (SP),HL
RET
;
;
;UP."ORG3"
;
;PROGRAMM-VERTEILER IM UP."READ" WENN
;IN DIESEM UP. DIE DISPLAY-FUNKTION
;AKTIVIERT WURDE.
;-(WENN JA > RUECKSPRUNG ZUR EINGABE
;'FROM:' ADRESSE; ERNEUTE AUSGABE DER
;DISPLAY-FUNKTION)
;-(WENN NEIN > RUECKSPRUNG ZUR FENSTER-
;EINGABE UP. "READ")
;
ORG3 EXX
LD A,E
CP 1 ;DIS.-ANZ. EIN ?
JR Z ORG31
EXX
JP LESEN
ORG31 EXX
JP D1 ;'FROM:'
;
;UP."HEXASC"
;
;AUSGABE DES WERTES DES HL-REGISTERS
;ALS HEXADEZIMALWERT
;
;
HEXASC CALL UP
DEFB 1AH
RET
;
;
;UP."TABFR"
;
;ERMITTELT DEN EPROM-TYP
;
TABFR LD A,(K8)
CP 0 ;2716 ?
JP Z MA15
CP 1 ;2732 ?
JP Z MA16
CP 2 ;2764 ?
JP Z MA17
CP 3 ;27128 ?
JP Z MA18
CP 4 ;27256 ?
JP Z MA19
CP 5 ;27256A ?
JP Z MA19
RET
;
;EPROM-TYP-SPEICHERKAPAZITAET
;
MA15 LD HL,7FFH
RET
MA16 LD HL,0FFFH
RET
MA17 LD HL,1FFFH
RET
MA18 LD HL,3FFFH
RET
MA19 LD HL,7FFFH
RET
;
;
;UP."ASHD"
;
;WANDLUNG ASCII-CODE-FOLGE IN EINEN
;HEXADEZIMALWERT IM UP."DISPLAY"
;
ASHD LD IY,K20
CALL ASHEX
LD (K20),DE
RET
;
;
;UP."DAHLA"
;
;AUSGABE DES WERTES DES REGISTERS HL
;PLUS DEM WERT DES INHALTES DES FEN-
;STERS A.
;-IST DAS ERGEBNIS DER ADDITION
;>0FFFFH SO ERFOLGT DIE WERTAUSGABE
;"FFFF".
;
;
DAHLA LD DE,(K16)
ADD HL,DE
JP C MA22
CALL HEXASC
MA23 RET
MA22 LD HL,0FFFFH
CALL HEXASC
JR MA23
;
;
;UP."PIOINIT"
;
;INITIALISIERT DIE AUSGABEKANAELE
;(PIO 1 UND 2)
;
PIOINIT LD A,0FFH ;BIT-EIN/AUSG.
OUT P1SA
LD A,0 ;PORT AUF AUSG.
OUT P1SA
OUT P1DA ;AUSG. bit 0-7
;WERT 0
;
LD A,0FFH ;BIT-EIN/AUSG.
OUT P1SB
LD A,0 ;PORT AUF AUSG.
OUT P1SB
OUT P1DB ;AUSG. bit 0-7
;WERT 0
;
LD A,0FFH ;BIT-EIN/AUSG.
OUT P2SA
OUT P2SA ;PORT AUF EING.
;
LD A,0FFH ;BIT-EIN/AUSG.
OUT P2SB
LD A,0 ;AUSG. bit 0-7
OUT P2SB ;WERT 0
;
LD A,2EH ;GRUNDINITIALI-
;SIERUNG EPROM-
OUT P2DB ;STEUERUNG
RET
;
;
;UP."IMPULS"
;
;REALISIERT DIE AUSGABE EINES
;PROGRAMMIERIMPULSES
;
;
IMPULS CALL IRME
LD A,(IY+1)
OUT P2DB
LD A,0FFH
OUT P2SA
LD A,0
OUT P2SA
CALL IRMA
LD A,(HL)
OUT P2DA
CALL IRME
LD A,(IY+2)
OUT P2DB
CALL PGMA ;PGM AUS?
OUT P1DB
CALL ZEIT
LD A,(IY+3)
OUT P2DB
CALL PGME ;PGM EIN?
OUT P1DB
LD A,(IY+4)
OUT P2DB
LD A,(IY+5)
OUT P2DB
RET
;
;
;UP."VERIFY"
;
;VERGLEICHT IM PROGRAMMIER-MODUS
;DEN INHALT DER ROM-ZELLE MIT DEM
;SOLLWERT DER RAM-ZELLE
;
VERIFY LD A,0FFH
OUT P2SA
OUT P2SA
LD A,(IY+6)
OUT P2DB
CALL IRMA
IN A,P2DA
RET
IRME IN A,88H
SET 2,A
OUT 88H
RET
IRMA IN A,88H
RES 2,A
OUT 88H
RET
ZEIT PUSH DE
LD DE,(K24)
Z1 DEC DE
LD A,D
OR E
JR NZ Z1
POP DE
RET
DA7 LD A,(K8)
CP 3
JR Z EXPAN
CP 4
JR Z EXPAN
CP 5
JR Z EXPAN
RET
EXPAN CALL UP
DEFB 23H
DEFM 'EXPANDER-RAM (Y/N):'
DEFB 0
MA56 LD HL,1113H
LD FA,HL
LD HL,101H
LD FG,HL
LD HL,0
LD CA,HL
CALL UP
DEFB 4
CP 59H
JR Z MA57
CP 4EH
JP Z MA58
JR MA56
MA57 LD HL,1300H
LD FA,HL
LD HL,128H
LD FG,HL
LD HL,0
LD CA,HL
CALL UP
DEFB 23H
DEFM 'SWITCH 43'
DEFB 0
LD HL,1307H
LD FA,HL
LD HL,102H
LD FG,HL
LD HL,0
LD CA,HL
CALL DE1406
CALL GUL114
CALL ASH114
LD HL,(K16)
LD A,2
LD D,43H
CALL UP
DEFB 26H
LD HL,0
LD (K16),HL
MA58 RET
CLEAR LD A,6
LD CO,A
LD HL,616H
LD FA,HL
LD HL,611H
LD FG,HL
LD HL,0
LD CA,HL
CALL UP
DEFB 23H
DEFB 11H
DEFB 0CH
DEFB 0
CALL CLEAR2
LD A,(K9)
CP 5
JP Z DEABC21 ;> MENU
JP DEABC2 ;> MENU
CLEAR1 PUSH AF
LD A,2
LD CO,A
LD HL,1C12H
LD FA,HL
LD HL,110H
LD FG,HL
LD HL,0
LD CA,HL
CALL UP
DEFB 23H
DEFB 11H
DEFB 0CH
DEFB 0
POP AF
CP 44H
JP Z SDUP
JP SCHREIBEN
CLEAR2 LD A,2
LD CO,A
LD HL,1801H
LD FA,HL
LD HL,319H
LD FG,HL
LD HL,0
LD CA,HL
CALL UP
DEFB 23H
DEFB 11H
DEFB 0CH
DEFB 0
RET
LEP LD A,L
OUT P1DA
PUSH DE
LD A,H
LD D,A
CALL PGME ;PGM EIN?
OUT P1DB
POP DE
LD A,(IY+7)
OUT P2DB
IN A,P2DA
RET
PGME LD A,(K8)
CP 2 ;2764?
JR Z PGME1
CP 3 ;27128?
JR Z PGME1
LD A,D
RET
PGME1 LD A,D
SET 6,A
RET
PGMA LD A,(K8)
CP 2
JR Z PGMA1
CP 3
JR Z PGMA1
LD A,D
RET
PGMA1 LD A,D
RES 6,A
RET
ANF2 CALL PIOINIT
LD HL,ANF
EX (SP),HL
RET
COUNTO LD A,(IX+2)
CALL UP
DEFB 1CH
LD A,3EH
CALL UP
DEFB 24H
LD HL,0
LD CA,HL
RET
SAEND EX DE,HL
SCF
CCF
SBC HL,DE
RET
UPINIT LD HL,(0B7B0H)
ADD HL,DE
ADD HL,DE
LD E,(HL)
INC HL
LD D,(HL)
LD (K29),DE
RET
ZKTAST PUSH AF
PUSH BC
LD A,(K35)
CALL UP
DEFB 14H
POP BC
POP AF
RET
ÿ ÿ ÿ ÿ ÿ ÿ