это VMC10 и trs80gp. У первого масса окон, где хрен поймешь как отловить код. У второго нет опции загрузки бинаря. Скрипт конверсии на C10 на Python не заработал, поэтому приходится гонять через VMC - загружать бинарь и сохранять кассету. А все из-за "Лень переписать скрипт".
Придется заняться. Пока вышло 74 байта, но выполз косяк с выбором цвета.
;poke 49151,32(96), CG1 64x64 4 colors
;compile: tasm -68 -x3 -b gfx.s gfx.bin
.ORG $8000
ldaa #$20
staa $BFFF
cli
clra
staa $FE ; color val, $20-mask
ldx #$4000
clslp:
staa 0,x
inx
cpx #$4400
bne clslp
tlp:
tab ; B=A B=y,A=x
psha
psha
; start plot
ldaa #$10
mul ; D=A*B
adda #$40
pshb
psha
pulx ; screen address
pulb
tba ;B=A
lsrb ; 0->B->cy
lsrb
abx ; X=X+B
ldab #$C0
anda #3
beq noshift
shlp: lsrb
lsrb
deca
bne shlp
noshift:
comb
stab $FF
ldaa 0,x
eora $FE
anda $FF
eora $FE
staa 0,x
;end of plot
ldaa $FE
adda #$55
staa $FE
pula
inca
cmpa #$3f
bne tlp
ee: bra ee
.END
;compile: tasm -68 -x3 -b gfx.s gfx.bin
.ORG $8000
ldaa #$20
staa $BFFF
cli
clra
staa $FE ; color val, $20-mask
ldx #$4000
clslp:
staa 0,x
inx
cpx #$4400
bne clslp
tlp:
tab ; B=A B=y,A=x
psha
psha
; start plot
ldaa #$10
mul ; D=A*B
adda #$40
pshb
psha
pulx ; screen address
pulb
tba ;B=A
lsrb ; 0->B->cy
lsrb
abx ; X=X+B
ldab #$C0
anda #3
beq noshift
shlp: lsrb
lsrb
deca
bne shlp
noshift:
comb
stab $FF
ldaa 0,x
eora $FE
anda $FF
eora $FE
staa 0,x
;end of plot
ldaa $FE
adda #$55
staa $FE
pula
inca
cmpa #$3f
bne tlp
ee: bra ee
.END
Комментарии
Отправить комментарий