;   

        MAIN "LView04",9

SHOW
        CALL UNDER
        RET C
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        LD BC,cat_adr
        ADD HL,BC
        PUSH HL
        POP IX
        LD E,A
        LD D,0
        LD HL,ShowTab
        ADD HL,DE
        ADD HL,DE
        LD A,(HL)
        INC HL
        LD H,(HL)
        LD L,A
        JR shw_A

TXTVIEW CALL UNDER
        RET C
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        LD BC,cat_adr
        ADD HL,BC
        PUSH HL
        POP IX
        LD HL,TXT_SHW
shw_A   CALL CALL_HL
        XOR A
        CALL BANK
        JP PANEL

ShowTab DW BWS_SHW,SCR_SHW,MCX_SHW,RGB_SHW
        DW T8T_SHW,Y_SHW,IMG_SHW,ANI_SHW
        DW VSP_SHW,PT3PLAY,TXT_SHW,BAS_SHW
        DW PAK_SHW,LAY_SHW,CH6_SHW,CHC_SHW
        DW FN8_SHW,FN3_SHW,skip,skip
        DW skip,skip,skip,skip
        DW skip,skip,skip,skip
        DW skip,skip,skip,skip

UNDER   LD HL,tab_adr           ;  :
        LD A,(filter+1)         ;   A = 
        DEC A                   ;  HL = 
        CP (HL)
        RET C
        LD A,(CursPos)
        LD HL,(UpTab)
        LD E,A
        LD D,0
        ADD HL,DE
        ADD HL,DE
        LD A,(HL)
        INC HL
        LD L,(HL)
        LD H,0
        AND A
        RET 

; chunkz view
CH6_SHW
        LD HL,#C000
        LD B,6
        CALL FLOAD
        LD HL,#C000
        LD DE,#E000
ch6_C   LD A,(HL)
        RRA 
        RRA 
        RRA 
        RRA 
        AND 15
        LD (DE),A
        INC DE
        LD A,(HL)
        AND 15
        LD (DE),A
        INC DE
        INC HL
        LD A,H
        CP #C6
        JR C,ch6_C
        JR chcs_0
CHC_SHW LD HL,#E000
        LD B,12
        CALL FLOAD
chcs_0  CALL CLS
chcs_1  LD HL,#C000
        LD DE,#C001
        LD BC,#17FF
        LD (HL),L
        LDIR 
        LD A,(ChunkNr)
        LD L,A
        LD H,0
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        LD DE,ChunkZ
        ADD HL,DE
        LD (Chk_Adr+1),HL
        LD DE,#E000
        LD HL,#C000
chcs_X  LD A,#A7
        LD (ch_RL),A
        LD B,64
        PUSH HL
chcs_2  LD A,(DE)
        CALL OUTCHNK
        INC DE
        LD A,(ch_RL)
        XOR #90
        LD (ch_RL),A
        CP #A7
        JR NZ,chcs_3
        INC L
chcs_3  DJNZ chcs_2
        POP HL
        LD A,H
        ADD A,4
        LD H,A
        AND 7
        JR NZ,chcs_4
        LD A,L
        ADD A,32
        LD L,A
        JR C,chcs_4
        LD A,H
        SUB 8
        LD H,A
chcs_4  LD A,H
        CP #D8
        JR C,chcs_X
        LD HL,#C000
        LD DE,#4000
        LD BC,#1800
        LDIR 
chcs_5  CALL NOKEY
        CALL WAITKEY
        CP 32
        RET Z
        CP 13
        RET Z
        SUB "1"
        CP 8
        JR NC,chcs_5
        LD (ChunkNr),A
        JR chcs_1

ChunkNr DB 0
ChunkZ  INCBIN "CHANKS-1"
        INCBIN "CHANKS-2"
        INCBIN "CHANKS-3"
        INCBIN "CHANKS-4"
        INCBIN "CHANKS-5"
        INCBIN "CHANKS-6"
        INCBIN "CHANKS-7"
        INCBIN "CHANKS-8"

OUTCHNK PUSH HL
        PUSH DE
        AND 15
        ADD A,A
        ADD A,A
        LD E,A
        LD D,0
Chk_Adr LD DE,ChunkZ
        ADD A,E
        LD E,A
        ADC A,D
        SUB E
        LD D,A
        LD C,#F0
ch_RL   AND A
        JR NC,ocha_1
        LD C,#0F
ocha_1  LD A,4
ocha_2  EXA 
        LD A,(DE)
        AND C
        OR (HL)
        LD (HL),A
        INC DE
        INC H
        EXA 
        DEC A
        JR NZ,ocha_2
        POP DE
        POP HL
        RET 

; 4-layer view
LAY_SHW
        LD HL,#5800
        LD DE,#5801
        LD BC,767
        LD (HL),L
        LDIR 
        CALL CLS_ATM
        CALL LOADALL
        XOR A
        CALL IMGBANK
        LD HL,#C00F
        EXX 
        LD C,0
        EXX 
        LD A,%0100      ; B
        CALL LAY_DEP
        LD DE,#0108
        CALL GET_ATM
        LD A,%0101      ; R
        CALL LAY_DEP
        LD DE,#0210
        CALL GET_ATM
        LD A,%0110      ; G
        CALL LAY_DEP
        LD DE,#0420
        CALL GET_ATM
        LD A,%0111      ; I
        CALL LAY_DEP
        LD DE,#4080
        CALL GET_ATM
