TU58 tape formatter (was Re: rebuilding DC100A cartridges?)

allison allisonportable at gmail.com
Wed Nov 14 11:59:40 CST 2018

On 11/14/2018 10:53 AM, Ethan Dicks via cctalk wrote:
> On Sat, Nov 24, 2012 at 4:08 AM Eric Smith <eric at 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.


More information about the cctalk mailing list