home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 418.lha / OdinLibrary_v1.11 / odinglue.asm < prev    next >
Encoding:
Assembly Source File  |  1990-09-01  |  2.9 KB  |  177 lines

  1. ;odinglue.asm 
  2. ;Created 4-Jul-90 by Peter Oerbaek
  3. ;Last updated 11-Jul-90 by Peter Oerbaek
  4. ;This is in the public domain.
  5. ;C-interface gluecode for odin.library V1.11
  6. ;Assemble with 'as' for Aztec-C 3.40a or later
  7. ;Assemble with Assem/A68K for Lattice / DICE / PDC
  8. ;Assembles OK as is with A68K 2.6!!!!
  9.  
  10. ;public    macro        ;de-comment this for use with Assem
  11. ;    XDEF    \1
  12. ;    endm
  13.  
  14. __CreateEnvelope    equ    -30
  15. __InitEnvelope    equ    -36
  16. __DisposeEnvelope    equ    -42
  17. __StartTask    equ    -48
  18. __StartProcess    equ    -54
  19. __In        equ    -60
  20. __Rd        equ    -66
  21. __Out        equ    -72
  22. __CopyOut        equ    -78
  23. __Eval        equ    -84
  24. __Inp        equ    -90
  25. __Rdp        equ    -96
  26. __AwaitNamedEnvelope equ    -102
  27. __PollNamedEnvelope    equ    -108
  28. __OutEmptyEnvelope    equ    -114
  29.  
  30.     public    _OdinBase        ;for use with Manx 'as'
  31. ;    XREF    _OdinBase        ;for use with Assem
  32.  
  33. _InitEnvelope:
  34.     movem.l    a2/a6,-(sp)    ;a6,a2,pc,env,name,len,copyfunc
  35.     move.l    12(sp),a1
  36.     move.l    16(sp),a0
  37.     move.l    20(sp),d0
  38.     move.l    24(sp),a2
  39.     move.l    _OdinBase,a6
  40.     jsr    __InitEnvelope(a6)
  41.     movem.l    (sp)+,a2/a6
  42.     rts
  43.     public _InitEnvelope
  44.  
  45. _In:
  46.     move.l    a6,-(sp)        ;a6,pc,env
  47.     move.l    8(sp),a1
  48.     move.l    _OdinBase,a6
  49.     jsr    __In(a6)
  50.     move.l    (sp)+,a6
  51.     rts
  52.     public    _In
  53.  
  54. _Out:
  55.     move.l    a6,-(sp)
  56.     move.l    8(sp),a1
  57.     move.l    _OdinBase,a6
  58.     jsr    __Out(a6)
  59.     move.l    (sp)+,a6
  60.     rts
  61.     public    _Out
  62.  
  63. _CopyOut:
  64.     move.l    a6,-(sp)
  65.     move.l    8(sp),a1
  66.     move.l    _OdinBase,a6
  67.     jsr    __CopyOut(a6)
  68.     move.l    (sp)+,a6
  69.     rts
  70.     public    _CopyOut
  71.  
  72. _Rd:
  73.     move.l    a6,-(sp)
  74.     move.l    8(sp),a1
  75.     move.l    _OdinBase,a6
  76.     jsr    __Rd(a6)
  77.     move.l    (sp)+,a6
  78.     rts
  79.     public    _Rd
  80.  
  81. _Eval:
  82.     movem.l    d2/a6,-(sp)    ;a6,d2,pc,a1,d0,d1,d2
  83.     move.l    12(sp),a1
  84.     movem.l    16(sp),d0-d2
  85.     move.l    _OdinBase,a6
  86.     jsr    __Eval(a6)
  87.     movem.l    (sp)+,d2/a6
  88.     rts
  89.     public    _Eval
  90.  
  91. _Inp:
  92.     move.l    a6,-(sp)
  93.     move.l    8(sp),a1
  94.     move.l    _OdinBase,a6
  95.     jsr    __Inp(a6)
  96.     move.l    (sp)+,a6
  97.     rts
  98.     public    _Inp
  99.  
  100. _Rdp:
  101.     move.l    a6,-(sp)
  102.     move.l    8(sp),a1
  103.     move.l    _OdinBase,a6
  104.     jsr    __Rdp(a6)
  105.     move.l    (sp)+,a6
  106.     rts
  107.     public    _Rdp
  108.  
  109. _StartTask:
  110.     move.l    a6,-(sp)        ;a6,pc,proc,name,pri,stack
  111.     movem.l    8(sp),a0/a1
  112.     movem.l    16(sp),d0/d1
  113.     move.l    _OdinBase,a6
  114.     jsr    __StartTask(a6)
  115.     move.l    (sp)+,a6
  116.     rts
  117.     public    _StartTask
  118.  
  119. _StartProcess:
  120.     move.l    a6,-(sp)
  121.     movem.l    8(sp),a0/a1
  122.     movem.l    16(sp),d0/d1
  123.     move.l    _OdinBase,a6
  124.     jsr    __StartProcess(a6)
  125.     move.l    (sp)+,a6
  126.     rts
  127.     public    _StartProcess
  128.  
  129. _AwaitNamedEnvelope:
  130.     move.l    a6,-(sp)
  131.     move.l    8(sp),a0
  132.     move.l    _OdinBase,a6
  133.     jsr    __AwaitNamedEnvelope(a6)
  134.     move.l    (sp)+,a6
  135.     rts
  136.     public    _AwaitNamedEnvelope
  137.  
  138. _PollNamedEnvelope:
  139.     move.l    a6,-(sp)
  140.     move.l    8(sp),a0
  141.     move.l    _OdinBase,a6
  142.     jsr    __PollNamedEnvelope(a6)
  143.     move.l    (sp)+,a6
  144.     rts
  145.     public    _PollNamedEnvelope
  146.  
  147. _OutEmptyEnvelope:
  148.     move.l    a6,-(sp)
  149.     move.l    8(sp),a0
  150.     move.l    _OdinBase,a6
  151.     jsr    __OutEmptyEnvelope(a6)
  152.     move.l    (sp)+,a6
  153.     rts
  154.     public    _OutEmptyEnvelope
  155.  
  156. _CreateEnvelope:
  157.     move.l    a6,-(sp)        ;a6,pc,name,size
  158.     move.l    8(sp),a0
  159.     move.l    12(sp),d0
  160.     move.l    _OdinBase,a6
  161.     jsr    __CreateEnvelope(a6)
  162.     move.l    (sp)+,a6
  163.     rts
  164.     public    _CreateEnvelope
  165.  
  166. _DisposeEnvelope:
  167.     move.l    a6,-(sp)
  168.     move.l    8(sp),a1
  169.     move.l    _OdinBase,a6
  170.     jsr    __DisposeEnvelope(a6)
  171.     move.l    (sp)+,a6
  172.     rts
  173.     public    _DisposeEnvelope
  174.  
  175.     end
  176.  
  177.