Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-10-08 17:33:38 +02:00
parent 7648c5956d
commit c997d7101c
5 changed files with 249 additions and 41 deletions

Binary file not shown.

View File

@ -146,30 +146,27 @@ S.MBAR.X2 .EQ 6
S.MBAR.MENU .EQ 8
S.MBAR.TEXT .EQ 10
*--------------------------------------
S.MENU.hSAVEBUF .EQ S.OBJ
S.MENU.ITEMLIST .EQ S.OBJ+2
* ... S.MITEMs...
*--------------------------------------
*S.MITEM.F. .EQ %00000001
*S.MITEM.F. .EQ %00000010
*S.MITEM.F. .EQ %00000100
*S.MITEM.F. .EQ %00001000
*S.MITEM.F. .EQ %00010000
S.MITEM.F.SEP .EQ %00100000
S.MENU.DEFS .EQ S.OBJ
S.MENU.hSAVEBUF .EQ S.OBJ+2
*
S.MITEM.S
S.MENU .EQ S.OBJ+4
*--------------------------------------
S.MITEM.F .EQ 0
S.MITEM.F.SEP .EQ 1
S.MITEM.F.ITEM .EQ 2
S.MITEM.F.SUBMENU .EQ 3
S.MITEM.S .EQ 1
S.MITEM.S.CHECKED .EQ %01000000
S.MITEM.S.DISABLED .EQ %10000000
*
S.MITEM.hSUBM .EQ S.OBJ
S.MITEM.hBM .EQ S.OBJ+2
S.MITEM.HOTKEY .EQ S.OBJ+4
S.MITEM.KEYMOD .EQ S.OBJ+5
S.MITEM.pICON .EQ 2
S.MITEM.pMENU .EQ 4
S.MITEM.KEYMOD .EQ 4
S.MITEM.KEYMOD.CTRL .EQ %10000000
S.MITEM.KEYMOD.OA .EQ %01000000
S.MITEM.KEYMOD.CA .EQ %00100000
S.MITEM.TEXTLEN .EQ S.OBJ+6
S.MITEM.TEXT .EQ S.OBJ+8 CSTR
S.MITEM.KEY .EQ 6
S.MITEM.TEXT .EQ 8 CSTR
* ...
*--------------------------------------
S.BUT.F.DISABLED .EQ %10000000

View File

@ -1,7 +1,16 @@
NEW
AUTO 3,1
*--------------------------------------
SYSBAR.Enter sec
SYSBAR.Enter ldy #S.MOUSE.X1
lda (ZPPtr1),y
cmp WND.SysBar.A2osX.X2
iny
lda (ZPPtr1),y
sbc WND.SysBar.A2osX.X2+1
bcs .8
sec
ror WND.SYSBAR.bA2osX
jsr GetCBBuf
@ -9,10 +18,22 @@ SYSBAR.Enter sec
jsr SYSBAR.Show.A2osX
>LDYA L.WND.SysBar
stz DX
stz DX+1
lda WND.SysBar+S.OBJ.Y1
sta DY
lda WND.SysBar+S.OBJ.Y1+1
sta DY+1
* >LDYA L.MENU.Sys
* jsr DRAW.YAMenuAtDXDY
* bcs .9
>LDYA L.WND.SysBar
jmp DrawCBPtrToYA1
.8 clc
.9 rts
*--------------------------------------
SYSBAR.Leave bit WND.SYSBAR.bA2osX
@ -82,6 +103,45 @@ SYSBAR.Show.A2osX
lda WND.SysBar+S.OBJ.Y2+1
jsr PutA2CBBuf
lda WND.SysBar+S.OBJ.X1
clc
adc #4
sta DX
lda WND.SysBar+S.OBJ.X1+1
adc #0
sta DX+1
lda WND.SysBar+S.OBJ.Y1
clc
adc #1
sta DY
lda WND.SysBar+S.OBJ.Y1+1
adc #0
sta DY+1
>LDYA L.BM.Apple
jsr DRAW.YABMAtDXDY
lda WND.SysBar+S.OBJ.X1
clc
adc #21
sta DX
lda WND.SysBar+S.OBJ.X1+1
adc #0
sta DX+1
inc DY
bne .2
inc DY+1
.2 lda WND.SysBar.bA2osX
asl
>LDYA L.WND.SysBar.2osX
ldx hSYSFON
jsr DRAW.YATextAtDXDY
rts
*--------------------------------------
SYSBAR.Show.W lda #S.CB.CMD.FILLRECT
@ -116,6 +176,147 @@ SYSBAR.Show.W lda #S.CB.CMD.FILLRECT
lda WND.SysBar+S.OBJ.Y2+1
jmp PutA2CBBuf
*--------------------------------------
DRAW.YABMAtDXDY >STYA ZPPtr1 Src BM
lda #S.CB.CMD.BITBLT
jsr PutA2CBBuf
lda #S.CB.OP.MASK+S.CB.OP.ORA+S.CB.OP.COLOR
jsr PutA2CBBuf
lda #S.CB.M.C16
jsr PutA2CBBuf
lda #0
jsr PutA2CBBuf
ldx #4
ldy #0
.1 lda DX,y S.CB.X1,S.CB.Y1
jsr PutA2CBBuf
iny
dex
bne .1
lda #0 S.CB.X2
jsr PutA2CBBuf
jsr PutA2CBBuf
jsr PutA2CBBuf S.CB.Y2
jsr PutA2CBBuf
jsr PutA2CBBuf S.CB.SrcX
jsr PutA2CBBuf
jsr PutA2CBBuf S.CB.SrcY
jsr PutA2CBBuf
ldx #4
ldy #S.BM.W
.2 lda (ZPPtr1),y S.CB.SrcW,S.CB.SrcH
jsr PutA2CBBuf
iny
dex
bne .2
lda ZPPtr1 S.CB.SrcPtr
jsr PutA2CBBuf
lda ZPPtr1+1
jsr PutA2CBBuf
lda #0 S.CB.DstPtr
jsr PutA2CBBuf
jsr PutA2CBBuf
rts
*--------------------------------------
DRAW.YATextAtDXDY
>STYA ZPPtr1 Src Text
lda #S.CB.CMD.DRAWTEXT2
jsr PutA2CBBuf
lda #0
ror
eor #$80
ora #S.CB.OP.SET
* lda #S.CB.OP.XOR
jsr PutA2CBBuf
lda #S.CB.M.MONO
jsr PutA2CBBuf
txa
jsr PutA2CBBuf S.CB.hFont
ldy #0
ldx #4
.1 lda DX,y S.CB.X1,S.CB.Y1
jsr PutA2CBBuf
iny
dex
bne .1
lda #0
jsr PutA2CBBuf S.CB.X2
jsr PutA2CBBuf
jsr PutA2CBBuf S.CB.Y2
jsr PutA2CBBuf
jsr PutA2CBBuf S.CB.SrcX
jsr PutA2CBBuf
jsr PutA2CBBuf S.CB.SrcY
jsr PutA2CBBuf
jsr PutA2CBBuf S.CB.SrcW
jsr PutA2CBBuf
jsr PutA2CBBuf S.CB.SrcH
jsr PutA2CBBuf
lda ZPPtr1 S.CB.SrcPtr
jsr PutA2CBBuf
lda ZPPtr1+1
jsr PutA2CBBuf
lda #0 S.CB.DstPtr
jsr PutA2CBBuf
jsr PutA2CBBuf
lda ZPPtr1
jsr PutA2CBBuf S.CB.TxtPtr
lda ZPPtr1+1
jsr PutA2CBBuf
rts
*--------------------------------------
DRAW.YAMenuAtDXDY
>STYA ZPPtr1 Src Menu
stz IE popup W
stz IE+1
stz D popup H
stz D+1
.1 stz INE item W
stz INE+1
lda (ZPPtr1)
beq .8
.8 clc
rts
*--------------------------------------
MAN
SAVE usr/src/lib/libgui.s.sysbar
LOAD usr/src/lib/libgui.s

