Kernel 0.94

This commit is contained in:
Rémy GIBERT
2020-10-20 08:01:04 +02:00
parent 11bfc18b6e
commit ed74a0e2a2
12 changed files with 732 additions and 457 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -3,7 +3,7 @@ NEW
*-------------------------------------- *--------------------------------------
IO.D2.SeekTimeR .EQ 160 LIBBLKDEV Recalibration IO.D2.SeekTimeR .EQ 160 LIBBLKDEV Recalibration
IO.D2.SeekTimeF .EQ 140 LIBBLKDEV Track Formatter IO.D2.SeekTimeF .EQ 140 LIBBLKDEV Track Formatter
IO.D2.SeekTimeB .EQ 140 LIBBLKDEV Boot Block IO.D2.SeekTimeB .EQ 95 LIBBLKDEV Boot Block
IO.D2.SeekTimeP .EQ 75 ProDOS.FX initial IO.D2.SeekTimeP .EQ 75 ProDOS.FX initial
IO.D2.SeekTimeI .EQ 20 ProDOS.FX increment -> until > 128 IO.D2.SeekTimeI .EQ 20 ProDOS.FX increment -> until > 128
*-------------------------------------- *--------------------------------------

View File

@@ -123,10 +123,10 @@ S.WND.hCUR .EQ S.OBJ+16
S.WND.TitleX1 .EQ S.OBJ+18 S.WND.TitleX1 .EQ S.OBJ+18
S.WND.TitleX2 .EQ S.OBJ+20 S.WND.TitleX2 .EQ S.OBJ+20
S.WND.TBarY2 .EQ S.OBJ+22 S.WND.TBarY2 .EQ S.OBJ+22
S.WND.MBarY1 .EQ S.OBJ+22 S.WND.MBarY1 .EQ S.OBJ+22
S.WND.MBarY2 .EQ S.OBJ+24 S.WND.MBarY2 .EQ S.OBJ+24
S.WND.InnerY1 .EQ S.OBJ+24 S.WND.InnerY1 .EQ S.OBJ+24
S.WND.InnerY2 .EQ S.OBJ+26 S.WND.InnerY2 .EQ S.OBJ+26
S.WND.SBarY1 .EQ S.OBJ+26 S.WND.SBarY1 .EQ S.OBJ+26
S.WND.InnerW .EQ S.OBJ+28 S.WND.InnerW .EQ S.OBJ+28
S.WND.InnerH .EQ S.OBJ+30 S.WND.InnerH .EQ S.OBJ+30
@@ -152,8 +152,12 @@ S.MENU.pX1 .EQ S.OBJ+4
S.MENU.pY1 .EQ S.OBJ+6 S.MENU.pY1 .EQ S.OBJ+6
S.MENU.pX2 .EQ S.OBJ+8 S.MENU.pX2 .EQ S.OBJ+8
S.MENU.pY2 .EQ S.OBJ+10 S.MENU.pY2 .EQ S.OBJ+10
S.MENU.Selected .EQ S.OBJ+12
S.MENU.tOffset .EQ S.OBJ+13
S.MENU.kOffset .EQ S.OBJ+14
S.MENU.rOffset .EQ S.OBJ+16
* *
S.MENU .EQ S.OBJ+12 S.MENU .EQ S.OBJ+18
*-------------------------------------- *--------------------------------------
S.MITEM.NEXT .EQ 0 S.MITEM.NEXT .EQ 0
S.MITEM.F .EQ 1 S.MITEM.F .EQ 1

View File

@@ -374,7 +374,7 @@ BB.Seek lda BB.HdrTrk get track we're on
jsr BB.Wait jsr BB.Wait
jsr BB.PhasesOff jsr BB.PhasesOff
bcs BB.Read ALWAYS bra BB.Read
*-------------------------------------- *--------------------------------------
BB.PhasesOff bit IO.D2.Ph0Off,x BB.PhasesOff bit IO.D2.Ph0Off,x
nop nop

View File

@@ -89,7 +89,27 @@ BM.Min.AND .HS FF0F
.HS 0F0F .HS 0F0F
.HS FF0F .HS FF0F
*-------------------------------------- *--------------------------------------
BM.Left BM.Left .DA #S.BM.F.BBP1
.DA #1 RowBytes
.DA 7 W
.DA 7 Y
.DA BM.Left.AND-BM.Left
.DA #%0000000
.DA #%0010000
.DA #%0011000
.DA #%0011100
.DA #%0011000
.DA #%0010000
.DA #%0000000
BM.Left.AND .DA #%1001111
.DA #%1000111
.DA #%1000011
.DA #%1000001
.DA #%1000011
.DA #%1000111
.DA #%1001111
*-------------------------------------- *--------------------------------------
BM.Right .DA #S.BM.F.BBP1 BM.Right .DA #S.BM.F.BBP1
.DA #1 RowBytes .DA #1 RowBytes
@@ -113,9 +133,49 @@ BM.Right.AND .DA #%1111001
.DA #%1110001 .DA #%1110001
.DA #%1111001 .DA #%1111001
*-------------------------------------- *--------------------------------------
BM.Up BM.Up .DA #S.BM.F.BBP1
.DA #1 RowBytes
.DA 7 W
.DA 7 Y
.DA BM.Up.AND-BM.Up
.DA #%0000000
.DA #%0000000
.DA #%0001000
.DA #%0011100
.DA #%0111110
.DA #%0000000
.DA #%0000000
BM.Up.AND .DA #%1111111
.DA #%1110111
.DA #%1100011
.DA #%1000001
.DA #%0000000
.DA #%0000000
.DA #%1111111
*-------------------------------------- *--------------------------------------
BM.Down BM.Down .DA #S.BM.F.BBP1
.DA #1 RowBytes
.DA 7 W
.DA 7 Y
.DA BM.Down.AND-BM.Down
.DA #%0000000
.DA #%0000000
.DA #%0111110
.DA #%0011100
.DA #%0001000
.DA #%0000000
.DA #%0000000
BM.Down.AND .DA #%1111111
.DA #%0000000
.DA #%0000000
.DA #%1000001
.DA #%1100011
.DA #%1110111
.DA #%1111111
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE usr/src/lib/libgui.g.bm SAVE usr/src/lib/libgui.g.bm

View File

