%constinteger procs = 4 %include "Moose:Mouse.Inc" %externalpredicatespec FS lookup(%string(31) what, %integername value) %include "GDMR_H:Disc.Inc" %routine run one %bytearray buffer(0 : 511) %integer next block, size, x open input(3, ":N"); select input(3) open output(3, ":T"); select output(3) x = disc size(size, x) %if x < 0 %start printstring("Disc size: "); write(x, 0); newline %stop %finish next block = rem(addr(current process), size) printstring("Starting at "); write(next block, 0); newline %cycle x = disc read(next block, buffer(0)) %if x < 0 %start printstring("Read: "); write(x, 0); newline %stop %finish next block = rem((53 * next block + 65539) & 16_7FFFFFFF, size) %repeat %end %begin %record(process fm)%name p %integer i %label x %for i = 1, 1, procs %cycle p == create process(10000, addr(x), 2, nil) %repeat x: run one %end %of %program