Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-07-30 10:57:25 +02:00
parent 59f9e298fd
commit b36efb0bb2
20 changed files with 46 additions and 136 deletions

Binary file not shown.

View File

@ -79,15 +79,18 @@ VLINE lda CB.Cache+S.CB.M
VLINE.MONO >LDYA CB.Cache+S.CB.X1
jsr DIVMOD7YA
jsr DIVMOD7YA X = MOD 7
tay
lda COL.OFS,y
sta ZPTmpByte Save COL (DIV)
sta ZPTmpByte Save COL (DIV)
lda COL.BANK,y
tay
sta $C000,y Select proper BANK
ldy CB.Cache+S.CB.Y1
clc
lda CB.Cache+S.CB.OP
* cmp #S.CB.OP.XOR
beq VLINE.MONO.XOR
@ -96,9 +99,7 @@ VLINE.MONO >LDYA CB.Cache+S.CB.X1
bne VLINE.MONO.WHITE
VLINE.MONO.BLACK
ldy CB.Cache+S.CB.Y1
clc
.1 lda BASEL,y
adc ZPTmpByte
sta ZPBasePtr
@ -115,23 +116,12 @@ VLINE.MONO.BLACK
rts
VLINE.MONO.WHITE
.1 lda BASEL,y
adc ZPTmpByte
sta ZPBasePtr
lda BASEH,y
sta ZPBasePtr+1
lda (ZPBasePtr)
ora Mono.Masks,x
sta (ZPBasePtr)
cpy CB.Cache+S.CB.Y2
iny
bcc .1
rts
lda #$1D ORA abs,x
.HS 2C BIT ABS
VLINE.MONO.XOR
lda #$5D EOR abs,x
sta .2
.1 lda BASEL,y
adc ZPTmpByte
sta ZPBasePtr
@ -139,7 +129,7 @@ VLINE.MONO.XOR
sta ZPBasePtr+1
lda (ZPBasePtr)
eor Mono.Masks,x
.2 eor Mono.Masks,x SELF MODIFIED
sta (ZPBasePtr)
cpy CB.Cache+S.CB.Y2
iny
@ -153,91 +143,22 @@ VLINE.C16 lda CB.Cache+S.CB.X1
lsr CB.Cache+S.CB.X1+1
ror
tay Y=X/4 (range 0->139)
lda DIV7.0,y A=X/4/7 (range 0->19)
asl times 2 (range 0->38)
ldx CB.Cache+S.CB.Y1
adc BASEL,x setup line Base Ptr (cc by asl)
sta ZPBasePtr ZPBasePtr now point to first of...
lda BASEH,x
sta ZPBasePtr+1 ...the 4 columns
lda MOD7.0,y get MOD
.1 phy
phx
asl times 4 to compute index in MASK tables
asl
tax set in X for Masks,NMasks
jsr SETPIXEL.C16.YX
lda CB.Cache+S.CB.COLOR
asl times 4 to compute index in PIXELS table
asl
tay
plx
ply
lda Color.Masks,x bits in 1st byte to light?
beq .10
and Color.Pixels,y apply color
sta ZPTmpByte
sta SETPAGE2
lda (ZPBasePtr)
and Color.NMasks,x reset existing pixel,
ora ZPTmpByte
sta (ZPBasePtr)
.10 inx
cpy CB.Cache+S.CB.Y2
iny
bcc .1
lda Color.Masks,x
beq .11
and Color.Pixels,y apply color
sta ZPTmpByte
sta CLRPAGE2
lda (ZPBasePtr)
and Color.NMasks,x reset existing pixel,
ora ZPTmpByte
sta (ZPBasePtr)
.11 inc ZPBasePtr
inx
iny
lda Color.Masks,x
beq .12
and Color.Pixels,y apply color
sta ZPTmpByte
sta SETPAGE2
lda (ZPBasePtr)
and Color.NMasks,x reset existing pixel,
ora ZPTmpByte
sta (ZPBasePtr)
.12 inx
iny
lda Color.Masks,x
beq .13
and Color.Pixels,y apply color
sta ZPTmpByte
sta CLRPAGE2
lda (ZPBasePtr)
and Color.NMasks,x reset existing pixel,
ora ZPTmpByte
sta (ZPBasePtr)
.13 rts
rts
*--------------------------------------
MAN
SAVE USR/SRC/DRV/DHGR.DRV.S.LINE

View File

@ -68,18 +68,22 @@ SETPIXEL.C16 lda CB.Cache+S.CB.X1
lsr CB.Cache+S.CB.X1+1
ror
tay Y=X/4 (range 0->139)
lda DIV7.0,y A=X/4/7 (range 0->19)
ldx CB.Cache+S.CB.Y1
* Y = PixelX (0,139), X = PixelY (0,191)
SETPIXEL.C16.YX lda DIV7.0,y PixelX MOD 7 (range 0->19)
asl times 2 (range 0->38)
ldx CB.Cache+S.CB.Y1
* clc
adc BASEL,x setup line Base Ptr (cc by asl)
sta ZPBasePtr ZPBasePtr now point to first of...
lda BASEH,x
sta ZPBasePtr+1 ...the 4 columns
lda MOD7.0,y get MOD
lda MOD7.0,y get pixelX MOD7
asl times 4 to compute index in MASK tables
asl
@ -93,6 +97,7 @@ SETPIXEL.C16 lda CB.Cache+S.CB.X1
lda Color.Masks,x bits in 1st byte to light?
beq .10
and Color.Pixels,y apply color
sta ZPTmpByte

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
BM.Apple .DA #S.BM.F.BBP4
.DA #2 RowBytes

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
CUR.T .BS 1
CUR.bVisible .BS 1

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
hSYSFON .BS 1
hSYSFONB .BS 1

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
WND.TB.H .BS 1
WND.Stack.Top .BS 1

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
BM.Get
*--------------------------------------

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
BUT.New >STYA ZPPtr1

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
* CLIPPING Functions:
* In:

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
UpdateCursor lda CUR.T
cmp #CUR.T.WAIT

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
Draw >PULLW ZPCBPtr Get CB

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
EVT.Get

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
FON.Init >PUSHWZ Aux type
>PUSHBI $CC Type

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
* Y,A = ptr to menu definition
*--------------------------------------

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
MOU.Init
.1 >PUSHBI 0

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
GetMPattern
clc

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
*--------------------------------------
WND.Init >PUSHBI 0
>LDYA L.DEVNAME.GFX

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
.LIST OFF
.OP 65C02
.OR $2000

View File

@ -818,7 +818,7 @@ K.GetMemStat >STYA ZPPtr1
dey
dex
bpl .3
clc
rts
*--------------------------------------
MAN