NEW PREFIX AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 .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 *-------------------------------------- WND.MAX .EQ 64 *-------------------------------------- .MA SWAP16 lda ]1 ldx ]2 stx ]1 sta ]2 lda ]1+1 ldx ]2+1 stx ]1+1 sta ]2+1 .EM .MA NOT16 sec lda #0 sbc ]1 sta ]1 lda #0 sbc ]1+1 sta ]1+1 .EM .MA SCMPAX sec sbc ]1 txa sbc ]1+1 bvc :1 eor #$80 :1 .EQ * .EM *-------------------------------------- ZPPtr1 .EQ ZPLIB ZPPtr2 .EQ ZPLIB+2 ZPGCPtr .EQ ZPLIB+4 ZPCBPtr .EQ ZPLIB+6 ZPWNDPtr .EQ ZPLIB+8 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- 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 .DA 0 .DA 0 .DA 0 *-------------------------------------- * Relocation Table *-------------------------------------- .1 .DA LIB.LOAD .DA LIB.UNLOAD .DA Draw .DA SetCursor .DA SetCursorPos .DA HideCursor .DA ShowCursor .DA UpdateCursor .DA MOU.ReadMouse .DA GetScreenGC *-------------------------------------- J.Cmds .DA DrawLine .DA DrawText *-------------------------------------- L.DEVNAME.GFX .DA DEVNAME.GFX L.DEVNAME.MOUSE .DA DEVNAME.MOUSE L.SYSX7 .DA SYSX7 L.SYSX7B .DA SYSX7B L.IOCTL .DA IOCTL L.DCB.GFX .DA DCB.GFX L.MouseClamp .DA MouseClamp L.GC.Screen .DA GC.Screen L.GC.Desktop .DA GC.Desktop L.GC.SysBar .DA GC.SysBar L.CB.Cache .DA CB.Cache *-------------------------------------- L.CUR.CB .DA CUR.CB L.CUR.SaveBuf .DA CUR.SaveBuf L.Cursors .DA CUR.Arrow .DA CUR.ResizeX .DA CUR.ResizeY .DA CUR.ResizeXY1 .DA CUR.ResizeXY2 .DA CUR.Cross .DA CUR.Text .DA CUR.Wait1 .DA CUR.Wait2 .DA CUR.Wait3 .DA CUR.Wait4 .DA CUR.Wait5 .DA CUR.Wait6 J.Clip .DA CLIP.Point SETPIXEL .DA CLIP.Point GETPIXEL .DA CLIP.HLine .DA CLIP.VLine .DA CLIP.Rect FILLRECT .DA CLIP.BitBlt .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 MOU.Init bcs .9 jsr WND.Init bcs .9 lda hDevMouse beq .8 jsr MOU.Setup .8 inc LibCount clc .9 rts *-------------------------------------- LIB.UNLOAD dec LibCount bne .8 jsr MOU.Quit .8 clc rts *-------------------------------------- GC.Get >STYA .1+1 ldx #S.GC-1 .1 lda $ffff,x SELF MODIFIED sta GC.Cache,x dex bpl .1 rts *-------------------------------------- CB.Get >STYA .1+1 ldx #S.CB-1 .1 lda $ffff,x SELF MODIFIED sta CB.Cache,x dex bpl .1 rts *-------------------------------------- GetScreenGC >LDYA L.GC.Screen rts *-------------------------------------- GoDevGfx >LDYA L.CB.Cache GFXWrite.YA >PUSHYA >PUSHBI IOCTL.WRITE lda hDevGFX >SYSCALL IOCTL rts *-------------------------------------- .INB USR/SRC/LIB/LIBGUI.S.BM .INB USR/SRC/LIB/LIBGUI.S.BUT .INB USR/SRC/LIB/LIBGUI.S.CLIP .INB USR/SRC/LIB/LIBGUI.S.CUR .INB USR/SRC/LIB/LIBGUI.S.DRAW .INB USR/SRC/LIB/LIBGUI.S.FON .INB USR/SRC/LIB/LIBGUI.S.MENU .INB USR/SRC/LIB/LIBGUI.S.MOU .INB USR/SRC/LIB/LIBGUI.S.PAT .INB USR/SRC/LIB/LIBGUI.S.WND *-------------------------------------- CS.END *-------------------------------------- .INB USR/SRC/LIB/LIBGUI.G.BM .INB USR/SRC/LIB/LIBGUI.G.CUR .INB USR/SRC/LIB/LIBGUI.G.FON .INB USR/SRC/LIB/LIBGUI.G.WND *-------------------------------------- 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 hDevGFX .BS 1 hDevMouse .BS 1 *-------------------------------------- DX .BS 2 DY .BS 2 IY .BS 1 IE .BS 2 D .BS 2 INE .BS 2 Counter .BS 2 CLIP.Line.P1 .BS 1 CLIP.Line.P2 .BS 1 *-------------------------------------- CB.CmdLen .DA S.CB.Y1+1 SETPIXEL .DA S.CB.Y1+1 GETPIXEL .DA S.CB.X2+1 HLINE .DA S.CB.Y2+1 VLINE .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 *-------------------------------------- MouseClamp .BS 8 *-------------------------------------- PAT.Buf .BS 1 S.BM.F .DA #1 S.BM.RowBytes .DA 8 S.BM.W .DA 8 S.BM.H .DA 0 S.BM.MASK.OFS .BS 8 (data) *-------------------------------------- IOCTL .BS S.IOCTL DCB.GFX .BS S.DCB.GFX *-------------------------------------- GC.Screen .BS S.GC GC.Desktop .BS S.GC GC.SysBar .BS S.GC *-------------------------------------- GC.Cache .BS S.GC CB.Cache .BS S.CB BM.Cache .BS S.BM *-------------------------------------- MAN SAVE USR/SRC/LIB/LIBGUI.S ASM