From 3a3d82f7e6618c735a39a45cf26e9ce18b71d8e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 2 Oct 2020 16:57:05 +0200 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes INC/LIBGUI.I.txt | 12 +++--- LIB/LIBGUI.S.CLIP.txt | 2 +- LIB/LIBGUI.S.CUR.txt | 8 ++-- LIB/LIBGUI.S.DRAW.txt | 78 +++++++++++++++++++++++++++------------ LIB/LIBGUI.S.WND.txt | 62 +++++++++++++++++-------------- LIB/LIBGUI.S.txt | 16 +++----- SBIN/GUI.S.txt | 16 +++++--- 8 files changed, 117 insertions(+), 77 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 898620c01b26d0759b1f97909e75ae44ee1ff272..f12cc162206b2491600872d94faa5753bc2939cc 100644 GIT binary patch delta 24413 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 delta 23927 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 KD84TJ^nU;e(^c94 diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index 65381233..66df94d5 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -7,7 +7,7 @@ LIBGUI.HideCursor .EQ 8 LIBGUI.ShowCursor .EQ 10 LIBGUI.UpdateCursor .EQ 12 LIBGUI.ReadMouse .EQ 14 -LIBGUI.GetScreenGC .EQ 16 +LIBGUI.DrawLine .EQ 16 LIBGUI.WND.New .EQ 18 LIBJUI.WND.Destroy .EQ 20 LIBGUI.WND.SetProp .EQ 22 @@ -123,10 +123,12 @@ S.WND.BGBM .EQ S.OBJ+14 S.WND.hCUR .EQ S.OBJ+16 S.WND.TitleX1 .EQ S.OBJ+18 S.WND.TitleX2 .EQ S.OBJ+20 -S.WND.TBAR.Y2 .EQ S.OBJ+22 -S.WND.MBAR.Y1 .EQ S.OBJ+22 -S.WND.MBAR.Y2 .EQ S.OBJ+24 -S.WND.SBAR.Y1 .EQ S.OBJ+26 +S.WND.TBarY2 .EQ S.OBJ+22 +S.WND.MBarY1 .EQ S.OBJ+22 +S.WND.MBarY2 .EQ S.OBJ+24 +S.WND.InnerY1 .EQ S.OBJ+24 +S.WND.InnerY2 .EQ S.OBJ+26 +S.WND.SBarY1 .EQ S.OBJ+26 S.WND.InnerW .EQ S.OBJ+28 S.WND.InnerH .EQ S.OBJ+30 S.WND.DocW .EQ S.OBJ+32 diff --git a/LIB/LIBGUI.S.CLIP.txt b/LIB/LIBGUI.S.CLIP.txt index 6f17159b..83515d6c 100644 --- a/LIB/LIBGUI.S.CLIP.txt +++ b/LIB/LIBGUI.S.CLIP.txt @@ -9,7 +9,7 @@ NEW * CC : CB.Cache clipped & visible * CS : CB.Cache invisible *-------------------------------------- -CLIP.YA jsr CB.Get Put CB in cache +CLIP.YA jsr CB.GetInCache CLIP.CB.Cache lda CB.Cache+S.CB.CMD and #$7F remove S.CB.CMD.OSD diff --git a/LIB/LIBGUI.S.CUR.txt b/LIB/LIBGUI.S.CUR.txt index add66913..27b3de24 100644 --- a/LIB/LIBGUI.S.CUR.txt +++ b/LIB/LIBGUI.S.CUR.txt @@ -112,19 +112,21 @@ ShowCursor lda CUR.bVisible HideCursor.I lda #S.CB.OP.RESTORE bra DrawCursor.I *-------------------------------------- -ShowCursor.I sta CUR.CB+S.CB.OP - ldx CUR.T +ShowCursor.I ldx CUR.T lda CUR.Pos+S.POINT.X sec sbc CUR.HotPoints,x sta CUR.CB+S.CB.X1 + lda CUR.Pos+S.POINT.X+1 sbc #0 sta CUR.CB+S.CB.X1+1 + lda CUR.Pos+S.POINT.Y sec sbc CUR.HotPoints+1,x sta CUR.CB+S.CB.Y1 + lda CUR.Pos+S.POINT.Y+1 sbc #0 sta CUR.CB+S.CB.Y1+1 @@ -134,7 +136,7 @@ ShowCursor.I sta CUR.CB+S.CB.OP DrawCursor.I sta CUR.CB+S.CB.OP >LDYA L.WND.Screen - jsr OBJ.Get + jsr OBJ.GetInCache >LDYA L.CUR.CB jsr CLIP.YA diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index f991f436..730fe093 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -1,38 +1,45 @@ NEW AUTO 3,1 *-------------------------------------- -DrawCBCacheToYA ldx L.CB.Cache +DrawCBBufToYA ldx L.CB.Buf stx ZPCBPtr - ldx L.CB.Cache+1 + ldx L.CB.Buf+1 stx ZPCBPtr+1 -DrawCBPtrToYA jsr OBJ.Get +DrawCBPtrToYA jsr OBJ.GetInCache + + bit CUR.bVisible + bpl .1 + + jsr HideCursor.I .1 lda (ZPCBPtr) beq .8 >LDYA ZPCBPtr - jsr CB.Get A = CB.CMD + jsr CB.GetInCache A = CB.CMD cmp #S.CB.CMD.DRAWTEXT2 - bne .2 + bne .6 lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD sta CB.Cache+S.CB.CMD jsr GFXWrite.CB bcs .9 - -.2 jsr CLIP.CB.Cache - bcs .7 - ldx CB.Cache+S.CB.CMD - cpx #S.CB.CMD.DRAWLINE - bcc .6 Native DRV Cmd - - jsr Draw.Jmp + jsr CLIP.CB.Cache + bcs .2 + + jsr GFXWrite.CB + +.2 lda CB.Cache+S.CB.SrcPtr + >SYSCALL2 FreeStkObj bra .7 -.6 jsr GFXWrite.CB +.6 jsr CLIP.CB.Cache + bcs .7 + + jsr GFXWrite.CB .7 lda (ZPCBPtr) Get Cmd lsr @@ -47,9 +54,16 @@ DrawCBPtrToYA jsr OBJ.Get bra .1 .8 clc -.9 rts +.9 bit CUR.bVisible + bpl .99 + + php + pha + jsr ShowCursor.I + pla + plp -Draw.Jmp jmp (J.Cmds-S.CB.CMD.DRAWLINE,x) +.99 rts *-------------------------------------- * In: Control Block in CB.Cache * CMD @@ -61,7 +75,18 @@ Draw.Jmp jmp (J.Cmds-S.CB.CMD.DRAWLINE,x) * X2 * Y2 *-------------------------------------- -DrawLine lda CB.Cache+S.CB.X2 +DrawLine >PULLW CB.Cache+S.CB.Y2 + >PULLW CB.Cache+S.CB.X2 + >PULLW CB.Cache+S.CB.Y1 + >PULLW CB.Cache+S.CB.X1 + + >PULLB CB.Cache+S.CB.COLOR + >PULLB CB.Cache+S.CB.OP + >PULLA hWND + >SYSCALL2 GetMemPtr + >STYA ZPWNDPtr + + lda CB.Cache+S.CB.X2 sec sbc CB.Cache+S.CB.X1 sta DX @@ -182,11 +207,13 @@ DrawLine.IncY lda DY sta INE+1 .1 inc Counter bne .2 + inc Counter+1 beq .8 .2 lda D+1 IF D < 0 ... bmi .4 + lda D D > 0 : D=D+INE clc adc INE @@ -196,8 +223,10 @@ DrawLine.IncY lda DY sta D+1 inc CB.Cache+S.CB.X1 X1=X1+1 bne .5 + inc CB.Cache+S.CB.X1+1 bra .5 + .4 lda D D > 0 : D=D+IE clc adc IE @@ -205,12 +234,14 @@ DrawLine.IncY lda DY lda D+1 adc IE+1 sta D+1 + .5 lda CB.Cache+S.CB.Y1 Y1=Y1+IY clc adc IY sta CB.Cache+S.CB.Y1 jsr GFXWrite.CB bra .1 + .8 rts DrawLine.IncX lda DX @@ -251,11 +282,13 @@ DrawLine.IncX lda DX sta INE+1 .1 inc Counter bne .2 + inc Counter+1 beq .8 .2 lda D+1 ID D < 0 .... bmi .4 + lda D D > 0 : D=D+INE clc adc INE @@ -268,6 +301,7 @@ DrawLine.IncX lda DX adc IY sta CB.Cache+S.CB.Y1 bra .5 + .4 lda D D < 0 : D=D+IE clc adc IE @@ -277,18 +311,14 @@ DrawLine.IncX lda DX sta D+1 .5 inc CB.Cache+S.CB.X1 X1=X1+1 bne .6 + inc CB.Cache+S.CB.X1+1 + .6 jsr GFXWrite.CB bra .1 + .8 rts *-------------------------------------- -DrawText2 jsr GFXWrite.CB - lda CB.Cache+S.CB.SrcPtr - >SYSCALL2 FreeStkObj - -.9 rts -*-------------------------------------- - MAN SAVE usr/src/lib/libgui.s.draw LOAD usr/src/lib/libgui.s diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index 54a6da27..663bbd99 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -217,7 +217,7 @@ WND.Show >SYSCALL2 GetMemPtr iny lda (ZPWNDPtr),y - ldy #S.WND.TBAR.Y2+1 + ldy #S.WND.TBarY2+1 sta (ZPWNDPtr),y txa dey @@ -247,7 +247,7 @@ WND.Show >SYSCALL2 GetMemPtr adc SYSFON.Hp2 sta Counter+1 - ldy #S.WND.TBAR.Y2 + ldy #S.WND.TBarY2 lda (ZPWNDPtr),y clc adc SYSFON.Hp2 @@ -272,7 +272,7 @@ WND.Show >SYSCALL2 GetMemPtr adc SYSFON.Hp2 sta Counter+1 - ldy #S.WND.TBAR.Y2 + ldy #S.WND.TBarY2 lda (ZPWNDPtr),y clc adc SYSFON.H @@ -281,7 +281,7 @@ WND.Show >SYSCALL2 GetMemPtr iny lda (ZPWNDPtr),y adc #0 - ldy #S.WND.MBAR.Y2+1 + ldy #S.WND.MBarY2+1 sta (ZPWNDPtr),y txa dey @@ -310,7 +310,7 @@ WND.Show >SYSCALL2 GetMemPtr iny lda (ZPWNDPtr),y sbc #0 - ldy #S.WND.SBAR.Y1+1 + ldy #S.WND.SBarY1+1 sta (ZPWNDPtr),y txa dey @@ -357,52 +357,58 @@ WND.fPaint ldy #S.WND.BGBM+1 lda (ZPWNDPtr),y bne .1 - + lda #S.CB.CMD.FILLRECT - sta CB.Cache+S.CB.COLOR + sta CB.Buf+S.CB.CMD lda #S.CB.OP.SET - sta CB.Cache+S.CB.OP + sta CB.Buf+S.CB.OP + + lda #S.CB.M.MONO + sta CB.Buf+S.CB.M ldy #S.WND.BGCOLOR lda (ZPWNDPtr),y - sta CB.Cache+S.CB.COLOR + sta CB.Buf+S.CB.COLOR ldy #S.OBJ.X1 lda (ZPWNDPtr),y - sta CB.Cache+S.CB.X1 + sta CB.Buf+S.CB.X1 iny lda (ZPWNDPtr),y - sta CB.Cache+S.CB.X1+1 + sta CB.Buf+S.CB.X1+1 - ldy #S.WND.MBAR.Y2 + ldy #S.WND.InnerY1 lda (ZPWNDPtr),y clc adc #1 - sta CB.Cache+S.CB.Y1 + sta CB.Buf+S.CB.Y1 iny lda (ZPWNDPtr),y adc #0 - sta CB.Cache+S.CB.Y1+1 + sta CB.Buf+S.CB.Y1+1 ldy #S.OBJ.X2 lda (ZPWNDPtr),y - sta CB.Cache+S.CB.X2 + sta CB.Buf+S.CB.X2 iny lda (ZPWNDPtr),y - sta CB.Cache+S.CB.X2+1 + sta CB.Buf+S.CB.X2+1 - ldy #S.WND.SBAR.Y1 + ldy #S.WND.InnerY2 lda (ZPWNDPtr),y - sta CB.Cache+S.CB.Y2 + sec + sbc #1 + sta CB.Buf+S.CB.Y2 iny lda (ZPWNDPtr),y - sta CB.Cache+S.CB.Y2+1 + sbc #0 + sta CB.Buf+S.CB.Y2+1 - stz S.CB.Y2+2 Ending 0 + stz CB.Buf+S.CB.Y2+2 Ending 0 >LDYA L.WND.Screen - jmp DrawCBCacheToYA + jmp DrawCBBufToYA .1 clc rts @@ -728,7 +734,7 @@ WND.PaintTopBarBMAtAX rts *-------------------------------------- WND.PaintTopBarTitle - jsr CB.Clear + jsr CB.ClearCache ldy #S.WND.TITLE lda (ZPWNDPtr),y @@ -790,7 +796,7 @@ WND.PaintTopBarTitle rts *-------------------------------------- -WND.PaintMBar jsr CB.Clear +WND.PaintMBar jsr CB.ClearCache lda #S.CB.CMD.FILLRECT sta CB.Cache+S.CB.CMD @@ -820,7 +826,7 @@ WND.PaintMBar jsr CB.Clear lda (ZPWNDPtr),y sta CB.Cache+S.CB.X2+1 - ldy #S.WND.MBAR.Y1 + ldy #S.WND.MBarY1 lda (ZPWNDPtr),y sta CB.Cache+S.CB.Y1 @@ -828,7 +834,7 @@ WND.PaintMBar jsr CB.Clear lda (ZPWNDPtr),y sta CB.Cache+S.CB.Y1+1 - iny #S.WND.MBAR.Y2 + iny #S.WND.MBarY2 lda (ZPWNDPtr),y sta CB.Cache+S.CB.Y2 @@ -850,7 +856,7 @@ WND.PaintMBar jsr CB.Clear .1 lda (ZPMENUPtr) beq .8 - jsr CB.Clear + jsr CB.ClearCache lda #S.CB.CMD.DRAWTEXT2 sta CB.CACHE+S.CB.CMD @@ -877,7 +883,7 @@ WND.PaintMBar jsr CB.Clear adc (ZPWNDPtr),y sta CB.CACHE+S.CB.X1+1 - ldy #S.WND.MBAR.Y1 + ldy #S.WND.MBarY1 lda (ZPWNDPtr),y clc adc #1 @@ -941,7 +947,7 @@ WND.PaintSBar lda #S.CB.CMD.HLINE jsr PutA2CBBuf jsr PutA2CBBuf - jsr CB.Clear S.CB.Y2 + jsr CB.ClearCache S.CB.Y2 lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD sta CB.Cache+S.CB.CMD diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index 28d569d6..7ef4e897 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -119,7 +119,7 @@ CS.START cld .DA ShowCursor .DA UpdateCursor .DA MOU.ReadMouse - .DA GetScreenGC + .DA DrawLine .DA WND.New .DA WND.Destroy .DA WND.SetProp @@ -128,9 +128,6 @@ CS.START cld .DA WND.Paint L.WND.fPaint .DA WND.fPaint *-------------------------------------- -J.Cmds .DA DrawLine - .DA DrawText2 -*-------------------------------------- J.MBAR .DA MBAR.New .DA MBAR.Paint .DA MBAR.Close @@ -158,6 +155,7 @@ L.SYSX7B .DA SYSX7B L.IOCTL .DA IOCTL L.DCB.GFX .DA DCB.GFX L.MouseClamp .DA MouseClamp +L.CB.Buf .DA CB.Buf L.CB.Cache .DA CB.Cache L.WND.Screen .DA WND.Screen L.WND.Desktop .DA WND.Desktop @@ -232,7 +230,7 @@ LIB.UNLOAD dec LibCount .8 clc rts *-------------------------------------- -OBJ.Get >STYA .1+1 +OBJ.GetInCache >STYA .1+1 ldx #S.OBJ-1 @@ -292,7 +290,7 @@ OBJ.SetX2Y2 >STYA ZPObjPtr rts *-------------------------------------- -CB.Clear ldx #S.CB-1 +CB.ClearCache ldx #S.CB-1 .1 stz CB.Cache,x dex @@ -300,7 +298,7 @@ CB.Clear ldx #S.CB-1 rts *-------------------------------------- -CB.Get >STYA .1+1 +CB.GetInCache >STYA .1+1 ldx #S.CB-1 @@ -356,9 +354,6 @@ GFXWrite.YA pha >PUSHYA >SYSCALL2 IOCTL rts -*-------------------------------------- -GetScreenGC >LDYA L.WND.Screen - rts *-------------------------------------- .INB usr/src/lib/libgui.s.bm .INB usr/src/lib/libgui.s.but @@ -413,6 +408,7 @@ MOUSEDATA .BS S.MOUSE *-------------------------------------- MouseClamp .BS 8 *-------------------------------------- +CB.Buf .BS S.CB CB.Cache .BS S.CB OBJ.Cache .BS S.OBJ *-------------------------------------- diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 0b026624..28c8c6cd 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 .LIST OFF .OP 65C02 .OR $2000 @@ -56,7 +55,8 @@ CS.INIT >LDYA L.LIBGUI * clc .9 rts *-------------------------------------- -CS.RUN +CS.RUN >LIBCALL hLIBGUI,LIBGUI.ShowCursor + CS.RUN.LOOP >SLEEP @@ -116,7 +116,7 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F. >PUSHW MouseData+S.MOUSE.X1 >PUSHW MouseData+S.MOUSE.Y1 >PUSHWI 280 - >PUSHWI 90 + >PUSHWI 96 >LIBCALL hLIBGUI,LIBGUI.WND.New bcs CS.QUIT.RTS sta hWND @@ -136,13 +136,17 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F. >PUSHW L.WND.STATUS >LIBCALL hLIBGUI,LIBGUI.WND.SetProp - >LIBCALL hLIBGUI,LIBGUI.HideCursor + >PUSHB hWND + >PUSHBI S.WND.BGCOLOR + >PUSHWI C.WHITE + >LIBCALL hLIBGUI,LIBGUI.WND.SetProp + lda hWND >LIBCALL hLIBGUI,LIBGUI.WND.Show + lda hWND >LIBCALL hLIBGUI,LIBGUI.WND.Paint - >LIBCALL hLIBGUI,LIBGUI.ShowCursor clc .9 rts *--------------------------------------