KM.RAMWORKS:Fixed timing issues (i hope!)

This commit is contained in:
Rémy GIBERT 2016-06-19 22:31:57 +02:00
parent 314121b226
commit b4dec5d0ee
5 changed files with 466 additions and 241 deletions

Binary file not shown.

Binary file not shown.

View File

@ -13,8 +13,10 @@ AUTO 6
.INB INC/IO.I .INB INC/IO.I
.INB INC/LIBGFX.I .INB INC/LIBGFX.I
*-------------------------------------- *--------------------------------------
ZPBASE .EQ ZPDRV ZPBase .EQ ZPDRV
ZPBitBlt .EQ ZPDRV+2 ZPBitBlt .EQ ZPDRV+2
ZPShiftLo .EQ ZPDRV+4
ZPShiftHi .EQ ZPDRV+6
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
*-------------------------------------- *--------------------------------------
@ -72,6 +74,14 @@ DRV.CS.START .DA OPEN
.DA HIDECUR .DA HIDECUR
.DA SHOWCUR .DA SHOWCUR
L.DEVINFO .DA DEVINFO L.DEVINFO .DA DEVINFO
L.DIV7.0 .DA DIV7.0
L.DIV7.256 .DA DIV7.256
L.DIV7.512 .DA DIV7.512
L.MOD7.0 .DA MOD7.0
L.MOD7.256 .DA MOD7.256
L.MOD7.512 .DA MOD7.512
L.Shift0.Lo .DA Shift0.lo
L.Shift0.Hi .DA Shift0.hi
.DA 0 end or relocation .DA 0 end or relocation
*-------------------------------------- *--------------------------------------
OPEN ldy #S.DEV.ID OPEN ldy #S.DEV.ID
@ -82,7 +92,91 @@ OPEN ldy #S.DEV.ID
lda #3 lda #3
sta A2osX.ASCREEN sta A2osX.ASCREEN
clc lda L.DIV7.0+1
sta DIV7.hi
lda L.DIV7.256+1
sta DIV7.hi+1
lda L.DIV7.512+1
sta DIV7.hi+2
lda L.MOD7.0+1
sta MOD7.hi
lda L.MOD7.256+1
sta MOD7.hi+1
lda L.MOD7.512+1
sta MOD7.hi+2
ldx #7
lda L.Shift0.Lo+1
.10 sta Shiftlo.hi,x
inc
dex
bne .10
ldx #7
lda L.Shift0.hi+1
.11 sta Shifthi.hi,x
inc
dex
bne .11
ldy #0
.12 sty CX
stz CX+1
lda CX
sta Shift0.lo,y
lda CX+1
sta Shift0.hi,y
lsr CX
ror CX+1
lda CX
sta Shift1.lo,y
lda CX+1
sta Shift1.hi,y
lsr CX
ror CX+1
lda CX
sta Shift2.lo,y
lda CX+1
sta Shift2.hi,y
lsr CX
ror CX+1
lda CX
sta Shift3.lo,y
lda CX+1
sta Shift3.hi,y
lsr CX
ror CX+1
lda CX
sta Shift4.lo,y
lda CX+1
sta Shift4.hi,y
lsr CX
ror CX+1
lda CX
sta Shift5.lo,y
lda CX+1
sta Shift5.hi,y
lsr CX
ror CX+1
lda CX
sta Shift6.lo,y
lda CX+1
sta Shift6.hi,y
iny
beq .8
jmp .12
.8 clc
rts rts
*-------------------------------------- *--------------------------------------
GETEVENT lda A2osX.ASCREEN GETEVENT lda A2osX.ASCREEN
@ -167,13 +261,13 @@ SETPIXEL.XOR >PULLYA Y=X.LO,A=X.HI
.4 >PULLA Pull Y .4 >PULLA Pull Y
tax tax
lda BASEL,x setup line Base Ptr lda BASEL,x setup line Base Ptr
sta ZPBASE sta ZPBase
lda BASEH,x lda BASEH,x
sta ZPBASE+1 sta ZPBase+1
lda (ZPBASE),y lda (ZPBase),y
eor Mono.Masks,x eor Mono.Masks,x
sta (ZPBASE),y sta (ZPBase),y
sta CLR80STORE sta CLR80STORE
rts rts
@ -208,24 +302,24 @@ SETPIXEL.1 lsr
.41 ldy CY .41 ldy CY
adc BASEL,y setup line Base Ptr adc BASEL,y setup line Base Ptr
sta ZPBASE sta ZPBase
lda BASEH,y lda BASEH,y
sta ZPBASE+1 sta ZPBase+1
>PULLA Pull Color >PULLA Pull Color
lsr lsr
bcs .6 set white pixel bcs .6 set white pixel
lda (ZPBASE) lda (ZPBase)
and Mono.NMasks,x includes And $7F for mono and Mono.NMasks,x includes And $7F for mono
sta (ZPBASE) sta (ZPBase)
sta CLR80STORE sta CLR80STORE
rts rts
.6 lda (ZPBASE) .6 lda (ZPBase)
and #$7F switch back this byte to mono and #$7F switch back this byte to mono
ora Mono.Masks,x ora Mono.Masks,x
sta (ZPBASE) sta (ZPBase)
sta CLR80STORE sta CLR80STORE
rts rts
*-------------------------------------- *--------------------------------------
@ -244,9 +338,9 @@ SETPIXEL.COLOR >PULLW CX Get X.LO...
ldx CY ldx CY
adc BASEL,x setup line Base Ptr (cc by asl) adc BASEL,x setup line Base Ptr (cc by asl)
sta ZPBASE ZPBASE now point to first of... sta ZPBase ZPBase now point to first of...
lda BASEH,x lda BASEH,x
sta ZPBASE+1 ...the 4 columns sta ZPBase+1 ...the 4 columns
lda MOD7.0,y get MOD lda MOD7.0,y get MOD
@ -267,10 +361,10 @@ SETPIXEL.COLOR >PULLW CX Get X.LO...
sta SETPAGE2 sta SETPAGE2
lda (ZPBASE) lda (ZPBase)
and Color.NMasks,x reset existing pixel, and Color.NMasks,x reset existing pixel,
ora GBYTE ora GBYTE
sta (ZPBASE) sta (ZPBase)
.1 inx .1 inx
iny iny
@ -282,12 +376,12 @@ SETPIXEL.COLOR >PULLW CX Get X.LO...
sta CLRPAGE2 sta CLRPAGE2
lda (ZPBASE) lda (ZPBase)
and Color.NMasks,x reset existing pixel, and Color.NMasks,x reset existing pixel,
ora GBYTE ora GBYTE
sta (ZPBASE) sta (ZPBase)
.2 inc ZPBASE .2 inc ZPBase
inx inx
iny iny
@ -298,10 +392,10 @@ SETPIXEL.COLOR >PULLW CX Get X.LO...
sta SETPAGE2 sta SETPAGE2
lda (ZPBASE) lda (ZPBase)
and Color.NMasks,x reset existing pixel, and Color.NMasks,x reset existing pixel,
ora GBYTE ora GBYTE
sta (ZPBASE) sta (ZPBase)
.3 inx .3 inx
iny iny
@ -313,10 +407,10 @@ SETPIXEL.COLOR >PULLW CX Get X.LO...
sta CLRPAGE2 sta CLRPAGE2
lda (ZPBASE) lda (ZPBase)
and Color.NMasks,x reset existing pixel, and Color.NMasks,x reset existing pixel,
ora GBYTE ora GBYTE
sta (ZPBASE) sta (ZPBase)
.8 sta CLR80STORE .8 sta CLR80STORE
rts rts
@ -351,7 +445,7 @@ BITBLT >STYA ZPBitBlt
clc clc
rts rts
*-------------------------------------- *--------------------------------------
SETCURPOS >STYA ZPBASE SETCURPOS >STYA ZPBase
ldy #3 ldy #3
.1 lda (ZPBase),y .1 lda (ZPBase),y
@ -369,7 +463,7 @@ SETCURPOS >STYA ZPBASE
SETCUR >STYA ZPBase SETCUR >STYA ZPBase
ldy #S.CUR-1 ldy #S.CUR-1
.1 lda (ZPBase),y .1 lda (ZPBase),y
sta CUR.BitMap,y sta CUR.Buf,y
dey dey
bpl .1 bpl .1
@ -381,232 +475,148 @@ SETCUR >STYA ZPBase
rts rts
*-------------------------------------- *--------------------------------------
SHOWCUR bit CUR.State SHOWCUR bit CUR.State
bmi .8 bpl SHOWCUR.I
clc
rts
SHOWCUR.I lda CUR.X SHOWCUR.I sta SET80STORE
ldx CUR.X+1
lda DIV7.hi,x
sta .71+2
lda MOD7.hi,x
sta .72+2
ldx CUR.X
.71 lda DIV7.0,x
lsr
sta SB.StartCol
lda #0
sbc #0
sta SB.StartPage
.72 ldy MOD7.0,x
lda Shiftlo.Hi,y
sta ZPShiftLo+1
lda ShiftHi.Hi,y
sta ZPShiftHi+1
lda L.Shift0.Lo
sta ZPShiftLo
lda L.Shift0.hi
sta ZPShifthi
lda CUR.Y
sta CY
ldx #0 index to CUR data/mask
.1 ldy CY
lda BaseL,y
clc
adc SB.StartCol
sta ZPBase
lda BaseH,y
sta ZPBase+1
lda SB.StartPage
sta SB.Page
lda SB.Page
tay
eor #1
sta SB.Page
sta CLRPAGE2,y
lda (ZPBase)
ldy CUR.Buf+S.CUR.MASK,x
and (ZPShiftLo),y
ldy CUR.Buf+S.CUR.DATA,x
ora (ZPShiftLo),y
sta (ZPBase)
lda SB.Page
tay
eor #1
sta SB.Page
sta CLRPAGE2,y
beq .3
inc ZPBase
.3 lda (ZPBase)
ldy CUR.Buf+S.CUR.MASK,x
and (ZPShiftHi),y
ldy CUR.Buf+S.CUR.DATA,x
ora (ZPShiftHi),y
inx
ldy CUR.Buf+S.CUR.MASK,x
and (ZPShiftLo),y
ldy CUR.Buf+S.CUR.DATA,x
ora (ZPShiftLo),y
sta (ZPBase)
lda SB.Page
tay
eor #1
sta SB.Page
sta CLRPAGE2,y
beq .4
inc ZPBase
.4 lda (ZPBase)
ldy CUR.Buf+S.CUR.MASK,x
and (ZPShiftHi),y
ldy CUR.Buf+S.CUR.DATA,x
ora (ZPShiftHi),y
sta (ZPBase)
inx
cpx #32
bne .1
sta CLR80STORE
sec sec
ror CUR.State ror CUR.State
.8 clc
SHOWCUR.RTS clc
rts rts
*-------------------------------------- *--------------------------------------
HIDECUR bit CUR.State HIDECUR bit CUR.State
bpl .8 bpl HIDECUR.RTS
HIDECUR.I HIDECUR.I
clc clc
ror CUR.State ror CUR.State
.8 clc HIDECUR.RTS clc
rts rts
*-------------------------------------- *--------------------------------------
DRV.CS.END DRV.CS.END
*-------------------------------------- *--------------------------------------
Shift.0 .HS 0000000000000000 Shift0.lo .BS 256
.HS 0120040810204000 Shift0.hi .BS 256
Shift1.lo .BS 256
Shift1.hi .BS 256
Shift2.lo .BS 256
Shift2.hi .BS 256
Shift3.lo .BS 256
Shift3.hi .BS 256
Shift4.lo .BS 256
Shift4.hi .BS 256
Shift5.lo .BS 256
Shift5.hi .BS 256
Shift6.lo .BS 256
Shift6.hi .BS 256
*-------------------------------------- *--------------------------------------
Shift.1 .HS 0000000000000000 .INB DRV/DHGR.DRV.T
.HS 0000000000000001
*-------------------------------------- *--------------------------------------
*-------------------------------------- DIV7.hi .BS 3
Mono.NMasks .DA #%01111110 MOD7.hi .BS 3
.DA #%01111101 Shiftlo.hi .BS 7
.DA #%01111011 Shifthi.hi .BS 7
.DA #%01110111
.DA #%01101111
.DA #%01011111
.DA #%00111111
*--------------------------------------
Mono.Masks .DA #%00000001
.DA #%00000010
.DA #%00000100
.DA #%00001000
.DA #%00010000
.DA #%00100000
.DA #%01000000
*--------------------------------------
* bits to "and" to reset color of pixel (0 means nothing to do)
* 4 bytes * 7 mods
*--------------------------------------
* c1110000 c3322221 c5444433 c6666555
Color.NMasks .DA #%01110000,#%00000000,#%00000000,#%00000000
.DA #%00001111,#%01111110,#%00000000,#%00000000
.DA #%00000000,#%01100001,#%00000000,#%00000000
.DA #%00000000,#%00011111,#%01111100,#%00000000
.DA #%00000000,#%00000000,#%01000011,#%00000000
.DA #%00000000,#%00000000,#%00111111,#%01111000
.DA #%00000000,#%00000000,#%00000000,#%00000111
*--------------------------------------
* bits to "and" to Get color of pixel (0 means nothing to do)
* 4 bytes * 7 mods
*--------------------------------------
* c1110000 c3322221 c5444433 c6666555
Color.Masks .DA #%10001111,#%00000000,#%00000000,#%00000000
.DA #%11110000,#%00000001,#%00000000,#%00000000
.DA #%00000000,#%10011110,#%00000000,#%00000000
.DA #%00000000,#%11100000,#%00000011,#%00000000
.DA #%00000000,#%00000000,#%10111100,#%00000000
.DA #%00000000,#%00000000,#%11000000,#%00000111
.DA #%00000000,#%00000000,#%00000000,#%11111000
*--------------------------------------
* bits to "ora" to set color of pixel (including "color bit set" for byte hosting bit0)
* 4 bytes * 16 Colors
*--------------------------------------
* c1110000 c3322221 c5444433 c6666555
Color.Pixels .DA #%00000000,#%00000000,#%00000000,#%00000000 black (color bit disable)
.DA #%01111111,#%01111111,#%01111111,#%01111111 white (color bit disable)
.DA #%10010001,#%10100010,#%11000100,#%10001000 dark blue
.DA #%10100010,#%11000100,#%10001000,#%10010001 dark green
.DA #%10110011,#%11100110,#%11001100,#%10011001 medium blue
.DA #%11000100,#%10001000,#%10010001,#%10100010 brown
.DA #%11010101,#%10101010,#%11010101,#%10101010 grey2
.DA #%11100110,#%11001100,#%10011001,#%10110011 green
.DA #%11110111,#%11101110,#%11011101,#%10111011 aqua
.DA #%10001000,#%10010001,#%10100010,#%11000100 Magenta
.DA #%10011001,#%10110011,#%11100110,#%11001100 violet
.DA #%10101010,#%11010101,#%10101010,#%11010101 grey1
.DA #%10111011,#%11110111,#%11101110,#%11011101 light blue
.DA #%11001100,#%10011001,#%10110011,#%11100110 orange
.DA #%11011101,#%10111011,#%11110111,#%11101110 pink
.DA #%11101110,#%11011101,#%10111011,#%11110111 yellow
*--------------------------------------
DIV7.0 .HS 0000000000000001010101010101
.HS 0202020202020203030303030303
.HS 0404040404040405050505050505
.HS 0606060606060607070707070707
.HS 0808080808080809090909090909
.HS 0A0A0A0A0A0A0A0B0B0B0B0B0B0B
.HS 0C0C0C0C0C0C0C0D0D0D0D0D0D0D
.HS 0E0E0E0E0E0E0E0F0F0F0F0F0F0F
.HS 1010101010101011111111111111
.HS 1212121212121213131313131313
.HS 1414141414141415151515151515
.HS 1616161616161617171717171717
.HS 1818181818181819191919191919
.HS 1A1A1A1A1A1A1A1B1B1B1B1B1B1B
.HS 1C1C1C1C1C1C1C1D1D1D1D1D1D1D
.HS 1E1E1E1E1E1E1E1F1F1F1F1F1F1F
.HS 2020202020202021212121212121
.HS 2222222222222223232323232323
.HS 24242424
DIV7.256 .HS 24242425252525252525
.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 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 00010203
MOD7.256 .HS 04050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600
MOD7.512 .HS 010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
*--------------------------------------
BASEL .HS 00.00.00.00.00.00.00.00
.HS 80.80.80.80.80.80.80.80
.HS 00.00.00.00.00.00.00.00
.HS 80.80.80.80.80.80.80.80
.HS 00.00.00.00.00.00.00.00
.HS 80.80.80.80.80.80.80.80
.HS 00.00.00.00.00.00.00.00
.HS 80.80.80.80.80.80.80.80
.HS 28.28.28.28.28.28.28.28
.HS A8.A8.A8.A8.A8.A8.A8.A8
.HS 28.28.28.28.28.28.28.28
.HS A8.A8.A8.A8.A8.A8.A8.A8
.HS 28.28.28.28.28.28.28.28
.HS A8.A8.A8.A8.A8.A8.A8.A8
.HS 28.28.28.28.28.28.28.28
.HS A8.A8.A8.A8.A8.A8.A8.A8
.HS 50.50.50.50.50.50.50.50
.HS D0.D0.D0.D0.D0.D0.D0.D0
.HS 50.50.50.50.50.50.50.50
.HS D0.D0.D0.D0.D0.D0.D0.D0
.HS 50.50.50.50.50.50.50.50
.HS D0.D0.D0.D0.D0.D0.D0.D0
.HS 50.50.50.50.50.50.50.50
.HS D0.D0.D0.D0.D0.D0.D0.D0
*--------------------------------------
BASEH .HS 20.24.28.2C.30.34.38.3C
.HS 20.24.28.2C.30.34.38.3C
.HS 21.25.29.2D.31.35.39.3D
.HS 21.25.29.2D.31.35.39.3D
.HS 22.26.2A.2E.32.36.3A.3E
.HS 22.26.2A.2E.32.36.3A.3E
.HS 23.27.2B.2F.33.37.3B.3F
.HS 23.27.2B.2F.33.37.3B.3F
.HS 20.24.28.2C.30.34.38.3C
.HS 20.24.28.2C.30.34.38.3C
.HS 21.25.29.2D.31.35.39.3D
.HS 21.25.29.2D.31.35.39.3D
.HS 22.26.2A.2E.32.36.3A.3E
.HS 22.26.2A.2E.32.36.3A.3E
.HS 23.27.2B.2F.33.37.3B.3F
.HS 23.27.2B.2F.33.37.3B.3F
.HS 20.24.28.2C.30.34.38.3C
.HS 20.24.28.2C.30.34.38.3C
.HS 21.25.29.2D.31.35.39.3D
.HS 21.25.29.2D.31.35.39.3D
.HS 22.26.2A.2E.32.36.3A.3E
.HS 22.26.2A.2E.32.36.3A.3E
.HS 23.27.2B.2F.33.37.3B.3F
.HS 23.27.2B.2F.33.37.3B.3F
*-------------------------------------- *--------------------------------------
CX .BS 2 CX .BS 2
CY .BS 1 CY .BS 1
@ -615,13 +625,19 @@ GBYTE .BS 1
*-------------------------------------- *--------------------------------------
CUR.State .BS 1 CUR.State .BS 1
CUR.X .BS 2 CUR.X .BS 2
CUR.Xdiv7 .BS 1
CUR.Xmod7 .BS 1
CUR.Y .BS 2 CUR.Y .BS 2
CUR.BitMap .BS S.CUR CUR.Buf .BS S.CUR
CUR.SaveCol .BS 1 CUR.SaveCol .BS 1
CUR.SaveColCnt .BS 1 CUR.SaveColCnt .BS 1
CUR.SaveRow .BS 1 CUR.SaveRow .BS 1
CUR.SaveRowCnt .BS 1 CUR.SaveRowCnt .BS 1
CUR.SaveBuf .BS 3*16 MAX 3 bytes*16 rows CUR.SaveBuf .BS 3*16 MAX 3 bytes*16 rows
SB.StartPage .BS 1
SB.Page .BS 1
SB.StartCol .BS 1
SB.Col .BS 1
*-------------------------------------- *--------------------------------------
DEVINFO .DA #S.DEVINFO.TYPE.GFX type of DEVINFO STRUCT DEVINFO .DA #S.DEVINFO.TYPE.GFX type of DEVINFO STRUCT
DEVINFO.MODES .DA #%10000011 XOR,16 & B/W DEVINFO.MODES .DA #%10000011 XOR,16 & B/W

