From 6660b83a2ddf8640cf079f7af569ec0f434cbfc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 2 Sep 2020 17:47:23 +0200 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes DRV/DHGR.DRV.S.OSD.txt | 8 ++------ DRV/DHGR.DRV.S.txt | 27 ++++++++++++++++----------- INC/GFX.I.txt | 20 ++++++++++---------- INC/LIBGUI.I.txt | 1 - INC/XY.MOUSE.I.txt | 6 ++---- LIB/LIBGUI.S.CLIP.txt | 7 ++++++- LIB/LIBGUI.S.CUR.txt | 11 +++++++++++ LIB/LIBGUI.S.DRAW.txt | 8 +++++++- LIB/LIBGUI.S.FON.txt | 19 +++++++++---------- LIB/LIBGUI.S.MOU.txt | 29 +++++++++++++++++++---------- LIB/LIBGUI.S.WND.txt | 13 +++++++++++-- LIB/LIBGUI.S.txt | 35 +++++++++++++++++++++++------------ SBIN/GUI.S.txt | 2 ++ 14 files changed, 118 insertions(+), 68 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index d3dfb3aec795e2f714a0fa2fd438864efebb9fb0..470add5dbed93a05d9c9e3e872d6791fc92d5ddf 100644 GIT binary patch delta 32374 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 diff --git a/DRV/DHGR.DRV.S.OSD.txt b/DRV/DHGR.DRV.S.OSD.txt index c4529311..e1a2d6a0 100644 --- a/DRV/DHGR.DRV.S.OSD.txt +++ b/DRV/DHGR.DRV.S.OSD.txt @@ -42,10 +42,8 @@ X.OSD ldy CBX.Cache+S.CB.DstPtr cpx #S.BM bne .2 -.4 lda CBX.Cache+S.CB.CMD - asl - tax - jmp (.8,x) +.4 ldx CBX.Cache+S.CB.CMD + jmp (.8-2,x) *-------------------------------------- .8 .DA OSD.SETPIXEL .DA OSD.GETPIXEL @@ -54,7 +52,6 @@ X.OSD ldy CBX.Cache+S.CB.DstPtr .DA OSD.FILLRECT .DA OSD.BITBLT .DA OSD.GETRECTBUFSIZE - .DA $ffff DRAWLINE .DA OSD.DRAWTEXT .DA OSD.GETTEXTSIZE *-------------------------------------- @@ -596,7 +593,6 @@ CBX.CmdLen .DA #S.CB.Y1+1 SETPIXEL .DA #S.CB.Y2+1 FILLRECT .DA #S.CB.DstPtr+1 BITBLT .DA #S.CB.DstPtr+1 GETRECTBUFSIZE - .DA #S.CB.Y2+1 DRAWLINE .DA #S.CB.TxtPtr+1 DRAWTEXT .DA #S.CB.SrcH+1 GETTEXTSIZE *-------------------------------------- diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index 2b34a4c4..2965849c 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -236,8 +236,9 @@ OSD.install >LDYA L.OSD .3 sta CLRWRITEAUX rts *-------------------------------------- -ClrScr ldx #0 - txa lda #0 +ClrScr lda #$55 + + ldx #0 .1 ldy BASEL,x sty ZPPtr1 @@ -247,6 +248,8 @@ ClrScr ldx #0 sta SETPAGE2 jsr .2 + eor #$7F + sta CLRPAGE2 jsr .2 @@ -445,11 +448,11 @@ WRITE >STYA ZPIOCTL NON STANDARD lda (ZPIOCTL) Get Cmd bmi .2 - tax - ldy CB.CmdLen,x - - asl pha + + lsr + tax + ldy CB.CmdLen-1,x .1 lda (ZPIOCTL),y sta CB.Cache,y @@ -457,18 +460,21 @@ WRITE >STYA ZPIOCTL NON STANDARD bpl .1 plx - jmp (J.Cmds,x) + jmp (J.Cmds-2,x) .2 sta SETWRITEAUX - + >DEBUG and #$7f + sta CBX.Cache + + lsr tax - ldy CB.CmdLen,x + ldy CB.CmdLen-1,x .3 lda (ZPIOCTL),y sta CBX.Cache,y dey - bpl .3 + bne .3 sta SETREADAUX jsr X.OSD @@ -601,7 +607,6 @@ CB.CmdLen .DA #S.CB.Y1+1 SETPIXEL .DA #S.CB.Y2+1 FILLRECT .DA #S.CB.DstPtr+1 BITBLT .DA #S.CB.DstPtr+1 GETRECTBUFSIZE - .DA #S.CB.Y2+1 DRAWLINE .DA #S.CB.TxtPtr+1 DRAWTEXT .DA #S.CB.SrcH+1 GETTEXTSIZE *-------------------------------------- diff --git a/INC/GFX.I.txt b/INC/GFX.I.txt index 29593900..64c6e9c8 100644 --- a/INC/GFX.I.txt +++ b/INC/GFX.I.txt @@ -39,16 +39,16 @@ S.FON .EQ 8 * Command Block *-------------------------------------- S.CB.CMD .EQ 0 -S.CB.CMD.SETPIXEL .EQ 0 -S.CB.CMD.GETPIXEL .EQ 1 -S.CB.CMD.HLINE .EQ 2 -S.CB.CMD.VLINE .EQ 3 -S.CB.CMD.FILLRECT .EQ 4 -S.CB.CMD.BITBLT .EQ 5 -S.CB.CMD.GETRECTBUFSIZE .EQ 6 -S.CB.CMD.DRAWLINE .EQ 7 -S.CB.CMD.DRAWTEXT .EQ 8 -S.CB.CMD.GETTEXTSIZE .EQ 9 +S.CB.CMD.SETPIXEL .EQ 2 +S.CB.CMD.GETPIXEL .EQ 4 +S.CB.CMD.HLINE .EQ 6 +S.CB.CMD.VLINE .EQ 8 +S.CB.CMD.FILLRECT .EQ 10 +S.CB.CMD.BITBLT .EQ 12 +S.CB.CMD.GETRECTBUFSIZE .EQ 14 +S.CB.CMD.DRAWTEXT .EQ 16 +S.CB.CMD.GETTEXTSIZE .EQ 18 +S.CB.CMD.DRAWLINE .EQ 20 S.CB.CMD.OSD .EQ 128 S.CB.OP .EQ 1 S.CB.OP.XOR .EQ 0 screen EOR bitmap -> Screen diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index 9564e99d..7aab32cf 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -1,6 +1,5 @@ NEW AUTO 3,1 - .LIST OFF *-------------------------------------- LIBGUI.Draw .EQ 4 LIBGUI.SetCursor .EQ 6 diff --git a/INC/XY.MOUSE.I.txt b/INC/XY.MOUSE.I.txt index 10358d18..0b62639a 100644 --- a/INC/XY.MOUSE.I.txt +++ b/INC/XY.MOUSE.I.txt @@ -1,7 +1,5 @@ NEW -PREFIX -AUTO 4,1 - .LIST OFF + AUTO 3,1 *-------------------------------------- * //c Mouse Port, IIe Mouse Card *-------------------------------------- @@ -37,4 +35,4 @@ MOUSEMODx.INTMOVE .EQ %00000010 MOUSEMODx.ACTIVE .EQ %00000001 *-------------------------------------- MAN -SAVE INC/XY.MOUSE.I +SAVE inc/xy.mouse.i diff --git a/LIB/LIBGUI.S.CLIP.txt b/LIB/LIBGUI.S.CLIP.txt index 0b05772d..3d789f9a 100644 --- a/LIB/LIBGUI.S.CLIP.txt +++ b/LIB/LIBGUI.S.CLIP.txt @@ -11,7 +11,11 @@ NEW *-------------------------------------- CLIP.YA jsr CB.Get ldx CB.Cache+S.CB.CMD -CLIP.X jmp (J.CLIP,x) + bpl CLIP.X + txa + and #$7F + tax +CLIP.X jmp (J.CLIP-2,x) *-------------------------------------- CLIP.Point CLIP.HLine @@ -25,6 +29,7 @@ CLIP.Text CLIP.BitBlt.9 pla CLIP.BitBlt.99 sec rts + CLIP.BitBlt lda CB.Cache+S.CB.DstX ldx CB.Cache+S.CB.DstX+1 pha diff --git a/LIB/LIBGUI.S.CUR.txt b/LIB/LIBGUI.S.CUR.txt index 2a26cc47..691dadfc 100644 --- a/LIB/LIBGUI.S.CUR.txt +++ b/LIB/LIBGUI.S.CUR.txt @@ -16,7 +16,9 @@ SetCursor sta CUR.T lda CUR.bVisible bpl .1 + jsr HideCursor.I + .1 ldx CUR.T lda L.Cursors,x sta CUR.CB+S.CB.SrcPtr @@ -45,14 +47,17 @@ SetCursor.RTS rts *-------------------------------------- SetCursorPos >PULLW ZPPtr1 lda CUR.bVisible + bpl .1 jsr HideCursor.I + .1 ldy #S.POINT-1 .2 lda (ZPPtr1),y sta CUR.Pos,y dey bpl .2 + lda CUR.bVisible bmi ShowCursor.I @@ -66,6 +71,7 @@ HideCursor lda CUR.bVisible *-------------------------------------- ShowCursor lda CUR.bVisible bmi .9 + jsr ShowCursor.I dec CUR.bVisible .9 rts @@ -91,13 +97,18 @@ ShowCursor.I lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE lda CUR.Pos+S.POINT.Y+1 sbc #0 sta CUR.CB+S.CB.DstY+1 + DrawCursor.I >LDYA L.SCR jsr OBJ.Get + >LDYA L.CUR.CB + >DEBUG jsr CLIP.YA bcs .9 + >LDYA L.CUR.CB jmp GFXWrite.YA + .9 rts *-------------------------------------- MAN diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index 316018ab..5ba43012 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -4,8 +4,10 @@ NEW Draw >PULLW ZPCBPtr Get CB >PULLYA Get GC jsr OBJ.Get + .1 >LDYA ZPCBPtr jsr CB.Get + ldx CB.Cache+S.CB.CMD Get Cmd beq .8 @@ -17,16 +19,20 @@ Draw >PULLW ZPCBPtr Get CB jsr Draw.Jmp bra .7 + .2 jsr GFXWrite.CB + .7 lda (ZPCBPtr) Get Cmd tax - lda CB.CmdLen,x + lda CB.CmdLen-1,x sec adc ZPCBPtr sta ZPCBPtr bcc .1 + inc ZPCBPtr+1 bra .1 + .8 clc .9 rts diff --git a/LIB/LIBGUI.S.FON.txt b/LIB/LIBGUI.S.FON.txt index 24111b46..8597b1a5 100644 --- a/LIB/LIBGUI.S.FON.txt +++ b/LIB/LIBGUI.S.FON.txt @@ -1,11 +1,8 @@ NEW AUTO 3,1 *-------------------------------------- -FON.Init >PUSHWZ Aux type - >PUSHBI $CC Type - >PUSHBI O.RDONLY - >LDYA L.SYSX7 - >SYSCALL2 LoadStkObj +FON.Init >LDYA L.SYSX7 + jsr FON.Load bcs .9 sta hSYSFON @@ -14,17 +11,19 @@ FON.Init >PUSHWZ Aux type lda #7 sta SYSFON.H - >PUSHWZ Aux type - >PUSHBI $CC Type - >PUSHBI O.RDONLY >LDYA L.SYSX7B - >SYSCALL2 LoadStkObj + jsr FON.Load bcs .9 sta hSYSFONB .9 rts *-------------------------------------- - +FON.Load >PUSHYA + >PUSHBI O.RDONLY + >PUSHBI $CC Type + >PUSHWZ Aux type + >SYSCALL2 LoadStkObj + rts *-------------------------------------- MAN SAVE usr/src/lib/libgui.s.fon diff --git a/LIB/LIBGUI.S.MOU.txt b/LIB/LIBGUI.S.MOU.txt index dc5f90f6..682aac4e 100644 --- a/LIB/LIBGUI.S.MOU.txt +++ b/LIB/LIBGUI.S.MOU.txt @@ -32,13 +32,16 @@ MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1 sta MouseClamp+6 ror sta CUR.Pos+S.POINT.Y - >PUSHW L.MouseClamp + + >PUSHB hDevMouse >PUSHBI IOCTL.CONTROL - lda hDevMouse + >PUSHW L.MouseClamp >SYSCALL2 IOCTL bcs .9 + >LDYA L.CUR.SaveBuf >STYA CUR.CB+S.CB.DstPtr + lda #CUR.T.ARROW jsr SetCursor jsr ShowCursor @@ -48,30 +51,36 @@ MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1 *-------------------------------------- MOU.Quit lda hDevMouse beq .8 - pha + + >PUSHA >PUSHBI IOCTL.CLOSE >PUSHWZ - pla >SYSCALL2 IOCTL .8 clc rts *-------------------------------------- -MOU.ReadMouse lda A2osX.ASCREEN GUI screen active ? - cmp DCB.GFX+S.DCB.GFX.DEVID +MOU.ReadMouse >PULLYA + + ldx A2osX.ASCREEN GUI screen active ? + cpx DCB.GFX+S.DCB.GFX.DEVID bne .9 no, exit.... - lda hDevMouse + + ldx hDevMouse beq .9 pha - -* >PUSHW ZPPtr1 + + txa + + >PUSHA >PUSHBI IOCTL.READ pla + >PUSHYA >SYSCALL2 IOCTL rts .9 sec - >RET 2 Discard PTR + rts *-------------------------------------- MAN SAVE usr/src/lib/libgui.s.mou diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index de01c0fa..77844a24 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -5,14 +5,17 @@ WND.Init >PUSHBI 0 >LDYA L.DEVNAME.GFX >SYSCALL2 open bcs .9 + sta SCR+S.SCREEN.hDEV + >LDYA L.DCB.GFX >STYA IOCTL+S.IOCTL.BUFPTR lda #S.IOCTL.STATCODE.GETDCB sta IOCTL+S.IOCTL.STATCODE - >PUSHW L.IOCTL + + >PUSHB SCR+S.SCREEN.hDEV >PUSHBI IOCTL.STATUS - lda SCR+S.SCREEN.hDEV + >PUSHW L.IOCTL >SYSCALL2 IOCTL .9 rts *-------------------------------------- @@ -35,18 +38,24 @@ WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W sbc #0 sta WND.Desktop+S.OBJ.H+1 sta WND.SysBar+S.OBJ.X1+1 + >LDYA L.SCR jsr OBJ.SetX2Y2 + >LDYA L.WND.Desktop >STYA SCR.Childs jsr OBJ.SetX2Y2 + >LDYA L.WND.SysBar jsr OBJ.SetX2Y2 >STYA SCR.Childs+2 + >LDYA L.WND.Desktop lda #CUR.T.ARROW sta WND.Desktop+S.WND.hCUR sta WND.SysBar+S.WND.hCUR + + sta $C057 rts *-------------------------------------- WND.Quit lda SCR+S.SCREEN.hDEV diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index 5ec1363d..d3976760 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -119,36 +119,44 @@ J.Clip .DA CLIP.Point SETPIXEL LIB.LOAD lda LibCount bne .8 - jsr FON.Init - bcs .9 - jsr MOU.Init - bcs .9 +* bcs .9 jsr WND.Init bcs .9 - jsr WND.Setup - lda hDevMouse - beq .8 - jsr MOU.Setup -.8 inc LibCount - clc + jsr FON.Init + bcs .9 + + lda hDevMouse + beq .1 + + jsr MOU.Setup + +.1 jsr WND.Setup + + inc LibCount + +.8 clc .9 rts *-------------------------------------- LIB.UNLOAD dec LibCount bne .8 + jsr MOU.Quit + .8 clc rts *-------------------------------------- OBJ.Get >STYA .1+1 ldx #S.OBJ-1 + .1 lda $ffff,x SELF MODIFIED sta OBJ.Cache,x dex bpl .1 + rts *-------------------------------------- OBJ.SetX2Y2 >STYA ZPObjPtr @@ -211,9 +219,11 @@ CB.Get >STYA .1+1 *-------------------------------------- GFXWrite.CB >LDYA L.CB.Cache -GFXWrite.YA >PUSHYA +GFXWrite.YA pha + >PUSHB SCR+S.SCREEN.hDEV >PUSHBI IOCTL.WRITE - lda SCR+S.SCREEN.hDEV + pla + >PUSHYA >SYSCALL2 IOCTL rts *-------------------------------------- @@ -273,6 +283,7 @@ PAT.Buf .BS 1 S.BM.F *-------------------------------------- IOCTL .BS S.IOCTL DCB.GFX .BS S.DCB.GFX +MOUSEDATA .BS S.MOUSE *-------------------------------------- MouseClamp .BS 8 *-------------------------------------- diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 825ae239..8975221d 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -55,6 +55,7 @@ CS.INIT >LDYA L.LIBGUI CS.RUN >PUSHW L.MouseData >LIBCALL hLIBGUI,LIBGUI.ReadMouse bcs .4 + lda MouseData+S.MOUSE.S bit #S.MOUSE.S.MOVE beq .1 @@ -62,6 +63,7 @@ CS.RUN >PUSHW L.MouseData >PUSHW L.MouseData >LIBCALL hLIBGUI,LIBGUI.SetCursorPos lda MouseData+S.MOUSE.S + .1 bit #S.MOUSE.S.CLK beq .4 >LDA.G CUR.T