home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
372.lha
/
PopUpMenu_3.2
/
Source
/
MyFunctions.a
< prev
next >
Wrap
Text File
|
1990-05-06
|
1KB
|
60 lines
xdef @MySetMenuStrip
xdef @MyClearMenuStrip
xdef @MyOnMenu
xdef @MyOffMenu
xdef @Mystrlen
xref _OldSetMenuStrip
xref _OldClearMenuStrip
xref _OldOffMenu
xref _OldOnMenu
xref _PopUpSemaphore
_LVOObtainSemaphore EQU -$0234
_LVOReleaseSemaphore EQU -$023a
AbsExecBase EQU 4
section text,code
@MySetMenuStrip:
MOVEM.L A2/A6,-(SP)
MOVEA.L _OldSetMenuStrip,A2
BRA.B CallOldFunction
@MyClearMenuStrip:
MOVEM.L A2/A6,-(SP)
MOVEA.L _OldClearMenuStrip,A2
BRA.B CallOldFunction
@MyOnMenu: MOVEM.L A2/A6,-(SP)
MOVEA.L _OldOnMenu,A2
BRA.B CallOldFunction
@MyOffMenu: MOVEM.L A2/A6,-(SP)
MOVEA.L _OldOffMenu,A2
* ------------ Obtain semaphore and then call the intuition function.
CallOldFunction:
MOVEM.L D0/A0-A1/A6,-(SP)
LEA _PopUpSemaphore,A0
MOVE.L AbsExecBase.W,A6
JSR _LVOObtainSemaphore(A6)
MOVEM.L (SP)+,D0/A0-A1/A6
JSR (A2)
LEA _PopUpSemaphore,A0
MOVE.L AbsExecBase.W,A6
JSR _LVOReleaseSemaphore(A6)
MOVEM.L (SP)+,A2/A6
RTS
* ------------ This is the shortest strlen (I think).
@Mystrlen: MOVEQ.L #-1,D0
1$: ADDQ.L #1,D0
TST.B (A0)+
BNE.B 1$
RTS
END