// ScanTimer.bcpl
// Copyright Xerox Corporation 1979
// Last modified August 28, 1979 9:18 PM by Taft
// Bldr ScanTimer GP
get "Streams.d"
get "AltoFileSys.d"
external
[
// incoming procedures
SetupReadParam; ReadParam
InitScanStream; GetScanStreamBuffer; FinishScanStream
Ws; Wns; Gets; Closes; Timer
// incoming statics
dsp; keys
]
//----------------------------------------------------------------------------
let TestScan() be
//----------------------------------------------------------------------------[
SetupReadParam()
let nBufs = ReadParam($D, "Number of buffers: ")
if nBufs ls 1 then nBufs = 0
if nBufs gr 25 then nBufs = 25
let buffers = vec 25*256
let bufVec = vec 25
for i = 0 to nBufs-1 do bufVec!i = buffers + 256*i
[
let name = vec 127
let stream = ReadParam($I, "Input file: ", name, 0, true)
if stream eq -1 break
Ws("*n"); Ws(name)
let ssd = InitScanStream(stream, bufVec, nBufs)
let startTime, endTime = vec 1, vec 1
Timer(startTime)
let pages = 0
until GetScanStreamBuffer(ssd) eq 0 do pages = pages+1
FinishScanStream(ssd)
Timer(endTime)
Closes(stream)
Ws(" ")
Wns(dsp, pages)
Ws(" pages, ")
Wns(dsp, endTime!1-startTime!1)
Ws(" ms")
] repeat
]