home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_progs
/
mouse_ut
/
mousutil.lzh
/
MOUSEUTIL
/
MOUSEUTIL1.1.ASM
< prev
next >
Wrap
Assembly Source File
|
1991-08-16
|
9KB
|
442 lines
******************************************************************
* *
* Assembly Code For: MouseUtil Version 1.1 *
* Programming By: Luciano Bertato *
* CompuServe: 73246,1744 *
* Canada Remote Systems: LUCIANO BERTATO *
* Date: Friday July 15, 1988 *
* *
******************************************************************
** external reference
XREF _AbsExecBase
** macros
LIBCALL MACRO
XREF _LVO\1
CLR.L d0
MOVEA.L _AbsExecBase,a6
JSR _LVO\1(a6)
ENDM
CALL MACRO
XREF _LVO\1
JSR _LVO\1(a6)
ENDM
FILL MACRO
MOVE.L #\1,d0
MOVE.L #\2,d1
MOVE.L #\3,d2
MOVE.L #\4,d3
MOVEA.L RPort,a1
CALL RectFill
ENDM
** open everything ***********************************************
** start
_main:
movem.l d0-d7/a0-a6,-(sp)
movea.l #IntuiName,a1
LIBCALL OpenLibrary
move.l d0,IntuitionBase
beq abort1
movea.l #DosName,a1
LIBCALL OpenLibrary
move.l d0,DosBase
beq abort2
movea.l #GfxName,a1
LIBCALL OpenLibrary
move.l d0,GfxBase
beq abort3
movea.l #PrefBuffer,a0
movea.l IntuitionBase,a6
move.l #PrefBufferSize,d0
CALL GetPrefs
tst.w d0
beq abort4
move.l d0,a0
move.w PointerTicks(a0),d0
move.w d0,TickValue
cmp.w #4,d0
beq Fourset
cmp.w #2,d0
beq Twoset
or.w #SELECTED,OneGadget+12
bra Windowmake
Twoset:
or.w #SELECTED,TwoGadget+12
bra Windowmake
Fourset:
or.w #SELECTED,FourGadget+12
Windowmake:
movea.l #window,a0
movea.l IntuitionBase,a6
CALL OpenWindow
move.l d0,Windowptr
beq abort4
move.l d0,a0
move.l wd_RPort(a0),RPort
******************************************************************
**waiting for gadget selection
AdjustLoop:
movea.l Windowptr,a0
movea.l wd_UserPort(a0),a0
move.b MP_SIGBIT(a0),d1
moveq.l #1,d0
lsl.l d1,d0
movea.l _AbsExecBase,a6
CALL Wait
******************************************************************
movea.l Windowptr,a0
movea.l wd_UserPort(a0),a0
movea.l _AbsExecBase,a6
CALL GetMsg
movea.l d0,a1
move.l a1,-(sp)
movea.l im_IAddress(a1),a0
move.w gg_GadgetID(a0),d0
cmp.w #8,d0
beq Done
cmp.w #16,d0
bne AdjustTicks
move.w TickValue,d0
bsr ChangeTicks
bra Done
AdjustTicks:
bsr ChangeTicks
movea.l (sp)+,a1
bsr Reply
move.w NewTickValue,d0
cmp.w #1,d0
bne Jump1
or.w #SELECTED,OneGadget+12
bra Jump2
Jump1:
and.w #DESELECTED,OneGadget+12
Jump2:
cmp.w #2,d0
bne Jump3
or.w #SELECTED,TwoGadget+12
bra Jump4
Jump3:
and.w #DESELECTED,TwoGadget+12
Jump4:
cmp.w #4,d0
bne Jump5
or.w #SELECTED,FourGadget+12
bra Jump6
Jump5:
and.w #DESELECTED,FourGadget+12
Jump6:
movea.l GfxBase,a6
movea.l RPort,a1
moveq.l #COLOR,d0
CALL SetAPen
FILL $3b,$2e,$7c,$38
FILL $7f,$2e,$c0,$38
FILL $c3,$2e,$104,$38
movea.l #OneGadget,a0
movea.l Windowptr,a1
movea.l #0,a2
movea.l IntuitionBase,a6
CALL RefreshGadgets
bra AdjustLoop
** exit program **************************************************
**Done
Done:
movea.l (sp)+,a1
bsr Reply
**abort
abort5:
movea.l Windowptr,a0
movea.l IntuitionBase,a6
CALL CloseWindow
abort4:
movea.l GfxBase,a1
LIBCALL CloseLibrary
abort3:
movea.l DosBase,a1
LIBCALL CloseLibrary
abort2:
movea.l IntuitionBase,a1
LIBCALL CloseLibrary
abort1:
movem.l (sp)+,d0-d7/a0-a6
clr.l d0
rts
******************************************************************
**subroutines
ChangeTicks:
movea.l #PrefBuffer,a0
lea PointerTicks(a0),a1
move.w d0,(a1)
move.w d0,NewTickValue
movea.l IntuitionBase,a6
move.l #PrefBufferSize,d0
moveq.l #1,d1
CALL SetPrefs
rts
Reply:
movea.l _AbsExecBase,a6
CALL ReplyMsg
rts
******************************************************************
SECTION data,DATA
window:
dc.w 30,30,320,90
dc.b 0,1
dc.l IDCMPflags,flags,DoneGadget,0,title,0,0
dc.w 1,1,640,200,WBENCHSCREEN
******************************************************************
DoneGadget:
dc.l CancelGadget
dc.w 200,70,50,11
dc.w GADGHCOMP,RELVERIFY,BOOLGADGET
dc.l Done_border,0,Done_text,0,0
dc.w 8
dc.l 0
Done_text:
dc.b 1,0,1,0
dc.w 2,2
dc.l 0,DG_text,0
Done_border:
dc.w -1,-1
dc.b 1,0,JAM1,5
dc.l DoneXY,0
DoneXY:
dc.w 0,0
dc.w 51,0
dc.w 51,12
dc.w 0,12
dc.w 0,0
DG_text:
dc.b ' Done ',0,0
******************************************************************
CancelGadget:
dc.l OneGadget
dc.w 70,70,66,11
dc.w GADGHCOMP,RELVERIFY,BOOLGADGET
dc.l Cancel_border,0,Cancel_text,0,0
dc.w 16
dc.l 0
Cancel_text:
dc.b 1,0,1,0
dc.w 2,2
dc.l 0,CG_text,0
Cancel_border:
dc.w -1,-1
dc.b 1,0,JAM1,5
dc.l CancelXY,0
CancelXY:
dc.w 0,0
dc.w 67,0
dc.w 67,12
dc.w 0,12
dc.w 0,0
CG_text:
dc.b ' Cancel ',0,0
******************************************************************
OneGadget:
dc.l TwoGadget
dc.w 195,46,66,11
dc.w GADGHCOMP,RELVERIFY,BOOLGADGET
dc.l One_border,0,One_text,0,0
dc.w 1
dc.l 0
One_text:
dc.b 1,0,1,0
dc.w 31,2
dc.l 0,OG_text,0
One_border:
dc.w -1,-1
dc.b 1,0,JAM1,5
dc.l OneXY,0
OneXY:
dc.w 0,0
dc.w 67,0
dc.w 67,12
dc.w 0,12
dc.w 0,0
OG_text:
dc.b '1',0
******************************************************************
TwoGadget:
dc.l FourGadget
dc.w 127,46,66,11
dc.w GADGHCOMP,RELVERIFY,BOOLGADGET
dc.l Two_border,0,Two_text,0,0
dc.w 2
dc.l 0
Two_text:
dc.b 1,0,1,0
dc.w 31,2
dc.l 0,TG_text,0
Two_border:
dc.w -1,-1
dc.b 1,0,JAM1,5
dc.l TwoXY,0
TwoXY:
dc.w 0,0
dc.w 67,0
dc.w 67,12
dc.w 0,12
dc.w 0,0
TG_text:
dc.b '2',0
******************************************************************
FourGadget:
dc.l 0
dc.w 59,46,66,11
dc.w GADGHCOMP,RELVERIFY,BOOLGADGET
dc.l Four_border,0,Four_text,0,0
dc.w 4
dc.l 0
Four_text:
dc.b 1,0,1,0
dc.w 31,2
dc.l 0,FG_text,Four_text2
Four_text2:
dc.b 1,0,1,0
dc.w 10,-26
dc.l 0,FG_text2,Four_text3
Four_text3:
dc.b 1,0,1,0
dc.w 0,-9
dc.l 0,FG_text3,Four_text4
Four_text4:
dc.b 1,0,1,0
dc.w 168,-9
dc.l 0,FG_text4,0
Four_border:
dc.w -1,-1
dc.b 1,0,JAM1,5
dc.l FourXY,0
FourXY:
dc.w 0,0
dc.w 67,0
dc.w 67,12
dc.w 0,12
dc.w 0,0
FG_text:
dc.b '4',0
FG_text2:
dc.b 'Select The Mouse Speed:',0
FG_text3:
dc.b 'Slow',0,0
FG_text4:
dc.b 'Fast',0,0
******************************************************************
title:
dc.b ' MouseUtil V1.1 ',0,0
IntuiName:
dc.b 'intuition.library',0
DosName:
dc.b 'dos.library',0
GfxName:
dc.b 'graphics.library',0,0
******************************************************************
WBENCHSCREEN EQU $0001
ACTIVATE EQU $1000
WINDOWDRAG EQU $0002
WINDOWCLOSE EQU $0008
SMART_REFRESH EQU $0000
STRGADGET EQU $0004
BOOLGADGET EQU $0001
PROPGADGET EQU $0003
TOGGLESELECT EQU $0100
RELVERIFY EQU $0001
GADGIMMEDIATE EQU $0002
FOLLOWMOUSE EQU $0008
SELECTED EQU $0080
DESELECTED EQU $FF7F
GADGHCOMP EQU $0000
GADGHBOX EQU $0001
GADGHIMAGE EQU $0002
GADGHNONE EQU $0003
CLOSEWINDOW EQU $00000200
GADGETUP EQU $00000040
FREEVERT EQU $0004
FREEHORIZ EQU $0002
AUTOKNOB EQU $0001
JAM1 EQU $0000
MP_SIGBIT EQU $0F
wd_UserPort EQU $56
wd_RPort EQU $32
im_IAddress EQU $1c
gg_GadgetID EQU 38
PointerTicks EQU $6c
PrefBufferSize EQU 232
COLOR EQU 0
flags EQU ACTIVATE!WINDOWDRAG!SMART_REFRESH
IDCMPflags EQU GADGETUP
******************************************************************
SECTION mem,BSS
IntuitionBase:
ds.l 1 ;intuition base address pointer
DosBase:
ds.l 1 ;dos base address pointer
GfxBase:
ds.l 1 ;graphics base address pointer
Windowptr:
ds.l 1 ;pointer to window
RPort:
ds.l 1 ;rp pointer for window
TickValue:
ds.w 1 ;original mouse speed
NewTickValue:
ds.w 1 ;changed mouse speed
PrefBuffer:
ds.b 232 ;preferences buffer
******************************************************************
END