;       CALL DROPATM
        LD A,(ATMFLAG)
        AND A
        JR NZ,SEE_ATM
        LD A,%1100
        OUT (#DF),A
        JR SEE_EX

SEE_ATM CALL ATM_ON

SEE_EX  CALL NOKEY
        CALL WAITKEY
        CALL NOKEY
        XOR A
        OUT (#DF),A
ATM_OFF LD BC,#FF77
        LD A,#A3+8
        JP OUT_DOS

ATM_ON  LD A,7
        CALL BANK
        LD BC,#7FFD
        LD A,#18
        OUT (C),A
        LD BC,#FF77
        LD A,#A0+8
        JP OUT_DOS

LAY_DEP OUT (#DF),A
        LD DE,#4000
ldep_1  LD B,(HL)
        INC HL
        LD C,0
        LD A,H
        OR L
        JR NZ,ldep_2
        EXX 
        INC C
        LD A,C
        EXX 
        CALL IMGBANK
        LD HL,#C000
ldep_2  RR B
        JR NC,ldep_3
        LD C,(HL)
        INC HL
        LD A,H
        OR L
        JR NZ,ldep_3
        EXX 
        INC C
        LD A,C
        EXX 
        CALL IMGBANK
        LD HL,#C000
ldep_3  LD A,C
        LD (DE),A
        INC D
        LD A,D
        AND 7
        JR NZ,ldep_2
        LD A,D
        SUB 8
        LD D,A
        INC E
        JR NZ,ldep_1
        LD A,D
        ADD A,8
        LD D,A
        CP #58
        JR C,ldep_1
        RET 

GET_ATM LD A,(ATMFLAG)
        AND A
        RET Z
        LD A,(CurBank)
        PUSH AF
        PUSH HL
        LD A,D
        LD (L_mask+1),A
        LD A,E
        LD (R_mask+1),A
        LD DE,#E017
        LD A,12
        CALL MAKPAIR
        LD DE,#E013
        LD A,8
        CALL MAKPAIR
        LD DE,#C017
        LD A,4
        CALL MAKPAIR
        LD DE,#C013
        XOR A
        CALL MAKPAIR
        POP HL
        POP AF
        JP BANK

MAKPAIR
        LD A,E
        CALL BANK
        LD E,4
        LD HL,#4000
        LD B,192
sd_BCK  PUSH HL
        LD A,32
sd_CYC  EXA 
        RRC (HL)
        LD A,(DE)
        JR NC,sd_A
R_mask  OR 0
sd_A    RRC (HL)
        JR NC,sd_B
L_mask  OR 0
sd_B    LD (DE),A
        INC DE
        INC L
        EXA 
        DEC A
        JR NZ,sd_CYC
        POP HL
        CALL NEXT_HL
        DUP 8
         INC DE
        EDUP 
        DJNZ sd_BCK
        RET 

CLS_ATM LD A,(ATMFLAG)
        AND A
        RET Z
        LD A,#13
        CALL CLRBANK
        LD A,#17
CLRBANK CALL BANK
        LD HL,#C000
        LD DE,#C001
        LD BC,#3FFF
        LD (HL),L
        LDIR 
        RET 

DROPATM LD A,(ATMFLAG)
        AND A
        RET Z
        LD DE,#1013
        CALL DRPBANK
        LD DE,#1117
DRPBANK LD HL,#C000
dban_1  LD A,D
        CALL BANK
        LD C,(HL)
        LD A,E
        CALL BANK
        LD (HL),C
        INC HL
        LD A,H
        OR L
        JR NZ,dban_1
        RET 

;  BASIC
BAS_SHW
        PUSH IX
        POP HL
        LD DE,23773
        LD BC,8
        LDIR 
        LD A,(POSIT+1)
        AND 3
        LD (23798),A
        LD (23833),A
        LD C,1
        CALL 15635
stack   LD SP,0
        LD HL,10072
        EXX 
        LD IY,23610
        AND A
        RET 

;  *.Y
Y_SHW
        LD HL,#5800
        LD DE,#5801
        LD BC,767
        LD (HL),0
        LDIR 
        LD A,(IX+11)
        AND A
        LD A,(IX+12)
        JR Z,ysh_1
        INC A
ysh_1   LD B,A
        LD A,(IX+13)
        SUB B
        PUSH AF
        LD E,(IX+14)
        LD D,(IX+15)
        LD HL,#B800
        CALL LOAD
        POP AF
        PUSH AF
        JR Z,y_2

        LD B,A
        XOR A
        CALL IMGBANK
        LD HL,#C000
        CALL LOAD

y_2     XOR A
        CALL BANK
        CALL #B800

        POP AF
        JR Z,y_3

        XOR A
        CALL IMGBANK
        CALL CLS
        CALL tsh_3A
y_1A    LD A,#BF
        IN A,(254)
        RRA 
        JR C,y_1A
        CALL NOKEY

y_3     XOR A
        LD (rgb_C1+1),A
        JP rgbsh_X

;  ()

PAK_SHW
        CALL CLS
        CALL LOAD_1
        LD A,(HL)
        CP "h"
        RET NZ
        INC L
        LD A,(HL)
        CP "r"
        RET NZ
        INC L
        LD A,(HL)
        CP "2"
        RET NZ
        INC L
        BIT 7,(HL)
        JR Z,psh_DPK

        LD BC,(#BF04)   ; 
        LD HL,#BF08
        LD DE,#C000
        XOR A
        CALL IMGBANK
dep_NP1 LDI 
        LD A,D
        OR E
        JR NZ,dep_NP3
        LD A,(imgyet+1)
        INC A
        CALL IMGBANK
dep_NP3 LD A,B
        OR C
        JR Z,dep_NPE
        LD A,L
        AND A
        CALL Z,LOAD_NX
        JR dep_NP1
dep_NPE EX DE,HL
        JP tsh_2

psh_DPK LD HL,(#BF0C)   ; 
        PUSH HL
        LD HL,(#BF0A)
        PUSH HL
        LD HL,(#BF08)
        PUSH HL
        XOR A
        CALL IMGBANK
        LD DE,#C000
        LD B,E
        EXX 
        LD HL,#BF0E
        LD DE,#1003
        LD C,#80
L24653  LD A,(HL)
        INC L
        CALL Z,LOAD_NX
        EXX 
        LD (DE),A
        INC E
        CALL Z,ADD_DE
L24658  EXX 
L24659  SLA C
        JR NZ,L24667
        LD C,(HL)
        INC L
        CALL Z,LOAD_NX
        RL C
L24667  JR C,L24653
        LD B,1
L24671  LD A,64
L24673  SLA C
        JR NZ,L24681
        LD C,(HL)
        INC L
        CALL Z,LOAD_NX
        RL C
L24681  RLA 
        JR NC,L24673
        CP E
        JR C,L24692
        ADD A,B
        LD B,A
        XOR D
        JR NZ,L24671
L24692  ADD A,B
        CP 4
        JR Z,L24774
        ADC A,255
L24699  CP 2
L24701  EXX 
        LD C,A
        LD H,255
        EXX 
        JR C,L24800
        JR Z,L24751
        SLA C
        JR NZ,L24718
        LD C,(HL)
        INC L
        CALL Z,LOAD_NX
        RL C
L24718  JR C,L24751
        LD A,127
        LD B,E
        DJNZ L24802
L24725  DJNZ L24760
        LD B,A
        SBC A,A
L24729  SLA C
        JR NZ,L24737
        LD C,(HL)
        INC L
        CALL Z,LOAD_NX
        RL C
L24737  RLA 
        DEC A
        INC B
        JR NZ,L24729
        CP #E1
        JR NZ,L24748
        LD A,(HL)
        INC L
        CALL Z,LOAD_NX
L24748  EXX 
        LD H,A
        EXX 
L24751  LD A,(HL)
        INC L
        CALL Z,LOAD_NX
L24753  EXX 
        LD L,A
        ADD HL,DE
        CALL DOBROS
        JR L24658

L24760  ADD A,6
        RLA 
        LD B,A
L24764  LD A,(HL)
        INC L
        CALL Z,LOAD_NX
        EXX 
        LD (DE),A
        INC E
        CALL Z,ADD_DE
        EXX 
        DJNZ L24764
        JP L24659
L24774  SLA C
        JR NZ,L24782
        LD C,(HL)
        INC L
        CALL Z,LOAD_NX
        RL C
L24782  LD A,D
        JR NC,L24802
        LD A,(HL)
        INC L
        CALL Z,LOAD_NX
        CP D
        JR NC,L24699
        OR A
        JR Z,L24817
        EXX 
        LD B,A
        EXX 
        LD A,(HL)
        INC L
        CALL Z,LOAD_NX
        JR L24701
L24800  LD A,63
L24802  SLA C
        JR NZ,L24810
        LD C,(HL)
        INC L
        CALL Z,LOAD_NX
        RL C
L24810  RLA 
        JR NC,L24802
        DJNZ L24725
        JR L24753
L24817  EXX 
        POP HL
        CALL IDE_HL
        POP HL
        CALL IDE_HL
        POP HL
        CALL IDE_HL
        EX DE,HL
        JP tsh_2

IDE_HL  LD A,L
        LD (DE),A
        INC E
        CALL Z,ADD_DE
        LD A,H
        LD (DE),A
        INC E
        RET NZ
ADD_DE  INC D
        RET NZ
        PUSH AF
        LD A,(imgyet+1)
        INC A
        CALL IMGBANK
        LD DE,#C000
        POP AF
        RET 

DOBROS  LD A,H
        CP #C0
        LD A,(imgyet+1)
        LD (bank_de+1),A
        JR NC,dob_1
        SET 7,H
        SET 6,H
        DEC A
dob_1   LD (bank_hl+1),A

bank_hl LD A,0
        CALL IMGBANK
        LD A,(HL)
        INC L
        JR NZ,bhl_1
        INC H
        JR NZ,bhl_1
        LD HL,bank_hl+1
        INC (HL)
        LD HL,#C000
bhl_1   PUSH AF
bank_de LD A,0
        CALL IMGBANK
        POP AF
        LD (DE),A
        INC E
        CALL Z,ADD_DE
        LD A,(imgyet+1)
        LD (bank_de+1),A
        DEC BC
        LD A,B
        OR C
        JR NZ,bank_hl
        RET 

;  
TXT_SHW
        CALL CLS
        CALL LOADALL
        LD A,(IX+11)
        LD L,A
        AND A
        JR Z,tsh_1
        DEC H
tsh_1   LD A,H
        AND A
        JR NZ,tsh_2
        LD A,(imgyet+1)
        INC A
        CALL IMGBANK
tsh_2   LD (HL),10
        INC L
        JR NZ,tsh_3
        INC H
        JR NZ,tsh_3
        LD A,(imgyet+1)
        INC A
        CALL IMGBANK
tsh_3   LD (HL),0

        LD DE,#C000
        LD HL,0
        LD C,0

tsh_3W  LD A,C
        CALL IMGBANK
tsh_3Y  LD A,(DE)
        INC E
        JR NZ,tsh_3Y2
        INC D
        JR NZ,tsh_3Y2
        INC C
        LD DE,#C000
        EXA 
        LD A,C
        CALL IMGBANK
        EXA 
tsh_3Y2 AND A
        JR Z,tsh_3E
        CP 13
        JR NZ,tsh_3Y
        INC HL
        JR tsh_3Y

tsh_3E  LD (T_lins),HL
        LD A,D
        AND #3F
        LD D,A
        LD A,C
        RRCA 
        RRCA 
        AND #C0
        OR D
        LD D,A
        LD (GFX_ofs+1),DE
        LD DE,23
        SBC HL,DE
        JR C,tsh_3F
        INC HL
tsh_3F  ADD HL,HL
        ADD HL,HL
        LD B,H
        LD C,L
        LD DE,#BF00
        XOR A
        LD HL,0
tsh_3F1 EX DE,HL
        LD (HL),D
        INC L
        LD (HL),A
        INC L
        EX DE,HL
        ADD HL,BC
        ADC A,0
        BIT 7,E
        JR Z,tsh_3F1

        LD HL,0
        LD (UPL_nr),HL

tsh_3A  XOR A
        LD HL,#C000
        LD (rpr_2+1),A
        LD (up_bank+1),A
        LD (up_addr+1),HL
        CALL PRN_PGE
        LD (dn_bank),A
        LD (dn_addr),HL
        LD HL,#0101
        LD (23561),HL

        LD HL,TShwTab
        JP INKEYS

dn_bank DB 0
dn_addr DW 0

T_lins  DW 0            ;   

TShwTab
        DBW 13,0
        DBW "Q",TXT_UP
        DBW 11,TXT_UP
        DBW "A",TXT_DN
        DBW 10,TXT_DN

        DBW "P",PAGEDN
        DBW 9,PAGEDN
        DBW "O",PAGEUP
        DBW 8,PAGEUP

        DBW "8",TXT_M1
        DBW "9",TXT_M2
        DBW "0",TXT_M3

        DBW "1",CHADCOL
        DBW "2",CHADCOL
        DBW "3",CHADCOL
        DBW "4",CHADCOL
        DBW "5",CHADCOL
        DBW "6",CHADCOL
        DBW "7",CHADCOL
        DB 0

CHADCOL LD A,C
        SUB "0"
        LD (dncol+1),A
        JP PRLIN

TXT_M1  XOR A
        JR txt_m
TXT_M2  LD A,1
        JR txt_m
TXT_M3  LD A,2
txt_m   LD (rpr_2+1),A
        JP PRN_PGE

PAGEUP  LD B,22
pup_1   PUSH BC
        CALL TXT_UP
        POP BC
        DJNZ pup_1
        RET 

PAGEDN  LD B,22
pdn_1   PUSH BC
        CALL TXT_DN
        POP BC
        DJNZ pdn_1
        RET 

TXT_UP  LD HL,(up_addr+1)
        LD A,(up_bank+1)
        CALL PRV_LIN
        RET C
        LD (up_addr+1),HL
        LD (up_bank+1),A
        LD HL,(dn_addr)
        LD A,(dn_bank)
        CALL PRV_LIN
        LD (dn_addr),HL
        LD (dn_bank),A
        CALL SCRL_DN
        LD A,#C9
        LD (rpr_D),A
        CALL PRLIN
        XOR A
        LD (rpr_D),A
        LD HL,(UPL_nr)
        DEC HL
        LD (UPL_nr),HL
        JP SCBAR

TXT_DN  LD HL,(dn_addr)
        LD A,(dn_bank)
        CALL IMGBANK
        LD A,(HL)
        AND A
        RET Z
        LD HL,(up_addr+1)
        LD A,(up_bank+1)
        CALL NXT_LIN
        LD (up_addr+1),HL
        LD (up_bank+1),A
        CALL SCRL_UP
        LD A,#C9
        LD (rpr_D),A
        LD HL,(dn_addr)
        LD A,(dn_bank)
        LD DE,#50C0
        CALL rpr_ZX
        XOR A
        LD (rpr_D),A
imgyet  LD A,0
        LD (dn_addr),HL
        LD (dn_bank),A
        LD HL,(UPL_nr)
        INC HL
        LD (UPL_nr),HL
        JP SCBAR

PRV_LIN LD C,A
        CALL IMGBANK
        LD A,(HL)
        AND A
        CALL NZ,FIND_13
        RET C
        CALL FIND_13
        INC HL
        LD A,H
        AND A
        LD A,C
        RET NZ
        INC A
        LD HL,#C000
        RET 

FIND_13 DEC HL
        LD A,H
        CP #C0
        JR NC,plin_2
        LD A,C
        SUB 1
        RET C
        LD C,A
        CALL IMGBANK
        LD H,#FF
plin_2  LD A,(HL)
        CP 13
        JR NZ,FIND_13
plin_3  LD A,C
        RET 

NXT_LIN LD C,A
        CALL IMGBANK
nlin_1  LD A,(HL)
        LD B,A
        AND A
        SCF 
        RET Z
        INC L
        JR NZ,nlin_2
        INC H
        JR NZ,nlin_2
        LD A,C
        INC A
        AND 3
        LD C,A
        CALL IMGBANK
        LD H,#C0
nlin_2  LD A,B
        CP 13
        JR NZ,nlin_1
        LD A,C
        AND A
        RET 

SCRL_UP
        LD HL,#5840
        LD DE,#5820
        EXX 
        LD HL,#4040
        LD DE,#4020
        LD B,21
scup_1  LD C,255
        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
        LD A,H
        AND 7
        JP NZ,scup_1
        LD A,L
        ADD A,32
        LD L,A
        JR C,scup_2
        LD A,H
        SUB 8
        LD H,A
scup_2  LD A,E
        ADD A,32
        LD E,A
        JR C,scup_3
        LD A,D
        SUB 8
        LD D,A
scup_3  EXX 
        DUP 32
        LDI 
        EDUP 
        EXX 
        DEC B
        JP NZ,scup_1
        LD HL,#50C0
FILER   LD C,8
fila_2  LD B,32
        LD A,L
fila_1  LD (HL),0
        INC L
        DJNZ fila_1
        LD L,A
        INC H
        DEC C
        JR NZ,fila_2
        RET 

SCRL_DN
        LD HL,#5ABF
        LD DE,#5ADF
        EXX 
        LD HL,#57A0
        LD DE,#57C0
        LD B,21
scdn_1  LD C,255
        DUP 31
        LDI 
        EDUP 
        LD A,(HL)
        LD (DE),A
        DEC H
        DEC D
        DUP 31
        LDD 
        EDUP 
        LD A,(HL)
        LD (DE),A
        LD A,H
        DEC H
        DEC D
        AND 7
        JP NZ,scdn_1
        LD A,L
        SUB 32
        LD L,A
        JR C,scdn_2
        LD A,H
        ADD A,8
        LD H,A
scdn_2  LD A,E
        SUB 32
        LD E,A
        JR C,scdn_3
        LD A,D
        ADD A,8
        LD D,A
scdn_3  EXX 
        DUP 32
        LDD 
        EDUP 
        EXX 
        DEC B
        JP NZ,scdn_1
        LD HL,#4020
        JP FILER

TXTSKIN LD HL,#4500
        LD BC,#20FF
        CALL HLINE
        LD HL,#5800
        LD BC,#2002
        CALL HLINE
        LD HL,#52E0
        LD BC,#20FF
        CALL HLINE
        LD HL,#5AE0
        LD BC,#2002
        CALL HLINE
        LD HL,#4301
        LD DE,LF_box
        CALL SCBOX
        LD HL,#430A
        LD DE,RG_box
        CALL SCBOX
        JP SCBAR

PRN_PGE CALL TXTSKIN
PRLIN   LD DE,#4020
up_addr LD HL,0
up_bank LD A,0
rpr_ZX  CALL IMGBANK
rpr_0
        LD A,#A7
        LD (PRINT),A
        LD A,#F0
        LD (fntmask+1),A
        CPL 
        LD (scrmask+1),A
        LD A,#A7
        LD (colflag),A
        LD A,(dncol+1)
        LD (color+1),A
        LD A,(rpr_2+1)
        AND A
        CALL Z,DEFCOL

        PUSH DE
rpr_1   LD A,(HL)
        AND A
        JP Z,rpr_EX
        LD B,A
        INC L
        JR NZ,rpr_2X
        INC H
        JR NZ,rpr_2X
        LD A,(imgyet+1)
        INC A
        AND 3
        CALL IMGBANK
        LD HL,#C000

rpr_2X  LD A,B
        CP 13
        JP Z,rpr_DX
        CP 10
        JR Z,rpr_1
        CP 255
        JR Z,rpr_GFX

rpr_2   LD A,0
        DEC A
        JR Z,rpr_M1
        DEC A
        JR Z,rpr_M2

rpr_M3  LD A,B
        CALL SETCOL
        JR NC,rpr_1
rpr_M1  LD A,B
rpr_M1A CALL PRINT
        JR rpr_1

rpr_M2  LD A,B
        CP 32
        CALL NC,PRINT
        JR rpr_1

rpr_GFX LD A,(HL)
        INC L
        JR NZ,rpg_1
        INC H
        JR NZ,rpg_1
        EXA 
        LD A,(imgyet+1)
        INC A
        CALL IMGBANK
        EXA 
rpg_1   CP 128
        JR C,rpr_M1A
col_FLG AND A
        JR C,rpr_M1A
        AND 127
        EXA 
        LD A,(imgyet+1)
        PUSH AF
        EXA 
        PUSH HL
        PUSH DE
GFX_ofs LD HL,0
        LD DE,#120
        CALL ADDING
        LD A,H
        RLCA 
        RLCA 
        AND 3
        CALL IMGBANK
        LD A,H
        OR #C0
        LD H,A
        POP DE
        PUSH DE
        LD A,E
        AND #E0
        EXA 
inaz_1  EXA 
        LD E,A
        EXA 
        LD BC,#20FF
inaz_2  LDI 
        LD A,H
        OR L
        JR NZ,inaz_3
        LD A,(imgyet+1)
        INC A
        CALL IMGBANK
        LD HL,#C000
inaz_3  DJNZ inaz_2
        DEC DE
        INC D
        LD A,D
        AND 7
        JR NZ,inaz_1
        LD A,D
        DEC A
        RRA 
        RRA 
        RRA 
        AND 3
        OR #58
        LD D,A
        EXA 
        LD E,A
        LD BC,#20FF
inaz_4  LDI 
        LD A,H
        OR L
        JR NZ,inaz_5
        LD A,(imgyet+1)
        INC A
        CALL IMGBANK
        LD HL,#C000
inaz_5  DJNZ inaz_4
        POP DE
        POP HL
        POP AF
        CALL IMGBANK
        LD A,#37
        LD (PRINT),A
        JP rpr_1

rpr_DX  CALL PRINTS
        LD A,(PRINT)
        CP #37
        JR NZ,rpr_DX
        POP DE
rpr_D   NOP 
        LD A,E
        ADD A,32
        LD E,A
        JR NC,rd_0
        LD A,D
        ADD A,8
        LD D,A
rd_0    LD A,E
        CP #E0
        JP NZ,rpr_0
        LD A,D
        CP #50
        JP NZ,rpr_0
        PUSH DE

rpr_EX  LD A,#37
        LD (colflag),A
        CALL PRINTS
        LD A,(imgyet+1)
        POP DE
        RET 

SETCOL  AND A
        SCF 
        RET Z
        CP 8
        JR C,scol_Y
        JR Z,dncol
        SUB 13
        SCF 
        RET Z
        CP 8
        CCF 
        RET C
        OR #40
        JR scol_Y
dncol   LD A,5
scol_Y  PUSH AF
        CALL PRINTS
        POP AF
        LD (color+1),A
        AND A
        RET 

DEFCOL  LD A,(imgyet+1)
        PUSH AF
        PUSH HL
        CALL NXT_LIN
        DEC HL
        JR C,dcol_1
        DEC HL
dcol_1  LD A,H
        CP #C0
        LD A,C
        DEC A
        CALL C,IMGBANK
        LD A,(HL)
        DEC A
        CP 7
        JR C,dcol_1A
        SUB 13
        CP 7
        JR NC,dcol_2
        OR #40
dcol_1A INC A
        LD (color+1),A
dcol_2  POP HL
        POP AF
        JP IMGBANK

SCBOX   LD B,5
scbx_1  LD A,(DE)
        LD (HL),A
        INC DE
        INC H
        DJNZ scbx_1
        RET 

LF_box  DB #02,#02,#FE,#02,#02
RG_box  DB #40,#40,#7F,#40,#40

SCBAR
        LD HL,#BF00
        LD BC,0
UPL_nr  EQU $-2
        XOR A

scba_1  LD E,(HL)
        INC HL
        LD D,(HL)
        INC HL
        EX DE,HL
        AND A
        SBC HL,BC
        EX DE,HL
        JR NC,setbar
        INC A
        CP 64
        JR C,scba_1

setbar  LD HL,#4402
        PUSH AF
sba_1   SUB 8
        JR C,sba_2
        LD (HL),255
        INC L
        JR sba_1
sba_2   ADD A,8
        JR Z,sba_3A
        LD (HL),0
sba_3   SCF 
        RR (HL)
        DEC A
        JR NZ,sba_3
        INC L
sba_3A  LD A,L
        CP 10
        JR Z,sba_3B
        LD (HL),0
sba_3B  POP DE
        LD A,64
        SUB D
sba_4   SUB 8
        JR C,sba_5
        JR NC,sba_5
        LD (HL),0
        INC L
        JR sba_4
sba_5   LD DE,#4502
        CALL COPYBAR
        LD DE,#4602
COPYBAR LD HL,#4402
        LD BC,8
        LDIR 
        RET 

;  *.888
T8T_SHW
        LD HL,#5800
        LD DE,#5801
        LD BC,767
        LD (HL),L
        LDIR 

        LD A,1
        CALL BANK
        LD HL,#B800
        LD B,(IX+13)
        LD E,(IX+14)
        LD D,(IX+15)
        CALL LOAD
        CALL DEPACK
        XOR A
        CALL BANK
        LD HL,#4000
        LD DE,#B800
        LD BC,#1800
        LDIR 
        XOR A
        LD (rgb_C1+1),A
        JP rgbsh_X

        INCLUDE "888depak",12

;  PT3 
PT3PLAY
        CALL NOKEY
        XOR A
        CALL BANK
        LD HL,#C000
        LD B,(IX+13)
        CALL FLOAD
        LD DE,PT3head
        CALL PLAYTST
        JR Z,muz_Y
        LD DE,VTXhead
        CALL PLAYTST
        RET NZ
muz_Y   LD HL,#4803
        LD BC,#1C18
        LD A,15
        CALL WINDOW
        LD A,(#C063)
        LD C,A
        LD B,0
        LD HL,FRQtabz
        ADD HL,BC
        ADD HL,BC
        LD A,(HL)
        INC HL
        LD H,(HL)
        LD L,A
        LD DE,PT3addr+#200
        LD BC,192
        LDIR 
        LD A,15
        LD (color+1),A
        LD HL,PLAYtxt
        CALL STRING
        LD DE,#482B
        LD HL,#C01E
        LD B,32
        CALL B_PRN
        LD DE,#484B
        LD HL,#C042
        LD B,32
        CALL B_PRN
        LD HL,#5924
        LD (HL),2
        INC L
        LD (HL),4
        INC L
        LD (HL),5
        LD HL,#5944
        LD (HL),2
        INC L
        LD (HL),4
        INC L
        LD (HL),5
PT3init LD HL,#C000
        CALL PT3addr+3
        EI 
pt3_1   HALT 
        CALL PT3addr+5
        CALL BARS
        LD A,#DF
        IN A,(#FE)
        RRA 
        JR NC,PT3pauz
        LD A,#FD
        IN A,(#FE)
        AND 8
        JR Z,PT3fast
        LD A,#7F
        IN A,(254)
        AND 16
        JR Z,PT3init
        LD A,#BF
        IN A,(#FE)
        RRA 
        JR C,pt3_1
        JP PT3addr+8
PT3fast
        CALL PT3addr+5
        CALL BARS
        JR pt3_1
PT3pauz CALL PT3addr+8
        CALL NOKEY
        CALL WAITKEY
        CALL NOKEY
        JR pt3_1

BARS    LD HL,#4824
        LD A,8
        CALL SETBAR
        LD HL,#4825
        LD A,9
        CALL SETBAR
        LD HL,#4826
        LD A,10
SETBAR  LD BC,#FFFD
        OUT (C),A
        IN A,(C)
        LD B,16
        AND 15
set_X   CP B
        JR C,set_0
        LD (HL),#3C
        JR set_1
set_0   LD (HL),0
set_1   LD C,A
        INC H
        LD A,H
        AND 7
        JR NZ,set_2
        LD H,#48
        LD A,L
        ADD A,32
        LD L,A
set_2   LD A,C
        DJNZ set_X
        RET 

PLAYtxt DB 1,#27,#48,"...."
        DB 1,#47,#48,"..."
        DB 0

PLAYTST LD HL,#C000
ptst_2  LD A,(DE)
        AND A
        RET Z
        CP 1
        JR Z,ptst_1
        CP (HL)
        RET NZ
ptst_1  INC DE
        INC HL
        JR ptst_2

WINDOW  LD (LINE_AT+1),A
        PUSH HL
        PUSH BC
        CALL LINE_00
        CALL LINE_FF
win_1   CALL LINE_CN
        DJNZ win_1
        CALL LINE_FF
        CALL LINE_00
        POP BC
        LD A,B
        ADD A,4
        RRCA 
        RRCA 
        RRCA 
        AND 31
        LD B,A
        POP HL
        LD A,H
        RRA 
        RRA 
        RRA 
        AND 3
        OR #58
        LD H,A
win_2   CALL LINE_AT
        DJNZ win_2
        RET 

LINE_AT LD A,5
        LD D,A
        LD E,A
        CALL LINE
        LD DE,32
        ADD HL,DE
        RET 

LINE_CN LD DE,#4002
        XOR A
        JR line
LINE_FF LD DE,#7FFE
        LD A,#FF
        JR line
LINE_00 XOR A
        LD D,A
        LD E,A
line    CALL LINE
        JP NEXT_HL

LINE    PUSH HL
        LD (HL),D
        INC L
        LD D,C
lin_1   LD (HL),A
        INC L
        DEC D
        JR NZ,lin_1
        LD (HL),E
        POP HL
        RET 

PT3head DB "ProTracker 3.",1," compilation of",0
VTXhead DB "Vortex Tracker II 1.",1," module:",0

FRQtabz DW PT_Tab,ST_Tab,ASM_Tab,RealTab

;   VIDEOSTUDIO
VSP_SHW
        XOR A
        CALL IMGBANK
        LD HL,VSP_MEM
        CALL SETDRIVER
        LD HL,#C000
        LD B,1
        CALL FLOAD
        LD HL,#C051
        LD DE,vsplens
        LD (DWN_VSP+1),DE
        LD BC,#100-#51
        LDIR 
        XOR A
        LD (DE),A
        CALL CLS
        LD A,(#C002)
        CP 1
        CALL Z,SKIP_FP
        CP 6
        LD A,7
        JR C,vsh_1
        LD A,(#C00F)
vsh_1   LD HL,#5800
        LD DE,#5801
        LD BC,767
        LD (HL),A
        LDIR 
        CALL DWN_VSP
vsplay  CALL PLAY
        RET C
        CALL WAITKEY
        JP NOKEY

SKIP_FP PUSH AF
        LD HL,#F800
        LD B,8
        CALL DLOAD
        POP AF
        RET 

VSP_MEM CP 7
        JR C,VSPBANK
        PUSH DE
        PUSH HL
        CALL DWN_VSP
        POP HL
        POP DE
        XOR A
        LD (CURPAG),A
        JR VSPBANK
VSPAGE  PUSH BC
VSPBANK LD BC,VspRams
        JP vspage

DWN_VSP LD DE,vsplens
        XOR A
        CALL VSPLOAD
        LD A,1
        CALL VSPLOAD
        LD A,3
        CALL VSPLOAD
        LD A,4
        CALL VSPLOAD
        LD A,6
        CALL VSPLOAD
        LD (DWN_VSP+1),DE
        RET 

VSPLOAD CALL VSPAGE
        LD A,(DE)
        AND A
        RET Z
        LD B,A
        INC DE
        PUSH DE
        LD HL,#C000
        CALL DLOAD
        POP DE
        RET 

;       INCLUDE "VSPLAY",10
        INCLUDE "PLAYER1",10

;  
ANI_SHW
        CALL CLS
        CALL LOADALL
        CALL NOKEY
        XOR A
        CALL IMGBANK

        LD HL,IMGBANK
        CALL HIMEM

        LD HL,#C000
        LD DE,#4000
        CALL INITANI
ash_1   HALT 
        CALL FDELAY
        CALL PLAYANI
        XOR A
        IN A,(254)
        CPL 
        AND 31
        JR Z,ash_1
        RET 

        INCLUDE "ANIPLAY3",11

;  IMAGE
IMG_SHW
        CALL LOADALL
ish_4   XOR A
        CALL IMGBANK
        LD HL,(#C008)
        LD (image_X+1),HL
        LD HL,(#C00A)
        LD (image_Y+1),HL
        CALL CLS
        LD HL,0
        LD (X_vimg+1),HL
shimg_1 LD (Y_vimg+1),HL
        CALL DRAWIMG
shimg_2 CALL INPUTJ
        BIT 4,C
        RET NZ
        LD A,C
        AND 15
        JR Z,shimg_2
X_vimg  LD HL,0
        RR C
        CALL C,img_R
        RR C
        CALL C,img_L
        LD (X_vimg+1),HL
Y_vimg  LD HL,0
        RR C
        CALL C,img_D
        RR C
        CALL C,img_U
        JR shimg_1

img_L   LD A,H
        OR L
        RET Z
        DEC HL
        RET 

img_R   PUSH HL
        LD DE,32
        ADD HL,DE
image_X LD DE,0
        AND A
        SBC HL,DE
        POP HL
        RET NC
        INC HL
        RET 

img_U   LD DE,8
        AND A
        SBC HL,DE
        RET NC
        ADD HL,DE
        RET 

img_D   PUSH HL
        LD DE,192
        ADD HL,DE
image_Y LD DE,0
        AND A
        SBC HL,DE
        POP HL
        RET NC
        LD DE,8
        ADD HL,DE
        RET 

DRAWIMG
        LD HL,(image_Y+1)
        LD A,H
        OR L
        RET Z
        LD DE,(Y_vimg+1)
        AND A
        SBC HL,DE
        LD DE,192
        CALL GET_MIN
        LD A,L
        LD (Y_dimg+1),A
        LD HL,(image_X+1)
        LD DE,(X_vimg+1)
        AND A
        SBC HL,DE
        LD DE,32
        CALL GET_MIN
        LD A,L
        LD (X_dimg+1),A

        LD HL,(X_vimg+1)
        LD DE,12
        ADD HL,DE
        LD DE,(Y_vimg+1)
        LD A,(image_X+1)
        CALL ADDING
        LD A,H
        RLCA 
        RLCA 
        AND 3
        LD C,A
        CALL IMGBANK
        LD A,H
        OR #C0
        LD H,A
        LD DE,#4000

Y_dimg  LD B,192
dimg_1  PUSH BC
        PUSH HL
        PUSH DE
X_dimg  LD B,32
dimg_2  LD A,(HL)
        LD (DE),A
        INC E
        INC HL
        LD A,H
        OR L
        JR NZ,dimg_3
        LD A,C
        INC A
        AND 3
        LD C,A
        CALL IMGBANK
        LD HL,#C000
dimg_3  DJNZ dimg_2
        POP HL
        CALL NEXT_HL
        EX DE,HL
        POP BC
        LD HL,(image_X+1)
        ADD HL,BC
        POP BC
        LD A,H
        CP #C0
        JR NC,dimg_4
        LD A,H
        OR #C0
        LD H,A
        LD A,C
        INC A
        AND 3
        LD C,A
        CALL IMGBANK
dimg_4  DJNZ dimg_1
        RET 

;  #1800  #1B00
BWS_SHW
        LD HL,#C000
        LD B,#18
        CALL FLOAD
        LD HL,#D800
        LD DE,#D801
        LD BC,767
        LD (HL),7
        LDIR 
        LD A,#37
        JR scrsh_1
SCR_SHW
        LD HL,#C000
        LD B,#1B
        CALL FLOAD
        LD A,#A7
scrsh_1
        LD (scr_F),A
        LD HL,#C000
        LD DE,#4000
        LD BC,#1B00
        LDIR 
        CALL NOKEY
scrsh_2 CALL WAITKEY
        CP "I"
        JR Z,scr_I
scr_F   SCF 
        JR NC,scrsh_3
        CP "1"
        JR C,scrsh_3
        CP "8"
        JR NC,scrsh_3
        SUB "1"-1
        LD HL,#5800
        LD DE,#5801
        LD BC,767
        LD (HL),A
        LDIR 
        CALL NOKEY
        JR scrsh_2
scrsh_3 CP 32
        RET Z
        CP 13
        JR NZ,scrsh_2
        RET 
scr_I   LD HL,#4000
si_1    LD A,(HL)
        CPL 
        LD (HL),A
        INC HL
        LD A,H
        CP #58
        JR C,si_1
        CALL NOKEY
        JR scrsh_2

; 
MCX_SHW
        LD BC,#7FFD
        LD A,#17
        OUT (C),A
        LD HL,#C000
        LD B,#1B
        CALL FLOAD
        LD BC,#7FFD
        LD A,#10
        OUT (C),A
        LD HL,#C000
        LD B,#1B
        CALL DLOAD
        CALL NOKEY
        LD HL,#C000
        LD DE,#4000
        LD BC,#1B00
        LDIR 
        LD BC,#7FFD
        LD DE,#1018

mcxn_0  LD A,(FDELAY)
        CP #37
        JR Z,mcxsh_1

mcxn_1  LD E,#C0
        HALT 
mcxn_2  OUT (C),D
        IN A,(#FF)
        INC A
        JR Z,mcxn_2
mcxn_3  IN A,(#FF)
        INC A
        JR NZ,mcxn_3
        LD A,D
        XOR 8
        LD D,A
        DEC E
        JR NZ,mcxn_2
        XOR 8
        LD D,A

        LD A,#F7
        IN A,(254)
        RRA 
        JR NC,mcxsh_X

        LD A,#BF
        IN A,(254)
        RRA 
        JR C,mcxn_1
        RET 

mcxsh_X LD DE,#1018
mcxsh_1 OUT (C),E
        HALT 
        OUT (C),D
        HALT 

        LD A,#F7
        IN A,(254)
        RRA 
        RRA 
        JR NC,mcxn_0

        LD A,#7F
        IN A,(254)
        RRA 
        RET NC

        LD A,#BF
        IN A,(254)
        RRA 
        JR C,mcxsh_1
        RET 

; 
RGB_SHW
        XOR A
        LD (rgb_C1+1),A
        LD HL,#5800
        LD DE,#5801
        LD BC,#3FF
        LD (HL),L
        LDIR 
        LD A,#10
        CALL BANK
        LD HL,#B800
        LD B,#48
        CALL FLOAD
rgbsh_X CALL NOKEY
        LD A,#10
        CALL BANK

        LD A,(EXTFLAG)
        AND A
        JR Z,rgbs_X

        CALL DROPVID
rgbe_X  LD A,"R"
rgbe_Y  LD (rgbe_R+1),A
rgbe_1  CALL NOKEY
        CALL WAITKEY
        CP "8"
        JR Z,rgbe_R
        CP "9"
        JR Z,rgbe_B
        CP 32
        JR Z,rgbe_E
        CP 13
        JR NZ,rgbe_1
rgbe_E  CALL NOKEY
        JP rgbs_E
rgbe_R  LD A,0
        CP "R"
        CALL NZ,SET_RGB
        JR rgbe_X
rgbe_B  LD A,(rgbe_R+1)
        CP "B"
        CALL NZ,SET_BRG
        LD A,"B"
        JR rgbe_Y

rgbs_X  LD HL,#5800
        LD DE,#5801
        LD BC,767
        LD (HL),L
        LDIR 
        LD HL,#E800
        LD DE,#4000
        LD BC,#1800
        LDIR 
        LD BC,#7FFD
        LD A,#17
        OUT (C),A
        LD HL,#4000
        LD DE,#C000
        LD BC,#1800
        LDIR 

rgbsh_Z LD L,1
        LD BC,#0204
        JR rgbsh_0
rgbsh_M LD B,L
        LD C,L
rgbsh_0 LD A,(rgb_C1+1)
        CP B
        JR NZ,rgbsh_P
        LD A,(rgb_C2+1)
        CP C
        JR Z,rgbsh_1
rgbsh_P LD A,B
        LD (rgb_C1+1),A
        LD A,C
        LD (rgb_C2+1),A
        LD BC,#7FFD
        LD A,#17
        OUT (C),A
        LD A,L
        LD HL,#D800
        LD DE,#D801
        LD BC,767
        LD (HL),A
        LDIR 
        LD BC,#7FFD
        LD A,#10
        OUT (C),A
rgbsh_1
        LD HL,#B800             ; R (B)
        LD DE,#4000
rgb_C1  LD A,2
        CALL DROPSCR
        LD HL,#D000             ; G (R)
        LD DE,#4000
rgb_C2  LD A,4
        CALL DROPSCR
        HALT 
        LD BC,#7FFD
        LD A,#18
        OUT (C),A

        LD A,#F7
        IN A,(254)
        LD B,5
        LD L,1
rgb_1   RRA 
        JR NC,rgbsh_M
        INC L
        DJNZ rgb_1
        LD A,#EF
        IN A,(254)
        RLA 
        RLA 
        RLA 
        RLA 
        JR NC,rgbsh_M
        INC L
        RLA 
        JR NC,rgbsh_M
        RLA 
        JR NC,rgbsh_Z
        LD L,4
        LD BC,#0102
        RLA 
        JR NC,rgbsh_0

        LD A,#BF
        IN A,(254)
        RRA 
        JR NC,rgbs_E
        LD A,#7F
        IN A,(254)
        RRA 
        JR C,rgbsh_1
rgbs_E  XOR A
        OUT (#DF),A
        CALL ATM_OFF
        JP PAL_ATM
DROPVID
        CALL CLS_ATM
        XOR A
        CALL BANK
        LD A,%0101      ; R
        OUT (#DF),A
        LD HL,#B800
        LD DE,#4000
        LD BC,#1800
        LDIR 
        LD DE,#0210
        CALL GET_ATM
        LD A,%0110      ; G
        OUT (#DF),A
        LD HL,#D000
        LD DE,#4000
        LD BC,#1800
        LDIR 
        LD DE,#0420
        CALL GET_ATM
        LD A,%0100      ; B
        OUT (#DF),A
        LD HL,#E800
        LD DE,#4000
        LD BC,#1800
        LDIR 
        LD DE,#0108
        CALL GET_ATM
        LD A,%0111      ; I
        OUT (#DF),A
        LD HL,#4000
        LD DE,#4001
        LD BC,#17FF
        LD (HL),L
        LDIR 
        LD A,(ATMFLAG)
        AND A
        JP NZ,ATM_ON
        LD A,%1000
        OUT (#DF),A
        RET 

DROPSCR
        EXX 
        LD D,A
        LD E,A
        LD HL,#5820
        LD BC,32
        EXX 

        LD A,#40
        SUB H
        LD (add_on+1),A
        LD (old_sp+1),SP

        EI 
        HALT 
        LD BC,#7FFD
        LD A,#10
        OUT (C),A
        CALL FDELAY

        DI 
dscr_1  LD A,H
        EXA 
        LD A,E
        DUP 7
        DUP 32
        LDI 
        EDUP 
        DEC DE
        DEC HL
        LD E,A
        LD L,A
        INC H
        INC D
        EDUP 
        DUP 32
        LDI 
        EDUP 
        ADD A,32
        LD E,A
        LD L,A
        JR C,dscr_2
        EXA 
        LD H,A
add_on  ADD A,0
        LD D,A
dscr_2
        EXX 
        LD SP,HL
        DUP 16
        PUSH DE
        EDUP 
        ADD HL,BC
        EXX 

        LD A,D
        CP #58
        JP C,dscr_1

old_sp  LD SP,0
        EI 
        RET 

