diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index ded1513e..8530e8f4 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index 381498af..93be26cf 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -274,7 +274,13 @@ OPEN ldx #0 DEV.ID in A dey bne .2 *-------------------------------------- -CONTROL ldy #0 +CONTROL lda DCB+S.DCB.GFX.DEVID + cmp A2osX.ASCREEN + beq .8 + + sta A2osX.ASCREEN + + ldy #0 bit DCB+S.DCB.GFX.S bmi .1 //c,EVE mode @@ -288,12 +294,7 @@ CONTROL ldy #0 iny bra .1 - -.8 lda DCB+S.DCB.GFX.DEVID - sta A2osX.ASCREEN - - clc - rts +.8 *-------------------------------------- CLOSE clc rts diff --git a/DRV/MOUSE.DRV.S.txt b/DRV/MOUSE.DRV.S.txt index fec3a007..d8eef56d 100644 --- a/DRV/MOUSE.DRV.S.txt +++ b/DRV/MOUSE.DRV.S.txt @@ -114,7 +114,7 @@ FD.DEV .DA #S.FD.T.CDEV .BS 2 DRVPTR .DA 0 DCBPTR .DA 0 BUFPTR -FD.DEV.NAME .AZ "MOU7" +FD.DEV.NAME .AZ "MOUx" *-------------------------------------- * Driver Code *-------------------------------------- @@ -135,7 +135,14 @@ DRV.CS.START cld .DA A2osX.BADCALL .DA 0 end or relocation *-------------------------------------- -STATUS jsr GETIOCTL +STATUS >STYA ZPIOCTL + + ldy #S.IOCTL.BUFPTR + lda (ZPIOCTL),y + sta ZPBufPtr + iny + lda (ZPIOCTL),y + sta ZPBufPtr+1 ldy #S.IOCTL.STATCODE lda (ZPIOCTL),y @@ -162,7 +169,7 @@ STATUS.9 lda #MLI.E.BADCTL sec rts *-------------------------------------- -CONTROL jsr GETIOCTL +CONTROL >STYA ZPBufPtr NON STANDARD php sei @@ -211,7 +218,7 @@ CLOSE php clc rts *-------------------------------------- -READ >STYA ZPBufPtr NON STANDARD +READ >STYA ZPBufPtr NON STANDARD stz READ.S+1 Reset Flags @@ -301,7 +308,7 @@ READ >STYA ZPBufPtr NON STANDARD tsb READ.S+1 bra .8 -.4 lda #S.MOUSE.S.DRAG +.4 lda #S.MOUSE.S.DRAGSTART tsb READ.S+1 ldy #S.MOUSE.X2+3 @@ -327,17 +334,6 @@ READ.S lda #$ff SELF MODIFIED *-------------------------------------- * PRIVATE *-------------------------------------- -GETIOCTL >STYA ZPIOCTL - - ldy #S.IOCTL.BUFPTR - lda (ZPIOCTL),y - sta ZPBufPtr - iny - lda (ZPIOCTL),y - sta ZPBufPtr+1 - - rts -*-------------------------------------- SETCLAMP lda (ZPBufPtr),y sta LOCLAMPLO diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 6dc4bd65..eef140fd 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -61,7 +61,7 @@ A2osX.RANDOM16 .EQ $BEEE WORD *-------------------------------------- A2osX.KCONFIG .EQ $BEF0 A2osX.HZ .EQ $BEF0 5/6 for 50/60Hz -A2osX.TTYDEVS .EQ $BEF1 K.TTY.MAX = 4 ! +A2osX.TTYDEVS .EQ $BEF1 K.TTY.MAX = 3 ! A2osX.F .EQ $BEF8 A2osX.F.CHROOT .EQ %10000000 ChRooting to /RAMx A2osX.F.PMODE .EQ %01000000 Preemptive Mode diff --git a/INC/GUI.I.txt b/INC/GUI.I.txt index f2372aa1..8060174b 100644 --- a/INC/GUI.I.txt +++ b/INC/GUI.I.txt @@ -113,7 +113,7 @@ S.OBJ.T.SCREEN .EQ 0 S.OBJ.T.WND .EQ 2 S.OBJ.T.MENUBAR .EQ 4 S.OBJ.T.MENU .EQ 6 -S.OBJ.T.MENUITEM .EQ 8 +S.OBJ.T.MITEM .EQ 8 S.OBJ.T.BUT .EQ 10 S.OBJ.T.TEXT .EQ 12 @@ -158,23 +158,23 @@ S.MENUBAR S.MENU.hSAVEBUF .EQ 2 * ... S.MITEMs... *-------------------------------------- -*S.MENUITEM.F. .EQ %00000001 -*S.MENUITEM.F. .EQ %00000010 -*S.MENUITEM.F. .EQ %00000100 -*S.MENUITEM.F. .EQ %00001000 -*S.MENUITEM.F. .EQ %00010000 -S.MENUITEM.F.SEP .EQ %00100000 -S.MENUITEM.F.CHECKED .EQ %01000000 -S.MENUITEM.F.DISABLED .EQ %10000000 -S.MENUITEM.ID .EQ 1 -S.MENUITEM.hSUBM .EQ 2 -S.MENUITEM.hBM .EQ 3 -S.MENUITEM.HOTKEY .EQ 4 -S.MENUITEM.HOTKEY.CTRL .EQ %10000000 -S.MENUITEM.HOTKEY.OA .EQ %01000000 -S.MENUITEM.HOTKEY.CA .EQ %00100000 -S.MENUITEM.TEXTLEN .EQ 5 -S.MENUITEM.TEXT .EQ 6 CSTR +*S.MITEM.F. .EQ %00000001 +*S.MITEM.F. .EQ %00000010 +*S.MITEM.F. .EQ %00000100 +*S.MITEM.F. .EQ %00001000 +*S.MITEM.F. .EQ %00010000 +S.MITEM.F.SEP .EQ %00100000 +S.MITEM.F.CHECKED .EQ %01000000 +S.MITEM.F.DISABLED .EQ %10000000 +S.MITEM.ID .EQ 1 +S.MITEM.hSUBM .EQ 2 +S.MITEM.hBM .EQ 3 +S.MITEM.HOTKEY .EQ 4 +S.MITEM.HOTKEY.CTRL .EQ %10000000 +S.MITEM.HOTKEY.OA .EQ %01000000 +S.MITEM.HOTKEY.CA .EQ %00100000 +S.MITEM.TEXTLEN .EQ 5 +S.MITEM.TEXT .EQ 6 CSTR * ... *-------------------------------------- S.BUT.T .EQ 0 diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index 39e5777e..d947227f 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -5,7 +5,7 @@ AUTO 4,1 .OP 65C02 *-------------------------------------- LIBGUI.Draw .EQ 8 -LIBGUI.SetCursor.A .EQ 10 +LIBGUI.SetCursor .EQ 10 LIBGUI.SetCursorPos .EQ 12 LIBGUI.HideCursor .EQ 14 LIBGUI.ShowCursor .EQ 16 diff --git a/LIB/LIBGUI.G.FON.txt b/LIB/LIBGUI.G.FON.txt index 6bb78534..40472ab4 100644 --- a/LIB/LIBGUI.G.FON.txt +++ b/LIB/LIBGUI.G.FON.txt @@ -2,7 +2,9 @@ NEW PREFIX AUTO 4,1 *-------------------------------------- -SYSFONB.H .BS 1 +hSYSFON .BS 1 +hSYSFONB .BS 1 +SYSFON.H .BS 1 *-------------------------------------- MAN SAVE USR/SRC/LIB/LIBGUI.G.FON diff --git a/LIB/LIBGUI.S.BUT.txt b/LIB/LIBGUI.S.BUT.txt index 6d75f21b..21453d64 100644 --- a/LIB/LIBGUI.S.BUT.txt +++ b/LIB/LIBGUI.S.BUT.txt @@ -4,27 +4,30 @@ AUTO 4,1 *-------------------------------------- BUT.New >STYA ZPPtr1 - ldy #S.CTRL.W + ldy #S.BUT.W lda (ZPPtr1),y iny ora (ZPPtr1),y - bne . W in !NULL, static size + bne .1 W in !NULL, static size ldy #S.BUT.hBM lda (ZPPtr1),y beq .1 ldy #S.BM.W - >SYSCALL GetStkObjProperty.AY + >SYSCALL GetStkObjProp phy - ldy #S.CTRL.W+1 + ldy #S.BUT.W+1 sta (ZPPtr1),y dey pla sta (ZPPtr1),y - -.1 ldy + +.1 + + clc + rts *-------------------------------------- BUT.Draw diff --git a/LIB/LIBGUI.S.CUR.txt b/LIB/LIBGUI.S.CUR.txt index 0c4d7bb6..af64123b 100644 --- a/LIB/LIBGUI.S.CUR.txt +++ b/LIB/LIBGUI.S.CUR.txt @@ -4,17 +4,17 @@ AUTO 4,1 *-------------------------------------- UpdateCursor lda CUR.T cmp #CUR.T.WAIT - bcc SetCursor.A.RTS + bcc SetCursor.RTS inc inc cmp #CUR.T.WAIT+12 - bne SetCursor.A + bne SetCursor lda #CUR.T.WAIT *-------------------------------------- * Set X2,Y2,SrcPtr *-------------------------------------- -SetCursor.A sta CUR.T +SetCursor sta CUR.T lda CUR.bVisible bpl .1 @@ -54,7 +54,7 @@ SetCursor.A sta CUR.T lda CUR.bVisible bmi ShowCursor.I -SetCursor.A.RTS rts +SetCursor.RTS rts *-------------------------------------- * Set DestX,DestY *-------------------------------------- diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index 8ef5688a..c3f6cef3 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -325,7 +325,7 @@ DrawText >LDYA L.CB.Cache jsr GoDevGfx lda CB.Cache+S.CB.SrcPtr - >SYSCALL FreeStkObj.A + >SYSCALL FreeStkObj .9 rts *-------------------------------------- diff --git a/LIB/LIBGUI.S.FON.txt b/LIB/LIBGUI.S.FON.txt index cc26e622..35c066af 100644 --- a/LIB/LIBGUI.S.FON.txt +++ b/LIB/LIBGUI.S.FON.txt @@ -5,23 +5,23 @@ AUTO 4,1 FON.Init >PUSHWI 0 Aux type >PUSHBI $CC Type >PUSHBI O.RDONLY - >PUSHW L.SYSX7 + >LDYA L.SYSX7 >SYSCALL LoadStkObj bcs .9 sta hSYSFON + ldy #S.FON.PixH + >SYSCALL GetStkObjProp + sty SYSFON.H + >PUSHWI 0 Aux type >PUSHBI $CC Type >PUSHBI O.RDONLY - >PUSHW L.SYSX7B + >LDYA L.SYSX7B >SYSCALL LoadStkObj bcs .9 sta hSYSFONB - - ldy #S.FON.PixH - >SYSCALL GetStkObjProperty.AY - sty SYSFONB.H - + .9 rts *-------------------------------------- diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index 4ed93f9c..26758e8e 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -2,6 +2,8 @@ NEW PREFIX AUTO 4,1 *-------------------------------------- +* Y,A = ptr to menu definition +*-------------------------------------- MENU.New >STYA ZPPtr1 @@ -11,16 +13,8 @@ MENU.New >STYA ZPPtr1 stz DX+1 stz DY+1 - lda ZPPtr1 clc - adc #S.MENU - sta ZPPtr2 - - lda ZPPtr1+1 - adc /S.MENU - sta ZPPtr2+1 - -.1 lda (ZPPtr2) + rts *-------------------------------------- MENU.SysMenu *-------------------------------------- @@ -65,8 +59,6 @@ MENU.MenuEditor .AZ "File" .DA #0 .DA #0 .AZ "Check Me" - - .DA #0 .DA #0 *-------------------------------------- diff --git a/LIB/LIBGUI.S.MOU.txt b/LIB/LIBGUI.S.MOU.txt index f56d84a6..edf27271 100644 --- a/LIB/LIBGUI.S.MOU.txt +++ b/LIB/LIBGUI.S.MOU.txt @@ -2,26 +2,22 @@ NEW PREFIX AUTO 4,1 *-------------------------------------- -MOU.Init -.1 >LDYA L.DEVNAME.MOUSE - >SYSCALL GetDevByName.YA +MOU.Init >DEBUG +.1 >PUSHBI 0 + >LDYA L.DEVNAME.MOUSE + >SYSCALL open bcc .2 - inc DEVNAME.MOUSE+3 - lda DEVNAME.MOUSE+3 + inc DEVNAME.MOUSE+8 + lda DEVNAME.MOUSE+8 cmp #'8' bne .1 clc rts -.2 stx hDevMouse - txa - >PUSHA - >PUSHBI DEVMGR.OPEN - >PUSHWI 0 - >SYSCALL IOCTL - +.2 sta hDevMouse + lda GC.Screen+S.GC.X2+1 sta MouseClamp+3 lsr @@ -42,27 +38,27 @@ MOU.Init ror sta CUR.Pos+S.POINT.Y - >PUSHB.G hDevMouse - >PUSHBI DEVMGR.CONTROL >PUSHWI L.MouseClamp + >PUSHBI IOCTL.CONTROL + lda hDevMouse >SYSCALL IOCTL >LDYA L.CUR.SaveBuf >STYA CUR.CB+S.CB.DstPtr lda #CUR.T.ARROW - jsr SetCursor.A - bra .8 + jsr SetCursor - sec + clc .9 rts *-------------------------------------- MOU.Quit lda hDevMouse beq .8 - >PUSHA - >PUSHBI DEVMGR.CLOSE + pha + >PUSHBI IOCTL.CLOSE >PUSHWI 0 + pla >SYSCALL IOCTL .8 clc @@ -73,9 +69,11 @@ MOU.Read >STYA ZPPtr1 lda hDevMouse beq .9 - >PUSHA - >PUSHBI DEVMGR.READBLOCK + pha >PUSHW ZPPtr1 + >PUSHBI IOCTL.READ + + pla >SYSCALL IOCTL bcs .9 diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index 5b0655b4..8dc66ac2 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -2,38 +2,34 @@ NEW PREFIX AUTO 4,1 *-------------------------------------- -WND.Init >LDYA L.DEVNAME.GFX - >SYSCALL GetDevByName.YA +WND.Init >PUSHBI 0 + >LDYA L.DEVNAME.GFX + >SYSCALL open bcs .9 - stx hDevScreen - txa + sta hDevGFX + pha + >PUSHW L.DCB.GFX + pla >SYSCALL GetDevStatus bcs .9 - >STYA ZPPtr1 - ldy #S.DIB.GFX.W - - lda (ZPPtr1),y + lda DCB.GFX+S.DCB.GFX.W sta WND.Cache+S.OBJ.W - iny - lda (ZPPtr1),y + lda DCB.GFX+S.DCB.GFX.W+1 sta WND.Cache+S.OBJ.W+1 - lda SYSFONB.H + lda SYSFON.H clc adc #6 sta WND.TB.H - iny #S.DIB.GFX.H - - lda (ZPPtr1),y + lda DCB.GFX+S.DCB.GFX.H sec - sbc SYSFONB.H + sbc SYSFON.H sta WND.Cache+S.OBJ.H - iny - lda (ZPPtr1),y + lda DCB.GFX+S.DCB.GFX.H+1 sbc #0 sta WND.Cache+S.OBJ.H+1 @@ -50,7 +46,16 @@ WND.Init >LDYA L.DEVNAME.GFX .9 rts *-------------------------------------- -WND.Quit +WND.Quit lda hDevGFX + beq .8 + + pha + >PUSHBI IOCTL.CLOSE + >PUSHWI 0 + pla + >SYSCALL IOCTL + +.8 clc rts *-------------------------------------- diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index 9434ee79..46d2550a 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -4,13 +4,14 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF LIB/LIBGUI.O + .TF LIB/GUI/LIBGUI *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I + .INB INC/KERNEL.I + .INB INC/GFX.I .INB INC/GUI.I .INB INC/LIBGUI.I - .INB INC/GFX.I *-------------------------------------- WND.MAX .EQ 64 *-------------------------------------- @@ -44,9 +45,10 @@ WND.MAX .EQ 64 .EM *-------------------------------------- ZPPtr1 .EQ ZPLIB -ZPGCPtr .EQ ZPLIB+2 -ZPCBPtr .EQ ZPLIB+4 -ZPWNDPtr .EQ ZPLIB+6 +ZPPtr2 .EQ ZPLIB+2 +ZPGCPtr .EQ ZPLIB+4 +ZPCBPtr .EQ ZPLIB+6 +ZPWNDPtr .EQ ZPLIB+8 *-------------------------------------- * File Header (16 Bytes) @@ -66,7 +68,7 @@ CS.START cld .1 .DA LIB.LOAD .DA LIB.UNLOAD .DA Draw - .DA SetCursor.A + .DA SetCursor .DA SetCursorPos .DA HideCursor .DA ShowCursor @@ -78,6 +80,7 @@ L.DEVNAME.GFX .DA DEVNAME.GFX L.DEVNAME.MOUSE .DA DEVNAME.MOUSE L.SYSX7 .DA SYSX7 L.SYSX7B .DA SYSX7B +L.DCB.GFX .DA DCB.GFX L.MouseClamp .DA MouseClamp L.GC.Screen .DA GC.Screen L.CB.Cache .DA CB.Cache @@ -105,18 +108,22 @@ J.Clip .DA CLIP.Point SETPIXEL .DA CLIP.Rect GETRECTBUFSIZE .DA CLIP.Line .DA CLIP.Text +L.WND.CACHE .DA WND.CACHE .DA 0 *-------------------------------------- LIB.LOAD lda LibCount bne .8 - + jsr FON.Init + bcs .9 jsr WND.Init + bcs .9 jsr MOU.Init + bcs .9 .8 inc LibCount clc - rts +.9 rts *-------------------------------------- LIB.UNLOAD dec LibCount bne .8 @@ -154,7 +161,7 @@ GetScreenGC >LDYA L.GC.Screen rts *-------------------------------------- GoDevGfx >LDYA L.CB.Cache - ldx #DEVMGR.WRITE + ldx #IOCTL.WRITE GoDevGfx.Jmp jmp $ffff *-------------------------------------- .INB USR/SRC/LIB/LIBGUI.S.BM @@ -175,14 +182,14 @@ CS.END .INB USR/SRC/LIB/LIBGUI.G.FON .INB USR/SRC/LIB/LIBGUI.G.WND *-------------------------------------- -DEVNAME.GFX .AZ "GFX" -DEVNAME.MOUSE .AZ "MOU1" +DEVNAME.GFX .AZ "/DEV/GFX" +DEVNAME.MOUSE .AZ "/DEV/MOU1" *-------------------------------------- SYSX7 .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7" SYSX7B .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7B" *-------------------------------------- LibCount .BS 1 -hDevScreen .BS 1 +hDevGFX .BS 1 hDevMouse .BS 1 *-------------------------------------- DX .BS 2 @@ -214,6 +221,8 @@ PAT.Buf .BS 1 S.BM.F .DA 0 S.BM.MASK.OFS .BS 8 (data) *-------------------------------------- +DCB.GFX .BS S.DCB.GFX +GC.Screen .BS S.GC GC.Cache .BS S.GC CB.Cache .BS S.CB BM.Cache .BS S.BM diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 5692975a..1efe21a9 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -12,7 +12,14 @@ AUTO 4,1 .INB INC/GUI.I .INB INC/LIBGUI.I *-------------------------------------- -ZPPtr1 .EQ ZPBIN +* Zero Page Segment, up to 32 bytes +*-------------------------------------- + .DUMMY + .OR ZPBIN +ZS.START +* MyPtr .BS 2 +ZS.END + .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -20,11 +27,12 @@ CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 - .DA 0 - .DA CS.END-CS.START CS - .DA DS.END-DS.START DS - .DA #16 SS - .DA #2 ZP + .DA #S.PS.F.EVENT + .DA #0 + .DA CS.END-CS.START Code Size (without Constants) + .DA DS.END-DS.START Data SegmentSize + .DA #64 Stack Size + .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- * Relocation Table @@ -42,14 +50,13 @@ CS.INIT >LDYA L.LIBGUI bcs CS.INIT.RTS sta hLIBGUI - lda (pPs) - ora #S.PS.F.EVENT Now accept events - sta (pPs) - clc CS.INIT.RTS rts *-------------------------------------- -CS.RUN lda A2osX.ASCREEN GUI screen active ? +CS.RUN clc + rts + + lda A2osX.ASCREEN GUI screen active ? cmp #3 bne .8 no, exit.... @@ -78,7 +85,7 @@ CS.RUN lda A2osX.ASCREEN GUI screen active ? lda #CUR.T.ARROW .2 >STA.G CUR.T - >LIBCALL hLIBGUI,LIBGUI.SetCursor.A + >LIBCALL hLIBGUI,LIBGUI.SetCursor jsr Destop.Paint @@ -120,9 +127,11 @@ Destop.Paint >LIBCALL hLIBGUI,LIBGUI.HideCursor rts *-------------------------------------- CS.END -LIBGUI .AZ "libgui.o" +LIBGUI .AZ "libgui" hLIBGUI .BS 1 *-------------------------------------- +SYSMENU +*-------------------------------------- MouseData .BS S.MOUSE *-------------------------------------- .DUMMY diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index a76b9b16..ca52f573 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -366,7 +366,7 @@ GP.CodeEnd .BS $BEE0-* * $BEF0->$BEFF : Kernel Config Block *-------------------------------------- .DA #6 A2osX.HZ=60hz - .DA #4 A2osX.TTYDEVS=4 + .DA #3 A2osX.TTYDEVS=3 .HS 000000000000 .DA #0 ChRoot/Preemptive Disabled .HS 00000000000000 All Slots marked as "Free"