* Version 2.0
*
* proc for Rip with height 200
* uncompress, this is important
*
* height 200=200*40byte(widght)=8000
* 2x16kb banks for 1 picture
* all Rip = 16kb memory for 200 line
* Rip header
* d'RIP1.0 ',b(0),b(packed=1, unpack=0)
* a(header lenCht),a(widght),a(height+1),
* a(name lenght),d'T:',name,
* how many colors(default=9 in RIP1.0)
* d'CM:',d'123456789'
*
* ASM source: line 144,148 - 8000 for 200line
* or 9520 for 238line
opt 37
org $b000
ad1 equ $2010 ;screen 1
ad2 equ $4010 ;screen 2
pic equ $80
rip equ pic+2
x equ rip+2
y equ x+2
line equ y+2
*--
main ldx <$6000 ;rip adres
ldy >$6000 ;file load to this ...
* ldx $600 ;parametr /adres/
stx pic
* ldy $601
sty pic+1
lda $2c8 ;for dli
sta col1+1
sta col2+1
lda #$22
sta $22f
lda
dl
sta $231
lda #$80
sta $26f
jsr copy
jsr _conv
lda dli
sta $201
lda #$c0
sta $d40e
t jmp t ;loop or exit
dli pha
txa
pha
ldx #100
_d0 lda #$40
sta $d40a
sta $d01b
lda #0
sta $d01a
lda #$80
sta $d40a
sta $d01b
col1 lda #$0
sta $d01a
dex
bpl _d0
lda >ad2
sta adr+1
lda >ad2+$1000
sta adr2+1
lda dli2
sta $201
pla
tax
pla
rti
dli2 pha
txa
pha
ldx #100
_d1 lda #$80
sta $d40a
sta $d01b
col2 lda #$0
sta $d01a
lda #$40
sta $d40a
sta $d01b
lda #0
sta $d01a
dex
bpl _d1
lda >ad1
sta adr+1
lda >ad1+$1000
sta adr2+1
lda dli
sta $201
pla
tax
pla
rti
*- Copy
* Rip data /2 picture/
* to adres ad1, ad2
*-
copy ldy #11 ;header lenght
lda (pic),y
sta mem+1
lda pic ;get absolute adres
clc ;of rip data /skip header/
mem adc #0
sta rip
lda pic+1
adc #0
sta rip+1
lda rip
sta c1+1
clc
adc <9520 ;238line x 40byte=9520
sta c3+1
lda rip+1
sta c1+2
adc >9520
sta c3+2
ldx ad1
stx c2+1
sty c2+2
ldx ad2
stx c4+1
sty c4+2
ldy #0
ldx #32
c1 lda $ffff,y ;picture 1
c2 sta ad1,y
c3 lda $ffff+8000,y ;picture 2
c4 sta ad2,y
iny
bne c1
inc c1+2
inc c2+2
inc c3+2
inc c4+2
dex
bne c1
rts
*--
_conv lda #99
sta line
lda ad1
sta x+1
lda ad2
sta y+1
ldy #39
exc lda (x),y
tax
lda (y),y
sta (x),y
txa
sta (y),y
dey
bpl exc
ldy #39
clc
lda x
adc <80
sta x
bcc *+4
inc x+1
clc
lda y
adc <80
sta y
bcc *+4
inc y+1
dec line
bpl exc
rts
dl dta d'ppp',b($4f)
adr dta a(ad1)
dta d'////////////////'
dta d'////////////////'
dta d'////////////////'
dta d'////////////////'
dta d'////////////////'
dta d'////////////////'
dta d'/////',b($4f)
adr2 dta b(0),h(ad1+$1000)
dta d'////////////////'
dta d'////////////////'
dta d'////////////////'
dta d'////////////////'
dta d'////////////////'
dta d'////////////////'
dta d'/',b($41),a(dl)
org $2e0
dta a(main)