@@ -272,6 +272,72 @@ DrawText clc
*-------------------------------------- *--------------------------------------
* *
*-------------------------------------- *--------------------------------------
DRAW.YABMAtDXDY >STYA ZPBMPtr Src BM
lda #S.CB.CMD.BITBLT
jsr CB.InitCacheA
lda #S.CB.OP.MASK+S.CB.OP.ORA+S.CB.OP.COLOR
sta CB.Cache+S.CB.OP
lda #S.CB.M.C16
sta CB.Cache+S.CB.M
ldx #3
.1 lda DX,x
sta CB.Cache+S.CB.X1,x
dex
bpl .1
ldx #3
ldy #S.BM.W+3
.2 lda (ZPBMPtr),y
sta CB.Cache+S.CB.SrcW,x
dey
dex
bpl .2
lda ZPBMPtr
sta CB.Cache+S.CB.SrcPtr
lda ZPBMPtr+1
sta CB.Cache+S.CB.SrcPtr+1
jmp PutCBCache2CBBuf
*--------------------------------------
DRAW.YATextAtDXDY
phx
jsr CB.ClearCache
>STYA CB.Cache+S.CB.TxtPtr
plx
stx CB.Cache+S.CB.hFont
lda #S.CB.CMD.DRAWTEXT2
sta CB.Cache+S.CB.CMD
lda #0
ror
eor #S.CB.OP.INVERSE
ora #S.CB.OP.SET
* lda #S.CB.OP.XOR
sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO
sta CB.Cache+S.CB.M
ldx #3
.1 lda DX,x DX,DY -> S.CB.X1,S.CB.Y1
sta CB.Cache+S.CB.X1,x
dex
bpl .1
jmp PutCBCache2CBBuf
*--------------------------------------
DRAW.ToGlobal >LDYA ZPWNDPtr DRAW.ToGlobal >LDYA ZPWNDPtr
>STYA ZPPtr1 >STYA ZPPtr1

View File

