NEW PREFIX AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 .TF LIB/LIBGUI.O *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I .INB INC/GUI.I .INB INC/LIBGUI.I .INB INC/GFX.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 ZPGCPtr .EQ ZPLIB+2 ZPCBPtr .EQ ZPLIB+4 ZPWNDPtr .EQ ZPLIB+6 *-------------------------------------- * 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.A .DA SetCursorPos .DA HideCursor .DA ShowCursor .DA UpdateCursor .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.MouseClamp .DA MouseClamp L.GC.Screen .DA GC.Screen 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 .DA 0 *-------------------------------------- LIB.LOAD lda LibCount bne .8 jsr FON.Init jsr WND.Init jsr MOU.Init .8 inc LibCount clc 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 ldx #DEVMGR.WRITE GoDevGfx.Jmp jmp $ffff *-------------------------------------- .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 "GFX" DEVNAME.MOUSE .AZ "MOU1" *-------------------------------------- SYSX7 .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7" SYSX7B .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7B" *-------------------------------------- LibCount .BS 1 hDevScreen .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) *-------------------------------------- GC.Cache .BS S.GC CB.Cache .BS S.CB BM.Cache .BS S.BM *-------------------------------------- MAN SAVE USR/SRC/LIB/LIBGUI.S ASM