DIRECTORY Basics, ConstArith, YggEnvironment, YgInternal; YggInline: DEFINITIONS IMPORTS Basics, ConstArith = BEGIN PageNumber: TYPE = YggEnvironment.PageNumber; WordNumber: TYPE = YggEnvironment.WordNumber; LongZero: PROC [where: LONG POINTER, nWords: CARDINAL] = INLINE { Basics.Fill[where, nWords, 0] }; ShortWordsFromPages: PROC [pages: CARDINAL, deviceCharacteristics: YggEnvironment.DeviceCharacteristics] RETURNS [words: CARDINAL] = INLINE { RETURN [Basics.BITSHIFT[value: pages, count: deviceCharacteristics.logWordsPerPage]] }; WordsFromPages: PROC [pages: PageNumber, deviceCharacteristics: YggEnvironment.DeviceCharacteristics] RETURNS [words: WordNumber] = INLINE { RETURN[ConstArith.Mul[ConstArith.FromInt[pages], ConstArith.FromInt[deviceCharacteristics.wordsPerPage]]]}; PagesFromWords: PROC [words: WordNumber, deviceCharacteristics: YggEnvironment.DeviceCharacteristics] RETURNS [pages: PageNumber] = INLINE { RETURN [ConstArith.ToInt[ConstArith.Div[words, ConstArith.FromCard[deviceCharacteristics.wordsPerPage]]]] }; DecomposeWords: PROC [words: WordNumber, deviceCharacteristics: YggEnvironment.DeviceCharacteristics] RETURNS [page: PageNumber, wordInPage: CARDINAL] = INLINE { q, r: ConstArith.Const; [q, r] _ ConstArith.DivMod[words, ConstArith.FromCard[deviceCharacteristics.wordsPerPage]]; RETURN [ConstArith.ToInt[q], ConstArith.ToInt[r]] }; END.  YggInline.mesa Copyright Σ 1985, 1987, 1988 by Xerox Corporation. All rights reserved. Simple procedures used by several Yggdrasil components. Last edited by MBrown on January 30, 1984 11:31:04 am PST Hauser, March 7, 1985 2:17:46 pm PST Bob Hagmann March 23, 1988 9:08:22 am PST Κ˜˜šœ™IcodešœH™H—Jšœ7™7šœ™Jšœ*™*K™$Kšœ)™)—˜šΟk ˜ J˜J˜ Jšœ˜Jšœ ˜ J˜——šΟn œ ˜š˜J˜J˜ —Jšœ˜Jšœ œ˜-Jšœ œ˜-J˜š žœœ œœ œœ˜AJšœ ˜ J˜—š žœœ œ?œ œœ˜Jšœ œ@˜WJ˜—šžœœRœœ˜ŒJšœe˜kJ˜—šžœœRœœ˜ŒJšœf˜lJ˜—šžœœQ˜ešœ œœ˜;Jšœ˜Jšœ[˜[Jšœ+˜1Jšœ˜—J˜—J˜Jšœ˜——…—f