NEW AUTO 3,1 *-------------------------------------- MOU.Init .1 >PUSHBI 0 >LDYA L.DEVNAME.MOUSE >SYSCALL2 open bcc .2 inc DEVNAME.MOUSE+8 lda DEVNAME.MOUSE+8 cmp #'8' bne .1 rts .2 sta hDevMouse clc rts *-------------------------------------- MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1 sta MouseClamp+3 lsr sta CUR.Pos+S.POINT.X+1 lda DCB.GFX+S.DCB.GFX.W sta MouseClamp+2 ror sta CUR.Pos+S.POINT.X lda DCB.GFX+S.DCB.GFX.H+1 sta MouseClamp+7 lsr sta CUR.Pos+S.POINT.Y+1 lda DCB.GFX+S.DCB.GFX.H sta MouseClamp+6 ror sta CUR.Pos+S.POINT.Y >PUSHB hDevMouse >PUSHBI IOCTL.CONTROL >PUSHW L.MouseClamp >SYSCALL2 IOCTL bcs .9 >LDYA L.CUR.SaveBuf >STYA CB.PTR+S.CB.DstPtr * clc .9 rts *-------------------------------------- MOU.Quit lda hDevMouse beq .8 >PUSHA >PUSHBI IOCTL.CLOSE >PUSHWZ >SYSCALL2 IOCTL .8 clc rts *-------------------------------------- MOU.ReadMouse >PULLW ZPPtr1 lda A2osX.ASCREEN GUI screen active ? cmp DCB.GFX+S.DCB.GFX.DEVID bne .9 no, exit.... lda hDevMouse beq .9 >PUSHA >PUSHBI IOCTL.READ >PUSHW ZPPtr1 >SYSCALL2 IOCTL bcs .99 ldy #S.MOUSE.S lda (ZPPtr1),y bit #S.MOUSE.S.MOVE beq .8 lda WND.SysBar+S.OBJ.Y1 ldy #S.MOUSE.Y1 cmp (ZPPtr1),y lda WND.SysBar+S.OBJ.Y1+1 iny sbc (ZPPtr1),y bcc .8 jmp SYSBAR.Enter .8 clc rts .9 sec .99 rts *-------------------------------------- SYSBAR.Show jsr GetCBBuf bcs .9 lda #S.CB.CMD.FILLRECT jsr PutA2CBBuf lda #S.CB.OP.SET jsr PutA2CBBuf lda #S.CB.M.MONO jsr PutA2CBBuf lda PREFS.SYSBARCOLOR jsr PutA2CBBuf lda #0 S.OBJ.X1 jsr PutA2CBBuf jsr PutA2CBBuf lda WND.SysBar+S.OBJ.Y1 jsr PutA2CBBuf lda WND.SysBar+S.OBJ.Y1+1 jsr PutA2CBBuf lda WND.SysBar.A2osX.X2 jsr PutA2CBBuf lda WND.SysBar.A2osX.X2+1 jsr PutA2CBBuf lda WND.SysBar+S.OBJ.Y2 jsr PutA2CBBuf lda WND.SysBar+S.OBJ.Y2+1 jsr PutA2CBBuf lda #0 jsr PutA2CBBuf >LDYA L.WND.SysBar jsr DrawCBPtrToYA lda hCBBuf >SYSCALL FreeMem * clc .9 rts *-------------------------------------- SYSBAR.Enter clc rts *-------------------------------------- MAN SAVE usr/src/lib/libgui.s.mou LOAD usr/src/lib/libgui.s ASM