DIRECTORY Allocator USING [NHeaderP], Collector USING [Disposition], PrincOps USING [zMISC, zWCDBL, alpha], SafeStorage USING [Type], ZCT USING [ZeroCountTable]; CedarMicrocode: DEFINITIONS = BEGIN microcodeVersion: CARDINAL = 4; alpha: TYPE = PrincOps.alpha; aRECLAIMEDREF: alpha = 140B; aENABLEMICROCODE: alpha = 141B; aDISABLEMICROCODE: alpha = 142B; aCREATEREF: alpha = 143B; aRECLAIMABLEREF: alpha = 144B; aALLOCATEOBJECT: alpha = 145B; aFREEOBJECT: alpha = 146B; aGETCANONICALREFERENTTYPE: alpha = 72B; aRTMOVESTATUS: alpha = 63B; -- A VESTIGE, for compatibility in the interim ASSIGNREF: PROC[refNew: REF, refPtr: LONG POINTER TO REF] = MACHINE CODE { PrincOps.zWCDBL, 0 }; CREATEREF: PROC[nhp: Allocator.NHeaderP] = MACHINE CODE { PrincOps.zMISC, aCREATEREF }; RECLAIMABLEREF: PROC[nhp: Allocator.NHeaderP] RETURNS[Collector.Disposition] = MACHINE CODE { PrincOps.zMISC, aRECLAIMABLEREF }; RECLAIMEDREF: PROC[ref: REF] RETURNS[REF] = MACHINE CODE { PrincOps.zMISC, aRECLAIMEDREF }; ENABLEMICROCODE: PROC[zct: ZCT.ZeroCountTable] RETURNS [ucVersion: NAT] = MACHINE CODE { PrincOps.zMISC, aENABLEMICROCODE }; DISABLEMICROCODE: PROC[zct: ZCT.ZeroCountTable] = MACHINE CODE { PrincOps.zMISC, aDISABLEMICROCODE }; ALLOCATE: PROC[size: CARDINAL, type: SafeStorage.Type] RETURNS[r: REF _ NIL] = MACHINE CODE { PrincOps.zMISC, aALLOCATEOBJECT }; FREEPLEASE: PROC[nhp: Allocator.NHeaderP] RETURNS[success: BOOL] = MACHINE CODE { PrincOps.zMISC, aFREEOBJECT }; GETCANONICALREFERENTTYPE: PROC[ref: REF] RETURNS[SafeStorage.Type] = MACHINE CODE { PrincOps.zMISC, aGETCANONICALREFERENTTYPE }; RTMOVESTATUS: PROC[msOperation: CARDINAL, gcStateBank: CARDINAL _ 0] RETURNS[CARDINAL] = MACHINE CODE { PrincOps.zMISC, aRTMOVESTATUS }; END. bCedarMicrocode.mesa Paul Rovner, November 10, 1983 4:04 pm Bob Hagmann, May 11, 1984 4:11:40 pm PDT Russ Atkinson (RRA) February 1, 1985 12:49:11 pm PST Beach, February 22, 1985 2:53:32 pm PST Doug Wyatt, February 24, 1985 9:28:26 pm PST Defines the interface between the CedarRuntime software and the CedarRuntime microcode Types microcode version number that corresponds to this CedarRuntime system used by the reclaimer when it finds a REF to be nilified in an object being reclaimed used to establish a newly allocated object as such (sets refcount to logical 0) used by the collector to examine each ZCT entry used (e.g.) by compiled code for NARROW Support for the allocator aALLOCATEHEAPNODE: alpha = 74B; aFREEOBJECT: alpha = 75B; aFREEPREFIXEDNODE: alpha = 77B; Machine Code Procedures A VESTIGE, for compatibility in the interim Κ0˜codešœ™Kšœ'™'Kšœ)™)K™4J™'K™,—K™KšœV™VK˜šΟk ˜ Kšœ œ ˜Kšœ œ˜Kšœ œ˜&Kšœ œ˜Kšœœ˜—K˜KšΠblœ ˜Kšœ˜head™šœœ˜KšœE™E—K™šœœ˜K˜—šœ˜Kšœ&œ,™UK™—šœ˜K™—šœ ˜ K™—šœ˜KšœO™OK™—šœ˜Kšœ&œ™/K™—šœ˜K™—šœ˜K™—šœ'˜'Kšœ!™'K˜—šœΟc.˜JK™Kšœ™Kšœ™Kšœ™Kšœ™——šœ™š œœ œ œœœœ˜