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 :)