<> <> <> <<>> <> <> DIRECTORY MDDefs USING [DoradoPageSize, OneBit]; MDADefs: CEDAR DEFINITIONS = BEGIN SubPageSize: CARDINAL = 16; pageGlobalMax: CARDINAL = 1; Assignment: TYPE = RECORD[real, imag: CARDINAL]; DoradoPage: TYPE = REF DoradoPageRec; DoradoPageRec: TYPE = MACHINE DEPENDENT RECORD[ used(0): CARDINAL, -- number of words used global(1): CARDINAL, -- number of Globals ifuEntry(2): CARDINAL, -- number of IFU entries slow(3): BOOL, -- for rings, true if any bits set in BT, or global or IFUE non-zero absPage(4): CARDINAL, bt(5): Pbt -- bit table for allocated words ]; pbtLength: CARDINAL = MDDefs.DoradoPageSize; Pbt: TYPE = REF PbtRec; PbtRec: TYPE = PACKED ARRAY [0..pbtLength) OF BOOL; <> XDoradoPage: TYPE = REF XDoradoPageRec; XDoradoPageRec: TYPE = MACHINE DEPENDENT RECORD[ used(0): CARDINAL, -- number of words used global(1): CARDINAL, -- number of Globals ifuEntry(2): CARDINAL, -- number of IFU entries slow(3): BOOL, -- for rings, true if any bits set in BT, or global or IFUE non-zero absPage(4): CARDINAL, bt(5): Xbt -- bit table for allocated words ]; xbtWords: CARDINAL = MDDefs.DoradoPageSize/16; Xbt: TYPE = REF XbtRec; XbtRec: TYPE = ARRAY [0..xbtWords) OF WORD; SubPageHeader: TYPE = MACHINE DEPENDENT RECORD[ aLists(0: 0..0): MDDefs.OneBit, -- true if any +1 lists spn1(0: 1..7): [0..177B] _ 0, -- subpage number +1, or 0 length(0: 8..15): [0..377B] _ 0 -- number of instructions ]; SubPage: TYPE = LONG POINTER TO SubPageRec; SubPageRec: TYPE = RECORD[ subPageHeader: SubPageHeader, data: ARRAY [0..MDDefs.DoradoPageSize) OF WORD -- addresses ]; <> lWBuf: CARDINAL = MDDefs.DoradoPageSize + (MDDefs.DoradoPageSize/2) + 1; WorkingBuffer: TYPE = LONG POINTER TO CARDINAL; END. <<>>