mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94
This commit is contained in:
parent
40b2dbf4c6
commit
7b10d2318d
Binary file not shown.
|
@ -33,13 +33,14 @@ C16.YELLOW .EQ 14
|
|||
C.WHITE .EQ 255
|
||||
*--------------------------------------
|
||||
CUR.T.ARROW .EQ 0
|
||||
CUR.T.RESIZEX .EQ 2
|
||||
CUR.T.RESIZEY .EQ 4
|
||||
CUR.T.RESIZEXY1 .EQ 6
|
||||
CUR.T.RESIZEXY2 .EQ 8
|
||||
CUR.T.CROSS .EQ 10
|
||||
CUR.T.TEXT .EQ 12
|
||||
CUR.T.WAIT .EQ 14
|
||||
CUR.T.MOVE .EQ 2
|
||||
CUR.T.RESIZEX .EQ 4
|
||||
CUR.T.RESIZEY .EQ 6
|
||||
CUR.T.RESIZEXY1 .EQ 8
|
||||
CUR.T.RESIZEXY2 .EQ 10
|
||||
CUR.T.CROSS .EQ 12
|
||||
CUR.T.TEXT .EQ 14
|
||||
CUR.T.WAIT .EQ 16
|
||||
*--------------------------------------
|
||||
S.MOUSE.X1 .EQ 0
|
||||
S.MOUSE.Y1 .EQ 2
|
||||
|
@ -138,13 +139,18 @@ S.WND.fPaint .EQ S.OBJ+40
|
|||
*
|
||||
S.WND .EQ S.OBJ+42
|
||||
*--------------------------------------
|
||||
S.MBAR.NEXT .EQ 0
|
||||
S.MBAR.S .EQ 1
|
||||
S.MBAR.X1 .EQ 2
|
||||
S.MBAR.XT .EQ 4
|
||||
S.MBAR.X2 .EQ 6
|
||||
S.MBAR.MENU .EQ 8
|
||||
S.MBAR.TEXT .EQ 10
|
||||
S.MBAR.MBITEMS .EQ S.OBJ
|
||||
S.MBAR.Selected .EQ S.OBJ+2
|
||||
*
|
||||
S.MBAR .EQ S.OBJ+4
|
||||
*--------------------------------------
|
||||
S.MBITEM.NEXT .EQ 0
|
||||
S.MBITEM.S .EQ 1
|
||||
S.MBITEM.X1 .EQ 2
|
||||
S.MBITEM.XT .EQ 4
|
||||
S.MBITEM.X2 .EQ 6
|
||||
S.MBITEM.MENU .EQ 8
|
||||
S.MBITEM.TEXT .EQ 10
|
||||
*--------------------------------------
|
||||
S.MENU.MITEMS .EQ S.OBJ
|
||||
S.MENU.hSAVEBUF .EQ S.OBJ+2
|
||||
|
|
|
@ -53,6 +53,35 @@ CUR.Arrow.MASK .DA %111.11111100
|
|||
.DA %110.00000000
|
||||
.DA %110.00001111
|
||||
*--------------------------------------
|
||||
CUR.Move .DA #S.BM.F.BBP1
|
||||
.DA #2 RowBytes
|
||||
.DA 11 W
|
||||
.DA 11 H
|
||||
.DA CUR.Move.MASK-CUR.Move
|
||||
.DA %000.00100000
|
||||
.DA %000.01010000
|
||||
.DA %000.10001000
|
||||
.DA %001.00000100
|
||||
.DA %010.00000010
|
||||
.DA %100.00000001
|
||||
.DA %010.00000010
|
||||
.DA %001.00000100
|
||||
.DA %000.10001000
|
||||
.DA %000.01010000
|
||||
.DA %000.00100000
|
||||
CUR.Move.MASK
|
||||
.DA %111.11111111
|
||||
.DA %111.11111111
|
||||
.DA %111.11111111
|
||||
.DA %111.11111111
|
||||
.DA %111.11111111
|
||||
.DA %111.11111111
|
||||
.DA %111.11111111
|
||||
.DA %111.11111111
|
||||
.DA %111.11111111
|
||||
.DA %111.11111111
|
||||
.DA %111.11111111
|
||||
*--------------------------------------
|
||||
CUR.ResizeX .DA #S.BM.F.BBP1
|
||||
.DA #2 RowBytes
|
||||
.DA 14 W
|
||||
|
|
|
@ -417,7 +417,6 @@ DRAW.GetInnerW ldy #S.OBJ.X1
|
|||
|
||||
>LDYA L.OBJ.Cache
|
||||
jmp OBJ.SetX2Y2
|
||||
|
||||
*--------------------------------------
|
||||
DrawCBPtrToYA1 pha
|
||||
|
||||
|
|
|
@ -0,0 +1,95 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
MBAR.Init >STYA ZPMENUPtr
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldy #S.MBITEM.S
|
||||
lda (ZPPtr1),y
|
||||
bmi .80
|
||||
|
||||
stz DX
|
||||
stz DX+1
|
||||
|
||||
.1 lda (ZPPtr1)
|
||||
beq .8
|
||||
|
||||
lda #S.MBITEM.TEXT
|
||||
clc
|
||||
adc ZPPtr1
|
||||
tay
|
||||
lda ZPPtr1+1
|
||||
adc #0
|
||||
|
||||
ldx hSYSFONB
|
||||
jsr FON.GetTextSize
|
||||
|
||||
ldy #S.MBITEM.X1
|
||||
|
||||
lda DX
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda DX+1
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny #S.MBITEM.XT
|
||||
|
||||
lda DX
|
||||
clc
|
||||
adc PREFS.MBARXMARGIN
|
||||
sta DX
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda DX+1
|
||||
adc #0
|
||||
sta DX+1
|
||||
sta (ZPPtr1),y
|
||||
|
||||
lda DX
|
||||
clc
|
||||
adc CB.CACHE+S.CB.SrcW
|
||||
sta DX
|
||||
|
||||
lda DX+1
|
||||
adc CB.CACHE+S.CB.SrcW+1
|
||||
sta DX+1
|
||||
|
||||
iny #S.MBITEM.X2
|
||||
|
||||
lda DX
|
||||
clc
|
||||
adc PREFS.MBARXMARGIN
|
||||
sta DX
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda DX+1
|
||||
adc #0
|
||||
sta DX+1
|
||||
sta (ZPPtr1),y
|
||||
|
||||
lda (ZPPtr1)
|
||||
clc
|
||||
adc ZPPtr1
|
||||
sta ZPPtr1
|
||||
bcc .1
|
||||
inc ZPPtr1+1
|
||||
bra .1
|
||||
|
||||
.8 lda #$80
|
||||
|
||||
ldy #S.MBITEM.S
|
||||
sta (ZPMENUPtr),y
|
||||
|
||||
.80 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/lib/libgui.s.mbar
|
||||
LOAD usr/src/lib/libgui.s
|
||||
ASM
|
|
@ -1,94 +1,6 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
MENU.MBarInit >STYA ZPMENUPtr
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldy #S.MBAR.S
|
||||
lda (ZPPtr1),y
|
||||
bmi .80
|
||||
|
||||
stz DX
|
||||
stz DX+1
|
||||
|
||||
.1 lda (ZPPtr1)
|
||||
beq .8
|
||||
|
||||
lda #S.MBAR.TEXT
|
||||
clc
|
||||
adc ZPPtr1
|
||||
tay
|
||||
lda ZPPtr1+1
|
||||
adc #0
|
||||
|
||||
ldx hSYSFONB
|
||||
jsr FON.GetTextSize
|
||||
|
||||
ldy #S.MBAR.X1
|
||||
|
||||
lda DX
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda DX+1
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny #S.MBAR.XT
|
||||
|
||||
lda DX
|
||||
clc
|
||||
adc PREFS.MBARXMARGIN
|
||||
sta DX
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda DX+1
|
||||
adc #0
|
||||
sta DX+1
|
||||
sta (ZPPtr1),y
|
||||
|
||||
lda DX
|
||||
clc
|
||||
adc CB.CACHE+S.CB.SrcW
|
||||
sta DX
|
||||
|
||||
lda DX+1
|
||||
adc CB.CACHE+S.CB.SrcW+1
|
||||
sta DX+1
|
||||
|
||||
iny #S.MBAR.X2
|
||||
|
||||
lda DX
|
||||
clc
|
||||
adc PREFS.MBARXMARGIN
|
||||
sta DX
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda DX+1
|
||||
adc #0
|
||||
sta DX+1
|
||||
sta (ZPPtr1),y
|
||||
|
||||
lda (ZPPtr1)
|
||||
clc
|
||||
adc ZPPtr1
|
||||
sta ZPPtr1
|
||||
bcc .1
|
||||
inc ZPPtr1+1
|
||||
bra .1
|
||||
|
||||
.8 lda #$80
|
||||
|
||||
ldy #S.MBAR.S
|
||||
sta (ZPMENUPtr),y
|
||||
|
||||
.80 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
* MENU.New(int X, int Y, *S.RECT parent *S.MITEM mitems)
|
||||
*--------------------------------------
|
||||
MENU.New ldy MENU.Stack.Top
|
||||
|
@ -174,34 +86,19 @@ MENU.New.RTS rts
|
|||
* hMENU8, ItemID8, Prop8, Value16
|
||||
*--------------------------------------
|
||||
MENU.SetMItemProp
|
||||
ldy #4
|
||||
lda (pStack),y hMENU
|
||||
ldy #4 hMENU
|
||||
lda (pStack),y
|
||||
>SYSCALL2 GetMemPtr
|
||||
>STYA ZPMENUPtr
|
||||
|
||||
bra .7
|
||||
|
||||
jsr MENU.GetMItems
|
||||
|
||||
.1 lda (ZPPtr1)
|
||||
beq .8
|
||||
|
||||
ldy #S.MITEM.F
|
||||
lda (ZPPtr1),y
|
||||
cmp #S.MITEM.F.SEP
|
||||
beq .2
|
||||
|
||||
ldy #S.MITEM.ID
|
||||
lda (ZPPtr1),y
|
||||
|
||||
ldy #3 ID8
|
||||
cmp (pStack),y
|
||||
beq .7
|
||||
|
||||
.2 jsr MENU.NextMItem
|
||||
bra .1
|
||||
lda (pStack),y
|
||||
tax
|
||||
|
||||
.7 ldy #2 Prop8
|
||||
jsr MENU.FindMItemByID
|
||||
bcs .9
|
||||
|
||||
ldy #2 Prop8
|
||||
lda (pStack),y
|
||||
|
||||
tay
|
||||
|
@ -213,7 +110,10 @@ MENU.SetMItemProp
|
|||
>PULLA
|
||||
sta (ZPPtr1),y
|
||||
|
||||
.8 >RET 3
|
||||
* clc
|
||||
|
||||
.8 >POP 3
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
MENU.Show >SYSCALL2 GetMemPtr
|
||||
>STYA ZPMENUPtr
|
||||
|
@ -314,10 +214,7 @@ MENU.Enter jsr MENU.GetDX
|
|||
>LDYA L.WND.Screen
|
||||
jsr DrawCBPtrToYA1
|
||||
|
||||
|
||||
|
||||
|
||||
rts
|
||||
jmp MENU.NewSubMenu
|
||||
|
||||
.8 ldy #S.MENU.Selected nothing to select....
|
||||
lda (ZPMENUPtr),y
|
||||
|
@ -338,6 +235,34 @@ MENU.Enter jsr MENU.GetDX
|
|||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
MENU.NewSubMenu ldy #S.MENU.Selected
|
||||
lda (ZPMENUPtr),y
|
||||
tax
|
||||
|
||||
jsr MENU.FindMItemByID
|
||||
jsr MENU.GetDX
|
||||
|
||||
lda DX
|
||||
clc
|
||||
adc Counter
|
||||
tay
|
||||
lda DX+1
|
||||
adc Counter+1
|
||||
|
||||
>PUSHYA X1
|
||||
>PUSHW DY Y1
|
||||
>PUSHWI DX Parent RECT
|
||||
|
||||
ldy #S.MITEM.pMENU+1
|
||||
lda (ZPPtr1),y
|
||||
>PUSHA
|
||||
dey
|
||||
lda (ZPPtr1),y
|
||||
>PUSHA
|
||||
|
||||
jsr MENU.New
|
||||
jmp MENU.Show
|
||||
*--------------------------------------
|
||||
MENU.SetMenuSizePos
|
||||
stz IY Icon Margin W
|
||||
|
||||
|
|
|
@ -153,7 +153,9 @@ MOU.CheckOverWND
|
|||
ldx WND.Stack.Top
|
||||
beq .9
|
||||
|
||||
.1 lda WND.Stack-1,x
|
||||
.1 stx WND.Stack.Idx
|
||||
|
||||
lda WND.Stack-1,x
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPWNDPtr
|
||||
|
||||
|
@ -174,16 +176,48 @@ MOU.CheckOverWND
|
|||
adc #0
|
||||
|
||||
jsr MOU.InRectYA
|
||||
bcs .3
|
||||
bcs .7
|
||||
|
||||
ldy #S.WND.TBarY2
|
||||
lda (ZPWNDPtr),y
|
||||
cmp MouseData+S.MOUSE.Y1
|
||||
iny
|
||||
lda (ZPWNDPtr),y
|
||||
sbc MouseData+S.MOUSE.Y1+1
|
||||
bcc .3
|
||||
|
||||
lda #CUR.T.WAIT
|
||||
jmp SetCursor
|
||||
lda #CUR.T.MOVE
|
||||
jsr SetCursor
|
||||
clc
|
||||
rts
|
||||
|
||||
.3 iny #S.WND.MBarY2
|
||||
|
||||
.3 lda #CUR.T.ARROW
|
||||
jmp SetCursor
|
||||
lda (ZPWNDPtr),y
|
||||
cmp MouseData+S.MOUSE.Y1
|
||||
iny
|
||||
lda (ZPWNDPtr),y
|
||||
sbc MouseData+S.MOUSE.Y1+1
|
||||
bcc .6
|
||||
|
||||
lda #CUR.T.CROSS
|
||||
jsr SetCursor
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
.8
|
||||
.6 lda #CUR.T.WAIT
|
||||
jsr SetCursor
|
||||
clc
|
||||
rts
|
||||
|
||||
.7 ldx WND.Stack.Idx
|
||||
|
||||
dex
|
||||
bne .1
|
||||
|
||||
lda #CUR.T.ARROW
|
||||
jsr SetCursor
|
||||
|
||||
.9 sec
|
||||
.99 rts
|
||||
|
@ -217,7 +251,7 @@ MOU.ChkWNDBorders
|
|||
iny
|
||||
lda (ZPWNDPtr),y
|
||||
sbc #0
|
||||
lda MouseData+S.MOUSE.Y1+1
|
||||
eor MouseData+S.MOUSE.Y1+1
|
||||
bne .3
|
||||
|
||||
lda IY
|
||||
|
|
|
@ -1,20 +1,11 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
SYSBUT.Enter ldy #S.MOUSE.X1
|
||||
lda (ZPPtr1),y
|
||||
cmp RECT.SysBut+S.RECT.X2
|
||||
iny
|
||||
|
||||
lda (ZPPtr1),y
|
||||
sbc RECT.SysBut+S.RECT.X2+1
|
||||
bcs .8
|
||||
|
||||
sec
|
||||
SYSBUT.Enter sec
|
||||
ror WND.SYSBAR.bSysBut
|
||||
|
||||
jsr GetCBBuf
|
||||
bcs .9
|
||||
bcs .99
|
||||
|
||||
jsr SYSBAR.ShowSysBut
|
||||
|
||||
|
@ -26,11 +17,17 @@ SYSBUT.Enter ldy #S.MOUSE.X1
|
|||
>PUSHW L.RECT.SysBut Parent RECT
|
||||
>PUSHW L.MENU.Sys
|
||||
jsr MENU.New
|
||||
bcs .9
|
||||
.99 bcs .9
|
||||
|
||||
sta hSysMenu
|
||||
|
||||
>PUSHA hSysMenu
|
||||
>PUSHBI 4
|
||||
>PUSHBI S.MITEM.pMENU
|
||||
>PUSHW L.MENU.Sys.Programs
|
||||
jsr MENU.SetMItemProp
|
||||
|
||||
>PUSHB hSysMenu
|
||||
>PUSHBI 6
|
||||
>PUSHBI S.MITEM.pMENU
|
||||
>PUSHW L.MENU.Sys.Settings
|
||||
|
|
|
@ -910,7 +910,7 @@ WND.PaintMBar jsr CB.ClearCache
|
|||
lda (ZPWNDPtr),y
|
||||
ply
|
||||
|
||||
jsr MENU.MBarInit
|
||||
jsr MBAR.Init
|
||||
|
||||
.1 lda (ZPMENUPtr)
|
||||
beq .8
|
||||
|
@ -929,14 +929,14 @@ WND.PaintMBar jsr CB.ClearCache
|
|||
lda hSYSFONB
|
||||
sta CB.CACHE+S.CB.hFont
|
||||
|
||||
ldy #S.MBAR.XT
|
||||
ldy #S.MBITEM.XT
|
||||
lda (ZPMENUPtr),y
|
||||
clc
|
||||
ldy #S.OBJ.X1
|
||||
adc (ZPWNDPtr),y
|
||||
sta CB.CACHE+S.CB.X1
|
||||
|
||||
ldy #S.MBAR.XT+1
|
||||
ldy #S.MBITEM.XT+1
|
||||
lda (ZPMENUPtr),y
|
||||
ldy #S.OBJ.X1+1
|
||||
adc (ZPWNDPtr),y
|
||||
|
@ -952,7 +952,7 @@ WND.PaintMBar jsr CB.ClearCache
|
|||
adc #0
|
||||
sta CB.CACHE+S.CB.Y1+1
|
||||
|
||||
lda #S.MBAR.TEXT
|
||||
lda #S.MBITEM.TEXT
|
||||
clc
|
||||
adc ZPMENUPtr
|
||||
sta CB.CACHE+S.CB.TxtPtr
|
||||
|
|
|
@ -155,6 +155,7 @@ L.RECT.SysBut .DA RECT.SysBut
|
|||
L.RECT.SysWNDs .DA RECT.SysWNDs
|
||||
L.RECT.SysClk .DA RECT.SysClk
|
||||
L.MENU.Sys .DA MENU.Sys
|
||||
L.MENU.Sys.Programs .DA MENU.Sys.Programs
|
||||
L.MENU.Sys.Settings .DA MENU.Sys.Settings
|
||||
*--------------------------------------
|
||||
L.BMs .EQ *-2
|
||||
|
@ -169,6 +170,7 @@ L.BM.Down .DA BM.Down
|
|||
*--------------------------------------
|
||||
L.CUR.SaveBuf .DA CUR.SaveBuf
|
||||
L.Cursors .DA CUR.Arrow
|
||||
.DA CUR.Move
|
||||
.DA CUR.ResizeX
|
||||
.DA CUR.ResizeY
|
||||
.DA CUR.ResizeXY1
|
||||
|
@ -362,6 +364,7 @@ OBJ.SetX2Y2 >STYA ZPPtr1
|
|||
.INB usr/src/lib/libgui.s.cur
|
||||
.INB usr/src/lib/libgui.s.draw
|
||||
.INB usr/src/lib/libgui.s.fon
|
||||
.INB usr/src/lib/libgui.s.mbar
|
||||
.INB usr/src/lib/libgui.s.menu
|
||||
.INB usr/src/lib/libgui.s.mou
|
||||
.INB usr/src/lib/libgui.s.pat
|
||||
|
@ -422,6 +425,7 @@ OBJ.Cache .BS S.OBJ
|
|||
MENU.Stack.Top .BS 1
|
||||
MENU.Stack .BS MENU.MAX
|
||||
*--------------------------------------
|
||||
WND.Stack.Idx .BS 1
|
||||
WND.Stack.Top .BS 1
|
||||
WND.Stack .BS WND.MAX
|
||||
*--------------------------------------
|
||||
|
@ -503,6 +507,29 @@ MENU.Sys
|
|||
.77 .AZ "Ctrl-R"
|
||||
.8 .DA #0
|
||||
*--------------------------------------
|
||||
MENU.Sys.Programs
|
||||
.1 .DA #.2-* next
|
||||
.DA #S.MITEM.F.ITEM F
|
||||
.DA #0 S
|
||||
.DA #42 ID
|
||||
.DA BM.ID.APPLE pICON
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0 KEYSTR
|
||||
.AZ "GUITest1"
|
||||
|
||||
.2 .DA #.3-* next
|
||||
.DA #S.MITEM.F.ITEM F
|
||||
.DA #0 S
|
||||
.DA #44 ID
|
||||
.DA BM.ID.APPLE pICON
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0 KEYSTR
|
||||
.AZ "GUITest2"
|
||||
|
||||
.3 .DA #0
|
||||
*--------------------------------------
|
||||
MENU.Sys.Settings
|
||||
.1 .DA #.2-* next
|
||||
.DA #S.MITEM.F.ITEM F
|
||||
|
|
Loading…
Reference in New Issue