; yaec amigalib.ext !!! Jan 2001 / Leif

; REMEMBER : .ext files are machine and OS specific!

; small.lib should do here..
LINK e:linklib/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, -#400            -> 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
  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
   bsr _ACrypt
   lea 12(a7), a7
ENDEXT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

EXT RangeRand 1 ; maxval
   xref _RangeRand
   bsr _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
   bsr _RemTOF
   addq.l #4, a7
ENDEXT

EXT SetRexxVar 4 ; msg, varname, value, length
   xref _SetRexxVar
   bsr _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
   bsr _DoSuperMethod
   lea 20(a7), a7
ENDEXT

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

EOF














