2017-12-22 21:24:30 +00:00
|
|
|
|
NEW
|
2019-07-25 15:10:59 +00:00
|
|
|
|
AUTO 3,1
|
2017-07-05 14:45:19 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
* SETPIXEL
|
2017-11-17 16:16:05 +00:00
|
|
|
|
* 1 : OP (XOR,SET,ORA)
|
2017-07-05 14:45:19 +00:00
|
|
|
|
* 2 : Mode
|
|
|
|
|
* 3 : Color
|
|
|
|
|
* 4 : SrcX1
|
|
|
|
|
* 6 : SrcY1
|
|
|
|
|
*--------------------------------------
|
2017-12-22 21:24:30 +00:00
|
|
|
|
SETPIXEL lda CB.Cache+S.CB.M
|
|
|
|
|
bit #S.CB.M.C16
|
2017-07-05 14:45:19 +00:00
|
|
|
|
bne SETPIXEL.C16
|
|
|
|
|
|
2017-11-17 16:16:05 +00:00
|
|
|
|
SETPIXEL.MONO >LDYA CB.Cache+S.CB.X1
|
2017-07-05 14:45:19 +00:00
|
|
|
|
|
2017-11-17 16:16:05 +00:00
|
|
|
|
jsr DIVMOD7YA
|
2020-09-01 15:38:55 +00:00
|
|
|
|
lsr
|
2021-06-04 17:14:36 +00:00
|
|
|
|
php
|
2021-06-05 15:48:54 +00:00
|
|
|
|
|
2017-07-05 14:45:19 +00:00
|
|
|
|
ldy CB.Cache+S.CB.Y1
|
|
|
|
|
clc
|
2017-11-17 16:16:05 +00:00
|
|
|
|
adc BASEL,y
|
2017-11-15 07:27:12 +00:00
|
|
|
|
sta ZPBasePtr
|
2017-07-05 14:45:19 +00:00
|
|
|
|
lda BASEH,y
|
2017-11-15 07:27:12 +00:00
|
|
|
|
sta ZPBasePtr+1
|
2021-06-05 15:48:54 +00:00
|
|
|
|
|
2021-06-04 17:14:36 +00:00
|
|
|
|
plp
|
2021-06-05 15:48:54 +00:00
|
|
|
|
ldy #0
|
|
|
|
|
bcs .1
|
|
|
|
|
|
|
|
|
|
iny
|
|
|
|
|
|
2023-11-12 21:12:24 +00:00
|
|
|
|
.1 sta IO.CLRPAGE2,y Select proper BANK
|
2021-06-05 15:48:54 +00:00
|
|
|
|
|
2017-07-05 14:45:19 +00:00
|
|
|
|
lda CB.Cache+S.CB.OP
|
2017-11-17 16:16:05 +00:00
|
|
|
|
* cmp #S.CB.OP.XOR
|
|
|
|
|
beq SETPIXEL.MONO.XOR
|
2020-06-09 13:40:21 +00:00
|
|
|
|
|
2017-11-17 16:16:05 +00:00
|
|
|
|
lda CB.Cache+S.CB.COLOR
|
|
|
|
|
bne SETPIXEL.MONO.WHITE
|
2019-10-03 06:25:27 +00:00
|
|
|
|
SETPIXEL.MONO.BLACK
|
2017-11-17 16:16:05 +00:00
|
|
|
|
lda (ZPBasePtr)
|
|
|
|
|
and Mono.NMasks,x
|
2017-11-15 07:27:12 +00:00
|
|
|
|
sta (ZPBasePtr)
|
2017-11-17 16:16:05 +00:00
|
|
|
|
|
2017-07-05 14:45:19 +00:00
|
|
|
|
rts
|
2017-11-17 16:16:05 +00:00
|
|
|
|
|
|
|
|
|
SETPIXEL.MONO.WHITE
|
|
|
|
|
lda (ZPBasePtr)
|
2017-11-20 16:45:12 +00:00
|
|
|
|
and #$7f Clear Color Bit
|
2017-11-17 16:16:05 +00:00
|
|
|
|
ora Mono.Masks,x
|
2017-11-15 07:27:12 +00:00
|
|
|
|
sta (ZPBasePtr)
|
2017-07-05 14:45:19 +00:00
|
|
|
|
rts
|
2019-10-03 06:25:27 +00:00
|
|
|
|
SETPIXEL.MONO.XOR
|
2017-11-17 16:16:05 +00:00
|
|
|
|
lda (ZPBasePtr)
|
2017-11-20 16:45:12 +00:00
|
|
|
|
and #$7f Clear Color Bit
|
2017-11-17 16:16:05 +00:00
|
|
|
|
eor Mono.Masks,x
|
2017-11-15 07:27:12 +00:00
|
|
|
|
sta (ZPBasePtr)
|
2017-07-05 14:45:19 +00:00
|
|
|
|
rts
|
2023-11-04 14:42:28 +00:00
|
|
|
|
*--------------------------------------
|
2017-07-05 14:45:19 +00:00
|
|
|
|
SETPIXEL.C16 lda CB.Cache+S.CB.X1
|
|
|
|
|
lsr CB.Cache+S.CB.X1+1 divide by 4
|
|
|
|
|
ror
|
|
|
|
|
lsr CB.Cache+S.CB.X1+1
|
|
|
|
|
ror
|
|
|
|
|
tay Y=X/4 (range 0->139)
|
2019-07-30 08:57:25 +00:00
|
|
|
|
|
|
|
|
|
ldx CB.Cache+S.CB.Y1
|
2023-11-04 14:42:28 +00:00
|
|
|
|
*--------------------------------------
|
2019-07-30 08:57:25 +00:00
|
|
|
|
* Y = PixelX (0,139), X = PixelY (0,191)
|
2023-11-04 14:42:28 +00:00
|
|
|
|
*--------------------------------------
|
2019-07-30 08:57:25 +00:00
|
|
|
|
SETPIXEL.C16.YX lda DIV7.0,y PixelX MOD 7 (range 0->19)
|
2017-07-05 14:45:19 +00:00
|
|
|
|
asl times 2 (range 0->38)
|
2019-10-03 06:25:27 +00:00
|
|
|
|
* clc
|
2017-07-05 14:45:19 +00:00
|
|
|
|
adc BASEL,x setup line Base Ptr (cc by asl)
|
2017-11-17 07:09:39 +00:00
|
|
|
|
sta ZPBasePtr ZPBasePtr now point to first of...
|
2017-07-05 14:45:19 +00:00
|
|
|
|
lda BASEH,x
|
2017-11-15 07:27:12 +00:00
|
|
|
|
sta ZPBasePtr+1 ...the 4 columns
|
2017-07-05 14:45:19 +00:00
|
|
|
|
|
2019-07-30 08:57:25 +00:00
|
|
|
|
lda MOD7.0,y get pixelX MOD7
|
2017-07-05 14:45:19 +00:00
|
|
|
|
asl times 4 to compute index in MASK tables
|
|
|
|
|
asl
|
|
|
|
|
tax set in X for Masks,NMasks
|
|
|
|
|
lda CB.Cache+S.CB.COLOR
|
|
|
|
|
asl times 4 to compute index in PIXELS table
|
|
|
|
|
asl
|
|
|
|
|
tay
|
|
|
|
|
|
|
|
|
|
lda Color.Masks,x bits in 1st byte to light?
|
|
|
|
|
beq .10
|
2019-07-30 08:57:25 +00:00
|
|
|
|
|
2023-11-12 21:12:24 +00:00
|
|
|
|
sta IO.SETPAGE2
|
2020-09-01 15:38:55 +00:00
|
|
|
|
|
|
|
|
|
jsr .81
|
2017-07-05 14:45:19 +00:00
|
|
|
|
|
|
|
|
|
.10 inx
|
|
|
|
|
iny
|
|
|
|
|
lda Color.Masks,x
|
|
|
|
|
beq .11
|
2020-06-09 13:40:21 +00:00
|
|
|
|
|
2020-09-01 15:38:55 +00:00
|
|
|
|
jsr .80
|
2020-06-09 13:40:21 +00:00
|
|
|
|
|
2017-11-15 07:27:12 +00:00
|
|
|
|
.11 inc ZPBasePtr
|
2017-07-05 14:45:19 +00:00
|
|
|
|
inx
|
|
|
|
|
iny
|
|
|
|
|
lda Color.Masks,x
|
|
|
|
|
beq .12
|
2020-06-09 13:40:21 +00:00
|
|
|
|
|
2023-11-12 21:12:24 +00:00
|
|
|
|
sta IO.SETPAGE2
|
2020-09-01 15:38:55 +00:00
|
|
|
|
|
|
|
|
|
jsr .81
|
2020-06-09 13:40:21 +00:00
|
|
|
|
|
2017-07-05 14:45:19 +00:00
|
|
|
|
.12 inx
|
|
|
|
|
iny
|
|
|
|
|
lda Color.Masks,x
|
2020-09-01 15:38:55 +00:00
|
|
|
|
beq .88
|
2020-06-09 13:40:21 +00:00
|
|
|
|
|
2023-11-12 21:12:24 +00:00
|
|
|
|
.80 sta IO.CLRPAGE2
|
2020-09-01 15:38:55 +00:00
|
|
|
|
|
|
|
|
|
.81 and Color.Pixels,y apply color
|
2018-05-04 14:55:29 +00:00
|
|
|
|
sta ZPTmpByte
|
2017-11-15 07:27:12 +00:00
|
|
|
|
lda (ZPBasePtr)
|
2017-07-05 14:45:19 +00:00
|
|
|
|
and Color.NMasks,x reset existing pixel,
|
2018-05-04 14:55:29 +00:00
|
|
|
|
ora ZPTmpByte
|
2017-11-15 07:27:12 +00:00
|
|
|
|
sta (ZPBasePtr)
|
2020-06-09 13:40:21 +00:00
|
|
|
|
|
2020-09-01 15:38:55 +00:00
|
|
|
|
.88 rts
|
2017-07-05 14:45:19 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
* GETPIXEL
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
GETPIXEL rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
MAN
|
2020-06-09 13:40:21 +00:00
|
|
|
|
SAVE usr/src/drv/dhgr.drv.s.pix
|
|
|
|
|
LOAD usr/src/drv/dhgr.drv.s
|
2017-07-05 14:45:19 +00:00
|
|
|
|
ASM
|