home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 390.lha / SampLibrary / SAMPInterface.asm < prev    next >
Encoding:
Assembly Source File  |  1990-07-01  |  3.2 KB  |  163 lines

  1. ; This is the module that needs to be assembled and linked with a C application
  2. ; that uses the dissidents' samp.library
  3. ;
  4. ; All values passed to the samp.library routines MUST be 32 bit quantities!
  5.  
  6.     far code    ;for MANX asm only
  7.     far data
  8.  
  9.         SECTION    SampInt,CODE
  10.  
  11.         XREF        _SAMPBase    ;C application opens samp.library and stores
  12.                                     ;the base at this variable
  13.  
  14.         INCLUDE    "SAMP.i"        ;needs the assembly INCLUDE file
  15.  
  16.     XDEF    _OpenSampRead,__OpenSampRead
  17. _OpenSampRead:
  18.         movea.l    _SAMPBase,a6
  19. __OpenSampRead:
  20.         move.l    4(sp),d1
  21.       movea.l  8(sp),a0
  22.         jsr        _LVOOpenSampRead(a6)
  23.         move.l    d1,_SAMPError
  24.         rts
  25.  
  26.     XDEF    _CloseSamp,__CloseSamp
  27. _CloseSamp:
  28.         movea.l    _SAMPBase,a6
  29. __CloseSamp:
  30.         jmp        _LVOCloseSamp(a6)
  31.  
  32.     XDEF    _ReadWaves,__ReadWaves
  33. _ReadWaves:
  34.         movea.l    _SAMPBase,a6
  35. __ReadWaves:
  36.         movem.l    d6/d7/a2/a3,-(sp)
  37.         movem.l    20(sp),d6/d7/a2/a3
  38.         jsr        _LVOReadWaves(a6)
  39.         move.l    d1,_SAMPError
  40.         movem.l    (sp)+,d6/d7/a2/a3
  41.         rts
  42.  
  43.     XDEF    _LoadPlaymap,__LoadPlaymap
  44. _LoadPlaymap:
  45.         movea.l    _SAMPBase,a6
  46. __LoadPlaymap:
  47.         movem.l    d6/d7,-(sp)
  48.         movem.l    12(sp),d0/d1
  49.         movem.l    20(sp),d6/d7
  50.         movea.l    28(sp),a0
  51.         jsr        _LVOLoadPlaymap(a6)
  52.         movem.l    (sp)+,d6/d7
  53.         rts
  54.  
  55.     XDEF    _MixPlaymap,__MixPlaymap
  56. _MixPlaymap:
  57.         movea.l    _SAMPBase,a6
  58. __MixPlaymap:
  59.         movem.l    d6/d7,-(sp)
  60.         movem.l    12(sp),d0/d1
  61.         movem.l    20(sp),d6/d7
  62.         movea.l    28(sp),a0
  63.         jsr        _LVOMixPlaymap(a6)
  64.         movem.l    (sp)+,d6/d7
  65.         rts
  66.  
  67.     XDEF    _MakeTransTable,_CusMakeTransTable
  68. _CusMakeTransTable:
  69.         movem.l    d5/d6/d7/a2,-(sp)
  70.         movem.l    20(sp),d5/d6/d7/a1/a2
  71.         lea        _LVOCusMakeTransTable(a6),a0
  72.         bra.s        dtable
  73. _MakeTransTable:
  74.         movem.l    d5/d6/d7/a2,-(sp)
  75.         movem.l    20(sp),d5/d6/d7/a2
  76.         lea        _LVOMakeTransTable(a6),a0
  77. dtable:
  78.         movea.l    _SAMPBase,a6
  79.         jsr        (a0)
  80.         movem.l    (sp)+,d5/d6/d7/a2
  81.         rts
  82.  
  83.     XDEF    _FreeTTables,__FreeTTables
  84. _FreeTTables:
  85.         movea.l    _SAMPBase,a6
  86. __FreeTTables:
  87.         movea.l    4(sp),a1
  88.         jmp        _LVOFreeTTables(a6)
  89.  
  90.     XDEF    _RemoveTTable,__RemoveTTable
  91. _RemoveTTable:
  92.         movea.l    _SAMPBase,a6
  93. __RemoveTTable:
  94.         movem.l    4(sp),a0/a1
  95.         jmp        _LVORemoveTTable(a6)
  96.  
  97.     XDEF    _FindTNode,__FindTNode
  98. _FindTNode:
  99.         movea.l    _SAMPBase,a6
  100. __FindTNode:
  101.         movem.l    4(sp),d0/a1
  102.         jmp        _LVOFindTNode(a6)
  103.  
  104.     XDEF    _OpenSampWrite,__OpenSampWrite
  105. _OpenSampWrite:
  106.         movea.l    _SAMPBase,a6
  107. __OpenSampWrite:
  108.         move.l    4(sp),d1
  109.         jsr        _LVOOpenSampWrite(a6)
  110.         move.l    d1,_SAMPError
  111.         rts
  112.  
  113.     XDEF    _WriteMHDR,__WriteMHDR
  114. _WriteMHDR:
  115.         movea.l    _SAMPBase,a6
  116. __WriteMHDR:
  117.         move.l    4(sp),d0
  118.         movea.l    8(sp),a0
  119.         jmp        _LVOWriteMHDR(a6)
  120.  
  121.     XDEF    _WriteSampChunk,__WriteSampChunk
  122. _WriteSampChunk:
  123.         movea.l    _SAMPBase,a6
  124. __WriteSampChunk:
  125.         movem.l    4(sp),d0/d1/a0
  126.         jmp        _LVOWriteSampChunk(a6)
  127.  
  128.     XDEF    _WriteSampData,__WriteSampData
  129. _WriteSampData:
  130.         movea.l    _SAMPBase,a6
  131. __WriteSampData:
  132.         move.l    d3,-(sp)
  133.         movem.l    8(sp),d3/a0
  134.         jsr        _LVOWriteSampData(a6)
  135.         move.l    (sp)+,d3
  136.         rts
  137.  
  138.     XDEF    _WriteNames,__WriteNames
  139. _WriteNames:
  140.         movea.l    _SAMPBase,a6
  141. __WriteNames:
  142.         movem.l    4(sp),d0/a0
  143.         jmp        _LVOWriteNames(a6)
  144.  
  145.     XDEF    _WriteWaves,__WriteWaves
  146. _WriteWaves:
  147.         movea.l    _SAMPBase,a6
  148. __WriteWaves:
  149.         movem.l    4(sp),d0/d1/a0/a1
  150.         jmp        _LVOWriteWaves(a6)
  151.  
  152.     XDEF    _SAMPErrorMsg,__SAMPErrorMsg
  153. _SAMPErrorMsg:
  154.         movea.l    _SAMPBase,a6
  155. __SAMPErrorMsg:
  156.         move.l    4(sp),d1
  157.         jmp        _LVOSAMPErrorMsg(a6)
  158.  
  159.         SECTION    SampDat,DATA
  160.  
  161.     XDEF    _SAMPError
  162. _SAMPError    dc.l    0
  163.