Kernel version 0.9 : DHGR.DRV, saved few bytes in tables, room for additional primitives, Bugfix in drawline....

This commit is contained in:
Rémy GIBERT 2017-06-12 17:47:27 +02:00
parent d0d356419f
commit 5984f77ab0
4 changed files with 67 additions and 53 deletions

View File

@ -157,7 +157,11 @@ DRV.CS.START .DA STATUS
*-------------------------------------- *--------------------------------------
L.STAT .DA STAT L.STAT .DA STAT
L.DIV7.0 .DA DIV7.0 L.DIV7.0 .DA DIV7.0
.DA DIV7.256
.DA DIV7.512
L.MOD7.0 .DA MOD7.0 L.MOD7.0 .DA MOD7.0
.DA MOD7.256
.DA MOD7.512
L.Shift0.Lo .DA Shift0.lo L.Shift0.Lo .DA Shift0.lo
L.Shift0.Hi .DA Shift0.hi L.Shift0.Hi .DA Shift0.hi
.DA 0 end or relocation .DA 0 end or relocation
@ -172,21 +176,21 @@ STATUS >LDYA L.STAT
*-------------------------------------- *--------------------------------------
OPEN sta A2osX.SCRNDEVS+2 DEV.ID in A OPEN sta A2osX.SCRNDEVS+2 DEV.ID in A
lda L.DIV7.0+1
sta DIV7.hi
inc
sta DIV7.hi+1
inc
sta DIV7.hi+2
ldy #0 ldy #0
ldx #0 ldx #0
.1 lda L.MOD7.0,y .1 lda L.DIV7.0,y
sta DIV7.lo,x
lda L.MOD7.0,y
sta MOD7.lo,x sta MOD7.lo,x
iny iny
lda L.DIV7.0,y
sta DIV7.hi,x
lda L.MOD7.0,y lda L.MOD7.0,y
sta MOD7.hi,x sta MOD7.hi,x
iny iny
inx inx
cpx #3 cpx #3
@ -254,8 +258,11 @@ SETPIXEL >STYA ZPBase
lda CB.Cache+S.CB.MODE lda CB.Cache+S.CB.MODE
bit #S.CB.MODE.C16 bit #S.CB.MODE.C16
bne SETPIXEL.C16 bne SETPIXEL.C16
*---- MONO ----------------------------
ldx CB.Cache+S.CB.X1+1 SETPIXEL.MONO ldx CB.Cache+S.CB.X1+1 Get X Hi byte....
lda DIV7.lo,x
sta .2+1
lda DIV7.hi,x lda DIV7.hi,x
sta .2+2 sta .2+2
@ -264,23 +271,26 @@ SETPIXEL >STYA ZPBase
lda MOD7.hi,x lda MOD7.hi,x
sta .4+2 sta .4+2
lda DIV7.BASE,x
ldx CB.Cache+S.CB.X1 ldx CB.Cache+S.CB.X1
.2 lda DIV7.0,x A=Col*2+AuxBit
eor #1 toggle last bit : 0=Aux, 1=Main
lsr .3+1 reset CLRPAGE2 address
lsr CS=Aux
rol .3+1 if CS, -> SETPAGE2
.3 sta CLRPAGE2
ldy CB.Cache+S.CB.Y1
clc
.2 adc $ffff,x DIV7 : x = X.LO, a = X DIV 7
pha save X DIV 7
lsr
ldy CB.Cache+S.CB.Y1
clc
adc BASEL,y setup line Base Ptr (A=Col) adc BASEL,y setup line Base Ptr (A=Col)
sta ZPBase sta ZPBase
lda BASEH,y lda BASEH,y
sta ZPBase+1 sta ZPBase+1
ply
lda COL.BANK,y
tay
sta $c000,y
.4 ldy MOD7.0,x x = X.LO .4 ldy $ffff,x MOD7 : x = X.LO, y = X MOD 7
lda CB.Cache+S.CB.OP lda CB.Cache+S.CB.OP
beq .5 beq .5
@ -306,7 +316,7 @@ SETPIXEL >STYA ZPBase
sta (ZPBase) sta (ZPBase)
sta CLR80STORE sta CLR80STORE
rts rts
*-----16 Colors -----------------------
SETPIXEL.C16 lda CB.Cache+S.CB.X1 SETPIXEL.C16 lda CB.Cache+S.CB.X1
lsr CB.Cache+S.CB.X1+1 divide by 4 lsr CB.Cache+S.CB.X1+1 divide by 4
ror ror
@ -410,11 +420,11 @@ HLINE >STYA ZPBase
dey dey
bpl .1 bpl .1
lda CB.Cache+S.CB.MODE HLINE.I lda CB.Cache+S.CB.MODE
bit #S.CB.MODE.C16 bit #S.CB.MODE.C16
bne HLINE.C16 bne HLINE.C16
*----- MONO ---------------------------
HLINE.MONO
HLINE.C16 HLINE.C16
@ -430,7 +440,7 @@ VLINE >STYA ZPBase
dey dey
bpl .1 bpl .1
VLINE.I
rts rts
*-------------------------------------- *--------------------------------------
@ -451,7 +461,7 @@ FILLRECT >STYA ZPBase
bpl .1 bpl .1
.2 jsr VLINE.I .2 jsr HLINE.I
lda CB.Cache+S.CB.Y1 lda CB.Cache+S.CB.Y1
cmp CB.Cache+S.CB.Y2 cmp CB.Cache+S.CB.Y2
@ -497,6 +507,7 @@ Shift6.hi .BS 128
*-------------------------------------- *--------------------------------------
.INB /A2OSX.SRC/DRV/DHGR.DRV.T .INB /A2OSX.SRC/DRV/DHGR.DRV.T
*-------------------------------------- *--------------------------------------
DIV7.lo .BS 3
DIV7.hi .BS 3 DIV7.hi .BS 3
MOD7.lo .BS 3 MOD7.lo .BS 3
MOD7.hi .BS 3 MOD7.hi .BS 3

