-> yaec amigalib.ext !!! Jan 2001 / Leif

-> REMEMBER : .ext files are machine and OS specific!

-> small.lib should do here.. change to Your path.
LINK 'cinc:/LINKER_LIBS/AMIGA.LIB'

SECT 3
_amigalib_hookentry_:
  movem.l d2-d7/a2-a6,-(a7)  ; save regs
  move.l  a2, d0             ; save a2 in d0
  link    a2, #-SIZEOFA2SPACE ; init a2-space
  move.l  a1,-(a7)           ; parameters on stack
  move.l  d0,-(a7)
  move.l  a0,-(a7)
  move.l  a4storage, a4      ; get a4
  move.l  12(a0),a0          ; get sub-entry
  jsr     (a0)               ; execute function
  unlk    a2                 ; give back a2-space
  movem.l (a7)+,d2-d7/a2-a6  ; restore regs
  rts
ENDSECT

EXT HookEntry 0
   lea _amigalib_hookentry_, a0
   move.l a0, d0
ENDEXT

EXT Acrypt 3 ; buffer, password, username
   xref _ACrypt
   E060 _ACrypt
   lea 12(a7), a7
ENDEXT

EXT AddTOF 3 ; i, p, a
   xref _AddTOF
   E060 _AddTOF
   addq.l #8, a7
ENDEXT

EXT BeginIO 1 ; ioreq
   xref _BeginIO
   E060 _BeginIO
   addq.l #4, a7
ENDEXT

EXT CallHookA 3 ; hook, obj, msg
   xref _CallHookA
   E060 _CallHookA
   lea 12(a7), a7
ENDEXT

EXT CheckRexxMsg 1 ; rexxmsg
   xref _CheckRexxMsg
   E060 _CheckRexxMsg
   addq.l #4, a7
ENDEXT

EXT CoerceMethodA 3 ; cl, obj, msg
   xref _CoerceMethodA
   E060 _CoerceMethodA
   lea 12(a7), a7
ENDEXT

EXT CreateExtIO 2 ; port, iosize
   xref _CreateExtIO
   E060 _CreateExtIO
   addq.l #8, a7
ENDEXT

EXT CreatePort 2 ; name, pri
   xref _CreatePort
   E060 _CreatePort
   addq.l #8, a7
ENDEXT

EXT CreateStdIO 1 ; port
   xref _CreateStdIO
   E060 _CreateStdIO
   addq.l #4, a7
ENDEXT

EXT CreateTask 4 ; name, pri, initpc, stacksize
   xref _CreateTask
   E060 _CreateTask
   lea 16(a7), a7
ENDEXT

EXT CxCustom 2 ; action, id
   xref _CxCustom
   E060 _CxCustom
   addq.l #8, a7
ENDEXT

EXT CxDebug 1 ; id
   xref _CxDebug
   E060 _CxDebug
   addq.l #4, a7
ENDEXT

EXT CxFilter 1 ; description
   xref _CxFilter
   E060 _CxFilter
   addq.l #4, a7
ENDEXT

EXT CxSender 2 ; port, id
   xref _CxSender
   E060 _CxSender
   addq.l #8, a7
ENDEXT

EXT CxSignal 2 ; task, signal
   xref _CxSignal
   E060 _CxSignal
   addq.l #8, a7
ENDEXT

EXT CxTranslate 1 ; ie
   xref _CxTranslate
   E060 _CxTranslate
   addq.l #8, a7
ENDEXT

EXT DeleteExtIO 1 ; ioreq
   xref _DeleteExtIO
   E060 _DeleteExtIO
   addq.l #4, a7
ENDEXT

EXT DeletePort 1 ; port
   xref _DeletePort
   E060 _DeletePort
   addq.l #4, a7
ENDEXT

EXT DeleteStdIO 1 ; ioreq
   xref _DeleteStdIO
   E060 _DeleteStdIO
   addq.l #4, a7
ENDEXT

EXT DeleteTask 1 ; task
   xref _DeleteTask
   E060 _DeleteTask
   addq.l #4, a7
ENDEXT

EXT DoMethodA 2 ; obj, msg
   xref _DoMethodA
   E060 _DoMethodA
   addq.l #8, a7
ENDEXT

EXT DoSuperMethodA 3 ; cl, obj, msg
   xref _DoSuperMethodA
   E060 _DoSuperMethodA
   lea 12(a7), a7
ENDEXT

EXT FastRand 1 ; seed
   xref _FastRand
   E060 _FastRand
   addq.l #4, a7
ENDEXT

EXT FreeIEvents 1 ; events
   xref _FreeIEvents
   E060 _FreeIEvents
   addq.l #4, a7
ENDEXT

EXT GetRexxVar 3 ; msg, varname, bufptr
   xref _GetRexxVar
   E060 _GetRexxVar
   lea 12(a7), a7
ENDEXT

EXT HotKey 3 ; desc, port, id
   xref _HotKey
   E060 _HotKey
   addq.l #8, a7
ENDEXT

EXT InvertStr 2 ; str, km
   xref _InvertStr
   E060 _InvertStr
   addq.l #8, a7
ENDEXT

EXT NewList 1 ; list
   xref _NewList
   E060 _NewList
   addq.l #4, a7
ENDEXT

EXT RangeRand 1 ; maxval
   xref _RangeRand
   E060 _RangeRand
   addq.l #4, a7
ENDEXT

-> this function supports RangeRand().. returns oldseed
EXT SetRangeSeed 1 ; newseed
   xref _RangeSeed
   move.l _RangeSeed(a4), d0
   move.l (a7)+, _RangeSeed(a4)
ENDEXT

EXT RemTOF 1 ; i
   xref _RemTOF
   E060 _RemTOF
   addq.l #4, a7
ENDEXT

EXT SetRexxVar 4 ; msg, varname, value, length
   xref _SetRexxVar
   E060 _SetRexxVar
   lea 16(a7), a7
ENDEXT

EXT SetSuperAttrs 3 ; cl, obj, tags
   xref _DoSuperMethod
   move.l (a7)+, d0 ; cl
   move.l (a7)+, d1 ; obj
   move.l (a7)+, a0 ; tags

   move.l #0, -(a7) ; NULL
   move.l a0, -(a7) ; tags
   move.l #$103, -(a7) ; OM_SET
   move.l d1, -(a7) ; obj
   move.l d0, -(a7) ; cl
   E060 _DoSuperMethod
   lea 20(a7), a7
ENDEXT

EXT TimeDelay 3 ; unit, seconds, micros
   xref _TimeDelay
   E060 _TimeDelay
   lea 12(a7), a7
ENDEXT

EOF














