mirror of
https://github.com/A2osX/A2osX.git
synced 2024-08-14 13:29:02 +00:00
Kernel version 0.9 : DHGR.DRV, primitives,
LIBGFX : DrawLine working....
This commit is contained in:
parent
ad99363574
commit
34d100b807
@ -17,6 +17,7 @@ AUTO 6
|
|||||||
ZPBase .EQ ZPDRV
|
ZPBase .EQ ZPDRV
|
||||||
ZPShiftLo .EQ ZPDRV+2
|
ZPShiftLo .EQ ZPDRV+2
|
||||||
ZPShiftHi .EQ ZPDRV+4
|
ZPShiftHi .EQ ZPDRV+4
|
||||||
|
ZPCount .EQ ZPDRV+6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -262,20 +263,20 @@ SETPIXEL >STYA ZPBase
|
|||||||
SETPIXEL.MONO ldx CB.Cache+S.CB.X1+1 Get X Hi byte....
|
SETPIXEL.MONO ldx CB.Cache+S.CB.X1+1 Get X Hi byte....
|
||||||
|
|
||||||
lda DIV7.lo,x
|
lda DIV7.lo,x
|
||||||
sta .2+1
|
sta .1+1
|
||||||
lda DIV7.hi,x
|
lda DIV7.hi,x
|
||||||
sta .2+2
|
sta .1+2
|
||||||
|
|
||||||
lda MOD7.lo,x
|
lda MOD7.lo,x
|
||||||
sta .4+1
|
sta .2+1
|
||||||
lda MOD7.hi,x
|
lda MOD7.hi,x
|
||||||
sta .4+2
|
sta .2+2
|
||||||
|
|
||||||
lda DIV7.BASE,x
|
lda DIV7.BASE,x
|
||||||
ldx CB.Cache+S.CB.X1
|
ldx CB.Cache+S.CB.X1
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.2 adc $ffff,x DIV7 : x = X.LO, a = X DIV 7
|
.1 adc $ffff,x DIV7 : x = X.LO, a = X DIV 7
|
||||||
|
|
||||||
pha save X DIV 7
|
pha save X DIV 7
|
||||||
lsr
|
lsr
|
||||||
@ -290,7 +291,7 @@ SETPIXEL.MONO ldx CB.Cache+S.CB.X1+1 Get X Hi byte....
|
|||||||
tay
|
tay
|
||||||
sta $c000,y
|
sta $c000,y
|
||||||
|
|
||||||
.4 ldy $ffff,x MOD7 : x = X.LO, y = X MOD 7
|
.2 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
|
||||||
@ -322,8 +323,8 @@ SETPIXEL.C16 lda CB.Cache+S.CB.X1
|
|||||||
ror
|
ror
|
||||||
lsr CB.Cache+S.CB.X1+1
|
lsr CB.Cache+S.CB.X1+1
|
||||||
ror
|
ror
|
||||||
tay Y=CX/4 (range 0->139)
|
tay Y=X/4 (range 0->139)
|
||||||
lda DIV7.0,y A=CX/4/7 (range 0->19)
|
lda DIV7.0,y A=X/4/7 (range 0->19)
|
||||||
|
|
||||||
asl times 2 (range 0->38)
|
asl times 2 (range 0->38)
|
||||||
|
|
||||||
@ -424,7 +425,54 @@ HLINE.I lda CB.Cache+S.CB.MODE
|
|||||||
bit #S.CB.MODE.C16
|
bit #S.CB.MODE.C16
|
||||||
bne HLINE.C16
|
bne HLINE.C16
|
||||||
|
|
||||||
HLINE.MONO
|
HLINE.MONO lda CB.Cache+S.CB.X2 Count=X2-X1
|
||||||
|
sec
|
||||||
|
sbc CB.Cache+S.CB.X1
|
||||||
|
eor #$ff
|
||||||
|
sta ZPCount
|
||||||
|
lda CB.Cache+S.CB.X2+1
|
||||||
|
sbc CB.Cache+S.CB.X1+1
|
||||||
|
eor #$ff
|
||||||
|
sta ZPCount+1
|
||||||
|
|
||||||
|
ldx CB.Cache+S.CB.X1+1 Get X Hi byte....
|
||||||
|
|
||||||
|
lda DIV7.lo,x
|
||||||
|
sta .1+1
|
||||||
|
lda DIV7.hi,x
|
||||||
|
sta .1+2
|
||||||
|
|
||||||
|
lda MOD7.lo,x
|
||||||
|
sta .2+1
|
||||||
|
lda MOD7.hi,x
|
||||||
|
sta .2+2
|
||||||
|
|
||||||
|
lda DIV7.BASE,x
|
||||||
|
ldx CB.Cache+S.CB.X1
|
||||||
|
|
||||||
|
clc
|
||||||
|
.1 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)
|
||||||
|
sta ZPBase
|
||||||
|
lda BASEH,y
|
||||||
|
sta ZPBase+1
|
||||||
|
ply
|
||||||
|
lda COL.BANK,y
|
||||||
|
tay
|
||||||
|
sta $c000,y
|
||||||
|
|
||||||
|
.2 ldy $ffff,x MOD7 : x = X.LO, y = X MOD 7
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
HLINE.C16
|
HLINE.C16
|
||||||
@ -440,8 +488,163 @@ VLINE >STYA ZPBase
|
|||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
|
sta SET80STORE
|
||||||
|
|
||||||
|
VLINE.MONO ldx CB.Cache+S.CB.X1+1 Get X Hi byte....
|
||||||
|
|
||||||
|
lda DIV7.lo,x
|
||||||
|
sta .1+1
|
||||||
|
lda DIV7.hi,x
|
||||||
|
sta .1+2
|
||||||
|
|
||||||
|
lda MOD7.lo,x
|
||||||
|
sta .2+1
|
||||||
|
lda MOD7.hi,x
|
||||||
|
sta .2+2
|
||||||
|
|
||||||
|
lda DIV7.BASE,x
|
||||||
|
ldx CB.Cache+S.CB.X1
|
||||||
|
|
||||||
|
clc
|
||||||
|
|
||||||
|
.1 adc $ffff,x DIV7 : x = X.LO, a = X DIV 7
|
||||||
|
sta XDIV7 save X DIV 7
|
||||||
|
|
||||||
|
.2 lda $ffff,x MOD7 : x = X.LO, y = X MOD 7
|
||||||
|
sta XMOD7
|
||||||
|
|
||||||
|
lda CB.Cache+S.CB.OP
|
||||||
|
beq .4
|
||||||
|
|
||||||
|
ldx CB.Cache+S.CB.Y1
|
||||||
|
|
||||||
|
.3 lda XDIV7
|
||||||
|
tay
|
||||||
|
lsr
|
||||||
|
clc
|
||||||
|
adc BASEL,x
|
||||||
|
sta ZPBase
|
||||||
|
lda BASEH,x
|
||||||
|
sta ZPBase+1
|
||||||
|
|
||||||
|
ldx COL.BANK,y
|
||||||
|
sta $C000,x
|
||||||
|
|
||||||
|
ldy XMOD7
|
||||||
|
lda (ZPBase) XOR
|
||||||
|
eor Mono.Masks,y y = mod 7
|
||||||
|
sta (ZPBase)
|
||||||
|
|
||||||
|
inc CB.Cache+S.CB.Y1
|
||||||
|
ldx CB.Cache+S.CB.Y1
|
||||||
|
cpx CB.Cache+S.CB.Y2
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
sta CLR80STORE
|
||||||
|
rts
|
||||||
|
|
||||||
|
.4 lda (ZPBase)
|
||||||
|
ldx CB.Cache+S.CB.COLOR get color
|
||||||
|
bne .6
|
||||||
|
|
||||||
|
and Mono.NMasks,y includes And $7F for mono
|
||||||
|
sta (ZPBase)
|
||||||
|
sta CLR80STORE
|
||||||
|
rts
|
||||||
|
|
||||||
|
.6 and #$7F switch back this byte to mono
|
||||||
|
ora Mono.Masks,y
|
||||||
|
sta (ZPBase)
|
||||||
|
sta CLR80STORE
|
||||||
|
rts
|
||||||
|
|
||||||
|
VLINE.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)
|
||||||
|
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 ZPBase ZPBase now point to first of...
|
||||||
|
lda BASEH,x
|
||||||
|
sta ZPBase+1 ...the 4 columns
|
||||||
|
|
||||||
|
lda MOD7.0,y get MOD
|
||||||
|
|
||||||
|
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
|
||||||
|
and Color.Pixels,y apply color
|
||||||
|
sta GBYTE
|
||||||
|
|
||||||
|
sta SETPAGE2
|
||||||
|
|
||||||
|
lda (ZPBase)
|
||||||
|
and Color.NMasks,x reset existing pixel,
|
||||||
|
ora GBYTE
|
||||||
|
sta (ZPBase)
|
||||||
|
|
||||||
|
.10 inx
|
||||||
|
iny
|
||||||
|
|
||||||
|
lda Color.Masks,x
|
||||||
|
beq .11
|
||||||
|
and Color.Pixels,y apply color
|
||||||
|
sta GBYTE
|
||||||
|
|
||||||
|
sta CLRPAGE2
|
||||||
|
|
||||||
|
lda (ZPBase)
|
||||||
|
and Color.NMasks,x reset existing pixel,
|
||||||
|
ora GBYTE
|
||||||
|
sta (ZPBase)
|
||||||
|
|
||||||
|
.11 inc ZPBase
|
||||||
|
inx
|
||||||
|
iny
|
||||||
|
|
||||||
|
lda Color.Masks,x
|
||||||
|
beq .12
|
||||||
|
and Color.Pixels,y apply color
|
||||||
|
sta GBYTE
|
||||||
|
|
||||||
|
sta SETPAGE2
|
||||||
|
|
||||||
|
lda (ZPBase)
|
||||||
|
and Color.NMasks,x reset existing pixel,
|
||||||
|
ora GBYTE
|
||||||
|
sta (ZPBase)
|
||||||
|
|
||||||
|
.12 inx
|
||||||
|
iny
|
||||||
|
|
||||||
|
lda Color.Masks,x
|
||||||
|
beq .13
|
||||||
|
and Color.Pixels,y apply color
|
||||||
|
sta GBYTE
|
||||||
|
|
||||||
|
sta CLRPAGE2
|
||||||
|
|
||||||
|
lda (ZPBase)
|
||||||
|
and Color.NMasks,x reset existing pixel,
|
||||||
|
ora GBYTE
|
||||||
|
sta (ZPBase)
|
||||||
|
|
||||||
|
.13 sta CLR80STORE
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* FILLRECT
|
* FILLRECT
|
||||||
@ -516,16 +719,10 @@ Shifthi.hi .BS 7
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CB.Cache .BS S.CB
|
CB.Cache .BS S.CB
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CX .BS 2
|
XDIV7 .BS 1
|
||||||
CY .BS 1
|
XMOD7 .BS 1
|
||||||
COL .BS 1
|
|
||||||
GBYTE .BS 1
|
GBYTE .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SB.StartPage .BS 1
|
|
||||||
SB.Page .BS 1
|
|
||||||
SB.StartCol .BS 1
|
|
||||||
SB.Col .BS 1
|
|
||||||
*--------------------------------------
|
|
||||||
STAT .DA #0
|
STAT .DA #0
|
||||||
.DA #0,#0,#0
|
.DA #0,#0,#0
|
||||||
>PSTR "Apple II DHGR"
|
>PSTR "Apple II DHGR"
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
216
LIB/LIBGFX.S.txt
216
LIB/LIBGFX.S.txt
@ -120,19 +120,26 @@ DrawLine ldy #S.CB.Y2+1
|
|||||||
jmp GoDevGFX DX=0 : VLIN Y1,Y2 At X1
|
jmp GoDevGFX DX=0 : VLIN Y1,Y2 At X1
|
||||||
|
|
||||||
.1 >SWAP16 CB.Cache+S.CB.X1,CB.Cache+S.CB.X2
|
.1 >SWAP16 CB.Cache+S.CB.X1,CB.Cache+S.CB.X2
|
||||||
>SWAP16 CB.Cache+S.CB.Y1,CB.Cache+S.CB.Y2
|
* >SWAP16 CB.Cache+S.CB.Y1,CB.Cache+S.CB.Y2
|
||||||
>NOT16 DX swap X1/X2, Y1/Y2, set DX=-DX
|
lda CB.Cache+S.CB.Y1
|
||||||
|
ldx CB.Cache+S.CB.Y2
|
||||||
|
stx CB.Cache+S.CB.Y1
|
||||||
|
sta CB.Cache+S.CB.Y2
|
||||||
|
|
||||||
.2 stz IY
|
>NOT16 DX swap X1/X2, Y1/Y2, set DX=-DX (DX positive)
|
||||||
|
|
||||||
sec
|
.2 lda #1
|
||||||
|
sta IY
|
||||||
|
|
||||||
lda CB.Cache+S.CB.Y2
|
lda CB.Cache+S.CB.Y2
|
||||||
|
sec
|
||||||
sbc CB.Cache+S.CB.Y1
|
sbc CB.Cache+S.CB.Y1
|
||||||
sta DY
|
sta DY
|
||||||
|
|
||||||
lda CB.Cache+S.CB.Y2+1
|
* lda CB.Cache+S.CB.Y2+1
|
||||||
sbc CB.Cache+S.CB.Y1+1
|
lda #0
|
||||||
|
* sbc CB.Cache+S.CB.Y1+1
|
||||||
|
sbc #0
|
||||||
sta DY+1 DY% = Y2% - Y1%
|
sta DY+1 DY% = Y2% - Y1%
|
||||||
|
|
||||||
bmi .3 DY < 0 ...
|
bmi .3 DY < 0 ...
|
||||||
@ -144,25 +151,28 @@ DrawLine ldy #S.CB.Y2+1
|
|||||||
jmp GoDevGFX DY=0 : HLIN X1,X2 At Y1
|
jmp GoDevGFX DY=0 : HLIN X1,X2 At Y1
|
||||||
|
|
||||||
.3 >NOT16 DY set DY=-DY
|
.3 >NOT16 DY set DY=-DY
|
||||||
dec IY
|
lda #$ff
|
||||||
|
sta IY set IY=-1
|
||||||
|
|
||||||
.4 ldx #DEVMGR.GFX.SETPIXEL
|
.4 ldx #DEVMGR.GFX.SETPIXEL
|
||||||
jsr GoDevGFX
|
jsr GoDevGFX
|
||||||
|
|
||||||
sec
|
|
||||||
lda DX
|
lda DX
|
||||||
|
sec
|
||||||
sbc DY
|
sbc DY
|
||||||
sta DXY
|
tax
|
||||||
|
|
||||||
lda DX+1
|
lda DX+1
|
||||||
sbc DY+1
|
* sbc DY+1
|
||||||
sta DXY+1
|
sbc #0
|
||||||
bmi DrawLine.IncY DY is greater than DX, we will increase on Y axis
|
bmi DrawLine.IncY DY is greater than DX, we will increase on Y axis
|
||||||
|
|
||||||
ora DXY
|
txa
|
||||||
bne DrawLine.IncX DY is lower than DX, we will increase on X axis
|
beq DrawLine.IncXY DX=DY, go inc X & Y
|
||||||
|
|
||||||
DrawLine.XY lda DX DX=DY
|
jmp DrawLine.IncX DY is lower than DX, we will increase on X axis
|
||||||
|
|
||||||
|
DrawLine.IncXY lda DX DX=DY
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta Counter
|
sta Counter
|
||||||
lda DX+1
|
lda DX+1
|
||||||
@ -178,23 +188,12 @@ DrawLine.XY lda DX DX=DY
|
|||||||
bne .3
|
bne .3
|
||||||
inc CB.Cache+S.CB.X1+1
|
inc CB.Cache+S.CB.X1+1
|
||||||
|
|
||||||
.3 bit IY
|
.3 lda CB.Cache+S.CB.Y1 Y1=Y1+IY
|
||||||
bmi .4
|
clc
|
||||||
|
adc IY
|
||||||
inc CB.Cache+S.CB.Y1
|
|
||||||
bne .5
|
|
||||||
inc CB.Cache+S.CB.Y1+1
|
|
||||||
bra .5
|
|
||||||
|
|
||||||
.4 sec
|
|
||||||
lda CB.Cache+S.CB.Y1
|
|
||||||
sbc #1
|
|
||||||
sta CB.Cache+S.CB.Y1
|
sta CB.Cache+S.CB.Y1
|
||||||
bcs .5
|
|
||||||
|
|
||||||
dec CB.Cache+S.CB.Y1+1
|
ldx #DEVMGR.GFX.SETPIXEL
|
||||||
|
|
||||||
.5 ldx #DEVMGR.GFX.SETPIXEL
|
|
||||||
jsr GoDevGFX
|
jsr GoDevGFX
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
@ -207,7 +206,82 @@ DrawLine.IncY lda DY
|
|||||||
eor #$ff
|
eor #$ff
|
||||||
sta Counter+1
|
sta Counter+1
|
||||||
|
|
||||||
rts
|
lda DX IE=2*DX
|
||||||
|
asl
|
||||||
|
sta IE
|
||||||
|
pha
|
||||||
|
|
||||||
|
lda DX+1
|
||||||
|
rol
|
||||||
|
sta IE+1
|
||||||
|
tax
|
||||||
|
|
||||||
|
pla D=IE-DY
|
||||||
|
sec
|
||||||
|
sbc DY
|
||||||
|
sta D
|
||||||
|
|
||||||
|
txa
|
||||||
|
sbc DY+1
|
||||||
|
sta D+1
|
||||||
|
|
||||||
|
lda DX INE=2*(DX-DY)
|
||||||
|
sec
|
||||||
|
sbc DY
|
||||||
|
pha
|
||||||
|
|
||||||
|
lda DX+1
|
||||||
|
sbc DY+1
|
||||||
|
tax
|
||||||
|
|
||||||
|
pla
|
||||||
|
|
||||||
|
asl
|
||||||
|
sta INE
|
||||||
|
txa
|
||||||
|
rol
|
||||||
|
sta INE+1
|
||||||
|
|
||||||
|
.1 inc Counter
|
||||||
|
bne .2
|
||||||
|
inc Counter+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
.2 lda D+1 IF D < 0 ...
|
||||||
|
bmi .4
|
||||||
|
|
||||||
|
lda D D > 0 : D=D+INE
|
||||||
|
clc
|
||||||
|
adc INE
|
||||||
|
sta D
|
||||||
|
lda D+1
|
||||||
|
adc INE+1
|
||||||
|
sta D+1
|
||||||
|
|
||||||
|
inc CB.Cache+S.CB.X1 X1=X1+1
|
||||||
|
bne .5
|
||||||
|
inc CB.Cache+S.CB.X1+1
|
||||||
|
|
||||||
|
bra .5
|
||||||
|
|
||||||
|
.4 lda D D > 0 : D=D+IE
|
||||||
|
clc
|
||||||
|
adc IE
|
||||||
|
sta D
|
||||||
|
lda D+1
|
||||||
|
adc IE+1
|
||||||
|
sta D+1
|
||||||
|
|
||||||
|
.5 lda CB.Cache+S.CB.Y1 Y1=Y1+IY
|
||||||
|
clc
|
||||||
|
adc IY
|
||||||
|
sta CB.Cache+S.CB.Y1
|
||||||
|
|
||||||
|
ldx #DEVMGR.GFX.SETPIXEL
|
||||||
|
jsr GoDevGFX
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.8 rts
|
||||||
|
|
||||||
DrawLine.IncX lda DX
|
DrawLine.IncX lda DX
|
||||||
eor #$ff
|
eor #$ff
|
||||||
@ -216,7 +290,83 @@ DrawLine.IncX lda DX
|
|||||||
eor #$ff
|
eor #$ff
|
||||||
sta Counter+1
|
sta Counter+1
|
||||||
|
|
||||||
rts
|
lda DY IE=2*DY
|
||||||
|
asl
|
||||||
|
sta IE
|
||||||
|
pha
|
||||||
|
|
||||||
|
* lda DY+1
|
||||||
|
lda #0
|
||||||
|
rol
|
||||||
|
sta IE+1
|
||||||
|
tax
|
||||||
|
|
||||||
|
pla D=IE-DX
|
||||||
|
sec
|
||||||
|
sbc DX
|
||||||
|
sta D
|
||||||
|
|
||||||
|
txa
|
||||||
|
sbc DX+1
|
||||||
|
sta D+1
|
||||||
|
|
||||||
|
lda DY INE=2*(DY-DX)
|
||||||
|
sec
|
||||||
|
sbc DX
|
||||||
|
pha
|
||||||
|
|
||||||
|
* lda DY+1
|
||||||
|
lda #0
|
||||||
|
sbc DX+1
|
||||||
|
tax
|
||||||
|
|
||||||
|
pla
|
||||||
|
asl
|
||||||
|
sta INE
|
||||||
|
txa
|
||||||
|
rol
|
||||||
|
sta INE+1
|
||||||
|
|
||||||
|
.1 inc Counter
|
||||||
|
bne .2
|
||||||
|
inc Counter+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
.2 lda D+1 ID D < 0 ....
|
||||||
|
bmi .4
|
||||||
|
|
||||||
|
lda D D > 0 : D=D+INE
|
||||||
|
clc
|
||||||
|
adc INE
|
||||||
|
sta D
|
||||||
|
lda D+1
|
||||||
|
adc INE+1
|
||||||
|
sta D+1
|
||||||
|
|
||||||
|
lda CB.Cache+S.CB.Y1 Y1=Y1+IY
|
||||||
|
clc
|
||||||
|
adc IY
|
||||||
|
sta CB.Cache+S.CB.Y1
|
||||||
|
|
||||||
|
bra .5
|
||||||
|
|
||||||
|
.4 lda D D < 0 : D=D+IE
|
||||||
|
clc
|
||||||
|
adc IE
|
||||||
|
sta D
|
||||||
|
lda D+1
|
||||||
|
adc IE+1
|
||||||
|
sta D+1
|
||||||
|
|
||||||
|
.5 inc CB.Cache+S.CB.X1 X1=X1+1
|
||||||
|
bne .6
|
||||||
|
inc CB.Cache+S.CB.X1+1
|
||||||
|
|
||||||
|
.6 ldx #DEVMGR.GFX.SETPIXEL
|
||||||
|
jsr GoDevGFX
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetCB >PULLW ZPCBPtr
|
GetCB >PULLW ZPCBPtr
|
||||||
|
|
||||||
@ -235,7 +385,9 @@ hDev .BS 1
|
|||||||
DX .BS 2
|
DX .BS 2
|
||||||
DY .BS 2
|
DY .BS 2
|
||||||
IY .BS 1
|
IY .BS 1
|
||||||
DXY .BS 2
|
IE .BS 2
|
||||||
|
D .BS 2
|
||||||
|
INE .BS 2
|
||||||
Counter .BS 2
|
Counter .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CB.Cache .BS S.CB
|
CB.Cache .BS S.CB
|
||||||
|
@ -42,6 +42,8 @@ L.MouseData .DA MouseData
|
|||||||
L.SetPixel.CB .DA SetPixel.CB
|
L.SetPixel.CB .DA SetPixel.CB
|
||||||
L.DrawLine1.CB .DA DrawLine1.CB
|
L.DrawLine1.CB .DA DrawLine1.CB
|
||||||
L.DrawLine2.CB .DA DrawLine2.CB
|
L.DrawLine2.CB .DA DrawLine2.CB
|
||||||
|
L.DrawLine3.CB .DA DrawLine3.CB
|
||||||
|
L.DrawLine4.CB .DA DrawLine4.CB
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.MSG.INIT
|
CS.INIT >LDYA L.MSG.INIT
|
||||||
@ -225,6 +227,10 @@ Destop.Paint lda #S.CB.MODE.C16
|
|||||||
>LIBCALL hLibGFX,LIBGFX.DrawLine
|
>LIBCALL hLibGFX,LIBGFX.DrawLine
|
||||||
>PUSHW L.DrawLine2.CB
|
>PUSHW L.DrawLine2.CB
|
||||||
>LIBCALL hLibGFX,LIBGFX.DrawLine
|
>LIBCALL hLibGFX,LIBGFX.DrawLine
|
||||||
|
>PUSHW L.DrawLine3.CB
|
||||||
|
>LIBCALL hLibGFX,LIBGFX.DrawLine
|
||||||
|
>PUSHW L.DrawLine4.CB
|
||||||
|
>LIBCALL hLibGFX,LIBGFX.DrawLine
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -253,21 +259,39 @@ SetPixel.Y .BS 2
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DrawLine1.CB .BS 1 hDC
|
DrawLine1.CB .BS 1 hDC
|
||||||
DrawLine1.OP .DA #0
|
DrawLine1.OP .DA #0
|
||||||
DrawLine1.Mode .DA #S.CB.MODE.MONO
|
DrawLine1.Mode .DA #S.CB.MODE.C16
|
||||||
DrawLine1.Color .DA #1
|
DrawLine1.Color .DA #1
|
||||||
DrawLine1.X1 .DA 200
|
DrawLine1.X1 .DA 80
|
||||||
DrawLine1.Y1 .DA 0
|
DrawLine1.Y1 .DA 191
|
||||||
DrawLine1.X2 .DA 200+191
|
DrawLine1.X2 .DA 80+191
|
||||||
DrawLine1.Y2 .DA 191
|
DrawLine1.Y2 .DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DrawLine2.CB .BS 1 hDC
|
DrawLine2.CB .BS 1 hDC
|
||||||
DrawLine2.OP .DA #0
|
DrawLine2.OP .DA #0
|
||||||
DrawLine2.Mode .DA #S.CB.MODE.C16
|
DrawLine2.Mode .DA #S.CB.MODE.MONO
|
||||||
DrawLine2.Color .DA #8
|
DrawLine2.Color .DA #8
|
||||||
DrawLine2.X1 .DA 220
|
DrawLine2.X1 .DA 90
|
||||||
DrawLine2.Y1 .DA 0
|
DrawLine2.Y1 .DA 0
|
||||||
DrawLine2.X2 .DA 220+191
|
DrawLine2.X2 .DA 140
|
||||||
DrawLine2.Y2 .DA 191
|
DrawLine2.Y2 .DA 191
|
||||||
|
*--------------------------------------
|
||||||
|
DrawLine3.CB .BS 1 hDC
|
||||||
|
DrawLine3.OP .DA #0
|
||||||
|
DrawLine3.Mode .DA #S.CB.MODE.MONO
|
||||||
|
DrawLine3.Color .DA #8
|
||||||
|
DrawLine3.X1 .DA 100
|
||||||
|
DrawLine3.Y1 .DA 0
|
||||||
|
DrawLine3.X2 .DA 100+191
|
||||||
|
DrawLine3.Y2 .DA 191
|
||||||
|
*--------------------------------------
|
||||||
|
DrawLine4.CB .BS 1 hDC
|
||||||
|
DrawLine4.OP .DA #0
|
||||||
|
DrawLine4.Mode .DA #S.CB.MODE.MONO
|
||||||
|
DrawLine4.Color .DA #8
|
||||||
|
DrawLine4.X1 .DA 110
|
||||||
|
DrawLine4.Y1 .DA 0
|
||||||
|
DrawLine4.X2 .DA 559
|
||||||
|
DrawLine4.Y2 .DA 191
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SBIN/DESKTOP.S
|
SAVE /A2OSX.SRC/SBIN/DESKTOP.S
|
||||||
ASM
|
ASM
|
||||||
|
Loading…
Reference in New Issue
Block a user