There were two problems here:
- The FOPEN code in 56 uses new C.DISK/C.TTY flags to keep track of the
channel type, so it knew what to do when closing the channel. The
TOPS-20 open code had been modified to set these, but the ITS code
hadn't, so CLOSE was assuming all channels were network channels.
Fix: set those flags in ODSK and OTTY, as TOPS-20 does.
- The BFCDSK flush routine had been modified to use byte pointer writes
to write the last incomplete word for both TOPS-20 (SOUT) and ITS
(SIOT). But on ITS, SIOT only works in unit mode, and Muddle opens
files in block mode.
Fix: restore the working code from Muddle 54 for writing the last
word. The only difference is that BFCDSK can now be invoked with the
leftover byte count (C) being zero, so it needs to check at the
start to avoid duplicating the last word in that case.