; Viewer vers4.0 by Dr.Bars/Flash Inc. (22Nov.1999)

SPRIPAG=#16     ; PAGE WITH SPRITES (6)
COLORAT=#04     ; GREEN

FONT32=#5B
FONT42=#63
FONT64=#6B
ICON_UP=#6B00
ICON_DN=#6C00
ICON_PU=#6D00
ICON_PD=#6E00
ICON_SND=#6F00
ICON_ATR=#7000
ICON_EXIT=#7100
SPD_TAB=#7200
SPD_TAB2=#7600
BUF=#7700    ; LEN 2048
INT_TBL=#8000
MAP=#77
ATTR_MAP=#73
MUSIC=#AC00

        ORG BUF
BUFFER  DS #380
STR_BFR DS #12
INV_TABL=BUFFER+#300
TABL    DB #0F,#0F
MOV_BF5 DW #0000,BUFFER,BUFFER+32,BUFFER+64,BUFFER+256
MOV_BF7 DW #0000,BUFFER+448,BUFFER+480,BUFFER+512,BUFFER+704
LINE5   DB #1F,#08,#1D,SPRIPAG+8
LINE7   DB #17,#00,#17,SPRIPAG
X_STR   DB 0
Y_STR   DB 0
SC_BUF  DW 0
PORT    DW 0
SPR_ADR DW 0
SCR_ADR DW 0
ADR_MAP DW 0
OLD_ADR DW 0
OLD_LEN DB 1
OLD_DAT DB 0
STR_SPD DB 1,6,16
DATA    DB 0
M_CONF  DB 0    ; 0 -OFF   FF - ON
MUS_CFG DB #FF  ; 0 -OFF   FF - ON
COL_CFG DB #FF  ; 0 -OFF   FF - ON
RAM_CH  DB 0
SCP_ADR DW 0
WORK_TB DW 0
STROYTB DB #11,0        ; #13,#14,#16,0 ; using pages, 0 - end !
TAB_SCN DS 40
ICO_SPR INCBIN "line?spr

SPN_TBL DW #0000        ; SPRITE ADRESS, SPRITE No.1
        DW #0101        ; HGT,LEN

; 447 BYTES

        ORG INT_TBL
        DS #101,#81
START   DI 
        LD SP,#7FFF
        CALL PAGE_10
        LD A,#80
        LD I,A
        IM 2
        JP START_
COR_HL  INC H
        LD A,H
        AND 7
        RET NZ
        LD A,L
        ADD A,32
        LD L,A
        RET C
        LD A,H
        SUB #8
        LD H,A
        RET 
COR_DE  INC D
        LD A,D
        AND 7
        RET NZ
        LD A,E
        ADD A,32
        LD E,A
        RET C
        LD A,D
        SUB #8
        LD D,A
        RET 
COR2_HL LD A,L
        ADD A,32
        LD L,A
        RET NC
        LD A,H
        ADD A,8
        LD H,A
        RET 
COR2_DE LD A,E
        ADD A,32
        LD E,A
        RET NC
        LD A,D
        ADD A,8
        LD D,A
        RET 
PAGE_10 LD A,#10
PAGE    PUSH BC
        LD BC,#7FFD
        OUT (C),A
        POP BC
        RET 
AY_OFF  LD HL,#D
        LD C,#FD
        LD DE,#FFBF
AY1_OFF LD B,D
        OUT (C),L
        LD B,E
        OUT (C),H
        DEC L
        JR NZ,AY1_OFF
        RET 
PRER    DI 
        PUSH IX
        PUSH IY
        PUSH AF
        PUSH HL
        PUSH DE
        PUSH BC
        EXX 
        EX AF,AF'
        PUSH AF
        PUSH HL
        PUSH DE
        PUSH BC
        CALL MUS
        POP BC
        POP DE
        POP HL
        POP AF
        EX AF,AF'
        EXX 
        POP BC
        POP DE
        POP HL
        POP AF
        POP IY
        POP IX
        EI 
        RET 
        JP PRER
MUS     LD A,(MUS_CFG)
        OR A
        JP NZ,MUS3
MUS2    LD A,#FF
        OR A
        RET Z
        SUB A
        LD (MUS2+1),A
        JP AY_OFF
MUS3    LD A,#FF
        LD (MUS2+1),A
        JP MUSIC+6
UMN     PUSH DE
        LD HL,0
        LD E,B
        LD D,H
        LD B,8
UMN1    SRL C
        JP NC,UMN2
        ADD HL,DE
UMN2    SLA E
        RL D
        DJNZ UMN1
        POP DE
        RET 
SCRCOPY LD HL,#4000
        LD DE,#C000
        LD BC,#1B00
        LDIR 
        RET 
