On 11/14/2018 10:53 AM, Ethan Dicks via cctalk wrote: > On Sat, Nov 24, 2012 at 4:08 AM Eric Smith <e...@brouhaha.com> wrote: >> I spent some time reverse-engineering the firmware. There is only one >> undocumented opcode, decimal 10, and I haven't yet figured out what it >> does, but it definitely doesn't format a tape. > I looked at the firmware disassemblies. Opcode 10 appears to only > point to code (vs NOP) on one version of the firmware > > https://gitlab.com/NF6X_Retrocomputing/tu58firmware/blob/master/disassembly/23-089e2.asm > > op_undoc_10: > ld hl,l07e4 > call s06a > ld a,018h > ld (r2003),a > jp op_nop > > (I think the jump to op_nop is just there to handle regular opcode > processing cleanup) > > I have TU58 drives in VAXen (11/750, 11/730, 11/725), a VT103, and one > standalone unit that I pulled from an 11/725 that we bought to strip > for parts to keep our 11/730 running. I really haven't explored the > differences in the firmware since mostly, I've used them as intended, > for loading SA Backup, Microcode patches, and, of course, as Console > Media to boot the 730 and 725. > > -ethan Mine I use to boot a 11/23. The code, I have both is functionally the same for PDP11 use. There are also two version of the TU58 board, one is serial IO (used for most everything) and a parallel version used in the PDT110 (I have one). The parallel one uses the same bits and all to match the UART so the same code. The parallel IO hardware fakes the uart framing error error (attention signal). Very clever as the 8085 code is the same.
Both samples of disassembled code do not relate bits and ports in the actual drive if they did then it would be clearer what the code was doing. The biggest thing is it reads or writes a 128byte section of a 512 byte block to tape without doing IO to the host from local ram as the CPU is fully consumed doing that. The actual TU58 system is 2K of Eprom, 8155 (256 bytes of ram and 8255 style of port IO plus a timer), serial port and 8085. So the core hardware outside of the read amps is pretty trivial. It takes all of the available IO and most of the interrupt pins plus SID/SOD pins to implement it. Its very IO intense for controlling the tape and reading/writing it. Best use for the code is extract the parts that do IO to the host (MRSP) and make a dual 256Kbyte ram (or eprom if IPL for VAX) to replace the physical tape. For 11/23 use I run a 512K ram board an it boots RT-11 XM copies it to XD(ram disk) and then boots it. Takes about 7 minutes to boot but once there its fairly fast save for file IO to tape as seeks are very slow. The version of a solid state TU58 I have is not much faster as the serial rate is the same but seeks are much faster. Allison