CE2 ASM ; CAOS 3.4 - ROM E
; Version CENTRONICS & V.24
;
; Date: 11.06.1992 (c) by '#+$'
;
ORG 0E000H
RESET DI
JR OSTEST
JP BEXP1
JP BEXP2
JP BEXP3
DEFW TOKTAB
JP BASPV
;*** Steuerung ***
OSTEST ;CAOS-on-Test
IN A,88H
RRA
JP NC,BYE
LD BC,0FC80H
IN A,(C)
CP 0A7H
JR NZ,JUMPN
OUT (C),A
;Koppel-RAM-Test
LD BC,80F3H
LD A,41H
OUT (C),A
LD H,80H
D004W IN A,(C)
RLA
JR C,JUMPN
DEC L
JR NZ,D004W
DEC H
JR NZ,D004W
;Module abschalten!
LD BC,880H
MNX INC B
JR Z,MRDY
IN A,(C)
CPL
AND 0F0H
JR NZ,MNX
XOR A
OUT (C),A
LD H,0B8H
LD L,B
LD M,A
JR MNX
MRDY LD A,0FCH
DEFB 21H
JUMPN LD A,8
LD L,A
CALL 0F003H
DEFB 27H ;JUMP
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
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
BEL LD BC,0A1FH
LD L,70H
CALL RTON
LD A,2EH ;Ton+Pause
;
WAIT LD B,A ;UP 14 WAIT
XOR A
WAIT0 CALL WAIT1
DJNZ WAIT0
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)
RET
ISRI
LD A,9
LD (IX+1),1
JR INTERF
PHALT LD A,3
OUT 8CH,A
OUT 8DH,A
RES 1,(IX+8)
RET
CMBI ;Abschlu~ MB-Eingabe
LD A,41H
CALL INTERF
JR 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
LD A,43H
CALL INTERF
CRO0 PUSH HL
LD HL,0B780H
XOR A
CRO1 DEC L
LD M,A
JR NZ,CRO1
POP HL
CALL CRLF
JP SIXD2
ISROI CALL SIXD3 ;intern
ISRO LD A,0BH ;UP 08 ISRO
LD (IX+2),1
JR INTERF
;
MBOT INC (IX+2) ;UP 01 MBOT
LD A,3
INTERF ;Allgemeines, block- oder
;byteweises Dateninterface
;PE: A:Funktion wie bei D004
;(A=0: BASIC-Funktionen)
;D: Datenbyte (bei BASIC)
;E: Unterfunktion (bei BASIC)
;(IX+6)/(IX+7): Blockzeiger
;HL: Ende +1
;CY=1: Fehler
;A: Fehlernummer (CC bei Kass.)
;(CF bei BRK)
PUSH HL
LD HL,(0B7E9H)
EX (SP),HL
RET
STDINT ;Standard-Interface: Diskette
OR A
JR Z,BASIO
BIT 1,A
JR Z,DREAD
LD L,(IX+6)
LD H,(IX+7)
CP 0BH
JR NZ,NOINID
PUSH HL
CALL NAMEOTD
POP HL
NOINID
LD BC,81F2H
LD E,80H
ODBL OUTI
INC B
INC B
DEC E
JR NZ,ODBL
;
DKDO LD BC,80F3H
OUT (C),A
ODBL2 CALL BRKT
LD A,0CFH ;Endekennung
RET C
IN A,(C)
BIT 0,A
JR NZ,ODBL2
ADD A ;CY erzeugen
INC B
IN A,(C) ;Nummer
RET
BASIO
LD A,E
BIT 1,A
JR Z,BREAD
LD BC,8EF3H
OUT (C),D
JR DKDO
;
BREAD CALL DKDO
LD B,8EH
IN D,(C)
RET
DREAD PUSH HL
PUSH DE
CP 9 ;Init?
JR NZ,NOINI
XOR A
LD (0B7DCH),A
LD B,11
NMTST LD A,M
INC HL
CP 20H
JR C,KNME
CP 7FH
JR NC,KNME
CP '.'
JR NZ,KPKT
INC B
KPKT DJNZ NMTST
JR GEFUND
KNME CALL OSTR
DEFW 0DH
LD DE,(0B7A0H)
CALL DABR
LD B,2
LD DE,-40
ADD HL,DE
UKI2 LD DE,NAMEPTR
LD C,6
UKI1 LD A,(DE)
INC DE
SUB M
INC HL
AND 0DFH ;Upcase
JR NZ,UNGL
DEC C
JR NZ,UKI1
JR GEFUND
UNGL LD DE,-46
ADD HL,DE
DJNZ UKI2
CALL NAMEIN
LD A,0CFH
JR C,DBRK
GEFUND LD A,9
NOINI CALL NAMEOTD ;eintragen
LD A,(0B7DCH)
INC A
LD (0B7DCH),A
LD (IX+2),A
CALL DKDO ;Kommando
JR C,DBRK
LD L,(IX+5)
LD H,(IX+6)
LD BC,80F2H
SEKTOR INI
INC B
INC B
JR NZ,SEKTOR
DBRK POP DE
POP HL
RET
NAMEOTD ;Name in Diskpuffer schreiben
LD BC,82F3H
LD E,12
NOTD1 OUTI
INC B
INC B
DEC E
JR NZ,NOTD1
RET
ISRI LD A,9 ;UP 0A ISRI
JP INTERF
;
MBI LD A,1 ;UP 05 MBI
JP INTERF
;*** ISR's f}r die Kassette ***
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
;*** 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
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
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 A,M
CP 22H
JR NZ,NOBST
CALL 0C8BEH
CALL 0CD3AH
PUSH HL
CALL 0D33FH
LD HL,3F7H
LD B,13
BLCLN DEC HL
LD M,20H
DJNZ BLCLN
EX DE,HL
LD A,C
CP 13
JR C,LNOK
LD C,13
LNOK LDIR
POP HL
NOBST PUSH HL
LD HL,3EAH
LD E,10H
CALL PV5
POP HL
RET
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 'M'+80H
DEFM 'OUSE'
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
@ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ
Detected encoding: ANSI (CP1252) | 4
|
|