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.S.ACTIVE .EQ %00000100
S.WND.S.MAX .EQ %00001000
S.WND.S.MIN .EQ %00010000
S.WND.S.MAXIMIZED .EQ %00001000
S.WND.S.MINIMIZED .EQ %00010000
*
S.WND.MinW .EQ S.OBJ
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.InnerW .EQ S.OBJ+18
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.MENUs...

View File

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

View File

@ -24,19 +24,45 @@ CLIP.Point
clc
rts
*--------------------------------------
CLIP.HLine
CLIP.HLine >LDYA CB.Cache+S.CB.Y1
>SCMPYA OBJ.Cache+S.OBJ.Y2
bpl .9
>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
rts
.9 sec
rts
*--------------------------------------
CLIP.VLine
CLIP.VLine >LDYA CB.Cache+S.CB.X1
>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
sec
rts
*--------------------------------------
* OBJ.Cache = Target Context
* CB.Cache = Src Control Block
.9 sec
rts
*--------------------------------------
CLIP.Rect jsr CB.Cache.Overlap
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.SysBar+S.WND.hCUR
stz WND.Stack.Top
rts
*--------------------------------------
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
*--------------------------------------
WND.Create >LDYAI S.WND
WND.Create ldy WND.Stack.Top
cpy #WND.MAX
bcs .90
>LDYAI S.WND
>SYSCALL2 getmem
bcs .9
@ -129,9 +135,14 @@ WND.Create >LDYAI S.WND
sta (ZPPtr1),y
txa ID
ldy WND.Stack.Top
sta WND.Stack
inc WND.Stack.Top
* clc
rts
.90 lda #E.OOH
.9 >RET 9
*--------------------------------------
* hWND8, Prop8, Value16
@ -190,40 +201,33 @@ WND.Show >SYSCALL2 GetMemPtr
stz Counter+1 Y
ldy #S.OBJ.F
lda (ZPPtr1),y
and #S.WND.F.RESIZE+S.WND.F.BORDER
beq .10
beq .1
inc Counter 1 pixel L
inc Counter 1 pixel R
inc Counter+1 1 top
inc Counter+1 1 bottom
lda #S.CB.CMD.HLINE
jsr PutCBBuf
lda #S.CB.OP.SET
jsr PutCBBuf
lda #S.CB.M.MONO
jsr PutCBBuf
lda PREFS.BORDERCOLOR
jsr PutCBBuf
jsr WND.PaintBorders
ldy #S.OBJ.X1
.1 lda (ZPPtr1),y
jsr PutCBBuf
iny
cpy #S.OBJ.Y2+2
bne .1
.10
.1 ldy #S.WND.TITLE+1
lda (ZPPtr1),y
beq .77
lda Counter+1
clc
adc SYSFON.H
inc
inc
sta Counter+1
jsr WND.PaintTitle
bcs .9
lda #0
.77 lda #0
jsr PutCBBuf
>LDYA L.WND.Screen
@ -243,6 +247,113 @@ WND.Paint >STYA ZPPtr1
clc
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
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
sta hWND
>PUSHA
>PUSHBI S.WND.TITLE
>PUSHW L.WND.Title
>LIBCALL hLIBGUI,LIBGUI.WND.SetProp
* >PUSHA
* >PUSHBI S.WND.TITLE
* >PUSHW L.WND.Title
* >LIBCALL hLIBGUI,LIBGUI.WND.SetProp
>LIBCALL hLIBGUI,LIBGUI.HideCursor
lda hWND
>LIBCALL hLIBGUI,LIBGUI.WND.Show A = hWND
>LIBCALL hLIBGUI,LIBGUI.ShowCursor
clc
.9 rts
*--------------------------------------