CAOSEi ASM ; CAOS 3.4 - ROM E
; Version CENTRONICS & V.24
;
; Date: 11.06.1991 (c) by '#+$'
; Intern-ROM-Version!
;BUGFIX: CSRLIN eingebaut!
ORG 0E000H
RESET:
JP BYE
JP BEXP1
JP BEXP2
JP BEXP3
DEFW TOKTAB
JP BASPV
BEL: LD BC,0A1FH
LD L,70H
CALL RTON
LD A,2EH ;Ton+Pause
JP WAIT
;*** Steuerung ***
DEFW 7F7FH ;>BASIC<
DEFM 'BASIC'
DEFB 0
;
LD HL,0C000H
JR BASON
DEFW 7F7FH ;>REBASIC<
DEFM 'REBASIC'
DEFB 0
;
LD HL,0C002H
BASON: IN A,88H
SET 7,A
OUT 88H
in a,89h
or 60h
out 89h ;Segment 3!
JP (HL)
;*** CRT-Unit ***
PADR1: LD HL,(0B79CH)
ADD HL,DE
SLA H
SLA H
SLA H
PADR: PUSH AF ;UP 34 PADR
LD A,L
CP 20H
JR NC,IAD1
ADD A
ADD A
ADD A
LD L,H
SRL H
SRL H
SCF
RR H
RRA
SRL H
RRA
LD D,H
SCF
RR D
SET 3,D
LD E,A
RR E
RR L
RRA
RR L
LD L,A
RL H
POP AF
AND A
RET
IAD1: CP 28H
JR NC,IAD2
PUSH BC
AND 7
ADD A
LD L,A
LD A,H
RLCA
LD B,A
AND 1
OR 0B0H
LD D,A
LD A,B
RLCA
LD C,A
AND 3
OR 50H
LD B,H
LD H,A
LD A,B
AND 30H
OR L
LD L,A
LD A,C
RLCA
RLCA
AND 0C0H
OR L
LD L,A
RR B
RR L
RR B
RL H
RR C
RRA
LD E,A
POP BC
DBRE: POP AF
AND A
RET
IAD2: POP AF
SCF
RET
TCIF: LD A,(0B79EH) ;UP 33 TCIF
DEC A
SUB E
RET C
LD A,(0B79FH)
DEC A
SUB D
RET
DABR: PUSH AF ;UP 32 DABR
CALL TCIF
JR C,IAD2
LD A,(0B79CH)
ADD E
PUSH DE
LD E,A
LD A,(0B79DH)
ADD D
ADD A
ADD A
ADD A
LD L,A
LD H,0
ADD HL,HL
ADD HL,HL
LD D,59H
ADD HL,DE
LD E,A
ADD HL,DE
POP DE
JR DBRE
WPIX: ;Zeichen sichtbar machen
PUSH DE
PUSH BC
CALL PADR1
JR C,WPIX4
LD BC,(0B7A2H)
EX DE,HL
BIT 1,C
JR NZ,WPIX1
LD M,B
SET 5,L
LD M,B
WPIX1: BIT 0,C
JR NZ,WPIX4
LD HL,0B7A6H
ADD A
JR NC,WPIX2
LD L,0AAH
WPIX2: SUB 40H
JP P,WPIX3
INC L
INC L
XOR 0C0H
WPIX3: LD B,M
INC HL
LD H,M
LD L,B
ADD A
BIT 2,C
LD C,A
LD B,0
ADD HL,BC
ADD HL,BC
CALL CPIX
WPIX4: POP BC
POP DE
RET
CPIX: CALL CPIX1
SET 5,E
RES 0,D
CPIX1: CALL CPIX2
SET 0,D
CPIX2: RES 7,E
LD A,M
INC HL
JR Z,CPIX3
CPL
CPIX3: LD (DE),A
SET 7,E
LD A,M
INC HL
JR Z,CPIX4
CPL
CPIX4: LD (DE),A
RET
RSPALT: ;Berechne BC,DE:Fenstergrenzen
;E=0:Nur 1teilig
ADD A
ADD A
ADD A
LD H,A
LD DE,2000H
LD A,(0B79CH)
LD B,A
CP D
LD A,(0B79EH)
LD C,A
RET NC
ADD B
CP D
RET C
SUB D
LD E,A
LD A,D
SUB B
LD C,A
RET
MOVELN: ;Rolle 1 Zeile
PUSH HL
PUSH DE
PUSH BC
LD C,A
PUSH HL
CALL PADR
JR C,PIX2
EX (SP),HL
PUSH DE
LD A,H
ADD 8
LD H,A
CALL PADR
EX (SP),HL
EX DE,HL
LD B,0
LD A,(0B7A2H)
RRA
BIT 0,A
LD A,C
CALL Z,PIX4
POP HL
POP DE
CALL NC,PIX31
INC H
INC D
CALL NC,PIX3
DEFB 6 ;LD B,n
PIX2: POP HL
POPS3: POP BC
POP DE
POP HL
RET
PIX3: RES 7,L
RES 7,E
PIX31: CALL PIX4
SET 7,L
SET 7,E
PIX4: RES 5,L
RES 5,E
CALL PIX5
SET 5,L
SET 5,E
PIX5: PUSH DE
PUSH HL
LD C,A
LDIR
POP HL
POP DE
RET
PCHR: LD HL,0B7A2H
BIT 4,M
JR Z,PCHR0
RES 4,M
CP '0'
RET C
CP 3AH
JR C,ESCJ1
CP 'A'
RET C
RES 5,A
CP 5BH
RET NC
SUB 7
ESCJ1: SUB 30H
LD HL,0B7DFH
CP M
RET NC
LD HL,(0B7DDH)
JR PCHV
PCHR0: CP 20H
JR NC,PCHR1
BIT 3,M
JR NZ,PCHR1
LD HL,(0B7B2H)
PCHV: ADD A
LD C,A
LD B,0
ADD HL,BC
LD A,M
INC HL
LD H,M
LD L,A
LD A,1
JP (HL)
ASC5: LD A,E
AND 0F8H
ADD 8
LD E,A
JR PCHR3
PCHR1: CALL DABR
RET C
PCHR2: LD M,A
CALL WPIX
CUR: INC E
PCHR3: LD A,(0B79EH)
DEC A
CP E
RET NC
CRNL: LD E,0
CUD: INC D
LD A,(0B79FH)
CP D
RET NZ
LD HL,(0B7A4H)
JP (HL)
HCOPY: LD HL,(0B799H)
JP (HL)
CUL: LD A,E
AND A
JR Z,LINUP
DEC E
RET
LINUP: LD A,D
AND A
RET Z
DEC D
CEL: LD A,(0B79EH)
DEC A
LD E,A
RET
CUU: LD A,D
AND A
RET Z
DEC D
RET
PAGE: LD HL,HOMEPG
WADR: LD (0B7A4H),HL
RET
SCROL: LD HL,SCRLPG
JR WADR
CLEAR: CALL CUL
DEL: PUSH DE
DEL1: CALL DABR
LD A,M
AND A
JR Z,INS3
PUSH DE
PUSH HL
INC E
CALL DABR
JR NC,DEL2
LD E,0
INC D
CALL DABR
DEL2: LD A,M
POP HL
POP DE
JR C,DEL3
OR A
JR Z,DEL3
CALL PCHR2
JR DEL1
INS: PUSH DE
LD A,20H
INS1: CALL DABR
LD B,M
CALL PCHR2
LD A,B
AND A
JR Z,INS3
LD A,E
OR D
LD A,B
JR NZ,INS1
POP DE
RET
DEL3: CALL DABR
XOR A
LD M,A
LD A,20H
CALL WPIX
INS3: POP DE
RET
CLLINE: ;Zeile(nst}ck) l|schen
LD L,B
CALL PADR
RET C
LD A,(0B7A2H)
RRA
BIT 0,A
LD A,(0B7A3H)
CALL Z,CM2
LD A,0
RET C
EX DE,HL
CALL CM1
INC D
CM1: RES 7,E
CALL CM2
SET 7,E
CM2: RES 5,E
CALL CM3
SET 5,E
CM3: PUSH DE
LD B,C
CM4: LD (DE),A
INC E
DJNZ CM4
POP DE
RET
CLS: LD A,(0B79FH)
LD D,0
CLS1: PUSH AF
CALL DELLN
POP AF
INC D
DEC A
JR NZ,CLS1
HOMEPG: LD D,0
CRN: LD E,0
RET
SCRLPG: ;Scrollroutine
LD A,(0B79EH)
LD C,A
LD B,0
LD A,(0B79FH)
DEC A
JR Z,SCRL4
PUSH DE
PUSH AF
LD DE,0
CALL DABR
JR C,SCRL3
EX DE,HL
SCRL1: LD HL,28H
ADD HL,DE
PUSH HL
PUSH BC
LDIR
POP BC
POP DE
DEC A
JR NZ,SCRL1
LD A,(0B79DH)
CALL RSPALT
SCRL2: LD A,C
LD L,B
CALL MOVELN
LD A,E
AND A
LD L,D
CALL NZ,MOVELN
LD A,H
ADD 8
LD H,A
POP AF
DEC A
PUSH AF
JR NZ,SCRL2
SCRL3: POP AF
POP DE
SCRL4: DEC D
;
DELLN: LD E,0
PUSH DE
CALL DABR
LD A,(0B79EH)
LD B,A
XOR A
DL1: LD M,A
INC HL
DJNZ DL1
LD A,(0B79DH)
ADD D
CALL RSPALT
PUSH DE
PUSH HL
CALL CLLINE
POP HL
POP BC
CP C
CALL NZ,CLLINE
POP DE
RET
RCLICK: LD BC,20FH
LD L,50H
RTON: PUSH DE ;Ton nur rechts
LD H,0
LD E,H
CALL PHALT
OUT 8EH ;CTC off
CALL TONP
POP DE
RET
ASC6: LD HL,0B7A3H ;=ESC 8
LD A,M ;Farbe compeln
AND 0C0H
LD C,A
LD A,M
AND 7
RLCA
RLCA
RLCA
OR C
LD C,A
LD A,M
RRCA
RRCA
RRCA
AND 7
OR C
LDMA: LD M,A ;UP 28 LDMA
RET
LDAM: LD A,M ;UP 29 LDAM
RET
SHLOCK: LD A,80H
DEFB 1 ;LD BC,...
CLICK: LD A,20H
XOR (IX+8)
LD (IX+8),A
DUMMY: RET
CRT: PUSH HL ;UP 00 CRT
PUSH DE
PUSH BC
PUSH AF
LD DE,(0B7A0H)
CALL PCHR
LD (0B7A0H),DE
POP AF
JP POPS3
ESC: ADD A ;Beeinflussung
ESC4: ADD A ; Steuerbits
ESC7: ADD A
ESCF: ADD A
ESC3: LD HL,0B7A2H
XOR M
LD M,A
RET
;*** KBD-Unit ***
ISRC3: EI ;ISR CTC 3 KBD
PUSH AF
LD A,23H
OUT 8FH
LD (IX+0DH),0
JR TST4
ISRPB: EI ;ISR PIO B KBD
TAST: PUSH AF
DEC (IX)
IN A,8FH
PUSH AF
LD A,0A7H
OUT 8FH,A
LD A,8FH
OUT 8FH,A
POP AF
CP 14H
JR C,TST4
CP 65H
JR NC,TST3
ADD 0BEH
JR C,TST3
LD A,(IX+0CH)
RRA
XOR 1
PUSH HL
PUSH DE
LD E,A
LD D,0
LD L,(IX+0EH)
LD H,(IX+0FH)
ADD HL,DE
LD A,M
BIT 7,(IX+8)
JR NZ,TST1
CP 40H
JP M,TST1
XOR 20H
TST1: CP (IX+0DH)
PUSH AF
JR NZ,TST5
LD A,(0B7E0H) ;COUNT
CP (IX+0AH)
JR C,TST7
POP AF
INC (IX+0AH)
TST2: POP DE
POP HL
TST3: RR (IX+0CH)
TST4: POP AF
INTE: RETI
TST5: LD (IX+0AH),0
LD A,E
CP 73H ;Tast-Nr.SoftRes
JR NZ,TST6
BIT 3,(IX+8)
RES 3,(IX+8)
JR NZ,TST7
LD HL,RESET
PUSH HL
JR INTE
TST6: SET 3,(IX+8)
TST7: POP AF
LD (IX+0DH),A
SET 0,(IX+8)
JR TST2
KBDS: XOR A ;UP 0C KBDS
BIT 0,(IX+8)
RET Z
LD A,(IX+0DH)
SCF
RET
KBDZ: CALL KBDS ;UP 0E KBDZ
RET NC
RESFL: RES 0,(IX+8)
RET
;*** Tape-Unit ***
ESC1: LD A,(IX+7)
XOR 2
LD (IX+7),A
RET
IMBII: ;intern mit Standardpuffer,
;Erwarteter Block und Unter-
;dr}ckung OK-Block
CALL SIXD3
LD (IX+3),1
SET 5,(IX+7)
;
IMBI: ;Init.MB-Eingabe ohne Lesen
;und ohne Init.(IX+5/6)
IN 89H
RES 7,A
OUT 89H ;Blink off
IN A,88H
SET 6,A ;MSS on
IMBI1: OUT 88H,A
EI
PUSH HL
LD HL,(0B7A4H)
LD (0B7CFH),HL
CALL NOUT
LD (0B7CDH),HL
CALL PAGE
POP HL
PHALT: LD A,3
OUT 8CH,A
OUT 8DH,A
RES 1,(IX+8)
RET
CMBI: ;Abschlu~ MB-Eingabe
CALL CRO0
BLION: ;Blinken on
IN A,89H
SET 7,A
OUT 89H
DI
LD A,47H
OUT 8EH
LD A,0CH
OUT 8EH
EI
RET
CSRO: ;Abschlu~ MB-Ausgabe mit
;Schreiben letzter Block
LD (IX+2),0FEH;UP 09 CSRO
CALL PV1
DEFB 1 ;MBOT
CRO0: PUSH HL
LD HL,(0B7CDH)
LD (0B7B9H),HL
LD HL,(0B7CFH)
LD (0B7A4H),HL
LD HL,0B780H
XOR A
CRO1: DEC L
LD M,A
JR NZ,CRO1
POP HL
IN A,88H
AND 9FH
OUT 88H,A
CALL CRLF
JP SIXD2
ISROI: CALL SIXD3 ;intern
ISRO: IN A,88H ;UP 08 ISRO
OR 60H
CALL IMBI1
LD (IX+2),0
LD BC,1000H
CALL PV1
DEFB 1 ;MBOT Shell!!
RET
;
MBOT: INC (IX+2) ;UP 01 MBOT
DI
LD A,87H
OUT 8DH,A
LD A,2FH
OUT 8DH,A
EI
LD D,A
LD E,A
MBOT1: CALL BITOUT
CPI
JP PE,MBOT1
CALL ZTON
LD A,(IX+2)
CALL BYTOT
LD L,(IX+5)
LD H,(IX+6)
LD B,80H
MBT1: LD A,M
CALL BYTOT
LD A,C
ADD M
LD C,A
INC HL
DJNZ MBT1
CALL BYTOT
LD A,D
CALL HBITOT
LD A,3
OUT 8DH,A
RET
BYTOT: PUSH BC
LD C,A
LD B,8
BYTOUT: RRC C
LD E,17H
CALL NC,BITOUT
LD E,2FH
CALL C,BITOUT
DJNZ BYTOUT
POP BC
ZTON: LD E,5DH
BITOUT: CALL HBITOT
HBITOT: LD (IX),D
HBIT1: LD A,(IX)
AND A
JR NZ,HBIT1
LD D,E
RET
ISRI: CALL IMBI ;UP 0A ISRI
CALL PV1
DEFB 5 ;MBI Shell!!
RET
;
MBI: LD A,83H ;UP 05 MBI
OUT 8AH,A
PUSH HL
PUSH DE
MBI1: CALL BRKT
JR C,MBI6
LD B,16H
MBI2: CALL STOP1
JR C,MBI1
CP 0BAH
CALL LEDON
JR C,MBI1
DJNZ MBI2
MBI3: LD B,2
MBI4: XOR A
LD C,A
CALL STOP2
CP 5DH
JR NC,MBI3
DJNZ MBI4
CALL BYTIN
JR C,MBI6
LD (IX+2),A
LD B,80H
LD L,(IX+5)
LD H,(IX+6)
LD E,0
MBI5: PUSH DE
CALL BYTIN
POP DE
JR C,MBI6
LD M,A
ADD E
LD E,A
INC HL
DJNZ MBI5
LD L,A
CALL BYTIN
JR C,MBI6
SUB L
ADD 0FFH
MBI6: POP DE
POP HL
LD A,3
OUT 8AH,A
LEDON: IN A,88H
SET 5,A
JR NC,MBI7
RES 5,A
MBI7: OUT 88H,A
RET
MOT: ;Umschalten der MSS (ESC A)
IN A,88H
XOR 60H
JR MBI7
ISRC1: PUSH AF ;ISR CTC 1 MBO
LD A,87H
OUT 8DH,A
LD A,(IX)
OUT 8DH,A
LD (IX),0
JR IMBEND
ISRPA: PUSH AF ;ISR PIO A MBI
IN A,8EH
LD (IX),A
LD A,7
OUT 8EH,A
LD A,0A3H
OUT 8EH,A
IMBEND: POP AF
INTEND: EI
RETI
STOP1: LD (IX),0
STOP11: LD A,(IX)
OR A
JR Z,STOP11
LD C,A
STOP2: LD (IX),0
STOP21: LD A,(IX)
OR A
JR Z,STOP21
ADD C
RET
BYTIN: LD DE,800H
TRN1: CALL STOP1
JR C,TRN2
CP 0BAH
RET C
TRN2: CCF
RR E
DEC D
JR NZ,TRN1
CALL STOP1
LD A,E
RET
;*** Sound Unit ***
ISRC2: PUSH AF ;ISR CTC 2 TON
CALL PHALT
CALL BLION
JR IMBEND
TON: CALL LARG ;UP 35 TON
TON1: BIT 1,(IX+8)
JR NZ,TON1
TONP: LD A,C
RLA
CPL
LD C,A
LD A,B
ADD 0FFH
JR NC,TON2
DI
SET 1,(IX+8)
LD A,0C7H
OUT 8EH,A
LD A,B
OUT 8EH,A
EI
TON2: LD A,C
RRA
OUT 89H,A
LD C,8CH
CALL ZKO
INC C
EX DE,HL
ZKO: LD A,L
AND A
LD L,3
JR Z,TON3
LD L,A
LD A,H
RRCA
RRCA
OR 0AH ;2*5
RRA
XOR 2
DI
OUT (C),A
TON3: OUT (C),L
EI
RET
;====== BASIC-ERWEITERUNG ==============
;*** BASIC I/O-Verteiler ***
BASPV: PUSH BC
PUSH HL
CALL IRMON
BIT 5,E
PUSH DE
JR NZ,BASBYE
INC HL
INC HL
BIT 7,E
JR NZ,BSA2
PUSH HL
LD A,E
AND 7
LD HL,BUPTAB
ADD L
LD L,A
LD A,D
LD D,E
LD E,M
POP HL
CALL PV3
POP DE
LD D,A
LD A,E
AND 4FH
XOR 43H
JR NZ,BSA1
CALL OSTR
DEFM 'VERIFY'
DEFB 0
CALL YESNO
CALL Z,VERIFY
BSA1: LD A,D
RES 3,E
CALL IRMOFF
BSAE: POP HL
POP BC
RET
BUPTAB: DEFB 16H ;KEINE 100H-
DEFB 24H ;Ueberschneidung
DEFB 37H
DEFB 38H
DEFB 6
DEFB 2
DEFB 7
DEFB 3
BSA2: CALL KBDS
BSA3: POP DE
LD D,A
JR NC,BSA1
RES 7,E
JR BSA1
BASBYE: IN A,88H
RES 7,A
OUT 88H
JP LOOP
;*** BASIC-Expander ***
BEXP1: LD A,B
SUB 9
JR C,SNERR1
CP 1BH
JR NC,SNERR1
RLCA
LD C,A
LD B,0
EX DE,HL
LD HL,TADR5
JP 0C8B7H
LOCOL: ;LoadColor
PUSH HL
LD HL,0B7A3H
CALL RLDAM
POP HL
RET
BEXP2: LD A,M
CP 0DFH
RET C
CP 0E3H
RET NC
CP 0E1H
JP Z,AT
LD A,(3FDH)
AND A
JR NZ,SNERR1
INC A
LD (3FDH),A
DEFB 3EH ;LD A,n
RBE2: PUSH BC
CALL LOCOL
LD (37EH),A
LD A,M
CP 0DFH
JR Z,BE23
CP 0E2H
JP Z,PRCOL
CALL 0C8BDH
CALL PAPER
BE22: LD A,M
CP ';'
JR Z,BE25
SNERR1: JP 0C348H
PRCOL: CALL 0C8BDH
CALL COLR
JR BE22
BE23: CALL 0C8BDH
CALL INK
LD A,M
CP ';'
JR Z,BE25
CALL 0C8CCH
DEFB 2CH
CP 0E0H
JR NZ,SNERR1
CALL 0C8BDH
CALL PAPER
CALL 0C8CCH
DEFB ';'
BE24: CALL 0CB03H
LD A,(37EH)
PUSH HL
LD HL,0B7A3H
CALL RLDMA
POP HL
POP BC
RET
BE25: CALL 0C8BDH
JR BE24
BEXP3: LD A,C
CP 62H
JP Z,VPEEK
CP 6EH
JP Z,PTEST
CP 7CH
JP Z,CSRLIN
CP 76H
JP Z,VGET
SUB 3EH
JR C,SNERR1
CP 7
JR NC,SNERR1
EX DE,HL
LD BC,TOKADR
POP HL
LD L,A
ADD HL,BC
LD C,M
INC HL
LD H,M
LD L,C
PUSH HL
EX DE,HL
RET
STR: CALL 0C8CCH
DEFB '('
CALL 0D421H
PUSH AF
CALL 0C8D6H
CALL 0CD3AH
CALL 0C8DBH
POP AF
PUSH HL
PUSH AF
CALL 0D330H
INC HL
INC HL
LD E,M
INC HL
LD D,M
POP BC
PUSH BC
PUSH AF
PUSH DE
LD C,A
XOR A
CP C
JR Z,STR2
CP B
JR Z,STR2
LD A,C
DEC B
JR Z,STR2
STR1: ADD C
JR C,STR5
DJNZ STR1
STR2: LD B,A
LD C,0
PUSH BC
CALL 0D1E1H
POP BC
POP BC
PUSH BC
CALL 0D17EH
POP HL
EX (SP),HL
LD A,H
POP HL
EX (SP),HL
LD L,A
INC H
STR3: DEC H
PUSH HL
PUSH BC
JR Z,STR4
CALL 0D2F2H
POP BC
POP HL
JR STR3
STR4: POP BC
POP HL
POP DE
CALL 0D302H
JP 0D1A9H
STR5: LD E,1CH
JP 0C356H
REN: PUSH HL
LD HL,0AH
LD (354H),HL
LD HL,(35FH)
PUSH AF
PUSH HL
INC HL
INC HL
LD A,M
INC HL
LD H,M
LD L,A
LD (34EH),HL
LD (352H),HL
LD DE,(3D7H)
DEC DE
DEC DE
REN1: POP HL
PUSH HL
LD A,M
INC HL
LD H,M
LD L,A
CALL 0C689H
EX (SP),HL
JR NZ,REN1
POP DE
INC HL
INC HL
LD A,M
INC HL
LD H,M
LD L,A
LD (350H),HL
LD B,4
POP AF
LD HL,34EH
EX (SP),HL
REN2: JR Z,REN5
CALL 0C986H
PUSH AF
LD A,D
OR E
REN3: JP Z,0C967H
POP AF
EX (SP),HL
LD M,E
INC HL
LD M,D
INC HL
JR Z,REN5
PUSH AF
DEC B
JR Z,REN4
POP AF
EX (SP),HL
CALL 0C8D6H
JR REN2
REN4: POP AF
JP NZ,0C348H
REN5: LD HL,(350H)
LD DE,(34EH)
CALL 0C689H
REN6: JP C,0C967H
LD HL,(35FH)
REN7: CALL 0C4BEH
JR C,REN8
JR Z,REN3
JR REN7
REN8: POP HL
PUSH BC
LD DE,(350H)
LD HL,0
LD (350H),HL
REN9: LD H,B
LD L,C
LD C,M
INC HL
LD B,M
LD A,B
OR C
JR Z,REN3
INC HL
LD A,M
INC HL
LD H,M
LD L,A
CALL 0C689H
LD HL,(350H)
INC HL
LD (350H),HL
JR NZ,REN9
INC HL
INC HL
ADD HL,HL
INC HL
LD DE,(3D7H)
ADD HL,DE
JR C,REN6
CALL 0C327H
LD (3D7H),HL
XOR A
DEC HL
LD M,A
DEC HL
LD M,A
DEC DE
DEC DE
EX DE,HL
LD M,E
INC HL
LD M,D
INC HL
DEC A
LD M,A
INC HL
LD M,A
INC HL
EX DE,HL
LD HL,(352H)
LD (34EH),HL
REN10: POP HL
LD C,M
INC HL
LD B,M
INC HL
PUSH BC
LD BC,34EH
LD A,M
LD (DE),A
LD A,(BC)
LD M,A
INC HL
INC DE
INC BC
LD A,M
LD (DE),A
LD A,(BC)
LD M,A
INC DE
LD HL,(34EH)
LD BC,(354H)
ADD HL,BC
LD (34EH),HL
LD HL,(350H)
DEC HL
LD A,H
OR L
LD (350H),HL
JR NZ,REN10
LD (DE),A
POP HL
LD HL,(35FH)
PUSH HL
REN11: POP HL
LD C,M
INC HL
LD B,M
INC HL
PUSH BC
LD A,M
INC HL
AND M
INC A
JR Z,REN15
REN12: INC HL
REN13: LD A,M
OR A ;ZEILEN-ENDE
JR Z,REN11
CP 88H ;GOTO
JR Z,REN16
CP 8CH ;GOSUB
JR Z,REN16
CP 8BH ;RESTORE
JR Z,REN14
CP 0D4H ;ELSE
JR Z,REN14
CP 0A9H ;THEN
JR NZ,REN12
REN14: CALL 0C987H ;F.RESTORE,THEN,
LD A,E ; ELSE
OR D
CALL NZ,RENLN
CALL NZ,RENZN
JR REN13
REN15: DEC HL
LD (3D7H),HL
DEC HL
LD M,A
DEC HL
LD M,A
POP HL
POP HL
JP 0C48AH
REN16: CALL 0C987H ;F.GOTO,GOSUB
LD A,E
OR D
JR Z,REN13
CALL RENLN
CALL NZ,RENZN
LD A,M
CP 2CH
JR NZ,REN13
JR REN16
RENLN: PUSH HL
PUSH DE
LD DE,0FFFFH
CALL 0C4BBH
POP DE
INC BC
INC BC
INC BC
INC BC
LD H,B
LD L,C
LD BC,(352H)
RL1: LD A,M
INC HL
PUSH HL
OR M
JR Z,REND2
LD A,M
DEC HL
LD L,M
LD H,A
CALL 0C689H
JR Z,REND1
LD HL,(354H)
ADD HL,BC
LD B,H
LD C,L
POP HL
INC HL
JR RL1
REND1: XOR A
DEC A
REND2: POP HL
POP HL
RET
RENZN: PUSH BC ;NEUE ZEILEN-NR.
EX DE,HL ; F.SPRUENGE,...
LD HL,(3D7H)
SBC HL,DE
PUSH HL
RZ1: POP BC
LD H,D
LD L,E
DEC DE
LD A,(DE)
CP ','
JR Z,RZ2
CP ':'
JR NC,RZ2
PUSH BC
PUSH DE
LDIR
POP DE
JR RZ1
RZ2: EX DE,HL
POP DE
PUSH HL
PUSH BC
XOR A
LD B,98H
CALL 0D6AEH
CALL 0D834H
POP BC
POP DE
INC HL
INC DE
RZ3: LD A,M
OR A
JR Z,RZ4
PUSH BC
PUSH HL
EX DE,HL
ADD HL,BC
LD D,H
LD E,L
DEC HL
LDDR
POP HL
LDI
POP BC
JR RZ3
RZ4: PUSH DE
LD DE,(35FH)
CALL 0C493H
RZ5: INC HL
LD A,M
INC HL
OR M
JR NZ,RZ5
EX DE,HL
LD M,E
INC HL
LD M,D
INC DE
INC DE
LD (3D7H),DE
POP HL
LD D,H
LD E,L
RZ6: LD A,M
OR A
INC HL
JR NZ,RZ6
POP BC
EX (SP),HL
PUSH BC
EX DE,HL
RET
DLTE: RET Z
CALL 0C986H
JP Z,0C442H
CALL 0C8D6H
PUSH DE
CALL 0C986H
POP HL
RET NZ
EX DE,HL
PUSH HL
CALL 0C4BBH
JP NC,0C44DH
POP DE
PUSH AF
PUSH BC
CALL 0C4BEH
JP NC,0C44DH
POP BC
JP 0C450H
PAUSE: CALL 0C8BEH
JR NZ,PSE2
PSE1: LD E,2AH ;BRKT
CALL PV5
RET C
CP 0AH ;CUD
JR NZ,PSE1
CONT: JP 0DDE4H
PSE2: CALL 0D421H
LD C,A
PSE3: LD A,10H
LD E,14H ;WAIT
CALL PV5
LD E,2AH ;BRKT
CALL PV5
RET C
CP 0AH
JR Z,CONT
DEC C
JR NZ,PSE3
RET
BEEP: LD B,1
CALL 0C8BEH
JR Z,BEEP1
CALL 0D421H
LD B,A
BEEP1: LD A,7
LD E,0
CALL PV5
DJNZ BEEP1
RET
MC8D4: CALL 0C8D6H
JP 0D421H
WNDW: CALL 0C8BEH
JR Z,WDW2
CALL 0D421H
LD B,A ;WAY>B
PUSH BC
CALL MC8D4
LD D,A ;WEY>D
PUSH DE
CALL MC8D4
POP DE
LD E,A ;WAX>E
PUSH DE
CALL MC8D4
POP DE ;WEX>A
EX (SP),HL ;WAY>H
LD L,E ;WAX>L
SUB E
JR C,SNERR2
INC A
LD E,A ;WLX>E
LD A,D ;WEY
SUB H ;WAY
JR C,SNERR2
INC A
LD D,A ;WLY>D
WDW1: CALL IRMON
CALL WININ0
CALL IRMOFF
JR C,SNERR2
POP HL
RET
WDW2: PUSH HL
LD HL,100H
LD DE,1E28H
JR WDW1
BLOAD: PUSH HL
LD HL,0B781H
XOR A
CALL RLDMA
POP HL
LD E,10H
JP PV5
VPEEK: CALL 0CDE1H
EX (SP),HL
LD DE,0CDF3H
PUSH DE
CALL 0C96FH
PUSH HL
LD HL,8000H
ADD HL,DE
JR C,SNERR2
BIT 6,H
JR NZ,SNERR2
CALL RLDAM
POP HL
JP 0D3E9H
VPOKE: CALL 0C96CH
PUSH DE
CALL MC8D4
EX (SP),HL
LD DE,8000H
ADD HL,DE
JR C,SNERR2
BIT 6,H
JR Z,JLDMA
SNERR2: JP 0C348H
AT: LD A,(3FDH)
BIT 1,A
SET 1,A
LD (3FDH),A
JR NZ,SNERR2
PUSH DE
PUSH HL
CALL IRMON
LD HL,0
LD DE,2028H
CALL WININ0
CALL IRMOFF
POP HL
CALL SUARG
CALL 0C8DBH
CALL 0C8CCH
DEFB ';'
LD A,M
CP 0DFH
JR C,AT2
CP 0E3H
JR NC,AT2
CALL RBE2
AT1: PUSH HL
CALL IRMON
LD A,(0B79BH)
CALL WINAK1
CALL IRMOFF
POP HL
POP DE
POP BC
RET
AT2: CALL 0CB03H
JR AT1
INK: CALL 0D421H
CP 20H
JR NC,SNERR2
ADD A
ADD A
ADD A
LD D,A
CALL LOCOL
AND 7
JR LDCOL
PAPER: CALL 0D421H
CP 8
JR NC,SNERR2
LD D,A
CALL LOCOL
AND 0F8H
LDCOL: OR D
PUSH HL
LD HL,0B7A3H
JLDMA: CALL RLDMA
POP HL
RET
COLR: CALL 0C8BEH
JR Z,SNERR2
CALL INK
CALL 0C8BEH
RET Z
CALL 0C8D6H
JR PAPER
SUARG: CALL 0C8BDH
CALL 0C8CCH
DEFB '('
LOCAT: CALL 0D421H
LD D,A
PUSH DE
CALL MC8D4
POP DE
LD E,A
CALL IRMON
CALL TCIF
JR C,LOCAT1
LD (0B7A0H),DE
LOCAT1: CALL IRMOFF
RET NC
SNERR3: JP 0C348H
INKEY: PUSH HL
CALL KBDS
JR NC,IKY2
LD A,1
CALL 0D17BH
CALL 0DDE4H
AKTCHR: LD HL,(3C2H)
LD M,A
IKY1: JP 0D1A9H
IKY2: XOR A
CALL 0D17BH
JR IKY1
SOUND: CALL 0D421H
PUSH HL
LD HL,0B782H
LD B,4
SNDS: CALL RLDMA
INC HL
EX (SP),HL
DEC B
JR Z,SND2
PUSH BC
CALL MC8D4
POP BC
EX (SP),HL
JR SNDS
SND2: CALL 0C8BEH
JR Z,SND3
CALL MC8D4
EX (SP),HL
CALL RLDMA
INC HL
EX (SP),HL
CALL 0C8BEH
JR Z,SND3
CALL MC8D4
EX (SP),HL
CALL RLDMA
EX (SP),HL
SND3: LD E,35H
POP BC
JP PV5
PRES: LD E,2FH
DEFB 1
PSET: LD E,30H
PUSH DE
CALL 0C96CH
PUSH HL
LD HL,0B7D3H
CALL LDMDE
EX (SP),HL
CALL MC8D4
EX (SP),HL
CALL RLDMA
POP HL
CALL SUCOL
POP DE
PNT2: CALL PV5
RET NC
JR SNERR3
SUCOL: CALL 0C8BEH
RET Z
CALL MC8D4
PUSH HL
LD HL,0B7D6H
RLCA
RLCA
RLCA
JP JLDMA
INSTR: CALL 0CD36H
CALL 0C8D6H
PUSH HL
CALL 0D330H
JR Z,FCERR
LD B,A
INC HL
INC HL
LD E,M
INC HL
LD D,M
POP HL
PUSH DE
PUSH BC
CALL 0CD3AH
CALL 0C8DBH
POP BC
POP DE
PUSH HL
PUSH DE
PUSH BC
CALL 0D330H
FCERR: JP Z,0C967H
INC HL
INC HL
LD C,M
INC HL
LD H,M
LD L,C
POP BC
LD C,A
POP DE
PUSH HL
ISTR1: PUSH BC
PUSH DE
LD A,(DE)
ISTR2: CP M
JR Z,ISTR5
INC HL
DEC C
JR NZ,ISTR2
ISTR3: XOR A
POP HL
POP HL
POP HL
ISTR4: LD DE,0CDF3H
PUSH DE
JP 0D0C0H
ISTR5: INC HL
PUSH HL
DEC HL
ISTR6: INC HL
DEC C
JR Z,ISTR7
INC DE
DEC B
JR Z,ISTR8
LD A,(DE)
CP M
JR Z,ISTR6
POP HL
POP DE
LD A,C
POP BC
LD C,A
JR ISTR1
ISTR7: INC DE
DEC B
POP HL
JR NZ,ISTR3
JR ISTR9
ISTR8: POP HL
ISTR9: POP DE
POP DE
POP DE
AND A
SBC HL,DE
LD A,L
JR ISTR4
BKEY: CALL 0D421H
CP 0DH
JR NC,SNERR4
LD E,39H
DEFB 1
KLST: LD E,3AH
DEFB 1
RLDAM: LD E,29H
JPV5: JP PV5
RLDMA: LD E,28H
JR JPV5
SWTCH: CALL 0D421H
PUSH AF
CALL MC8D4
LD D,A
POP AF
PUSH HL
LD L,A
LD A,2
LD E,26H
CALL PV5
POP HL
RET
PTEST: CALL 0CDE1H
EX (SP),HL
LD DE,0CDF3H
PUSH DE
CALL 0C96FH
PUSH HL
LD HL,0B7D3H
CALL LDMDE
CALL IRMON
LD E,2FH
CALL PV3
JR C,PTST2
LD B,0
JR Z,PTST1
INC HL
LD M,A
INC E
CALL PV3
LD B,1
PTST1: LD A,B
PTST2: CALL IRMOFF
POP HL
JP NC,0D3E9H
SNERR4: JP 0C348H
LDMDE: LD A,E
CALL RLDMA
INC HL
LD A,D
CALL RLDMA
INC HL
RET
CLOSE: LD C,0
LD A,M
CP 'I'
JR Z,CL1
INC C
CP 'O'
JR NZ,SNERR4
CL1: PUSH BC
INC HL
LD A,M
CP '#'
CL2: JR NZ,SNERR4
INC HL
CALL 0D421H
AND 3
POP BC
RET Z
PUSH HL
RL A
ADD C
PUSH AF
DEC A
LD B,0
SCF
CL3: RL B
DEC A
JR NZ,CL3
LD HL,307H
LD A,M
XOR B
LD M,A
POP AF
POP HL
SET 6,A
PUSH DE
LD E,A
LD D,3
CALL BASPV
POP DE
RET
RND: LD A,R
LD (31DH),A
RET
OPEN: LD A,M
INC HL
CP 'I'
JR Z,OPENI
CP 'O'
JR NZ,CL2
CALL 0DE25H
CALL 0DDC8H
RET Z
LD A,0D5H
CALL 0DCB2H
LD HL,3EAH
XOR A
CALL 0DDD5H
POP HL
RET
OPENI: CALL 0DE5FH
LD A,(309H)
AND 3
RET Z
LD A,0D5H
CALL 0DCB2H
LD HL,3EAH
CALL 0DDE4H
POP HL
RET
BLINE: LD BC,43EH
JR PIC1
CIRCL: LD BC,33FH
PIC1: PUSH BC
CALL 0C96CH
POP BC
PUSH BC
PUSH HL
LD HL,0B782H
PIC2: CALL LDMDE
DEC B
JR Z,PIC3
EX (SP),HL
PUSH BC
CALL 0C8D6H
CALL 0C96CH
POP BC
EX (SP),HL
JR PIC2
PIC3: POP HL
CALL SUCOL
POP DE
JP PV5
CSRLIN: CALL 0CDE1H
EX (SP),HL
LD DE,0CDF3H
PUSH DE
CALL 0D424H
PUSH HL
AND A
LD A,0
LD HL,0B79DH
CALL Z,RLDAM
LD B,A
LD L,0A1H
CALL RLDAM
ADD B
POP HL
JP 0D3E9H
VGET: EX (SP),HL
LD A,1
CALL 0D17BH
CALL IRMON
LD DE,(0B7A0H)
CALL DABR
LD A,M
CALL IRMOFF
JP AKTCHR
; BASIC-TOKEN
; ===========
TOKTAB: DEFB 'I'+80H ;TOKEN AB D5
DEFM 'NKEY$'
DEFB 'J'+80H
DEFM 'OYST'
DEFB 'S'+80H
DEFM 'TRING$'
DEFB 'I'+80H
DEFM 'NSTR'
DEFB 'R'+80H
DEFM 'ENUMBER'
DEFB 'D'+80H
DEFM 'ELETE'
DEFB 'P'+80H
DEFM 'AUSE'
DEFB 'B'+80H
DEFM 'EEP'
DEFB 'W'+80H
DEFM 'INDOW'
DEFB 'B'+80H
DEFM 'ORDER'
DEFB 'I'+80H
DEFM 'NK'
DEFB 'P'+80H
DEFM 'APER'
DEFB 'A'+80H
DEFM 'T'
DEFB 'C'+80H
DEFM 'OLOR'
DEFB 'S'+80H
DEFM 'OUND'
DEFB 'P'+80H
DEFM 'SET'
DEFB 'P'+80H
DEFM 'RESET'
DEFB 'B'+80H
DEFM 'LOAD'
DEFB 'V'+80H
DEFM 'PEEK'
DEFB 'V'+80H
DEFM 'POKE'
DEFB 'L'+80H
DEFM 'OCATE'
DEFB 'K'+80H
DEFM 'EYLIST'
DEFB 'K'+80H
DEFM 'EY'
DEFB 'S'+80H
DEFM 'WITCH'
DEFB 'P'+80H
DEFM 'TEST'
DEFB 'C'+80H
DEFM 'LOSE'
DEFB 'O'+80H
DEFM 'PEN'
DEFB 'R'+80H
DEFM 'ANDOMIZE'
DEFB 'V'+80H
DEFM 'GET$'
DEFB 'L'+80H
DEFM 'INE'
DEFB 'C'+80H
DEFM 'IRCLE'
DEFB 'C'+80H
DEFM 'SRLIN'
DEFB 80H ;ENDE-BYTE
TOKADR: DEFW INKEY
DEFW 2FDH ;JOY
DEFW STR
DEFW INSTR
TADR5: DEFW REN
DEFW DLTE
DEFW PAUSE
DEFW BEEP
DEFW WNDW
DEFW 0D421H ;BORDER
DEFW INK
DEFW PAPER
DEFW 0C348H ;AT
DEFW COLR
DEFW SOUND
DEFW PSET
DEFW PRES
DEFW BLOAD
DEFW 0C348H ;VPEEK
DEFW VPOKE
DEFW LOCAT
DEFW KLST
DEFW BKEY
DEFW SWTCH
DEFW 0C348H ;PTEST
DEFW CLOSE
DEFW OPEN
DEFW RND
DEFW 0C348H ;VGET
DEFW BLINE
DEFW CIRCL
; END
øý
BITTAB:
STBL2:2
STBL1:ñý
STBE2:èý
STBE1:¶ý
SYSTAB:¥ý
KCTAB1:–ý
KCTAB0:Šý
ISRTAB:
ý
KTAB:Êü
CRTTAB
DEFW CIRCL
; END
øý
BITTAB:
STBL2:2
STBL1:ñý
STBE2:èý
STBE1:¶ý
SYSTAB:¥ý
KCTAB1:–ý
KCTAB0:Šý
ISRTAB:
ý
KTAB:Êü
CRTTAB
Detected encoding: ANSI (CP1252) | 4
|
|