mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94
This commit is contained in:
parent
46f6a6bf09
commit
b69b58ea96
Binary file not shown.
|
@ -234,19 +234,7 @@ BITBLT.2 ldy #S.BM-1
|
|||
inc BLT.BMMaskPtr+1
|
||||
|
||||
.4 ldx BLT.ScrBitOfs
|
||||
beq BITBLT.LOOP0
|
||||
|
||||
ldy Shift.L.LO-1,x X = 1->6
|
||||
sty ZPScrShiftPtr
|
||||
ldy Shift.L.HI-1,x X = 1->6
|
||||
sty ZPScrShiftPtr+1
|
||||
lda Shift7BitsCol1,x get #%00001111, BM bits that go in Col1
|
||||
sta BITBLT.LOOPx.2+1
|
||||
sta BITBLT.LOOPx.6+1
|
||||
lda Shift7BitsCol2,x get #%01110000, BM bits that go in Col2
|
||||
sta BITBLT.LOOPx.3+1
|
||||
sta BITBLT.LOOPx.7+1
|
||||
jmp BITBLT.LOOPx
|
||||
bne BITBLT.LOOPx
|
||||
|
||||
*------------ Shift 0
|
||||
|
||||
|
@ -313,14 +301,25 @@ BITBLT.LOOP0 lda CB.Cache+S.CB.OP
|
|||
|
||||
inc BLT.BMDataPtr+1
|
||||
|
||||
.5 jmp BITBLT.LOOP0
|
||||
.5 bra BITBLT.LOOP0
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
BITBLT.LOOPx ldy Shift.L.LO-1,x X = 1->6
|
||||
sty ZPScrShiftPtr
|
||||
ldy Shift.L.HI-1,x X = 1->6
|
||||
sty ZPScrShiftPtr+1
|
||||
lda Shift7BitsCol1,x get #%00001111, BM bits that go in Col1
|
||||
sta BITBLT.LOOPx.2+1
|
||||
sta BITBLT.LOOPx.6+1
|
||||
lda Shift7BitsCol2,x get #%01110000, BM bits that go in Col2
|
||||
sta BITBLT.LOOPx.3+1
|
||||
sta BITBLT.LOOPx.7+1
|
||||
|
||||
*------------ Shift 1->6 Comment : SCRBitOfs=X=3
|
||||
|
||||
BITBLT.LOOPx lda CB.Cache+S.CB.OP X = BLT.ScrBitOfs
|
||||
BITBLT.LOOPx.0 lda CB.Cache+S.CB.OP X = BLT.ScrBitOfs
|
||||
bit #S.CB.OP.MASK
|
||||
beq BITBLT.LOOPx.4
|
||||
|
||||
|
@ -405,7 +404,7 @@ BITBLT.LOOPx.7 and #$ff SELF MODIFIED : #%01110000 get only col2 bites
|
|||
|
||||
inc BLT.BMDataPtr+1
|
||||
|
||||
.2 jmp BITBLT.LOOPx
|
||||
.2 jmp BITBLT.LOOPx.0
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
|
|
@ -138,18 +138,22 @@ 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.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.MENU.MITEMS .EQ S.OBJ
|
||||
S.MENU.hSAVEBUF .EQ S.OBJ+2
|
||||
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 .EQ S.OBJ+4
|
||||
S.MENU .EQ S.OBJ+12
|
||||
*--------------------------------------
|
||||
S.MITEM.NEXT .EQ 0
|
||||
S.MITEM.F .EQ 1
|
||||
|
|
|
@ -89,7 +89,7 @@ MENU.MBarInit >STYA ZPMENUPtr
|
|||
.80 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
* MENU.New(int X, int Y, *MITEM mitems)
|
||||
* MENU.New(int X, int Y, *S.RECT parent *S.MITEM mitems)
|
||||
*--------------------------------------
|
||||
MENU.New ldy MENU.Stack.Top
|
||||
cpy #MENU.MAX
|
||||
|
@ -119,6 +119,8 @@ MENU.New ldy MENU.Stack.Top
|
|||
iny
|
||||
sta (ZPMENUPtr),y
|
||||
|
||||
>PULLW ZPPtr1
|
||||
|
||||
>PULLA
|
||||
ldy #S.OBJ.Y1
|
||||
sta (ZPMENUPtr),y
|
||||
|
@ -132,6 +134,21 @@ MENU.New ldy MENU.Stack.Top
|
|||
>PULLA
|
||||
iny
|
||||
sta (ZPMENUPtr),y
|
||||
|
||||
lda ZPMENUPtr
|
||||
clc
|
||||
adc #S.MENU.pX1
|
||||
sta ZPMENUPtr
|
||||
bcc .2
|
||||
|
||||
inc ZPMENUPtr+1
|
||||
|
||||
.2 ldy #S.RECT-1
|
||||
|
||||
.3 lda (ZPPtr1),y
|
||||
sta (ZPMENUPtr),y
|
||||
dey
|
||||
bpl .3
|
||||
|
||||
txa hMenu
|
||||
|
||||
|
@ -144,7 +161,7 @@ MENU.New ldy MENU.Stack.Top
|
|||
|
||||
.90 lda #E.OOH
|
||||
sec
|
||||
.9 >POP 6
|
||||
.9 >POP 10
|
||||
MENU.New.RTS rts
|
||||
* ----------------------------------------------
|
||||
* |Icon ChkMrk "Menu Item" KEYMOD1-KEYMOD2-KEY>|
|
||||
|
@ -354,54 +371,6 @@ MENU.Show.GetW ldy #S.MITEM.F
|
|||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
MENU.Save jsr CB.ClearCache
|
||||
|
||||
lda #S.CB.CMD.GETRECTBUFSIZE
|
||||
sta CB.Cache+S.CB.CMD
|
||||
|
||||
ldy #S.OBJ.X1
|
||||
ldx #0
|
||||
|
||||
.1 lda (ZPMENUPtr),y
|
||||
sta CB.Cache+S.CB.X1,x
|
||||
iny
|
||||
inx
|
||||
cpx #8 X1,Y1,X2,Y2
|
||||
bne .1
|
||||
|
||||
jsr GFXWrite.CB
|
||||
|
||||
>SYSCALL NewStkObj
|
||||
bcs .9
|
||||
|
||||
stx CB.Cache+S.CB.DstPtr
|
||||
|
||||
txa
|
||||
ldy #S.MENU.hSAVEBUF
|
||||
sta (ZPMENUPtr),y
|
||||
|
||||
lda #S.CB.CMD.BITBLT
|
||||
sta CB.Cache+S.CB.CMD
|
||||
|
||||
lda #S.CB.OP.SAVE
|
||||
sta CB.Cache+S.CB.OP
|
||||
|
||||
ldy #S.OBJ.W
|
||||
ldx #0
|
||||
|
||||
.2 lda (ZPMENUPtr),y
|
||||
sta CB.Cache+S.CB.SrcW,x
|
||||
iny
|
||||
inx
|
||||
cpx #4 W,H
|
||||
bne .2
|
||||
|
||||
jsr GFXWrite.CB
|
||||
|
||||
clc
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
MENU.Show.Borders
|
||||
lda #S.CB.CMD.FILLRECT
|
||||
jsr PutA2CBBuf
|
||||
|
@ -602,9 +571,104 @@ MENU.GetKeyString
|
|||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
MENU.Destroy
|
||||
MENU.Save jsr CB.ClearCache
|
||||
|
||||
lda #S.CB.CMD.GETRECTBUFSIZE
|
||||
sta CB.Cache+S.CB.CMD
|
||||
|
||||
ldy #S.OBJ.X1
|
||||
ldx #0
|
||||
|
||||
.1 lda (ZPMENUPtr),y
|
||||
sta CB.Cache+S.CB.X1,x
|
||||
iny
|
||||
inx
|
||||
cpx #8 X1,Y1,X2,Y2
|
||||
bne .1
|
||||
|
||||
jsr GFXWrite.CB
|
||||
|
||||
>SYSCALL NewStkObj
|
||||
bcs .9
|
||||
|
||||
stx CB.Cache+S.CB.DstPtr
|
||||
|
||||
txa
|
||||
ldy #S.MENU.hSAVEBUF
|
||||
sta (ZPMENUPtr),y
|
||||
|
||||
lda #S.CB.CMD.BITBLT
|
||||
sta CB.Cache+S.CB.CMD
|
||||
|
||||
lda #S.CB.OP.SAVE
|
||||
sta CB.Cache+S.CB.OP
|
||||
|
||||
ldy #S.OBJ.W
|
||||
ldx #0
|
||||
|
||||
.2 lda (ZPMENUPtr),y
|
||||
sta CB.Cache+S.CB.SrcW,x
|
||||
iny
|
||||
inx
|
||||
cpx #4 W,H
|
||||
bne .2
|
||||
|
||||
jsr GFXWrite.CB
|
||||
|
||||
clc
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
MENU.Destroy ldx MENU.Stack.Top
|
||||
beq .8
|
||||
|
||||
lda MENU.Stack-1,x
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPMENUPtr
|
||||
|
||||
jsr CB.ClearCache
|
||||
|
||||
lda #S.CB.CMD.BITBLT
|
||||
sta CB.Cache+S.CB.CMD
|
||||
|
||||
lda #S.CB.OP.RESTORE
|
||||
sta CB.Cache+S.CB.OP
|
||||
|
||||
ldy #S.OBJ.X1
|
||||
ldx #0
|
||||
|
||||
.1 lda (ZPMENUPtr),y
|
||||
sta CB.Cache+S.CB.X1,x
|
||||
iny
|
||||
inx
|
||||
cpx #8 X1,Y1,X2,Y2
|
||||
bne .1
|
||||
|
||||
ldy #S.OBJ.W
|
||||
ldx #0
|
||||
|
||||
.2 lda (ZPMENUPtr),y
|
||||
sta CB.Cache+S.CB.SrcW,x
|
||||
iny
|
||||
inx
|
||||
cpx #4 W,H
|
||||
bne .2
|
||||
|
||||
ldy #S.MENU.hSAVEBUF
|
||||
lda (ZPMENUPtr),y
|
||||
sta CB.Cache+S.CB.DstPtr
|
||||
|
||||
jsr GFXWrite.CB
|
||||
|
||||
lda CB.Cache+S.CB.DstPtr
|
||||
>SYSCALL2 FreeStkObj
|
||||
|
||||
ldx MENU.Stack.Top
|
||||
lda MENU.Stack-1,x
|
||||
>SYSCALL2 FreeMem
|
||||
dec MENU.Stack.Top
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
|
|
|
@ -79,15 +79,27 @@ MOU.ReadMouse >PULLW ZPPtr1
|
|||
bit #S.MOUSE.S.MOVE
|
||||
beq .8
|
||||
|
||||
ldx WND.Stack.Top
|
||||
beq .2
|
||||
.1 ldx MENU.Stack.Top
|
||||
beq .3
|
||||
|
||||
lda MENU.Stack-1,x
|
||||
jsr MOU.InObjA
|
||||
bcc .8
|
||||
|
||||
jsr MENU.Destroy
|
||||
|
||||
bra .1
|
||||
|
||||
|
||||
.3 ldx WND.Stack.Top
|
||||
beq .4
|
||||
|
||||
* lda WND.Stack-1,x
|
||||
* jsr MOU.InObjA
|
||||
|
||||
|
||||
|
||||
.2 lda WND.SysBar+S.OBJ.Y1
|
||||
.4 lda WND.SysBar+S.OBJ.Y1
|
||||
|
||||
ldy #S.MOUSE.Y1
|
||||
cmp (ZPPtr1),y
|
||||
|
@ -139,6 +151,11 @@ MOU.InObjyA jsr OBJ.GetInCache
|
|||
iny
|
||||
lda (ZPPtr1),y
|
||||
cmp OBJ.Cache+S.OBJ.Y2+1
|
||||
bcc .99
|
||||
|
||||
lda OBJ.Cache+
|
||||
|
||||
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
|
|
|
@ -23,6 +23,7 @@ SYSBAR.Enter ldy #S.MOUSE.X1
|
|||
|
||||
>PUSHW WND.SysBar+S.OBJ.X1
|
||||
>PUSHW WND.SysBar+S.OBJ.Y1
|
||||
>PUSHW L.RECT.SysBut
|
||||
>PUSHW L.MENU.Sys
|
||||
jsr MENU.New
|
||||
bcs .9
|
||||
|
|
|
@ -147,6 +147,9 @@ 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.RECT.SysBut .DA RECT.SysBut
|
||||
L.RECT.SysWNDs .DA RECT.SysWNDs
|
||||
L.RECT.SysClk .DA RECT.SysClk
|
||||
L.MENU.Sys .DA MENU.Sys
|
||||
*--------------------------------------
|
||||
L.BMs .EQ *-2
|
||||
|
@ -426,6 +429,12 @@ WND.SysBar.Time.X1 .BS 2
|
|||
WND.SysBar.bA2osX .BS 1
|
||||
WND.SysBar.2osX .AZ "2osX"
|
||||
*--------------------------------------
|
||||
RECT.SysBut .BS S.RECT
|
||||
*--------------------------------------
|
||||
RECT.SysWNDs .BS S.RECT
|
||||
*--------------------------------------
|
||||
RECT.SysClk .BS S.RECT
|
||||
*--------------------------------------
|
||||
MENU.Sys
|
||||
.1 .DA #.2-* next
|
||||
.DA #S.MITEM.F.ITEM F
|
||||
|
|
Loading…
Reference in New Issue