*-----------------------------------------------------------
Title[DMesaAGDefs...December 13, 1982  3:14 PM...WSH];
*-----------------------------------------------------------
   SetRMRegion[Region14];
    rvn[rcv];           * RefCountValue at call time
    rvn[residue];
    rvn[probe];
    rvn[entry];
    rvn[onStack];
    rvn[oiPrev0];
    rvn[oiPrev1];
    rvn[gcTemp];
    rvn[gcTemp2];
    rvn[gLink];
    rvn[oofNum];   * in case of OutOfOverflowTable, encodes doingAddref
    rvn[rcFnzCount];   * (rcFinalizeCount) to help know when to collect
** holds state information from GCState; mesa code calls RTSetup whenever
*** this info changes; ONLY the microcode changes oiFreeList&nOiFree
    rvn[oiFreeList];
    rvn[nOiFree];
    rvn[gcStateMask];
    rvn[gcProcNum];
*-----------------------------------------------------------
   BR[gcMapPiRce, 16];
   BR[gcStateBR, 17];
*-----------------------------------------------------------
** the following must agree with declarations in RTRefCounts.mesa
   mc[UVersion, 13];     * to co-ordinate changes
   mc[WrongUVersion, 2];     * to co-ordinate incompatible changes

   mc[nrceMask, 77777];    * all fields except tag field
   mc[refCtMask, 77400];		* only ref Count Field
   mc[rceEmpty, 177777];	* an overflow entry that is odd
   mc[emptyRefCtMask, 175400];		* ref Count Field w/o rcAbsent bit
   mc[rcAbsent, 4];
   mc[rcFinalize, 3];
   mc[rcAbsentShifted, lshift[4,10]];
   mc[rcFinalizeShifted, lshift[3,10]];
   mc[becameEmpty, lshift[4,1]];		* right justified RefCt & Stk fields
   mc[AddRefCt, lshift[1,10]];
   mc[DeleteRefCt, lshift[177,10]];
   mc[reclaimedRefDelta, lshift[177,10]];
   mc[lastRefCt, 177];
   mc[gcRunningC, 200];		* running iff onStack is set
   mc[onStackBit, 200];
   mc[undoStackBit, NOT [200]];
   mc[rcFinalize1, or[lshift[3,1], 1]];  * lsh 1 because of onStack bit
   mc[lastProbeIndexM1, 77777];   ** assumes MapPiRce is 100000B long

   mc[mapPiRceOffset, 400];		* start one page beyond GCState
   mc[rceReclaimOffset, 200];		* start one-half page beyond GCState
   mc[dumpTableOffset, 300];		* start of area for dumping useful info

  M[RefCtField, ldf[#1, 7, 10]];		* extract RefCt field
  M[RefCtStkField, ldf[#1, 10, 7]];		* extract RefCt&onStack fields
  M[ResidueField, ldf[#1, 7, 0]];		* extract Residue field

*-----------------------------------------------------------
** the following must agree with declarations in AllocZone.mesa
**--------- RealZoneRec
   mc[zn.LOCK, 2];
   msc[zn.MLOCK, 2];
   mc[zn.mAsz, 24];   * hash mask for quantized zone
   mc[zn.pAsz, 26];   * SubZoneArray
   mc[zn.fnd, 22];   * free NodeHeader in RealZoneRec
   mc[zn.pfn, 30];   * prefixed node free list
**--------- SubZoneRec
   msc[sz.type, 0];
   msc[sz.size, 1];
   msc[sz.fl, 2];
   msc[sz.zi, 4];
   msc[sz.Vacant, 5];   * msc[sz.szi, 5];

   msc[obj.FreeList, 0];
   msc[obj.FreeList1, 1];
**--------- PFreeNode
   msc[pnode.sizeLo, 0];
   msc[pnode.sizeHi, 1];
   msc[pnode.pfnNext, 2];
   msc[pnode.pfnNextHi, 3];
   msc[pnode.pfnPrev, 4];
   msc[pnode.pfnPrevHi, 5];
**--------- Allocated PrefixedNode
   msc[pnode.type, 1];
   msc[pnode.ref, 2];   * the node itself starts here

   mc[MinBlockSize, 4];
   mc[FreeNodeSize, 6];
   mc[pNodeOverhead, 2];   * need 1 word for the type, 1 for size
   mc[4MinBlockSize, 20];

*-----------------------------------------------------------
**  entries in SD for errors, punts
   mc[SDCatastrophe, 171];

   set[qiShift, 12];   * convert from pointer to quantumIndex

   msc[OiFreeListSc, 0];   * in GCState
   msc[nOiFreeSc, 1];
   msc[reclaimStateSc, 2];
   msc[collectorSc, 3];
   msc[MapPtrMzOffset, 4];
   msc[MapSziSzOffset, 6];
   msc[MapZiZnOffset, 10];
   msc[MapTiTdOffset, 12];

   msc[eqvTypeSc, 0];

*-----------------------------------------------------------

   mc[ACZeroLo, 134]; mc[ACDecLo, 136];  mc[ACIncLo, 140];
   mc[OTCDelLo, 142]; mc[OTCCrLo, 144]; mc[HTCDelLo, 146];  mc[HTCCrLo, 150];

   mc[RONil, 172]; mc[RNNil, 174]; mc[ROeqN, 176];