Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-10-23 17:23:19 +02:00
parent 40b2dbf4c6
commit 7b10d2318d
10 changed files with 267 additions and 155 deletions

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -417,7 +417,6 @@ DRAW.GetInnerW ldy #S.OBJ.X1
>LDYA L.OBJ.Cache
jmp OBJ.SetX2Y2
*--------------------------------------
DrawCBPtrToYA1 pha

95
LIB/LIBGUI.S.MBAR.txt Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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