mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94
This commit is contained in:
parent
283ade3546
commit
3a3d82f7e6
Binary file not shown.
|
@ -7,7 +7,7 @@ LIBGUI.HideCursor .EQ 8
|
|||
LIBGUI.ShowCursor .EQ 10
|
||||
LIBGUI.UpdateCursor .EQ 12
|
||||
LIBGUI.ReadMouse .EQ 14
|
||||
LIBGUI.GetScreenGC .EQ 16
|
||||
LIBGUI.DrawLine .EQ 16
|
||||
LIBGUI.WND.New .EQ 18
|
||||
LIBJUI.WND.Destroy .EQ 20
|
||||
LIBGUI.WND.SetProp .EQ 22
|
||||
|
@ -123,10 +123,12 @@ S.WND.BGBM .EQ S.OBJ+14
|
|||
S.WND.hCUR .EQ S.OBJ+16
|
||||
S.WND.TitleX1 .EQ S.OBJ+18
|
||||
S.WND.TitleX2 .EQ S.OBJ+20
|
||||
S.WND.TBAR.Y2 .EQ S.OBJ+22
|
||||
S.WND.MBAR.Y1 .EQ S.OBJ+22
|
||||
S.WND.MBAR.Y2 .EQ S.OBJ+24
|
||||
S.WND.SBAR.Y1 .EQ S.OBJ+26
|
||||
S.WND.TBarY2 .EQ S.OBJ+22
|
||||
S.WND.MBarY1 .EQ S.OBJ+22
|
||||
S.WND.MBarY2 .EQ S.OBJ+24
|
||||
S.WND.InnerY1 .EQ S.OBJ+24
|
||||
S.WND.InnerY2 .EQ S.OBJ+26
|
||||
S.WND.SBarY1 .EQ S.OBJ+26
|
||||
S.WND.InnerW .EQ S.OBJ+28
|
||||
S.WND.InnerH .EQ S.OBJ+30
|
||||
S.WND.DocW .EQ S.OBJ+32
|
||||
|
|
|
@ -9,7 +9,7 @@ NEW
|
|||
* CC : CB.Cache clipped & visible
|
||||
* CS : CB.Cache invisible
|
||||
*--------------------------------------
|
||||
CLIP.YA jsr CB.Get Put CB in cache
|
||||
CLIP.YA jsr CB.GetInCache
|
||||
|
||||
CLIP.CB.Cache lda CB.Cache+S.CB.CMD
|
||||
and #$7F remove S.CB.CMD.OSD
|
||||
|
|
|
@ -112,19 +112,21 @@ ShowCursor lda CUR.bVisible
|
|||
HideCursor.I lda #S.CB.OP.RESTORE
|
||||
bra DrawCursor.I
|
||||
*--------------------------------------
|
||||
ShowCursor.I sta CUR.CB+S.CB.OP
|
||||
ldx CUR.T
|
||||
ShowCursor.I ldx CUR.T
|
||||
lda CUR.Pos+S.POINT.X
|
||||
sec
|
||||
sbc CUR.HotPoints,x
|
||||
sta CUR.CB+S.CB.X1
|
||||
|
||||
lda CUR.Pos+S.POINT.X+1
|
||||
sbc #0
|
||||
sta CUR.CB+S.CB.X1+1
|
||||
|
||||
lda CUR.Pos+S.POINT.Y
|
||||
sec
|
||||
sbc CUR.HotPoints+1,x
|
||||
sta CUR.CB+S.CB.Y1
|
||||
|
||||
lda CUR.Pos+S.POINT.Y+1
|
||||
sbc #0
|
||||
sta CUR.CB+S.CB.Y1+1
|
||||
|
@ -134,7 +136,7 @@ ShowCursor.I sta CUR.CB+S.CB.OP
|
|||
DrawCursor.I sta CUR.CB+S.CB.OP
|
||||
|
||||
>LDYA L.WND.Screen
|
||||
jsr OBJ.Get
|
||||
jsr OBJ.GetInCache
|
||||
|
||||
>LDYA L.CUR.CB
|
||||
jsr CLIP.YA
|
||||
|
|
|
@ -1,38 +1,45 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
DrawCBCacheToYA ldx L.CB.Cache
|
||||
DrawCBBufToYA ldx L.CB.Buf
|
||||
stx ZPCBPtr
|
||||
ldx L.CB.Cache+1
|
||||
ldx L.CB.Buf+1
|
||||
stx ZPCBPtr+1
|
||||
|
||||
DrawCBPtrToYA jsr OBJ.Get
|
||||
DrawCBPtrToYA jsr OBJ.GetInCache
|
||||
|
||||
bit CUR.bVisible
|
||||
bpl .1
|
||||
|
||||
jsr HideCursor.I
|
||||
|
||||
.1 lda (ZPCBPtr)
|
||||
beq .8
|
||||
|
||||
>LDYA ZPCBPtr
|
||||
jsr CB.Get A = CB.CMD
|
||||
jsr CB.GetInCache A = CB.CMD
|
||||
|
||||
cmp #S.CB.CMD.DRAWTEXT2
|
||||
bne .2
|
||||
bne .6
|
||||
|
||||
lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
|
||||
sta CB.Cache+S.CB.CMD
|
||||
jsr GFXWrite.CB
|
||||
bcs .9
|
||||
|
||||
.2 jsr CLIP.CB.Cache
|
||||
bcs .7
|
||||
|
||||
ldx CB.Cache+S.CB.CMD
|
||||
cpx #S.CB.CMD.DRAWLINE
|
||||
bcc .6 Native DRV Cmd
|
||||
|
||||
jsr Draw.Jmp
|
||||
jsr CLIP.CB.Cache
|
||||
bcs .2
|
||||
|
||||
jsr GFXWrite.CB
|
||||
|
||||
.2 lda CB.Cache+S.CB.SrcPtr
|
||||
>SYSCALL2 FreeStkObj
|
||||
bra .7
|
||||
|
||||
.6 jsr GFXWrite.CB
|
||||
.6 jsr CLIP.CB.Cache
|
||||
bcs .7
|
||||
|
||||
jsr GFXWrite.CB
|
||||
|
||||
.7 lda (ZPCBPtr) Get Cmd
|
||||
lsr
|
||||
|
@ -47,9 +54,16 @@ DrawCBPtrToYA jsr OBJ.Get
|
|||
bra .1
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
.9 bit CUR.bVisible
|
||||
bpl .99
|
||||
|
||||
php
|
||||
pha
|
||||
jsr ShowCursor.I
|
||||
pla
|
||||
plp
|
||||
|
||||
Draw.Jmp jmp (J.Cmds-S.CB.CMD.DRAWLINE,x)
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
* In: Control Block in CB.Cache
|
||||
* CMD
|
||||
|
@ -61,7 +75,18 @@ Draw.Jmp jmp (J.Cmds-S.CB.CMD.DRAWLINE,x)
|
|||
* X2
|
||||
* Y2
|
||||
*--------------------------------------
|
||||
DrawLine lda CB.Cache+S.CB.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
|
||||
|
||||
lda CB.Cache+S.CB.X2
|
||||
sec
|
||||
sbc CB.Cache+S.CB.X1
|
||||
sta DX
|
||||
|
@ -182,11 +207,13 @@ DrawLine.IncY lda DY
|
|||
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
|
||||
|
@ -196,8 +223,10 @@ DrawLine.IncY lda DY
|
|||
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
|
||||
|
@ -205,12 +234,14 @@ DrawLine.IncY lda DY
|
|||
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
|
||||
|
@ -251,11 +282,13 @@ DrawLine.IncX lda DX
|
|||
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
|
||||
|
@ -268,6 +301,7 @@ DrawLine.IncX lda DX
|
|||
adc IY
|
||||
sta CB.Cache+S.CB.Y1
|
||||
bra .5
|
||||
|
||||
.4 lda D D < 0 : D=D+IE
|
||||
clc
|
||||
adc IE
|
||||
|
@ -277,18 +311,14 @@ DrawLine.IncX lda DX
|
|||
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
|
||||
*--------------------------------------
|
||||
DrawText2 jsr GFXWrite.CB
|
||||
lda CB.Cache+S.CB.SrcPtr
|
||||
>SYSCALL2 FreeStkObj
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
|
||||
MAN
|
||||
SAVE usr/src/lib/libgui.s.draw
|
||||
LOAD usr/src/lib/libgui.s
|
||||
|
|
|
@ -217,7 +217,7 @@ WND.Show >SYSCALL2 GetMemPtr
|
|||
iny
|
||||
lda (ZPWNDPtr),y
|
||||
|
||||
ldy #S.WND.TBAR.Y2+1
|
||||
ldy #S.WND.TBarY2+1
|
||||
sta (ZPWNDPtr),y
|
||||
txa
|
||||
dey
|
||||
|
@ -247,7 +247,7 @@ WND.Show >SYSCALL2 GetMemPtr
|
|||
adc SYSFON.Hp2
|
||||
sta Counter+1
|
||||
|
||||
ldy #S.WND.TBAR.Y2
|
||||
ldy #S.WND.TBarY2
|
||||
lda (ZPWNDPtr),y
|
||||
clc
|
||||
adc SYSFON.Hp2
|
||||
|
@ -272,7 +272,7 @@ WND.Show >SYSCALL2 GetMemPtr
|
|||
adc SYSFON.Hp2
|
||||
sta Counter+1
|
||||
|
||||
ldy #S.WND.TBAR.Y2
|
||||
ldy #S.WND.TBarY2
|
||||
lda (ZPWNDPtr),y
|
||||
clc
|
||||
adc SYSFON.H
|
||||
|
@ -281,7 +281,7 @@ WND.Show >SYSCALL2 GetMemPtr
|
|||
iny
|
||||
lda (ZPWNDPtr),y
|
||||
adc #0
|
||||
ldy #S.WND.MBAR.Y2+1
|
||||
ldy #S.WND.MBarY2+1
|
||||
sta (ZPWNDPtr),y
|
||||
txa
|
||||
dey
|
||||
|
@ -310,7 +310,7 @@ WND.Show >SYSCALL2 GetMemPtr
|
|||
iny
|
||||
lda (ZPWNDPtr),y
|
||||
sbc #0
|
||||
ldy #S.WND.SBAR.Y1+1
|
||||
ldy #S.WND.SBarY1+1
|
||||
sta (ZPWNDPtr),y
|
||||
txa
|
||||
dey
|
||||
|
@ -357,52 +357,58 @@ WND.fPaint
|
|||
ldy #S.WND.BGBM+1
|
||||
lda (ZPWNDPtr),y
|
||||
bne .1
|
||||
|
||||
|
||||
lda #S.CB.CMD.FILLRECT
|
||||
sta CB.Cache+S.CB.COLOR
|
||||
sta CB.Buf+S.CB.CMD
|
||||
|
||||
lda #S.CB.OP.SET
|
||||
sta CB.Cache+S.CB.OP
|
||||
sta CB.Buf+S.CB.OP
|
||||
|
||||
lda #S.CB.M.MONO
|
||||
sta CB.Buf+S.CB.M
|
||||
|
||||
ldy #S.WND.BGCOLOR
|
||||
lda (ZPWNDPtr),y
|
||||
sta CB.Cache+S.CB.COLOR
|
||||
sta CB.Buf+S.CB.COLOR
|
||||
|
||||
ldy #S.OBJ.X1
|
||||
lda (ZPWNDPtr),y
|
||||
sta CB.Cache+S.CB.X1
|
||||
sta CB.Buf+S.CB.X1
|
||||
iny
|
||||
lda (ZPWNDPtr),y
|
||||
sta CB.Cache+S.CB.X1+1
|
||||
sta CB.Buf+S.CB.X1+1
|
||||
|
||||
ldy #S.WND.MBAR.Y2
|
||||
ldy #S.WND.InnerY1
|
||||
lda (ZPWNDPtr),y
|
||||
clc
|
||||
adc #1
|
||||
sta CB.Cache+S.CB.Y1
|
||||
sta CB.Buf+S.CB.Y1
|
||||
iny
|
||||
lda (ZPWNDPtr),y
|
||||
adc #0
|
||||
sta CB.Cache+S.CB.Y1+1
|
||||
sta CB.Buf+S.CB.Y1+1
|
||||
|
||||
ldy #S.OBJ.X2
|
||||
lda (ZPWNDPtr),y
|
||||
sta CB.Cache+S.CB.X2
|
||||
sta CB.Buf+S.CB.X2
|
||||
iny
|
||||
lda (ZPWNDPtr),y
|
||||
sta CB.Cache+S.CB.X2+1
|
||||
sta CB.Buf+S.CB.X2+1
|
||||
|
||||
ldy #S.WND.SBAR.Y1
|
||||
ldy #S.WND.InnerY2
|
||||
lda (ZPWNDPtr),y
|
||||
sta CB.Cache+S.CB.Y2
|
||||
sec
|
||||
sbc #1
|
||||
sta CB.Buf+S.CB.Y2
|
||||
iny
|
||||
lda (ZPWNDPtr),y
|
||||
sta CB.Cache+S.CB.Y2+1
|
||||
sbc #0
|
||||
sta CB.Buf+S.CB.Y2+1
|
||||
|
||||
stz S.CB.Y2+2 Ending 0
|
||||
stz CB.Buf+S.CB.Y2+2 Ending 0
|
||||
|
||||
>LDYA L.WND.Screen
|
||||
jmp DrawCBCacheToYA
|
||||
jmp DrawCBBufToYA
|
||||
|
||||
.1 clc
|
||||
rts
|
||||
|
@ -728,7 +734,7 @@ WND.PaintTopBarBMAtAX
|
|||
rts
|
||||
*--------------------------------------
|
||||
WND.PaintTopBarTitle
|
||||
jsr CB.Clear
|
||||
jsr CB.ClearCache
|
||||
|
||||
ldy #S.WND.TITLE
|
||||
lda (ZPWNDPtr),y
|
||||
|
@ -790,7 +796,7 @@ WND.PaintTopBarTitle
|
|||
|
||||
rts
|
||||
*--------------------------------------
|
||||
WND.PaintMBar jsr CB.Clear
|
||||
WND.PaintMBar jsr CB.ClearCache
|
||||
|
||||
lda #S.CB.CMD.FILLRECT
|
||||
sta CB.Cache+S.CB.CMD
|
||||
|
@ -820,7 +826,7 @@ WND.PaintMBar jsr CB.Clear
|
|||
lda (ZPWNDPtr),y
|
||||
sta CB.Cache+S.CB.X2+1
|
||||
|
||||
ldy #S.WND.MBAR.Y1
|
||||
ldy #S.WND.MBarY1
|
||||
lda (ZPWNDPtr),y
|
||||
sta CB.Cache+S.CB.Y1
|
||||
|
||||
|
@ -828,7 +834,7 @@ WND.PaintMBar jsr CB.Clear
|
|||
lda (ZPWNDPtr),y
|
||||
sta CB.Cache+S.CB.Y1+1
|
||||
|
||||
iny #S.WND.MBAR.Y2
|
||||
iny #S.WND.MBarY2
|
||||
lda (ZPWNDPtr),y
|
||||
sta CB.Cache+S.CB.Y2
|
||||
|
||||
|
@ -850,7 +856,7 @@ WND.PaintMBar jsr CB.Clear
|
|||
.1 lda (ZPMENUPtr)
|
||||
beq .8
|
||||
|
||||
jsr CB.Clear
|
||||
jsr CB.ClearCache
|
||||
|
||||
lda #S.CB.CMD.DRAWTEXT2
|
||||
sta CB.CACHE+S.CB.CMD
|
||||
|
@ -877,7 +883,7 @@ WND.PaintMBar jsr CB.Clear
|
|||
adc (ZPWNDPtr),y
|
||||
sta CB.CACHE+S.CB.X1+1
|
||||
|
||||
ldy #S.WND.MBAR.Y1
|
||||
ldy #S.WND.MBarY1
|
||||
lda (ZPWNDPtr),y
|
||||
clc
|
||||
adc #1
|
||||
|
@ -941,7 +947,7 @@ WND.PaintSBar lda #S.CB.CMD.HLINE
|
|||
jsr PutA2CBBuf
|
||||
jsr PutA2CBBuf
|
||||
|
||||
jsr CB.Clear S.CB.Y2
|
||||
jsr CB.ClearCache S.CB.Y2
|
||||
|
||||
lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
|
||||
sta CB.Cache+S.CB.CMD
|
||||
|
|
|
@ -119,7 +119,7 @@ CS.START cld
|
|||
.DA ShowCursor
|
||||
.DA UpdateCursor
|
||||
.DA MOU.ReadMouse
|
||||
.DA GetScreenGC
|
||||
.DA DrawLine
|
||||
.DA WND.New
|
||||
.DA WND.Destroy
|
||||
.DA WND.SetProp
|
||||
|
@ -128,9 +128,6 @@ CS.START cld
|
|||
.DA WND.Paint
|
||||
L.WND.fPaint .DA WND.fPaint
|
||||
*--------------------------------------
|
||||
J.Cmds .DA DrawLine
|
||||
.DA DrawText2
|
||||
*--------------------------------------
|
||||
J.MBAR .DA MBAR.New
|
||||
.DA MBAR.Paint
|
||||
.DA MBAR.Close
|
||||
|
@ -158,6 +155,7 @@ L.SYSX7B .DA SYSX7B
|
|||
L.IOCTL .DA IOCTL
|
||||
L.DCB.GFX .DA DCB.GFX
|
||||
L.MouseClamp .DA MouseClamp
|
||||
L.CB.Buf .DA CB.Buf
|
||||
L.CB.Cache .DA CB.Cache
|
||||
L.WND.Screen .DA WND.Screen
|
||||
L.WND.Desktop .DA WND.Desktop
|
||||
|
@ -232,7 +230,7 @@ LIB.UNLOAD dec LibCount
|
|||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
OBJ.Get >STYA .1+1
|
||||
OBJ.GetInCache >STYA .1+1
|
||||
|
||||
ldx #S.OBJ-1
|
||||
|
||||
|
@ -292,7 +290,7 @@ OBJ.SetX2Y2 >STYA ZPObjPtr
|
|||
|
||||
rts
|
||||
*--------------------------------------
|
||||
CB.Clear ldx #S.CB-1
|
||||
CB.ClearCache ldx #S.CB-1
|
||||
|
||||
.1 stz CB.Cache,x
|
||||
dex
|
||||
|
@ -300,7 +298,7 @@ CB.Clear ldx #S.CB-1
|
|||
|
||||
rts
|
||||
*--------------------------------------
|
||||
CB.Get >STYA .1+1
|
||||
CB.GetInCache >STYA .1+1
|
||||
|
||||
ldx #S.CB-1
|
||||
|
||||
|
@ -356,9 +354,6 @@ GFXWrite.YA pha
|
|||
>PUSHYA
|
||||
>SYSCALL2 IOCTL
|
||||
rts
|
||||
*--------------------------------------
|
||||
GetScreenGC >LDYA L.WND.Screen
|
||||
rts
|
||||
*--------------------------------------
|
||||
.INB usr/src/lib/libgui.s.bm
|
||||
.INB usr/src/lib/libgui.s.but
|
||||
|
@ -413,6 +408,7 @@ MOUSEDATA .BS S.MOUSE
|
|||
*--------------------------------------
|
||||
MouseClamp .BS 8
|
||||
*--------------------------------------
|
||||
CB.Buf .BS S.CB
|
||||
CB.Cache .BS S.CB
|
||||
OBJ.Cache .BS S.OBJ
|
||||
*--------------------------------------
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
|
@ -56,7 +55,8 @@ CS.INIT >LDYA L.LIBGUI
|
|||
* clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN
|
||||
CS.RUN >LIBCALL hLIBGUI,LIBGUI.ShowCursor
|
||||
|
||||
|
||||
CS.RUN.LOOP >SLEEP
|
||||
|
||||
|
@ -116,7 +116,7 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F.
|
|||
>PUSHW MouseData+S.MOUSE.X1
|
||||
>PUSHW MouseData+S.MOUSE.Y1
|
||||
>PUSHWI 280
|
||||
>PUSHWI 90
|
||||
>PUSHWI 96
|
||||
>LIBCALL hLIBGUI,LIBGUI.WND.New
|
||||
bcs CS.QUIT.RTS
|
||||
sta hWND
|
||||
|
@ -136,13 +136,17 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F.
|
|||
>PUSHW L.WND.STATUS
|
||||
>LIBCALL hLIBGUI,LIBGUI.WND.SetProp
|
||||
|
||||
>LIBCALL hLIBGUI,LIBGUI.HideCursor
|
||||
>PUSHB hWND
|
||||
>PUSHBI S.WND.BGCOLOR
|
||||
>PUSHWI C.WHITE
|
||||
>LIBCALL hLIBGUI,LIBGUI.WND.SetProp
|
||||
|
||||
lda hWND
|
||||
>LIBCALL hLIBGUI,LIBGUI.WND.Show
|
||||
|
||||
lda hWND
|
||||
>LIBCALL hLIBGUI,LIBGUI.WND.Paint
|
||||
|
||||
>LIBCALL hLIBGUI,LIBGUI.ShowCursor
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
|
|
Loading…
Reference in New Issue