NEW PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 .TF /A2OSX.BUILD/LIB/LIBGUI.O *-------------------------------------- .INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/A2OSX.I .INB /A2OSX.BUILD/INC/GUI.I .INB /A2OSX.BUILD/INC/LIBGUI.I .INB /A2OSX.BUILD/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 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.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 *-------------------------------------- ReadMouse >PULLYA ldx hDevMouse Mouse is active ? beq .9 ldx #DEVMGR.READBLOCK jmp GoDevMouse .9 sec rts *-------------------------------------- GetScreenGC >LDYA L.GC.Screen rts *-------------------------------------- GoDevGfx >LDYA L.CB.Cache ldx #DEVMGR.WRITE GoDevGfx.Jmp jmp $ffff *-------------------------------------- .INB /A2OSX.SRC/LIB/LIBGUI.S.BM .INB /A2OSX.SRC/LIB/LIBGUI.S.BUT .INB /A2OSX.SRC/LIB/LIBGUI.S.CLIP .INB /A2OSX.SRC/LIB/LIBGUI.S.CUR .INB /A2OSX.SRC/LIB/LIBGUI.S.DRAW .INB /A2OSX.SRC/LIB/LIBGUI.S.FON .INB /A2OSX.SRC/LIB/LIBGUI.S.MENU .INB /A2OSX.SRC/LIB/LIBGUI.S.MOU .INB /A2OSX.SRC/LIB/LIBGUI.S.PAT .INB /A2OSX.SRC/LIB/LIBGUI.S.WND *-------------------------------------- CS.END *-------------------------------------- .INB /A2OSX.SRC/LIB/LIBGUI.G.BM .INB /A2OSX.SRC/LIB/LIBGUI.G.CUR .INB /A2OSX.SRC/LIB/LIBGUI.G.FON .INB /A2OSX.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 /A2OSX.SRC/LIB/LIBGUI.S ASM