TD8-E Boot Loader Question

66 views
Skip to first unread message

Martin Eberhard

unread,
Mar 17, 2020, 11:29:26 AM3/17/20
to
I'm trying to understand the TD8-E boot loader, and it's driving me crazy. I mostly understand how it works, but...

I see that it first turns on the reader in the reverse direction, and then waits for a Mark Track code of 22. This makes sense - 22 is the end zone code, when read in the reverse direction.

Next, it reads in the forward direction, and waits for Mark Track code 31, before it reads the data and writes it to core.

I have no idea what is this Mark Track code 31! I can't find any reference to this code in TD8-E documentation, TC08 documentation, or TU56 documentation.

Any ideas?

My best guess is that it is somehow a "special" Mark Track code used to identify a "bootable" block???

Your help will be appreciated.

Martin

Martin Eberhard

unread,
Mar 17, 2020, 1:21:05 PM3/17/20
to
I found the source listing for this boot loader on page 9 of the OS/8 System Reference Manual (DEC-S8-OSRMA-A-D). The comments in this code call this mystery 31 code "CODE BEFORE DATA WORD." This Mark Track code 31 seems to be undocumented in any of the tables of Mark Track codes I can find. What the heck is it?

m. thompson

unread,
Mar 17, 2020, 8:16:15 PM3/17/20
to
On Tuesday, March 17, 2020 at 1:21:05 PM UTC-4, Martin Eberhard wrote:
> I found the source listing for this boot loader on page 9 of the OS/8 System Reference Manual (DEC-S8-OSRMA-A-D). The comments in this code call this mystery 31 code "CODE BEFORE DATA WORD." This Mark Track code 31 seems to be undocumented in any of the tables of Mark Track codes I can find. What the heck is it?

The TC01 manual lists 8 mark track codes that have a compliment obverse, and 31 is one of the codes listed.

I looked through the DECtape formatter source and the hardware reference manuals for many DECtape controllers and didn't find any that use the Mark Track code 31.

Charles Lasner may be the only one who can answer your question.

Steve Tockey

unread,
Mar 28, 2020, 7:34:49 PM3/28/20
to
Martin,
Did you figure this out yet? If not, I wonder if this might help. See page B-1 of DEC-S8-OSSMB-A-D OS/8 v3d Software Support Manual. It's a map of the system-reserved blocks on all OS/8 system device media. Block 0 is for the system device boot routine.

Also, pages 7-19 through 7-24 of the "pdp-8/e pdp-8/m & pdp-8/f small computer handbook" have a pretty detailed discussion of DecTape format. In particular, page 7-24 has a map of how one data block is represented on DecTape.

So on a TU56 system DecTape:

*) Reading backwards until you read the end zone code means you are now at the beginning of the tape (obviously)

*) Now, reading forward until you see the 31 code means that the very next thing you read off the tape will be the very first data word of block 0 on that tape. So now you just read the next (7777-7354) data words off the tape while storing them at addresses 7354 to 7777. When that's done, jump to address 7400 to execute the system device boot routine you just read off of block 0.


My point is that just looking for code 31 seems like a simplification that allows the boot code to avoid dealing with all of the block expand code, block mark, reverse guard, lock, reverse checksum, reverse final, and reverse pre-final content that's at the beginning of every block on the DecTape. All that on-tape complexity is easily skipped over, you are guaranteed to be where you need to be to read the Block 0 data.

Martin Eberhard

unread,
Mar 29, 2020, 12:30:58 AM3/29/20
to
Hi Steve,

Yes, I get all of that - I came to the same conclusions as you did about how this boot program works in general. I also appreciate the effort the author went to, to make the program as short as possible for front panel toggling.

What stumps me is that in all of the lists of valid Mark Track codes I can find, I don't see code 31. m. thompson says (above) that he see this code in the TC01 manual. I will look there to see if there is more explanation.

The weird thing is he says he doesn't see this code 31 in the DECtape formatter source code. However, if I format a Dectape with the TD8e formatter program, the tape boots - so obviously this code 31 is somehow showing up on the tape.

wtf?

by the way, can someone point me to the formatter source code?

Thanks,
Martin E.

vher...@me.com

unread,
Apr 14, 2020, 3:42:17 PM4/14/20
to
Reply all
Reply to author
Forward
0 new messages