; my own 888 depacker

DEPACK  LD HL,0
        LD D,1                  ; C,D,E : R,G,B
        EXX 
        LD HL,#B800
        LD C,#80
BOXER   CALL POP3BIT
        JR Z,COL8
        DEC A
        CALL NZ,PALETE
        LD B,64
colnumz LD A,0
        DEC A
        JP Z,COL1
        DEC A
        JR Z,COL2
        DEC A
        JR Z,COL3
        DEC A
        JR Z,COL4
        DEC A
        JR Z,COL5

COL6    SLA C
        CALL Z,CHL
        JR C,col6_1
        SLA C
        CALL Z,CHL
        LD A,0
        ADC A,0
        JR col6_2
col6_1  CALL POP2BIT
        ADD A,2
col6_2  CALL PUTCOL
        DJNZ COL6
        JP NEXTBOX

COL5    CALL POP2BIT
        CP 3
        JR C,col5_1
        SLA C
        CALL Z,CHL
        LD A,3
        ADC A,0
col5_1  CALL PUTCOL
        DJNZ COL5
        JR NEXTBOX

COL4    CALL POP2BIT
        CALL PUTCOL
        DJNZ COL4
        JR NEXTBOX

COL3    SLA C
        CALL Z,CHL
        LD A,0
        JR NC,col3_1
        SLA C
        CALL Z,CHL
        ADC A,1
col3_1  CALL PUTCOL
        DJNZ COL3
        JR NEXTBOX

COL2    SLA C
        CALL Z,CHL
        LD A,0
        ADC A,0
        CALL PUTCOL
        DJNZ COL2
        JR NEXTBOX

COL8    PUSH BC
        LD DE,col8buf
        LD BC,24
        LDIR 
        LD BC,#7FFD
        LD A,#10
        OUT (C),A
        POP BC

        EXX 
        LD DE,col8buf
        LD A,#40
        CALL PUTBOX
        LD A,#88
        CALL PUTBOX
        LD A,#10
        CALL PUTBOX

        LD BC,#7FFD
        LD A,#11
        OUT (C),A

        LD A,H
        SUB #E8
        LD D,1
        JR NXB

COL1    XOR A
        CALL PUTCOL
        DJNZ COL1
NEXTBOX EXX 
        LD A,H
NXB     INC L
        JR Z,nbox_1
        SUB 8
nbox_1  LD H,A
        EXX 
        CP #18
        JP C,BOXER
        RET 

PUTBOX  PUSH DE
        ADD A,H
        LD H,A
        LD B,8
pbox_1  LD A,(DE)
        LD (HL),A
        INC DE
        INC DE
        INC DE
        INC H
        DJNZ pbox_1
        POP DE
        INC DE
        RET 

col8buf DS 24

PUTCOL  LD E,A
        LD D,#5B
        LD A,(DE)
        EXX 
        RRA 
        RL E
        RRA 
        RL C
        RRA 
        RL D
        JR NC,EXXRET
        LD A,H
        ADD A,#40
        LD H,A
        LD (HL),C
        LD BC,#7FFD
        LD A,#10
        OUT (C),A
        LD A,H
        ADD A,#90
        LD H,A
        LD (HL),D
        ADD A,#18
        LD H,A
        LD (HL),E
        SUB #E7
        LD H,A
        LD BC,#7FFD
        LD A,#11
        OUT (C),A
        LD D,1
EXXRET  EXX 
        RET 

PALETE  LD (colnumz+1),A
        LD E,A
        LD D,#5B
pal_1   CALL POP3BIT
        DEC E
        LD (DE),A
        JR NZ,pal_1
        RET 

POP2BIT LD A,#40
        JR pbit_1
POP3BIT LD A,#20
pbit_1  SLA C
        CALL Z,CHL
        ADC A,A
        JR NC,pbit_1
        RET 

CHL     LD C,(HL)
        INC HL
        RL C
        RET 

