2017-11-29 16:28:13 +00:00
|
|
|
|
NEW
|
2019-07-30 08:57:25 +00:00
|
|
|
|
AUTO 3,1
|
2017-11-29 16:28:13 +00:00
|
|
|
|
*--------------------------------------
|
2020-10-26 16:32:51 +00:00
|
|
|
|
* drawline(short int hWND, short int OP, short int COLOR, int X1, int Y1, int X2, int X2)
|
2017-11-29 16:28:13 +00:00
|
|
|
|
*--------------------------------------
|
2020-10-27 16:33:10 +00:00
|
|
|
|
DrawLine jsr DRAW.PullY2X2Y1X1
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2020-10-02 14:57:05 +00:00
|
|
|
|
>PULLB CB.Cache+S.CB.COLOR
|
|
|
|
|
>PULLB CB.Cache+S.CB.OP
|
2020-10-27 16:33:10 +00:00
|
|
|
|
|
|
|
|
|
jsr DRAW.PullWND
|
|
|
|
|
|
2020-10-02 14:57:05 +00:00
|
|
|
|
lda CB.Cache+S.CB.X2
|
2017-11-29 16:28:13 +00:00
|
|
|
|
sec
|
|
|
|
|
sbc CB.Cache+S.CB.X1
|
|
|
|
|
sta DX
|
|
|
|
|
lda CB.Cache+S.CB.X2+1
|
|
|
|
|
sbc CB.Cache+S.CB.X1+1
|
|
|
|
|
sta DX+1 DX = X2 - X1
|
|
|
|
|
|
|
|
|
|
bmi .1 DX < 0....
|
|
|
|
|
ora DX
|
|
|
|
|
bne .2 DX > 0...
|
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
lda #S.CB.CMD.VLINE DX=0 : VLINE Y1,Y2 At X1
|
|
|
|
|
bra .20
|
|
|
|
|
*--------------------------------------
|
2017-11-29 16:28:13 +00:00
|
|
|
|
.1 >SWAP16 CB.Cache+S.CB.X1,CB.Cache+S.CB.X2
|
2020-10-06 06:27:35 +00:00
|
|
|
|
>SWAP16 CB.Cache+S.CB.Y1,CB.Cache+S.CB.Y2
|
2017-11-29 16:28:13 +00:00
|
|
|
|
|
|
|
|
|
>NOT16 DX swap X1/X2, Y1/Y2, set DX=-DX (DX positive)
|
|
|
|
|
|
|
|
|
|
.2 lda #1
|
|
|
|
|
sta IY
|
|
|
|
|
|
|
|
|
|
lda CB.Cache+S.CB.Y2
|
|
|
|
|
sec
|
|
|
|
|
sbc CB.Cache+S.CB.Y1
|
|
|
|
|
sta DY
|
2020-10-06 06:27:35 +00:00
|
|
|
|
lda CB.Cache+S.CB.Y2+1
|
|
|
|
|
sbc CB.Cache+S.CB.Y1+1
|
2020-10-26 16:32:51 +00:00
|
|
|
|
sta DY+1 DY = Y2 - Y1
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
bmi .3 DY < 0 ...
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
ora DY
|
|
|
|
|
bne .4
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
|
|
|
|
lda #S.CB.CMD.HLINE DY=0 : HLINE X1,X2 At Y1
|
|
|
|
|
|
|
|
|
|
.20 sta CB.Cache+S.CB.CMD
|
|
|
|
|
|
|
|
|
|
jsr CLIP.CB.Cache
|
|
|
|
|
bcs .8
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
jmp GFXWrite.CB
|
2020-10-26 16:32:51 +00:00
|
|
|
|
.8 rts
|
2020-10-06 06:27:35 +00:00
|
|
|
|
*--------------------------------------
|
2017-11-29 16:28:13 +00:00
|
|
|
|
.3 >NOT16 DY set DY=-DY
|
|
|
|
|
lda #$ff
|
|
|
|
|
sta IY set IY=-1
|
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
.4 jsr CLIP.Line
|
|
|
|
|
bcs .8
|
|
|
|
|
|
|
|
|
|
lda #S.CB.CMD.SETPIXEL
|
2017-11-29 16:28:13 +00:00
|
|
|
|
sta CB.Cache+S.CB.CMD
|
2019-01-10 16:26:58 +00:00
|
|
|
|
jsr GFXWrite.CB
|
2017-11-29 16:28:13 +00:00
|
|
|
|
lda DX
|
|
|
|
|
sec
|
|
|
|
|
sbc DY
|
|
|
|
|
tax
|
|
|
|
|
lda DX+1
|
2020-10-06 06:27:35 +00:00
|
|
|
|
sbc DY+1
|
2017-11-29 16:28:13 +00:00
|
|
|
|
bmi DrawLine.IncY DY is greater than DX, we will increase on Y axis
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
txa
|
|
|
|
|
beq DrawLine.IncXY DX=DY, go inc X & Y
|
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
jmp DrawLine.IncX DY is lower than DX, we will increase on X axis
|
|
|
|
|
*--------------------------------------
|
2017-11-29 16:28:13 +00:00
|
|
|
|
DrawLine.IncXY lda DX DX=DY
|
|
|
|
|
eor #$ff
|
|
|
|
|
sta Counter
|
|
|
|
|
lda DX+1
|
|
|
|
|
eor #$ff
|
|
|
|
|
sta Counter+1
|
|
|
|
|
|
|
|
|
|
.1 inc Counter
|
|
|
|
|
bne .2
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
inc Counter+1
|
|
|
|
|
beq .8
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
.2 inc CB.Cache+S.CB.X1
|
|
|
|
|
bne .3
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
inc CB.Cache+S.CB.X1+1
|
|
|
|
|
.3 lda CB.Cache+S.CB.Y1 Y1=Y1+IY
|
|
|
|
|
clc
|
|
|
|
|
adc IY
|
|
|
|
|
sta CB.Cache+S.CB.Y1
|
2019-01-10 16:26:58 +00:00
|
|
|
|
jsr GFXWrite.CB
|
2017-11-29 16:28:13 +00:00
|
|
|
|
bra .1
|
2020-10-01 06:08:33 +00:00
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
.8 rts
|
|
|
|
|
*--------------------------------------
|
2017-11-29 16:28:13 +00:00
|
|
|
|
DrawLine.IncY lda DY
|
|
|
|
|
eor #$ff
|
|
|
|
|
sta Counter
|
|
|
|
|
lda DY+1
|
|
|
|
|
eor #$ff
|
|
|
|
|
sta Counter+1
|
|
|
|
|
|
|
|
|
|
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
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
.1 inc Counter
|
|
|
|
|
bne .2
|
2020-10-02 14:57:05 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
inc Counter+1
|
|
|
|
|
beq .8
|
|
|
|
|
|
|
|
|
|
.2 lda D+1 IF D < 0 ...
|
|
|
|
|
bmi .4
|
2020-10-02 14:57:05 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
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
|
2020-10-02 14:57:05 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
inc CB.Cache+S.CB.X1+1
|
2019-10-03 06:25:27 +00:00
|
|
|
|
bra .5
|
2020-10-02 14:57:05 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
.4 lda D D > 0 : D=D+IE
|
|
|
|
|
clc
|
|
|
|
|
adc IE
|
|
|
|
|
sta D
|
|
|
|
|
lda D+1
|
|
|
|
|
adc IE+1
|
|
|
|
|
sta D+1
|
2020-10-02 14:57:05 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
.5 lda CB.Cache+S.CB.Y1 Y1=Y1+IY
|
|
|
|
|
clc
|
|
|
|
|
adc IY
|
|
|
|
|
sta CB.Cache+S.CB.Y1
|
2019-01-10 16:26:58 +00:00
|
|
|
|
jsr GFXWrite.CB
|
2017-11-29 16:28:13 +00:00
|
|
|
|
bra .1
|
2020-10-02 14:57:05 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
.8 rts
|
2020-10-06 06:27:35 +00:00
|
|
|
|
*--------------------------------------
|
2017-11-29 16:28:13 +00:00
|
|
|
|
DrawLine.IncX lda DX
|
|
|
|
|
eor #$ff
|
|
|
|
|
sta Counter
|
|
|
|
|
lda DX+1
|
|
|
|
|
eor #$ff
|
2020-10-26 16:32:51 +00:00
|
|
|
|
sta Counter+1
|
2017-11-29 16:28:13 +00:00
|
|
|
|
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
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
.1 inc Counter
|
|
|
|
|
bne .2
|
2020-10-02 14:57:05 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
inc Counter+1
|
|
|
|
|
beq .8
|
|
|
|
|
|
|
|
|
|
.2 lda D+1 ID D < 0 ....
|
|
|
|
|
bmi .4
|
2020-10-02 14:57:05 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
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
|
2019-10-03 06:25:27 +00:00
|
|
|
|
bra .5
|
2020-10-02 14:57:05 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
.4 lda D D < 0 : D=D+IE
|
|
|
|
|
clc
|
|
|
|
|
adc IE
|
|
|
|
|
sta D
|
2017-11-30 16:33:33 +00:00
|
|
|
|
lda D+1
|
2017-11-29 16:28:13 +00:00
|
|
|
|
adc IE+1
|
|
|
|
|
sta D+1
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
.5 inc CB.Cache+S.CB.X1 X1=X1+1
|
|
|
|
|
bne .6
|
2020-10-02 14:57:05 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
inc CB.Cache+S.CB.X1+1
|
2020-10-02 14:57:05 +00:00
|
|
|
|
|
2019-01-10 16:26:58 +00:00
|
|
|
|
.6 jsr GFXWrite.CB
|
2017-11-29 16:28:13 +00:00
|
|
|
|
bra .1
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2017-11-29 16:28:13 +00:00
|
|
|
|
.8 rts
|
|
|
|
|
*--------------------------------------
|
2020-10-27 16:33:10 +00:00
|
|
|
|
* fillrectangle (short int hWND, short int OP, short int COLOR, int X1, int Y1, int X2, int Y2)
|
2020-10-26 06:38:50 +00:00
|
|
|
|
*--------------------------------------
|
2020-10-27 16:33:10 +00:00
|
|
|
|
FillRectangle jsr DRAW.PullY2X2Y1X1
|
|
|
|
|
|
|
|
|
|
>PULLB CB.Cache+S.CB.COLOR
|
|
|
|
|
>PULLB CB.Cache+S.CB.OP
|
|
|
|
|
|
|
|
|
|
jsr DRAW.PullWND
|
|
|
|
|
|
|
|
|
|
lda #S.CB.CMD.FILLRECT
|
|
|
|
|
sta CB.Cache+S.CB.CMD
|
|
|
|
|
|
|
|
|
|
jsr CLIP.CB.Cache
|
|
|
|
|
bcs .8
|
|
|
|
|
|
|
|
|
|
jmp GFXWrite.CB
|
2020-10-26 06:38:50 +00:00
|
|
|
|
|
2020-10-27 16:33:10 +00:00
|
|
|
|
.8 rts
|
2020-10-26 06:38:50 +00:00
|
|
|
|
*--------------------------------------
|
2020-10-27 16:33:10 +00:00
|
|
|
|
* drawbitmap (short int hWND, short int OP, short int M, S.BM *bitmap, int X1, int Y1)
|
2020-10-06 06:27:35 +00:00
|
|
|
|
*--------------------------------------
|
2020-10-27 16:33:10 +00:00
|
|
|
|
DrawBitMap lda #S.CB.CMD.BITBLT
|
|
|
|
|
jsr CB.InitCacheA
|
|
|
|
|
|
|
|
|
|
jsr DRAW.PullY1X1
|
|
|
|
|
|
|
|
|
|
>PULLW CB.Cache+S.CB.SrcPtr
|
|
|
|
|
|
|
|
|
|
>PULLB CB.Cache+S.CB.M
|
|
|
|
|
>PULLB CB.Cache+S.CB.OP
|
|
|
|
|
|
|
|
|
|
jsr DRAW.PullWND
|
|
|
|
|
|
|
|
|
|
jsr CLIP.CB.Cache
|
|
|
|
|
bcs .8
|
|
|
|
|
|
|
|
|
|
jmp GFXWrite.CB
|
|
|
|
|
|
|
|
|
|
.8 rts
|
2020-10-06 06:27:35 +00:00
|
|
|
|
*--------------------------------------
|
2020-10-26 06:38:50 +00:00
|
|
|
|
DRAW.xBMAtDXDY >LDYA L.BMs,x
|
|
|
|
|
DRAW.yaBMAtDXDY >STYA ZPBMPtr Src BM
|
2020-10-20 06:01:04 +00:00
|
|
|
|
|
|
|
|
|
lda #S.CB.CMD.BITBLT
|
|
|
|
|
jsr CB.InitCacheA
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2020-10-20 06:01:04 +00:00
|
|
|
|
lda #S.CB.OP.MASK+S.CB.OP.ORA+S.CB.OP.COLOR
|
|
|
|
|
sta CB.Cache+S.CB.OP
|
|
|
|
|
|
|
|
|
|
lda #S.CB.M.C16
|
|
|
|
|
sta CB.Cache+S.CB.M
|
|
|
|
|
|
|
|
|
|
ldx #3
|
|
|
|
|
|
|
|
|
|
.1 lda DX,x
|
|
|
|
|
sta CB.Cache+S.CB.X1,x
|
|
|
|
|
dex
|
|
|
|
|
bpl .1
|
|
|
|
|
|
|
|
|
|
ldx #3
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2020-10-20 06:01:04 +00:00
|
|
|
|
ldy #S.BM.W+3
|
|
|
|
|
|
|
|
|
|
.2 lda (ZPBMPtr),y
|
|
|
|
|
sta CB.Cache+S.CB.SrcW,x
|
|
|
|
|
dey
|
|
|
|
|
dex
|
|
|
|
|
bpl .2
|
|
|
|
|
|
|
|
|
|
lda ZPBMPtr
|
|
|
|
|
sta CB.Cache+S.CB.SrcPtr
|
|
|
|
|
|
|
|
|
|
lda ZPBMPtr+1
|
|
|
|
|
sta CB.Cache+S.CB.SrcPtr+1
|
|
|
|
|
|
|
|
|
|
jmp PutCBCache2CBBuf
|
|
|
|
|
*--------------------------------------
|
2020-10-27 16:33:10 +00:00
|
|
|
|
* drawtext (short int hWND, short int OP, short int hFONT, int X1, int Y1, char *str)
|
2020-10-22 06:08:25 +00:00
|
|
|
|
*--------------------------------------
|
2020-10-27 16:33:10 +00:00
|
|
|
|
DrawText lda #S.CB.CMD.DRAWTEXT2
|
|
|
|
|
jsr CB.InitCacheA
|
|
|
|
|
|
|
|
|
|
>PULLW CB.Cache+S.CB.TxtPtr
|
|
|
|
|
|
|
|
|
|
jsr DRAW.PullY1X1
|
|
|
|
|
|
|
|
|
|
>PULLB CB.Cache+S.CB.hFont
|
|
|
|
|
>PULLB CB.Cache+S.CB.OP
|
|
|
|
|
|
|
|
|
|
jsr DRAW.PullWND
|
|
|
|
|
|
|
|
|
|
jsr CLIP.CB.Cache
|
|
|
|
|
bcs .8
|
|
|
|
|
|
|
|
|
|
jmp GFXWrite.CB
|
|
|
|
|
|
|
|
|
|
.8 rts
|
2020-10-22 06:08:25 +00:00
|
|
|
|
*--------------------------------------
|
2020-10-26 16:32:51 +00:00
|
|
|
|
DRAW.YATextAtDXDY
|
2020-10-20 06:01:04 +00:00
|
|
|
|
phx
|
|
|
|
|
jsr CB.ClearCache
|
|
|
|
|
>STYA CB.Cache+S.CB.TxtPtr
|
|
|
|
|
plx
|
|
|
|
|
stx CB.Cache+S.CB.hFont
|
|
|
|
|
|
|
|
|
|
lda #S.CB.CMD.DRAWTEXT2
|
|
|
|
|
sta CB.Cache+S.CB.CMD
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2020-10-20 06:01:04 +00:00
|
|
|
|
lda #0
|
|
|
|
|
ror
|
|
|
|
|
eor #S.CB.OP.INVERSE
|
|
|
|
|
ora #S.CB.OP.SET
|
|
|
|
|
|
|
|
|
|
* lda #S.CB.OP.XOR
|
|
|
|
|
sta CB.Cache+S.CB.OP
|
|
|
|
|
|
|
|
|
|
lda #S.CB.M.MONO
|
|
|
|
|
sta CB.Cache+S.CB.M
|
|
|
|
|
|
|
|
|
|
ldx #3
|
|
|
|
|
|
|
|
|
|
.1 lda DX,x DX,DY -> S.CB.X1,S.CB.Y1
|
|
|
|
|
sta CB.Cache+S.CB.X1,x
|
|
|
|
|
dex
|
|
|
|
|
bpl .1
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2020-10-20 06:01:04 +00:00
|
|
|
|
jmp PutCBCache2CBBuf
|
|
|
|
|
*--------------------------------------
|
2020-10-27 16:33:10 +00:00
|
|
|
|
DRAW.PullY2X2Y1X1
|
|
|
|
|
ldx #7
|
|
|
|
|
bra DRAW.PullX
|
|
|
|
|
|
|
|
|
|
DRAW.PullY1X1 ldx #3
|
|
|
|
|
|
|
|
|
|
DRAW.PullX >PULLA
|
|
|
|
|
sta CB.Cache+S.CB.X1,x
|
|
|
|
|
dex
|
|
|
|
|
bpl DRAW.PullX
|
|
|
|
|
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
DRAW.PullWND >PULLA hWND
|
|
|
|
|
>SYSCALL2 GetMemPtr
|
|
|
|
|
>STYA ZPWNDPtr
|
|
|
|
|
|
|
|
|
|
jsr DRAW.ToGlobal set CB.Cache to global coord.
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
DRAW.GetInnerWND
|
|
|
|
|
ldy #S.OBJ.X1
|
|
|
|
|
|
|
|
|
|
lda (ZPWNDPtr),y
|
|
|
|
|
sta OBJ.Cache+S.OBJ.X1
|
|
|
|
|
iny
|
|
|
|
|
lda (ZPWNDPtr),y
|
|
|
|
|
sta OBJ.Cache+S.OBJ.X1+1
|
|
|
|
|
|
|
|
|
|
ldy #S.WND.InnerY1
|
|
|
|
|
|
|
|
|
|
lda (ZPWNDPtr),y
|
|
|
|
|
sta OBJ.Cache+S.OBJ.Y1
|
|
|
|
|
iny
|
|
|
|
|
lda (ZPWNDPtr),y
|
|
|
|
|
sta OBJ.Cache+S.OBJ.Y1+1
|
|
|
|
|
|
|
|
|
|
ldy #S.WND.InnerW
|
|
|
|
|
|
|
|
|
|
lda (ZPWNDPtr),y
|
|
|
|
|
sta OBJ.Cache+S.OBJ.W
|
|
|
|
|
iny
|
|
|
|
|
lda (ZPWNDPtr),y
|
|
|
|
|
sta OBJ.Cache+S.OBJ.W+1
|
|
|
|
|
|
|
|
|
|
iny #S.WND.InnerH
|
|
|
|
|
lda (ZPWNDPtr),y
|
|
|
|
|
sta OBJ.Cache+S.OBJ.H
|
|
|
|
|
iny
|
|
|
|
|
lda (ZPWNDPtr),y
|
|
|
|
|
sta OBJ.Cache+S.OBJ.H+1
|
|
|
|
|
|
|
|
|
|
>LDYA L.OBJ.Cache
|
|
|
|
|
jmp OBJ.SetX2Y2
|
|
|
|
|
*--------------------------------------
|
2020-10-06 06:27:35 +00:00
|
|
|
|
DRAW.ToGlobal >LDYA ZPWNDPtr
|
|
|
|
|
>STYA ZPPtr1
|
|
|
|
|
|
|
|
|
|
.1 ldy #S.OBJ.X1
|
|
|
|
|
ldx #S.CB.X1
|
|
|
|
|
jsr DRAW.AddP1YtoCBX
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
ldy #S.WND.InnerY1
|
|
|
|
|
ldx #S.CB.Y1
|
|
|
|
|
jsr DRAW.AddP1YtoCBX
|
|
|
|
|
|
|
|
|
|
ldy #S.OBJ.X1
|
|
|
|
|
ldx #S.CB.X2
|
|
|
|
|
jsr DRAW.AddP1YtoCBX
|
|
|
|
|
|
|
|
|
|
ldy #S.WND.InnerY1
|
|
|
|
|
ldx #S.CB.Y2
|
|
|
|
|
jsr DRAW.AddP1YtoCBX
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
ldy #S.OBJ.hPARENT+1
|
|
|
|
|
lda (ZPPtr1),y
|
|
|
|
|
beq .8 00xx = hDev
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
tax
|
|
|
|
|
dey
|
|
|
|
|
lda (ZPPtr1),y
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
sta ZPPtr1
|
|
|
|
|
stx ZPPtr1+1
|
|
|
|
|
bra .1
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
.8 clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
DRAW.AddP1YtoCBX
|
|
|
|
|
lda (ZPPtr1),y
|
|
|
|
|
clc
|
|
|
|
|
adc CB.Cache,x
|
|
|
|
|
sta CB.Cache,x
|
|
|
|
|
iny
|
|
|
|
|
lda (ZPPtr1),y
|
|
|
|
|
adc CB.Cache+1,x
|
|
|
|
|
sta CB.Cache+1,x
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2020-10-26 16:32:51 +00:00
|
|
|
|
DrawCBBufToYA pha
|
|
|
|
|
phy
|
2020-10-06 15:23:40 +00:00
|
|
|
|
|
2020-10-26 16:32:51 +00:00
|
|
|
|
bit CUR.bVisible
|
|
|
|
|
bpl .1
|
2020-10-06 15:23:40 +00:00
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
jsr HideCursor.I
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
|
|
|
|
.1 lda #0
|
|
|
|
|
sta (ZPCBBufPtr)
|
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
ply
|
|
|
|
|
pla
|
|
|
|
|
|
2020-10-26 16:32:51 +00:00
|
|
|
|
jsr OBJ.GetInCache
|
|
|
|
|
|
|
|
|
|
.2 lda (ZPCBPtr)
|
2020-10-06 06:27:35 +00:00
|
|
|
|
beq .8
|
|
|
|
|
|
|
|
|
|
>LDYA ZPCBPtr
|
|
|
|
|
jsr CB.GetInCache A = CB.CMD
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
cmp #S.CB.CMD.DRAWTEXT2
|
|
|
|
|
bne .6
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
2020-10-06 06:27:35 +00:00
|
|
|
|
lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
|
|
|
|
|
sta CB.Cache+S.CB.CMD
|
|
|
|
|
jsr GFXWrite.CB
|
|
|
|
|
bcs .9
|
|
|
|
|
|
|
|
|
|
jsr CLIP.CB.Cache
|
2020-10-26 16:32:51 +00:00
|
|
|
|
bcs .3
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
|
|
|
|
jsr GFXWrite.CB
|
2020-10-26 16:32:51 +00:00
|
|
|
|
|
|
|
|
|
.3 lda CB.Cache+S.CB.SrcPtr
|
2020-10-06 06:27:35 +00:00
|
|
|
|
>SYSCALL2 FreeStkObj
|
|
|
|
|
bra .7
|
|
|
|
|
|
|
|
|
|
.6 jsr CLIP.CB.Cache
|
|
|
|
|
bcs .7
|
|
|
|
|
|
|
|
|
|
jsr GFXWrite.CB
|
|
|
|
|
|
|
|
|
|
.7 lda (ZPCBPtr) Get Cmd
|
|
|
|
|
lsr
|
|
|
|
|
tax
|
|
|
|
|
lda CB.CmdLen-1,x
|
|
|
|
|
sec +1
|
|
|
|
|
adc ZPCBPtr
|
|
|
|
|
sta ZPCBPtr
|
2020-10-26 16:32:51 +00:00
|
|
|
|
bcc .2
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
|
|
|
|
inc ZPCBPtr+1
|
2020-10-26 16:32:51 +00:00
|
|
|
|
bra .2
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
2020-10-26 16:32:51 +00:00
|
|
|
|
.8 lda hCBBuf
|
|
|
|
|
stz hCBBuf
|
2021-02-22 17:17:37 +00:00
|
|
|
|
>SYSCALL2 FreeMem
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
2020-10-26 16:32:51 +00:00
|
|
|
|
clc
|
|
|
|
|
|
|
|
|
|
bit CUR.bVisible
|
|
|
|
|
bpl .9
|
|
|
|
|
|
|
|
|
|
jmp ShowCursor.I
|
2020-10-06 06:27:35 +00:00
|
|
|
|
|
2020-10-26 16:32:51 +00:00
|
|
|
|
.9 rts
|
2020-10-06 06:27:35 +00:00
|
|
|
|
*--------------------------------------
|
2017-11-29 16:28:13 +00:00
|
|
|
|
MAN
|
2020-06-30 15:32:23 +00:00
|
|
|
|
SAVE usr/src/lib/libgui.s.draw
|
|
|
|
|
LOAD usr/src/lib/libgui.s
|
2017-11-29 16:28:13 +00:00
|
|
|
|
ASM
|