EP2ASM; ;UNTERPROGRAMM "DISPLAY" ; ;GESTATTET DAS DARSTELLEN HEXADEZIMALER, ;2 STELLIGER ZIFFERNFOLGEN UND DEREN ;UEBERSETZUNG IN DEN ASCII-CODE. ;DIE DARSTELLUNG DER ZIFFERNFOLGEN KANN ;AUS DEM EPROM ODER RAM-BEREICH ERFOLGEN ;WAEHREND DIE EPROM-DISPLAY-FUNKTION ;NUR ANGEZEIGT WERDEN KANN, GESTATTET ;DIE RAM-DISPLAY-FUNKTION AUCH EINE AEN- ;DERU^G DES ANGEZEIGTEN INFORMATIONGE- ;HALTES. HIERZU IST DIE TASTE "stop" ZU ;BETAETIGEN UND DER KURSOR SPRINGT IN ;DIE GRUNDEINGABESTELLUNG. MIT DEN CUR- ;SOR-TASTEN UND DER TASTE "enter" KANN ;DER CURSOR AUF DIE GEWUENSCHTE EINGA- ;POSITION BEWEGT WERDEN. EIN ZEILENAB- ;SCHLUSS DURCH BETAETIGEN DER TASTE ;"enter" IST nicht ERFORDERLICH. ;DER ABSCHLUSS DER EINGABE ERFOLGT MIT ;DER TASTE "break", DURCH DEREN BETAETI- ;GUNG EBENFALLS DIE BESTAETIGUNG DER ;EINGABE ERFOLGT. ; ; DISPLAY LD A,6 ;FARBE SW,GE LD CO,A CALL FA1000 CALL DA10 CALL UP DEFB 23H DEFM 'RAM/ROM:' DEFB 0 DDANF LD HL,1115H LD FA,HL LD HL,103H LD FG,HL LD HL,0 LD CA,HL CALL UP DEFB 17H LD DE,(0B7A0H) CALL UP DEFB 32H LD A,(HL) CP 52H ;EINGABEFEHLER ? JR NZ DDANF ;WENN JA INC HL LD A,(HL) CP 41H ;DISPLAY-RAM ? JP Z DRAM ;WENN JA CP 4FH ;DISPLAY-ROM ? JP Z DROM ;WENN JA JR DDANF ; ; ;UNTERPROGRAMM "TAPE" ; ;GESTATTET DAS EINLADEN (load) UND AUS- ;LADEN (save) VON DATENBLOCKEN IM RAM- ;(UND ROM-)BEREICH MIT EINER DATENFOLGE ;BIS ZU 32 K BYTE. ;DIE PROGRAMMROUTINEN "save" UND "load" ;KOENNEN UEBER DIE TASTE "break" ABGE- ;BROCHEN WERDEN. ; ; TAPE LD A,6 ;FARBE SW/GE LD CO,A CALL FA1000 CALL DA11 CALL UP DEFB 23H DEFM 'SAVE/LOAD:' DEFB 0 TAP LD HL,1117H LD FA,HL LD HL,103H LD FG,HL LD HL,0 LD CA,HL CALL UP DEFB 17H LD DE,(0B7A0H) CALL UP DEFB 32H LD A,(HL) CP 53H ; ? JR Z TAP1 ;WENN JA CP 4CH ; ? JR Z TAP2 ;WENN JA JR TAP TAP1 INC HL LD A,(HL) CP 41H ; ? JR Z TSA ;WENN JA JR TAP TAP2 INC HL LD A,(HL) CP 4FH ; ? JP Z TLO ;WENN JA JR TAP ; ;ROUTINE "save" ; TSA CALL FA1401 CALL DA13 CALL FERAM ;ADRESSENEINGABE ;TEST AUF GUEL- ;TIGKEIT LD HL,1501H LD FA,HL LD HL,106H LD FG,HL LD HL,0 LD CA,HL CALL UP DEFB 23H DEFM 'NAME:' DEFB 0 LD HL,1506H LD FA,HL LD HL,109H LD FG,HL LD HL,0 LD CA,HL CALL UP DEFB 17H LD DE,(0B7A0H) CALL UP DEFB 32H LD DE,0B700H ;KASSETTENPUFFER LD BC,8 LDIR ;TRANSPORTIERT ; ;DEN PROGRAMMNAMEN IN DEN ;KASSETTENPUFFER ; CALL FA1606 ;FENST>COUNTO CALL UP DEFB 23H DEFB 11H DEFB 0 LD IY,0B700H ;PUFFERADR LD HL,(K16) ;LADEADR LD DE,(K17) ;ENDADR LD (IX+2),0 ;COUNT=0 LD (IY+16),2 ;ARGUMENT LD (IY+17),L ;>B700< 18.BYTE LD (IY+18),H ; 19. LD (IY+19),E ; 20. LD (IY+20),D ; 21. LD HL,0B700H LD (IX+5),L LD (IX+6),H CALL UP DEFB 8 ;"out" VORBLOCK ;UP.8 TSA1 LD HL,(K16) ;LADEADR LD BC,80H ;VORTON LD (IX+5),L ;PA.-UEBERG.LADR LD (IX+6),H LD DE,1 ;UP.-NR. LT.CAOS LD (K30),DE CALL UPINIT ;BERECHNUNG DER ;UP.STARTADR. CALL IRMA JP K31 ;UP-START ;"out" DATA TAPCS CALL IRME PUSH HL CALL COUNTO ;AUSG. BLOCKNR. POP HL LD (K16),HL LD DE,(K17) CALL SAEND ;LETZTER BLOCK ? ;(BERECHNUNG) JR C TSA2 ;WENN JA CALL UP ;WENN NEIN DEFB 2AH ;BREAK ? JR C TSA2 ;WENN JA JR TSA1 ;WENN NEIN TSA2 LD BC,80H LD HL,0B700H LD (IX+6),H CALL UP DEFB 9 ;CLOSE-ROUT. ;UP.9 ; ;UP.ENDE FUER "save" -UND "load" ;-ROUTINE ; TAPEND LD A,6 LD (K23),A CALL DEYN TEND CP 59H ;TASTE "Y" ? JP Z DEABC2 ;WENN JA >MENU CP 4EH ;TASTE "N" ? JP Z TAPE ;WENN JA CALL DEYN JR TEND ; ;ROUTINE "load" ; TLO CALL FA1401 CALL DA12 CALL FA1406 LD (IX+2),0 LD HL,0B700H ;LADEADRESSE ;VORBLOCK LD (IX+5),L LD (IX+6),H CALL UP DEFB 0AH ;"read" VORBLOCK ;UP.0AH LD HL,(0B711H) LD (K16),HL CALL UP DEFB 1AH ;AUSG. LADEADR CALL FA140D LD HL,(0B713H) LD (K17),HL CALL UP DEFB 1AH ;AUSG. ENDADR LD HL,1506H LD FA,HL LD HL,109H LD FG,HL LD HL,0 LD CA,HL LD B,8 LD HL,0B700H ;K.-PUFFERADR. TLO3 LD A,(HL) CALL UP DEFB 24H ;AUSG.(NAME) INC HL DJNZ TLO3 CALL FA1606 ; ;DATENTRANSPORT IN DEN RAM- ;BEREICH ; TLO1 LD HL,(K16) ;LADEADR LD (IX+5),L LD (IX+6),H LD DE,5 ;UP-NR. LD (K30),DE CALL UPINIT CALL IRMA JP K31 ;"read" DATENBL. TAPCL PUSH AF CALL IRME POP AF JP C TLO2 ;LESEFEHLER ? CALL COUNTO ;AUSG. BL.-NR. LD HL,(K16) LD BC,80H ;ADD-KONST. ADD HL,BC LD (K16),HL LD DE,(K17) ;ENDADR CALL SAEND ;LETZER BLOCK ? JR C TLO2 ;WENN JA CALL UP ;WENN NEIN DEFB 2AH ;BREAK ? JR C TLO2 ;WENN JA JR TLO1 ;WENN NEIN TLO2 CALL UP DEFB 0BH ;CLOSE MBI ;UP.0BH JP TAPEND ; ;*************************************** ; ;LISTE DER UNTERPROGRAMME ; ;*************************************** ; ;UP."H1" ; ;DEFINIERT EIN FENSTER UND LOESCHT DEREN ;INHALT (STICK EPROM UND Vpp) ; H1 LD A,3CH LD CO,A LD HL,0D00H LD FA,HL LD HL,328H LD FG,HL CALL UP DEFB 23H DEFB 0CH DEFB 11H DEFB 0 LD HL,105H LD CA,HL RET ; ;UP."H3" ; ;REALISIERT DIE AUSGABE "EPROM-TYPE" ;UND "Vpp" ; H3 LD HL,116H LD CA,HL LD B,8 LD HL,(K1) INC HL INC HL INC HL INC HL MA12 INC HL LD A,(HL) CALL UP DEFB 0 DJNZ MA12 LD HL,11FH LD CA,HL LD B,5 LD HL,(K7) INC HL INC HL INC HL INC HL MA13 INC HL LD A,(HL) CALL UP DEFB 0 DJNZ MA13 RET ; ;UP."H4" ; ;REALISIERT DIE AUSGABE "STICK EPROM" ;UND DIE GRUNDINITIALISIERUNG DER ;"PIO" -BAUGRUPPE ; H4 CALL UP DEFB 23H DEFM ' STICK EPROM >>' DEFB 0 CALL PIOINIT RET ; ;UP."H5" ; ;REALISIERT DIE FARBE WS/GN IM BLINKMODE ; H5 LD A,0BCH LD CO,A RET ; ;UP."H6" ; ;REALISIERT DIE LOESCHUNG "STICK EPROM" ; H6 CALL UP DEFB 23H DEFM ' ' DEFB 0 RET ; ;UP. "H7" ; ;REALISIERT DIE AUSGABE DER FARBE WS/GN ; H7 LD A,3CH LD CO,A RET ; ;UP. "H8" ; ;REALISIERT DIE AUSGABE ;"BACKGROUND DISPLAY OF IRM" ; H8 CALL UP DEFB 23H DEFM 'BACKGROUND ' DEFM 'DISPLAY OF ' DEFM 'IRM' DEFB 0 RET ; ;UNTERPROGRAMME "FA..." ;>>FENSTERAUFRUF FUER AUSGABE<< ; ; ; ;UP."FA100" ; ;FENSTERAUFRUF ZUR AUSGABE DER "MENU- ;PROGRAMMUEBERSICHT" ; FA1000 LD HL,1000H LD FA,HL LD HL,0F28H LD FG,HL CALL UP DEFB 23H DEFB 0CH DEFB 11H DEFB 0 LD HL,100H LD CA,HL RET ; ;UP."FA1401" ; ;FENSTERAUFRUF ZUR AUSGABE "ROM:/RAM:" ; FA1401 LD HL,1401H LD FA,HL LD HL,128H LD FG,HL LD HL,0 LD CA,HL RET ; ;UP."FA1406" ; ;FENSTERAUFRUF (A) ZUR AUSGABE DER ;ANFANGSADR. "RAM/ROM-BEREICH" ; FA1406 LD HL,1406H LD FA,HL LD HL,105H LD FG,HL LD HL,0 LD CA,HL RET ; ;UP."FA140D" ; ;FENSTERAUFRUF (B) ZUR AUSGABE DER ;ENDADR. "RAM/ROM-BEREICH" ; FA140D LD HL,140DH LD FA,HL LD HL,105H LD FG,HL LD HL,0 LD CA,HL RET ; ;UP."FA1601" ; ;FENSTERAUFRUF ZUR AUSGABE "RAM:/ROM:" ; FA1601 LD HL,1601H LD FA,HL LD HL,128H LD FG,HL LD HL,0 LD CA,HL RET ; ;UP."FA1606" ; ;FENSTERAUFRUF (C) ZUR AUSGABE DER ;ANFANGSADR. "RAM/ROM-BEREICH" ; FA1606 LD HL,1606H LD FA,HL LD HL,105H LD FG,HL LD HL,0 LD CA,HL RET ; ;UP."FA160D" ; ;FENSTERAUFRUF (D) ZUR AUSGABE DER ;ENDADR."RAM/ROM-BEREICH" ; FA160D LD HL,160DH LD FA,HL LD HL,105H LD FG,HL LD HL,0 LD CA,HL RET ; ; ;UNTERPROGRAMME "FE..." ;>>FENSTERAUFRUF FUER EINGBE<< ; ; FE1406 LD HL,1406H ;FENSTER A LD FA,HL LD HL,104H LD FG,HL LD HL,0 LD CA,HL RET FE140D LD HL,140DH ;FENSTER B LD FA,HL LD HL,104H LD FG,HL LD HL,0 LD CA,HL RET FE1606 LD HL,1606H ;FENSTER C LD FA,HL LD HL,104H LD FG,HL LD HL,0 LD CA,HL RET ; ;UP."FEROM" ; ;DATENEINGABE IM FENSTER A UND B ;UND KONTROLLE AUF GUELTIGKEIT ;FUER EPROM-BEARBEITUNG ; FEROM CALL FA1406 CALL DA00 CALL DA140DT CALL FE1406 CALL DE1406 CALL GULA CALL SUBTA CALL FE140D CALL DE140D CALL GULB CALL SUBTB CALL SUBBA RET ; ;UP."FERAM" ; ;DATENEINGABE IM FENSTER A UND B ;UND KONTROLLE AUF GUELTIGKEIT ;FUER RAM-BEARBEITUNG ; FERAM CALL FE1406 CALL DE1406 CALL GULA CALL DA140D CALL FE140D CALL DE140D CALL GULB CALL SUBBA RET ; ;UNTERPROGRAMME "DE..." ;>>DATENEINGABE IN FENSTER<< ; ; DE1406 CALL 0F003H ;FENSTER A DEFB 4 CP 3 ;TASTE "break" ? JP Z DEABC2 ;WENN JA >MENU CP 0DH ;TASTE "enter" ? JR Z DEA3 ;WENN JA CALL UP DEFB 0 LD A,(K35) ;ZK.TASTATUREIN- ;EINGABE CALL UP DEFB 14H ;"wait" UP14 JR DE1406 DEA3 LD DE,0 CALL UP DEFB 32H LD DE,K13 LD BC,4 LDIR ;ABSPEICHERN ;DER DATENFOLGE RET ; DE140D CALL UP ;FENSTER B DEFB 4 CP 3 ;TASTE "break" ? JR Z DEB2 ;WENN JA CP 0DH JR Z DEB3 CALL UP DEFB 0 LD A,(K35) CALL UP DEFB 14H JR DE140D DEB3 LD DE,0 CALL UP DEFB 32H LD DE,K14 LD BC,4 LDIR RET DEB2 EXX LD A,D CP 1 ;DISP.RAM AKTIV? JR Z DEB1 ;WENN JA EXX JP DEABC2 ;WENN NEIN ; DEB1 LD D,0 ;DISP.RAM AUS EXX LD HL,DYN ;DISP. >DEYN EX (SP),HL RET ; DE1606 CALL UP ;FENSTER C DEFB 4 CP 3 JP Z DEABC2 CP 0DH JR Z DEC3 CALL UP DEFB 0 LD A,(K35) CALL UP DEFB 14H JR DE1606 DEC3 LD DE,0 CALL UP DEFB 32H LD DE,K15 LD BC,4 LDIR RET ; ;UP."DEABC2" ; ;BEENDIGUNG DER DATENEINGABE UND RUECK- ;SPRUNG IN DAS PROGRAMMENU ODER ZUM ;PROGRAMMANFANG IN ABHAENGIGKEIT DES ;UP."DISPLAY" ; DEABC2 EXX LD A,E CP 1 ;DISPLAYANZ EIN JR Z DEABC3 EXX LD A,(K9) CP 5 JP Z CLEAR DEABC21 CALL H1 CALL H4 CALL H5 CALL H3 LD A,6 LD CO,A CALL FA1000 LD HL,MENU EX (SP),HL RET DEABC3 EXX LD HL,ANF EX (SP),HL RET ; ;UNTERPROGRAMME "DA..." ;>>DATENAUSGABE<< ; ; DA1 CALL UP DEFB 23H DEFM 'READ :' DEFB 0 LD HL,401H LD CA,HL RET DA2 CALL UP DEFB 23H DEFM 'ROM : -' DEFB 0 RET DA3 CALL UP DEFB 23H DEFM 'RAM : -' DEFB 0 RET DA4 CALL UP DEFB 23H DEFM 'PROGRAMMING:' DEFB 0 LD HL,401H LD CA,HL RET DA5 CALL UP DEFB 23H DEFM 'BLANKTEST:' DEFB 0 LD HL,401H LD CA,HL RET DA6 CALL UP DEFB 23H DEFM 'CHECK BYTECHANGE' DEFB 0 LD HL,401H LD CA,HL RET DA8 CALL UP DEFB 23H DEFM 'COMPARE:' DEFB 0 LD HL,401H LD CA,HL RET DA9 CALL UP DEFB 23H DEFM 'CHECKSUM:' DEFB 0 LD HL,10DH LD CA,HL RET DA10 CALL UP DEFB 23H DEFM 'DISPLAY:' DEFB 0 LD HL,10DH LD CA,HL RET DA11 CALL UP DEFB 23H DEFM 'TAPE:' DEFB 0 LD HL,10DH LD CA,HL RET DA12 CALL UP DEFB 23H DEFM 'LOAD: -' DEFB 0 RET DA13 CALL UP DEFB 23H DEFM 'SAVE: -' DEFB 0 RET DEFB 0 LD HL, DA00 LD HL,0 CALL HEXASC RET DA200 LD HL,400H CALL HEXASC RET ; DA1406A CALL FA1406 ;FENSTER A LD HL,(K16) ;ADRESSE LD A,(K9) ;MENUTYP CP 5 ;"PROGRAMMING" ? JR NZ DAX1 ;WENN NEIN LD A,H OR L ;ADRESSE <0> ? JR Z DAX ;WENN JA DAX1 CALL HEXASC ;AUSG.ADRESSE RET DAX LD HL,SFE ;RUECKKEHR ;FENSTEREING. ;PROGRAMMIER- ;ROUTINE EX (SP),HL RET ; DA140DB CALL FA140D ;FENSTER B LD HL,(K17) ;ADRESSAUSG. CALL HEXASC RET ; DA1606C CALL FA1606 ;FENSTER C LD HL,(K18) ;ADRESSAUSG. CALL HEXASC RET ; DA140D CALL FA140D ;DATENAUSG. (B) ;IN ABHAENGIGKEIT DER ERRECHNE- ;TEN ADRESSE (B) ; > FFFFH => AUSG. FFFFH ; < FFFFH => AUSG.BERECHN.ADR ; CALL TABFR CALL DAHLA RET ; DA160DD CALL FA160D ;FENSTER D LD HL,(K19) CALL HEXASC ;ADRESSAUSG. RET ; DA140DT CALL FA140D ;FENSTER B CALL TABFR ;EPROMTYPEND- ;ADRESSEN CALL HEXASC ;AUSG. RET ; DA160DT CALL FA160D ;FENSTER D CALL TABFR ;EPROMTYPEND- ;ADRESSEN CALL HEXASC ;AUSG. RET ; GULA CALL GUL114 ;GUELTIGKEITS- ;TEST FENSTER A CALL ASH114 ;WANDLUNG ;ASCII-HEXAD. CALL DA1406A ;AUSG. FENSTER A RET ; GULB CALL GUL118 ;(ANALOG (B) ) CALL ASH118 CALL DA140DB RET ; GULC CALL GUL11C ;(ANALOG (C) ) CALL ASH11C CALL DA1606C RET ; GUL114 LD HL,K13 ;GUELTIGKEITS- ;TEST FENSTER A LD (K3),HL CALL GUELT RET ; GUL118 LD HL,K14 ;(ANALOG (B) ) LD (K3),HL CALL GUELT RET ; GUL11C LD HL,K15 ;(ANALOG (C) ) LD (K3),HL CALL GUELT RET ; ASH114 LD IY,K13 ;WANDLUNG ; CALL ASHEX ;ASCII-HEXAD. LD (K16),DE RET ; ASH118 LD IY,K14 ;(ANALOG (B) ) CALL ASHEX LD (K17),DE RET ; ASH11C LD IY,K15 ;(ANALOG (C) ) CALL ASHEX LD (K18),DE RET ; SUB SCF CCF SBC HL,DE ;SUBTRAKTION JP C ORG ;ERGEBNIS NEG. ? RET ; SUBBA LD HL,(K17) ; LD DE,(K16) ;- CALL SUB ;-------------- LD (K5),HL ; RET ; ADDHLC LD DE,(K18) ; ADD HL,DE ;+ HL ;-------------- ;ERG. > FFFFH ? JP C ORG ;WENN JA > ORG LD (K19),HL ; := ERG. RET ; SUBTC CALL TABFR ; EPROMTYPKAPAZ. LD DE,(K18) ;- CALL SUB ;--------------- LD (K22),HL ; := ERG. RET ; SUBS LD HL,(K22) ; LD DE,(K5) ;- CALL SUB ;--------------- RET ; SUBTD CALL TABFR ; EPROMTYPKAPAZ. LD DE,(K19) ;- CALL SUB ;--------------- RET ; SUBTA CALL TABFR ; EPROMTYPKAPAZ. LD DE,(K16) ;- CALL SUB ;--------------- RET ; SUBTB CALL TABFR ; EPROMTYPKAPAZ. LD DE,(K17) ;- CALL SUB ;--------------- RET ; SUBTBA CALL TABFR ; EPROMTYPKAPAZ. LD DE,(K5) ;- CALL SUB ;-------------- RET ; ;UP."DAPRUEF" ; ;BILDET DIE PRUEFSUMME IM EPROM ; DAPRUEF LD BC,(K5) LD HL,(K22) CALL PRUEF2 ;PF ROM(RAM PF1) ; ;PROGRAMMFORTSETZUNG FUER ;PRUEFSUMMENBILDUNG IM EPROM-UND ;RAMBEREICH ;AUSGABE DER PRUEFSUMME ; DAPREND LD (K6),DE LD HL,1A01H LD FA,HL LD HL,128H LD FG,HL LD HL,0 LD CA,HL CALL UP DEFB 23H DEFM ' CHECKSUM * *' DEFB 0 LD HL,1A0EH LD FA,HL LD HL,105H LD FG,HL LD HL,0 LD CA,HL LD HL,(K6) CALL HEXASC RET ; ;UP."PRUEF1" ; ;BEARBEITUNG PRUEFSUMMENBILDUNG IM RAM ; PRUEF1 LD DE,0FFFFH MA30 CALL IRMA LD A,(HL) PUSH AF CALL IRME POP AF CALL PRUEFX LD A,B OR C JR Z MA72 INC HL DEC BC JR MA30 MA72 RET ; ; ;UP."PRUEF2" ; ;BEARBEITUNG PRUEFSUMMENBILDUNG ;IM EPROM ; PRUEF2 LD DE,0FFFFH LD A,(IY+8) OUT P2DB MA61 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 PUSH AF LD A,(IY+8) OUT P2DB POP AF CALL PRUEFX LD A,B OR C JR Z MA71 INC HL DEC BC JR MA61 MA71 RET ; ;UP."PRUEFX" ; ;BERECHNUNG DER PRUFSUMME FUER ;EPROM -UND RAM-BEREICH ; PRUEFX XOR D LD D,A RRCA RRCA RRCA RRCA AND 0FH XOR D LD D,A RRCA RRCA RRCA PUSH AF AND 1FH XOR E LD E,A POP AF PUSH AF RRCA AND 0F0H XOR E LD E,A POP AF AND 0E0H XOR D LD D,E LD E,A RET ; ; ;UP."DEYN" ; ;ERMOEGLICHT DIE ENTSCHEIDUNG ZUR ;WIEDERHOLUNG ODER BEENDIGUNG EINES ;MENU-PROGRAMMS ; ; DEYN LD HL,1C01H LD FA,HL LD HL,128H LD FG,HL LD HL,0 LD CA,HL LD A,(K23) ; ;WIEDERHERSTELLUNG DER ;URSPRUENGLICHEN FARBBILDUNG ;ZU BEGINN DES MENU-PROGRAMMS ; LD CO,A LD A,(K9) CP 5 ;MENU-PROGRAMM ;"PROGRAMMING" ? JR NZ DE1 ;WENN NEIN ; ;AUSSCHRIFT "Y/N/D" ; ;"Y" > MENU-PROGRAMM ENDE ;"N" > MENU-PROGRAMM WIEDERH. ;"D" > EPROM DUPLIZIEREN ; CALL UP DEFB 23H DEFM 'EXIT (Y/N/D):' DEFB 0 LD HL,0B6F0H LD (K7),HL CALL H1 CALL H4 CALL H5 CALL H3 JR DE2 ; DE1 CALL UP DEFB 23H DEFM 'EXIT (Y/N) :' DEFB 0 ; ;EINGABE ZUR ENTSCHEIDUNGSFRAGE ; DE2 LD HL,1C0EH LD FA,HL LD HL,101H LD FG,HL LD HL,0 LD CA,HL CALL UP DEFB 4 RET ÿÿÿÿÿÿÿ