@@ -93,13 +93,18 @@ MENU.MBarInit >STYA ZPMENUPtr
*-------------------------------------- *--------------------------------------
MENU.New ldy MENU.Stack.Top MENU.New ldy MENU.Stack.Top
cpy #MENU.MAX cpy #MENU.MAX
bcs .90 bcc .10
jmp .90
>LDYAI S.MENU .10 >LDYAI S.MENU
>SYSCALL2 getmem >SYSCALL2 getmem
bcs .99 bcs .99
>STYA ZPMENUPtr >STYA ZPMENUPtr
txa hMenu
ldx MENU.Stack.Top
sta MENU.Stack,x
lda #S.OBJ.T.MENU lda #S.OBJ.T.MENU
sta (ZPMENUPtr) S.OBJ.T sta (ZPMENUPtr) S.OBJ.T
@@ -119,7 +124,7 @@ MENU.New ldy MENU.Stack.Top
iny iny
sta (ZPMENUPtr),y sta (ZPMENUPtr),y
>PULLW ZPPtr1 >PULLW ZPRECTPtr Parent RECT
>PULLA >PULLA
ldy #S.OBJ.Y1 ldy #S.OBJ.Y1
@@ -138,22 +143,24 @@ MENU.New ldy MENU.Stack.Top
lda ZPMENUPtr lda ZPMENUPtr
clc clc
adc #S.MENU.pX1 adc #S.MENU.pX1
sta ZPMENUPtr sta ZPPtr1
bcc .2
inc ZPMENUPtr+1 lda ZPMENUPtr+1
adc /S.MENU.pX1
sta ZPPtr1+1
.2 ldy #S.RECT-1 ldy #S.RECT-1
.3 lda (ZPPtr1),y .3 lda (ZPRECTPtr),y
sta (ZPMENUPtr),y sta (ZPPtr1),y
dey dey
bpl .3 bpl .3
txa hMenu jsr MENU.SetMenuSizePos
ldx MENU.Stack.Top ldx MENU.Stack.Top
sta MENU.Stack,x lda MENU.Stack,x
inc MENU.Stack.Top inc MENU.Stack.Top
clc clc
@@ -163,25 +170,132 @@ MENU.New ldy MENU.Stack.Top
sec sec
.99 >POP 8 .99 >POP 8
MENU.New.RTS rts MENU.New.RTS rts
*--------------------------------------
* hMENU8, ItemID8, Prop8, Value16
*--------------------------------------
MENU.SetMItemProp
ldy #4
lda (pStack),y hMENU
>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
.7 ldy #2 Prop8
lda (pStack),y
tay
>PULLA Value16
sta (ZPPtr1),y
iny
>PULLA
sta (ZPPtr1),y
.8 >RET 3
* ---------------------------------------------- * ----------------------------------------------
* |Icon ChkMrk "Menu Item" KEYMOD1-KEYMOD2-KEY>| * |Icon ChkMrk "Menu Item" KEYMOD1-KEYMOD2-KEY>|
* ---------------------------------------------- * ----------------------------------------------
MENU.Show >SYSCALL2 GetMemPtr MENU.Show >SYSCALL2 GetMemPtr
>STYA ZPMENUPtr >STYA ZPMENUPtr
jsr MENU.Save
bcs .9
jsr GetCBBuf jsr GetCBBuf
bcs MENU.New.RTS bcs .9
ldy #S.MENU.MITEMS
lda (ZPMENUPtr),y
sta ZPPtr1
iny
lda (ZPMENUPtr),y
sta ZPPtr1+1
stz DX jsr MENU.ShowBorders
stz DX+1
jsr MENU.GetMItems
jsr MENU.GetDYW
.6 lda (ZPPtr1)
beq .8
jsr MENU.GetDX
jsr MENU.ShowMItem
jsr MENU.NextMItem
bra .6
.8 >LDYA L.WND.Screen
jmp DrawCBPtrToYA1
.9 rts
*--------------------------------------
MENU.Enter jsr MENU.GetDX
jsr MENU.GetDYW
lda Counter W
clc
adc DX
sta IE IE = X2
lda Counter+1
adc DX+1
sta IE+1
jsr MENU.GetMItems
.1 lda (ZPPtr1)
beq .9
ldy #S.MITEM.F
lda (ZPPtr1),y
cmp #S.MITEM.F.SEP
beq .7
lda DY
sec
adc SYSFON.H
sta INE INE = Y2
lda DY+1
adc #0
sta INE+1
>LDYAI DX
jsr MOU.InRectYA
bcs .7
ldy #S.MITEM.ID
lda (ZPPtr1),y
ldy #S.MENU.Selected
sta (ZPMENUPtr),y
jsr GetCBBuf
jsr MENU.ShowMItem1
>LDYA L.WND.Screen
jmp DrawCBPtrToYA1
.7 jsr MENU.NextMItem
bra .1
.9 rts
*--------------------------------------
MENU.SetMenuSizePos
stz IY Icon Margin W stz IY Icon Margin W
stz IE Max Text W stz IE Max Text W
@@ -192,37 +306,25 @@ MENU.Show >SYSCALL2 GetMemPtr
lda #2 2px Borders lda #2 2px Borders
sta DY Menu H sta DY Menu H
stz DY+1 stz DY+1
jsr MENU.GetMItems
.1 lda (ZPPtr1) .1 lda (ZPPtr1)
beq .3 beq .3
jsr MENU.Show.GetW jsr MENU.GetMItemW
jsr MENU.NextMItem
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 bra .1
.3 lda #2+MENU.LMargin+MENU.RMargin 2px Borders+5 LMARGIN (Checked) +5 RMARGIN (SubMenu) .3 lda #2+MENU.LMargin+MENU.RMargin 2px Borders+5 LMARGIN (Checked) +5 RMARGIN (SubMenu)
clc clc
adc IY adc IY Icon W
sta DX sta DX
bcc .30 stz DX+1
inc DX+1
.30 lda DX lda DX
sec 1px sep sec 1px sep
adc IE Text W adc IE Max Text W
sta DX sta DX
lda DX+1 lda DX+1
@@ -231,7 +333,7 @@ MENU.Show >SYSCALL2 GetMemPtr
lda DX lda DX
sec 1px sep sec 1px sep
adc INE Mod-Key W adc INE Max Mod-Key W
sta DX sta DX
bcc .4 bcc .4
@@ -247,18 +349,36 @@ MENU.Show >SYSCALL2 GetMemPtr
lda DY lda DY
sta (ZPMENUPtr),y sta (ZPMENUPtr),y
tax
iny iny
lda DY+1 lda DY+1
sta (ZPMENUPtr),y sta (ZPMENUPtr),y
pha
txa ldy #S.MENU.tOffset
lda IY
sta (ZPMENUPtr),y
iny #S.MENU.kOffset
lda IE
sta (ZPMENUPtr),y
iny
lda IE+1
sta (ZPMENUPtr),y
iny #S.MENU.rOffset
lda INE
sta (ZPMENUPtr),y
iny
lda INE+1
sta (ZPMENUPtr),y
ldy #S.OBJ.Y1 ldy #S.OBJ.Y1
lda DY
clc clc
adc (ZPMENUPtr),y adc (ZPMENUPtr),y
tax tax
pla
iny iny
lda DY+1
adc (ZPMENUPtr),y adc (ZPMENUPtr),y
cpx WND.Screen+S.OBJ.H cpx WND.Screen+S.OBJ.H
@@ -280,59 +400,13 @@ MENU.Show >SYSCALL2 GetMemPtr
.5 >LDYA ZPMENUPtr .5 >LDYA ZPMENUPtr
jsr OBJ.SetX2Y2 jsr OBJ.SetX2Y2
jsr MENU.Save
bcs MENU.Show.RTS
jsr MENU.Show.Borders
ldy #S.MENU.MITEMS
lda (ZPMENUPtr),y
sta ZPPtr1
iny
lda (ZPMENUPtr),y
sta ZPPtr1+1
ldy #S.OBJ.Y1 rts
lda (ZPMENUPtr),y
clc
adc #1
sta DY
iny
lda (ZPMENUPtr),y
adc #0
sta DY+1
.6 lda (ZPPtr1)
beq .8
jsr MENU.Show.Item
lda DY
clc
adc SYSFON.H
sta DY
bcc .7
inc DY+1
.7 lda (ZPPtr1)
clc
adc ZPPtr1
sta ZPPtr1
bcc .6
inc ZPPtr1+1
bra .6
.8 >LDYA L.WND.Screen
jmp DrawCBPtrToYA1
MENU.Show.RTS rts
*-------------------------------------- *--------------------------------------
MENU.Show.GetW ldy #S.MITEM.F MENU.GetMItemW ldy #S.MITEM.F
lda (ZPPtr1),y lda (ZPPtr1),y
cmp #S.MITEM.F.SEP cmp #S.MITEM.F.SEP
beq MENU.Show.RTS beq .8
ldy #S.MITEM.pICON ldy #S.MITEM.pICON
lda (ZPPtr1),y lda (ZPPtr1),y
@@ -371,151 +445,162 @@ MENU.Show.GetW ldy #S.MITEM.F
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
MENU.Show.Borders MENU.ShowBorders
lda #S.CB.CMD.FILLRECT lda #S.CB.CMD.HLINE
jsr PutA2CBBuf jsr CB.InitCacheA
lda #S.CB.OP.SET lda #S.CB.OP.SET
jsr PutA2CBBuf sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO lda #S.CB.M.MONO
jsr PutA2CBBuf sta CB.Cache+S.CB.M
lda PREFS.MENUCOLOR
jsr PutA2CBBuf
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.Y2
jsr MENU.Show.Borders.Y
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.H
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
jmp MENU.Show.Borders.Y
MENU.Show.Borders.H
jsr PutA2CBBuf
lda #S.CB.OP.SET
jsr PutA2CBBuf
lda #S.CB.M.MONO
jsr PutA2CBBuf
lda PREFS.BORDERCOLOR lda PREFS.BORDERCOLOR
jmp PutA2CBBuf sta CB.Cache+S.CB.COLOR
MENU.Show.Borders.Y ldy #S.OBJ.X2+1
ldx #5
.1 lda (ZPMENUPtr),y
sta CB.Cache+S.CB.X1,x
dey
dex
bpl .1
lda CB.Cache+S.CB.Y1
sta CB.Cache+S.CB.Y2
lda CB.Cache+S.CB.Y1+1
sta CB.Cache+S.CB.Y2+1 top X1,Y1,X2,Y1
jsr PutCBCache2CBBuf
ldy #S.OBJ.Y2
lda (ZPMENUPtr),y lda (ZPMENUPtr),y
jsr PutA2CBBuf sta CB.Cache+S.CB.Y1
sta CB.Cache+S.CB.Y2
iny iny
lda (ZPMENUPtr),y lda (ZPMENUPtr),y
jmp PutA2CBBuf sta CB.Cache+S.CB.Y1+1
sta CB.Cache+S.CB.Y2+1 bottom X1,Y2,X2,Y2
jmp PutCBCache2CBBuf
*-------------------------------------- *--------------------------------------
MENU.Show.Item ldy #S.MITEM.F MENU.ShowMItem ldy #S.MITEM.F
lda (ZPPtr1),y lda (ZPPtr1),y
cmp #S.MITEM.F.SEP cmp #S.MITEM.F.SEP
bne .1 bne MENU.ShowMItem1
lda #S.CB.CMD.HLINE lda #S.CB.CMD.HLINE
jsr PutA2CBBuf jsr CB.InitCacheA
lda #S.CB.OP.SET lda #S.CB.OP.SET
jsr PutA2CBBuf sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO lda #S.CB.M.MONO
jsr PutA2CBBuf sta CB.Cache+S.CB.M
lda PREFS.BORDERCOLOR lda PREFS.BORDERCOLOR
jsr PutA2CBBuf sta CB.Cache+S.CB.COLOR
ldy #S.OBJ.X1 ldx #3
jsr MENU.Show.Borders.Y
lda SYSFON.H .1 lda DX,x
lsr sta CB.Cache+S.CB.X1,x
dex
bpl .1
lda DX
clc clc
adc DY adc Counter
jsr PutA2CBBuf sta CB.Cache+S.CB.X2
lda DY+1 lda DX+1
adc #0 adc Counter+1
jsr PutA2CBBuf sta CB.Cache+S.CB.X2+1
jmp PutCBCache2CBBuf
ldy #S.OBJ.X2
jsr MENU.Show.Borders.Y
ldy #S.OBJ.Y1
jmp MENU.Show.Borders.Y
*-------------------------------------- *--------------------------------------
.1 ldy #S.OBJ.X1 MENU.ShowMItem1 lda #S.CB.CMD.FILLRECT
jsr CB.InitCacheA
lda #S.CB.OP.SET
sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO
sta CB.Cache+S.CB.M
ldy #S.MENU.Selected
lda (ZPMENUPtr),y lda (ZPMENUPtr),y
sec +1px Border ldx PREFS.MENUCOLOR
ldy #S.MITEM.ID
eor (ZPPtr1),y
bne .15
txa
eor #C.WHITE
tax
.15 stx CB.Cache+S.CB.COLOR
ldx #3
.10 lda DX,x
sta CB.Cache+S.CB.X1,x
dex
bpl .10
lda DX
clc
adc Counter
sta CB.Cache+S.CB.X2
lda DX+1
adc Counter+1
sta CB.Cache+S.CB.X2+1
lda DY
sec
adc SYSFON.H
sta CB.Cache+S.CB.Y2
lda DY+1
adc #0
sta CB.Cache+S.CB.Y2+1
jsr PutCBCache2CBBuf
inc DY
bne .12
inc DY+1
.12 lda DX
clc
adc #MENU.LMargin TODO : Checked adc #MENU.LMargin TODO : Checked
sta DX sta DX
iny bcc .11
lda (ZPMENUPtr),y
adc #0
sta DX+1 sta DX+1
jsr MENU.GetIcon .11 jsr MENU.GetIcon
beq .2 beq .2
jsr DRAW.YABMAtDXDY jsr DRAW.YABMAtDXDY
.2 lda DX .2 lda DX
clc clc
adc IY Icon reserved W ldy #S.MENU.tOffset
adc (ZPPtr1),y
sta DX sta DX
lda DX+1 bcc .21
adc #0
sta DX+1
jsr MENU.GetText inc DX+1
.21 jsr MENU.GetText
ldx hSYSFON ldx hSYSFON
jsr DRAW.YATextAtDXDY jsr DRAW.YATextAtDXDY
lda DX lda DX
sec sec
adc IE ldy #S.MENU.tOffset
adc (ZPPtr1),y
sta DX sta DX
lda DX+1 lda DX+1
adc IE+1 iny
adc (ZPPtr1),y
sta DX+1 sta DX+1
jsr MENU.GetKeyString jsr MENU.GetKeyString
@@ -531,17 +616,24 @@ MENU.Show.Item ldy #S.MITEM.F
lda DX lda DX
sec sec
adc INE ldy #S.MENU.rOffset
adc (ZPPtr1),y
sta DX sta DX
lda DX+1 lda DX+1
adc IE+1 iny
sta DX+1 adc (ZPPtr1),y
sta DX+1
ldx #BM.ID.RIGHT ldx #BM.ID.RIGHT
>LDYA L.BMs,x >LDYA L.BMs,x
jsr DRAW.YABMAtDXDY jsr DRAW.YABMAtDXDY
.8 clc .8 lda DY
bne .80
dec DY+1
.80 dec DY
clc
rts rts
*-------------------------------------- *--------------------------------------
MENU.GetIcon ldy #S.MITEM.pICON+1 MENU.GetIcon ldy #S.MITEM.pICON+1
@@ -586,10 +678,8 @@ MENU.GetKeyString
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
MENU.Save jsr CB.ClearCache MENU.Save lda #S.CB.CMD.GETRECTBUFSIZE
jsr CB.InitCacheA
lda #S.CB.CMD.GETRECTBUFSIZE
sta CB.Cache+S.CB.CMD
ldy #S.OBJ.X1 ldy #S.OBJ.X1
ldx #0 ldx #0
@@ -641,7 +731,12 @@ MENU.Destroy ldx MENU.Stack.Top
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
>STYA ZPMENUPtr >STYA ZPMENUPtr
jsr CB.ClearCache bit CUR.bVisible
bpl .3
jsr HideCursor.I
.3 jsr CB.ClearCache
lda #S.CB.CMD.BITBLT lda #S.CB.CMD.BITBLT
sta CB.Cache+S.CB.CMD sta CB.Cache+S.CB.CMD
@@ -682,10 +777,100 @@ MENU.Destroy ldx MENU.Stack.Top
lda MENU.Stack-1,x lda MENU.Stack-1,x
>SYSCALL2 FreeMem >SYSCALL2 FreeMem
dec MENU.Stack.Top dec MENU.Stack.Top
bit CUR.bVisible
bpl .8
jsr ShowCursor.I
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
MENU.GetDX ldy #S.OBJ.X1
lda (ZPMENUPtr),y
clc
adc #1
sta DX
iny
lda (ZPMENUPtr),y
adc #0
sta DX+1
rts
*--------------------------------------
MENU.GetDYW ldy #S.OBJ.Y1
lda (ZPMENUPtr),y
clc
adc #1
sta DY
iny
lda (ZPMENUPtr),y
adc #0
sta DY+1
ldy #S.OBJ.W
lda (ZPMENUPtr),y
sec
sbc #3 2Px border + correction from W
sta Counter
iny
lda (ZPMENUPtr),y
sbc #0
sta Counter+1
rts
*--------------------------------------
MENU.FindMItemByID
jsr MENU.GetMItems
.1 lda (ZPPtr1)
beq .9
txa
ldy #S.MITEM.ID
cmp (ZPPtr1),y
beq .8
jsr MENU.NextMItem
bra .1
.8 clc
rts
.9 sec
rts
*--------------------------------------
MENU.GetMItems ldy #S.MENU.MITEMS
lda (ZPMENUPtr),y
sta ZPPtr1
iny
lda (ZPMENUPtr),y
sta ZPPtr1+1
rts
*--------------------------------------
MENU.NextMItem ldy #S.MITEM.F
lda (ZPPtr1),y
sec
eor #S.MITEM.F.SEP
beq .1
lda SYSFON.Hp2
clc
.1 adc DY
sta DY
bcc .2
inc DY+1
.2 lda (ZPPtr1)
clc
adc ZPPtr1
sta ZPPtr1
bcc .8
inc ZPPtr1+1
.8 rts
*--------------------------------------
MAN MAN
SAVE usr/src/lib/libgui.s.menu SAVE usr/src/lib/libgui.s.menu
LOAD usr/src/lib/libgui.s LOAD usr/src/lib/libgui.s

