constinteger fill blocksize=16000 externalroutinespec open mag(integer chan, string (7) tape) externalroutinespec write mag(integer chan, addr, len, integername flag) externalroutinespec writetm mag(integer chan, integername flag) externalroutinespec rewind mag(integer chan) externalroutinespec unload mag(integer chan) externalroutinespec prompt(string (255) s) externalintegerfnspec rdfilead(string (255) s) externalroutinespec ucstrg(stringname s) externalroutine write kytape(string (255) s) integer flag, j, fad, blocks string (255) tapename routinespec fill rest of tape fad=rdfilead("IPLFILE") return if fad=0 prompt("To tape-serial number:") ucstrg(tapename) until length(tapename)=6 open mag(4, tapename."*") rewind mag(4) blocks=0 j=fad+32 while j<fad+integer(fad) cycle write mag(4, j, 4096, flag) if flag#0 start printstring("Write fails") write(flag,1) newline exit finish blocks=blocks+1 j=j+4096 repeat printstring("Initial blocks:"); write(blocks, 1); newline writetm mag(4, flag) if flag#0 start printstring("TM fails") write(flag, 1); newline finish write mag(4, fad, 4096, flag) if flag#0 start printstring("Last block wr fails") newline finish writetm mag(4, flag) writetm mag(4, j) if j#0 or flag#0 start printstring("Final TM fail") write(flag, 1); write(j, 1) newline finish ! fill rest of tape unload mag(4) routine fill rest of tape integer j, n j=fad+32 for n=1, 1, 100000 cycle write mag(4, j, fill blocksize, flag) if flag#0 start printstring("Write fails") write(flag,1) newline finish repeat end {fill rest of tape} end {write kytape} endoffile