CAOSFV ASM ; CAOS 3.4 - ROM F
; Version V.24 / RS 232
;
; Date: 11.06.1991 (c) by '#+$'
;
SIO EQU 008H ;SIO PORT A
CTC EQU 00CH ;SIO-CTC
; StrByte des Interface-Moduls
UMODL EQU 1EEH ;M003 V24
ORG 0F000H
PRESET: JP PWRON ;>> POWER ON <<
JP PV1 ;DEFB NR
JR PV2 ;(ARGC)
ZEI0: DEFB 0
JR PV3 ;REG. E
ZEI2: DEFB 2
JR PV4 ;+IRM
ZEI4: DEFB 4
JP RCALL
JP NEWOS ;>JUMP<
JP PV5 ;(ARGC)
JP IRMON
JP IRMOFF
PV6: PUSH BC ;*** PV 6 ***
CALL IRMON
CALL PV2
JR PV51
PV5: PUSH BC ;*** PV 5 ***
CALL IRMON
CALL PV3
PV51: CALL IRMOFF
POP BC
RET
PV4: PUSH AF ;*** PV 4 ***
IN A,88H
OR 4
OUT 88H,A
POP AF
CALL PV3
SCROFF: PUSH AF
IN A,88H
AND 0FBH
OUT 88H,A
POP AF
RET
PV1: PUSH HL ;*** PV 1 ***
DI
POP HL
POP HL
INC HL
PUSH HL
DEC HL
DEC SP
DEC SP
EI
TABJP: PUSH DE
LD E,M
PV11: LD D,0
LD HL,(0B7B0H)
PUSH AF
ADD HL,DE
ADD HL,DE
POP AF
LD E,M
INC HL
LD D,M
EX DE,HL
POP DE
PV1END: EX (SP),HL
RET
PV3: SCF ;*** PV 3 ***
DEFB 0EDH
PV2: AND A ;*** PV 2 ***
PV21: PUSH HL
PUSH DE
PUSH BC
PUSH HL
LD HL,POPS3
EX (SP),HL
PUSH HL
PUSH DE
JR C,PV11
LD DE,(0B780H)
JR PV11
IRMON: POP BC ;*** IRM ON ***
DI
LD (IX+0BH),A
IN A,88H
SET 2,A
OUT 88H,A
LD (0B7CBH),SP
LD SP,(0B7AEH)
OFFEND: LD A,(IX+0BH)
EI
PUSH BC
RET
IRMOFF: POP BC ;*** IRM OFF ***
DI
LD SP,(0B7CBH)
LD (IX+0BH),A
IN A,88H
RES 2,A
OUT 88H,A
JR OFFEND
INTB: PUSH HL ;UP 16 INTB
LD HL,(0B7BBH)
JR TABJP
OCHRP: LD A,(0B7D9H)
OCHR: PUSH HL ;UP 24 OCHR
LD HL,(0B7B9H)
JR TABJP
RCALL: EX (SP),HL ;*** RCALL ***
LD E,M
INC HL
LD D,M
INC HL
EX DE,HL
ADD HL,DE
EX DE,HL
EX (SP),HL
PUSH DE
RET
;*** Switch & Jump ***
DEFW 7F7FH ;>SWITCH<
DEFM 'SWYTCH'
DEFB 1
;
LD D,E
CALL MODU
MODOUT: ;Ausgabe 3 Bytes L,H,D
CALL LHSPCE
LD A,H
CALL AHSPCE
LD A,D
CALL AHEX
JP CRLF
MODU: ;VR:AF,H,BC,(D) ;UP 26 MODU
LD H,0B8H
LD C,80H
LD B,L
CP 2
JR NC,MDL2
LD D,M
MDL1: IN H,(C)
RET
MDL2: LD M,D
LD B,L
INC B
IN A,88H
DJNZ NRAM0
AND 0F5H
BIT 0,D
JR Z,RAM01
SET 1,A
RAM01: BIT 1,D
JR Z,OUTB
SET 3,A
OUTB: OUT 88H
JR MDL1
NRAM0: DJNZ NIRM
BIT 0,D
RES 2,A
JR Z,OUTB
SET 2,A
JR OUTB
NIRM: DJNZ NROM
RLA
LD H,D
RR H
RRA
JR OUTB
NROM: LD B,L
OUT (C),D
JR MDL1
DEFW 7F7FH ;>JUMP<
DEFM 'JUMP'
DEFB 1
RET Z
LD A,L
;
JUMP: OR A ;UP 27 JUMP
JR Z,SYS
LD B,A
LD C,80H
IN A,(C)
INC A
JP Z,ERRM
LD D,0FFH
CALL MOSW2
XOR A
LD B,(IX+4)
LD L,B
LD M,A
JR SYS1
SYS: LD C,88H
IN A,(C)
SET 0,A
SYS1: DI
JP 0B7B4H
;====== POWER ON =======================
;(Einspr}nge PWRON,NEWOS,BYE)
PWRON: DI
LD SP,1C4H
LD A,3EH
OUT 88H
CALL MODSW1
LD E,(IX+4)
XOR A
LD B,0E0H
LD H,A ;Clear Memo
LD L,A
PWRO1: LD M,A
INC L
JR NZ,PWRO1
INC H
DJNZ PWRO1
LD C,80H ;Modul off
LD A,E
PWRO2: CP B
JR Z,PWRO3
OUT (C),L
PWRO3: DJNZ PWRO2
LD B,E
NEWOS: DI
LD (IX+4),B
CALL SYSI ;Systeminit
XOR A
PWRO4: LD (0B79BH),A ;Windows
CALL WCOPY
INC A
CP 0AH
JR C,PWRO4
CALL MODSW
BYE: LD SP,1C4H ;UP 0D BYE
LD A,1EH
OUT 88H ;init.MEM on !!
CALL SYSI
JR MEN1
DEFW 7F7FH ;>MENU<
DEFM 'MENU'
DEFB 1
;
POP HL
MEN1: CALL OSTR
DEFB 0CH
DEFB 0AH
DEFM '* HC-CAOS 3.4 *'
DEFB 0
MENU: LD HL,0C000H ;UP 46 MENU
LD C,L
LD B,L
MEN2: CALL CRLF
MEN3: CALL BRKT
JR C,LOOP
LD A,(IX+9)
MEN4: CPIR
JP PO,LOOP
CPI
JR NZ,MEN4
CALL OCHRP
MEN5: LD A,M
CP 2
JR C,MEN2
CP 30H
JR C,MEN6
CP 60H
JR NC,MEN6
CALL OCHR
INC HL
DEC BC
JR MEN5
MEN6: CALL CLLN
JR MEN3
NLP1: POP HL ;LOOP
NLP2: CALL ERRM
LOOP0: LD A,0BH
CALL C,OCHR
CALL CLLN
LOOP: CALL OCHRP ;UP 12 LOOP
CALL INLIN
JR C,LOOP0 ;Brk
INC DE
LD A,(DE)
CP 21H
JR C,LOOP
CALL MSUCH
JR NC,NLP2
PUSH HL
CALL GARG
JR C,NLP1
LD HL,LOOP
EX (SP),HL
LD A,M
INC HL
PUSH HL
AND A
CALL LARG
CALL Z,SCROFF
AND A
RET
MSUCH: LD HL,0C000H
LD B,L
LD C,L
LD A,(IX+9)
ZSUCH: CPIR ;UP 1D ZSUCH
SCF
CCF
RET PO
CPI
JR NZ,ZSUCH
PUSH AF
PUSH DE
ZS1: LD A,(DE)
CP 21H
JR C,ZS3
INC DE
CPI
JR Z,ZS1
ZS2: POP DE
POP AF
JR ZSUCH
ZS3: LD A,M
CP 2
JR C,ZS4
CP 20H
JR C,ZS2
INC HL
JR ZS3
ZS4: POP BC
POP AF
SCF
RET
WAIT1: DEC A
RET Z
PUSH AF
POP AF
JR WAIT1
CBNRO: CALL CLLN
BNROST: LD A,(IX+2)
AHOSTR: CALL AHEX
;
OSTR: EX (SP),HL ;UP 23 OSTR
CALL ZKOUT
EX (SP),HL
RET
NORM: CALL NIN ;UP 13 NORM
;
NOUT: LD HL,ZEI0 ;UP 20 NOUT
;
SOUT: PUSH HL ;UP 1E SOUT
LD HL,(0B7B9H)
EX (SP),HL
LD (0B7B9H),HL
POP HL
RET
NIN: LD HL,ZEI4 ;UP 21 NIN
;
SIN: PUSH HL ;UP 1F SIN
LD HL,(0B7BBH)
EX (SP),HL
LD (0B7BBH),HL
POP HL
RET
BRKT: CALL KBDS ;UP 2A BRKT
BRKT1: CP 3
SCF
RET Z
CP 13H
SCF
CCF
RET NZ
CALL RESFL
CALL KBD1
JR BRKT1
KBD: BIT 6,(IX+8) ;UP 4 KBD
KBD1: PUSH HL
PUSH DE
PUSH BC
JR NZ,KBD8
KBD2: CALL CUCP
KBD3: CALL KBDZ
JR NC,KBD3
CALL CUCP
KBD4: BIT 5,(IX+8)
LD D,A
CALL NZ,RCLICK
LD A,D
LD HL,0B7A2H
BIT 4,M
CALL NZ,CRT
JR NZ,KBD2
KBD5: CP 1BH
JR NZ,KBD6
SET 4,M
JR KBD2
KBD6: CP 0F1H
JP C,POPS3
SET 6,(IX+8)
SUB 0F0H
LD B,A
LD HL,0B900H
KBD7: LD A,M
AND A
INC HL
JR NZ,KBD7
DJNZ KBD7
JR KBD9
KBD8: CALL BRKT
JR C,KBD10
LD HL,(0B7D1H)
KBD9: LD A,M
INC HL
LD (0B7D1H),HL
AND A
JP NZ,POPS3
KBD10: RES 6,(IX+8)
JR KBD2
;*** CCP ***
INLIN: CALL INTB
CALL OCHR
CP 0DH
JR Z,ILN1
CP 3
JR NZ,INLIN
SCF
ILN1: PUSH AF
CALL CRLF
LD DE,(0B7A0H)
CP D
JR NZ,ILN2
LD A,(0B79FH)
LD D,A
ILN2: DEC D
PUSH HL
CALL DABR
EX DE,HL
POP HL
POP AF
RET
HLHX: LD A,H ;UP 1A HLHX
CALL AHEX
LHSPCE: LD A,L
AHSPCE: CALL AHEX
;
SPAC: LD A,20H ;UP 2B SPAC
SPAC0: JP OCHR
ERRM: CALL OSTR ;UP 19 ERRM
DEFM 'Error'
DEFB 7
DEFB 0
;
CRLF: CALL OSTR ;UP 2C CRLF
DEFB 0DH
DEFB 0AH
DEFB 0
RET
HOME: LD A,10H ;UP 2D HOME
JR SPAC0
CLLN: LD A,2
JR SPAC0
AHEX: PUSH AF ;UP 1C AHEX
RRA
RRA
RRA
RRA
CALL AHEX1
POP AF
AHEX1: AND 0FH
ADD 90H
DAA
ADC 40H
DAA
JR SPAC0
HLDE: CALL HLDE1 ;UP 1B HLDE
HLDE1: CALL HLHX
EX DE,HL
RET
RHEX0: INC DE
;
RHEX: LD A,(DE) ;UP 18 RHEX
CP 20H
JR Z,RHEX0
XOR A
LD HL,0B798H
LD M,A
DEC HL
LD M,A
DEC HL
LD M,A
RH1: LD A,(DE)
OR A
RET Z
CP 20H
RET Z
SUB 30H
RET C
CP 0AH
JR C,RH2
SUB 7
AND 0DFH
CP 0AH
RET C
CP 10H
CCF
RET C
RH2: INC DE
INC M
INC HL
RLD
INC HL
RLD
DEC HL
DEC HL
JR Z,RH1
DEC DE
SCF
RET
GARG: LD BC,0B781H ;UP 22 GARG
XOR A
LD (BC),A
INC DE
GARG1: CALL RHEX
RET C
LD A,M
OR A
RET Z
INC HL
INC BC
LD A,M
LD (BC),A
INC HL
INC BC
LD A,M
LD (BC),A
LD L,81H
INC M
LD A,M
ADD 0F5H
JR NC,GARG1
RET
;*** Systeminit ***
SYSI: LD HL,KCTAB0
LD D,5+2 ;+2:V.24-Interf.
CALL INIMEI
LD DE,0B799H
LD BC,STBL1
LDIR
LD E,0D8H
LD C,STBL2
LDIR
LD A,1
;
SIXD: DI ;UP 31 SIXD
LD HL,ISRTAB
LD (0B7D7H),A
LD I,A
LD E,0E4H
LD D,A
LD BC,0CH
LDIR
PUSH DE
LD E,(IX+4)
POP IX
LD (IX+4),E
LD (IX+8),88H
LD (IX+9),7FH
LD (IX+0EH),KTAB
LD (IX+0FH),0FDH
LD D,4
LD HL,KCTAB1
CALL INIME
LD HL,103H
LD (0B800H),HL
SIXD2: LD A,(IX+7)
AND 1FH
LD (IX+7),A
SIXD3: LD A,0FFH
OUT 89H
LD (IX+5),0
LD (IX+6),0B7H
EI
JP RESFL
INIEA: PUSH BC ;UP 43 INIEA
LD C,M
INC HL
LD B,M
INC HL
OTIR
POP BC
RET
INIMEI: IM 2
INIME: CALL INIEA ;UP 44 INIME
DEC D
JR NZ,INIME
RET
;*** Tape-Routinen ***
DEFW 7F7FH ;>SAVE<
DEFM 'SAVE'
DEFB 1
;
CP 2
JP C,ERRM
SAVE1: CALL OSTR
DEFM 'Name :'
DEFB 0
CALL INLIN
RET C
LD HL,6
ADD HL,DE
;
SAVE: LD DE,0B700H ;UP 36 SAVE
LD BC,11
LDIR
XOR A
LD (DE),A
LD HL,0B781H
LD E,10H
LD C,15H
LDIR
CALL NBWI
RES 5,(IX+7)
LD HL,(0B782H)
SAVE0: LD (IX+5),L
LD (IX+6),H
LD DE,80H
ADD HL,DE
LD DE,(0B784H)
SBC HL,DE
CCF
JP C,NBW1
CALL NBW
JP C,CRO0
JR SAVE0
LARG: LD BC,(0B786H) ;UP 15 LARG
LD DE,(0B784H)
LD HL,(0B782H)
LD A,(0B781H)
RET
NBL1: CALL OSTR
DEFM '???'
DEFB 0
NBL2: JP CMBI ;END CSRO
DEFW 7F7FH ;>VERIFY<
DEFM 'VERIFY'
DEFB 1
;
VERIFY: RES 0,(IX+7) ;UP 11 VERIFY
JR LOAD0
DEFW 7F7FH ;>LOAD<
DEFM 'LOAD'
DEFB 1
;
LOAD: SET 0,(IX+7) ;UP 10 LOAD
;
LOAD0: CALL IMBII
CALL NBR
RES 5,(IX+7)
LOAD1: JR C,NBL2 ;>CSRO
LD HL,0B700H
LD B,11
LOADN: LD A,M
INC HL
CALL CRT
DJNZ LOADN
CALL SPAC
BIT 0,(IX+7)
JR Z,LOAD4
LD L,10H
LD A,M
SUB 2
CP 8 ;A=0..7
JR NC,NBL1
RLCA
RLCA
LD H,A
LD A,(IX+7)
AND 3
OR H
LD (IX+7),A
LD BC,(0B715H)
LD DE,(0B713H)
LD HL,(0B711H)
LD A,(0B781H)
AND A
JR Z,LOAD3
PUSH BC
LD BC,(0B782H)
ADD HL,BC
EX DE,HL
ADD HL,BC
EX DE,HL
BIT 3,(IX+7)
JR NZ,LOAD2
EX (SP),HL
ADD HL,BC
EX (SP),HL
LOAD2: POP BC
LOAD3: LD (0B782H),HL
LD (0B784H),DE
LD (0B786H),BC
CALL HLDE
LOAD4: CALL CRLF
EX DE,HL ;Ziel=DE
LOAD5: CALL NBR
JR C,LOAD1 ;>CSRO
BIT 0,(IX+7)
JR Z,LOAD6
PUSH HL
SBC HL,DE
LD BC,80H
SBC HL,BC
ADD HL,BC
JR NC,BLC1
LD C,L
BLC1: LD HL,0B700H
LDIR
POP HL
LOAD6: INC (IX+2) ;FF?
JR NZ,LOAD5
;
CSRI: CALL CMBI ;UP 0B CSRI
LD A,(IX+7)
RRA
RET NC ;bei VER.
AND 0EH
RES 0,(IX+7)
RET Z ;2 ARG
;
BIT 1,(IX+7) ;AutoSt.enable ?
JR Z,CSRI3
CSRI1: CALL OSTR
DEFM 'Run'
DEFB 0
CALL YESNO
JR Z,CSRI3
CP 'S'
RET NZ
LD A,3
LD (0B781H),A
CALL SAVE1 ;PROGR. COPY
JR CSRI1
CSRI3: LD HL,(0B786H)
JP (HL) ;AUTOSTART-ADR.
YESNO: ;PA:Z=1 bei YES, RG A
CALL OSTR
DEFM '? (Y):'
DEFB 0
CALL INTB
PUSH AF
CALL OCHR
CALL CRLF
POP AF
RES 5,A
CP 'Y'
RET
NBR: ;NewBlockRead
PUSH HL
LD L,4 ;4 Versuche
LD H,(IX+3)
NBR0: CALL BRKT
JR C,NBREND
CALL MBI
LD A,(IX+2)
PUSH AF
CP H
JR Z,NBR2
INC A ;FF?
JR NZ,NBR4
LD A,L
CP 4 ;4 Versuche
JR NZ,NBR4 ;Kein 1.Vers.
DEC H
JR Z,NBR41 ;01 erwartet
INC H
NBR2: POP AF
JR C,NBR5
BIT 5,(IX+7)
JR NZ,NBR3
CALL CBNRO
DEFM '> '
DEFB 0
NBR3: INC H
LD (IX+3),H
NBREND: POP HL
RET
NBR41: INC H
NBR4: POP AF
CALL BNROST
DEFM '*'
DEFW 808H
DEFB 8
DEFB 0
JR NBR0
NBR5: LD H,A ;falls FF
DEC L
JR Z,NBR6
CALL BNROST
DEFM '? '
DEFB 7
DEFB 0
JR NBR0
NBR6: CALL BNROST
DEFM '!'
DEFB 1EH ;CRNL
DEFB 0
JR NBR3
NBW: ;NewBlockWrite
CALL BRKT
RET C
NBW1: LD BC,(0B7DAH) ;mit CY=1 !
BIT 5,(IX+7)
JR Z,NBW2
LD BC,500H
NBW2: JP C,CSRO
CALL MBOT
NBW3: CALL BNROST
DEFM '<'
DEFB 0DH
DEFB 0
RET
NBWI: CALL ISROI
CALL CLLN
JR NBW3
;*** Monitor ***
DEFW 7F7FH ;>COLOR<
DEFM 'COLOR'
DEFB 1
;
COLOR: PUSH AF
LD A,1FH
AND L
RLA
RLA
RLA
LD L,A
POP AF
CP 2
LD A,E
JR NC,COL1
LD A,(0B7A3H)
COL1: AND 7
OR L
COL2: LD (0B7A3H),A
RET
ESC2: LD A,(0B7A3H) ;Blinken on/off
XOR 80H
JR COL2
DPMEMO: CALL HLHX
PUSH HL
LD B,C
DPM1: LD A,M
INC HL
CALL AHSPCE
DJNZ DPM1
POP HL
LD B,C
LD A,9
CALL OCHR
DPM2: LD A,M
INC HL
CALL CSTBT
DJNZ DPM2
RET
CSTBT: PUSH HL ;UP 42 CSTBT
LD HL,0B7A2H
SET 3,M
CALL OCHR
RES 3,M
POP HL
RET
DEFW 7F7FH ;>DISPLAY<
DEFM 'DISPLAY'
DEFB 1
;
DISP: SUB 3 ;UP 3B DISP
JR NC,DISP1
LD C,8
INC A
JR Z,DISP1
LD E,4
DISP1: PUSH DE
DISP2: CALL DPMEMO
CALL CRLF
CALL BRKT
JR C,DISP3
DEC E
JR NZ,DISP2
CALL INTB
DISP3: POP DE
CP 3
RET Z
CP 13H
JR NZ,DISP1
JR MO1
DEFW 7F7FH ;>MODIFY<
DEFM 'MODIFY'
DEFB 1
;
LD C,E
CP 2
JR NC,MO1
MODI: LD C,1 ;UP 2E MODI
MO1: CALL DPMEMO
LD A,5
LD (0B7A0H),A
CALL INLIN
RET C
PUSH HL
CALL RHEX
LD A,M
POP HL
JR C,MO10
AND A
JR Z,MO1
LD HL,(0B797H)
MO2: PUSH HL
CALL RHEX
LD A,M
AND A
INC HL
LD A,M
POP HL
JR Z,MO4
MO3: LD M,A
INC HL
MO4: LD A,(DE)
CP '.'
RET Z
CP ','
JR NZ,MO5
INC DE
LD A,(DE)
INC DE
JR MO3
MO5: CP ':'
JR NZ,MO6
DEC HL
JR MO1
MO6: CP '/'
JR NZ,MO7
INC DE
CALL RHEX
JR C,MO10
LD HL,(0B797H)
JR MO1
MO7: CP 27H ;Hochkomma
JR NZ,MO9
INC DE
MO8: LD A,(DE)
INC DE
AND A
JR Z,MO1
CP 27H ;Hochkomma
JR Z,MO4
LD M,A
INC HL
JR MO8
MO9: AND A
JR Z,MO1
CP 20H
JR Z,MO2
MO10: CALL ERRM
JR MO1
DEFW 7F7FH ;>WINDOW<
DEFM 'WINDOW'
DEFB 1
;
AND A
JR Z,WINAK
DEC A
JR Z,WINAK0
CP 3
JR C,ERRM2
LD H,L
LD L,C
LD D,E
LD A,(0B788H)
LD E,A
LD A,(0B78AH)
JR NZ,WIN5
LD A,(0B79BH)
WIN5: CALL WININ
RET NC
ERRM2: JP ERRM
WININ0: LD A,(0B79BH) ;von BASIC
WININ: PUSH AF ;UP 3C WININ
CALL PART
IAD21: JP C,IAD2
POP AF
PUSH DE
PUSH HL
CALL WCOPY
POP HL
POP DE
LD (0B79CH),HL
LD (0B79EH),DE
LD (0B7A0H),BC
RET
WINAK0: LD A,L
WINAK: CALL WCOPY ;UP 3D WINAK
WINAK1: CALL WINANF ;von BASIC
RET C
INC HL
EX DE,HL
JR WCPY1
WINANF: LD HL,0B79BH
LD A,M
ADD 0F6H
RET C
ADD A
LD E,A
ADD A
ADD A
ADD E
LD E,A
LD D,0B9H
AND A
RET
PART: ADD 0F6H
RET C
LD A,D
SUB 1
RET C
ADD H
RET C
ADD 0E0H
RET C
LD A,E
SUB 1
RET C
ADD L
RET C
ADD 0D8H
RET
WCOPY: PUSH AF
CALL WINANF
JR C,IAD21
POP AF
LD M,A
INC HL
WCPY1: LD BC,0AH
JPLD: LDIR
OR A
RET
KDISP1 INC HL
KYDISP: LD A,M
AND A
RET Z
CALL CSTBT
JR KDISP1
DEFW 7F7FH ;>KEY<
DEFM 'KEY'
DEFB 1
;
JR Z,KEYLI
LD A,L
;
KEY: AND A ;UP 39 KEY
LD HL,0B900H
JR Z,KKILL
CP 0DH
RET NC
LD B,A
KEY1: LD A,M
INC HL
AND A
JR NZ,KEY1
DJNZ KEY1
CALL KYDISP
KEY2: PUSH AF
DEC HL
KEY3: POP AF
KEY4: CALL INTB
CP 13H
JP Z,CRLF
PUSH AF
LD B,0
DEC A
JR NZ,KEY5
LD A,M
AND A
JR Z,KEY3
LD D,H
LD E,L
PUSH HL
INC HL
LD A,9CH
SUB L
LD C,A
LDIR
POP HL
POP AF
CALL OCHR
JR KEY2
KEY5: LD A,(0B99AH)
AND A
JR NZ,KEY3
PUSH HL
LD A,9BH
SUB L
LD C,A
LD HL,0B99AH
LD DE,0B99BH
LDDR
POP HL
POP AF
INC HL
LD M,A
CALL CSTBT
JR KEY4
KKILL: LD B,09CH
KKIL1: LD M,A
INC HL
DJNZ KKIL1
RET
KEYLI: LD HL,0B900H ;UP 3A KEYLI
LD BC,0CF0H
KEYL0: INC C
CALL CLLN
LD A,C
CALL AHOSTR
DEFM ' :'
DEFB 0
CALL KDISP1
CALL CRLF
DJNZ KEYL0
RET
CUCP: PUSH HL ;UP 25 CUCP
PUSH DE
PUSH AF
LD DE,(0B7A0H)
CALL DABR
JR C,CEND
LD A,M
CALL PADR1
OR A
JR NZ,CFARB
SET 5,L
SET 0,H
LD A,M
XOR 7FH
LD M,A
JR CEND
CFARB: LD A,(DE)
CPL
LD (DE),A
SET 5,E
LD A,(DE)
CPL
BIT 7,(IX+8)
JR NZ,CFAB1
XOR 4
CFAB1: LD (DE),A
CEND: POP AF
JR PUDEND
;*** Grafiktreiber ***
PUDE: DEFB 3EH ;UP 2F PUDE
;
PUSE: XOR A ;UP 30 PUSE
PUSH HL
PUSH DE
LD HL,(0B7D3H)
LD DE,(0B7D5H)
OR A
JR NZ,PUDEJP
CALL WTESTV
CALL NC,POINT
PUDEND: POP DE
POP HL
RET
PUDEJP: CALL WTESTV
JR C,PUDEND
PUSH BC
CALL BADR
LD B,A
LD C,M
CPL
AND C
LD M,A
LD A,B
AND C
LD A,(DE)
POP BC
JR PUDEND
LINE: EXX ;UP 3E LINE
PUSH HL
PUSH DE
PUSH BC
LD DE,(0B788H)
LD HL,(0B784H)
EXX
CALL LARG
LD D,B
LD E,C
LINE1: XOR A
SBC HL,DE
JR NC,LINE2
ADD HL,DE
EX DE,HL
EXX
EX DE,HL
EXX
JR LINE1
LINE2: EXX
PUSH DE
LINE3: SBC HL,DE
JR NC,LINE4
ADD HL,DE
EX DE,HL
OR 1
JR LINE3
LINE4: PUSH HL
EXX
POP BC
PUSH HL
SBC HL,BC
POP HL
PUSH BC
JR NC,LINE5
EX (SP),HL
OR 2
LINE5: PUSH HL
LD B,H
LD C,L
EXX
POP BC
POP DE
LD H,B
LD L,C
SRL H
RR L
EXX
POP HL
EX DE,HL
INC BC
LINE6: CALL SHLDE
EXX
Detected encoding: ASCII (7 bit) | 2
|