Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-09-10 17:28:59 +02:00
parent 8c93153f0e
commit ed66719b5a
8 changed files with 182 additions and 35 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -88,8 +88,8 @@ S.WND.F.MODAL .EQ %01000000
S.WND.F.SYSMODAL .EQ %10000000 S.WND.F.SYSMODAL .EQ %10000000
* *
S.WND.S.ACTIVE .EQ %00000100 S.WND.S.ACTIVE .EQ %00000100
S.WND.S.MAX .EQ %00001000 S.WND.S.MAXIMIZED .EQ %00001000
S.WND.S.MIN .EQ %00010000 S.WND.S.MINIMIZED .EQ %00010000
* *
S.WND.MinW .EQ S.OBJ S.WND.MinW .EQ S.OBJ
S.WND.MinH .EQ S.OBJ+2 S.WND.MinH .EQ S.OBJ+2
@ -102,8 +102,12 @@ S.WND.STATUS .EQ S.OBJ+14
S.WND.ICON .EQ S.OBJ+16 S.WND.ICON .EQ S.OBJ+16
S.WND.InnerW .EQ S.OBJ+18 S.WND.InnerW .EQ S.OBJ+18
S.WND.InnerH .EQ S.OBJ+20 S.WND.InnerH .EQ S.OBJ+20
S.WND.DocW .EQ S.OBJ+22
S.WND.DocH .EQ S.OBJ+24
S.WND.DocX .EQ S.OBJ+26
S.WND.DocY .EQ S.OBJ+28
* *
S.WND .EQ S.OBJ+22 S.WND .EQ S.OBJ+30
*-------------------------------------- *--------------------------------------
S.MBAR.MENULIST .EQ S.OBJ S.MBAR.MENULIST .EQ S.OBJ
* ... S.MENUs... * ... S.MENUs...

View File

@ -1,7 +1,6 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
WND.TB.H .BS 1
WND.Stack.Top .BS 1 WND.Stack.Top .BS 1
WND.Stack .BS WND.MAX WND.Stack .BS WND.MAX
*-------------------------------------- *--------------------------------------

View File

@ -24,19 +24,45 @@ CLIP.Point
clc clc
rts rts
*-------------------------------------- *--------------------------------------
CLIP.HLine CLIP.HLine >LDYA CB.Cache+S.CB.Y1
clc >SCMPYA OBJ.Cache+S.OBJ.Y2
rts bpl .9
*--------------------------------------
CLIP.VLine >LDYA CB.Cache+S.CB.Y2
>SCMPYA OBJ.Cache+S.OBJ.Y1
bmi .9
>LDYA OBJ.Cache+S.OBJ.X1
>STYAIFGTR CB.Cache+S.CB.X1
>LDYA OBJ.Cache+S.OBJ.X2
>STYAIFLWR CB.Cache+S.CB.X2
clc clc
rts rts
sec .9 sec
rts rts
*-------------------------------------- *--------------------------------------
* OBJ.Cache = Target Context CLIP.VLine >LDYA CB.Cache+S.CB.X1
* CB.Cache = Src Control Block >SCMPYA OBJ.Cache+S.OBJ.X2
bpl .9
>LDYA CB.Cache+S.CB.X2
>SCMPYA OBJ.Cache+S.OBJ.X1
bmi .9
>LDYA OBJ.Cache+S.OBJ.Y1
>STYAIFGTR CB.Cache+S.CB.Y1
>LDYA OBJ.Cache+S.OBJ.Y2
>STYAIFLWR CB.Cache+S.CB.Y2
clc
rts
.9 sec
rts
*-------------------------------------- *--------------------------------------
CLIP.Rect jsr CB.Cache.Overlap CLIP.Rect jsr CB.Cache.Overlap
bcs .9 bcs .9

View File

