home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / DVD!OMA2.DMS / in.adf / Examples / Library / Expansion / Expansion.asm next >
Encoding:
Assembly Source File  |  1994-10-13  |  2.8 KB  |  163 lines

  1.  
  2. ; Expansion-Interface
  3.  
  4.     INCLUDE    "lvo/misc.i"
  5.  
  6.     XREF    _ExpansionBase
  7.  
  8.  
  9.  
  10.  
  11.  
  12. CREATE MACRO Name,Registermaske,Registeranzahl,Satz1,Anzahl1,Satz2,Anzahl2...
  13.  
  14.     IFD    \1
  15.     XDEF    _\1
  16.  
  17. _\1
  18.     IFEQ     \3-1
  19.     move.l    \2,-(SP)
  20.     ELSE
  21.     movem.l    \2,-(SP)
  22.     ENDC
  23.  
  24. TIEFE    SET    4+4*\3
  25.     IFNC     '\4',''
  26.     SATZ    \4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i,\j
  27.     ENDC
  28.  
  29.     move.l    _ExpansionBase,a6
  30.     jsr        _LVO\1(a6)
  31.     IFEQ     \3-1
  32.     move.l    (SP)+,\2
  33.     ELSE
  34.     movem.l    (SP)+,\2
  35.     ENDC
  36.     rts
  37.  
  38.     ENDC
  39.  
  40.     ENDM
  41.  
  42.  
  43.  
  44.  
  45.  
  46. SATZ    MACRO    Satz1,Anzahl1,Satz2,Anzahl2...
  47.     IFEQ     \2-1
  48.     move.l    TIEFE(SP),\1
  49.     ELSE
  50.     movem.l    TIEFE(SP),\1
  51.     ENDC
  52. TIEFE    SET    TIEFE+4*\2
  53.     IFNC     '\3',''
  54.     SATZ    \3,\4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i
  55.     ENDC
  56.     ENDM
  57.  
  58.  
  59.  
  60.  
  61.  
  62. ; AddConfigDev(configDev)(A0)
  63.     CREATE    AddConfigDev,a6,1,a0,1
  64.  
  65. ; expansionUnused()
  66. ;    CREATE    expansionUnused,a6,1
  67.  
  68. ; AllocBoardMem(slotSpec)(D0)
  69.     CREATE    AllocBoardMem,a6,1,d0,1
  70.  
  71. ; AllocConfigDev()
  72.     CREATE    AllocConfigDev,a6,1
  73.  
  74. ; AllocExpansionMem(numSlots,SlotAlign,SlotOffset)(D0/D1/D2)
  75.     CREATE    AllocExpansionMem,d2/a6,2,d0-d2,3
  76.  
  77. ; ConfigBoard(board,configDev)(A0/A1)
  78.     CREATE    ConfigBoard,a6,1,a0-a1,2
  79.  
  80. ; ConfigChain(baseAddr)(A0)
  81.     CREATE    ConfigChain,a6,1,a0,1
  82.  
  83. ; FindConfigDev(oldConfigDev,manufacturer,product)(A0,D0/D1)
  84.     CREATE    FindConfigDev,a6,1,a0,1,d0-d1,2
  85.  
  86. ; FreeBoardMem(startSlot,slotSpec)(D0/D1)
  87.     CREATE    FreeBoardMem,a6,1,d0-d1,2
  88.  
  89. ; FreeConfigDev(configDev)(A0)
  90.     CREATE    FreeConfigDev,a6,1,a0,1
  91.  
  92. ; FreeExpansionMem(startSlot,numSlots)(D0/D1)
  93.     CREATE    FreeExpansionMem,a6,1,d0-d1,2
  94.  
  95. ; ReadExpansionByte(board,offset)(A0,D0)
  96.     CREATE    ReadExpansionByte,a6,1,a0,1,d0,1
  97.  
  98. ; ReadExpansionRom(board,configDev)(A0/A1)
  99.     CREATE    ReadExpansionRom,a6,1,a0-a1,2
  100.  
  101. ; RemConfigDev(configDev)(A0)
  102.     CREATE    RemConfigDev,a6,1,a0,1
  103.  
  104. ; WriteExpansionByte(board,offset,byte)(A0,D0/D1)
  105.     CREATE    WriteExpansionByte,a6,1,a0,1,d0-d1,2
  106.  
  107. ; ObtainConfigBinding()
  108.     CREATE    ObtainConfigBinding,a6,1
  109.  
  110. ; ReleaseConfigBinding()
  111.     CREATE    ReleaseConfigBinding,a6,1
  112.  
  113. ; SetCurrentBinding(currentBinding,bindingSize)(A0,D0)
  114.     CREATE    SetCurrentBinding,a6,1,a0,1,d0,1
  115.  
  116. ; GetCurrentBinding(currentBinding,bindingSize)(A0,D0)
  117.     CREATE    GetCurrentBinding,a6,1,a0,1,d0,1
  118.  
  119. ; MakeDosNode(parmPacket)(A0)
  120.     CREATE    MakeDosNode,a6,1,a0,1
  121.  
  122. ; AddDosNode(bootPri,flags,dosNode)(D0/D1/A0)
  123.     CREATE    AddDosNode,a6,1,d0-d1,2,a0,1
  124.  
  125.  
  126.  
  127.  
  128.  
  129. ; Offsets
  130.  
  131.     IFD    OFFSETS
  132.  
  133.     XDEF    _LVOAddConfigDev
  134.     XDEF    _LVOexpansionUnused
  135.     XDEF    _LVOAllocBoardMem
  136.     XDEF    _LVOAllocConfigDev
  137.     XDEF    _LVOAllocExpansionMem
  138.     XDEF    _LVOConfigBoard
  139.     XDEF    _LVOConfigChain
  140.     XDEF    _LVOFindConfigDev
  141.     XDEF    _LVOFreeBoardMem
  142.     XDEF    _LVOFreeConfigDev
  143.     XDEF    _LVOFreeExpansionMem
  144.     XDEF    _LVOReadExpansionByte
  145.     XDEF    _LVOReadExpansionRom
  146.     XDEF    _LVORemConfigDev
  147.     XDEF    _LVOWriteExpansionByte
  148.     XDEF    _LVOObtainConfigBinding
  149.     XDEF    _LVOReleaseConfigBinding
  150.     XDEF    _LVOSetCurrentBinding
  151.     XDEF    _LVOGetCurrentBinding
  152.     XDEF    _LVOMakeDosNode
  153.     XDEF    _LVOAddDosNode
  154.  
  155.     ENDC
  156.  
  157.  
  158.  
  159.  
  160.  
  161.     END
  162.  
  163.