home *** CD-ROM | disk | FTP | other *** search
- ;odinglue.asm
- ;Created 4-Jul-90 by Peter Oerbaek
- ;Last updated 11-Jul-90 by Peter Oerbaek
- ;This is in the public domain.
- ;C-interface gluecode for odin.library V1.11
- ;Assemble with 'as' for Aztec-C 3.40a or later
- ;Assemble with Assem/A68K for Lattice / DICE / PDC
- ;Assembles OK as is with A68K 2.6!!!!
-
- ;public macro ;de-comment this for use with Assem
- ; XDEF \1
- ; endm
-
- __CreateEnvelope equ -30
- __InitEnvelope equ -36
- __DisposeEnvelope equ -42
- __StartTask equ -48
- __StartProcess equ -54
- __In equ -60
- __Rd equ -66
- __Out equ -72
- __CopyOut equ -78
- __Eval equ -84
- __Inp equ -90
- __Rdp equ -96
- __AwaitNamedEnvelope equ -102
- __PollNamedEnvelope equ -108
- __OutEmptyEnvelope equ -114
-
- public _OdinBase ;for use with Manx 'as'
- ; XREF _OdinBase ;for use with Assem
-
- _InitEnvelope:
- movem.l a2/a6,-(sp) ;a6,a2,pc,env,name,len,copyfunc
- move.l 12(sp),a1
- move.l 16(sp),a0
- move.l 20(sp),d0
- move.l 24(sp),a2
- move.l _OdinBase,a6
- jsr __InitEnvelope(a6)
- movem.l (sp)+,a2/a6
- rts
- public _InitEnvelope
-
- _In:
- move.l a6,-(sp) ;a6,pc,env
- move.l 8(sp),a1
- move.l _OdinBase,a6
- jsr __In(a6)
- move.l (sp)+,a6
- rts
- public _In
-
- _Out:
- move.l a6,-(sp)
- move.l 8(sp),a1
- move.l _OdinBase,a6
- jsr __Out(a6)
- move.l (sp)+,a6
- rts
- public _Out
-
- _CopyOut:
- move.l a6,-(sp)
- move.l 8(sp),a1
- move.l _OdinBase,a6
- jsr __CopyOut(a6)
- move.l (sp)+,a6
- rts
- public _CopyOut
-
- _Rd:
- move.l a6,-(sp)
- move.l 8(sp),a1
- move.l _OdinBase,a6
- jsr __Rd(a6)
- move.l (sp)+,a6
- rts
- public _Rd
-
- _Eval:
- movem.l d2/a6,-(sp) ;a6,d2,pc,a1,d0,d1,d2
- move.l 12(sp),a1
- movem.l 16(sp),d0-d2
- move.l _OdinBase,a6
- jsr __Eval(a6)
- movem.l (sp)+,d2/a6
- rts
- public _Eval
-
- _Inp:
- move.l a6,-(sp)
- move.l 8(sp),a1
- move.l _OdinBase,a6
- jsr __Inp(a6)
- move.l (sp)+,a6
- rts
- public _Inp
-
- _Rdp:
- move.l a6,-(sp)
- move.l 8(sp),a1
- move.l _OdinBase,a6
- jsr __Rdp(a6)
- move.l (sp)+,a6
- rts
- public _Rdp
-
- _StartTask:
- move.l a6,-(sp) ;a6,pc,proc,name,pri,stack
- movem.l 8(sp),a0/a1
- movem.l 16(sp),d0/d1
- move.l _OdinBase,a6
- jsr __StartTask(a6)
- move.l (sp)+,a6
- rts
- public _StartTask
-
- _StartProcess:
- move.l a6,-(sp)
- movem.l 8(sp),a0/a1
- movem.l 16(sp),d0/d1
- move.l _OdinBase,a6
- jsr __StartProcess(a6)
- move.l (sp)+,a6
- rts
- public _StartProcess
-
- _AwaitNamedEnvelope:
- move.l a6,-(sp)
- move.l 8(sp),a0
- move.l _OdinBase,a6
- jsr __AwaitNamedEnvelope(a6)
- move.l (sp)+,a6
- rts
- public _AwaitNamedEnvelope
-
- _PollNamedEnvelope:
- move.l a6,-(sp)
- move.l 8(sp),a0
- move.l _OdinBase,a6
- jsr __PollNamedEnvelope(a6)
- move.l (sp)+,a6
- rts
- public _PollNamedEnvelope
-
- _OutEmptyEnvelope:
- move.l a6,-(sp)
- move.l 8(sp),a0
- move.l _OdinBase,a6
- jsr __OutEmptyEnvelope(a6)
- move.l (sp)+,a6
- rts
- public _OutEmptyEnvelope
-
- _CreateEnvelope:
- move.l a6,-(sp) ;a6,pc,name,size
- move.l 8(sp),a0
- move.l 12(sp),d0
- move.l _OdinBase,a6
- jsr __CreateEnvelope(a6)
- move.l (sp)+,a6
- rts
- public _CreateEnvelope
-
- _DisposeEnvelope:
- move.l a6,-(sp)
- move.l 8(sp),a1
- move.l _OdinBase,a6
- jsr __DisposeEnvelope(a6)
- move.l (sp)+,a6
- rts
- public _DisposeEnvelope
-
- end
-
-