208
DRV/DHGR.DRV.T.txt Normal file
View File

@ -0,0 +1,208 @@
PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
.LIST OFF
*--------------------------------------
Mono.NMasks .DA #%01111110
.DA #%01111101
.DA #%01111011
.DA #%01110111
.DA #%01101111
.DA #%01011111
.DA #%00111111
*--------------------------------------
Mono.Masks .DA #%00000001
.DA #%00000010
.DA #%00000100
.DA #%00001000
.DA #%00010000
.DA #%00100000
.DA #%01000000
*--------------------------------------
* bits to "and" to reset color of pixel (0 means nothing to do)
* 4 bytes * 7 mods
*--------------------------------------
* c1110000 c3322221 c5444433 c6666555
Color.NMasks .DA #%01110000,#%00000000,#%00000000,#%00000000
.DA #%00001111,#%01111110,#%00000000,#%00000000
.DA #%00000000,#%01100001,#%00000000,#%00000000
.DA #%00000000,#%00011111,#%01111100,#%00000000
.DA #%00000000,#%00000000,#%01000011,#%00000000
.DA #%00000000,#%00000000,#%00111111,#%01111000
.DA #%00000000,#%00000000,#%00000000,#%00000111
*--------------------------------------
* bits to "and" to Get color of pixel (0 means nothing to do)
* 4 bytes * 7 mods
*--------------------------------------
* c1110000 c3322221 c5444433 c6666555
Color.Masks .DA #%10001111,#%00000000,#%00000000,#%00000000
.DA #%11110000,#%00000001,#%00000000,#%00000000
.DA #%00000000,#%10011110,#%00000000,#%00000000
.DA #%00000000,#%11100000,#%00000011,#%00000000
.DA #%00000000,#%00000000,#%10111100,#%00000000
.DA #%00000000,#%00000000,#%11000000,#%00000111
.DA #%00000000,#%00000000,#%00000000,#%11111000
*--------------------------------------
* bits to "ora" to set color of pixel (including "color bit set" for byte hosting bit0)
* 4 bytes * 16 Colors
*--------------------------------------
* c1110000 c3322221 c5444433 c6666555
Color.Pixels .DA #%00000000,#%00000000,#%00000000,#%00000000 black (color bit disable)
.DA #%01111111,#%01111111,#%01111111,#%01111111 white (color bit disable)
.DA #%10010001,#%10100010,#%11000100,#%10001000 dark blue
.DA #%10100010,#%11000100,#%10001000,#%10010001 dark green
.DA #%10110011,#%11100110,#%11001100,#%10011001 medium blue
.DA #%11000100,#%10001000,#%10010001,#%10100010 brown
.DA #%11010101,#%10101010,#%11010101,#%10101010 grey2
.DA #%11100110,#%11001100,#%10011001,#%10110011 green
.DA #%11110111,#%11101110,#%11011101,#%10111011 aqua
.DA #%10001000,#%10010001,#%10100010,#%11000100 Magenta
.DA #%10011001,#%10110011,#%11100110,#%11001100 violet
.DA #%10101010,#%11010101,#%10101010,#%11010101 grey1
.DA #%10111011,#%11110111,#%11101110,#%11011101 light blue
.DA #%11001100,#%10011001,#%10110011,#%11100110 orange
.DA #%11011101,#%10111011,#%11110111,#%11101110 pink
.DA #%11101110,#%11011101,#%10111011,#%11110111 yellow
*--------------------------------------
DIV7.0 .HS 0000000000000001010101010101
.HS 0202020202020203030303030303
.HS 0404040404040405050505050505
.HS 0606060606060607070707070707
.HS 0808080808080809090909090909
.HS 0A0A0A0A0A0A0A0B0B0B0B0B0B0B
.HS 0C0C0C0C0C0C0C0D0D0D0D0D0D0D
.HS 0E0E0E0E0E0E0E0F0F0F0F0F0F0F
.HS 1010101010101011111111111111
.HS 1212121212121213131313131313
.HS 1414141414141415151515151515
.HS 1616161616161617171717171717
.HS 1818181818181819191919191919
.HS 1A1A1A1A1A1A1A1B1B1B1B1B1B1B
.HS 1C1C1C1C1C1C1C1D1D1D1D1D1D1D
.HS 1E1E1E1E1E1E1E1F1F1F1F1F1F1F
.HS 2020202020202021212121212121
.HS 2222222222222223232323232323
.HS 24242424
DIV7.256 .HS 24242425252525252525
.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 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 00010203
MOD7.256 .HS 04050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600
MOD7.512 .HS 010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
.HS 0001020304050600010203040506
*--------------------------------------
BASEL .HS 00.00.00.00.00.00.00.00
.HS 80.80.80.80.80.80.80.80
.HS 00.00.00.00.00.00.00.00
.HS 80.80.80.80.80.80.80.80
.HS 00.00.00.00.00.00.00.00
.HS 80.80.80.80.80.80.80.80
.HS 00.00.00.00.00.00.00.00
.HS 80.80.80.80.80.80.80.80
.HS 28.28.28.28.28.28.28.28
.HS A8.A8.A8.A8.A8.A8.A8.A8
.HS 28.28.28.28.28.28.28.28
.HS A8.A8.A8.A8.A8.A8.A8.A8
.HS 28.28.28.28.28.28.28.28
.HS A8.A8.A8.A8.A8.A8.A8.A8
.HS 28.28.28.28.28.28.28.28
.HS A8.A8.A8.A8.A8.A8.A8.A8
.HS 50.50.50.50.50.50.50.50
.HS D0.D0.D0.D0.D0.D0.D0.D0
.HS 50.50.50.50.50.50.50.50
.HS D0.D0.D0.D0.D0.D0.D0.D0
.HS 50.50.50.50.50.50.50.50
.HS D0.D0.D0.D0.D0.D0.D0.D0
.HS 50.50.50.50.50.50.50.50
.HS D0.D0.D0.D0.D0.D0.D0.D0
*--------------------------------------
BASEH .HS 20.24.28.2C.30.34.38.3C
.HS 20.24.28.2C.30.34.38.3C
.HS 21.25.29.2D.31.35.39.3D
.HS 21.25.29.2D.31.35.39.3D
.HS 22.26.2A.2E.32.36.3A.3E
.HS 22.26.2A.2E.32.36.3A.3E
.HS 23.27.2B.2F.33.37.3B.3F
.HS 23.27.2B.2F.33.37.3B.3F
.HS 20.24.28.2C.30.34.38.3C
.HS 20.24.28.2C.30.34.38.3C
.HS 21.25.29.2D.31.35.39.3D
.HS 21.25.29.2D.31.35.39.3D
.HS 22.26.2A.2E.32.36.3A.3E
.HS 22.26.2A.2E.32.36.3A.3E
.HS 23.27.2B.2F.33.37.3B.3F
.HS 23.27.2B.2F.33.37.3B.3F
.HS 20.24.28.2C.30.34.38.3C
.HS 20.24.28.2C.30.34.38.3C
.HS 21.25.29.2D.31.35.39.3D
.HS 21.25.29.2D.31.35.39.3D
.HS 22.26.2A.2E.32.36.3A.3E
.HS 22.26.2A.2E.32.36.3A.3E
.HS 23.27.2B.2F.33.37.3B.3F
.HS 23.27.2B.2F.33.37.3B.3F
*--------------------------------------
MAN
SAVE DRV/DHGR.DRV.T
LOAD DRV/DHGR.DRV.S
ASM

