home *** CD-ROM | disk | FTP | other *** search
- ;--------------------------------------------
- ; Glue routines for arp.library and Lattice C
- ; Copyright (C) 1987, John A. Toebes, VIII
- ; Based on glue routines by SDB
- ; Use at your own risk, etc., etc.
- ; May be freely used.
- ;
- ; Revised to use A4 base addressing
- ; SDB
- ;
- INCLUDE "libraries/arpbase.i"
-
- csect text,0,0,1,2
-
- ERRBADINT EQU 1
-
- FDECL MACRO
- xdef _\1
- _\1:
- LIBOFF: SET _LVO\1
- ENDM
-
- ARPCALL MACRO
- move.l _ArpBase(a4),a6
- jsr LIBOFF(a6)
- ENDM
-
- FDECL FPrintf
- move.l A6,-(sp)
- movem.l 8(sp),d0/a0 ; file, format string
- lea.l 16(sp),a1 ; data stream
- ARPCALL
- move.l (sp)+,a6
- rts
-
- FDECL Printf
- move.l A6,-(sp)
- move.l 8(sp),a0
- lea.l 12(sp),a1
- ARPCALL
- move.l (sp)+,a6
- rts
-
- FDECL Atol
- move.l A6,-(sp)
- move.l 8(sp),a0
- ARPCALL
- bne.s 1$
- move.l #ERRBADINT,_Errno(a4)
- 1$: move.l (SP)+,A6
- rts
-
- FDECL GADS
- movem.l a2-a3/a6,-(sp)
- move.l 16(sp),a0
- move.l 20(sp),d0
- movem.l 24(sp),a1-a3
- ARPCALL
- movem.l (sp)+,a2-a3/a6
- rts
-
- FDECL ArpAllocMem
- move.l A6,-(sp)
- movem.l 8(sp),d0-d1
- ARPCALL
- dotrack:
- lea.l _LastTracker,a0
- * move.l a1,(a0)
- move.l a1,_LastTracker(a4)
- move.l (sp)+,A6
- rts
-
- FDECL ArpOpen
- move.l A6,-(sp)
- movem.l 8(sp),d1-d2
- ARPCALL
- bra dotrack
-
- FDECL ArpDupLock
- move.l A6,-(sp)
- move.l 8(sp),d1
- ARPCALL
- bra dotrack
-
- FDECL ArpLock
- move.l A6,-(sp)
- movem.l 8(sp),d1/d2
- ARPCALL
- bra dotrack
-
- FDECL GetTracker
- move.l A6,-(sp)
- ARPCALL
- beq dotrack ; Error, no tracker
- move.w 10(sp),dt_ID(a1) ; install ID - this assumes a LONG was passed
- move.l a1,d0 ; return as function value
- bra dotrack ; for consistancy
-
- FDECL ArpAlloc
- move.l A6,-(sp)
- move.l 8(sp),d0
- ARPCALL
- bra dotrack
-
- FDECL RListAlloc
- move.l A6,-(sp)
- move.l 8(sp),a0
- move.l 12(sp),d0
- ARPCALL
- bra dotrack
-
- ; Variables used by 'C' to access certain extra arplibrary returns
-
- csect __MERGED
-
- xref _ArpBase
- xref _Errno,_LastTracker
-
- END
-
-
-