PR#3 PREFIX /A2OSX.BUILD NEW INC 1 AUTO 6 .LIST OFF .OP 65C02 .OR $2000 .TF /A2OSX.BUILD/SBIN/GUI *-------------------------------------- .INB /A2OSX.BUILD/INC/IO.I .INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/A2OSX.I .INB /A2OSX.BUILD/INC/LIBGUI.I *-------------------------------------- ZPPtr1 .EQ ZPBIN *-------------------------------------- * 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 CS .DA DS.END-DS.START DS .DA #16 SS .DA #2 ZP .DA 0 *-------------------------------------- * Relocation Table *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT L.MSG.INIT .DA MSG.INIT L.LIBGUI .DA LIBGUI L.Filename .DA Filename L.MouseData .DA MouseData L.Rect.CB .DA Rect.CB L.DrawLines.CB .DA DrawLines.CB L.BitBlT.CB .DA BitBlT.CB .DA 0 *-------------------------------------- CS.INIT >LDYA L.MSG.INIT >SYSCALL PrintF.YA >LDYA L.LIBGUI >SYSCALL LoadLib.YA bcs .9 sta hLIBGUI >LIBCALL hLIBGUI,LIBGUI.InitGUI bcs .9 >PUSHWI 0 Aux type >PUSHBI $CB Type >PUSHBI SYS.FOpen.R >PUSHW L.FILENAME >SYSCALL LoadFile bcs .9 txa >SYSCALL GetMemPtr.A >STYA BitBlT.CB+S.CB.SrcPtr lda (pPs) ora #S.PS.F.EVENT Now accept events sta (pPs) clc .9 rts *-------------------------------------- CS.RUN lda A2osX.ASCREEN GUI screen active ? cmp #3 bne .8 no, exit.... >PUSHW L.MouseData >LIBCALL hLIBGUI,LIBGUI.ReadMouse bcs .4 lda MouseData+S.MOUSE.S bit #S.MOUSE.S.MOVE beq .1 >PUSHW L.MouseData >LIBCALL hLIBGUI,LIBGUI.SetCursorPos lda MouseData+S.MOUSE.S .1 bit #S.MOUSE.S.DOWN beq .4 jsr Destop.Paint .4 .8 clc rts *-------------------------------------- CS.DOEVENT sec rts *-------------------------------------- CS.QUIT clc rts *-------------------------------------- Destop.Paint >PUSHW L.Rect.CB >LIBCALL hLIBGUI,LIBGUI.Draw >LDYAI 105 >STYA BitBlT.CB+S.CB.DestX >PUSHW L.BitBlt.CB >LIBCALL hLIBGUI,LIBGUI.Draw >LDYAI 246 >STYA BitBlT.CB+S.CB.DestX >PUSHW L.BitBlt.CB >LIBCALL hLIBGUI,LIBGUI.Draw >LDYAI 387 >STYA BitBlT.CB+S.CB.DestX >PUSHW L.BitBlt.CB >LIBCALL hLIBGUI,LIBGUI.Draw rts *-------------------------------------- *-------------------------------------- *-------------------------------------- CS.END LIBGUI >CSTR "libgui.o" MSG.INIT >CSTR "GUI:Init...\r\n" hLIBGUI .BS 1 *-------------------------------------- Filename >CSTR "/A2OSX.BUILD/MARILYN" *-------------------------------------- MouseData .DA S.MOUSE *-------------------------------------- Rect.CB .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET .DA #S.CB.MODE.C16 .DA #1 .DA 0 .DA 0 .DA 559 .DA 191 .DA #0 .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET .DA #S.CB.MODE.MONO .DA #1 .DA 10 .DA 5 .DA 549 .DA 186 .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET .DA #S.CB.MODE.C16 .DA #7 .DA 20 .DA 10 .DA 539 .DA 181 .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET .DA #S.CB.MODE.C16 .DA #4 .DA 30 .DA 15 .DA 529 .DA 176 .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET .DA #S.CB.MODE.MONO .DA #0 .DA 40 .DA 20 .DA 519 .DA 171 .DA #0 *-------------------------------------- DrawLines.CB .DA #S.CB.CMD.DRAWLINE .DA #S.CB.OP.SET .DA #S.CB.MODE.C16 .DA #1 .DA 80 .DA 191 .DA 80+191 .DA 191+191 .DA #S.CB.CMD.DRAWLINE .DA #S.CB.OP.XOR .DA #S.CB.MODE.MONO .DA #1 .DA 90 .DA 0 .DA 140 .DA 191 .DA #S.CB.CMD.DRAWLINE .DA #S.CB.OP.SET .DA #S.CB.MODE.MONO .DA #1 .DA 100 .DA 0 .DA 100+191 .DA 191 .DA #S.CB.CMD.DRAWLINE .DA #S.CB.OP.SET .DA #S.CB.MODE.C16 .DA #15 .DA 110 .DA 0 .DA 559 .DA 191 .DA #S.CB.CMD.DRAWLINE .DA #S.CB.OP.SET .DA #S.CB.MODE.MONO .DA #1 .DA 28 .DA 0 .DA 28 .DA 191 .DA #S.CB.CMD.DRAWLINE .DA #S.CB.OP.SET .DA #S.CB.MODE.MONO .DA #1 .DA 84 .DA 0 .DA 84 .DA 191 .DA #S.CB.CMD.DRAWLINE .DA #S.CB.OP.XOR .DA #S.CB.MODE.MONO .DA #1 .DA 0 .DA 92 .DA 559 .DA 92 .DA #0 *-------------------------------------- BitBlT.CB .DA #S.CB.CMD.BITBLT .DA #S.CB.OP.SET .DA #S.CB.MODE.MONO .DA #0 .DA 0 X1 .DA 0 Y1 .DA 140 X2 .DA 149 y2 .BS 2 DestX .DA 24 DestY .BS 2 SrcPtr .DA 0 .DA #0 *-------------------------------------- .DUMMY .OR 0 DS.START DS.END .ED MAN SAVE /A2OSX.SRC/SBIN/GUI.S ASM