Back in the days of uncompressed tape blocks (reel-to-reel, & early 3480) there was a nice one-to-one correspondence between a fixed point on the tape within a block and all the bits in a byte in parallel tracks on the tape, so it was actually relatively simple to pass the tape past the heads in the reverse direction and read all the bytes within a block in reverse order and all the blocks in reverse order at full read speed with the tape continually moving in reverse. Tape sorts made use of that to eliminate the repeated several-minute rewind time each time another pass over the tape data was required.
I never had to deal with reverse-read I/O, but PofOp indicates that one supplied the address of the high end of the buffer as the channel program data address and the channel decremented rather than incremented byte addresses while transferring bytes to memory, so that the bytes of a block would be restored to correct order in memory but would be high-justified rather than low-justified in the buffer for short blocks. So the channel hardware itself effectively reversed the order of bytes as they were read in reverse order. I believe once the physical tape blocks became compressed (3480C and later) it became impossible to actually read the physical blocks with the tape moving in reverse and extract the original bytes on the fly. Read reverse on such drives would no doubt have been emulated by the device by backspacing over blocks, reading physical blocks with a forward read, extracting the bytes, figuring out what bytes to supply to the channel in reverse order to be consistent with what read-reverse should have produced, then backspacing again to get to preceding block and repeating. Reversing the tape direction repeatedly while reading an entire tape in reverse would totally kill performance on one of those drives. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN