Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-10-09 17:28:01 +02:00
parent ec457a9392
commit 78e8988b94
6 changed files with 299 additions and 62 deletions

Binary file not shown.

View File

@ -146,25 +146,25 @@ S.MBAR.X2 .EQ 6
S.MBAR.MENU .EQ 8
S.MBAR.TEXT .EQ 10
*--------------------------------------
S.MENU.DEFS .EQ S.OBJ
S.MENU.MITEMS .EQ S.OBJ
S.MENU.hSAVEBUF .EQ S.OBJ+2
*
S.MENU .EQ S.OBJ+4
*--------------------------------------
S.MITEM.NEXT .EQ 0
S.MITEM.F .EQ 1
S.MITEM.F.SEP .EQ 1
S.MITEM.F.ITEM .EQ 2
S.MITEM.F.SUBMENU .EQ 3
S.MITEM.F.SEP .EQ 2
S.MITEM.F.ITEM .EQ 4
S.MITEM.F.SUBMENU .EQ 6
S.MITEM.S .EQ 2
S.MITEM.S.CHECKED .EQ %01000000
S.MITEM.S.DISABLED .EQ %10000000
S.MITEM.pICON .EQ 3
S.MITEM.pMENU .EQ 5
S.MITEM.KEYMOD .EQ 7
S.MITEM.KEYMOD.CTRL .EQ %10000000
S.MITEM.KEYMOD.OA .EQ %01000000
S.MITEM.KEYMOD.CA .EQ %00100000
S.MITEM.KEYMOD.CA .EQ 2
S.MITEM.KEYMOD.OA .EQ 4
S.MITEM.KEYMOD.CTRL .EQ 8
S.MITEM.KEY .EQ 8
S.MITEM.ID .EQ 9

View File

@ -96,7 +96,6 @@ MENU.New >LDYAI S.MENU
bcs .9
>STYA ZPMENUPtr
* stx
lda #S.OBJ.T.MENU
sta (ZPMENUPtr) S.OBJ.T
@ -110,13 +109,11 @@ MENU.New >LDYAI S.MENU
bne .1
>PULLA
ldy #S.OBJ.S.MENU.DEFS
ldy #S.MENU.MITEMS
sta (ZPMENUPtr),y
sta ZPPtr1
>PULLA
iny
sta (ZPMENUPtr),y
sta ZPPtr1+1
>PULLA
ldy #S.OBJ.Y1
@ -127,30 +124,292 @@ MENU.New >LDYAI S.MENU
>PULLA
ldy #S.OBJ.X1
and PREFS.BESTVIEWEDX
sta (ZPMENUPtr),y
>PULLA
iny
sta (ZPMENUPtr),y
lda #2 1px Border
sta DX
sta DY
stz DX+1
stz DY+1
txa hMenu
.2 lda (ZPPtr1)
.8 clc
* clc
rts
.9 >POP 6
rts
MENU.New.RTS rts
*--------------------------------------
MENU.Paint
MENU.Close
MENU.Show >SYSCALL2 GetMemPtr
>STYA ZPMENUPtr
jsr GetCBBuf
bcs MENU.New.RTS
>DEBUG
ldy #S.MENU.MITEMS
lda (ZPMENUPtr),y
sta ZPPtr1
iny
lda (ZPMENUPtr),y
sta ZPPtr1+1
* |Icon ChkMrk "Menu Item" KEYMOD1-KEYMOD2-KEY > |
stz IY Icon Margin W
stz IE Max Text W
stz IE+1
stz INE Max Mod-Key W
lda #12 2px Borders+5 LMARGIN (Checked) +5 RMARGIN (SubMenu)
sta DX
stz DX+1
lda #2 2px Borders
sta DY Menu H
stz DY+1
.1 lda (ZPPtr1)
beq .3
jsr MENU.Show.GetW
lda DY
clc
adc SYSFON.H
sta DY
bcc .2
inc DY+1
.2 lda (ZPPtr1)
clc
adc ZPPtr1
sta ZPPtr1
bcc .1
inc ZPPtr1+1
bra .1
.3 lda DX
clc
adc IE Text W
sta DX
lda DX+1
adc IE+1
sta DX+1
lda DX
clc
adc INE Mod-Key W
sta DX
bcc .4
inc DX+1
.4 ldy #S.OBJ.Y1
lda (ZPMENUPtr),y
clc
adc DY
tax
iny
lda (ZPMENUPtr),y
adc DY+1
cpx WND.Screen+S.OBJ.H
sbc WND.Screen+S.OBJ.H+1
bcc .5
dey
lda (ZPMENUPtr),y
* sec
sbc DY
sta (ZPMENUPtr),y
iny
lda (ZPMENUPtr),y
sbc DY+1
sta (ZPMENUPtr),y
.5 jsr MENU.Show.Borders
.8 >LDYA L.WND.Screen
jmp DrawCBPtrToYA1
MENU.Show.RTS rts
*--------------------------------------
MENU.Show.GetW ldy #S.MITEM.F
lda (ZPPtr1),y
cmp #S.MITEM.F.SEP
beq MENU.Show.RTS
ldy #S.MITEM.pICON
lda (ZPPtr1),y
iny
ora (ZPPtr1),y
beq .1
lda #16
sta DX
.1 lda #S.MITEM.TEXT
clc
adc ZPPtr1
tay
lda ZPPtr1+1
adc #0
ldx hSYSFON
jsr FON.GetTextSize
lda CB.Cache+S.CB.SrcW
cmp IE
lda CB.Cache+S.CB.SrcW+1
sbc IE+1
bcc .2
lda CB.Cache+S.CB.SrcW
sta IE
lda CB.Cache+S.CB.SrcW+1
sta IE+1
.2 ldx #0
ldy #S.MITEM.KEYMOD
lda (ZPPtr1),y
beq .6
bit #S.MITEM.KEYMOD.CTRL
beq .4
.3 lda KEY.Ctrl,x
sta KEYSTRING,x
inx
cpx #6
bne .3
lda (ZPPtr1),y
.4 bit #S.MITEM.KEYMOD.OA
beq .5
lda #1
sta KEYSTRING,x
inx
lda #"-"
sta KEYSTRING,x
inx
lda (ZPPtr1),y
.5 bit #S.MITEM.KEYMOD.CA
beq .6
lda #2
sta KEYSTRING,x
inx
lda #"-"
sta KEYSTRING,x
inx
.6 iny
lda (ZPPtr1),y
beq .8
sta KEYSTRING,x
inx
stz KEYSTRING,x
>LDYA L.KEYSTRING
ldx hSYSFON
jsr FON.GetTextSize
cpy INE
bcs .8
sty INE
.8 rts
*--------------------------------------
MENU.Show.Borders
lda #S.CB.CMD.HLINE TOP
jsr MENU.Show.Borders.H
ldy #S.OBJ.X1
jsr MENU.Show.Borders.Y
ldy #S.OBJ.Y1
jsr MENU.Show.Borders.Y
ldy #S.OBJ.X2
jsr MENU.Show.Borders.Y
ldy #S.OBJ.Y1
jsr MENU.Show.Borders.Y
lda #S.CB.CMD.VLINE LEFT
jsr MENU.Show.Borders.Y
ldy #S.OBJ.X1
jsr MENU.Show.Borders.Y
ldy #S.OBJ.Y1
jsr MENU.Show.Borders.Y
ldy #S.OBJ.X1
jsr MENU.Show.Borders.Y
ldy #S.OBJ.Y2
jsr MENU.Show.Borders.Y
lda #S.CB.CMD.VLINE RIGHT
jsr MENU.Show.Borders.H
ldy #S.OBJ.X2
jsr MENU.Show.Borders.Y
ldy #S.OBJ.Y1
jsr MENU.Show.Borders.Y
ldy #S.OBJ.X2
jsr MENU.Show.Borders.Y
ldy #S.OBJ.Y2
jsr MENU.Show.Borders.Y
lda #S.CB.CMD.HLINE BOTTOM
jsr MENU.Show.Borders.H
ldy #S.OBJ.X1
jsr MENU.Show.Borders.Y
ldy #S.OBJ.Y2
jsr MENU.Show.Borders.Y
ldy #S.OBJ.X2
jsr MENU.Show.Borders.Y
ldy #S.OBJ.Y2
jsr MENU.Show.Borders.Y
rts
MENU.Show.Borders.H
jsr PutA2CBBuf
lda #S.CB.OP.SET
jsr PutA2CBBuf
lda #S.CB.M.MONO
jsr PutA2CBBuf
lda PREFS.BORDERCOLOR
jmp PutA2CBBuf
MENU.Show.Borders.Y
lda (ZPMENUPtr),y
jsr PutA2CBBuf
iny
lda (ZPMENUPtr),y
jmp PutA2CBBuf
*--------------------------------------
MENU.Destroy
*--------------------------------------
MAN
SAVE usr/src/lib/libgui.s.menu

View File

@ -17,21 +17,17 @@ SYSBAR.Enter ldy #S.MOUSE.X1
bcs .9
jsr SYSBAR.Show.A2osX
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
jsr DrawCBPtrToYA1
>PUSHW WND.SysBar+S.OBJ.X1
>PUSHW WND.SysBar+S.OBJ.Y1
>PUSHW L.MENU.Sys
jsr MENU.New
bcs .9
jsr MENU.Show
.8 clc
.9 rts
@ -298,25 +294,6 @@ DRAW.YATextAtDXDY
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

@ -348,9 +348,6 @@ WND.Show >SYSCALL2 GetMemPtr
lda (ZPWNDPtr),y
sbc #0
sta (ZPWNDPtr),y
lda #0
jsr PutA2CBBuf
>LDYA L.WND.Desktop

View File

@ -134,6 +134,7 @@ L.SYSX7 .DA SYSX7
L.SYSX7B .DA SYSX7B
L.IOCTL .DA IOCTL
L.DCB.GFX .DA DCB.GFX
L.KEYSTRING .DA KEYSTRING
L.MouseClamp .DA MouseClamp
L.CB.PTR .DA CB.PTR
L.CB.Buf .DA CB.Buf
@ -388,6 +389,7 @@ IOCTL .BS S.IOCTL
DCB.GFX .BS S.DCB.GFX
MOUSEDATA .BS S.MOUSE
*--------------------------------------
KEYSTRING .BS 11 Ctrl-O-C-K\0 (11 max)
MouseClamp .BS 8
*--------------------------------------
CB.PTR .DA #S.CB.CMD.BITBLT
@ -418,12 +420,14 @@ WND.SysBar.Time.X1 .BS 2
WND.SysBar.bA2osX .BS 1
WND.SysBar.2osX .AZ "2osX"
*--------------------------------------
KEY.Ctrl .AZ "Ctrl-"
*--------------------------------------
MENU.Sys .DA #.1-* next
.DA #S.MITEM.F.ITEM F
.DA #0 S
.DA 0 pICON
.DA #0 KEYMOD
.DA #0 KEY
.DA #S.MITEM.KEYMOD.CA+S.MITEM.KEYMOD.OA+S.MITEM.KEYMOD.CTRL
.DA #"A"
.DA #2 ID
.AZ "About..."
@ -437,7 +441,7 @@ MENU.Sys .DA #.1-* next
.DA 0 pMENU
.AZ "Settings"
.9 .DA #0
.3 .DA #0
*--------------------------------------
PREFS.BESTVIEWEDX .DA #$FC
PREFS.SYSBARCOLOR .DA #C.WHITE