home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1997 #3 / amigaacscoverdisc / games / installers / superwonderboy / src / lib / macros.i < prev    next >
Text File  |  1997-05-19  |  2KB  |  125 lines

  1.  
  2.     include    "/lib/utils_macros.i"
  3.  
  4. GO_SUPERVISOR:MACRO
  5.     move.l    A6,-(sp)
  6.     move.l    _SysBase,A6
  7.     JSRLIB    SuperState
  8.     move.l    D0,_userstack
  9.     move.l    (sp)+,A6
  10.     ENDM
  11.  
  12.  
  13. GO_USER:MACRO
  14.     move.l    _userstack,D0
  15.     beq    gsk$
  16.     move.l    A6,-(sp)
  17.     move.l    _SysBase,A6
  18.     JSRLIB    UserState
  19.     move.l    (sp)+,A6
  20. gsk$
  21.     ENDM
  22.  
  23. SAVE_OSDATA:MACRO
  24.     move.l    D0,-(sp)
  25.     move.l    #\1,D0
  26.     JSRABS    SaveOSData
  27.     move.l    (sp)+,D0
  28.     ENDM
  29.  
  30. GETUSRADDR:MACRO
  31.     move.l    _user_pbuffer(PC),D0
  32.     add.l    #\1,D0
  33.     sub.l    #_UserPatchRoutines,D0
  34.     ENDM
  35.  
  36. PATCHABSJMP:MACRO
  37.     movem.l    D0/A1,-(sp)
  38.     lea    \1,A1
  39.     move.w    #$4EF9,(A1)+
  40.     move.l    #\2,(A1)+
  41.     movem.l    (sp)+,D0/A1
  42.     ENDM
  43.  
  44. PATCHABSJSR:MACRO
  45.     movem.l    D0/A1,-(sp)
  46.     lea    \1,A1
  47.     move.w    #$4EB9,(A1)+
  48.     move.l    #\2,(A1)+
  49.     movem.l    (sp)+,D0/A1
  50.     ENDM
  51.  
  52.  
  53. PATCHUSRJMP:MACRO
  54.     movem.l    D0/A1,-(sp)
  55.     GETUSRADDR    \2
  56.     lea    \1,A1
  57.     move.w    #$4EF9,(A1)+
  58.     move.l    D0,(A1)+
  59.     movem.l    (sp)+,D0/A1
  60.     ENDM
  61.  
  62. PATCHUSRJSR:MACRO
  63.     movem.l    D0/A1,-(sp)
  64.     GETUSRADDR    \2
  65.     lea    \1,A1
  66.     move.w    #$4EB9,(A1)+
  67.     move.l    D0,(A1)+
  68.     movem.l    (sp)+,D0/A1
  69.     ENDM
  70.  
  71. PATCHGENJMP:MACRO
  72.     movem.l    D0/A1,-(sp)
  73.     GETGENADDR    \2
  74.     lea    \1,A1
  75.     move.w    #$4EF9,(A1)+
  76.     move.l    D0,(A1)+
  77.     movem.l    (sp)+,D0/A1
  78.     ENDM
  79.  
  80. PATCHGENJSR:MACRO
  81.     movem.l    D0/A1,-(sp)
  82.     GETGENADDR    \2
  83.     lea    \1,A1
  84.     move.w    #$4EB9,(A1)+
  85.     move.l    D0,(A1)+
  86.     movem.l    (sp)+,D0/A1
  87.     ENDM
  88.  
  89.  
  90. RELOCATE:MACRO
  91.     movem.l    D0/A0/A1,-(sp)
  92.     GETUSRADDR    \1
  93.     move.l    D0,A0
  94.     move.l    #\1,A1        ; to be sure to get absolute address.
  95.     move.l    (A1),(A0)    ; relocation in the usr patch routines zone.
  96.     movem.l    (sp)+,D0/A0/A1
  97.     ENDM
  98.  
  99. HD_PARAMS:MACRO
  100. fname:
  101.     dc.b    \1
  102. nname:
  103.     dc.b    "0",0
  104.     XDEF    _conname
  105. _conname:
  106.     dc.b    \2,0
  107.     cnop    0,4
  108.     XDEF    _fname_val
  109. _fname_val:
  110.     dc.l    fname
  111.     XDEF    _nname_val
  112. _nname_val:
  113.     dc.l    nname
  114.     XDEF    _filesize
  115. _filesize:
  116.     dc.l    \3
  117.     XDEF    _nbdisks
  118. _nbdisks:
  119.     dc.l    \4
  120.     XDEF    _doonexit
  121. _doonexit:
  122.     dc.l    0        ; fill this field with a procedure that the loader    
  123.                 ; will call on exit, or leave to 0
  124.     ENDM
  125.