mirror of
https://github.com/A2osX/A2osX.git
synced 2025-01-11 10:29:46 +00:00
Kernel 0.94
This commit is contained in:
parent
11bfc18b6e
commit
ed74a0e2a2
Binary file not shown.
Binary file not shown.
@ -3,7 +3,7 @@ NEW
|
||||
*--------------------------------------
|
||||
IO.D2.SeekTimeR .EQ 160 LIBBLKDEV Recalibration
|
||||
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.SeekTimeI .EQ 20 ProDOS.FX increment -> until > 128
|
||||
*--------------------------------------
|
||||
|
@ -123,10 +123,10 @@ S.WND.hCUR .EQ S.OBJ+16
|
||||
S.WND.TitleX1 .EQ S.OBJ+18
|
||||
S.WND.TitleX2 .EQ S.OBJ+20
|
||||
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.InnerY1 .EQ S.OBJ+24
|
||||
S.WND.InnerY2 .EQ S.OBJ+26
|
||||
S.WND.InnerY1 .EQ S.OBJ+24
|
||||
S.WND.InnerY2 .EQ S.OBJ+26
|
||||
S.WND.SBarY1 .EQ S.OBJ+26
|
||||
S.WND.InnerW .EQ S.OBJ+28
|
||||
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.pX2 .EQ S.OBJ+8
|
||||
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.F .EQ 1
|
||||
|
@ -374,7 +374,7 @@ BB.Seek lda BB.HdrTrk get track we're on
|
||||
jsr BB.Wait
|
||||
|
||||
jsr BB.PhasesOff
|
||||
bcs BB.Read ALWAYS
|
||||
bra BB.Read
|
||||
*--------------------------------------
|
||||
BB.PhasesOff bit IO.D2.Ph0Off,x
|
||||
nop
|
||||
|
@ -89,7 +89,27 @@ BM.Min.AND .HS FF0F
|
||||
.HS 0F0F
|
||||
.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
|
||||
.DA #1 RowBytes
|
||||
@ -113,9 +133,49 @@ BM.Right.AND .DA #%1111001
|
||||
.DA #%1110001
|
||||
.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
|
||||
SAVE usr/src/lib/libgui.g.bm
|
||||
|
@ -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
|
||||
>STYA ZPPtr1
|
||||
|
||||
|
@ -93,13 +93,18 @@ MENU.MBarInit >STYA ZPMENUPtr
|
||||
*--------------------------------------
|
||||
MENU.New ldy MENU.Stack.Top
|
||||
cpy #MENU.MAX
|
||||
bcs .90
|
||||
bcc .10
|
||||
jmp .90
|
||||
|
||||
>LDYAI S.MENU
|
||||
.10 >LDYAI S.MENU
|
||||
>SYSCALL2 getmem
|
||||
bcs .99
|
||||
|
||||
>STYA ZPMENUPtr
|
||||
txa hMenu
|
||||
|
||||
ldx MENU.Stack.Top
|
||||
sta MENU.Stack,x
|
||||
|
||||
lda #S.OBJ.T.MENU
|
||||
sta (ZPMENUPtr) S.OBJ.T
|
||||
@ -119,7 +124,7 @@ MENU.New ldy MENU.Stack.Top
|
||||
iny
|
||||
sta (ZPMENUPtr),y
|
||||
|
||||
>PULLW ZPPtr1
|
||||
>PULLW ZPRECTPtr Parent RECT
|
||||
|
||||
>PULLA
|
||||
ldy #S.OBJ.Y1
|
||||
@ -138,22 +143,24 @@ MENU.New ldy MENU.Stack.Top
|
||||
lda ZPMENUPtr
|
||||
clc
|
||||
adc #S.MENU.pX1
|
||||
sta ZPMENUPtr
|
||||
bcc .2
|
||||
sta ZPPtr1
|
||||
|
||||
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
|
||||
sta (ZPMENUPtr),y
|
||||
.3 lda (ZPRECTPtr),y
|
||||
sta (ZPPtr1),y
|
||||
dey
|
||||
bpl .3
|
||||
|
||||
txa hMenu
|
||||
jsr MENU.SetMenuSizePos
|
||||
|
||||
ldx MENU.Stack.Top
|
||||
sta MENU.Stack,x
|
||||
lda MENU.Stack,x
|
||||
|
||||
inc MENU.Stack.Top
|
||||
|
||||
clc
|
||||
@ -163,25 +170,132 @@ MENU.New ldy MENU.Stack.Top
|
||||
sec
|
||||
.99 >POP 8
|
||||
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>|
|
||||
* ----------------------------------------------
|
||||
MENU.Show >SYSCALL2 GetMemPtr
|
||||
>STYA ZPMENUPtr
|
||||
|
||||
|
||||
jsr MENU.Save
|
||||
bcs .9
|
||||
|
||||
jsr GetCBBuf
|
||||
bcs MENU.New.RTS
|
||||
|
||||
ldy #S.MENU.MITEMS
|
||||
lda (ZPMENUPtr),y
|
||||
sta ZPPtr1
|
||||
iny
|
||||
lda (ZPMENUPtr),y
|
||||
sta ZPPtr1+1
|
||||
bcs .9
|
||||
|
||||
stz DX
|
||||
stz DX+1
|
||||
jsr MENU.ShowBorders
|
||||
|
||||
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 IE Max Text W
|
||||
@ -192,37 +306,25 @@ MENU.Show >SYSCALL2 GetMemPtr
|
||||
lda #2 2px Borders
|
||||
sta DY Menu H
|
||||
stz DY+1
|
||||
|
||||
jsr MENU.GetMItems
|
||||
|
||||
.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
|
||||
jsr MENU.GetMItemW
|
||||
jsr MENU.NextMItem
|
||||
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
|
||||
adc IY
|
||||
adc IY Icon W
|
||||
sta DX
|
||||
bcc .30
|
||||
inc DX+1
|
||||
stz DX+1
|
||||
|
||||
.30 lda DX
|
||||
lda DX
|
||||
sec 1px sep
|
||||
adc IE Text W
|
||||
adc IE Max Text W
|
||||
sta DX
|
||||
|
||||
lda DX+1
|
||||
@ -231,7 +333,7 @@ MENU.Show >SYSCALL2 GetMemPtr
|
||||
|
||||
lda DX
|
||||
sec 1px sep
|
||||
adc INE Mod-Key W
|
||||
adc INE Max Mod-Key W
|
||||
sta DX
|
||||
bcc .4
|
||||
|
||||
@ -247,18 +349,36 @@ MENU.Show >SYSCALL2 GetMemPtr
|
||||
|
||||
lda DY
|
||||
sta (ZPMENUPtr),y
|
||||
tax
|
||||
iny
|
||||
lda DY+1
|
||||
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
|
||||
lda DY
|
||||
clc
|
||||
adc (ZPMENUPtr),y
|
||||
tax
|
||||
pla
|
||||
|
||||
iny
|
||||
lda DY+1
|
||||
adc (ZPMENUPtr),y
|
||||
|
||||
cpx WND.Screen+S.OBJ.H
|
||||
@ -280,59 +400,13 @@ MENU.Show >SYSCALL2 GetMemPtr
|
||||
|
||||
.5 >LDYA ZPMENUPtr
|
||||
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
|
||||
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
|
||||
rts
|
||||
*--------------------------------------
|
||||
MENU.Show.GetW ldy #S.MITEM.F
|
||||
MENU.GetMItemW ldy #S.MITEM.F
|
||||
lda (ZPPtr1),y
|
||||
cmp #S.MITEM.F.SEP
|
||||
beq MENU.Show.RTS
|
||||
beq .8
|
||||
|
||||
ldy #S.MITEM.pICON
|
||||
lda (ZPPtr1),y
|
||||
@ -371,151 +445,162 @@ MENU.Show.GetW ldy #S.MITEM.F
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
MENU.Show.Borders
|
||||
lda #S.CB.CMD.FILLRECT
|
||||
jsr PutA2CBBuf
|
||||
MENU.ShowBorders
|
||||
lda #S.CB.CMD.HLINE
|
||||
jsr CB.InitCacheA
|
||||
|
||||
lda #S.CB.OP.SET
|
||||
jsr PutA2CBBuf
|
||||
sta CB.Cache+S.CB.OP
|
||||
lda #S.CB.M.MONO
|
||||
jsr PutA2CBBuf
|
||||
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
|
||||
sta CB.Cache+S.CB.M
|
||||
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
|
||||
jsr PutA2CBBuf
|
||||
sta CB.Cache+S.CB.Y1
|
||||
sta CB.Cache+S.CB.Y2
|
||||
iny
|
||||
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
|
||||
cmp #S.MITEM.F.SEP
|
||||
bne .1
|
||||
bne MENU.ShowMItem1
|
||||
|
||||
lda #S.CB.CMD.HLINE
|
||||
jsr PutA2CBBuf
|
||||
jsr CB.InitCacheA
|
||||
|
||||
lda #S.CB.OP.SET
|
||||
jsr PutA2CBBuf
|
||||
sta CB.Cache+S.CB.OP
|
||||
lda #S.CB.M.MONO
|
||||
jsr PutA2CBBuf
|
||||
sta CB.Cache+S.CB.M
|
||||
lda PREFS.BORDERCOLOR
|
||||
jsr PutA2CBBuf
|
||||
sta CB.Cache+S.CB.COLOR
|
||||
|
||||
ldy #S.OBJ.X1
|
||||
jsr MENU.Show.Borders.Y
|
||||
lda SYSFON.H
|
||||
lsr
|
||||
ldx #3
|
||||
|
||||
.1 lda DX,x
|
||||
sta CB.Cache+S.CB.X1,x
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
lda DX
|
||||
clc
|
||||
adc DY
|
||||
jsr PutA2CBBuf
|
||||
lda DY+1
|
||||
adc #0
|
||||
jsr PutA2CBBuf
|
||||
|
||||
ldy #S.OBJ.X2
|
||||
jsr MENU.Show.Borders.Y
|
||||
ldy #S.OBJ.Y1
|
||||
jmp MENU.Show.Borders.Y
|
||||
adc Counter
|
||||
sta CB.Cache+S.CB.X2
|
||||
lda DX+1
|
||||
adc Counter+1
|
||||
sta CB.Cache+S.CB.X2+1
|
||||
jmp PutCBCache2CBBuf
|
||||
*--------------------------------------
|
||||
.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
|
||||
|
||||
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
|
||||
sta DX
|
||||
iny
|
||||
lda (ZPMENUPtr),y
|
||||
adc #0
|
||||
bcc .11
|
||||
sta DX+1
|
||||
|
||||
jsr MENU.GetIcon
|
||||
.11 jsr MENU.GetIcon
|
||||
beq .2
|
||||
|
||||
jsr DRAW.YABMAtDXDY
|
||||
|
||||
.2 lda DX
|
||||
clc
|
||||
adc IY Icon reserved W
|
||||
ldy #S.MENU.tOffset
|
||||
adc (ZPPtr1),y
|
||||
sta DX
|
||||
|
||||
lda DX+1
|
||||
adc #0
|
||||
sta DX+1
|
||||
bcc .21
|
||||
|
||||
jsr MENU.GetText
|
||||
inc DX+1
|
||||
|
||||
.21 jsr MENU.GetText
|
||||
|
||||
ldx hSYSFON
|
||||
jsr DRAW.YATextAtDXDY
|
||||
|
||||
lda DX
|
||||
sec
|
||||
adc IE
|
||||
ldy #S.MENU.tOffset
|
||||
adc (ZPPtr1),y
|
||||
sta DX
|
||||
lda DX+1
|
||||
adc IE+1
|
||||
iny
|
||||
adc (ZPPtr1),y
|
||||
sta DX+1
|
||||
|
||||
jsr MENU.GetKeyString
|
||||
@ -531,17 +616,24 @@ MENU.Show.Item ldy #S.MITEM.F
|
||||
|
||||
lda DX
|
||||
sec
|
||||
adc INE
|
||||
ldy #S.MENU.rOffset
|
||||
adc (ZPPtr1),y
|
||||
sta DX
|
||||
lda DX+1
|
||||
adc IE+1
|
||||
sta DX+1
|
||||
iny
|
||||
adc (ZPPtr1),y
|
||||
sta DX+1
|
||||
|
||||
ldx #BM.ID.RIGHT
|
||||
>LDYA L.BMs,x
|
||||
jsr DRAW.YABMAtDXDY
|
||||
|
||||
.8 clc
|
||||
.8 lda DY
|
||||
bne .80
|
||||
dec DY+1
|
||||
|
||||
.80 dec DY
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
MENU.GetIcon ldy #S.MITEM.pICON+1
|
||||
@ -586,10 +678,8 @@ MENU.GetKeyString
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
MENU.Save jsr CB.ClearCache
|
||||
|
||||
lda #S.CB.CMD.GETRECTBUFSIZE
|
||||
sta CB.Cache+S.CB.CMD
|
||||
MENU.Save lda #S.CB.CMD.GETRECTBUFSIZE
|
||||
jsr CB.InitCacheA
|
||||
|
||||
ldy #S.OBJ.X1
|
||||
ldx #0
|
||||
@ -641,7 +731,12 @@ MENU.Destroy ldx MENU.Stack.Top
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPMENUPtr
|
||||
|
||||
jsr CB.ClearCache
|
||||
bit CUR.bVisible
|
||||
bpl .3
|
||||
|
||||
jsr HideCursor.I
|
||||
|
||||
.3 jsr CB.ClearCache
|
||||
|
||||
lda #S.CB.CMD.BITBLT
|
||||
sta CB.Cache+S.CB.CMD
|
||||
@ -682,10 +777,100 @@ MENU.Destroy ldx MENU.Stack.Top
|
||||
lda MENU.Stack-1,x
|
||||
>SYSCALL2 FreeMem
|
||||
dec MENU.Stack.Top
|
||||
|
||||
bit CUR.bVisible
|
||||
bpl .8
|
||||
|
||||
jsr ShowCursor.I
|
||||
|
||||
.8 clc
|
||||
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
|
||||
SAVE usr/src/lib/libgui.s.menu
|
||||
LOAD usr/src/lib/libgui.s
|
||||
|
@ -1,8 +1,7 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
MOU.Init
|
||||
.1 >PUSHBI 0
|
||||
MOU.Init >PUSHBI 0
|
||||
>LDYA L.DEVNAME.MOUSE
|
||||
>SYSCALL2 open
|
||||
bcc .2
|
||||
@ -10,8 +9,9 @@ MOU.Init
|
||||
inc DEVNAME.MOUSE+8
|
||||
lda DEVNAME.MOUSE+8
|
||||
cmp #'8'
|
||||
bne .1
|
||||
bne MOU.Init
|
||||
|
||||
* sec
|
||||
rts
|
||||
|
||||
.2 sta hDevMouse
|
||||
@ -66,7 +66,7 @@ MOU.ReadMouse >PULLW ZPPtr1
|
||||
bne .9 no, exit....
|
||||
|
||||
lda hDevMouse
|
||||
beq .9
|
||||
beq .99 CS
|
||||
|
||||
>PUSHA
|
||||
>PUSHBI IOCTL.READ
|
||||
@ -86,42 +86,30 @@ MOU.ReadMouse >PULLW ZPPtr1
|
||||
bit #S.MOUSE.S.MOVE
|
||||
beq .8
|
||||
|
||||
.2 ldx MENU.Stack.Top
|
||||
beq .3
|
||||
|
||||
lda MENU.Stack-1,x
|
||||
jsr MOU.CheckOverMenu
|
||||
bcc .8
|
||||
|
||||
jsr MENU.Destroy
|
||||
|
||||
bra .2
|
||||
|
||||
.9 sec
|
||||
.99 rts
|
||||
|
||||
.3 jsr MOU.CheckOverWND
|
||||
jsr MOU.CheckOverSysBut
|
||||
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
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
MOU.CheckOverMenu
|
||||
.1 ldx MENU.Stack.Top
|
||||
beq .9
|
||||
|
||||
lda MENU.Stack-1,x
|
||||
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPPtr1
|
||||
>STYA ZPMENUPtr
|
||||
pha
|
||||
tya
|
||||
clc
|
||||
@ -130,17 +118,34 @@ MOU.CheckOverMenu
|
||||
pla
|
||||
adc /S.OBJ.X1
|
||||
jsr MOU.InRectYA
|
||||
bcc .8
|
||||
bcs .2
|
||||
|
||||
lda ZPPtr1
|
||||
jmp MENU.Enter
|
||||
|
||||
.2 lda ZPMENUPtr
|
||||
clc
|
||||
adc #S.MENU.pX1
|
||||
tay
|
||||
lda ZPPtr1+1
|
||||
lda ZPMENUPtr+1
|
||||
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
|
||||
ldx WND.Stack.Top
|
||||
|
@ -1,47 +1,56 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
SYSBAR.Enter ldy #S.MOUSE.X1
|
||||
SYSBUT.Enter ldy #S.MOUSE.X1
|
||||
lda (ZPPtr1),y
|
||||
cmp WND.SysBar.A2osX.X2
|
||||
cmp RECT.SysBut+S.RECT.X2
|
||||
iny
|
||||
|
||||
lda (ZPPtr1),y
|
||||
sbc WND.SysBar.A2osX.X2+1
|
||||
sbc RECT.SysBut+S.RECT.X2+1
|
||||
bcs .8
|
||||
|
||||
sec
|
||||
ror WND.SYSBAR.bA2osX
|
||||
ror WND.SYSBAR.bSysBut
|
||||
|
||||
jsr GetCBBuf
|
||||
bcs .9
|
||||
|
||||
jsr SYSBAR.Show.A2osX
|
||||
jsr SYSBAR.ShowSysBut
|
||||
|
||||
>LDYA L.WND.SysBar
|
||||
jsr DrawCBPtrToYA1
|
||||
|
||||
>PUSHW WND.SysBar+S.OBJ.X1
|
||||
>PUSHW WND.SysBar+S.OBJ.Y1
|
||||
>PUSHW L.RECT.SysBut
|
||||
>PUSHW L.RECT.SysBut Parent RECT
|
||||
>PUSHW L.MENU.Sys
|
||||
jsr MENU.New
|
||||
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
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SYSBAR.Leave bit WND.SYSBAR.bA2osX
|
||||
SYSBUT.Leave bit WND.SYSBAR.bSysBut
|
||||
bpl .8
|
||||
|
||||
stz WND.SYSBAR.bA2osX
|
||||
stz WND.SYSBAR.bSysBut
|
||||
|
||||
jsr GetCBBuf
|
||||
bcs .9
|
||||
|
||||
jsr SYSBAR.Show.A2osX
|
||||
jsr SYSBAR.ShowSysBut
|
||||
|
||||
>LDYA L.WND.SysBar
|
||||
|
||||
@ -53,9 +62,11 @@ SYSBAR.Leave bit WND.SYSBAR.bA2osX
|
||||
SYSBAR.Show jsr GetCBBuf
|
||||
bcs .9
|
||||
|
||||
jsr SYSBAR.Show.A2osX
|
||||
jsr SYSBAR.ShowSysBut
|
||||
|
||||
jsr SYSBAR.Show.W
|
||||
jsr SYSBAR.ShowSysWNDs
|
||||
|
||||
jsr SYSBAR.ShowSysClk
|
||||
|
||||
>LDYA L.WND.SysBar
|
||||
|
||||
@ -63,232 +74,115 @@ SYSBAR.Show jsr GetCBBuf
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SYSBAR.Show.A2osX
|
||||
SYSBAR.ShowSysBut
|
||||
lda #S.CB.CMD.FILLRECT
|
||||
jsr PutA2CBBuf
|
||||
jsr CB.InitCacheA
|
||||
|
||||
lda #S.CB.OP.SET
|
||||
jsr PutA2CBBuf
|
||||
sta CB.Cache+S.CB.OP
|
||||
|
||||
lda #S.CB.M.MONO
|
||||
jsr PutA2CBBuf
|
||||
sta CB.Cache+S.CB.M
|
||||
|
||||
lda PREFS.SYSBARCOLOR
|
||||
bit WND.SysBar.bA2osX
|
||||
bit WND.SysBar.bSysBut
|
||||
bpl .1
|
||||
|
||||
eor #$ff
|
||||
|
||||
.1 jsr PutA2CBBuf
|
||||
.1 sta CB.Cache+S.CB.COLOR
|
||||
|
||||
lda #0 X1
|
||||
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
|
||||
ldx #S.RECT-1
|
||||
|
||||
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
|
||||
adc #4
|
||||
sta DX
|
||||
lda WND.SysBar+S.OBJ.X1+1
|
||||
lda RECT.SysBut+S.RECT.X1+1
|
||||
adc #0
|
||||
sta DX+1
|
||||
|
||||
lda WND.SysBar+S.OBJ.Y1
|
||||
lda RECT.SysBut+S.RECT.Y1
|
||||
clc
|
||||
adc #1
|
||||
sta DY
|
||||
lda WND.SysBar+S.OBJ.Y1+1
|
||||
lda RECT.SysBut+S.RECT.Y1+1
|
||||
adc #0
|
||||
sta DY+1
|
||||
|
||||
>LDYA L.BM.Apple
|
||||
jsr DRAW.YABMAtDXDY
|
||||
|
||||
lda WND.SysBar+S.OBJ.X1
|
||||
lda RECT.SysBut+S.RECT.X1
|
||||
clc
|
||||
adc #21
|
||||
sta DX
|
||||
lda WND.SysBar+S.OBJ.X1+1
|
||||
lda RECT.SysBut+S.RECT.X1+1
|
||||
adc #0
|
||||
sta DX+1
|
||||
|
||||
inc DY
|
||||
bne .2
|
||||
bne .3
|
||||
|
||||
inc DY+1
|
||||
|
||||
.2 lda WND.SysBar.bA2osX
|
||||
.3 lda WND.SysBar.bSysBut
|
||||
asl
|
||||
|
||||
>LDYA L.WND.SysBar.2osX
|
||||
ldx hSYSFON
|
||||
jsr DRAW.YATextAtDXDY
|
||||
|
||||
rts
|
||||
jmp DRAW.YATextAtDXDY
|
||||
*--------------------------------------
|
||||
SYSBAR.Show.W lda #S.CB.CMD.FILLRECT
|
||||
jsr PutA2CBBuf
|
||||
SYSBAR.ShowSysWNDs
|
||||
lda #S.CB.CMD.FILLRECT
|
||||
jsr CB.InitCacheA
|
||||
|
||||
lda #S.CB.OP.SET
|
||||
jsr PutA2CBBuf
|
||||
sta CB.Cache+S.CB.OP
|
||||
|
||||
lda #S.CB.M.MONO
|
||||
jsr PutA2CBBuf
|
||||
sta CB.Cache+S.CB.M
|
||||
|
||||
lda PREFS.SYSBARCOLOR
|
||||
jsr PutA2CBBuf
|
||||
sta CB.Cache+S.CB.COLOR
|
||||
|
||||
lda WND.SysBar.W.X1
|
||||
jsr PutA2CBBuf
|
||||
lda WND.SysBar.W.X1+1
|
||||
jsr PutA2CBBuf
|
||||
ldx #S.RECT-1
|
||||
|
||||
lda WND.SysBar+S.OBJ.Y1
|
||||
jsr PutA2CBBuf
|
||||
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
|
||||
.1 lda RECT.SysWNDs,x
|
||||
sta CB.Cache+S.CB.X1,x
|
||||
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 (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
|
||||
bpl .1
|
||||
|
||||
jmp PutCBCache2CBBuf
|
||||
*--------------------------------------
|
||||
SYSBAR.ShowSysClk
|
||||
lda #S.CB.CMD.FILLRECT
|
||||
jsr CB.InitCacheA
|
||||
|
||||
lda #S.CB.OP.SET
|
||||
sta CB.Cache+S.CB.OP
|
||||
|
||||
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 DX,DY -> S.CB.X1,S.CB.Y1
|
||||
jsr PutA2CBBuf
|
||||
iny
|
||||
sta CB.Cache+S.CB.M
|
||||
|
||||
lda PREFS.SYSBARCOLOR
|
||||
sta CB.Cache+S.CB.COLOR
|
||||
|
||||
ldx #S.RECT-1
|
||||
|
||||
.1 lda RECT.SysClk,x
|
||||
sta CB.Cache+S.CB.X1,x
|
||||
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
|
||||
bpl .1
|
||||
|
||||
jsr PutA2CBBuf S.CB.SrcH
|
||||
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
|
||||
jmp PutCBCache2CBBuf
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/lib/libgui.s.sysbar
|
||||
|
@ -20,7 +20,9 @@ WND.Init >PUSHBI 0
|
||||
|
||||
.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
|
||||
>STYA WND.Screen+S.OBJ.W
|
||||
@ -36,7 +38,17 @@ WND.Setup stz WND.Stack.Top
|
||||
sec
|
||||
sbc WND.SysBar+S.OBJ.H
|
||||
sta WND.Desktop+S.OBJ.H
|
||||
|
||||
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
|
||||
>STYA WND.Desktop+S.OBJ.hPARENT
|
||||
@ -56,15 +68,36 @@ WND.Setup stz WND.Stack.Top
|
||||
lda CB.Cache+S.CB.SrcW
|
||||
clc
|
||||
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
|
||||
>STYA WND.SysBar.W.X2
|
||||
|
||||
lda #CUR.T.ARROW
|
||||
sta WND.Desktop+S.WND.hCUR
|
||||
sta WND.SysBar+S.WND.hCUR
|
||||
>LDYA L.WND.SysBar.Clk
|
||||
ldx hSYSFON
|
||||
jsr FON.GetTextSize
|
||||
|
||||
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
|
||||
|
||||
rts
|
||||
|
@ -86,17 +86,18 @@ ZPBMPtr .BS 2
|
||||
ZPRECTPtr .BS 2
|
||||
ZPPtr1 .BS 2
|
||||
|
||||
CLIP.Line.P1 .BS 1
|
||||
CLIP.Line.P2 .BS 1
|
||||
DX .BS 2
|
||||
DY .BS 2
|
||||
IY .BS 1
|
||||
|
||||
IE .BS 2
|
||||
D .BS 2
|
||||
INE .BS 2
|
||||
|
||||
D .BS 2
|
||||
Counter .BS 2
|
||||
|
||||
CLIP.Line.P1 .BS 1
|
||||
CLIP.Line.P2 .BS 1
|
||||
IY .BS 1
|
||||
|
||||
hCBBuf .BS 1
|
||||
ZPCBBufPtr .BS 2
|
||||
|
||||
@ -149,10 +150,12 @@ 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.WND.SysBar.Clk .DA WND.SysBar.Clk
|
||||
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.Settings .DA MENU.Sys.Settings
|
||||
*--------------------------------------
|
||||
L.BMs .EQ *-2
|
||||
L.BM.Apple .DA BM.Apple
|
||||
@ -227,11 +230,13 @@ LIB.UNLOAD dec LibCount
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CB.InitCacheA sta CB.Cache
|
||||
*--------------------------------------
|
||||
CB.ClearCache ldx #S.CB-1
|
||||
|
||||
.1 stz CB.Cache,x
|
||||
dex
|
||||
bpl .1
|
||||
bne .1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
@ -428,12 +433,9 @@ WND.Desktop .DA #S.OBJ.T.WND
|
||||
*--------------------------------------
|
||||
WND.SysBar .DA #S.OBJ.T.WND
|
||||
.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.Clk .AZ "00:00"
|
||||
WND.SysBar.bSysBut .BS 1
|
||||
*--------------------------------------
|
||||
RECT.SysBut .BS S.RECT
|
||||
*--------------------------------------
|
||||
@ -441,6 +443,7 @@ RECT.SysWNDs .BS S.RECT
|
||||
*--------------------------------------
|
||||
RECT.SysClk .BS S.RECT
|
||||
*--------------------------------------
|
||||
hSysMenu .BS 1
|
||||
MENU.Sys
|
||||
.1 .DA #.2-* next
|
||||
.DA #S.MITEM.F.ITEM F
|
||||
@ -460,7 +463,7 @@ MENU.Sys
|
||||
.3 .DA #.4-* next
|
||||
.DA #S.MITEM.F.SUBMENU F
|
||||
.DA #0 S
|
||||
.DA #0 ID
|
||||
.DA #4 ID
|
||||
.DA 0 pICON
|
||||
.DA 0 pMENU
|
||||
.DA #0
|
||||
@ -469,7 +472,7 @@ MENU.Sys
|
||||
.4 .DA #.5-* next
|
||||
.DA #S.MITEM.F.SUBMENU F
|
||||
.DA #0 S
|
||||
.DA #0 ID
|
||||
.DA #6 ID
|
||||
.DA 0 pICON
|
||||
.DA 0 pMENU
|
||||
.DA #0 KEYSTR
|
||||
@ -500,15 +503,40 @@ MENU.Sys
|
||||
.77 .AZ "Ctrl-R"
|
||||
.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.bSYSBARTOP .DA #0
|
||||
PREFS.MBARXMARGIN .DA #5
|
||||
PREFS.MENUCOLOR .DA #C.WHITE
|
||||
PREFS.SYSBARCOLOR .DA #C.WHITE
|
||||
PREFS.MBARXMARGIN .DA #5
|
||||
PREFS.BORDERCOLOR .DA #C.BLACK
|
||||
PREFS.TBARCOLORA .DA #C16.D.BLUE
|
||||
PREFS.TBARCOLORI .DA #C16.L.BLUE
|
||||
PREFS.TBARCOLORA .DA #C16.L.BLUE
|
||||
PREFS.TBARCOLORI .DA #C16.AQUA
|
||||
PREFS.MBARCOLOR .DA #C.WHITE
|
||||
PREFS.SBARCOLOR .DA #C.WHITE
|
||||
PREFS.DESKTOPCOLOR .DA #C16.D.BLUE
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/lib/libgui.s
|
||||
|
Loading…
x
Reference in New Issue
Block a user