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 >
Assembly Source File  |  1990-07-03  |  2KB  |  94 lines

  1.     INCLUDE "libraries/reqbase.i"
  2.  
  3.     XREF    _ReqBase
  4.  
  5. GLUE    MACRO
  6.     XDEF    _\1
  7. _\1
  8.     ENDM
  9.  
  10. STACKOFFSET    EQU    4
  11.  
  12.     SECTION    "ReqGlue",CODE
  13.  
  14. SureText    DC.B    "  Ok  ",0
  15. CancelText    DC.B    "Cancel",0
  16. ResumeText    DC.B    "Resume",0
  17. SysTitle    DC.B    "System Request",0
  18.  
  19.     DC.L    0
  20.  
  21.     GLUE    Format
  22.     MOVE.L    A2,-(SP)
  23.     MOVE.L    A6,-(SP)
  24.     MOVE.L    STACKOFFSET+8(SP),A2
  25.     MOVE.L    STACKOFFSET+12(SP),A0
  26.     LEA    STACKOFFSET+16(SP),A1
  27.     MOVE.L    _ReqBase,A6
  28.     JSR    _LVOFormat(A6)
  29.     MOVE.L    (SP)+,A6
  30.     MOVE.L    (SP)+,A2
  31.     RTS
  32.  
  33.     GLUE    SimpleRequest
  34.     MOVE.L    STACKOFFSET(SP),A0
  35.     LEA    STACKOFFSET+4(SP),A1
  36.     BRA    SimpleRequest
  37.  
  38.     GLUE    TwoGadRequest
  39.     MOVE.L    STACKOFFSET(SP),A0
  40.     LEA    STACKOFFSET+4(SP),A1
  41.     BRA    TwoGadRequest
  42.  
  43. ;----------------------------------------------------
  44.     XDEF    TwoGadRequest
  45. TwoGadRequest:
  46. ;Bool=TwoGadRequest(String,Controls)
  47. ;                     A0      A1
  48.  
  49.     MOVEM.L    A2-A4/D2,-(SP)
  50.     LEA.L    SureText,A2
  51.     LEA.L    CancelText,A3
  52.     BRA.S    TheRequest
  53.  
  54.     XDEF    SimpleRequest
  55. SimpleRequest:
  56.  
  57. ;SimpleRequest(Text,Controls)
  58. ;               A0    A1
  59. ; This is just a method of telling a user something. It just calls MultiRequest
  60. ; with no gadgets.
  61.  
  62.     MOVEM.L    A2-A4/D2,-(SP)
  63.     SUBA.L    A2,A2
  64.     LEA.L    ResumeText,A3
  65.  
  66. TheRequest
  67.  
  68.     MOVE.L    _ReqBase,A6        ;Load A6 from the data segment _before_ tromping on A4.
  69.  
  70.     SUB.W    #TR_SIZEOF,SP        ;get some temporary storage.
  71.  
  72.     MOVE.L    SP,A4
  73.     MOVEQ    #TR_SIZEOF/2-1,D2    ;because the stack is almost never clear.
  74. 1$    CLR.W    (A4)+
  75.     DBF    D2,1$
  76.  
  77.     MOVE.L    A0,TR_Text(SP)
  78.     MOVE.L    A1,TR_Controls(SP)
  79.     MOVE.L    A2,TR_PositiveText(SP)
  80.     MOVE.L    A3,TR_NegativeText(SP)
  81.     MOVE.L    #SysTitle,TR_Title(SP)
  82.  
  83.     MOVE.W    #$FFFF,TR_KeyMask(SP)
  84.  
  85.     MOVE.L    SP,A0
  86.     JSR    _LVOTextRequest(A6)
  87.  
  88.     ADD.W    #TR_SIZEOF,SP
  89.  
  90.     MOVEM.L    (SP)+,A2-A4/D2
  91.     RTS
  92.  
  93.     END
  94.