Dobra... na początek PLOT (pisałem w notatniku - bez testów, ale myślę że będzie działać ;) )
d0 equ $d0
ekr equ $xxxx
; ldx #kolor
; ldy #y
; lda #x
; jsr plot
plot stx pl00
ldx tel,y
stx d0
ldx teh,y
stx d0+1
tay
and #%11
asl @
asl @
pl00 equ *+1
adc #0
tax
tya
lsr @
lsr @
tay
lda (d0),y
and mask,x
ora tkol,x
sta (d0),y
rts
tkol equ *
dta b(%00000000)
dta b(%00000001)
dta b(%00000010)
dta b(%00000011)
dta b(%00000000)
dta b(%00000100)
dta b(%00001000)
dta b(%00001100)
dta b(%00000000)
dta b(%00010000)
dta b(%00100000)
dta b(%00110000)
dta b(%00000000)
dta b(%01000000)
dta b(%10000000)
dta b(%11000000)
mask equ *
dta b(%11111100)
dta b(%11111100)
dta b(%11111100)
dta b(%11111100)
dta b(%11110011)
dta b(%11110011)
dta b(%11110011)
dta b(%11110011)
dta b(%11001111)
dta b(%11001111)
dta b(%11001111)
dta b(%11001111)
dta b(%00111111)
dta b(%00111111)
dta b(%00111111)
dta b(%00111111)
init equ *
lda <ekr
sta d0
lda >ekr
sta d0+1
ldy #0
in00 equ *
clc
lda d0
sta tel,y
adc #40
sta d0
lda d0+1
sta teh,y
adc #0
sta d0+1
iny
cpy #192
bne in00
rts
tel equ *
org *+192
teh equ *
org *+192
na początku inicjalizacja! JSR INIT
procedurę PLOT'a można oczywiście przyśpieszyć kosztem 6x160 bajtów dodatkowych tablic.
wtedy wyglądałaby tak:
; lda #kolor+>adres_tablicy_koloru0
; ldx #x
; ldy #y
; jsr plot
plot sta pl00
lda tel,y
sta d0
lda teh,y
sta d0+1 ; (d0) adres ekranu poz. 0,y
ldy xpoz,x ;xpoz(a)=a/4
lda (d0),y
and mask,x ;mask(0,4, )=%11111100; mask(1,5, )=%11110011; mask(2,6, )=%11001111; mask(3,7, )=%00111111
pl00 equ *+2
ora tkol,x ;4*160bajtów tablic kolorów
sta (d0),y
rts
EDIT: A jednak wkradł się błąd - odwołanie do nieistniejącej etykiety :)