View File

@ -20,7 +20,9 @@ WND.Init >PUSHBI 0
.9 rts
*--------------------------------------
WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W
WND.Setup stz WND.Stack.Top
>LDYA DCB.GFX+S.DCB.GFX.W
>STYA WND.Screen+S.OBJ.W
>STYA WND.Desktop+S.OBJ.W
>STYA WND.SysBar+S.OBJ.W
@ -47,7 +49,13 @@ WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W
>LDYA L.WND.SysBar
jsr OBJ.SetX2Y2
lda #24
>LDYA L.WND.SysBar.2osX
ldx hSYSFON
jsr FON.GetTextSize
lda CB.Cache+S.CB.SrcW
clc
adc #24 4 + BM width + 4
sta WND.SysBar.W.X1
>LDYA L.WND.Screen+S.OBJ.X2
@ -57,8 +65,6 @@ WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W
sta WND.Desktop+S.WND.hCUR
sta WND.SysBar+S.WND.hCUR
stz WND.Stack.Top
jsr SYSBAR.Show
rts
@ -624,13 +630,13 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT
pla
.3 bit #S.WND.F.MIN
.3 bit #S.WND.F.MAX
beq .4
pha
lda L.BM.Min
ldx L.BM.Min+1
lda L.BM.Max
ldx L.BM.Max+1
sta ZPObjPtr
stx ZPObjPtr+1
@ -650,11 +656,11 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT
pla
.4 bit #S.WND.F.MAX
.4 bit #S.WND.F.MIN
beq .8
lda L.BM.Max
ldx L.BM.Max+1
lda L.BM.Min
ldx L.BM.Min+1
sta ZPObjPtr
stx ZPObjPtr+1

View File

@ -142,6 +142,8 @@ L.OBJ.Cache .DA OBJ.Cache
L.WND.Screen .DA WND.Screen
L.WND.Desktop .DA WND.Desktop
L.WND.SysBar .DA WND.SysBar
L.WND.SysBar.2osX .DA WND.SysBar.2osX
L.MENU.Sys .DA MENU.Sys
*--------------------------------------
L.BM.Apple .DA BM.Apple
L.BM.Close .DA BM.Close
@ -414,22 +416,24 @@ WND.SysBar.W.X1 .BS 2
WND.SysBar.W.X2 .EQ *
WND.SysBar.Time.X1 .BS 2
WND.SysBar.bA2osX .BS 1
WND.SysBar.2osX .AZ "2osX"
*--------------------------------------
BUT.Sys .DA #S.OBJ.T.BUT
.DA #0 F
MENU.Sys .DA #S.MITEM.F.ITEM F
.DA #0 S
.DA #2 ID
.DA 0 hOWNER
.DA 0 pPARENT
.BS S.OBJ-S.OBJ.X1
.BS 2 S.BUT.hBM
.AZ "A2osX" S.BUT.TEXT
*--------------------------------------
MENU.Sys .DA #2 ID
.DA 0 pICON
.DA #0 KEYMOD
.DA #0 KEY
.DA #2 ID
.AZ "About..."
.DA #S.MITEM.F.SEP
.DA #S.MITEM.F.SUBMENU F
.DA #0 S
.DA 0 pICON
.DA 0 pMENU
.AZ "Settings"
.DA #0
*--------------------------------------
PREFS.BESTVIEWEDX .DA #$FC