home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
392.lha
/
CompDisk
/
ReqGlue
/
ReqGlue.asm
< prev
next >
Wrap
Assembly Source File
|
1990-07-03
|
2KB
|
94 lines
INCLUDE "libraries/reqbase.i"
XREF _ReqBase
GLUE MACRO
XDEF _\1
_\1
ENDM
STACKOFFSET EQU 4
SECTION "ReqGlue",CODE
SureText DC.B " Ok ",0
CancelText DC.B "Cancel",0
ResumeText DC.B "Resume",0
SysTitle DC.B "System Request",0
DC.L 0
GLUE Format
MOVE.L A2,-(SP)
MOVE.L A6,-(SP)
MOVE.L STACKOFFSET+8(SP),A2
MOVE.L STACKOFFSET+12(SP),A0
LEA STACKOFFSET+16(SP),A1
MOVE.L _ReqBase,A6
JSR _LVOFormat(A6)
MOVE.L (SP)+,A6
MOVE.L (SP)+,A2
RTS
GLUE SimpleRequest
MOVE.L STACKOFFSET(SP),A0
LEA STACKOFFSET+4(SP),A1
BRA SimpleRequest
GLUE TwoGadRequest
MOVE.L STACKOFFSET(SP),A0
LEA STACKOFFSET+4(SP),A1
BRA TwoGadRequest
;----------------------------------------------------
XDEF TwoGadRequest
TwoGadRequest:
;Bool=TwoGadRequest(String,Controls)
; A0 A1
MOVEM.L A2-A4/D2,-(SP)
LEA.L SureText,A2
LEA.L CancelText,A3
BRA.S TheRequest
XDEF SimpleRequest
SimpleRequest:
;SimpleRequest(Text,Controls)
; A0 A1
; This is just a method of telling a user something. It just calls MultiRequest
; with no gadgets.
MOVEM.L A2-A4/D2,-(SP)
SUBA.L A2,A2
LEA.L ResumeText,A3
TheRequest
MOVE.L _ReqBase,A6 ;Load A6 from the data segment _before_ tromping on A4.
SUB.W #TR_SIZEOF,SP ;get some temporary storage.
MOVE.L SP,A4
MOVEQ #TR_SIZEOF/2-1,D2 ;because the stack is almost never clear.
1$ CLR.W (A4)+
DBF D2,1$
MOVE.L A0,TR_Text(SP)
MOVE.L A1,TR_Controls(SP)
MOVE.L A2,TR_PositiveText(SP)
MOVE.L A3,TR_NegativeText(SP)
MOVE.L #SysTitle,TR_Title(SP)
MOVE.W #$FFFF,TR_KeyMask(SP)
MOVE.L SP,A0
JSR _LVOTextRequest(A6)
ADD.W #TR_SIZEOF,SP
MOVEM.L (SP)+,A2-A4/D2
RTS
END