View File

@@ -1,8 +1,7 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
MOU.Init MOU.Init >PUSHBI 0
.1 >PUSHBI 0
>LDYA L.DEVNAME.MOUSE >LDYA L.DEVNAME.MOUSE
>SYSCALL2 open >SYSCALL2 open
bcc .2 bcc .2
@@ -10,8 +9,9 @@ MOU.Init
inc DEVNAME.MOUSE+8 inc DEVNAME.MOUSE+8
lda DEVNAME.MOUSE+8 lda DEVNAME.MOUSE+8
cmp #'8' cmp #'8'
bne .1 bne MOU.Init
* sec
rts rts
.2 sta hDevMouse .2 sta hDevMouse
@@ -66,7 +66,7 @@ MOU.ReadMouse >PULLW ZPPtr1
bne .9 no, exit.... bne .9 no, exit....
lda hDevMouse lda hDevMouse
beq .9 beq .99 CS
>PUSHA >PUSHA
>PUSHBI IOCTL.READ >PUSHBI IOCTL.READ
@@ -86,42 +86,30 @@ MOU.ReadMouse >PULLW ZPPtr1
bit #S.MOUSE.S.MOVE bit #S.MOUSE.S.MOVE
beq .8 beq .8
.2 ldx MENU.Stack.Top
beq .3
lda MENU.Stack-1,x
jsr MOU.CheckOverMenu jsr MOU.CheckOverMenu
bcc .8 bcc .8
jsr MENU.Destroy
bra .2
.9 sec
.99 rts
.3 jsr MOU.CheckOverWND jsr MOU.CheckOverSysBut
bcc .8 bcc .8
.4 lda WND.SysBar+S.OBJ.Y1 jsr MOU.CheckOverWND
bcc .8
rts
ldy #S.MOUSE.Y1
cmp (ZPPtr1),y
lda WND.SysBar+S.OBJ.Y1+1
iny
sbc (ZPPtr1),y
bcs .7
jmp SYSBAR.Enter
.7 jmp SYSBAR.Leave
.8 clc .8 clc
rts rts
.9 sec
.99 rts
*-------------------------------------- *--------------------------------------
MOU.CheckOverMenu MOU.CheckOverMenu
.1 ldx MENU.Stack.Top
beq .9
lda MENU.Stack-1,x
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
>STYA ZPPtr1 >STYA ZPMENUPtr
pha pha
tya tya
clc clc
@@ -130,17 +118,34 @@ MOU.CheckOverMenu
pla pla
adc /S.OBJ.X1 adc /S.OBJ.X1
jsr MOU.InRectYA jsr MOU.InRectYA
bcc .8 bcs .2
lda ZPPtr1 jmp MENU.Enter
.2 lda ZPMENUPtr
clc clc
adc #S.MENU.pX1 adc #S.MENU.pX1
tay tay
lda ZPPtr1+1 lda ZPMENUPtr+1
adc /S.MENU.pX1 adc /S.MENU.pX1
jsr MOU.InRectYA
.8 rts jsr MOU.InRectYA
bcc .8
jsr MENU.Destroy
bra .1
.9 sec
.8 rts
*--------------------------------------
MOU.CheckOverSysBut
>LDYA L.RECT.SysBut
jsr MOU.InRectYA
bcs .9
jmp SYSBUT.Enter
.9 jmp SYSBUT.Leave
*-------------------------------------- *--------------------------------------
MOU.CheckOverWND MOU.CheckOverWND
ldx WND.Stack.Top ldx WND.Stack.Top

