[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]


NAME
    AllocExpansionMem - allocate expansion memory

SYNOPSIS
    startSlot = AllocExpansionMem( numSlots, slotOffset )
    D0                             D0        D1

FUNCTION
    (Not typically called by user code)

    This function allocates numslots of expansion space (each slot
    is E_SLOTSIZE bytes).  It returns the slot number of the
    start of the expansion memory.  The EC_MEMADDR macro may be
    used to convert this to a memory address.

    Boards that fit the expansion architecture have alignment
    rules.  Normally a board must be on a binary boundary of its
    size.  Four and Eight megabyte boards have special rules.
    User defined boards might have other special rules.

    If AllocExpansionMem() succeeds, the startSlot will satisfy
    the following equation:

            (startSlot - slotOffset) MOD slotAlign = 0

INPUTS
    numSlots - the number of slots required.
    slotOffset - an offset from that boundary for startSlot.

RESULTS
    startSlot - the slot number that was allocated, or -1 for error.

EXAMPLES

            AllocExpansionMem( 2, 0 )

    Tries to allocate 2 slots on a two slot boundary.

            AllocExpansionMem( 64, 32 )

    This is the allocation rule for 4 meg boards.  It allocates
    4 megabytes (64 slots) on an odd 2 meg boundary.

EXCEPTIONS

SEE ALSO
    FreeExpansionMem

BUGS