mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94
This commit is contained in:
parent
da80a0ab54
commit
46f6a6bf09
Binary file not shown.
|
@ -135,16 +135,18 @@ CS.RUN jsr GFX.Open
|
|||
|
||||
lda #0
|
||||
sec
|
||||
.9 rts
|
||||
.9
|
||||
CS.RUN.RTS rts
|
||||
*--------------------------------------
|
||||
CS.RUN.LOGO.SHOW
|
||||
lda #S.CB.CMD.GETRECTBUFSIZE
|
||||
sta CB.LOGO+S.CB.CMD
|
||||
* lda #S.CB.CMD.GETRECTBUFSIZE
|
||||
* sta CB.LOGO+S.CB.CMD
|
||||
|
||||
>LDYA L.CB.LOGO
|
||||
jsr GFX.Write.YA
|
||||
|
||||
>SYSCALL NewStkObj
|
||||
bcs CS.RUN.RTS
|
||||
stx CB.LOGO+S.CB.DstPtr
|
||||
|
||||
lda #S.CB.CMD.BITBLT
|
||||
|
@ -160,7 +162,7 @@ CS.RUN.LOGO.SHOW
|
|||
lda (pPS),y
|
||||
|
||||
>SYSCALL FEOF
|
||||
bcs .99
|
||||
bcs CS.RUN.RTS
|
||||
tay
|
||||
beq .80
|
||||
|
||||
|
@ -171,7 +173,7 @@ CS.RUN.LOGO.SHOW
|
|||
|
||||
stz bVBL
|
||||
|
||||
lda #S.CB.OP.SET+S.CB.OP.COLOR+S.CB.OP.RESTORE
|
||||
lda #S.CB.OP.RESTORE
|
||||
sta CB.LOGO+S.CB.OP
|
||||
|
||||
>LDYA L.CB.LOGO
|
||||
|
@ -209,28 +211,25 @@ CS.RUN.LOGO.SHOW
|
|||
.5 sty CB.LOGO+S.CB.X1
|
||||
sta CB.LOGO+S.CB.X1+1
|
||||
|
||||
|
||||
.6 lda CB.LOGO+S.CB.Y1
|
||||
bit yDir
|
||||
bmi .8
|
||||
|
||||
inc
|
||||
cmp #152
|
||||
bne .7
|
||||
sta CB.LOGO+S.CB.Y1
|
||||
cmp #151
|
||||
bne .1
|
||||
|
||||
.60 lda yDir
|
||||
.7 lda yDir
|
||||
eor #$ff
|
||||
sta yDir
|
||||
bra .1
|
||||
|
||||
.7 sta CB.LOGO+S.CB.Y1
|
||||
bra .1
|
||||
jmp .1
|
||||
|
||||
.8 sec
|
||||
sbc #1
|
||||
bcc .60
|
||||
|
||||
sta CB.LOGO+S.CB.Y1
|
||||
beq .7
|
||||
|
||||
jmp .1
|
||||
|
||||
.80 >SYSCALL GetChar
|
||||
|
@ -238,8 +237,7 @@ CS.RUN.LOGO.SHOW
|
|||
lda CB.LOGO+S.CB.DstPtr
|
||||
>SYSCALL FreeStkObj
|
||||
|
||||
|
||||
.99 rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT lda (pEvent)
|
||||
bpl .9
|
||||
|
@ -468,14 +466,14 @@ BM.Apple.AND .HS FFF0
|
|||
.HS 0000
|
||||
.HS 0FF0
|
||||
*--------------------------------------
|
||||
CB.LOGO .DA #S.CB.CMD.BITBLT
|
||||
CB.LOGO .DA #S.CB.CMD.GETRECTBUFSIZE
|
||||
.DA #S.CB.OP.SET+S.CB.OP.COLOR+S.CB.OP.SAVE
|
||||
.DA #S.CB.M.C16
|
||||
.DA #0
|
||||
.DA 200 X1
|
||||
.DA 50 Y1
|
||||
.DA 200+320 X2 For GETRECTBUFSIZE
|
||||
.DA 50+40 XZ For GETRECTBUFSIZE
|
||||
.DA 200+319 X2 For GETRECTBUFSIZE
|
||||
.DA 50+39 Y2 For GETRECTBUFSIZE
|
||||
.DA 0 SrcX
|
||||
.DA 0 SrcY
|
||||
.DA 320 SrcW
|
||||
|
|
|
@ -87,7 +87,10 @@ BITBLT >LDYA CB.Cache+S.CB.X1
|
|||
BITBLT.0 bit #S.CB.OP.SAVE
|
||||
beq BITBLT.1
|
||||
|
||||
ldy CB.Cache+S.CB.DstPtr
|
||||
and #$f
|
||||
bne .66
|
||||
|
||||
.66 ldy CB.Cache+S.CB.DstPtr
|
||||
lda CB.Cache+S.CB.DstPtr+1
|
||||
bne .1
|
||||
|
||||
|
|
|
@ -32,15 +32,23 @@ FILLRECT jsr HLINE
|
|||
* 18 : S.CB.DstPtr = Size in Bytes to save this RECT
|
||||
*--------------------------------------
|
||||
GETRECTBUFSIZE >LDYA CB.Cache+S.CB.X1
|
||||
|
||||
jsr DIVMOD7YA
|
||||
sta ZPTmpByte
|
||||
sta ZPTmpByte A = X1 div 7
|
||||
|
||||
>LDYA CB.Cache+S.CB.X2
|
||||
jsr DIVMOD7YA
|
||||
inc COL2 + 1
|
||||
inc A = (X2 mod 7) + 1
|
||||
sec
|
||||
sbc ZPTmpByte (COL2+1)-COL1
|
||||
tax
|
||||
>LDYA CB.Cache+S.CB.SrcH
|
||||
|
||||
lda CB.Cache+S.CB.Y2
|
||||
sec
|
||||
sbc CB.Cache+S.CB.Y1
|
||||
tay
|
||||
lda #0
|
||||
|
||||
jmp YAMultX
|
||||
*--------------------------------------
|
||||
MAN
|
||||
|
|
|
@ -167,8 +167,8 @@ S.MITEM.KEYMOD.CA .EQ 2
|
|||
S.MITEM.KEYMOD.OA .EQ 4
|
||||
S.MITEM.KEYMOD.CTRL .EQ 8
|
||||
S.MITEM.KEY .EQ 7
|
||||
|
||||
S.MITEM.TEXT .EQ 8 CSTR
|
||||
S.MITEM.KEYSTR .EQ 8
|
||||
S.MITEM.TEXT .EQ 9 CSTR
|
||||
* ...
|
||||
*--------------------------------------
|
||||
BM.ID.APPLE .EQ 2
|
||||
|
|
|
@ -91,7 +91,11 @@ MENU.MBarInit >STYA ZPMENUPtr
|
|||
*--------------------------------------
|
||||
* MENU.New(int X, int Y, *MITEM mitems)
|
||||
*--------------------------------------
|
||||
MENU.New >LDYAI S.MENU
|
||||
MENU.New ldy MENU.Stack.Top
|
||||
cpy #MENU.MAX
|
||||
bcs .90
|
||||
|
||||
>LDYAI S.MENU
|
||||
>SYSCALL2 getmem
|
||||
bcs .9
|
||||
|
||||
|
@ -131,13 +135,17 @@ MENU.New >LDYAI S.MENU
|
|||
|
||||
txa hMenu
|
||||
|
||||
ldx MENU.Stack.Top
|
||||
sta MENU.Stack,x
|
||||
inc MENU.Stack.Top
|
||||
|
||||
* clc
|
||||
rts
|
||||
|
||||
.90 lda #E.OOH
|
||||
sec
|
||||
.9 >POP 6
|
||||
|
||||
MENU.New.RTS rts
|
||||
*--------------------------------------
|
||||
* ----------------------------------------------
|
||||
* |Icon ChkMrk "Menu Item" KEYMOD1-KEYMOD2-KEY>|
|
||||
* ----------------------------------------------
|
||||
|
@ -188,7 +196,7 @@ MENU.Show >SYSCALL2 GetMemPtr
|
|||
inc ZPPtr1+1
|
||||
bra .1
|
||||
|
||||
.3 lda #12 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
|
||||
sta DX
|
||||
|
@ -335,7 +343,6 @@ MENU.Show.GetW ldy #S.MITEM.F
|
|||
.2 jsr MENU.GetKeyString
|
||||
beq .8
|
||||
|
||||
>LDYA L.KEYSTRING
|
||||
ldx hSYSFON
|
||||
jsr FON.GetTextSize
|
||||
|
||||
|
@ -356,18 +363,20 @@ MENU.Save jsr CB.ClearCache
|
|||
ldx #0
|
||||
|
||||
.1 lda (ZPMENUPtr),y
|
||||
sta CB.Cache+S.CB.X1
|
||||
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
|
||||
|
||||
|
@ -381,15 +390,15 @@ MENU.Save jsr CB.ClearCache
|
|||
ldx #0
|
||||
|
||||
.2 lda (ZPMENUPtr),y
|
||||
sta CB.Cache+S.CB.SrcW
|
||||
sta CB.Cache+S.CB.SrcW,x
|
||||
iny
|
||||
inx
|
||||
cpx #4 W,H
|
||||
bne .2
|
||||
>DEBUG
|
||||
|
||||
jsr GFXWrite.CB
|
||||
|
||||
* clc
|
||||
clc
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
|
@ -506,7 +515,7 @@ MENU.Show.Item ldy #S.MITEM.F
|
|||
|
||||
sec +1px Border
|
||||
|
||||
adc #5 TODO : Checked
|
||||
adc #MENU.LMargin TODO : Checked
|
||||
sta DX
|
||||
iny
|
||||
lda (ZPMENUPtr),y
|
||||
|
@ -532,9 +541,6 @@ MENU.Show.Item ldy #S.MITEM.F
|
|||
ldx hSYSFON
|
||||
jsr DRAW.YATextAtDXDY
|
||||
|
||||
jsr MENU.GetKeyString
|
||||
beq .3
|
||||
|
||||
lda DX
|
||||
sec
|
||||
adc IE
|
||||
|
@ -543,7 +549,9 @@ MENU.Show.Item ldy #S.MITEM.F
|
|||
adc IE+1
|
||||
sta DX+1
|
||||
|
||||
>LDYA L.KEYSTRING
|
||||
jsr MENU.GetKeyString
|
||||
beq .3
|
||||
|
||||
ldx hSYSFON
|
||||
jsr DRAW.YATextAtDXDY
|
||||
|
||||
|
@ -582,56 +590,17 @@ MENU.GetText lda #S.MITEM.TEXT
|
|||
rts
|
||||
*--------------------------------------
|
||||
MENU.GetKeyString
|
||||
ldx #0
|
||||
|
||||
ldy #S.MITEM.KEYMOD
|
||||
ldy #S.MITEM.KEYSTR
|
||||
lda (ZPPtr1),y
|
||||
beq .6
|
||||
beq .8
|
||||
|
||||
bit #S.MITEM.KEYMOD.CTRL
|
||||
beq .4
|
||||
clc
|
||||
adc ZPPtr1
|
||||
tay
|
||||
lda ZPPtr1+1
|
||||
adc #0 !0
|
||||
|
||||
.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 .7
|
||||
|
||||
sta KEYSTRING,x
|
||||
inx
|
||||
|
||||
.7 stz KEYSTRING,x
|
||||
|
||||
txa
|
||||
rts
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
MENU.Destroy
|
||||
|
||||
|
|
|
@ -79,22 +79,68 @@ MOU.ReadMouse >PULLW ZPPtr1
|
|||
bit #S.MOUSE.S.MOVE
|
||||
beq .8
|
||||
|
||||
lda WND.SysBar+S.OBJ.Y1
|
||||
ldx WND.Stack.Top
|
||||
beq .2
|
||||
|
||||
* lda WND.Stack-1,x
|
||||
* jsr MOU.InObjA
|
||||
|
||||
|
||||
|
||||
.2 lda WND.SysBar+S.OBJ.Y1
|
||||
|
||||
ldy #S.MOUSE.Y1
|
||||
cmp (ZPPtr1),y
|
||||
lda WND.SysBar+S.OBJ.Y1+1
|
||||
iny
|
||||
sbc (ZPPtr1),y
|
||||
bcs .1
|
||||
bcs .7
|
||||
|
||||
jmp SYSBAR.Enter
|
||||
|
||||
.1 jmp SYSBAR.Leave
|
||||
.7 jmp SYSBAR.Leave
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
MOU.InObjA >SYSCALL GetMemPtr
|
||||
MOU.InObjyA jsr OBJ.GetInCache
|
||||
|
||||
ldy #S.MOUSE.X1
|
||||
lda (ZPPtr1),y
|
||||
cmp OBJ.Cache+S.OBJ.X1
|
||||
iny
|
||||
lda (ZPPtr1),y
|
||||
cmp OBJ.Cache+S.OBJ.X1+1
|
||||
bcc .9
|
||||
|
||||
iny #S.MOUSE.Y1
|
||||
lda (ZPPtr1),y
|
||||
cmp OBJ.Cache+S.OBJ.Y1
|
||||
iny
|
||||
lda (ZPPtr1),y
|
||||
cmp OBJ.Cache+S.OBJ.Y1+1
|
||||
bcc .9
|
||||
|
||||
iny #S.MOUSE.X2
|
||||
lda (ZPPtr1),y
|
||||
cmp OBJ.Cache+S.OBJ.X2
|
||||
iny
|
||||
lda (ZPPtr1),y
|
||||
cmp OBJ.Cache+S.OBJ.X2+1
|
||||
bcs .99
|
||||
|
||||
iny #S.MOUSE.Y2
|
||||
lda (ZPPtr1),y
|
||||
cmp OBJ.Cache+S.OBJ.Y2
|
||||
iny
|
||||
lda (ZPPtr1),y
|
||||
cmp OBJ.Cache+S.OBJ.Y2+1
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -12,6 +12,9 @@ NEW
|
|||
.INB inc/libgui.i
|
||||
*--------------------------------------
|
||||
WND.MAX .EQ 64
|
||||
MENU.MAX .EQ 4
|
||||
MENU.LMargin .EQ 3
|
||||
MENU.RMargin .EQ 3
|
||||
*--------------------------------------
|
||||
.MA SWAP16
|
||||
lda ]1
|
||||
|
@ -135,7 +138,6 @@ 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
|
||||
|
@ -391,7 +393,6 @@ 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
|
||||
|
@ -404,6 +405,9 @@ CB.Buf .BS S.CB+1 +Ending 0
|
|||
CB.Cache .BS S.CB
|
||||
OBJ.Cache .BS S.OBJ
|
||||
*--------------------------------------
|
||||
MENU.Stack.Top .BS 1
|
||||
MENU.Stack .BS MENU.MAX
|
||||
*--------------------------------------
|
||||
WND.Stack.Top .BS 1
|
||||
WND.Stack .BS WND.MAX
|
||||
*--------------------------------------
|
||||
|
@ -422,27 +426,21 @@ 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
|
||||
MENU.Sys
|
||||
.1 .DA #.2-* next
|
||||
.DA #S.MITEM.F.ITEM F
|
||||
.DA #0 S
|
||||
.DA #2 ID
|
||||
.DA BM.ID.APPLE pICON
|
||||
.DA #S.MITEM.KEYMOD.CA+S.MITEM.KEYMOD.OA+S.MITEM.KEYMOD.CTRL
|
||||
.DA #S.MITEM.KEYMOD.CTRL+S.MITEM.KEYMOD.OA+S.MITEM.KEYMOD.CA
|
||||
.DA #'A'
|
||||
.DA #.11-.1
|
||||
.AZ "About..."
|
||||
|
||||
.1 .DA #.2-* next
|
||||
.DA #S.MITEM.F.SEP
|
||||
.11 .AS "Ctrl-"
|
||||
.DA #1,#'-',#2,#'-',#'A',#0
|
||||
|
||||
.2 .DA #.3-* next
|
||||
.DA #S.MITEM.F.SUBMENU F
|
||||
.DA #0 S
|
||||
.DA #0 ID
|
||||
.DA 0 pICON
|
||||
.DA 0 pMENU
|
||||
.AZ "Programs"
|
||||
.DA #S.MITEM.F.SEP
|
||||
|
||||
.3 .DA #.4-* next
|
||||
.DA #S.MITEM.F.SUBMENU F
|
||||
|
@ -450,30 +448,42 @@ MENU.Sys .DA #.1-* next
|
|||
.DA #0 ID
|
||||
.DA 0 pICON
|
||||
.DA 0 pMENU
|
||||
.AZ "Settings"
|
||||
.DA #0
|
||||
.AZ "Programs"
|
||||
|
||||
.4 .DA #.5-* next
|
||||
.DA #S.MITEM.F.SEP
|
||||
.DA #S.MITEM.F.SUBMENU F
|
||||
.DA #0 S
|
||||
.DA #0 ID
|
||||
.DA 0 pICON
|
||||
.DA 0 pMENU
|
||||
.DA #0 KEYSTR
|
||||
.AZ "Settings"
|
||||
|
||||
.5 .DA #.6-* next
|
||||
.DA #S.MITEM.F.SEP
|
||||
|
||||
.6 .DA #.7-* next
|
||||
.DA #S.MITEM.F.ITEM F
|
||||
.DA #0 S
|
||||
.DA #8 ID
|
||||
.DA 0 pICON
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0 KEYSTR
|
||||
.AZ "Search..."
|
||||
|
||||
.6 .DA #.7-* next
|
||||
.7 .DA #.8-* next
|
||||
.DA #S.MITEM.F.ITEM F
|
||||
.DA #0 S
|
||||
.DA #10 ID
|
||||
.DA 0 pICON
|
||||
.DA #S.MITEM.KEYMOD.OA
|
||||
.DA #S.MITEM.KEYMOD.CTRL+S.MITEM.KEYMOD.OA
|
||||
.DA #'R'
|
||||
.DA #.77-.7
|
||||
.AZ "Run..."
|
||||
|
||||
.7 .DA #0
|
||||
.77 .AZ "Ctrl-R"
|
||||
.8 .DA #0
|
||||
*--------------------------------------
|
||||
PREFS.BESTVIEWEDX .DA #$FC
|
||||
PREFS.MENUCOLOR .DA #C.WHITE
|
||||
|
|
Loading…
Reference in New Issue