%constinteger anon = 16_087F5780 %include "Config.Inc" %include "System:Common" %include "System:Disqio.Inc" %include "Inc:Util.Imp" %recordformat bad fm((%integer stamp, %integerarray b(1 : 512 - 3), %integer limit, checksum) %c %or %integerarray x(1 : 512)) %routine init bad %record(bad fm) b %integer n, a %integername z b = 0 %for n = 1, 1, 4 %cycle a = (sy2 start + bad area(n)) << 9 z == transfer(D write ! D verify, 2048, a, integer(addr(b))) %while z = 0 %cycle; %repeat %if z = 2048 %start printstring("Bad area "); write(n, 0) printstring(" initialised") %else printstring("Failed to initialise bad area ") write(n, 0) %finish newline %repeat %end %begin %record(directory fm) dir %integer i, p, a %integername x dir = 0 dir_header_owner = anon dir_header_directory size = 2048 %for p = 0, 1, last partition %cycle %for i = 1, 1, u per p %cycle a = pd start(p) + 4 * i - 4 printstring("Initialising "); write(p, 3); write(i, 3) printstring(" at "); phex(a) newline x == transfer(D write ! D verify, 2048, a << 9, integer(addr(dir))) %cycle; %repeat %until x # 0 dir_header_owner = 0 %repeat %repeat init bad %end %of %program