mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-01 07:41:51 +00:00
Kernel 0.94
This commit is contained in:
parent
3a3d82f7e6
commit
2fc1034a9d
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,16 +1,15 @@
|
||||||
NEW
|
NEW
|
||||||
PREFIX
|
AUTO 3,1
|
||||||
AUTO 4,1
|
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF ROOT/FNT2FON
|
.TF bin/fnt2fon
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB inc/macros.i
|
||||||
.INB INC/A2OSX.I
|
.INB inc/a2osx.i
|
||||||
.INB INC/GUI.I
|
.INB inc/gfx.i
|
||||||
.INB INC/LIBGUI.I
|
.INB inc/libgui.i
|
||||||
.INB ROOT/X.FNT.I
|
.INB inc/fnt.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPTR1 .EQ ZPBIN
|
ZPPTR1 .EQ ZPBIN
|
||||||
ZPInputBufPtr .EQ ZPBIN+2
|
ZPInputBufPtr .EQ ZPBIN+2
|
||||||
|
@ -684,7 +683,7 @@ CS.QUIT >LDA.G hOutPutBuf
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB ROOT/X.TWIST.G
|
.INB usr/src/shared/x.twist.g
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OptionList >PSTR "NnVv"
|
OptionList >PSTR "NnVv"
|
||||||
OptionVars .DA #bNoShrink,#bNoShrink,#bVerbose,#bVerbose
|
OptionVars .DA #bNoShrink,#bNoShrink,#bVerbose,#bVerbose
|
||||||
|
@ -718,10 +717,8 @@ CharOutByteW .BS 1
|
||||||
hOutPutBuf .BS 1
|
hOutPutBuf .BS 1
|
||||||
OutPutPtr .BS 1
|
OutPutPtr .BS 1
|
||||||
FileOffset .BS 4
|
FileOffset .BS 4
|
||||||
|
DS.END .ED
|
||||||
DS.END
|
|
||||||
.ED
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.BUILD/ROOT/FNT2FON.S
|
SAVE usr/src/bin/fnt2fon.s
|
||||||
ASM
|
ASM
|
||||||
|
|
|
@ -2,7 +2,7 @@ NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* BitBlt
|
* BitBlt
|
||||||
* S.CB.X1 : Destination X (screen)
|
* S.CB.X1 : Destination X (screen)
|
||||||
* S.CB.Y1 : Destination Y (screen)
|
* S.CB.Y1 : Destination Y (screen)
|
||||||
* S.CB.DstX : X1 in bitmap/mask
|
* S.CB.DstX : X1 in bitmap/mask
|
||||||
* S.CB.DstY : Y1 in bitmap/mask
|
* S.CB.DstY : Y1 in bitmap/mask
|
||||||
|
|
|
@ -164,8 +164,8 @@ OSD.DRAWTEXT sec
|
||||||
* S.CB.S.CB.FONT : hFont
|
* S.CB.S.CB.FONT : hFont
|
||||||
* S.CB.SrcPtr : Ptr to Text
|
* S.CB.SrcPtr : Ptr to Text
|
||||||
* Out:
|
* Out:
|
||||||
* A,X = Width
|
* S.CB.SrcW = Width
|
||||||
* Y = Height
|
* S.CB.SrcH = Height
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OSD.GETTEXTSIZE clc
|
OSD.GETTEXTSIZE clc
|
||||||
php
|
php
|
||||||
|
|
|
@ -4,7 +4,7 @@ NEW
|
||||||
IO.D2.SeekTimeR .EQ 160 LIBBLKDEV Recalibration
|
IO.D2.SeekTimeR .EQ 160 LIBBLKDEV Recalibration
|
||||||
IO.D2.SeekTimeF .EQ 140 LIBBLKDEV Track Formatter
|
IO.D2.SeekTimeF .EQ 140 LIBBLKDEV Track Formatter
|
||||||
IO.D2.SeekTimeB .EQ 140 LIBBLKDEV Boot Block
|
IO.D2.SeekTimeB .EQ 140 LIBBLKDEV Boot Block
|
||||||
IO.D2.SeekTimeP .EQ 70 ProDOS.FX initial
|
IO.D2.SeekTimeP .EQ 75 ProDOS.FX initial
|
||||||
IO.D2.SeekTimeI .EQ 20 ProDOS.FX increment -> until > 128
|
IO.D2.SeekTimeI .EQ 20 ProDOS.FX increment -> until > 128
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.D2.Ph0Off .EQ $C080
|
IO.D2.Ph0Off .EQ $C080
|
||||||
|
|
|
@ -92,9 +92,8 @@ S.OBJ.X2 .EQ 12
|
||||||
S.OBJ.Y2 .EQ 14
|
S.OBJ.Y2 .EQ 14
|
||||||
S.OBJ.W .EQ 16
|
S.OBJ.W .EQ 16
|
||||||
S.OBJ.H .EQ 18
|
S.OBJ.H .EQ 18
|
||||||
S.OBJ.Childs .EQ 20
|
|
||||||
*
|
*
|
||||||
S.OBJ .EQ 22
|
S.OBJ .EQ 20
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.WND.F.RESIZE .EQ %00000001
|
S.WND.F.RESIZE .EQ %00000001
|
||||||
S.WND.F.MOVE .EQ %00000010
|
S.WND.F.MOVE .EQ %00000010
|
||||||
|
|
|
@ -428,6 +428,9 @@ rdhead sec anticipate error.
|
||||||
bmi BB.Trk2Qtrk.RTS branch if can't fine/read sector.
|
bmi BB.Trk2Qtrk.RTS branch if can't fine/read sector.
|
||||||
|
|
||||||
clc indicate reading header.
|
clc indicate reading header.
|
||||||
|
|
||||||
|
ldy #0 Retry cnt waiting D5
|
||||||
|
|
||||||
rddata php carry set if reading sector.
|
rddata php carry set if reading sector.
|
||||||
|
|
||||||
rd0 dey every time y=0 decrement find count.
|
rd0 dey every time y=0 decrement find count.
|
||||||
|
|
|
@ -19,12 +19,6 @@ CUR.HotPoints .DA #0,#0 CUR.T.ARROW
|
||||||
.DA #8,#7 CUR.Wait5
|
.DA #8,#7 CUR.Wait5
|
||||||
.DA #8,#7 CUR.Wait6
|
.DA #8,#7 CUR.Wait6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CUR.CB .DA #S.CB.CMD.BITBLT
|
|
||||||
.BS 1
|
|
||||||
.DA #S.CB.M.MONO
|
|
||||||
.DA #0
|
|
||||||
.BS S.CB-2
|
|
||||||
*--------------------------------------
|
|
||||||
CUR.SaveBuf .BS 64 16*4
|
CUR.SaveBuf .BS 64 16*4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CUR.Arrow .DA #S.BM.F.BBP1
|
CUR.Arrow .DA #S.BM.F.BBP1
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
NEW
|
|
||||||
AUTO 3,1
|
|
||||||
*--------------------------------------
|
|
||||||
WND.Stack.Top .BS 1
|
|
||||||
WND.Stack .BS WND.MAX
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
|
||||||
SAVE usr/src/lib/libgui.g.wnd
|
|
||||||
LOAD usr/src/lib/libgui.s
|
|
||||||
asm
|
|
|
@ -227,58 +227,84 @@ CLIP.Line.RIGHT .EQ 2
|
||||||
CLIP.Line.BOTTOM .EQ 4
|
CLIP.Line.BOTTOM .EQ 4
|
||||||
CLIP.Line.TOP .EQ 8
|
CLIP.Line.TOP .EQ 8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CLIP.Line jsr CLIP.Line.EncodeP1
|
CLIP.Line
|
||||||
|
* >DEBUG
|
||||||
|
jsr CLIP.Line.EncodeP1
|
||||||
jsr CLIP.Line.EncodeP2
|
jsr CLIP.Line.EncodeP2
|
||||||
|
|
||||||
.1 lda CLIP.Line.P1
|
.1 lda CLIP.Line.P1
|
||||||
ora CLIP.Line.P2
|
ora CLIP.Line.P2
|
||||||
beq .88
|
beq .88
|
||||||
|
|
||||||
lda CLIP.Line.P1
|
lda CLIP.Line.P1
|
||||||
and CLIP.Line.P2
|
and CLIP.Line.P2
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
lda CLIP.Line.P1
|
lda CLIP.Line.P1
|
||||||
beq .5
|
beq .5
|
||||||
|
|
||||||
bit #CLIP.Line.TOP
|
bit #CLIP.Line.TOP
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
* Y1 is above S.CB.Y1....
|
* Y1 is above S.CB.Y1....
|
||||||
* DY=Y2-Y1;
|
* DY=Y2-Y1;
|
||||||
jsr CLIP.Line.EncodeP1
|
jsr CLIP.Line.EncodeP1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 bit #CLIP.Line.BOTTOM
|
.2 bit #CLIP.Line.BOTTOM
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
* Y1 is below S.CB.Y2....
|
* Y1 is below S.CB.Y2....
|
||||||
|
|
||||||
jsr CLIP.Line.EncodeP1
|
jsr CLIP.Line.EncodeP1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.3 bit #CLIP.Line.RIGHT
|
.3 bit #CLIP.Line.RIGHT
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
* X1 is after S.CB.X2....
|
* X1 is after S.CB.X2....
|
||||||
|
|
||||||
jsr CLIP.Line.EncodeP1
|
jsr CLIP.Line.EncodeP1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
* X1 is before S.CB.X1....
|
* X1 is before S.CB.X1....
|
||||||
.4
|
|
||||||
jsr CLIP.Line.EncodeP1
|
.4 jsr CLIP.Line.EncodeP1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
* P2
|
* P2
|
||||||
|
|
||||||
.5 lda CLIP.Line.P2
|
.5 lda CLIP.Line.P2
|
||||||
|
|
||||||
bit #CLIP.Line.TOP
|
bit #CLIP.Line.TOP
|
||||||
beq .6
|
beq .6
|
||||||
|
|
||||||
* Y2 is above S.CB.Y1....
|
* Y2 is above S.CB.Y1....
|
||||||
|
|
||||||
jsr CLIP.Line.EncodeP2
|
jsr CLIP.Line.EncodeP2
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.6 bit #CLIP.Line.BOTTOM
|
.6 bit #CLIP.Line.BOTTOM
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
* Y2 is below S.CB.Y2....
|
* Y2 is below S.CB.Y2....
|
||||||
|
|
||||||
jsr CLIP.Line.EncodeP2
|
jsr CLIP.Line.EncodeP2
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.7 bit #CLIP.Line.RIGHT
|
.7 bit #CLIP.Line.RIGHT
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
* X2 is after S.CB.X2....
|
* X2 is after S.CB.X2....
|
||||||
|
|
||||||
jsr CLIP.Line.EncodeP2
|
jsr CLIP.Line.EncodeP2
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
* X2 is before S.CB.X1....
|
* X2 is before S.CB.X1....
|
||||||
.8
|
|
||||||
jsr CLIP.Line.EncodeP2
|
.8 jsr CLIP.Line.EncodeP2
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.88 clc
|
.88 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -315,30 +341,38 @@ CLIP.Line.EncodeX.AX
|
||||||
pha
|
pha
|
||||||
>SCMPAX OBJ.Cache+S.OBJ.X1
|
>SCMPAX OBJ.Cache+S.OBJ.X1
|
||||||
bmi .1
|
bmi .1
|
||||||
|
|
||||||
tya
|
tya
|
||||||
ora #CLIP.Line.LEFT
|
ora #CLIP.Line.LEFT
|
||||||
plx
|
plx
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 pla
|
.1 pla
|
||||||
>SCMPAX OBJ.Cache+S.OBJ.X1
|
>SCMPAX OBJ.Cache+S.OBJ.X2
|
||||||
bpl .8
|
bpl .8
|
||||||
|
|
||||||
tya
|
tya
|
||||||
ora #CLIP.Line.RIGHT
|
ora #CLIP.Line.RIGHT
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CLIP.Line.EncodeY.AX
|
CLIP.Line.EncodeY.AX
|
||||||
pha
|
pha
|
||||||
>SCMPAX OBJ.Cache+S.OBJ.Y1
|
>SCMPAX OBJ.Cache+S.OBJ.Y1
|
||||||
bmi .1
|
bmi .1
|
||||||
|
|
||||||
tya
|
tya
|
||||||
ora #CLIP.Line.TOP
|
ora #CLIP.Line.TOP
|
||||||
plx
|
plx
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 pla
|
.1 pla
|
||||||
>SCMPAX OBJ.Cache+S.OBJ.Y1
|
>SCMPAX OBJ.Cache+S.OBJ.Y2
|
||||||
bpl .8
|
bpl .8
|
||||||
|
|
||||||
tya
|
tya
|
||||||
ora #CLIP.Line.BOTTOM
|
ora #CLIP.Line.BOTTOM
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CB.Cache.SetX2Y2
|
CB.Cache.SetX2Y2
|
||||||
|
|
|
@ -21,24 +21,24 @@ SetCursor sta CUR.T
|
||||||
|
|
||||||
.1 ldx CUR.T
|
.1 ldx CUR.T
|
||||||
lda L.Cursors,x
|
lda L.Cursors,x
|
||||||
sta CUR.CB+S.CB.SrcPtr
|
sta CB.PTR+S.CB.SrcPtr
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
lda L.Cursors+1,x
|
lda L.Cursors+1,x
|
||||||
sta CUR.CB+S.CB.SrcPtr+1
|
sta CB.PTR+S.CB.SrcPtr+1
|
||||||
sta ZPPtr1+1
|
sta ZPPtr1+1
|
||||||
|
|
||||||
ldy #S.BM.W
|
ldy #S.BM.W
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
sta CUR.CB+S.CB.SrcW
|
sta CB.PTR+S.CB.SrcW
|
||||||
|
|
||||||
clc
|
clc
|
||||||
adc CUR.CB+S.CB.X1
|
adc CB.PTR+S.CB.X1
|
||||||
pha
|
pha
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
sta CUR.CB+S.CB.SrcW+1
|
sta CB.PTR+S.CB.SrcW+1
|
||||||
adc CUR.CB+S.CB.X1+1
|
adc CB.PTR+S.CB.X1+1
|
||||||
tax
|
tax
|
||||||
pla
|
pla
|
||||||
bne .2
|
bne .2
|
||||||
|
@ -46,21 +46,21 @@ SetCursor sta CUR.T
|
||||||
dex
|
dex
|
||||||
|
|
||||||
.2 dec
|
.2 dec
|
||||||
sta CUR.CB+S.CB.X2
|
sta CB.PTR+S.CB.X2
|
||||||
stx CUR.CB+S.CB.X2+1
|
stx CB.PTR+S.CB.X2+1
|
||||||
|
|
||||||
iny S.BM.H
|
iny S.BM.H
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
sta CUR.CB+S.CB.SrcH
|
sta CB.PTR+S.CB.SrcH
|
||||||
|
|
||||||
clc
|
clc
|
||||||
adc CUR.CB+S.CB.Y1
|
adc CB.PTR+S.CB.Y1
|
||||||
pha
|
pha
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
sta CUR.CB+S.CB.SrcH+1
|
sta CB.PTR+S.CB.SrcH+1
|
||||||
adc CUR.CB+S.CB.Y1+1
|
adc CB.PTR+S.CB.Y1+1
|
||||||
tax
|
tax
|
||||||
pla
|
pla
|
||||||
bne .3
|
bne .3
|
||||||
|
@ -68,8 +68,8 @@ SetCursor sta CUR.T
|
||||||
dex
|
dex
|
||||||
|
|
||||||
.3 dec
|
.3 dec
|
||||||
sta CUR.CB+S.CB.Y2
|
sta CB.PTR+S.CB.Y2
|
||||||
stx CUR.CB+S.CB.Y2+1
|
stx CB.PTR+S.CB.Y2+1
|
||||||
|
|
||||||
lda CUR.bVisible
|
lda CUR.bVisible
|
||||||
bmi ShowCursor.I
|
bmi ShowCursor.I
|
||||||
|
@ -116,33 +116,34 @@ ShowCursor.I ldx CUR.T
|
||||||
lda CUR.Pos+S.POINT.X
|
lda CUR.Pos+S.POINT.X
|
||||||
sec
|
sec
|
||||||
sbc CUR.HotPoints,x
|
sbc CUR.HotPoints,x
|
||||||
sta CUR.CB+S.CB.X1
|
sta CB.PTR+S.CB.X1
|
||||||
|
|
||||||
lda CUR.Pos+S.POINT.X+1
|
lda CUR.Pos+S.POINT.X+1
|
||||||
sbc #0
|
sbc #0
|
||||||
sta CUR.CB+S.CB.X1+1
|
sta CB.PTR+S.CB.X1+1
|
||||||
|
|
||||||
lda CUR.Pos+S.POINT.Y
|
lda CUR.Pos+S.POINT.Y
|
||||||
sec
|
sec
|
||||||
sbc CUR.HotPoints+1,x
|
sbc CUR.HotPoints+1,x
|
||||||
sta CUR.CB+S.CB.Y1
|
sta CB.PTR+S.CB.Y1
|
||||||
|
|
||||||
lda CUR.Pos+S.POINT.Y+1
|
lda CUR.Pos+S.POINT.Y+1
|
||||||
sbc #0
|
sbc #0
|
||||||
sta CUR.CB+S.CB.Y1+1
|
sta CB.PTR+S.CB.Y1+1
|
||||||
|
|
||||||
lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE
|
lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE
|
||||||
|
|
||||||
DrawCursor.I sta CUR.CB+S.CB.OP
|
DrawCursor.I sta CB.PTR+S.CB.OP
|
||||||
|
|
||||||
>LDYA L.WND.Screen
|
>LDYA L.WND.Screen
|
||||||
jsr OBJ.GetInCache
|
jsr OBJ.GetInCache
|
||||||
|
|
||||||
>LDYA L.CUR.CB
|
>LDYA L.CB.PTR
|
||||||
jsr CLIP.YA
|
jsr CLIP.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jmp GFXWrite.CB
|
>LDYA L.CB.PTR
|
||||||
|
jmp GFXWrite.YA
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -1,17 +1,369 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
* drawline(short int hWND, short int OP, short int COLOR, int X1, int Y1, int X2, int X2)
|
||||||
|
*--------------------------------------
|
||||||
|
DrawLine >PULLW CB.Cache+S.CB.Y2
|
||||||
|
>PULLW CB.Cache+S.CB.X2
|
||||||
|
>PULLW CB.Cache+S.CB.Y1
|
||||||
|
>PULLW CB.Cache+S.CB.X1
|
||||||
|
|
||||||
|
>PULLB CB.Cache+S.CB.COLOR
|
||||||
|
>PULLB CB.Cache+S.CB.OP
|
||||||
|
>PULLA hWND
|
||||||
|
>SYSCALL2 GetMemPtr
|
||||||
|
>STYA ZPWNDPtr
|
||||||
|
|
||||||
|
jsr DRAW.ToGlobal
|
||||||
|
jsr DRAW.GetInnerW
|
||||||
|
|
||||||
|
lda CB.Cache+S.CB.X2
|
||||||
|
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...
|
||||||
|
|
||||||
|
lda #S.CB.CMD.VLINE DX=0 : VLINE Y1,Y2 At X1
|
||||||
|
bra .20
|
||||||
|
*--------------------------------------
|
||||||
|
.1 >SWAP16 CB.Cache+S.CB.X1,CB.Cache+S.CB.X2
|
||||||
|
>SWAP16 CB.Cache+S.CB.Y1,CB.Cache+S.CB.Y2
|
||||||
|
|
||||||
|
>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
|
||||||
|
lda CB.Cache+S.CB.Y2+1
|
||||||
|
sbc CB.Cache+S.CB.Y1+1
|
||||||
|
sta DY+1 DY = Y2 - Y1
|
||||||
|
|
||||||
|
bmi .3 DY < 0 ...
|
||||||
|
|
||||||
|
ora DY
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
jmp GFXWrite.CB
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
.3 >NOT16 DY set DY=-DY
|
||||||
|
lda #$ff
|
||||||
|
sta IY set IY=-1
|
||||||
|
|
||||||
|
.4 jsr CLIP.Line
|
||||||
|
bcs .8
|
||||||
|
|
||||||
|
lda #S.CB.CMD.SETPIXEL
|
||||||
|
sta CB.Cache+S.CB.CMD
|
||||||
|
jsr GFXWrite.CB
|
||||||
|
lda DX
|
||||||
|
sec
|
||||||
|
sbc DY
|
||||||
|
tax
|
||||||
|
lda DX+1
|
||||||
|
sbc DY+1
|
||||||
|
bmi DrawLine.IncY DY is greater than DX, we will increase on Y axis
|
||||||
|
|
||||||
|
txa
|
||||||
|
beq DrawLine.IncXY DX=DY, go inc X & Y
|
||||||
|
|
||||||
|
jmp DrawLine.IncX DY is lower than DX, we will increase on X axis
|
||||||
|
*--------------------------------------
|
||||||
|
DrawLine.IncXY lda DX DX=DY
|
||||||
|
eor #$ff
|
||||||
|
sta Counter
|
||||||
|
lda DX+1
|
||||||
|
eor #$ff
|
||||||
|
sta Counter+1
|
||||||
|
|
||||||
|
.1 inc Counter
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
inc Counter+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
.2 inc CB.Cache+S.CB.X1
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
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
|
||||||
|
jsr GFXWrite.CB
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
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
|
||||||
|
|
||||||
|
.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
|
||||||
|
jsr GFXWrite.CB
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
DrawLine.IncX lda DX
|
||||||
|
eor #$ff
|
||||||
|
sta Counter
|
||||||
|
lda DX+1
|
||||||
|
eor #$ff
|
||||||
|
sta Counter+1
|
||||||
|
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 jsr GFXWrite.CB
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
* drawtext (short int OP, short int hFONT, int X1, int Y1)
|
||||||
|
*--------------------------------------
|
||||||
|
DrawText clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
*
|
||||||
|
*--------------------------------------
|
||||||
|
DRAW.ToGlobal >LDYA ZPWNDPtr
|
||||||
|
>STYA ZPPtr1
|
||||||
|
|
||||||
|
.1 ldy #S.OBJ.X1
|
||||||
|
ldx #S.CB.X1
|
||||||
|
jsr DRAW.AddP1YtoCBX
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
ldy #S.OBJ.hPARENT+1
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
beq .8 00xx = hDev
|
||||||
|
|
||||||
|
tax
|
||||||
|
dey
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
|
||||||
|
sta ZPPtr1
|
||||||
|
stx ZPPtr1+1
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.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
|
||||||
|
*--------------------------------------
|
||||||
|
DRAW.GetInnerW 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
|
||||||
|
*--------------------------------------
|
||||||
DrawCBBufToYA ldx L.CB.Buf
|
DrawCBBufToYA ldx L.CB.Buf
|
||||||
stx ZPCBPtr
|
stx ZPCBPtr
|
||||||
ldx L.CB.Buf+1
|
ldx L.CB.Buf+1
|
||||||
stx ZPCBPtr+1
|
stx ZPCBPtr+1
|
||||||
|
|
||||||
DrawCBPtrToYA jsr OBJ.GetInCache
|
DrawCBPtrToYA bit CUR.bVisible
|
||||||
|
bpl .10
|
||||||
bit CUR.bVisible
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
|
pha
|
||||||
|
phy
|
||||||
jsr HideCursor.I
|
jsr HideCursor.I
|
||||||
|
ply
|
||||||
|
pla
|
||||||
|
|
||||||
|
.10 jsr OBJ.GetInCache
|
||||||
|
|
||||||
.1 lda (ZPCBPtr)
|
.1 lda (ZPCBPtr)
|
||||||
beq .8
|
beq .8
|
||||||
|
@ -54,6 +406,7 @@ DrawCBPtrToYA jsr OBJ.GetInCache
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
|
|
||||||
.9 bit CUR.bVisible
|
.9 bit CUR.bVisible
|
||||||
bpl .99
|
bpl .99
|
||||||
|
|
||||||
|
@ -65,260 +418,6 @@ DrawCBPtrToYA jsr OBJ.GetInCache
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* In: Control Block in CB.Cache
|
|
||||||
* CMD
|
|
||||||
* OP
|
|
||||||
* MODE
|
|
||||||
* COLOR
|
|
||||||
* X1
|
|
||||||
* Y1
|
|
||||||
* X2
|
|
||||||
* Y2
|
|
||||||
*--------------------------------------
|
|
||||||
DrawLine >PULLW CB.Cache+S.CB.Y2
|
|
||||||
>PULLW CB.Cache+S.CB.X2
|
|
||||||
>PULLW CB.Cache+S.CB.Y1
|
|
||||||
>PULLW CB.Cache+S.CB.X1
|
|
||||||
|
|
||||||
>PULLB CB.Cache+S.CB.COLOR
|
|
||||||
>PULLB CB.Cache+S.CB.OP
|
|
||||||
>PULLA hWND
|
|
||||||
>SYSCALL2 GetMemPtr
|
|
||||||
>STYA ZPWNDPtr
|
|
||||||
|
|
||||||
lda CB.Cache+S.CB.X2
|
|
||||||
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...
|
|
||||||
|
|
||||||
lda #S.CB.CMD.VLINE
|
|
||||||
sta CB.Cache+S.CB.CMD
|
|
||||||
jmp GFXWrite.CB DX=0 : VLIN Y1,Y2 At X1
|
|
||||||
.1 >SWAP16 CB.Cache+S.CB.X1,CB.Cache+S.CB.X2
|
|
||||||
* >SWAP16 CB.Cache+S.CB.Y1,CB.Cache+S.CB.Y2
|
|
||||||
lda CB.Cache+S.CB.Y1
|
|
||||||
ldx CB.Cache+S.CB.Y2
|
|
||||||
stx CB.Cache+S.CB.Y1
|
|
||||||
sta CB.Cache+S.CB.Y2
|
|
||||||
|
|
||||||
>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
|
|
||||||
* lda CB.Cache+S.CB.Y2+1
|
|
||||||
lda #0
|
|
||||||
* sbc CB.Cache+S.CB.Y1+1
|
|
||||||
sbc #0
|
|
||||||
sta DY+1 DY = Y2 - Y1
|
|
||||||
bmi .3 DY < 0 ...
|
|
||||||
ora DY
|
|
||||||
bne .4
|
|
||||||
lda #S.CB.CMD.HLINE
|
|
||||||
sta CB.Cache+S.CB.CMD
|
|
||||||
jmp GFXWrite.CB DY=0 : HLIN X1,X2 At Y1
|
|
||||||
.3 >NOT16 DY set DY=-DY
|
|
||||||
lda #$ff
|
|
||||||
sta IY set IY=-1
|
|
||||||
|
|
||||||
.4 lda #S.CB.CMD.SETPIXEL
|
|
||||||
sta CB.Cache+S.CB.CMD
|
|
||||||
jsr GFXWrite.CB
|
|
||||||
lda DX
|
|
||||||
sec
|
|
||||||
sbc DY
|
|
||||||
tax
|
|
||||||
lda DX+1
|
|
||||||
* sbc DY+1
|
|
||||||
sbc #0
|
|
||||||
bmi DrawLine.IncY DY is greater than DX, we will increase on Y axis
|
|
||||||
txa
|
|
||||||
beq DrawLine.IncXY DX=DY, go inc X & Y
|
|
||||||
jmp DrawLine.IncX DY is lower than DX, we will increase on X axis
|
|
||||||
|
|
||||||
DrawLine.IncXY lda DX DX=DY
|
|
||||||
eor #$ff
|
|
||||||
sta Counter
|
|
||||||
lda DX+1
|
|
||||||
eor #$ff
|
|
||||||
sta Counter+1
|
|
||||||
|
|
||||||
.1 inc Counter
|
|
||||||
bne .2
|
|
||||||
inc Counter+1
|
|
||||||
beq .8
|
|
||||||
.2 inc CB.Cache+S.CB.X1
|
|
||||||
bne .3
|
|
||||||
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
|
|
||||||
jsr GFXWrite.CB
|
|
||||||
bra .1
|
|
||||||
.8 rts
|
|
||||||
|
|
||||||
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
|
|
||||||
.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
|
|
||||||
jsr GFXWrite.CB
|
|
||||||
bra .1
|
|
||||||
|
|
||||||
.8 rts
|
|
||||||
|
|
||||||
DrawLine.IncX lda DX
|
|
||||||
eor #$ff
|
|
||||||
sta Counter
|
|
||||||
lda DX+1
|
|
||||||
eor #$ff
|
|
||||||
sta Counter+1
|
|
||||||
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 jsr GFXWrite.CB
|
|
||||||
bra .1
|
|
||||||
|
|
||||||
.8 rts
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/lib/libgui.s.draw
|
SAVE usr/src/lib/libgui.s.draw
|
||||||
LOAD usr/src/lib/libgui.s
|
LOAD usr/src/lib/libgui.s
|
||||||
|
|
|
@ -43,7 +43,7 @@ MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA L.CUR.SaveBuf
|
>LDYA L.CUR.SaveBuf
|
||||||
>STYA CUR.CB+S.CB.DstPtr
|
>STYA CB.PTR+S.CB.DstPtr
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -59,26 +59,91 @@ MOU.Quit lda hDevMouse
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MOU.ReadMouse >PULLYA
|
MOU.ReadMouse >PULLW ZPPtr1
|
||||||
|
|
||||||
ldx A2osX.ASCREEN GUI screen active ?
|
lda A2osX.ASCREEN GUI screen active ?
|
||||||
cpx DCB.GFX+S.DCB.GFX.DEVID
|
cmp DCB.GFX+S.DCB.GFX.DEVID
|
||||||
bne .9 no, exit....
|
bne .9 no, exit....
|
||||||
|
|
||||||
ldx hDevMouse
|
lda hDevMouse
|
||||||
beq .9
|
beq .9
|
||||||
pha
|
|
||||||
|
|
||||||
txa
|
|
||||||
|
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHBI IOCTL.READ
|
>PUSHBI IOCTL.READ
|
||||||
pla
|
>PUSHW ZPPtr1
|
||||||
>PUSHYA
|
|
||||||
>SYSCALL2 IOCTL
|
>SYSCALL2 IOCTL
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
ldy #S.MOUSE.S
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
bit #S.MOUSE.S.MOVE
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
lda WND.SysBar+S.OBJ.Y1
|
||||||
|
|
||||||
|
ldy #S.MOUSE.Y1
|
||||||
|
cmp (ZPPtr1),y
|
||||||
|
lda WND.SysBar+S.OBJ.Y1+1
|
||||||
|
iny
|
||||||
|
sbc (ZPPtr1),y
|
||||||
|
bcc .8
|
||||||
|
|
||||||
|
jmp SYSBAR.Enter
|
||||||
|
|
||||||
|
|
||||||
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
|
.99 rts
|
||||||
|
*--------------------------------------
|
||||||
|
SYSBAR.Show jsr GetCBBuf
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
lda #S.CB.CMD.FILLRECT
|
||||||
|
jsr PutA2CBBuf
|
||||||
|
|
||||||
|
lda #S.CB.OP.SET
|
||||||
|
jsr PutA2CBBuf
|
||||||
|
|
||||||
|
lda #S.CB.M.MONO
|
||||||
|
jsr PutA2CBBuf
|
||||||
|
|
||||||
|
lda PREFS.SYSBARCOLOR
|
||||||
|
jsr PutA2CBBuf
|
||||||
|
|
||||||
|
lda #0 S.OBJ.X1
|
||||||
|
jsr PutA2CBBuf
|
||||||
|
jsr PutA2CBBuf
|
||||||
|
|
||||||
|
lda WND.SysBar+S.OBJ.Y1
|
||||||
|
jsr PutA2CBBuf
|
||||||
|
lda WND.SysBar+S.OBJ.Y1+1
|
||||||
|
jsr PutA2CBBuf
|
||||||
|
|
||||||
|
lda WND.SysBar.A2osX.X2
|
||||||
|
jsr PutA2CBBuf
|
||||||
|
lda WND.SysBar.A2osX.X2+1
|
||||||
|
jsr PutA2CBBuf
|
||||||
|
|
||||||
|
lda WND.SysBar+S.OBJ.Y2
|
||||||
|
jsr PutA2CBBuf
|
||||||
|
lda WND.SysBar+S.OBJ.Y2+1
|
||||||
|
jsr PutA2CBBuf
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
jsr PutA2CBBuf
|
||||||
|
|
||||||
|
>LDYA L.WND.SysBar
|
||||||
|
jsr DrawCBPtrToYA
|
||||||
|
|
||||||
|
lda hCBBuf
|
||||||
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
|
* clc
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
SYSBAR.Enter clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
|
|
@ -25,41 +25,39 @@ WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W
|
||||||
>STYA WND.Desktop+S.OBJ.W
|
>STYA WND.Desktop+S.OBJ.W
|
||||||
>STYA WND.SysBar+S.OBJ.W
|
>STYA WND.SysBar+S.OBJ.W
|
||||||
|
|
||||||
lda SYSFON.H
|
lda SYSFON.Hp2
|
||||||
clc
|
|
||||||
adc #6
|
|
||||||
sta WND.SysBar+S.OBJ.H
|
sta WND.SysBar+S.OBJ.H
|
||||||
|
|
||||||
lda DCB.GFX+S.DCB.GFX.H
|
lda DCB.GFX+S.DCB.GFX.H
|
||||||
sta WND.Screen+S.OBJ.H
|
sta WND.Screen+S.OBJ.H
|
||||||
|
|
||||||
sec
|
sec
|
||||||
sbc WND.SysBar+S.OBJ.H
|
sbc WND.SysBar+S.OBJ.H
|
||||||
sta WND.Desktop+S.OBJ.H
|
sta WND.Desktop+S.OBJ.H
|
||||||
sta WND.SysBar+S.OBJ.X1
|
sta WND.SysBar+S.OBJ.Y1
|
||||||
|
|
||||||
lda DCB.GFX+S.DCB.GFX.H+1
|
|
||||||
sta WND.SysBar+S.OBJ.H+1
|
|
||||||
sbc #0
|
|
||||||
sta WND.Desktop+S.OBJ.H+1
|
|
||||||
sta WND.SysBar+S.OBJ.X1+1
|
|
||||||
|
|
||||||
>LDYA L.WND.Screen
|
>LDYA L.WND.Screen
|
||||||
|
>STYA WND.Desktop+S.OBJ.hPARENT
|
||||||
|
>STYA WND.SysBar+S.OBJ.hPARENT
|
||||||
jsr OBJ.SetX2Y2
|
jsr OBJ.SetX2Y2
|
||||||
|
|
||||||
>LDYA L.WND.Desktop
|
>LDYA L.WND.Desktop
|
||||||
>STYA WND.Screen.Childs
|
|
||||||
jsr OBJ.SetX2Y2
|
jsr OBJ.SetX2Y2
|
||||||
|
|
||||||
>LDYA L.WND.SysBar
|
>LDYA L.WND.SysBar
|
||||||
>STYA WND.Screen.Childs+2
|
|
||||||
jsr OBJ.SetX2Y2
|
jsr OBJ.SetX2Y2
|
||||||
|
|
||||||
|
lda #24
|
||||||
|
sta WND.SysBar.A2osX.X2
|
||||||
|
|
||||||
lda #CUR.T.ARROW
|
lda #CUR.T.ARROW
|
||||||
sta WND.Desktop+S.WND.hCUR
|
sta WND.Desktop+S.WND.hCUR
|
||||||
sta WND.SysBar+S.WND.hCUR
|
sta WND.SysBar+S.WND.hCUR
|
||||||
|
|
||||||
stz WND.Stack.Top
|
stz WND.Stack.Top
|
||||||
|
|
||||||
|
jsr SYSBAR.Show
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
WND.Quit lda WND.Screen+S.OBJ.hPARENT
|
WND.Quit lda WND.Screen+S.OBJ.hPARENT
|
||||||
|
@ -84,9 +82,12 @@ WND.New >LDYAI S.WND
|
||||||
|
|
||||||
ldy WND.Stack.Top
|
ldy WND.Stack.Top
|
||||||
cpy #WND.MAX
|
cpy #WND.MAX
|
||||||
bcs .90
|
bcc .10
|
||||||
|
|
||||||
lda #S.OBJ.T.WND
|
lda #E.OOH
|
||||||
|
>RET 9
|
||||||
|
|
||||||
|
.10 lda #S.OBJ.T.WND
|
||||||
sta (ZPWNDPtr) S.OBJ.T
|
sta (ZPWNDPtr) S.OBJ.T
|
||||||
|
|
||||||
ldy #S.WND-1
|
ldy #S.WND-1
|
||||||
|
@ -142,6 +143,13 @@ WND.New >LDYAI S.WND
|
||||||
ldy #S.OBJ.hOWNER
|
ldy #S.OBJ.hOWNER
|
||||||
sta (ZPWNDPtr),y
|
sta (ZPWNDPtr),y
|
||||||
|
|
||||||
|
lda L.WND.Desktop
|
||||||
|
ldy #S.OBJ.hPARENT
|
||||||
|
sta (ZPWNDPtr),y
|
||||||
|
iny
|
||||||
|
lda L.WND.Desktop+1
|
||||||
|
sta (ZPWNDPtr),y
|
||||||
|
|
||||||
txa ID
|
txa ID
|
||||||
ldy WND.Stack.Top
|
ldy WND.Stack.Top
|
||||||
sta WND.Stack
|
sta WND.Stack
|
||||||
|
@ -149,9 +157,6 @@ WND.New >LDYAI S.WND
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.90 lda #E.OOH
|
|
||||||
.9 >RET 9
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
WND.Destroy clc
|
WND.Destroy clc
|
||||||
rts
|
rts
|
||||||
|
@ -261,7 +266,7 @@ WND.Show >SYSCALL2 GetMemPtr
|
||||||
jsr WND.SetStatus
|
jsr WND.SetStatus
|
||||||
|
|
||||||
jsr WND.PaintTopBar
|
jsr WND.PaintTopBar
|
||||||
bcs .9
|
bcs WND.GetProp.RTS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.3 ldy #S.WND.MBAR+1
|
.3 ldy #S.WND.MBAR+1
|
||||||
lda (ZPWNDPtr),y
|
lda (ZPWNDPtr),y
|
||||||
|
@ -321,10 +326,22 @@ WND.Show >SYSCALL2 GetMemPtr
|
||||||
|
|
||||||
jsr WND.PaintSBar
|
jsr WND.PaintSBar
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.8 lda #0
|
.8 ldy #S.WND.InnerH
|
||||||
|
lda (ZPWNDPtr),y
|
||||||
|
sec
|
||||||
|
sbc Counter+1
|
||||||
|
sta (ZPWNDPtr),y
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPWNDPtr),y
|
||||||
|
sbc #0
|
||||||
|
sta (ZPWNDPtr),y
|
||||||
|
|
||||||
|
lda #0
|
||||||
jsr PutA2CBBuf
|
jsr PutA2CBBuf
|
||||||
|
|
||||||
>LDYA L.WND.Screen
|
>LDYA L.WND.Desktop
|
||||||
|
|
||||||
jsr DrawCBPtrToYA
|
jsr DrawCBPtrToYA
|
||||||
|
|
||||||
lda hCBBuf
|
lda hCBBuf
|
||||||
|
@ -407,7 +424,7 @@ WND.fPaint
|
||||||
|
|
||||||
stz CB.Buf+S.CB.Y2+2 Ending 0
|
stz CB.Buf+S.CB.Y2+2 Ending 0
|
||||||
|
|
||||||
>LDYA L.WND.Screen
|
>LDYA L.WND.Desktop
|
||||||
jmp DrawCBBufToYA
|
jmp DrawCBBufToYA
|
||||||
|
|
||||||
.1 clc
|
.1 clc
|
||||||
|
|
171
LIB/LIBGUI.S.txt
171
LIB/LIBGUI.S.txt
|
@ -128,26 +128,6 @@ CS.START cld
|
||||||
.DA WND.Paint
|
.DA WND.Paint
|
||||||
L.WND.fPaint .DA WND.fPaint
|
L.WND.fPaint .DA WND.fPaint
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
J.MBAR .DA MBAR.New
|
|
||||||
.DA MBAR.Paint
|
|
||||||
.DA MBAR.Close
|
|
||||||
*--------------------------------------
|
|
||||||
J.MENU .DA MENU.New
|
|
||||||
.DA MENU.Paint
|
|
||||||
.DA MENU.Close
|
|
||||||
*--------------------------------------
|
|
||||||
J.MENUITEM .DA MITEM.New
|
|
||||||
.DA MITEM.Paint
|
|
||||||
.DA MITEM.Close
|
|
||||||
*--------------------------------------
|
|
||||||
J.BUT .DA BUT.New
|
|
||||||
.DA BUT.Paint
|
|
||||||
.DA BUT.Close
|
|
||||||
*--------------------------------------
|
|
||||||
J.TEXT .DA TEXT.New
|
|
||||||
.DA TEXT.Paint
|
|
||||||
.DA TEXT.Close
|
|
||||||
*--------------------------------------
|
|
||||||
L.DEVNAME.GFX .DA DEVNAME.GFX
|
L.DEVNAME.GFX .DA DEVNAME.GFX
|
||||||
L.DEVNAME.MOUSE .DA DEVNAME.MOUSE
|
L.DEVNAME.MOUSE .DA DEVNAME.MOUSE
|
||||||
L.SYSX7 .DA SYSX7
|
L.SYSX7 .DA SYSX7
|
||||||
|
@ -155,8 +135,10 @@ L.SYSX7B .DA SYSX7B
|
||||||
L.IOCTL .DA IOCTL
|
L.IOCTL .DA IOCTL
|
||||||
L.DCB.GFX .DA DCB.GFX
|
L.DCB.GFX .DA DCB.GFX
|
||||||
L.MouseClamp .DA MouseClamp
|
L.MouseClamp .DA MouseClamp
|
||||||
|
L.CB.PTR .DA CB.PTR
|
||||||
L.CB.Buf .DA CB.Buf
|
L.CB.Buf .DA CB.Buf
|
||||||
L.CB.Cache .DA CB.Cache
|
L.CB.Cache .DA CB.Cache
|
||||||
|
L.OBJ.Cache .DA OBJ.Cache
|
||||||
L.WND.Screen .DA WND.Screen
|
L.WND.Screen .DA WND.Screen
|
||||||
L.WND.Desktop .DA WND.Desktop
|
L.WND.Desktop .DA WND.Desktop
|
||||||
L.WND.SysBar .DA WND.SysBar
|
L.WND.SysBar .DA WND.SysBar
|
||||||
|
@ -166,7 +148,6 @@ L.BM.Close .DA BM.Close
|
||||||
L.BM.Max .DA BM.Max
|
L.BM.Max .DA BM.Max
|
||||||
L.BM.Min .DA BM.Min
|
L.BM.Min .DA BM.Min
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
L.CUR.CB .DA CUR.CB
|
|
||||||
L.CUR.SaveBuf .DA CUR.SaveBuf
|
L.CUR.SaveBuf .DA CUR.SaveBuf
|
||||||
L.Cursors .DA CUR.Arrow
|
L.Cursors .DA CUR.Arrow
|
||||||
.DA CUR.ResizeX
|
.DA CUR.ResizeX
|
||||||
|
@ -230,66 +211,6 @@ LIB.UNLOAD dec LibCount
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OBJ.GetInCache >STYA .1+1
|
|
||||||
|
|
||||||
ldx #S.OBJ-1
|
|
||||||
|
|
||||||
.1 lda $ffff,x SELF MODIFIED
|
|
||||||
sta OBJ.Cache,x
|
|
||||||
dex
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
OBJ.SetX2Y2 >STYA ZPObjPtr
|
|
||||||
|
|
||||||
ldy #S.OBJ.W
|
|
||||||
lda (ZPObjPtr),y
|
|
||||||
clc
|
|
||||||
sbc #0
|
|
||||||
pha
|
|
||||||
iny
|
|
||||||
lda (ZPObjPtr),y
|
|
||||||
sbc #0
|
|
||||||
tax
|
|
||||||
pla
|
|
||||||
clc
|
|
||||||
ldy #S.OBJ.X1
|
|
||||||
adc (ZPObjPtr),y
|
|
||||||
pha
|
|
||||||
txa
|
|
||||||
iny
|
|
||||||
adc (ZPObjPtr),y
|
|
||||||
ldy #S.OBJ.X2+1
|
|
||||||
sta (ZPObjPtr),y
|
|
||||||
dey
|
|
||||||
pla
|
|
||||||
sta (ZPObjPtr),y
|
|
||||||
ldy #S.OBJ.H
|
|
||||||
lda (ZPObjPtr),y
|
|
||||||
clc
|
|
||||||
sbc #0
|
|
||||||
pha
|
|
||||||
iny
|
|
||||||
lda (ZPObjPtr),y
|
|
||||||
sbc #0
|
|
||||||
tax
|
|
||||||
pla
|
|
||||||
clc
|
|
||||||
ldy #S.OBJ.Y1
|
|
||||||
adc (ZPObjPtr),y
|
|
||||||
pha
|
|
||||||
txa
|
|
||||||
iny
|
|
||||||
adc (ZPObjPtr),y
|
|
||||||
ldy #S.OBJ.Y2+1
|
|
||||||
sta (ZPObjPtr),y
|
|
||||||
dey
|
|
||||||
pla
|
|
||||||
sta (ZPObjPtr),y
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CB.ClearCache ldx #S.CB-1
|
CB.ClearCache ldx #S.CB-1
|
||||||
|
|
||||||
.1 stz CB.Cache,x
|
.1 stz CB.Cache,x
|
||||||
|
@ -355,6 +276,69 @@ GFXWrite.YA pha
|
||||||
>SYSCALL2 IOCTL
|
>SYSCALL2 IOCTL
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
OBJ.GetInCache >STYA .1+1
|
||||||
|
|
||||||
|
ldx #S.OBJ-1
|
||||||
|
|
||||||
|
.1 lda $ffff,x SELF MODIFIED
|
||||||
|
sta OBJ.Cache,x
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
OBJ.SetX2Y2 >STYA ZPPtr1
|
||||||
|
|
||||||
|
ldy #S.OBJ.W
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
clc
|
||||||
|
sbc #0
|
||||||
|
pha
|
||||||
|
iny
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
sbc #0
|
||||||
|
tax
|
||||||
|
|
||||||
|
pla
|
||||||
|
clc
|
||||||
|
ldy #S.OBJ.X1
|
||||||
|
adc (ZPPtr1),y
|
||||||
|
pha
|
||||||
|
txa
|
||||||
|
iny
|
||||||
|
adc (ZPPtr1),y
|
||||||
|
ldy #S.OBJ.X2+1
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
dey
|
||||||
|
pla
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
|
ldy #S.OBJ.H
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
clc
|
||||||
|
sbc #0
|
||||||
|
pha
|
||||||
|
iny
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
sbc #0
|
||||||
|
tax
|
||||||
|
|
||||||
|
pla
|
||||||
|
clc
|
||||||
|
ldy #S.OBJ.Y1
|
||||||
|
adc (ZPPtr1),y
|
||||||
|
pha
|
||||||
|
txa
|
||||||
|
iny
|
||||||
|
adc (ZPPtr1),y
|
||||||
|
ldy #S.OBJ.Y2+1
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
dey
|
||||||
|
pla
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
.INB usr/src/lib/libgui.s.bm
|
.INB usr/src/lib/libgui.s.bm
|
||||||
.INB usr/src/lib/libgui.s.but
|
.INB usr/src/lib/libgui.s.but
|
||||||
.INB usr/src/lib/libgui.s.clip
|
.INB usr/src/lib/libgui.s.clip
|
||||||
|
@ -372,7 +356,6 @@ CS.END
|
||||||
.INB usr/src/lib/libgui.g.bm
|
.INB usr/src/lib/libgui.g.bm
|
||||||
.INB usr/src/lib/libgui.g.cur
|
.INB usr/src/lib/libgui.g.cur
|
||||||
.INB usr/src/lib/libgui.g.fon
|
.INB usr/src/lib/libgui.g.fon
|
||||||
.INB usr/src/lib/libgui.g.wnd
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEVNAME.GFX .AZ "/dev/gfx"
|
DEVNAME.GFX .AZ "/dev/gfx"
|
||||||
DEVNAME.MOUSE .AZ "/dev/mou1"
|
DEVNAME.MOUSE .AZ "/dev/mou1"
|
||||||
|
@ -408,26 +391,31 @@ MOUSEDATA .BS S.MOUSE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MouseClamp .BS 8
|
MouseClamp .BS 8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CB.Buf .BS S.CB
|
CB.PTR .DA #S.CB.CMD.BITBLT
|
||||||
|
.BS 1 S.CB.OP
|
||||||
|
.DA #S.CB.M.MONO
|
||||||
|
.DA #0
|
||||||
|
.BS S.CB-4
|
||||||
|
*--------------------------------------
|
||||||
|
CB.Buf .BS S.CB+1 +Ending 0
|
||||||
CB.Cache .BS S.CB
|
CB.Cache .BS S.CB
|
||||||
OBJ.Cache .BS S.OBJ
|
OBJ.Cache .BS S.OBJ
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
WND.Stack.Top .BS 1
|
||||||
|
WND.Stack .BS WND.MAX
|
||||||
|
*--------------------------------------
|
||||||
WND.Screen .DA #S.OBJ.T.WND
|
WND.Screen .DA #S.OBJ.T.WND
|
||||||
.BS S.WND-1
|
.BS S.WND-1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
WND.Screen.Childs
|
|
||||||
.BS 2 WND.Desktop
|
|
||||||
.BS 2 WND.SysBar
|
|
||||||
.DA 0
|
|
||||||
*--------------------------------------
|
|
||||||
WND.Desktop .DA #S.OBJ.T.WND
|
WND.Desktop .DA #S.OBJ.T.WND
|
||||||
.BS S.WND-1
|
.BS S.WND-1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
WND.SysBar .DA #S.OBJ.T.WND
|
WND.SysBar .DA #S.OBJ.T.WND
|
||||||
.BS S.WND-1
|
.BS S.WND-1
|
||||||
WND.SysBar.Childs
|
WND.SysBar.A2osX.X2
|
||||||
.BS 2 BUT.Sys
|
.BS 2
|
||||||
.DA 0
|
WND.SysBar.Time.X1
|
||||||
|
.BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BUT.Sys .DA #S.OBJ.T.BUT
|
BUT.Sys .DA #S.OBJ.T.BUT
|
||||||
.DA #0 F
|
.DA #0 F
|
||||||
|
@ -447,6 +435,7 @@ MENU.Sys .DA #2 ID
|
||||||
.DA #0
|
.DA #0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PREFS.BESTVIEWEDX .DA #$FC
|
PREFS.BESTVIEWEDX .DA #$FC
|
||||||
|
PREFS.SYSBARCOLOR .DA #C.WHITE
|
||||||
PREFS.MBARXMARGIN .DA #5
|
PREFS.MBARXMARGIN .DA #5
|
||||||
PREFS.BORDERCOLOR .DA #C.BLACK
|
PREFS.BORDERCOLOR .DA #C.BLACK
|
||||||
PREFS.TBARCOLORA .DA #C16.D.BLUE
|
PREFS.TBARCOLORA .DA #C16.D.BLUE
|
||||||
|
|
|
@ -60,10 +60,6 @@ CS.RUN >LIBCALL hLIBGUI,LIBGUI.ShowCursor
|
||||||
|
|
||||||
CS.RUN.LOOP >SLEEP
|
CS.RUN.LOOP >SLEEP
|
||||||
|
|
||||||
* lda A2osX.ASCREEN
|
|
||||||
* cmp #8
|
|
||||||
* bne CS.RUN.LOOP
|
|
||||||
|
|
||||||
>PUSHW L.MouseData
|
>PUSHW L.MouseData
|
||||||
>LIBCALL hLIBGUI,LIBGUI.ReadMouse
|
>LIBCALL hLIBGUI,LIBGUI.ReadMouse
|
||||||
bcs .8
|
bcs .8
|
||||||
|
@ -78,23 +74,25 @@ CS.RUN.LOOP >SLEEP
|
||||||
lda MouseData+S.MOUSE.S
|
lda MouseData+S.MOUSE.S
|
||||||
|
|
||||||
.1 bit #S.MOUSE.S.CLK
|
.1 bit #S.MOUSE.S.CLK
|
||||||
beq .4
|
beq .2
|
||||||
|
|
||||||
>LDA.G CUR.T
|
>LDA.G CUR.T
|
||||||
inc
|
inc
|
||||||
inc
|
inc
|
||||||
cmp #CUR.T.WAIT+2
|
cmp #CUR.T.WAIT+2
|
||||||
bne .2
|
bne .11
|
||||||
|
|
||||||
lda #CUR.T.ARROW
|
lda #CUR.T.ARROW
|
||||||
|
|
||||||
.2 >STA.G CUR.T
|
.11 >STA.G CUR.T
|
||||||
>LIBCALL hLIBGUI,LIBGUI.SetCursor
|
>LIBCALL hLIBGUI,LIBGUI.SetCursor
|
||||||
|
jmp CS.RUN.LOOP
|
||||||
|
|
||||||
|
.2 bit #S.MOUSE.S.DCLK
|
||||||
|
beq .8
|
||||||
|
|
||||||
jsr WND.Test
|
jsr WND.Test
|
||||||
|
|
||||||
.4
|
|
||||||
|
|
||||||
.8 jmp CS.RUN.LOOP
|
.8 jmp CS.RUN.LOOP
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
@ -146,9 +144,18 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F.
|
||||||
|
|
||||||
lda hWND
|
lda hWND
|
||||||
>LIBCALL hLIBGUI,LIBGUI.WND.Paint
|
>LIBCALL hLIBGUI,LIBGUI.WND.Paint
|
||||||
|
rts
|
||||||
|
|
||||||
clc
|
>PUSHB hWND
|
||||||
.9 rts
|
>PUSHBI S.CB.OP.SET
|
||||||
|
>PUSHBI C.BLACK
|
||||||
|
>PUSHWI 0
|
||||||
|
>PUSHWI 0
|
||||||
|
>PUSHWI 300
|
||||||
|
>PUSHWI 80
|
||||||
|
>LIBCALL hLIBGUI,LIBGUI.DrawLine
|
||||||
|
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
LIBGUI .AZ "libgui"
|
LIBGUI .AZ "libgui"
|
||||||
|
|
|
@ -25,4 +25,4 @@ hToDelete .BS 1
|
||||||
.FIN
|
.FIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/bin/x.cpmvrm.g
|
SAVE usr/src/shared/x.cpmvrm.g
|
|
@ -705,6 +705,6 @@ CS.QUIT jsr LeaveSubDir
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/bin/x.cpmvrm.s
|
SAVE usr/src/shared/x.cpmvrm.s
|
||||||
LOAD usr/src/bin/cp.s
|
LOAD usr/src/bin/cp.s
|
||||||
ASM
|
ASM
|
|
@ -570,6 +570,6 @@ DCB .DA #S.DCB.T.COM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.END
|
DRV.END
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/drv/x.ssc.drv.s
|
SAVE usr/src/shared/x.ssc.drv.s
|
||||||
LOAD usr/src/drv/ssc.i.drv.s
|
LOAD usr/src/drv/ssc.i.drv.s
|
||||||
ASM
|
ASM
|
|
@ -36,4 +36,4 @@ TWIST .DA #%00000000,#%10000000,#%01000000,#%11000000,#%00100000,#%10100000,#%
|
||||||
.DA #%00011111,#%10011111,#%01011111,#%11011111,#%00111111,#%10111111,#%01111111,#%11111111
|
.DA #%00011111,#%10011111,#%01011111,#%11011111,#%00111111,#%10111111,#%01111111,#%11111111
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/SHARED/X.TWIST.G
|
SAVE usr/src/shared/x.twist.g
|
||||||
|
|
Loading…
Reference in New Issue
Block a user