@ -58,6 +58,8 @@ WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W
sta WND.Desktop+S.WND.hCUR sta WND.Desktop+S.WND.hCUR
sta WND.SysBar+S.WND.hCUR sta WND.SysBar+S.WND.hCUR
stz WND.Stack.Top
rts rts
*-------------------------------------- *--------------------------------------
WND.Quit lda WND.Screen+S.OBJ.hPARENT WND.Quit lda WND.Screen+S.OBJ.hPARENT
@ -74,7 +76,11 @@ WND.Quit lda WND.Screen+S.OBJ.hPARENT
*-------------------------------------- *--------------------------------------
* F8, X116, Y116, W16, H16 * F8, X116, Y116, W16, H16
*-------------------------------------- *--------------------------------------
WND.Create >LDYAI S.WND WND.Create ldy WND.Stack.Top
cpy #WND.MAX
bcs .90
>LDYAI S.WND
>SYSCALL2 getmem >SYSCALL2 getmem
bcs .9 bcs .9
@ -129,9 +135,14 @@ WND.Create >LDYAI S.WND
sta (ZPPtr1),y sta (ZPPtr1),y
txa ID txa ID
ldy WND.Stack.Top
sta WND.Stack
inc WND.Stack.Top
* clc * clc
rts rts
.90 lda #E.OOH
.9 >RET 9 .9 >RET 9
*-------------------------------------- *--------------------------------------
* hWND8, Prop8, Value16 * hWND8, Prop8, Value16
@ -190,40 +201,33 @@ WND.Show >SYSCALL2 GetMemPtr
stz Counter+1 Y stz Counter+1 Y
ldy #S.OBJ.F ldy #S.OBJ.F
lda (ZPPtr1),y lda (ZPPtr1),y
and #S.WND.F.RESIZE+S.WND.F.BORDER and #S.WND.F.RESIZE+S.WND.F.BORDER
beq .10 beq .1
inc Counter 1 pixel L inc Counter 1 pixel L
inc Counter 1 pixel R inc Counter 1 pixel R
inc Counter+1 1 top inc Counter+1 1 top
inc Counter+1 1 bottom inc Counter+1 1 bottom
lda #S.CB.CMD.HLINE jsr WND.PaintBorders
jsr PutCBBuf
lda #S.CB.OP.SET
jsr PutCBBuf
lda #S.CB.M.MONO
jsr PutCBBuf
lda PREFS.BORDERCOLOR
jsr PutCBBuf
ldy #S.OBJ.X1 .1 ldy #S.WND.TITLE+1
lda (ZPPtr1),y
beq .77
.1 lda (ZPPtr1),y lda Counter+1
jsr PutCBBuf clc
iny adc SYSFON.H
cpy #S.OBJ.Y2+2 inc
bne .1 inc
sta Counter+1
jsr WND.PaintTitle
bcs .9
.10 .77 lda #0
lda #0
jsr PutCBBuf jsr PutCBBuf
>LDYA L.WND.Screen >LDYA L.WND.Screen
@ -243,6 +247,113 @@ WND.Paint >STYA ZPPtr1
clc clc
rts rts
*-------------------------------------- *--------------------------------------
WND.PaintBorders
lda #S.CB.CMD.HLINE TOP
jsr WND.PaintBorders.H
ldy #S.OBJ.X1
.1 lda (ZPPtr1),y
jsr PutCBBuf
iny
cpy #S.OBJ.Y2+2
bne .1
lda #S.CB.CMD.VLINE LEFT
jsr WND.PaintBorders.H
ldy #S.OBJ.X1
.2 lda (ZPPtr1),y
jsr PutCBBuf
iny
cpy #S.OBJ.Y2+2
bne .2
lda #S.CB.CMD.VLINE RIGHT
jsr WND.PaintBorders.H
ldy #S.OBJ.X2
jsr WND.PaintPushWY
ldy #S.OBJ.Y1
jsr WND.PaintPushWY
ldy #S.OBJ.X2
jsr WND.PaintPushWY
ldy #S.OBJ.Y2
jsr WND.PaintPushWY
lda #S.CB.CMD.HLINE BOTTOM
jsr WND.PaintBorders.H
ldy #S.OBJ.X1
jsr WND.PaintPushWY
ldy #S.OBJ.Y2
jsr WND.PaintPushWY
ldy #S.OBJ.X2
jsr WND.PaintPushWY
ldy #S.OBJ.Y2
jsr WND.PaintPushWY
rts
WND.PaintBorders.H
jsr PutCBBuf
lda #S.CB.OP.SET
jsr PutCBBuf
lda #S.CB.M.MONO
jsr PutCBBuf
lda PREFS.BORDERCOLOR
jmp PutCBBuf
WND.PaintPushWY lda (ZPPtr1),y
jsr PutCBBuf
iny
lda (ZPPtr1),y
jsr PutCBBuf
rts
*--------------------------------------
WND.PaintTitle ldx #S.CB-1
.1 stz CB.Cache,x
dex
bpl .1
lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
sta CB.Cache+S.CB.CMD
lda #S.CB.OP.SET+S.CB.OP.INVERSE
sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO
sta CB.Cache+S.CB.M
lda hSYSFONB
sta CB.Cache+S.CB.hFont
ldy #S.WND.TITLE
lda (ZPPtr1),y
sta CB.Cache+S.CB.TxtPtr
iny
lda (ZPPtr1),y
sta CB.Cache+S.CB.TxtPtr+1
jsr GFXWrite.CB
bcs .9
ldx #0
.8 lda CB.Cache,x
jsr PutCBBuf
inx
cpx #S.CB
bne .8
clc
.9 rts
*--------------------------------------
WND.Close clc WND.Close clc
rts rts
*-------------------------------------- *--------------------------------------

View File

@ -119,14 +119,21 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F.
bcs .9 bcs .9
sta hWND sta hWND
>PUSHA
>PUSHBI S.WND.TITLE
>PUSHW L.WND.Title
>LIBCALL hLIBGUI,LIBGUI.WND.SetProp
* >PUSHA * >PUSHA
* >PUSHBI S.WND.TITLE * >PUSHBI S.WND.TITLE
* >PUSHW L.WND.Title * >PUSHW L.WND.Title
* >LIBCALL hLIBGUI,LIBGUI.WND.SetProp * >LIBCALL hLIBGUI,LIBGUI.WND.SetProp
>LIBCALL hLIBGUI,LIBGUI.HideCursor
lda hWND lda hWND
>LIBCALL hLIBGUI,LIBGUI.WND.Show A = hWND >LIBCALL hLIBGUI,LIBGUI.WND.Show A = hWND
>LIBCALL hLIBGUI,LIBGUI.ShowCursor
clc clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------