<> <> <> DIRECTORY AMBridge USING [TVToLC], AMTypes USING [IndexToTV, TV], Endian USING [CardFromF, FWORD], IO USING [PutF], PrintTV USING [RegisterRefPrintProc, RegisterTVPrintProc, RefPrintProc, TVPrintProc]; EndianDebug: CEDAR PROGRAM IMPORTS AMBridge, AMTypes, Endian, IO, PrintTV = { PrintRefFWord: PrintTV.RefPrintProc = { <<[ref: REF READONLY ANY, data: REF ANY, stream: STREAM, depth: INT _ 4, width: INT _ 32, verbose: BOOL _ FALSE] RETURNS [useOld: BOOL _ FALSE]>> foo: REF READONLY Endian.FWORD _ NARROW[ref]; IO.PutF[stream, "%G", [cardinal[Endian.CardFromF[foo^]]] ]; }; PrintTVFWord: PrintTV.TVPrintProc = TRUSTED { <<[tv: TV, data: REF ANY, stream: STREAM, depth: INT _ 4, width: INT _ 32, verbose: BOOL _ FALSE] RETURNS [useOld: BOOL _ FALSE]>> foo: Endian.FWORD; highTV: AMTypes.TV _ AMTypes.IndexToTV[tv, 1]; lowTV: AMTypes.TV _ AMTypes.IndexToTV[tv, 2]; foo.high _ AMBridge.TVToLC[highTV]; foo.low _ AMBridge.TVToLC[lowTV]; IO.PutF[stream, "%G", [cardinal[Endian.CardFromF[foo]]] ]; }; PrintTV.RegisterRefPrintProc[CODE[Endian.FWORD], PrintRefFWord]; PrintTV.RegisterTVPrintProc[CODE[Endian.FWORD], PrintTVFWord]; }.