General TC11 DECtape diagnostic/formatter questions
paulkoning at comcast.net
Wed Nov 16 13:47:52 CST 2016
> On Nov 15, 2016, at 5:40 PM, Josh Dersch <derschjo at gmail.com> wrote:
> I noticed the following commented-out line at the beginning of the program:
> ; RESET ;CLEAR THE WORLD
> ; MOV #P7,PS ;LOCKOUT P1 BY RAISING CPU PRIORITY <<----
> Uncommenting the MOV #P7,PS line allows the formatter to run properly.
> It appears that interrupts (I'd guess the LTC interrupt) were taking
> enough time away from the program to cause it to miss data; I'm
> guessing it's because I'm running the FB monitor rather than the SJ
> monitor, but I'm not familiar enough with RT-11 yet to know exactly
> where to place the blame.
Yes, commenting out that code is clearly a bug. The RALL/WALL/WRTM functions are used in program I/O mode, so the CPU has to be ready with each new word as the tape finishes with the previous one. Interrupts are most definitely supposed to be disabled. DECtape formatting is a standalone activity, not something run under any OS.
RT-11 FB is likely to do a bit more stuff per clock interrupt, but either way, you're entirely correct that interrupts -- clock or otherwise -- need to be disabled. The consequence of spurious interrupts might be a corrupt mark track, or wrong data written by the WALL pass, or verify errors during the RALL pass.
BTW, on RALL, it's actually possible to use DMA for the lower 16 bits of the 18 bit data. The RT11 utility FILEX does that when reading PDP10 format tapes. (I suppose the same might be true for WALL, I haven't heard of that being done.) But the conventional way is to ignore the DMA and handle the data via the Data register plus the two extended data bits in the status register.
More information about the cctalk