DEFINITION MODULE ExpansionL {"expansion.library", 33};
(* 10-Mar-1992/cn *)

FROM SYSTEM IMPORT ADDRESS,BYTE,LONGSET;
FROM DosD IMPORT DeviceNodePtr;
IMPORT d:ExpansionD,R;

VAR
 expansionVersion:INTEGER;
 expansionBase:d.ExpansionBasePtr;

CONST
 expansionMinVersion=33;
 expansionName="expansion.library";

PROCEDURE(*36*) AddBootNode(
                 bootPri{R.D0}:SHORTINT;
                 flags{R.D1}:LONGSET;
                 deviceNode{R.A0}:DeviceNodePtr;
                 configDev{R.A1}:d.ConfigDevPtr):BOOLEAN; CODE -36;

PROCEDURE AddConfigDev(configDev{R.A0}:d.ConfigDevPtr); CODE -30;

PROCEDURE AddDosNode(
           bootPri{R.D0}:SHORTINT;
           flags{R.D1}:LONGSET;
           deviceNode{R.A0}:DeviceNodePtr):BOOLEAN; CODE -150;

PROCEDURE AllocConfigDev():d.ConfigDevPtr; CODE -48;

PROCEDURE AllocExpansionMem(
           numSlots{R.D0}:LONGCARD;
           slotOffset{R.D1}:LONGCARD):ADDRESS; CODE -54;

PROCEDURE ConfigBoard(
           board{R.A0}:ADDRESS;
           configDev{R.A1}:d.ConfigDevPtr):LONGINT; CODE -60;

PROCEDURE FindConfigDev(
           oldConfigDev{R.A0}:d.ConfigDevPtr;
           manufacturer{R.D0}:LONGINT;
           product{R.D1}:LONGINT):d.ConfigDevPtr; CODE -72;

PROCEDURE FreeConfigDev(configDev{R.A0}:d.ConfigDevPtr); CODE -84;

PROCEDURE FreeExpansionMem(
           startSlot{R.D0}:ADDRESS;
           numSlots{R.D1}:LONGCARD); CODE -90;

PROCEDURE GetCurrentBinding(
           currentBinding{R.A0}:d.CurrentBindingPtr;
           bindingSize{R.D0}:INTEGER):LONGINT; CODE -138;

PROCEDURE MakeDosNode(
           parmPacket{R.A0}:d.ParameterPktPtr):DeviceNodePtr; CODE -144;

PROCEDURE ObtainConfigBinding(); CODE -120;

PROCEDURE ReadExpansionByte(
           board{R.A0}:ADDRESS;
           offset{R.D0}:LONGCARD):SHORTCARD; CODE -96;

PROCEDURE ReadExpansionRom(
           board{R.A0}:ADDRESS;
           configDev{R.A1}:d.ConfigDevPtr); CODE -102;

PROCEDURE ReleaseConfigBinding(); CODE -126;

PROCEDURE RemConfigDev(
           configDev{R.A0}:d.ConfigDevPtr); CODE -108;

PROCEDURE SetCurrentBinding(
           currentBinding{R.A0}:d.CurrentBindingPtr;
           bindingSize{R.D0}:INTEGER); CODE -132;

PROCEDURE WriteExpansionByte(
           board{R.A0}:ADDRESS;
           offset{R.D0}:LONGCARD;
           byte{R.D1}:BYTE); CODE -114;

END ExpansionL.
