Subject: Strange code fragment

From: [email-masked] (Douglas W. Jones,201H MLH,3193350740,3193382879)
Date: 31 Mar 1994 16:58:01 GMT

I was going over the paper tape reader I picked up from Rockwell's surplus
outlet, and I found, written in pencil on the inside of the plate that
covers the lamp, the following:

    0030 load-addr
    6743 dep
    5031 dep
    0030 load-addr/clear/cont

This looks suspiciously pdp8ish, despite the fact that the reader was
interfaced to a General Radio Peripheral Expander box.  The same lot
of surplus parts contained 3 RK01 drives, though, also with interfaces
from the GR box.  That fits the following reading of what I found:

    .=0030
    DMNT
    JMP .
    $

But if so, what does this little sequence do?  Is it a boot sequence of
some kind?

And finally, did GR build a PDP-8 compatable processor?  The chips on the
interface card that came with my paper tape reader are dated 1972 and 1973.

					Doug Jones
					[email-masked]

---

From: [email-masked] (Johnny Billquist)
Date: 1 Apr 1994 03:01:11 +0200

>But if so, what does this little sequence do?  Is it a boot sequence of

Yes, it is the typical RK8-E bootstrap.
It's also the shortest ever bootstrap I've ever seen for
any processor, any device.

I don't think the mnemonic is DMNT for a RK8-E though.

>interface card that came with my paper tape reader are dated 1972 and 1973.

No idea about that one.

	Johnny
-- 
Johnny Billquist                  || "I'm on a bus
CS student at Uppsala University  ||  on a psychedelic trip
email: [email-masked]       ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol

---

From: [email-masked] (Jonathan Vaughan)
Date: 1 Apr 1994 08:36:17 -0500

In article <[email-masked]> [email-masked] wrote:
[excerpted]

>But if so, what does this little sequence do?  Is it a boot sequence
of

It is indeed a boot sequence.  I don't have the materials any more, but it
might have worked with RK05 or perhaps the DSD floppy drive (an 8 inch
floppy drive)-- whatever device 74 was on the bus.  Essentially, the 6743
instruction initiates a DMA transfer to memory--because of the clear
pulse, all the address and block registers in the device controller and
DMA controller are set to zero, so it does a read disk block zero to
memory starting at zero, so it overwrites itself.  When the overwrite
occurs, location 30 becomes a skip on done flag (probably 6741), and 31
becomes jmp .-1. When the block read via DMA is finished, the remainder of
the boot sequence now occupies memory locations 000-377, and a more
ambitious bootstrap sequence takes over when the skip condition is met. 

[email-masked]

---

From: [email-masked] (Douglas W. Jones,201H MLH,3193350740,3193382879)
Date: 1 Apr 1994 15:34:52 GMT

>From article <[email-masked]>,
> any processor, any device.

As an old Modcomp IV user, it looks about twice as long as the boot
sequence I used to use:

   XXXX reset/deposit/reset/run

Where the value of XXXX that you put on the switch register is something
I forget.  It was the instruction to begin a DMA transfer, and usually,
it was the only value input from the switches (so they were always set
that way, so I don't remember the value).

Reset set the program counter to zero, deposit did the usual deposit of
switches in memory, incrementing the address, the second reset put the
address back to zero, and the run instruction did as expected.  The
reset also reset the device/cylinder/sector registers and the memory
address register, so the net result was to transfer sector zero of
track zero of cylinder zero to memory, overwriting the instruction.  For
reasons I forget, the instruction itself would hang until overwritten.

				Doug Jones
				[email-masked]

---

From: [email-masked] (Charles Lasner)
Date: 1 Apr 1994 17:39:00 GMT

In article <[email-masked]>,
>interface card that came with my paper tape reader are dated 1972 and 1973.

Not that I've ever seen them, but GR made some compatible add-ons for the
Omnibus.  Apparently the largest package is some sort of electroncs
testbed station, complete with RK8E or possibly a compatible (there were
several RK-compatibles, not all of which were media-compatible!).  I
suspect that some used heavy-duty BRPE punches for numerical control, etc.
The fact that you found some reader stuff goes with that territory, etc.

In fact, I was recently contacted by a current user of one in Georgia who
needed Kermit-12.  They successfully got Kermit up the hard way by remote
download in .IPL format of the binary into the IPL loader.  (See the
Kermit-12 docs if you are unfamiliar with the "printable" IPL encoing
format, etc.)

The sequence you describe is indeed the RK8E bootstrap for the shortest
toggle-in.  It's limited to use on drive 0, but that's the usual case.

(It's a subset of a longer boot to any drive, etc.)

However, the length of boot is not the shortest, nor unique.

The RK01/RK08 uses the same sequence, and that's the source of the DMNT
described in the source code.  These disks are otherwise quite different;
the RK01 only holds half the capacity, but had some nifty features such
as *real* formatting, i.e., the headers aren't rewritten every time you
write!  Also, it's possible to write-protect each sector individually as
opposed to a pack-wide write-lock.  (Although this feature is almost
useless in OS/8 unless you restrict yourself, etc.)

Now, as to the *shortest* sequence:

Someone once built a floppy based on a Xebec controller.  It's not
compatible with anything, but was a joy to program compared to anything
named RXxx.  Most versions used something that held more than the RX01 as
a better single-density, but I think there were also some MFM
variations.  All I can remember is that it went by a 4-digit model
number, etc.

The people who contacted me for the SCSI project wanted to use them for
commercial purposes, but they were no longer available.  So, we instead
created the floppy-only version of the original MDC8 using an SMS
controller for 8" drives (MFM) that is essentially a replacement for the
absolute original Shugart Associates Standard Interface (SASI) board.
The SMS board was so compatible, that it had all of the quirks of the
SASI except it deleted on-board device copy, because it ties up the
interface doing an off-line copy *slower* than a program can direct it to!

Anyway, the aforementioned Xebec system had a smaller-still boot!  The
sequence is:

	*12 {I'm not sure of this!}

	READ

This IOT was "nasty" as it hung the buss until the DMA finished!  Then
the boot continues in 00013 with the just-read-in code!

However, there is a still shorter boot for it!

	*DOESNTMATTER

That's the entire boot!  No, you didn't miss anything!  Just press a boot
button!  It DMA's into the machine either the READ or alternatively the
RIM loader and starts the machine accordingly.

cjl (or, as they *never* did say on Name That Tune: "I can name that song
in zero notes")