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.CB.Rect .DA CB.Rect L.CB.BitBlt .DA CB.BitBlt L.CB.DrawLine .DA CB.DrawLine .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 CB.BitBlt+S.CB.SrcPtr >STYA ZPPtr1 ldy #S.BM.W lda (ZPPtr1),y sta CB.BitBlt+S.CB.SrcW iny lda (ZPPtr1),y sta CB.BitBlt+S.CB.SrcW+1 iny lda (ZPPtr1),y sta CB.BitBlt+S.CB.SrcH iny lda (ZPPtr1),y sta CB.BitBlt+S.CB.SrcH+1 jsr Destop.Paint lda #CUR.T.WAIT >LIBCALL hLIBGUI,LIBGUI.SetCursor.A >LIBCALL hLIBGUI,LIBGUI.ShowCursor 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 sta $C056 >DEBUG sta $C057 jsr Destop.Paint >LIBCALL hLIBGUI,LIBGUI.ShowCursor .4 .8 clc rts *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 * asl * bpl .9 >LIBCALL hLIBGUI,LIBGUI.UpdateCursor .9 sec rts *-------------------------------------- CS.QUIT clc rts *-------------------------------------- Destop.Paint >PUSHW L.CB.Rect >LIBCALL hLIBGUI,LIBGUI.Draw >PUSHW L.CB.BitBlt >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 *-------------------------------------- CB.Rect .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET .DA #S.CB.MODE.C16 .DA #2 .DA 0 X1 .DA 0 Y1 .DA 559 X2 .DA 191 Y2 .DA #0 *-------------------------------------- CB.BitBlt .DA #S.CB.CMD.BITBLT .DA #S.CB.OP.SET .DA #S.CB.MODE.MONO .DA #0 .DA 0 X1 .DA 0 Y1 .BS 2 W .BS 2 H .DA 130 DestX .DA 20 DestY .BS 2 SrcPtr .DA 0 .DA #0 *-------------------------------------- CB.DrawLine .DA #0 .DA #S.CB.CMD.DRAWLINE .DA #S.CB.OP.XOR .DA #S.CB.MODE.MONO .DA #1 .BS 2 X1 .BS 2 Y1 .BS 2 X2 .BS 2 Y2 .DA #0 *-------------------------------------- .DUMMY .OR 0 DS.START DS.END .ED MAN SAVE /A2OSX.SRC/SBIN/GUI.S ASM