home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 122.lha / Arp_v1.1 / Libraries / Lattice_SRC / LatGlue.s < prev    next >
Encoding:
Text File  |  1986-11-20  |  1.9 KB  |  122 lines

  1. ;--------------------------------------------
  2. ; Glue routines for arp.library and Lattice C
  3. ; Copyright (C) 1987, John A. Toebes, VIII
  4. ; Based on glue routines by SDB
  5. ; Use at your own risk, etc., etc.
  6. ; May be freely used.
  7. ;
  8. ; Revised to use A4 base addressing
  9. ; SDB
  10. ;
  11.     INCLUDE    "libraries/arpbase.i"
  12.  
  13.         csect    text,0,0,1,2
  14.  
  15. ERRBADINT    EQU    1
  16.  
  17. FDECL    MACRO
  18.     xdef    _\1
  19.     _\1:
  20. LIBOFF:    SET    _LVO\1
  21.     ENDM
  22.  
  23. ARPCALL    MACRO
  24.     move.l    _ArpBase(a4),a6
  25.     jsr    LIBOFF(a6)
  26.     ENDM
  27.  
  28.     FDECL    FPrintf
  29.         move.l  A6,-(sp)
  30.     movem.l    8(sp),d0/a0        ; file, format string
  31.     lea.l    16(sp),a1        ; data stream
  32.     ARPCALL
  33.     move.l    (sp)+,a6
  34.         rts
  35.  
  36.     FDECL    Printf
  37.         move.l  A6,-(sp)
  38.     move.l    8(sp),a0
  39.     lea.l    12(sp),a1
  40.     ARPCALL
  41.     move.l    (sp)+,a6
  42.         rts
  43.  
  44.     FDECL    Atol
  45.         move.l  A6,-(sp)
  46.     move.l    8(sp),a0
  47.     ARPCALL
  48.     bne.s    1$
  49.     move.l    #ERRBADINT,_Errno(a4)
  50. 1$:    move.l  (SP)+,A6
  51.     rts
  52.  
  53.     FDECL    GADS
  54.     movem.l    a2-a3/a6,-(sp)
  55.     move.l    16(sp),a0
  56.     move.l    20(sp),d0
  57.     movem.l    24(sp),a1-a3
  58.     ARPCALL
  59.     movem.l    (sp)+,a2-a3/a6
  60.     rts
  61.  
  62.     FDECL    ArpAllocMem
  63.         move.l  A6,-(sp)
  64.     movem.l    8(sp),d0-d1
  65.     ARPCALL
  66. dotrack:
  67.     lea.l    _LastTracker,a0
  68. *    move.l    a1,(a0)
  69.     move.l    a1,_LastTracker(a4)
  70.         move.l  (sp)+,A6
  71.     rts
  72.  
  73.     FDECL    ArpOpen
  74.         move.l  A6,-(sp)
  75.     movem.l    8(sp),d1-d2
  76.     ARPCALL
  77.     bra    dotrack
  78.  
  79.     FDECL    ArpDupLock
  80.         move.l  A6,-(sp)
  81.     move.l    8(sp),d1
  82.     ARPCALL
  83.     bra    dotrack
  84.  
  85.     FDECL    ArpLock
  86.         move.l  A6,-(sp)
  87.     movem.l    8(sp),d1/d2
  88.     ARPCALL
  89.     bra    dotrack
  90.  
  91.     FDECL    GetTracker
  92.         move.l  A6,-(sp)
  93.     ARPCALL
  94.     beq    dotrack           ; Error, no tracker
  95.     move.w    10(sp),dt_ID(a1)    ; install ID - this assumes a LONG was passed
  96.     move.l    a1,d0            ; return as function value
  97.     bra    dotrack            ; for consistancy
  98.     
  99.     FDECL    ArpAlloc
  100.         move.l  A6,-(sp)
  101.     move.l    8(sp),d0
  102.     ARPCALL
  103.     bra    dotrack
  104.  
  105.     FDECL    RListAlloc
  106.         move.l  A6,-(sp)
  107.     move.l    8(sp),a0
  108.     move.l    12(sp),d0
  109.     ARPCALL
  110.     bra    dotrack
  111.  
  112. ; Variables used by 'C' to access certain extra arplibrary returns
  113.  
  114.     csect    __MERGED
  115.  
  116.         xref    _ArpBase
  117.     xref    _Errno,_LastTracker
  118.  
  119.     END
  120.  
  121.  
  122.