;================
; Screen Compact
;================
;
; image src      : &c000
; datas dest     : &6000
;
; pic length      : word(&a400)+70
; To display pic  : load "filename",&6000 ;
;                   call &6000
;
; http://CPCrulez.fr

org #a100
ld bc,#0000
ld hl,#6040
ld ix,#c000
.la10a
ld a,(ix+#00)
cp (ix+#01)
jr nz,la15a
cp (ix+#02)
jr nz,la15a
cp (ix+#03)
jr nz,la15a
ld (hl),#6e
inc hl
ld (hl),#86
inc hl
ld (hl),a
push hl
ld c,#01
ld (#a400),ix
ld hl,(#a400)
.la12d
inc hl
inc c
push af
ld a,h
and a
jr z,la14f
ld a,c
and a
jr z,la13f
pop af
cp (hl)
jr z,la12d
dec c
jr la142
.la13f
ld c,#ff
pop af
.la142
ld (#a402),hl
pop hl
inc hl
ld (hl),c
inc hl
ld ix,(#a402)
jr la10a
.la14f
dec c
pop af
pop hl
inc hl
ld (hl),c
ld (#a400),hl
jp la19a
.la15a
ld a,(ix+#00)
ld (hl),a
inc ix
inc hl
ld (#a400),ix
push hl
ld hl,(#a400)
ld de,#fffd
sbc hl,de
jr nz,la184
pop hl
ld a,(ix+#00)
ld (hl),a
inc hl
ld a,(ix+#01)
ld (hl),a
inc hl
ld a,(ix+#02)
ld (hl),a
ld (#a400),hl
jr la19a
.la184
pop hl
cp #6e
jp nz,la10a
ld a,(ix+#00)
cp #86
jp nz,la10a
ld a,#46
ld (ix+#00),a
jp la10a
.la19a
ld hl,la1b0
ld de,#6000
ld bc,#003a
ldir
ret
ld a,(hl)
cp #6e
jr z,la1b3
ld (de),a
inc hl
inc de
ld a,d
and a
.la1b0
ld hl,#6040
.la1b3
ld de,#c000
.la1b6
ld a,(hl)
cp #6e
jr z,la1c3
ld (de),a
inc hl
.la1bd
inc de
ld a,d
and a
jr nz,la1b6
ret
.la1c3
inc hl
push af
ld a,(hl)
cp #86
jr z,la1ce
pop af
ld (de),a
jr la1bd
.la1ce
pop af
inc hl
ld a,(hl)
inc hl
ld b,(hl)
.la1d3
ld (de),a
inc de
djnz la1d3
ld a,d
and a
jr z,la1de
inc hl
jr la1b6
.la1de
ret