View File

@@ -1,47 +1,56 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
SYSBAR.Enter ldy #S.MOUSE.X1 SYSBUT.Enter ldy #S.MOUSE.X1
lda (ZPPtr1),y lda (ZPPtr1),y
cmp WND.SysBar.A2osX.X2 cmp RECT.SysBut+S.RECT.X2
iny iny
lda (ZPPtr1),y lda (ZPPtr1),y
sbc WND.SysBar.A2osX.X2+1 sbc RECT.SysBut+S.RECT.X2+1
bcs .8 bcs .8
sec sec
ror WND.SYSBAR.bA2osX ror WND.SYSBAR.bSysBut
jsr GetCBBuf jsr GetCBBuf
bcs .9 bcs .9
jsr SYSBAR.Show.A2osX jsr SYSBAR.ShowSysBut
>LDYA L.WND.SysBar >LDYA L.WND.SysBar
jsr DrawCBPtrToYA1 jsr DrawCBPtrToYA1
>PUSHW WND.SysBar+S.OBJ.X1 >PUSHW WND.SysBar+S.OBJ.X1
>PUSHW WND.SysBar+S.OBJ.Y1 >PUSHW WND.SysBar+S.OBJ.Y1
>PUSHW L.RECT.SysBut >PUSHW L.RECT.SysBut Parent RECT
>PUSHW L.MENU.Sys >PUSHW L.MENU.Sys
jsr MENU.New jsr MENU.New
bcs .9 bcs .9
sta hSysMenu
>PUSHA hSysMenu
>PUSHBI 6
>PUSHBI S.MITEM.pMENU
>PUSHW L.MENU.Sys.Settings
jsr MENU.SetMItemProp
lda hSysMenu
jsr MENU.Show jsr MENU.Show
.8 clc .8 clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
SYSBAR.Leave bit WND.SYSBAR.bA2osX SYSBUT.Leave bit WND.SYSBAR.bSysBut
bpl .8 bpl .8
stz WND.SYSBAR.bA2osX stz WND.SYSBAR.bSysBut
jsr GetCBBuf jsr GetCBBuf
bcs .9 bcs .9
jsr SYSBAR.Show.A2osX jsr SYSBAR.ShowSysBut
>LDYA L.WND.SysBar >LDYA L.WND.SysBar
@@ -53,9 +62,11 @@ SYSBAR.Leave bit WND.SYSBAR.bA2osX
SYSBAR.Show jsr GetCBBuf SYSBAR.Show jsr GetCBBuf
bcs .9 bcs .9
jsr SYSBAR.Show.A2osX jsr SYSBAR.ShowSysBut
jsr SYSBAR.Show.W jsr SYSBAR.ShowSysWNDs
jsr SYSBAR.ShowSysClk
>LDYA L.WND.SysBar >LDYA L.WND.SysBar
@@ -63,232 +74,115 @@ SYSBAR.Show jsr GetCBBuf
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
SYSBAR.Show.A2osX SYSBAR.ShowSysBut
lda #S.CB.CMD.FILLRECT lda #S.CB.CMD.FILLRECT
jsr PutA2CBBuf jsr CB.InitCacheA
lda #S.CB.OP.SET lda #S.CB.OP.SET
jsr PutA2CBBuf sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO lda #S.CB.M.MONO
jsr PutA2CBBuf sta CB.Cache+S.CB.M
lda PREFS.SYSBARCOLOR lda PREFS.SYSBARCOLOR
bit WND.SysBar.bA2osX bit WND.SysBar.bSysBut
bpl .1 bpl .1
eor #$ff eor #$ff
.1 jsr PutA2CBBuf .1 sta CB.Cache+S.CB.COLOR
lda #0 X1 ldx #S.RECT-1
jsr PutA2CBBuf
jsr PutA2CBBuf
lda WND.SysBar+S.OBJ.Y1
jsr PutA2CBBuf
lda WND.SysBar+S.OBJ.Y1+1
jsr PutA2CBBuf
lda WND.SysBar.A2osX.X2
jsr PutA2CBBuf
lda WND.SysBar.A2osX.X2+1
jsr PutA2CBBuf
lda WND.SysBar+S.OBJ.Y2
jsr PutA2CBBuf
lda WND.SysBar+S.OBJ.Y2+1
jsr PutA2CBBuf
lda WND.SysBar+S.OBJ.X1 .2 lda RECT.SysBut,x
sta CB.Cache+S.CB.X1,x
dex
bpl .2
jsr PutCBCache2CBBuf
lda RECT.SysBut+S.RECT.X1
clc clc
adc #4 adc #4
sta DX sta DX
lda WND.SysBar+S.OBJ.X1+1 lda RECT.SysBut+S.RECT.X1+1
adc #0 adc #0
sta DX+1 sta DX+1
lda WND.SysBar+S.OBJ.Y1 lda RECT.SysBut+S.RECT.Y1
clc clc
adc #1 adc #1
sta DY sta DY
lda WND.SysBar+S.OBJ.Y1+1 lda RECT.SysBut+S.RECT.Y1+1
adc #0 adc #0
sta DY+1 sta DY+1
>LDYA L.BM.Apple >LDYA L.BM.Apple
jsr DRAW.YABMAtDXDY jsr DRAW.YABMAtDXDY
lda WND.SysBar+S.OBJ.X1 lda RECT.SysBut+S.RECT.X1
clc clc
adc #21 adc #21
sta DX sta DX
lda WND.SysBar+S.OBJ.X1+1 lda RECT.SysBut+S.RECT.X1+1
adc #0 adc #0
sta DX+1 sta DX+1
inc DY inc DY
bne .2 bne .3
inc DY+1 inc DY+1
.2 lda WND.SysBar.bA2osX .3 lda WND.SysBar.bSysBut
asl asl
>LDYA L.WND.SysBar.2osX >LDYA L.WND.SysBar.2osX
ldx hSYSFON ldx hSYSFON
jsr DRAW.YATextAtDXDY jmp DRAW.YATextAtDXDY
rts
*-------------------------------------- *--------------------------------------
SYSBAR.Show.W lda #S.CB.CMD.FILLRECT SYSBAR.ShowSysWNDs
jsr PutA2CBBuf lda #S.CB.CMD.FILLRECT
jsr CB.InitCacheA
lda #S.CB.OP.SET lda #S.CB.OP.SET
jsr PutA2CBBuf sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO lda #S.CB.M.MONO
jsr PutA2CBBuf sta CB.Cache+S.CB.M
lda PREFS.SYSBARCOLOR lda PREFS.SYSBARCOLOR
jsr PutA2CBBuf sta CB.Cache+S.CB.COLOR
lda WND.SysBar.W.X1 ldx #S.RECT-1
jsr PutA2CBBuf
lda WND.SysBar.W.X1+1
jsr PutA2CBBuf
lda WND.SysBar+S.OBJ.Y1 .1 lda RECT.SysWNDs,x
jsr PutA2CBBuf sta CB.Cache+S.CB.X1,x
lda WND.SysBar+S.OBJ.Y1+1
jsr PutA2CBBuf
lda WND.SysBar.W.X2
jsr PutA2CBBuf
lda WND.SysBar.W.X2+1
jsr PutA2CBBuf
lda WND.SysBar+S.OBJ.Y2
jsr PutA2CBBuf
lda WND.SysBar+S.OBJ.Y2+1
jmp PutA2CBBuf
*--------------------------------------
DRAW.YABMAtDXDY >STYA ZPBMPtr 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 dex
bne .1 bpl .1
lda #0 S.CB.X2 jmp PutCBCache2CBBuf
jsr PutA2CBBuf *--------------------------------------
jsr PutA2CBBuf SYSBAR.ShowSysClk
lda #S.CB.CMD.FILLRECT
jsr PutA2CBBuf S.CB.Y2 jsr CB.InitCacheA
jsr PutA2CBBuf
lda #S.CB.OP.SET
jsr PutA2CBBuf S.CB.SrcX sta CB.Cache+S.CB.OP
jsr PutA2CBBuf
jsr PutA2CBBuf S.CB.SrcY
jsr PutA2CBBuf
ldx #4
ldy #S.BM.W
.2 lda (ZPBMPtr),y S.CB.SrcW,S.CB.SrcH
jsr PutA2CBBuf
iny
dex
bne .2
lda ZPBMPtr S.CB.SrcPtr
jsr PutA2CBBuf
lda ZPBMPtr+1
jsr PutA2CBBuf
lda #0 S.CB.DstPtr
jsr PutA2CBBuf
jsr PutA2CBBuf
rts
*--------------------------------------
DRAW.YATextAtDXDY
pha Src Text
phy
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 lda #S.CB.M.MONO
jsr PutA2CBBuf sta CB.Cache+S.CB.M
txa lda PREFS.SYSBARCOLOR
jsr PutA2CBBuf S.CB.hFont sta CB.Cache+S.CB.COLOR
ldy #0 ldx #S.RECT-1
ldx #4
.1 lda RECT.SysClk,x
.1 lda DX,y DX,DY -> S.CB.X1,S.CB.Y1 sta CB.Cache+S.CB.X1,x
jsr PutA2CBBuf
iny
dex dex
bne .1 bpl .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 jmp PutCBCache2CBBuf
jsr PutA2CBBuf
jsr PutA2CBBuf S.CB.SrcPtr
jsr PutA2CBBuf
jsr PutA2CBBuf S.CB.DstPtr
jsr PutA2CBBuf
pla
jsr PutA2CBBuf S.CB.TxtPtr
pla
jmp PutA2CBBuf
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE usr/src/lib/libgui.s.sysbar SAVE usr/src/lib/libgui.s.sysbar