START_  LD A,#FE
        IN A,(#FE)
        RRA 
        JR NC,ST_CONT
        LD BC,#FADF
        IN A,(C)
        RRA 
        JR NC,ST_CONT
        RRA 
        JR NC,ST_CONT
        LD A,#FF
        LD (M_CONF),A
ST_CONT CALL MUSIC
        EI 
        CALL S_ADSTR
        LD HL,#DB00
        LD BC,STROYTB
NEW2    LD DE,#C000
ADR_PUT LD A,(BC)
        CALL PAGE
        LD A,(DE)
        CP #FE
        JR NZ,AD_NFND
        INC DE
ADR_INC LD (TAB_SCN),HL
        EXX 
        LD HL,ADR_INC+1
        INC (HL)
        INC (HL)
        EXX 
AD_NFND LD A,#17
        CALL PAGE
        LD A,(BC)
        LD (HL),A
        INC HL
        LD (HL),E
        INC HL
        LD (HL),D
        INC HL
LOOP_A  LD A,(BC)
        CALL PAGE
        LD A,(DE)
        CP #FF
        JP NZ,JUMP0
        DEC HL
        DEC HL
        DEC HL
        INC BC
        LD A,(BC)
        OR A
        JP NZ,NEW2
        LD A,#17
        CALL PAGE
        LD A,L
        LD (UDAT1+1),A
        LD (UDAT3+1),A
        LD A,H
        LD (UDAT2+1),A
        LD (UDAT4+1),A
        LD (LIST_DL+1),HL
        LD DE,66
        OR A
        SBC HL,DE
        LD (LAST_LI+1),HL
        JP NEXTI
JUMP0   LD A,(DE)
        CP #D
        JP NZ,JUMP1
        INC DE
        JP ADR_PUT
JUMP1   INC DE
        JP LOOP_A
NEXTI   CALL SCRCOPY
        LD A,#18
        CALL PAGE
        CALL TIT_SCR
        LD A,#17
        CALL PAGE
        CALL SCRCOPY
F_WAIT  LD A,#FF
        OR A
        JR Z,F_WAIT2
F_WAIT1 EI 
        HALT 
        CALL F_KEYS
        JP C,F_WAIT1
        SUB A
        LD (F_WAIT+1),A
F_WAIT2 LD A,#B7
        LD (CHECK),A
        LD A,MAP
        LD (MAP_SET+1),A
RESTART LD HL,TXT01
        CALL WND_PRT
ST_LOP2 EI 
        HALT 
        CALL STRELKA
        CALL F_KEYS
        JP NC,FUN_CH1
        CALL C_KEYS
        JP NC,SET_CH4
        JP ST_LOP2
FUN_CH1 EI 
        HALT 
        LD A,(DATA)
        OR A
        JP Z,SET_CH0
        INC A
        JP Z,SET_CH3
        CALL R_FLASH
        LD HL,TAB_SCN
SCNR_BA LD A,(DATA)
        ADD A,A
        DEC A
        DEC A
        LD C,A
        ADD HL,BC
        LD A,(HL)
        INC HL
        LD H,(HL)
        LD L,A
        LD (WORK_TB),HL
        LD IX,LINE7
        LD DE,#C040
        CALL LIST
        LD A,#17
        CALL PAGE
        LD HL,ICO_SPR
        LD DE,#C000
        LD B,2
ICO_SP1 PUSH BC
        PUSH DE
        LD B,8
ICO_SP2 PUSH BC
        PUSH DE
        LD BC,32
        LDIR 
        POP DE
        INC D
        POP BC
        DJNZ ICO_SP2
        POP DE
        POP BC
        EX AF,AF'
        CALL COR2_DE
        EX AF,AF'
        DJNZ ICO_SP1
        LD DE,#D800
        LD BC,64
        LDIR 
        EI 
        HALT 
        LD A,#1F
        CALL PAGE
        LD HL,#C000
        LD D,#40
        LD E,L
        LD B,#1B
        LD C,L
        LDIR 
        LD A,#C9
        LD (CHECK),A
        LD A,ATTR_MAP
        LD (MAP_SET+1),A
        CALL PUT_SPR
        LD HL,(X_STR)
        LD (MENUCRD+1),HL
        LD HL,#6080
        LD (X_STR),HL
        SUB A
        LD (RES_ICO+1),A
        LD (SPACE2+1),A
        DEC A
        LD (SET_ICO+1),A
        LD (NXTMAI1+1),A
TXT_MOV EI 
        HALT 
        LD A,(DATA)
        BIT 7,A
        PUSH AF
        CALL NZ,SET_ICO
        POP AF
        CALL Z,RES_ICO
TXT_MV1 CALL F_KEYS
        JP NC,SPACE
        CALL C_KEYS
        JP NC,RESET
NXTMAI1 LD A,#FF
        OR A
        JP NZ,NXTMAI3
        LD A,#FF
        LD (NXTMAI1+1),A
        SUB A
        LD (SPACE2+1),A
        CALL RES_BUF
        CALL SKN_MAP
        BIT 7,A
        JR Z,NXTMAI3
CUR_ICO LD B,0
        LD HL,ICON_UP
        LD DE,#C000
        DEC B
        JP Z,ICPR02
        INC H
        INC E
        INC E
        DJNZ $-3
ICPR02  LD A,#FF
        CALL ICO_PRN
        CALL PUT_SPR
NXTMAI3 CALL STRELKA
        JP TXT_MOV
NXTMAI2 CALL SKN_MAP
        BIT 7,A
        JP Z,NXTMAI3
NXTMAI4 CALL PUT_SPR
        JP TXT_MV1
SPACE   CALL RES_BUF
        CALL SKN_MAP
        BIT 7,A
        JP Z,NOICPR
SPACE2  LD A,0
        OR A
        JP NZ,NOICPR
        SUB A
        LD (NXTMAI1+1),A
        DEC A
        LD (SPACE2+1),A
        LD A,(DATA)
        RES 7,A
        LD B,A
        LD HL,ICON_UP
        LD DE,#C000
        LD C,B
        DEC B
        JP Z,ICPR01
        INC H
        INC E
        INC E
        DJNZ $-3
ICPR01  LD A,C
        LD (CUR_ICO+1),A
        SUB A
        CALL ICO_PRN
NOICPR  LD A,(DATA)
        RES 7,A
        AND A
        JP Z,NXTMAI3
        DEC A
        JP Z,DOWNL
        DEC A
        JP Z,UPL
        DEC A
        JP Z,LIST_UL
        DEC A
        JP Z,LIST_DL
        DEC A
        JP Z,MUS_CON
        DEC A
        JP Z,COL_CON

RESET   CALL RES_BUF
        CALL SKN_MAP
        BIT 7,A
        JR Z,RESET2
        SUB A
        LD HL,ICON_EXIT
        LD DE,#C00C
        PUSH HL
        PUSH DE
        CALL ICO_PRN
        POP DE
        POP HL
        LD B,8
        EI 
        HALT 
        DJNZ $-2
        LD A,#FF
        CALL ICO_PRN
RESET2  CALL RES_BUF
        LD A,(RAM_CH)
        OR A
        JP Z,RESET1
        LD A,#17
        CALL PAGE
        CALL SCRCOPY
RESET1  LD A,#18
        CALL PAGE
        CALL TIT_SCR
MENUCRD LD HL,0
        LD (X_STR),HL
        JP F_WAIT2
MUS_CON LD A,(MUS_CFG)
        CPL 
        LD (MUS_CFG),A
MUS_CO1 EI 
        HALT 
        CALL F_KEYS
        JP NC,MUS_CO1
        LD HL,NXTMAI4
        LD (REBACK1+1),HL
        LD (REBACK2+1),HL
        JP (HL)
COL_CON LD A,(COL_CFG)
        CPL 
        LD (COL_CFG),A
        OR A
        JP NZ,COLR
        LD (C_DATA2),A
        LD A,7
        LD (SET_ATR),A
        LD (C_DATA3+1),A
        LD A,#3E
        LD (C_DATA3),A
        LD L,A
        LD H,A
        JP COLR1
COLR    LD A,#F5
        LD (C_DATA2),A
        SUB A
        LD HL,C_DATA3
        LD (HL),#F1
        INC HL
        LD (HL),A
        LD HL,SET_ATR
COLR1   LD (C_DATA1+1),HL
        LD (COLDAT1+1),HL
        LD HL,MUS_CO1
        LD (REBACK1+1),HL
        LD (REBACK2+1),HL
        LD HL,(WORK_TB)
        JP REFRESH
SET_CH0 CALL W_RESET
        CALL PAGE_10
SET_CH1 EI 
        HALT 
        CALL F_KEYS
        JR NC,SET_CH1
SET_CH2 EI 
        HALT 
        CALL F_KEYS
        JR C,SET_CH2
        JP RESTART
SET_CH4 CALL W_RESET
        LD HL,$-3
        LD (BACK_AD+1),HL
        LD HL,TXT02
        CALL WND_PRT
ST_LOP4 EI 
        HALT 
        CALL STRELKA
        CALL F_KEYS
        JP C,ST_LOP4
        LD A,(DATA)
        INC A
        JP Z,SET_CH3
        SUB 2
        JP Z,E_BASIC
        SUB 2
        JP NZ,ST_LOP4
        CALL R_FLASH
        CALL W_RESET
        LD HL,RESTART
        LD (BACK_AD+1),HL
        JP (HL)
E_BASIC CALL R_FLASH
        CALL AY_OFF
        SUB A
        CALL PAGE
        RST 0

WINDOW  LD E,(HL)
        INC HL
        LD D,(HL)
        INC HL
        LD C,(HL)
        INC HL
        LD B,(HL)
        INC HL
        LD A,(HL)
        INC HL
        PUSH HL
        EX AF,AF'
        LD A,E
        RRCA 
        RRCA 
        RRCA 
        AND #E0
        LD L,A
        LD A,E
        AND #18
        OR #40
        LD H,A
        LD A,L
        OR D
        LD L,A
        PUSH HL
        INC C
        LD E,4
        LD A,B
        ADD A,E
        LD B,A
W_LOOP0 PUSH BC
        PUSH HL
        DEC E
        JR NZ,W_LOOP0
        PUSH BC
        INC C
        LD DE,WND_BUFFER
        LD A,L
        LD (DE),A
        INC DE
        LD A,H
        LD (DE),A
        INC DE
        LD A,C
        LD (DE),A
        INC DE
        LD A,B
        LD (DE),A
        INC DE
        PUSH BC
        PUSH HL
W_WND1  PUSH BC
        PUSH HL
        LD B,8
W_WND2  PUSH BC
        PUSH HL
        LD B,0
        LDIR 
        POP HL
        INC H
        POP BC
        DJNZ W_WND2
        POP HL
        CALL COR2_HL
        POP BC
        DJNZ W_WND1
        POP HL
        POP BC
        LD A,H
        RRCA 
        RRCA 
        RRCA 
        AND 3
        OR #58
        LD H,A
W_WND3  PUSH BC
        PUSH HL
        LD B,0
        LDIR 
        POP HL
        LD BC,32
        ADD HL,BC
        POP BC
        DJNZ W_WND3       ;
        POP BC
        POP HL
        LD A,H
        RRCA 
        RRCA 
        RRCA 
        AND 3
        OR #58
        LD H,A
        EX AF,AF'
W_LOOP1 PUSH BC
        PUSH HL
        LD D,H
        LD E,L
        INC E
        LD B,0
        LD (HL),A
        LDIR 
        POP HL
        LD BC,32
        ADD HL,BC
        POP BC
        DJNZ W_LOOP1
        POP BC
        POP HL
        LD D,H
        LD E,L
        INC E
        LD B,0
        LD (HL),#00
        LDIR 
        POP BC
        LD A,B
        EX AF,AF'
        DEC C
        POP HL
        INC H
        LD B,#10
W_LOOP2 PUSH BC
        PUSH HL
        LD (HL),#7F
        INC HL
        LD D,H
        LD E,L
        INC E
        LD B,0
        LD (HL),#FF
        LDIR 
        LD (HL),#FE
        POP HL
        CALL COR_HL
        POP BC
        DJNZ W_LOOP2
        EX AF,AF'
        SUB 2
        ADD A,A
        ADD A,A
        ADD A,A
        SUB 3
        LD B,A
W_LOOP3 PUSH BC
        PUSH HL
        LD (HL),#40
        INC HL
        LD D,H
        LD E,L
        INC E
        LD B,0
        LD (HL),B
        LDIR 
        LD (HL),#02
        POP HL
        CALL COR_HL
        POP BC
        DJNZ W_LOOP3
        POP BC
        LD A,C
        DEC C
        PUSH HL
        LD (HL),#7F
        INC HL
        LD D,H
        LD E,L
        INC E
        LD B,0
        LD (HL),#FF
        LDIR 
        LD (HL),#FE
        POP HL
        INC H
        LD D,H
        LD E,L
        INC E
        LD C,A
        LD (HL),B
        LDIR 
        LD H,MAP
        LD L,B
        LD D,H
        LD E,L
        INC E
        LD BC,767
        LD (HL),L
        LDIR 
        LD HL,INV_TABL
        LD D,H
        LD E,L
        INC E
        LD (HL),B
        LD BC,89
        LDIR 
        SUB A
        LD H,A
        LD (OLD_ADR),HL
        LD (OLD_DAT),A
        INC A
        LD (OLD_LEN),A
        POP HL
        LD A,H
        RRCA 
        RRCA 
        RRCA 
        AND 3
        ADD A,MAP
        LD H,A
        POP BC
W_LOOP4 PUSH BC
        PUSH HL
        LD D,H
        LD E,L
        INC E
        LD B,0
        LD (HL),#FF
        LDIR 
        POP HL
        LD BC,32
        ADD HL,BC
        POP BC
        DJNZ W_LOOP4
        POP DE
        POP IX
        INC E
        PUSH DE
        INC D
W_LOOP8 LD A,(IX+0)
        OR A
        JR Z,W_LOOP6
        PUSH DE
        LD L,A
        LD H,0
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        LD BC,W_FONT-16
        ADD HL,BC
        LD B,#F
W_LOOP7 LD A,(HL)
        LD (DE),A
        INC HL
        CALL COR_DE
        DJNZ W_LOOP7
        POP DE
        INC IX
        INC DE
        JR W_LOOP8
W_LOOP6 POP HL
        INC IX
        LD B,3
        CALL COR2_HL
        DJNZ $-3
        PUSH HL
        POP IY
        LD C,#FF
        EXX 
        LD HL,INV_TABL-3
        EXX 
W_LOOP9 LD A,(IX+0)
        OR A
        JR NZ,W_LOP14
        DB #FD,#7D
        ADD A,32
        DB #FD,#6F
        JR NC,W_LOP15
        DB #FD,#7C
        ADD A,8
        DB #FD,#67
W_LOP15 PUSH IY
        POP HL
        INC IX
        LD A,(IX+0)
        CP #FF
        RET Z           ; EXIT IS HERE!
W_LOP14 OR A
        JR Z,W_LOOP9
        CP 32
        JR NC,W_LOP11
        EXX 
        INC HL
        INC HL
        INC HL
        PUSH IX
        PUSH HL
        POP IX
        EXX 
        CP 31
        JR NZ,W_LOP16
        LD C,#FF
        JR W_LOP18
W_LOP16 LD (IX+1),L
        LD (IX+2),H
        LD C,A
W_LOP18 POP IX
        INC IX
        LD A,(IX+0)
W_LOP11 EX AF,AF'
        LD A,C
        INC A
        JR Z,W_LOP17
        EXX 
        INC (HL)
        EXX 
W_LOP17 EX AF,AF'
        LD E,A
        LD D,FONT32 ; FONT
        LD B,8
        PUSH HL
        PUSH HL
W_LOP13 LD A,(DE)
        LD (HL),A
        INC H
        INC D
        DJNZ W_LOP13
        POP HL
        LD A,H
        RRCA 
        RRCA 
        RRCA 
        AND 3
        ADD A,MAP
        LD H,A
        LD (HL),C
        POP HL
        INC IX
        INC HL
        JR W_LOOP9
W_RESET CALL RES_BUF
        LD A,#18
        CALL PAGE
WND_RES LD HL,WND_BUFFER
        LD E,(HL)
        INC HL
        LD D,(HL)
        INC HL
        LD C,(HL)
        INC HL
        LD B,(HL)
        INC HL
        PUSH BC
        PUSH DE
W_WND4  PUSH BC
        PUSH DE
        LD B,8
W_WND5  PUSH BC
        PUSH DE
        LD B,0
        LDIR 
        POP DE
        INC D
        POP BC
        DJNZ W_WND5
        POP DE
        CALL COR2_DE
        POP BC
        DJNZ W_WND4
        POP DE
        POP BC
        LD A,D
        RRCA 
        RRCA 
        RRCA 
        AND 3
        OR #58
        LD D,A
W_WND6  PUSH BC
        PUSH DE
        LD B,0
        LDIR 
        POP DE
        EX DE,HL
        LD BC,32
        ADD HL,BC
        EX DE,HL
        POP BC
        DJNZ W_WND6
        RET 
OUTPUT  LD E,(IX+0)
        LD D,(IX+1)
        LD L,(IX+2)
        LD H,(IX+3)
        LD C,(IY+2)
        LD B,(IY+3)
        DUP 4
        INC B
        EDUP 
        INC C
        INC C
        LD A,B
        EX AF,AF'
        LD A,B
        DEC A
        LD B,#0
        PUSH BC
        PUSH BC
        LDIR 
        LD E,(IX+0)
        LD D,(IX+1)
        LD L,(IX+4)
        LD H,(IX+5)
        LD B,A
        CALL COR2_DE
        DJNZ $-3
        LD B,#07
        INC D
        DJNZ $-1
        POP BC
        LDIR 
        LD E,(IX+0)
        LD D,(IX+1)
        LD L,(IX+6)
        LD H,(IX+7)
        EX AF,AF'
        ADD A,A
        ADD A,A
        ADD A,A
        LD B,A
        EX AF,AF'
        LD A,(HL)
        LD (DE),A
        INC HL
        CALL COR_DE
        DJNZ $-6
        LD L,(IX+0)
        LD H,(IX+1)
        LD E,(IX+8)
        LD D,(IX+9)
        POP BC
        DEC C
        ADD HL,BC
        EX DE,HL
        EX AF,AF'
        LD B,A
        LD A,(HL)
        LD (DE),A
        INC HL
        CALL COR_DE
        DJNZ $-6
        RET 
INPUT   LD C,(IY+0)
        LD B,(IY+1)
        LD A,C
        RRCA 
        RRCA 
        RRCA 
        AND #E0
        LD L,A
        LD A,C
        AND #18
        OR #C0
        LD H,A
        LD A,L
        OR B
        LD L,A
        LD C,(IY+2)
        LD B,(IY+3)
        DUP 4
        INC B
        EDUP 
        INC C
        INC C
        LD (IX+0),L
        LD (IX+1),H
        LD (PRN1+1),HL
        LD (PRN5+1),HL
        LD E,(IX+2)
        LD D,(IX+3)
        LD A,C
        DEC A
        LD (PRN2+1),A
        LD (PRN4+1),A
        LD A,B
        LD (PRN6+1),A
        LD (PRN8+1),A
        EX AF,AF'
        LD A,B
        DEC A
        LD B,#0
        PUSH BC
        PUSH BC
        LDIR 
        LD L,(IX+0)
        LD H,(IX+1)
        LD E,(IX+4)
        LD D,(IX+5)
        LD B,A
        CALL COR2_HL
        DJNZ $-3
        LD B,#07
        INC H
        DJNZ $-1
        LD (PRN3+1),HL
        POP BC
        LDIR 
        LD L,(IX+0)
        LD H,(IX+1)
        LD E,(IX+6)
        LD D,(IX+7)
        EX AF,AF'
        ADD A,A
        ADD A,A
        ADD A,A
        LD B,A
        EX AF,AF'
        LD A,(HL)
        LD (DE),A
        INC DE
        CALL COR_HL
        DJNZ $-6
        LD L,(IX+0)
        LD H,(IX+1)
        LD E,(IX+8)
        LD D,(IX+9)
        POP BC
        DEC C
        ADD HL,BC
        LD (PRN7+1),HL
        EX AF,AF'
        LD B,A
        LD A,(HL)
        LD (DE),A
        INC DE
        CALL COR_HL
        DJNZ $-6
        LD A,(TABL)
PRN1    LD HL,0
        LD D,H
        LD E,L
        INC E
        LD B,0
PRN2    LD C,0
        LD (HL),A
        LDIR 
PRN7    LD DE,0
PRN8    LD B,0
        LD A,(TABL+1)
        LD C,A
VER2    PUSH DE
        LD A,(DE)
        BIT 6,C
        JP NZ,$+8
        SET 0,A
        JP $+5
        RES 0,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 7,C
        JP NZ,$+8
        SET 0,A
        JP $+5
        RES 0,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 0,C
        JP NZ,$+8
        SET 0,A
        JP $+5
        RES 0,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 1,C
        JP NZ,$+8
        SET 0,A
        JP $+5
        RES 0,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 2,C
        JP NZ,$+8
        SET 0,A
        JP $+5
        RES 0,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 3,C
        JP NZ,$+8
        SET 0,A
        JP $+5
        RES 0,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 4,C
        JP NZ,$+8
        SET 0,A
        JP $+5
        RES 0,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 5,C
        JP NZ,$+8
        SET 0,A
        JP $+5
        RES 0,A
        LD (DE),A
        POP DE
        CALL COR2_DE
        DJNZ VER2
        LD A,(TABL+1)
PRN3    LD HL,0
        LD D,H
        LD E,L
        INC E
        LD B,0
PRN4    LD C,0
        LD (HL),A
        LDIR 
PRN5    LD DE,0
PRN6    LD B,0
        LD A,(TABL)
        LD C,A
VER1    PUSH DE
        LD A,(DE)
        BIT 6,C
        JP Z,$+8
        SET 7,A
        JP $+5
        RES 7,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 7,C
        JP Z,$+8
        SET 7,A
        JP $+5
        RES 7,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 0,C
        JP Z,$+8
        SET 7,A
        JP $+5
        RES 7,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 1,C
        JP Z,$+8
        SET 7,A
        JP $+5
        RES 7,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 2,C
        JP Z,$+8
        SET 7,A
        JP $+5
        RES 7,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 3,C
        JP Z,$+8
        SET 7,A
        JP $+5
        RES 7,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 4,C
        JP Z,$+8
        SET 7,A
        JP $+5
        RES 7,A
        LD (DE),A
        INC D
        LD A,(DE)
        BIT 5,C
        JP Z,$+8
        SET 7,A
        JP $+5
        RES 7,A
        LD (DE),A
        POP DE
        CALL COR2_DE
        DJNZ VER1
        LD HL,TABL
        LD A,(HL)
        RRCA 
        LD (HL),A
        INC HL
        LD A,(HL)
        RLCA 
        LD (HL),A
        RET 
SET_CH3 CALL W_RESET
        LD A,#17
        CALL PAGE
        CALL SCRCOPY
        LD A,(IY+0)
        ADD A,A
        ADD A,A
        ADD A,A
        LD B,A
        LD A,(Y_STR)
        SUB B
        LD (Y_PRE+1),A
        LD A,(IY+1)
        ADD A,A
        ADD A,A
        ADD A,A
        LD B,A
        LD A,(X_STR)
        SUB B
        LD (X_PRE+1),A
        LD A,30
        SUB (IY+2)
        ADD A,A
        ADD A,A
        ADD A,A
        LD H,A
        LD A,20
        SUB (IY+3)
        ADD A,A
        ADD A,A
        ADD A,A
        LD L,A
        CALL SET_CRD
        LD A,(IY+1)
        ADD A,A
        ADD A,A
        ADD A,A
        LD (X_STR),A
        LD A,(IY+0)
        ADD A,A
        ADD A,A
        ADD A,A
        LD (Y_STR),A
MOV_LL  EI 
        HALT 
        CALL MOUSEDR
        CALL SKN_KEY
        LD A,(X_STR)
        RRA 
        RRA 
        RRA 
        AND #1F
        LD (IY+1),A
        LD A,(Y_STR)
        RRA 
        RRA 
        RRA 
        AND #1F
        LD (IY+0),A
MOV_L0  LD A,#1D
        XOR #A
        LD (MOV_L0+1),A
        CALL PAGE
        CP #17
        JR NZ,MOV_L1
        LD IX,MOV_BF5
        JR MOV_L2
MOV_L1  LD IX,MOV_BF7
MOV_L2  CALL OUTPUT
        CALL INPUT
        CALL F_KEYS
        JP NC,MOV_LL
        LD A,#17
        CALL PAGE
        LD IX,MOV_BF5
        CALL OUTPUT
        LD A,#1D
        CALL PAGE
        LD IX,MOV_BF7
        CALL OUTPUT
BACK_AD JP RESTART
WND_PRT LD A,#18
        CALL PAGE
        PUSH HL
        CALL WINDOW
        POP IY
        LD A,(X_STR)
X_PRE   ADD A,0
        LD (X_STR),A
        LD A,(Y_STR)
Y_PRE   ADD A,0
        LD (Y_STR),A
        SUB A
        LD (X_PRE+1),A
        LD (Y_PRE+1),A
        LD L,A
        LD H,A
        LD (MOV_BF5),HL
        LD (MOV_BF7),HL
        LD HL,#FEBE
        CALL SET_CRD
        LD A,#1D
        CALL PAGE
        CALL PUT_SPR
        CALL S_ADSTR
        CALL SKN_MAP
        CALL PUT_SPR
        EI 
        HALT 
        LD A,#17
        CALL PAGE
        CALL SCRCOPY
        LD A,#15
        CALL PAGE
ST_LOP1 EI 
        HALT 
        CALL STRELKA
        CALL F_KEYS
        RET C
        JP ST_LOP1

STRELKA CALL MOUSEDR
        CALL SKN_KEY
        CALL RES_BUF
        CALL S_ADSTR
        CALL SKN_MAP
        CALL PUT_SPR
        JP SET_STR
MOUSEDR LD A,(M_CONF)
        OR A
        RET Z
        LD HL,(X_STR)
        LD DE,(PORT)
        LD BC,#FBDF
        IN A,(C)
        LD (PORT),A
        SUB E
        JP Z,M_DRV12
        JP P,M_DRV13
        NEG 
        CALL M_DRV14
        NEG 
        ADD A,L
        JP C,M_DRV15
        SUB A
M_DRV15 LD L,A
        JP M_DRV12
M_DRV13 CALL M_DRV14
        ADD A,L
        JP C,M_DRV16
CRD_MX7 CP 0                    ; MAX COORD X
        JP C,M_DRV17
M_DRV16 LD A,0                  ; MAX COORD X
M_DRV17 LD L,A
M_DRV12 LD BC,#FFDF
        IN A,(C)
        LD (PORT+1),A
        SUB D
        JP Z,M_DRV18
        NEG 
        JP P,M_DRV19
        NEG 
        CALL M_DRV14
        NEG 
        ADD A,H
        JP C,M_DRV20
        SUB A
M_DRV20 LD H,A
        JP M_DRV18
M_DRV19 CALL M_DRV14
        ADD A,H
        JP C,M_DRV21
CRD_MX8 CP 0                    ; MAX COORD Y
        JP C,M_DRV22
M_DRV21 LD A,0                  ; MAX COORD Y
M_DRV22 LD H,A
M_DRV18 LD (X_STR),HL
        RET 
M_DRV14 CP #20          ; M_DRV14>> #FE=ON, #C9=OFF
        JP C,M_DRV24
        LD A,#A0        ; MAX SPEED FOR THIS TABL 1)#A0,2)#D3
        RET 
M_DRV24 LD BC,SPD_TAB-1    ; (+32)
        ADD A,C
        LD C,A
        JP NC,M_DRV23
        INC B
M_DRV23 LD A,(BC)
        RET 
SKN_KEY LD HL,(X_STR)
        LD (SC_BUF),HL
        LD A,#FB
        IN A,(#FE)
        RRA 
        CALL NC,UP
        LD A,#FD
        IN A,(#FE)
        RRA 
        CALL NC,DOWN
        LD A,#DF
        IN A,(#FE)
        RRA 
        PUSH AF
        CALL NC,RIGHT
        POP AF
        RRA 
        CALL NC,LEFT
        LD A,#FD
        IN A,(#FE)
        RRA 
        RRA 
        CALL NC,UP
        LD A,#FE
        IN A,(#FE)
        RRA 
        RRA 
        RRA 
        CALL NC,DOWN
        LD A,#FE
        IN A,(#FE)
        RRA 
        JP C,NOCURS
        LD A,#EF
        IN A,(#FE)
        RRA 
        RRA 
        RRA 
        PUSH AF
        CALL NC,RIGHT
        POP AF
        RRA 
        PUSH AF
        CALL NC,UP
        POP AF
        RRA 
        CALL NC,DOWN
        LD A,#F7
        IN A,(#FE)
        BIT 4,A
        CALL Z,LEFT
        JP NOINT2
NOCURS  LD A,#EF
        IN A,(#FE)
        RRA 
        RRA 
        PUSH AF
        CALL NC,UP
        POP AF
        RRA 
        PUSH AF
        CALL NC,DOWN
        POP AF
        RRA 
        PUSH AF
        CALL NC,RIGHT
        POP AF
        RRA 
        CALL NC,LEFT
NOINT2  LD HL,STR_SPD
        DEC (HL)
        JP NZ,K_JUMP
        LD A,(STR_SPD+1)
        LD (HL),A
        LD A,(UP+1)
        LD DE,(STR_SPD+2)
        CP E
        JP NC,K_JUMP
        INC A
        LD (UP+1),A
        LD (DOWN+1),A
        LD (LEFT+1),A
        LD (RIGHT+1),A
K_JUMP  LD HL,(SC_BUF)
        LD DE,(X_STR)
        LD A,H
        CP D
        RET NZ
        LD A,L
        CP E
        RET NZ
        LD A,1
        LD (UP+1),A
        LD (DOWN+1),A
        LD (LEFT+1),A
        LD (RIGHT+1),A
        RET 
UP      LD E,1
        LD D,A
        LD A,(Y_STR)
        OR A
        JP Z,UP1
        SUB E
        JP NC,UP1
        SUB A
UP1     LD (Y_STR),A
        LD A,D
        RET 
DOWN    LD E,1
        LD D,A
        LD A,(Y_STR)
CRD_MX1 CP 0
        JP NC,DOWN1
        ADD A,E
CRD_MX2 CP 0
        JP C,DOWN1
CRD_MX3 LD A,0
DOWN1   LD (Y_STR),A
        LD A,D
        RET 
LEFT    LD E,1
        LD D,A
        LD A,(X_STR)
        OR A
        JP Z,LEFT1
        SUB E
        JP NC,LEFT1
        SUB A
LEFT1   LD (X_STR),A
        LD A,D
        RET 
RIGHT   LD E,1
        LD D,A
        LD A,(X_STR)
CRD_MX4 CP 0
        JP NC,RIGHT1
        ADD A,E
        JP NC,RIGHT2
CRD_MX5 LD A,0
RIGHT2  CP 0
        JP C,RIGHT1
CRD_MX6 LD A,0
RIGHT1  LD (X_STR),A
        LD A,D
        RET 
F_KEYS  LD A,(M_CONF)
        OR A
        JP Z,SLD_OP
        LD BC,#FADF
        IN A,(C)
        RRA 
        RET NC
SLD_OP  LD A,#7F
        IN A,(#FE)
        RRA 
        RET NC
        RRA 
        RRA 
        RET NC
        LD A,#BF
        IN A,(#FE)
        RRA 
        RET NC
        LD A,#EF
        IN A,(#FE)
        RRA 
        RET 
C_KEYS  LD A,(M_CONF)
        OR A
        JP Z,SLD_OP1
        LD BC,#FADF
        IN A,(C)
        RRA 
        RRA 
        RET NC
SLD_OP1 LD A,#FE
        IN A,(#FE)
        RRA 
        JP C,SLD_OP2
        LD A,#F7
        IN A,(#FE)
        RRA 
        RET NC
SLD_OP2 LD A,#FB
        IN A,(#FE)
        RRA 
        RRA 
        RRA 
        RET 
RES_BUF LD HL,STR_BFR
        LD DE,(SCR_ADR)
        DUP #8
        LDI 
        LDI 
        DEC DE
        DEC DE
        CALL COR_DE
        EDUP 
        LDI 
        LDI 
        RET 
S_ADSTR LD A,(X_STR)
        LD C,A
        AND 7
        INC A
        LD B,A
        LD HL,#5A00
        INC H
        DJNZ $-1
FLASH   LD A,#10
        DEC A
        LD (FLASH+1),A
        JR NZ,FLASH1
        LD A,#10
        LD (FLASH+1),A
FLASH1  CP 9
        JP NC,FLASH2
        LD A,H
        ADD A,8
        LD H,A
FLASH2  LD (SPR_ADR),HL
        LD A,(Y_STR)
        LD B,A
        LD A,C
        RRA 
        RRA 
        RRA 
        AND #1F
        LD L,A
        LD A,B
        AND 7
        OR #C0            ; #C0
        LD H,A
        LD A,B
        AND #C0
        RRCA 
        RRCA 
        RRCA 
        OR H
        LD H,A
        LD A,B
        AND #38
        RLCA 
        RLCA 
        OR L
        LD L,A
        LD (SCR_ADR),HL
        RET 
SKN_MAP LD A,(Y_STR)
        INC A
        SRL A
        SRL A
        SRL A
        LD L,A
        LD H,0
        DUP 5
        ADD HL,HL
        EDUP 
        LD A,(X_STR)
        INC A
        RRA 
        RRA 
        RRA 
        AND #1F
        LD E,A
        LD D,0
        ADD HL,DE
MAP_SET LD B,0
        LD C,0
        ADD HL,BC
        LD (ADR_MAP),HL
        LD A,(HL)
        LD (DATA),A
CHECK   OR A            ; 183 - ON  ;  201 - OFF
        JP Z,CHECK2
        CP #FF
        JR NZ,CHECK1
CHECK2  LD A,0
        OR A
        RET NZ
        LD HL,(OLD_ADR)
        LD A,(OLD_LEN)
        LD C,A
        CALL INVER
        LD HL,0
        LD (OLD_ADR),HL
        SUB A
        LD (OLD_DAT),A
        INC A
        LD (OLD_LEN),A
        LD A,#FF
        LD (CHECK2+1),A
        RET 
CHECK1  LD B,0
        LD E,A
        LD HL,INV_TABL
        LD C,A
        ADD A,A
        ADD A,C
        SUB 3
        LD C,A
        ADD HL,BC
        LD C,(HL)
        INC HL
        LD A,(HL)
        INC HL
        LD H,(HL)
        LD L,A
        SUB A
        LD (CHECK2+1),A
        LD A,E
        LD B,A
        LD A,(OLD_DAT)
        CP B
        RET Z
        PUSH HL
        PUSH BC
        LD HL,(OLD_ADR)
        LD A,(OLD_LEN)
        LD C,A
        CALL INVER
        POP BC
        POP HL
        LD A,(DATA)
        LD (OLD_DAT),A
        LD (OLD_ADR),HL
        LD A,C
        LD (OLD_LEN),A
INVER   LD E,L
        DUP 8
        LD B,C
        LD L,E
        LD A,(HL)
        CPL 
        LD (HL),A
        INC L
        DJNZ $-4
        INC H
        EDUP 
        RET 
R_FLASH CALL RES_BUF
        LD B,5
FLASH3  PUSH BC
        LD HL,(OLD_ADR)
        LD A,(OLD_LEN)
        LD C,A
        CALL INVER
        EI 
        HALT 
        HALT 
        HALT 
        POP BC
        DJNZ FLASH3
        RET 
PUT_SPR LD HL,(SCR_ADR)
        LD DE,STR_BFR
        DUP #8
        LDI 
        LDI 
        DEC HL
        DEC HL
        CALL COR_HL
        EDUP 
        LDI 
        LDI 
        RET 
SET_STR LD C,0
        LD HL,(SPR_ADR)
        LD DE,(SCR_ADR)
        LD A,(X_STR)
        CP #F8
        JP C,OBHOD
        INC C
OBHOD   LD A,(DE)
        AND (HL)
        LD (DE),A
        INC DE
        INC L
        LD A,C
        DEC A
        JP Z,OBHOD1
        LD A,(DE)
        AND (HL)
        LD (DE),A
OBHOD1  INC DE
        INC L
        DEC DE
        DEC DE
        CALL COR_DE
        LD B,7
S_LOOP  PUSH DE
        LD A,(DE)
        AND (HL)
        INC L
        OR (HL)
        LD (DE),A
        INC DE
        INC L
        LD A,C
        DEC A
        JP NZ,OBHOD2
        INC L
        JP OBHOD3
OBHOD2  LD A,(DE)
        AND (HL)
        INC L
        OR (HL)
        LD (DE),A
OBHOD3  INC DE
        INC L
        POP DE
        CALL COR_DE
        LD A,D
        CP #D8
        RET NC
        DJNZ S_LOOP
        LD A,(DE)
        AND (HL)
        LD (DE),A
        LD A,C
        DEC A
        RET Z
        INC DE
        INC L
        LD A,(DE)
        AND (HL)
        LD (DE),A
        RET 
SET_CRD LD A,H
        LD (CRD_MX5+1),A
        LD (CRD_MX6+1),A
        LD (CRD_MX7+1),A
        LD (M_DRV16+1),A
        INC A
        LD (CRD_MX4+1),A
        LD (RIGHT2+1),A
        LD A,L
        LD (CRD_MX3+1),A
        LD (CRD_MX8+1),A
        LD (M_DRV21+1),A
        INC A
        LD (CRD_MX1+1),A
        LD (CRD_MX2+1),A
        RET 

UPL     LD HL,(WORK_TB)
        LD DE,66
        ADD HL,DE
        LD A,L
UDAT1   CP 0
        JP NZ,UPI1
        LD A,H
UDAT2   CP 0
        JP Z,NXTMAI2
UPI1    LD (WORK_TB),HL
        SUB A
        LD (ONLY_1+1),A
        LD (ONLY_2+1),A
        LD A,(RAM_CH)
        OR A
        JP Z,UPI3
        SUB A
        LD (RAM_CH),A
        LD A,#17
        LD BC,#7FFD
        OUT (C),A
        LD DE,#C040
        LD HL,#4060
        CALL MOVER
        LD DE,#C060
        LD HL,#4080
        CALL MOVER
        LD DE,#C080
        LD HL,#40A0
        CALL MOVER
        LD DE,#C0A0
        LD HL,#40C0
        CALL MOVER
        LD DE,#C0C0
        LD HL,#40E0
        CALL MOVER
        LD DE,#C0E0
        LD HL,#4800
        CALL MOVER
        LD DE,#C800
        LD HL,#4820
        CALL MOVER
        LD DE,#C820
        LD HL,#4840
        CALL MOVER
        LD DE,#C840
        LD HL,#4860
        CALL MOVER
        LD DE,#C860
        LD HL,#4880
        CALL MOVER
        LD DE,#C880
        LD HL,#48A0
        CALL MOVER
        LD DE,#C8A0
        LD HL,#48C0
        CALL MOVER
        LD DE,#C8C0
        LD HL,#48E0
        CALL MOVER
        LD DE,#C8E0
        LD HL,#5000
        CALL MOVER
        LD DE,#D000
        LD HL,#5020
        CALL MOVER
        LD DE,#D020
        LD HL,#5040
        CALL MOVER
        LD DE,#D040
        LD HL,#5060
        CALL MOVER
        LD DE,#D060
        LD HL,#5080
        CALL MOVER
        LD DE,#D080
        LD HL,#50A0
        CALL MOVER
        LD DE,#D0A0
        LD HL,#50C0
        CALL MOVER
        LD DE,#D0C0
        LD HL,#50E0
        CALL MOVER
        LD DE,#D840
        LD HL,#5860
        LD BC,672
        LDIR 
        LD IX,LINE7
        LD HL,(WORK_TB)
        LD DE,#D0E0
        CALL LINE
        LD A,#1F
        JP UPIX
UPI3    LD A,#FF
        LD (RAM_CH),A
        LD A,#1F
        LD BC,#7FFD
        OUT (C),A
        LD DE,#4040
        LD HL,#C060
        CALL MOVER
        LD DE,#4060
        LD HL,#C080
        CALL MOVER
        LD DE,#4080
        LD HL,#C0A0
        CALL MOVER
        LD DE,#40A0
        LD HL,#C0C0
        CALL MOVER
        LD DE,#40C0
        LD HL,#C0E0
        CALL MOVER
        LD DE,#40E0
        LD HL,#C800
        CALL MOVER
        LD DE,#4800
        LD HL,#C820
        CALL MOVER
        LD DE,#4820
        LD HL,#C840
        CALL MOVER
        LD DE,#4840
        LD HL,#C860
        CALL MOVER
        LD DE,#4860
        LD HL,#C880
        CALL MOVER
        LD DE,#4880
        LD HL,#C8A0
        CALL MOVER
        LD DE,#48A0
        LD HL,#C8C0
        CALL MOVER
        LD DE,#48C0
        LD HL,#C8E0
        CALL MOVER
        LD DE,#48E0
        LD HL,#D000
        CALL MOVER
        LD DE,#5000
        LD HL,#D020
        CALL MOVER
        LD DE,#5020
        LD HL,#D040
        CALL MOVER
        LD DE,#5040
        LD HL,#D060
        CALL MOVER
        LD DE,#5060
        LD HL,#D080
        CALL MOVER
        LD DE,#5080
        LD HL,#D0A0
        CALL MOVER
        LD DE,#50A0
        LD HL,#D0C0
        CALL MOVER
        LD DE,#50C0
        LD HL,#D0E0
        CALL MOVER
        LD DE,#5840
        LD HL,#D860
        LD BC,672
        LDIR 
        LD IX,LINE5
        LD HL,(WORK_TB)
        LD DE,#50E0
        CALL LINE
        LD A,#15
UPIX    LD DE,63
        LD BC,#7FFD
        OUT (C),A
        LD HL,(WORK_TB)
        OR A
        SBC HL,DE
        LD (WORK_TB),HL
L_CHLI  LD DE,66
        ADD HL,DE
        LD A,L
UDAT3   CP 0
        JP NZ,NXTMAI4
        LD A,H
UDAT4   CP 0
        JP NZ,NXTMAI4
        LD A,#FF
        LD (ONLY_1+1),A
        JP NXTMAI4
DOWNL   LD HL,(WORK_TB)
        LD A,L
        OR A
        JP NZ,DOWNI1
        LD A,H
        CP #DB
        JP Z,NXTMAI2
DOWNI1  LD HL,(WORK_TB)
        DEC HL
        DEC HL
        DEC HL
        LD (WORK_TB),HL
        SUB A
        LD (ONLY_1+1),A
        LD (ONLY_2+1),A
        LD A,(RAM_CH)
        OR A
        JP Z,DNI1
        SUB A
        LD (RAM_CH),A
        LD A,#17
        LD BC,#7FFD
        OUT (C),A
        LD DE,#D0E0
        LD HL,#50C0
        CALL MOVER
        LD DE,#D0C0
        LD HL,#50A0
        CALL MOVER
        LD DE,#D0A0
        LD HL,#5080
        CALL MOVER
        LD DE,#D080
        LD HL,#5060
        CALL MOVER
        LD DE,#D060
        LD HL,#5040
        CALL MOVER
        LD DE,#D040
        LD HL,#5020
        CALL MOVER
        LD DE,#D020
        LD HL,#5000
        CALL MOVER
        LD DE,#D000
        LD HL,#48E0
        CALL MOVER
        LD DE,#C8E0
        LD HL,#48C0
        CALL MOVER
        LD DE,#C8C0
        LD HL,#48A0
        CALL MOVER
        LD DE,#C8A0
        LD HL,#4880
        CALL MOVER
        LD DE,#C880
        LD HL,#4860
        CALL MOVER
        LD DE,#C860
        LD HL,#4840
        CALL MOVER
        LD DE,#C840
        LD HL,#4820
        CALL MOVER
        LD DE,#C820
        LD HL,#4800
        CALL MOVER
        LD DE,#C800
        LD HL,#40E0
        CALL MOVER
        LD DE,#C0E0
        LD HL,#40C0
        CALL MOVER
        LD DE,#C0C0
        LD HL,#40A0
        CALL MOVER
        LD DE,#C0A0
        LD HL,#4080
        CALL MOVER
        LD DE,#C080
        LD HL,#4060
        CALL MOVER
        LD DE,#C060
        LD HL,#4040
        CALL MOVER
        LD DE,#D860
        LD HL,#5840
        LD BC,672
        LDIR 
        LD IX,LINE7
        LD HL,(WORK_TB)
        LD DE,#C040
        CALL LINE
        LD A,#1F
        LD BC,#7FFD
        OUT (C),A
        JP L_CHLI2
DNI1    LD A,#FF
        LD (RAM_CH),A
        LD A,#1F
        LD BC,#7FFD
        OUT (C),A
        LD DE,#50E0
        LD HL,#D0C0
        CALL MOVER
        LD DE,#50C0
        LD HL,#D0A0
        CALL MOVER
        LD DE,#50A0
        LD HL,#D080
        CALL MOVER
        LD DE,#5080
        LD HL,#D060
        CALL MOVER
        LD DE,#5060
        LD HL,#D040
        CALL MOVER
        LD DE,#5040
        LD HL,#D020
        CALL MOVER
        LD DE,#5020
        LD HL,#D000
        CALL MOVER
        LD DE,#5000
        LD HL,#C8E0
        CALL MOVER
        LD DE,#48E0
        LD HL,#C8C0
        CALL MOVER
        LD DE,#48C0
        LD HL,#C8A0
        CALL MOVER
        LD DE,#48A0
        LD HL,#C880
        CALL MOVER
        LD DE,#4880
        LD HL,#C860
        CALL MOVER
        LD DE,#4860
        LD HL,#C840
        CALL MOVER
        LD DE,#4840
        LD HL,#C820
        CALL MOVER
        LD DE,#4820
        LD HL,#C800
        CALL MOVER
        LD DE,#4800
        LD HL,#C0E0
        CALL MOVER
        LD DE,#40E0
        LD HL,#C0C0
        CALL MOVER
        LD DE,#40C0
        LD HL,#C0A0
        CALL MOVER
        LD DE,#40A0
        LD HL,#C080
        CALL MOVER
        LD DE,#4080
        LD HL,#C060
        CALL MOVER
        LD DE,#4060
        LD HL,#C040
        CALL MOVER
        LD DE,#5860
        LD HL,#D840
        LD BC,672
        LDIR 
        LD IX,LINE5
        LD HL,(WORK_TB)
        LD DE,#4040
        CALL LINE
        LD A,#15
        LD BC,#7FFD
        OUT (C),A
L_CHLI2 LD HL,(WORK_TB)
        LD A,L
        CP 0
        JP NZ,NXTMAI4
        LD A,H
        CP #DB
        JP NZ,NXTMAI4
        LD A,#FF
        LD (ONLY_2+1),A
        JP NXTMAI4
LIST_UL LD HL,(WORK_TB)
        LD DE,#DB00
        OR A
        SBC HL,DE
        LD A,H
        OR A
        JP NZ,LIST_UP
        LD A,L
        OR A
        JP Z,NXTMAI2
        CP #42
        JP Z,ONLY_2
        CP #41
        JP NC,LIST_UP
ONLY_2  LD A,0
        OR A
        JP NZ,NXTMAI2
        LD A,#FF
        LD (ONLY_2+1),A
        LD HL,#DB00
        LD (WORK_TB),HL
        LD A,(RAM_CH)
        OR A
        JP Z,LSTU3
        SUB A
        LD (RAM_CH),A
        LD IX,LINE7
        LD DE,#C040
        CALL LIST
        LD A,#1F
        LD BC,#7FFD
        OUT (C),A
        JP NXTMAI4
LSTU3   LD A,#FF
        LD (RAM_CH),A
        LD IX,LINE5
        LD DE,#4040
        CALL LIST
        LD A,#15
        LD BC,#7FFD
        OUT (C),A
        JP NXTMAI4
LIST_UP LD HL,(WORK_TB)
        LD DE,66
        OR A
        SBC HL,DE
        LD (WORK_TB),HL
        SUB A
        LD (ONLY_1+1),A
        LD (ONLY_2+1),A
PRN_SCR LD A,(RAM_CH)
        OR A
        JP Z,LSTU2
        SUB A
        LD (RAM_CH),A
        LD IX,LINE7
        LD DE,#C040
        CALL LIST
        LD A,#1F
        LD BC,#7FFD
        OUT (C),A
        JP NXTMAI4
LSTU2   LD A,#FF
        LD (RAM_CH),A
        LD IX,LINE5
        LD DE,#4040
        CALL LIST
        LD A,#15
        LD BC,#7FFD
        OUT (C),A
        JP NXTMAI4
LIST_DL LD HL,0
        LD DE,(WORK_TB)
        OR A
        SBC HL,DE
        LD A,H
        OR A
        JP NZ,LIST_DN
        LD A,L
        CP #42
        JP Z,NXTMAI2
        CP #84
        JP Z,ONLY_1
        CP #83
        JP NC,LIST_DN
ONLY_1  LD A,0
        OR A
        JP NZ,NXTMAI2
        LD A,#FF
        LD (ONLY_1+1),A
LAST_LI LD HL,0
        LD (WORK_TB),HL
        LD A,(RAM_CH)
        OR A
        JP Z,LSTD3
        SUB A
        LD (RAM_CH),A
        LD IX,LINE7
        LD DE,#C040
        CALL LIST
        LD A,#1F
        LD BC,#7FFD
        OUT (C),A
        JP NXTMAI4
LSTD3   LD A,#FF
        LD (RAM_CH),A
        LD IX,LINE5
        LD DE,#4040
        CALL LIST
        LD A,#15
        LD BC,#7FFD
        OUT (C),A
        JP NXTMAI4
LIST_DN LD HL,(WORK_TB)
        LD DE,66
        ADD HL,DE
        LD (WORK_TB),HL
        SUB A
        LD (ONLY_1+1),A
        LD (ONLY_2+1),A
REFRESH LD A,(RAM_CH)
        OR A
        JP Z,LSTD2
        SUB A
        LD (RAM_CH),A
        LD IX,LINE7
        LD DE,#C040
        CALL LIST
        LD A,#1F
        LD BC,#7FFD
        OUT (C),A
REBACK1 JP NXTMAI4
LSTD2   LD A,#FF
        LD (RAM_CH),A
        LD IX,LINE5
        LD DE,#4040
        CALL LIST
        LD A,#15
        LD BC,#7FFD
        OUT (C),A
REBACK2 JP NXTMAI4
LIST    LD A,22
LST1    EX AF,AF'
        PUSH HL
        PUSH DE
        CALL LINE
        POP DE
        POP HL
        INC HL
        INC HL
        INC HL
        CALL COR2_DE
        EX AF,AF'
        DEC A
        JP NZ,LST1
        RET 
MOVER   DUP 4
        DUP 31
        LDI 
        EDUP 
        LD A,(HL)
        LD (DE),A
        INC H
        INC D
        DUP 31
        LDD 
        EDUP 
        LD A,(HL)
        LD (DE),A
        INC H
        INC D
        EDUP 
        ORG $-2
        RET 
LINE    LD A,(IX+0)
        LD BC,#7FFD
        OUT (C),A
        LD A,(HL)
        ADD A,(IX+1)
        DB #FD
        LD H,A
        INC HL
        LD (SCP_ADR),DE
        LD (SCP_AD1+1),DE
        LD A,(HL)
        INC HL
        LD H,(HL)
        LD L,A
        PUSH HL
        LD A,(IX+2)
        LD BC,#7FFD
        OUT (C),A
COLR01  LD A,COLORAT
C_DATA1 LD (SET_ATR),A
        LD A,3
        LD (PRN_MOV+1),A
        OR #C
        LD (POL_RST+1),A
        SUB A
        LD (S64_CON+1),A
        EX DE,HL
        DUP 4
        DUP 31
        LD (HL),A
        INC L
        EDUP 
        LD (HL),A
        INC H
        DUP 31
        LD (HL),A
        DEC L
        EDUP 
        LD (HL),A
        INC H
        EDUP 
        ORG $-1
        LD HL,S42_PRN
        LD (MOD_SET),HL
        POP HL
        DB #FD
        LD A,H
        LD BC,#7FFD
        OUT (C),A
LIN_LOP LD A,(HL)
        CP 8
        JP NC,NXT_CHE
COLDAT1 LD DE,SET_ATR
        LD (DE),A
        INC HL
        LD A,(HL)
        CP 1
        JP NZ,SCLR1
        LD A,(DE)
        ADD A,64
        LD (DE),A
        INC HL
SCLR1   LD A,(HL)
        CP 8
        JP NZ,SCRL2
        INC HL
        LD B,(HL)
        PUSH HL
        LD C,8
        CALL UMN
        LD B,L
        POP HL
        LD A,(DE)
        ADD A,B
        LD (DE),A
        INC HL
SCRL2   LD A,(HL)
        CP 1
        JP NZ,NXT_CHE
        INC HL
        LD A,(DE)
        ADD A,#80
        LD (DE),A
NXT_CHE LD A,(HL)
        CP 9
        JP NZ,NXT_CH1
        INC HL
        LD C,(HL)
        INC HL
        LD B,(HL)
        LD A,B
        CP #D
        JP C,DECREAS
        DEC B
DECREAS INC HL
        PUSH HL
        EX AF,AF'
        PUSH AF
        EX AF,AF'
        LD HL,SPN_TBL
        LD A,C
        ADD A,A
        ADD A,A
        SUB #4
        LD E,A
        LD D,#0
        ADD HL,DE
        LD E,(HL)
        INC HL
        LD D,(HL)
        INC HL
        LD A,B
        PUSH BC
        ADD A,A
        ADD A,A
        ADD A,A
        LD B,A
        LD A,(HL)
        INC HL
        PUSH HL
        LD C,A
        CALL UMN
        ADD HL,DE
        PUSH DE
        LD DE,(SCP_ADR)
        LD C,A
        EXX 
        LD C,A
        POP DE
        POP HL
        LD B,(HL)
        CALL UMN
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,DE
        POP BC
        LD C,A
        PUSH HL
        CALL UMN
        POP DE
        ADD HL,DE
        LD DE,(SCP_ADR)
        LD A,D
        RRCA 
        RRCA 
        RRCA 
        AND 3
        OR #D8
        LD D,A
        EXX 
        LD B,8
SPN_L1  PUSH BC
        PUSH DE
        LD A,C
        LD BC,#7FFD
SPN_L0  EX AF,AF'
        LD A,(IX+3)
        OUT (C),A
        LD A,(HL)
        PUSH AF
        LD A,(IX+2)
        OUT (C),A
        POP AF
        LD (DE),A
        INC HL
        INC DE
        EX AF,AF'
        DEC A
        JP NZ,SPN_L0
        POP DE
        INC D
        POP BC
        DJNZ SPN_L1
        LD A,C
        EXX 
        LD BC,#7FFD
SPN_L2  EX AF,AF'
        LD A,(IX+3)
        OUT (C),A
        LD A,(HL)
C_DATA2 PUSH AF
        LD A,(IX+2)
        OUT (C),A
C_DATA3 POP AF
        NOP 
        LD (DE),A
        INC HL
        INC DE
        EXX 
        LD HL,SCP_ADR
        INC (HL)
        LD HL,PRN_MOV+1
        LD A,(HL)
SPR_LEN INC A
        AND 3
        CP 1
        JP Z,SPR_LEN
        LD (HL),A
        EXX 
        EX AF,AF'
        DEC A
        JP NZ,SPN_L2
        EXX 
        EX AF,AF'
        POP AF
        EX AF,AF'
        POP HL
        DB #FD
        LD A,H
        LD BC,#7FFD
        OUT (C),A
NXT_CH1 LD A,(HL)
        CP #A
        JP NZ,NXT_CH2
        PUSH HL
        LD HL,S32_PRN
        JP NXT_CH4
NXT_CH2 CP #B
        JP NZ,NXT_CH3
        PUSH HL
        LD HL,S42_PRN
        JP NXT_CH4
NXT_CH3 CP #C
        JP NZ,NXT_CH5
        PUSH HL
        LD HL,S64_PRN
NXT_CH4 LD (MOD_SET),HL
        POP HL
        INC HL
NXT_CH5 LD A,(HL)
        CP #D
        JP NZ,CONTIN
        LD HL,(SCP_ADR)
        LD A,(PRN_MOV+1)
        DEC A
        JP NZ,SCP_AD1
        INC HL
SCP_AD1 LD DE,0
        LD A,E
        RRCA 
        RRCA 
        RRCA 
        AND 3
        OR #D8
        LD D,A
        LD A,H
        RRCA 
        RRCA 
        RRCA 
        AND 3
        OR #D8
        LD H,A
        LD A,E
        ADD A,#1F
        SUB L
        CP #20
        RET NC
        LD C,A
        LD B,0
        ADD HL,BC
        LD D,H
        LD E,L
        DEC E
        PUSH AF
        LD A,(IX+2)
        CALL PAGE
        LD A,(SET_ATR)
        LD (HL),A
        POP AF
        OR A
        RET Z
        LDDR 
        RET 
CONTIN  CP 32
        JP C,LIN_LOP
        PUSH HL
        LD B,(HL)
        LD A,(IX+2)
        CALL PAGE
        LD HL,(SCP_ADR)
        LD A,H
        RRCA 
        RRCA 
        RRCA 
        AND 3
        OR #D8
        LD H,A
        DB #36
SET_ATR DB #00
        POP HL
        LD A,B
        PUSH HL
        DB #CD
MOD_SET DW #0000
        POP HL
        INC HL
        DB #FD
        LD A,H
        LD BC,#7FFD
        OUT (C),A
        JP NXT_CH5
S32_PRN LD E,A
        LD D,FONT32
        LD HL,(SCP_ADR)
        INC HL
        LD (SCP_ADR),HL
        DEC HL
        DUP 7
        LD A,(DE)
        LD (HL),A
        INC D
        INC H
        EDUP 
        LD A,(DE)
        LD (HL),A
        LD HL,PRN_MOV+1
        LD A,(HL)
S_BACK  INC A
        AND 3
        CP 1
        JP Z,S_BACK
        LD (HL),A
        RET 
S42_PRN LD L,A
        LD H,FONT42
        LD DE,(SCP_ADR)
PRN_MOV LD A,0
        INC A
        AND 3
        LD (PRN_MOV+1),A
        AND A
        JP Z,S42_1
        DEC A
        JP Z,S42_2
        DEC A
        JP Z,S42_3
S42_4   PUSH HL
        PUSH DE
        DUP 7
        LD A,(DE)
        LD C,(HL)
        SRA C
        SRA C
        OR C
        LD (DE),A
        INC D
        INC H
        EDUP 
        LD A,(DE)
        LD C,(HL)
        SRA C
        SRA C
        OR C
        LD (DE),A
        POP DE
        POP HL
        INC E
        DUP 7
        LD A,(HL)
        DUP 6
        ADD A,A
        EDUP 
        LD (DE),A
        INC D
        INC H
        EDUP 
        LD A,(HL)
        DUP 6
        ADD A,A
        EDUP 
        LD (DE),A
        LD HL,SCP_ADR
        INC (HL)
        RET 
S42_1   DUP 7
        LD A,(DE)
        OR (HL)
        LD (DE),A
        INC D
        INC H
        EDUP 
        LD A,(DE)
        OR (HL)
        LD (DE),A
        LD HL,SCP_ADR
        INC (HL)
        RET 
S42_2   DUP 7
        LD A,(HL)
        ADD A,A
        ADD A,A
        LD (DE),A
        INC D
        INC H
        EDUP 
        LD A,(HL)
        ADD A,A
        ADD A,A
        LD (DE),A
        RET 
S42_3   PUSH HL
        PUSH DE
        DUP 7
        LD A,(DE)
        LD C,(HL)
        DUP 4
        SRA C
        EDUP 
        OR C
        LD (DE),A
        INC D
        INC H
        EDUP 
        LD A,(DE)
        LD C,(HL)
        DUP 4
        SRA C
        EDUP 
        OR C
        LD (DE),A
        POP DE
        POP HL
        INC E
        DUP 7
        LD A,(HL)
        DUP 4
        ADD A,A
        EDUP 
        LD (DE),A
        INC D
        INC H
        EDUP 
        LD A,(HL)
        DUP 4
        ADD A,A
        EDUP 
        LD (DE),A
        LD HL,SCP_ADR
        INC (HL)
        RET 
S64_PRN LD E,A
POL_RST LD A,0
        CPL 
        LD (POL_RST+1),A
        LD C,A
        LD D,FONT64
        LD HL,(SCP_ADR)
        INC HL
        LD (SCP_ADR),HL
        DEC HL
        DUP 7
        LD A,(DE)
        AND C
        OR (HL)
        LD (HL),A
        INC D
        INC H
        EDUP 
        LD A,(DE)
        AND C
        OR (HL)
        LD (HL),A
        LD A,(POL_RST+1)
        CP #F
        JP Z,S64_CON
        LD HL,(SCP_ADR)
        DEC HL
        LD (SCP_ADR),HL
S64_CON LD A,0
        INC A
        AND 1
        LD (S64_CON+1),A
        OR A
        RET NZ
        LD HL,PRN_MOV+1
        LD A,(HL)
S_BACK2 INC A
        AND 3
        CP 1
        JP Z,S_BACK2
        LD (HL),A
        RET 
RES_ICO LD A,0
        OR A
        RET Z
        SUB A
        LD (RES_ICO+1),A
        DEC A
        LD (SET_ICO+1),A
        CALL RES_BUF
        LD A,(RAM_CH)
        OR A
        LD A,#1F
        JP Z,SET_PA1
        LD A,#17
SET_PA1 CALL PAGE
        DI 
        LD (STK3+1),SP
        LD SP,ICO_SPR
        POP HL
        LD (#4000),HL
        LD (#C000),HL
        POP HL
        LD (#4002),HL
        LD (#C002),HL
        POP HL
        LD (#4004),HL
        LD (#C004),HL
        POP HL
        LD (#4006),HL
        LD (#C006),HL
        POP HL
        LD (#4008),HL
        LD (#C008),HL
        POP HL
        LD (#400A),HL
        LD (#C00A),HL
        POP HL
        LD (#400C),HL
        LD (#C00C),HL
        LD SP,ICO_SPR+32
        POP HL
        LD (#4100),HL
        LD (#C100),HL
        POP HL
        LD (#4102),HL
        LD (#C102),HL
        POP HL
        LD (#4104),HL
        LD (#C104),HL
        POP HL
        LD (#4106),HL
        LD (#C106),HL
        POP HL
        LD (#4108),HL
        LD (#C108),HL
        POP HL
        LD (#410A),HL
        LD (#C10A),HL
        POP HL
        LD (#410C),HL
        LD (#C10C),HL
        LD SP,ICO_SPR+64
        POP HL
        LD (#4200),HL
        LD (#C200),HL
        POP HL
        LD (#4202),HL
        LD (#C202),HL
        POP HL
        LD (#4204),HL
        LD (#C204),HL
        POP HL
        LD (#4206),HL
        LD (#C206),HL
        POP HL
        LD (#4208),HL
        LD (#C208),HL
        POP HL
        LD (#420A),HL
        LD (#C20A),HL
        POP HL
        LD (#420C),HL
        LD (#C20C),HL
        LD SP,ICO_SPR+96
        POP HL
        LD (#4300),HL
        LD (#C300),HL
        POP HL
        LD (#4302),HL
        LD (#C302),HL
        POP HL
        LD (#4304),HL
        LD (#C304),HL
        POP HL
        LD (#4306),HL
        LD (#C306),HL
        POP HL
        LD (#4308),HL
        LD (#C308),HL
        POP HL
        LD (#430A),HL
        LD (#C30A),HL
        POP HL
        LD (#430C),HL
        LD (#C30C),HL
        LD SP,ICO_SPR+128
        POP HL
        LD (#4400),HL
        LD (#C400),HL
        POP HL
        LD (#4402),HL
        LD (#C402),HL
        POP HL
        LD (#4404),HL
        LD (#C404),HL
        POP HL
        LD (#4406),HL
        LD (#C406),HL
        POP HL
        LD (#4408),HL
        LD (#C408),HL
        POP HL
        LD (#440A),HL
        LD (#C40A),HL
        POP HL
        LD (#440C),HL
        LD (#C40C),HL
        LD SP,ICO_SPR+160
        POP HL
        LD (#4500),HL
        LD (#C500),HL
        POP HL
        LD (#4502),HL
        LD (#C502),HL
        POP HL
        LD (#4504),HL
        LD (#C504),HL
        POP HL
        LD (#4506),HL
        LD (#C506),HL
        POP HL
        LD (#4508),HL
        LD (#C508),HL
        POP HL
        LD (#450A),HL
        LD (#C50A),HL
        POP HL
        LD (#450C),HL
        LD (#C50C),HL
        LD SP,ICO_SPR+192
        POP HL
        LD (#4600),HL
        LD (#C600),HL
        POP HL
        LD (#4602),HL
        LD (#C602),HL
        POP HL
        LD (#4604),HL
        LD (#C604),HL
        POP HL
        LD (#4606),HL
        LD (#C606),HL
        POP HL
        LD (#4608),HL
        LD (#C608),HL
        POP HL
        LD (#460A),HL
        LD (#C60A),HL
        POP HL
        LD (#460C),HL
        LD (#C60C),HL
        LD SP,ICO_SPR+224
        POP HL
        LD (#4700),HL
        LD (#C700),HL
        POP HL
        LD (#4702),HL
        LD (#C702),HL
        POP HL
        LD (#4704),HL
        LD (#C704),HL
        POP HL
        LD (#4706),HL
        LD (#C706),HL
        POP HL
        LD (#4708),HL
        LD (#C708),HL
        POP HL
        LD (#470A),HL
        LD (#C70A),HL
        POP HL
        LD (#470C),HL
        LD (#C70C),HL
        LD SP,ICO_SPR+256
        POP HL
        LD (#4020),HL
        LD (#C020),HL
        POP HL
        LD (#4022),HL
        LD (#C022),HL
        POP HL
        LD (#4024),HL
        LD (#C024),HL
        POP HL
        LD (#4026),HL
        LD (#C026),HL
        POP HL
        LD (#4028),HL
        LD (#C028),HL
        POP HL
        LD (#402A),HL
        LD (#C02A),HL
        POP HL
        LD (#402C),HL
        LD (#C02C),HL
        LD SP,ICO_SPR+288
        POP HL
        LD (#4120),HL
        LD (#C120),HL
        POP HL
        LD (#4122),HL
        LD (#C122),HL
        POP HL
        LD (#4124),HL
        LD (#C124),HL
        POP HL
        LD (#4126),HL
        LD (#C126),HL
        POP HL
        LD (#4128),HL
        LD (#C128),HL
        POP HL
        LD (#412A),HL
        LD (#C12A),HL
        POP HL
        LD (#412C),HL
        LD (#C12C),HL
        LD SP,ICO_SPR+320
        POP HL
        LD (#4220),HL
        LD (#C220),HL
        POP HL
        LD (#4222),HL
        LD (#C222),HL
        POP HL
        LD (#4224),HL
        LD (#C224),HL
        POP HL
        LD (#4226),HL
        LD (#C226),HL
        POP HL
        LD (#4228),HL
        LD (#C228),HL
        POP HL
        LD (#422A),HL
        LD (#C22A),HL
        POP HL
        LD (#422C),HL
        LD (#C22C),HL
        LD SP,ICO_SPR+352
        POP HL
        LD (#4320),HL
        LD (#C320),HL
        POP HL
        LD (#4322),HL
        LD (#C322),HL
        POP HL
        LD (#4324),HL
        LD (#C324),HL
        POP HL
        LD (#4326),HL
        LD (#C326),HL
        POP HL
        LD (#4328),HL
        LD (#C328),HL
        POP HL
        LD (#432A),HL
        LD (#C32A),HL
        POP HL
        LD (#432C),HL
        LD (#C32C),HL
        LD SP,ICO_SPR+384
        POP HL
        LD (#4420),HL
        LD (#C420),HL
        POP HL
        LD (#4422),HL
        LD (#C422),HL
        POP HL
        LD (#4424),HL
        LD (#C424),HL
        POP HL
        LD (#4426),HL
        LD (#C426),HL
        POP HL
        LD (#4428),HL
        LD (#C428),HL
        POP HL
        LD (#442A),HL
        LD (#C42A),HL
        POP HL
        LD (#442C),HL
        LD (#C42C),HL
        LD SP,ICO_SPR+416
        POP HL
        LD (#4520),HL
        LD (#C520),HL
        POP HL
        LD (#4522),HL
        LD (#C522),HL
        POP HL
        LD (#4524),HL
        LD (#C524),HL
        POP HL
        LD (#4526),HL
        LD (#C526),HL
        POP HL
        LD (#4528),HL
        LD (#C528),HL
        POP HL
        LD (#452A),HL
        LD (#C52A),HL
        POP HL
        LD (#452C),HL
        LD (#C52C),HL
        LD SP,ICO_SPR+448
        POP HL
        LD (#4620),HL
        LD (#C620),HL
        POP HL
        LD (#4622),HL
        LD (#C622),HL
        POP HL
        LD (#4624),HL
        LD (#C624),HL
        POP HL
        LD (#4626),HL
        LD (#C626),HL
        POP HL
        LD (#4628),HL
        LD (#C628),HL
        POP HL
        LD (#462A),HL
        LD (#C62A),HL
        POP HL
        LD (#462C),HL
        LD (#C62C),HL
        LD SP,ICO_SPR+480
        POP HL
        LD (#4720),HL
        LD (#C720),HL
        POP HL
        LD (#4722),HL
        LD (#C722),HL
        POP HL
        LD (#4724),HL
        LD (#C724),HL
        POP HL
        LD (#4726),HL
        LD (#C726),HL
        POP HL
        LD (#4728),HL
        LD (#C728),HL
        POP HL
        LD (#472A),HL
        LD (#C72A),HL
        POP HL
        LD (#472C),HL
        LD (#C72C),HL
        LD SP,ICO_SPR+512
        POP HL
        LD (#5800),HL
        LD (#D800),HL
        POP HL
        LD (#5802),HL
        LD (#D802),HL
        POP HL
        LD (#5804),HL
        LD (#D804),HL
        POP HL
        LD (#5806),HL
        LD (#D806),HL
        POP HL
        LD (#5808),HL
        LD (#D808),HL
        POP HL
        LD (#580A),HL
        LD (#D80A),HL
        POP HL
        LD (#580C),HL
        LD (#D80C),HL
        LD SP,ICO_SPR+544
        POP HL
        LD (#5820),HL
        LD (#D820),HL
        POP HL
        LD (#5822),HL
        LD (#D822),HL
        POP HL
        LD (#5824),HL
        LD (#D824),HL
        POP HL
        LD (#5826),HL
        LD (#D826),HL
        POP HL
        LD (#5828),HL
        LD (#D828),HL
        POP HL
        LD (#582A),HL
        LD (#D82A),HL
        POP HL
        LD (#582C),HL
        LD (#D82C),HL
STK3    LD SP,0
        JP STR_PUT
SET_ICO LD A,#FF
        OR A
        RET Z
        SUB A
        LD (SET_ICO+1),A
        DEC A
        LD (RES_ICO+1),A
        CALL RES_BUF
        LD A,(RAM_CH)
        OR A
        LD A,#1F
        JP Z,SET_PAG
        LD A,#17
SET_PAG CALL PAGE
        LD DE,ICON_UP
        DI 
        LD (STK2+1),SP
        EX DE,HL
        LD SP,HL
        EX DE,HL
        POP HL
        LD (#4000),HL
        LD (#C000),HL
        POP HL
        LD (#4100),HL
        LD (#C100),HL
        POP HL
        LD (#4200),HL
        LD (#C200),HL
        POP HL
        LD (#4300),HL
        LD (#C300),HL
        POP HL
        LD (#4400),HL
        LD (#C400),HL
        POP HL
        LD (#4500),HL
        LD (#C500),HL
        POP HL
        LD (#4600),HL
        LD (#C600),HL
        POP HL
        LD (#4700),HL
        LD (#C700),HL
        POP HL
        LD (#4020),HL
        LD (#C020),HL
        POP HL
        LD (#4120),HL
        LD (#C120),HL
        POP HL
        LD (#4220),HL
        LD (#C220),HL
        POP HL
        LD (#4320),HL
        LD (#C320),HL
        POP HL
        LD (#4420),HL
        LD (#C420),HL
        POP HL
        LD (#4520),HL
        LD (#C520),HL
        POP HL
        LD (#4620),HL
        LD (#C620),HL
        POP HL
        LD (#4720),HL
        LD (#C720),HL
        INC D
        EX DE,HL
        LD SP,HL
        EX DE,HL
        POP HL
        LD (#4002),HL
        LD (#C002),HL
        POP HL
        LD (#4102),HL
        LD (#C102),HL
        POP HL
        LD (#4202),HL
        LD (#C202),HL
        POP HL
        LD (#4302),HL
        LD (#C302),HL
        POP HL
        LD (#4402),HL
        LD (#C402),HL
        POP HL
        LD (#4502),HL
        LD (#C502),HL
        POP HL
        LD (#4602),HL
        LD (#C602),HL
        POP HL
        LD (#4702),HL
        LD (#C702),HL
        POP HL
        LD (#4022),HL
        LD (#C022),HL
        POP HL
        LD (#4122),HL
        LD (#C122),HL
        POP HL
        LD (#4222),HL
        LD (#C222),HL
        POP HL
        LD (#4322),HL
        LD (#C322),HL
        POP HL
        LD (#4422),HL
        LD (#C422),HL
        POP HL
        LD (#4522),HL
        LD (#C522),HL
        POP HL
        LD (#4622),HL
        LD (#C622),HL
        POP HL
        LD (#4722),HL
        LD (#C722),HL
        INC D
        EX DE,HL
        LD SP,HL
        EX DE,HL
        POP HL
        LD (#4004),HL
        LD (#C004),HL
        POP HL
        LD (#4104),HL
        LD (#C104),HL
        POP HL
        LD (#4204),HL
        LD (#C204),HL
        POP HL
        LD (#4304),HL
        LD (#C304),HL
        POP HL
        LD (#4404),HL
        LD (#C404),HL
        POP HL
        LD (#4504),HL
        LD (#C504),HL
        POP HL
        LD (#4604),HL
        LD (#C604),HL
        POP HL
        LD (#4704),HL
        LD (#C704),HL
        POP HL
        LD (#4024),HL
        LD (#C024),HL
        POP HL
        LD (#4124),HL
        LD (#C124),HL
        POP HL
        LD (#4224),HL
        LD (#C224),HL
        POP HL
        LD (#4324),HL
        LD (#C324),HL
        POP HL
        LD (#4424),HL
        LD (#C424),HL
        POP HL
        LD (#4524),HL
        LD (#C524),HL
        POP HL
        LD (#4624),HL
        LD (#C624),HL
        POP HL
        LD (#4724),HL
        LD (#C724),HL
        INC D
        EX DE,HL
        LD SP,HL
        EX DE,HL
        POP HL
        LD (#4006),HL
        LD (#C006),HL
        POP HL
        LD (#4106),HL
        LD (#C106),HL
        POP HL
        LD (#4206),HL
        LD (#C206),HL
        POP HL
        LD (#4306),HL
        LD (#C306),HL
        POP HL
        LD (#4406),HL
        LD (#C406),HL
        POP HL
        LD (#4506),HL
        LD (#C506),HL
        POP HL
        LD (#4606),HL
        LD (#C606),HL
        POP HL
        LD (#4706),HL
        LD (#C706),HL
        POP HL
        LD (#4026),HL
        LD (#C026),HL
        POP HL
        LD (#4126),HL
        LD (#C126),HL
        POP HL
        LD (#4226),HL
        LD (#C226),HL
        POP HL
        LD (#4326),HL
        LD (#C326),HL
        POP HL
        LD (#4426),HL
        LD (#C426),HL
        POP HL
        LD (#4526),HL
        LD (#C526),HL
        POP HL
        LD (#4626),HL
        LD (#C626),HL
        POP HL
        LD (#4726),HL
        LD (#C726),HL
        INC D
        EX DE,HL
        LD SP,HL
        EX DE,HL
        POP HL
        LD (#4008),HL
        LD (#C008),HL
        POP HL
        LD (#4108),HL
        LD (#C108),HL
        POP HL
        LD (#4208),HL
        LD (#C208),HL
        POP HL
        LD (#4308),HL
        LD (#C308),HL
        POP HL
        LD (#4408),HL
        LD (#C408),HL
        POP HL
        LD (#4508),HL
        LD (#C508),HL
        POP HL
        LD (#4608),HL
        LD (#C608),HL
        POP HL
        LD (#4708),HL
        LD (#C708),HL
        POP HL
        LD (#4028),HL
        LD (#C028),HL
        POP HL
        LD (#4128),HL
        LD (#C128),HL
        POP HL
        LD (#4228),HL
        LD (#C228),HL
        POP HL
        LD (#4328),HL
        LD (#C328),HL
        POP HL
        LD (#4428),HL
        LD (#C428),HL
        POP HL
        LD (#4528),HL
        LD (#C528),HL
        POP HL
        LD (#4628),HL
        LD (#C628),HL
        POP HL
        LD (#4728),HL
        LD (#C728),HL
        INC D
        EX DE,HL
        LD SP,HL
        EX DE,HL
        POP HL
        LD (#400A),HL
        LD (#C00A),HL
        POP HL
        LD (#410A),HL
        LD (#C10A),HL
        POP HL
        LD (#420A),HL
        LD (#C20A),HL
        POP HL
        LD (#430A),HL
        LD (#C30A),HL
        POP HL
        LD (#440A),HL
        LD (#C40A),HL
        POP HL
        LD (#450A),HL
        LD (#C50A),HL
        POP HL
        LD (#460A),HL
        LD (#C60A),HL
        POP HL
        LD (#470A),HL
        LD (#C70A),HL
        POP HL
        LD (#402A),HL
        LD (#C02A),HL
        POP HL
        LD (#412A),HL
        LD (#C12A),HL
        POP HL
        LD (#422A),HL
        LD (#C22A),HL
        POP HL
        LD (#432A),HL
        LD (#C32A),HL
        POP HL
        LD (#442A),HL
        LD (#C42A),HL
        POP HL
        LD (#452A),HL
        LD (#C52A),HL
        POP HL
        LD (#462A),HL
        LD (#C62A),HL
        POP HL
        LD (#472A),HL
        LD (#C72A),HL
        INC D
        EX DE,HL
        LD SP,HL
        EX DE,HL
        POP HL
        LD (#400C),HL
        LD (#C00C),HL
        POP HL
        LD (#410C),HL
        LD (#C10C),HL
        POP HL
        LD (#420C),HL
        LD (#C20C),HL
        POP HL
        LD (#430C),HL
        LD (#C30C),HL
        POP HL
        LD (#440C),HL
        LD (#C40C),HL
        POP HL
        LD (#450C),HL
        LD (#C50C),HL
        POP HL
        LD (#460C),HL
        LD (#C60C),HL
        POP HL
        LD (#470C),HL
        LD (#C70C),HL
        POP HL
        LD (#402C),HL
        LD (#C02C),HL
        POP HL
        LD (#412C),HL
        LD (#C12C),HL
        POP HL
        LD (#422C),HL
        LD (#C22C),HL
        POP HL
        LD (#432C),HL
        LD (#C32C),HL
        POP HL
        LD (#442C),HL
        LD (#C42C),HL
        POP HL
        LD (#452C),HL
        LD (#C52C),HL
        POP HL
        LD (#462C),HL
        LD (#C62C),HL
        POP HL
        LD (#472C),HL
        LD (#C72C),HL
        LD HL,#4747
        LD SP,#580E
        DUP 7
        PUSH HL
        EDUP 
        LD SP,#582E
        DUP 7
        PUSH HL
        EDUP 
        LD SP,#D80E
        DUP 7
        PUSH HL
        EDUP 
        LD SP,#D82E
        DUP 7
        PUSH HL
        EDUP 
STK2    LD SP,0
STR_PUT EI 
        LD A,(RAM_CH)
        OR A
        JP Z,PUT_SPR
        LD A,#15
        CALL PAGE
        JP PUT_SPR
ICO_PRN EX AF,AF'
        LD A,(RAM_CH)
        OR A
        JP Z,ICO_PR2
        LD A,#17
        CALL PAGE
        LD D,#40
        PUSH HL
        PUSH DE
        EX AF,AF'
        CALL ICO_PRI
        POP DE
        POP HL
        LD D,#C0
        CALL ICO_PRI
        LD A,#15
        JP PAGE
ICO_PR2 LD A,#1F
        CALL PAGE
        LD D,#C0
        PUSH HL
        PUSH DE
        EX AF,AF'
        CALL ICO_PRI
        POP DE
        POP HL
        LD D,#40
        CALL ICO_PRI
        LD A,#1F
        JP PAGE
ICO_PRI OR A
        LD B,8
        JP NZ,ICO_PR1
        LD (DE),A
        INC E
        LD (DE),A
        INC D
        DEC E
        DEC B
ICO_PR1 DI 
        LD (STK+1),SP
        LD SP,HL
        EX DE,HL
BACK1   POP DE
        OR A
        JP NZ,BACK2
        RR E
        RR D
BACK2   LD (HL),E
        INC L
        LD (HL),D
        INC H
        DEC L
        DJNZ BACK1
        OR A
        LD BC,#7E0
        SBC HL,BC
        LD B,8
BACK3   POP DE
        OR A
        JP NZ,BACK4
        RR E
        RR D
BACK4   LD (HL),E
        INC L
        LD (HL),D
        INC H
        DEC L
        DJNZ BACK3
STK     LD SP,0
        EI 
        RET 

TXT01   DW #0000
        DW #0115
        DB #78
        DB 40,31,20,1,32,20,5,43,2,43,8,15,13,5,16,5,0
        DB 1,"INTERVIEW FROM CSP999",0
        DB #FF

TXT02   DW #0C10
        DW #0311
        DB #57
        DB 18,5,17,21,5,19,20,0
        DB "QUIT FLASH INFO ?",0,0,"   "
        DB #01," YES ",#1F,"  ",#03," NO ",0,#FF

        ORG MUSIC
        INCBIN "4INTRO99

        ORG #C000,#10

TIT_SCR INCBIN "melary
W_FONT  INCBIN "windfont
WND_BUFFER:

        ORG #C000,#11
        DB #FE
        INCBIN "INTER1
        DB #FF

        ORG START
