// CheckEndHint.bcpl // Copyright Xerox Corporation 1979 // Last modified June 25, 1979 10:07 AM by Taft // Bldr CheckEndHint GP get "AltoFileSys.d" get "Streams.d" external [ // incoming procedures SetupReadParam; ReadParam KsHintLastPageFa; KsBufferAddress; FileLength; GetCurrentFa; OpenFile Puts; Closes; Wss; Wns; MoveBlock; Free // incoming statics dsp; sysZone ] static [ realDsp; log ] //---------------------------------------------------------------------------- let CheckEndHint() be //---------------------------------------------------------------------------- [ log = OpenFile("CheckEndHint.log", ksTypeWriteOnly, charItem) realDsp = dsp dsp = lv MyPuts - offset ST.puts/16 SetupReadParam() [ let name = vec 127 let stream = ReadParam($I, "Filename: ", name, 0, true) if stream eq -1 break let hintFA = vec lFA MoveBlock(hintFA, KsHintLastPageFa(stream), lFA) FileLength(stream) let realFA = vec lFA GetCurrentFa(stream, realFA) for i = 0 to lFA-1 do if hintFA!i ne realFA!i then [ Wss(dsp, "*nFile ") Wss(dsp, name) Wss(dsp, " end hint was ") PrintFA(hintFA) Wss(dsp, ", should be ") PrintFA(realFA) break ] // Closes would fix up the incorrect hint! Free(sysZone, KsBufferAddress(stream)) Free(sysZone, stream) ] repeat Closes(log) dsp = realDsp ] //---------------------------------------------------------------------------- and PrintFA(fa) be //---------------------------------------------------------------------------- [ Wss(dsp, "da=") Wns(dsp, fa>>FA.da, 0, 8) Wss(dsp, " pn=") Wns(dsp, fa>>FA.pageNumber, 0, 8) Wss(dsp, " nc=") Wns(dsp, fa>>FA.charPos, 0, 8) ] //---------------------------------------------------------------------------- and MyPuts(stream, char) be [ Puts(realDsp, char); Puts(log, char) ] //----------------------------------------------------------------------------