View File

@ -66,9 +66,33 @@ Color.Pixels .DA #%00000000,#%00000000,#%00000000,#%00000000 black (color bit di
.DA #%11011101,#%10111011,#%11110111,#%11101110 pink .DA #%11011101,#%10111011,#%11110111,#%11101110 pink
.DA #%11101110,#%11011101,#%10111011,#%11110111 yellow .DA #%11101110,#%11011101,#%10111011,#%11110111 yellow
*-------------------------------------- *--------------------------------------
* COL*2+AUX Bit COL.BANK .DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
*-------------------------------------- *--------------------------------------
DIV7.0 .HS 0000000000000001010101010101 DIV7.BASE .HS 002449 Indexed with X.HI
*--------------------------------------
DIV7.0 .HS 00
DIV7.512 .HS 000000
DIV7.256 .HS 000000
.HS 01010101010101
.HS 0202020202020203030303030303 .HS 0202020202020203030303030303
.HS 0404040404040405050505050505 .HS 0404040404040405050505050505
.HS 0606060606060607070707070707 .HS 0606060606060607070707070707
@ -86,34 +110,13 @@ DIV7.0 .HS 0000000000000001010101010101
.HS 1E1E1E1E1E1E1E1F1F1F1F1F1F1F .HS 1E1E1E1E1E1E1E1F1F1F1F1F1F1F
.HS 2020202020202021212121212121 .HS 2020202020202021212121212121
.HS 2222222222222223232323232323 .HS 2222222222222223232323232323
.HS 24242424 .HS 24242424242424
DIV7.256 .HS 24242425252525252525 .HS 25
.HS 2626262626262627272727272727
.HS 2828282828282829292929292929
.HS 2A2A2A2A2A2A2A2B2B2B2B2B2B2B
.HS 2C2C2C2C2C2C2C2D2D2D2D2D2D2D
.HS 2E2E2E2E2E2E2E2F2F2F2F2F2F2F
.HS 3030303030303031313131313131
.HS 3232323232323233333333333333
.HS 3434343434343435353535353535
.HS 3636363636363637373737373737
.HS 3838383838383839393939393939
.HS 3A3A3A3A3A3A3A3B3B3B3B3B3B3B
.HS 3C3C3C3C3C3C3C3D3D3D3D3D3D3D
.HS 3E3E3E3E3E3E3E3F3F3F3F3F3F3F
.HS 4040404040404041414141414141
.HS 4242424242424243434343434343
.HS 4444444444444445454545454545
.HS 4646464646464647474747474747
.HS 4848484848484849
DIV7.512 .HS 494949494949
.HS 4A4A4A4A4A4A4A4B4B4B4B4B4B4B
.HS 4C4C4C4C4C4C4C4D4D4D4D4D4D4D
.HS 4E4E4E4E4E4E4E4F4F4F4F4F4F4F
*-------------------------------------- *--------------------------------------
MOD7.0 .HS 00 MOD7.0 .HS 00
MOD7.512 .HS 010203 MOD7.512 .HS 010203
MOD7.256 .HS 040506 MOD7.256 .HS 040506
.HS 00010203040506
.HS 0001020304050600010203040506 .HS 0001020304050600010203040506
.HS 0001020304050600010203040506 .HS 0001020304050600010203040506
.HS 0001020304050600010203040506 .HS 0001020304050600010203040506
@ -131,7 +134,7 @@ MOD7.256 .HS 040506
.HS 0001020304050600010203040506 .HS 0001020304050600010203040506
.HS 0001020304050600010203040506 .HS 0001020304050600010203040506
.HS 0001020304050600010203040506 .HS 0001020304050600010203040506
.HS 0001020304050600010203040506 .HS 00010203040506
.HS 00 .HS 00
*-------------------------------------- *--------------------------------------
BASEL .HS 00.00.00.00.00.00.00.00 BASEL .HS 00.00.00.00.00.00.00.00

Binary file not shown.

Binary file not shown.