07-18-2016, 03:33 PM
This is a fast sample, including a basic implemented plot routine. I'm sure is not the most optimized code, but I hope it's clarifiying:
Code:
SUB RadastanMode(active as UByte) '1=activate, 0=deactivate
OUT 64571,64
OUT 64827, 3 * active
END SUB
SUB RadastanPalette(color, rgb as UByte) ' color=0-15, rgb = binary GGGRRRBB
OUT 48955, 64: OUT 65339, 1
OUT 48955, color: OUT 65339, rgb
END SUB
SUB RadastanPlot(x,y,color as UByte)
Dim Addr as UInteger
Dim byteValue, mask as UByte
LET Addr = 16384 + ((y*128 + x) >>1)
LET byteValue = PEEK Addr
LET color = color bAND 00001111b
IF (x bAND 1) THEN
LET mask = 11110000b
ELSE
LET mask = 00001111b
LET color = color << 4
END IF
POKE Addr, (byteValue bAND mask) bOR color
END SUB
CLS
RadastanMode(1)
RadastanPalette(0,11111111b)
RadastanPalette(1,00011111b)
for x=1 to 50: RadastanPlot(x,x,1): next x
PAUSE 0
RadastanMode(0)
CLS