View File

@@ -20,7 +20,9 @@ WND.Init >PUSHBI 0
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
WND.Setup stz WND.Stack.Top WND.Setup
* stz WND.Stack.Top
* stz MENU.Stack.Top
>LDYA DCB.GFX+S.DCB.GFX.W >LDYA DCB.GFX+S.DCB.GFX.W
>STYA WND.Screen+S.OBJ.W >STYA WND.Screen+S.OBJ.W
@@ -36,7 +38,17 @@ WND.Setup stz WND.Stack.Top
sec sec
sbc WND.SysBar+S.OBJ.H sbc WND.SysBar+S.OBJ.H
sta WND.Desktop+S.OBJ.H sta WND.Desktop+S.OBJ.H
sta WND.SysBar+S.OBJ.Y1 sta WND.SysBar+S.OBJ.Y1
sta RECT.SysBut+S.RECT.Y1
sta RECT.SysWNDs+S.RECT.Y1
sta RECT.SysClk+S.RECT.Y1
lda DCB.GFX+S.DCB.GFX.H
dec
sta RECT.SysBut+S.RECT.Y2
sta RECT.SysWNDs+S.RECT.Y2
sta RECT.SysClk+S.RECT.Y2
>LDYA L.WND.Screen >LDYA L.WND.Screen
>STYA WND.Desktop+S.OBJ.hPARENT >STYA WND.Desktop+S.OBJ.hPARENT
@@ -56,15 +68,36 @@ WND.Setup stz WND.Stack.Top
lda CB.Cache+S.CB.SrcW lda CB.Cache+S.CB.SrcW
clc clc
adc #24 4 + BM width + 4 adc #24 4 + BM width + 4
sta WND.SysBar.W.X1 sta RECT.SysBut+S.RECT.X2
sta RECT.SysWNDs+S.RECT.X1
>LDYA L.WND.Screen+S.OBJ.X2 >LDYA L.WND.SysBar.Clk
>STYA WND.SysBar.W.X2 ldx hSYSFON
jsr FON.GetTextSize
lda #CUR.T.ARROW
sta WND.Desktop+S.WND.hCUR
sta WND.SysBar+S.WND.hCUR
lda CB.Cache+S.CB.SrcW
sec for sbc below
adc #8 4 + 00:00 + 4
sta RECT.SysWNDs+S.RECT.X2
lda DCB.GFX+S.DCB.GFX.W
sec
sbc RECT.SysWNDs+S.RECT.X2
sta RECT.SysWNDs+S.RECT.X2
sta RECT.SysClk+S.RECT.X1
lda DCB.GFX+S.DCB.GFX.W+1
sbc #0
sta RECT.SysWNDs+S.RECT.X2+1
sta RECT.SysClk+S.RECT.X1+1
lda DCB.GFX+S.DCB.GFX.W
sec
sbc #0
sta RECT.SysClk+S.RECT.X2
lda DCB.GFX+S.DCB.GFX.W
sbc #0
sta RECT.SysClk+S.RECT.X2+1
jsr SYSBAR.Show jsr SYSBAR.Show
rts rts

