Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-10-13 17:54:55 +02:00
parent da80a0ab54
commit 46f6a6bf09
8 changed files with 152 additions and 118 deletions

Binary file not shown.

View File

@ -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
@ -208,29 +210,26 @@ 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
.60 lda yDir
sta CB.LOGO+S.CB.Y1
cmp #151
bne .1
.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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
.9 >POP 6
.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
@ -354,20 +361,22 @@ MENU.Save jsr CB.ClearCache
ldy #S.OBJ.X1
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
@ -376,20 +385,20 @@ MENU.Save jsr CB.ClearCache
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
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.KEYSTR
lda (ZPPtr1),y
beq .8
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 .7
sta KEYSTRING,x
inx
clc
adc ZPPtr1
tay
lda ZPPtr1+1
adc #0 !0
.7 stz KEYSTRING,x
txa
rts
.8 rts
*--------------------------------------
MENU.Destroy

View File

@ -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
*--------------------------------------

View File

@ -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,58 +426,64 @@ 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
.DA #0 S
.DA #0 ID
.DA 0 pICON
.DA 0 pMENU
.AZ "Settings"
.DA #0
.AZ "Programs"
.4 .DA #.5-* next
.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
.5 .DA #.6-* next
.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