View File

@ -77,7 +77,8 @@ RW.Detect2 php
ldx #0 start detection at page $00 ldx #0 start detection at page $00
.1 stx RWBankSelect .1 stx RWBankSelect
nop pha
pla
lda 0 lda 0
sta RW.SAVEZP0,x save Bank 0 $0000 to prevent ALTZP trash sta RW.SAVEZP0,x save Bank 0 $0000 to prevent ALTZP trash
lda 1 lda 1
@ -91,8 +92,8 @@ RW.Detect2 php
*-------------------------------------- *--------------------------------------
* Added after David Finnigan from macgui.com testing sessions * Added after David Finnigan from macgui.com testing sessions
* *
nop pha
nop pla
* *
* to address possibly a timing issue with Accelerators * to address possibly a timing issue with Accelerators
*-------------------------------------- *--------------------------------------
@ -108,8 +109,8 @@ RW.Detect2 php
.3 txa .3 txa
sta RWBankSelect sta RWBankSelect
nop pha
nop pla
cmp 0 cmp 0
bne .4 bne .4
@ -124,8 +125,8 @@ RW.Detect2 php
.6 sty RWBankSelect .6 sty RWBankSelect
nop pha
nop pla
lda RW.SAVEZP0,y lda RW.SAVEZP0,y
sta 0 sta 0
@ -136,8 +137,8 @@ RW.Detect2 php
stz RWBankSelect stz RWBankSelect
nop pha
nop pla
lda RW.SAVEZP0 Don't forget to restore Bank 0 lda RW.SAVEZP0 Don't forget to restore Bank 0
sta 0 sta 0