View File

@@ -86,17 +86,18 @@ ZPBMPtr .BS 2
ZPRECTPtr .BS 2 ZPRECTPtr .BS 2
ZPPtr1 .BS 2 ZPPtr1 .BS 2
CLIP.Line.P1 .BS 1
CLIP.Line.P2 .BS 1
DX .BS 2 DX .BS 2
DY .BS 2 DY .BS 2
IY .BS 1
IE .BS 2 IE .BS 2
D .BS 2
INE .BS 2 INE .BS 2
D .BS 2
Counter .BS 2 Counter .BS 2
CLIP.Line.P1 .BS 1
CLIP.Line.P2 .BS 1
IY .BS 1
hCBBuf .BS 1 hCBBuf .BS 1
ZPCBBufPtr .BS 2 ZPCBBufPtr .BS 2
@@ -149,10 +150,12 @@ L.WND.Screen .DA WND.Screen
L.WND.Desktop .DA WND.Desktop L.WND.Desktop .DA WND.Desktop
L.WND.SysBar .DA WND.SysBar L.WND.SysBar .DA WND.SysBar
L.WND.SysBar.2osX .DA WND.SysBar.2osX L.WND.SysBar.2osX .DA WND.SysBar.2osX
L.WND.SysBar.Clk .DA WND.SysBar.Clk
L.RECT.SysBut .DA RECT.SysBut L.RECT.SysBut .DA RECT.SysBut
L.RECT.SysWNDs .DA RECT.SysWNDs L.RECT.SysWNDs .DA RECT.SysWNDs
L.RECT.SysClk .DA RECT.SysClk L.RECT.SysClk .DA RECT.SysClk
L.MENU.Sys .DA MENU.Sys L.MENU.Sys .DA MENU.Sys
L.MENU.Sys.Settings .DA MENU.Sys.Settings
*-------------------------------------- *--------------------------------------
L.BMs .EQ *-2 L.BMs .EQ *-2
L.BM.Apple .DA BM.Apple L.BM.Apple .DA BM.Apple
@@ -227,11 +230,13 @@ LIB.UNLOAD dec LibCount
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
CB.InitCacheA sta CB.Cache
*--------------------------------------
CB.ClearCache ldx #S.CB-1 CB.ClearCache ldx #S.CB-1
.1 stz CB.Cache,x .1 stz CB.Cache,x
dex dex
bpl .1 bne .1
rts rts
*-------------------------------------- *--------------------------------------
@@ -428,12 +433,9 @@ WND.Desktop .DA #S.OBJ.T.WND
*-------------------------------------- *--------------------------------------
WND.SysBar .DA #S.OBJ.T.WND WND.SysBar .DA #S.OBJ.T.WND
.BS S.WND-1 .BS S.WND-1
WND.SysBar.A2osX.X2 .EQ *
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" WND.SysBar.2osX .AZ "2osX"
WND.SysBar.Clk .AZ "00:00"
WND.SysBar.bSysBut .BS 1
*-------------------------------------- *--------------------------------------
RECT.SysBut .BS S.RECT RECT.SysBut .BS S.RECT
*-------------------------------------- *--------------------------------------
@@ -441,6 +443,7 @@ RECT.SysWNDs .BS S.RECT
*-------------------------------------- *--------------------------------------
RECT.SysClk .BS S.RECT RECT.SysClk .BS S.RECT
*-------------------------------------- *--------------------------------------
hSysMenu .BS 1
MENU.Sys MENU.Sys
.1 .DA #.2-* next .1 .DA #.2-* next
.DA #S.MITEM.F.ITEM F .DA #S.MITEM.F.ITEM F
@@ -460,7 +463,7 @@ MENU.Sys
.3 .DA #.4-* next .3 .DA #.4-* next
.DA #S.MITEM.F.SUBMENU F .DA #S.MITEM.F.SUBMENU F
.DA #0 S .DA #0 S
.DA #0 ID .DA #4 ID
.DA 0 pICON .DA 0 pICON
.DA 0 pMENU .DA 0 pMENU
.DA #0 .DA #0
@@ -469,7 +472,7 @@ MENU.Sys
.4 .DA #.5-* next .4 .DA #.5-* next
.DA #S.MITEM.F.SUBMENU F .DA #S.MITEM.F.SUBMENU F
.DA #0 S .DA #0 S
.DA #0 ID .DA #6 ID
.DA 0 pICON .DA 0 pICON
.DA 0 pMENU .DA 0 pMENU
.DA #0 KEYSTR .DA #0 KEYSTR
@@ -500,15 +503,40 @@ MENU.Sys
.77 .AZ "Ctrl-R" .77 .AZ "Ctrl-R"
.8 .DA #0 .8 .DA #0
*-------------------------------------- *--------------------------------------
MENU.Sys.Settings
.1 .DA #.2-* next
.DA #S.MITEM.F.ITEM F
.DA #0 S
.DA #62 ID
.DA 0 pICON
.DA #0
.DA #0
.DA #0 KEYSTR
.AZ "Colors..."
.2 .DA #.3-* next
.DA #S.MITEM.F.ITEM F
.DA #0 S
.DA #64 ID
.DA 0 pICON
.DA #0
.DA #0
.DA #0 KEYSTR
.AZ "SubItem2..."
.3 .DA #0
*--------------------------------------
PREFS.BESTVIEWEDX .DA #$FC PREFS.BESTVIEWEDX .DA #$FC
PREFS.bSYSBARTOP .DA #0
PREFS.MBARXMARGIN .DA #5
PREFS.MENUCOLOR .DA #C.WHITE PREFS.MENUCOLOR .DA #C.WHITE
PREFS.SYSBARCOLOR .DA #C.WHITE PREFS.SYSBARCOLOR .DA #C.WHITE
PREFS.MBARXMARGIN .DA #5
PREFS.BORDERCOLOR .DA #C.BLACK PREFS.BORDERCOLOR .DA #C.BLACK
PREFS.TBARCOLORA .DA #C16.D.BLUE PREFS.TBARCOLORA .DA #C16.L.BLUE
PREFS.TBARCOLORI .DA #C16.L.BLUE PREFS.TBARCOLORI .DA #C16.AQUA
PREFS.MBARCOLOR .DA #C.WHITE PREFS.MBARCOLOR .DA #C.WHITE
PREFS.SBARCOLOR .DA #C.WHITE PREFS.SBARCOLOR .DA #C.WHITE
PREFS.DESKTOPCOLOR .DA #C16.D.BLUE
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE usr/src/lib/libgui.s SAVE usr/src/lib/libgui.s