Fabritek MP-12 Loader

Josh Dersch derschjo at gmail.com
Thu Dec 3 14:24:54 CST 2015


On Thu, Dec 3, 2015 at 12:15 PM, Kyle Owen <kylevowen at gmail.com> wrote:

> On Thu, Dec 3, 2015 at 11:09 AM, Josh Dersch <derschjo at gmail.com> wrote:
> >
> > I have what sounds like the same machine outfitted with the same
> interface
> > (basically it looks like a synchronous serial port).  I don't have the
> > paper tape reader, though.
>
>
> Yes, sounds like the same configuration indeed!
>
>
> > I appear to have the same PROMs in mine; here's my disassembly from a
> > couple of years back:
> >
> > Addr    Data
> > 7757    7602    CLA, HLT     / Probably data
> > 7760    7755            / Also data
> > 7761    1360    TAD 7660    / Read starting address
> > 7762    3356    DCA 7756    / Deposit AC (7755) in 7756
> > 7763    6012              / Start high-speed reader operation
> > 7764    7106    CLL, RTL    / Clear link, rotate left twice
> > 7765    7006    RTL        / twice more
> > 7766    7006    RTL        / and again (rotated left 6 bits, bit 7 is in
> > link)
> > 7767    6015                / according to MP-12 docs, a command of "5"
> > indicates "skip if device ready and transfer data"
> > 7770    5367    JMP 7767    / loop until data ready
> > 7771    7420    SNL        / skip on link set - end of word?
> > 7772    5363    JMP 7763    / read next if link not set
> > 7773    3756    DCA I 7756    / deposit at address in 7756
> > 7774    2356    ISZ 7756    / increment address, skip if zero
> > 7775    5355    JMP 7755    / jump to instruction loaded at 7755 from
> tape?
> > 7776    2175    ISZ 175        / data (not in PROM) -- overwritten by
> tape
> > (JMP to start of routine)?
> > 7777    5361    JMP 7761    / jump to start of routine
> >
>
> Yeah, that's identical to mine. Thanks for the confirmation!
>
> I haven't spent much more time with it and I've probably screwed up, but to
> > me it looks like it loads in two 6-bit quantities off tape, expecting the
> > 2nd of the two to have bit 7 set; this word is then stored in memory, the
> > address incremented and the next pair loaded. It increments until the
> write
> > address falls off the top of memory and then (i assume) executes the data
> > at 7776, which I assume would be a JMP to the start of the code loaded
> from
> > tape...
> >
>
> At first glance, that's what I'd expect it to do too. However, (and more
> testing is required on my part to confirm) I don't think the 6015
> instruction modifies the accumulator at all.


My understanding is that 6015 does modify the accumulator -- from the manual
(
http://www.mirrorservice.org/sites/www.bitsavers.org/pdf/fabritek/402-1001-00_MP12refMan_1974.pdf
)
Function code 5(8) is interpreted as "...if th the addressed device is
DONE, the next instruction in sequence is skipped, the contents of the
device buffer are inclusive OR'd with the accumulator, and the result is
retained in the accumulator..."

So 6015 reads the next 8-bit quantity from the paper tape and ORs it onto
AC.


> If it does, I can foresee this
> working more or less as you mentioned. However, I can't figure out why
> after incrementing the pointer located at 7756, it needs to jump to 7755.
> Presumably that would be the first location changed by the paper tape
> loading, so if you want to continue loading, wouldn't you want your first
> instruction on tape to be a jump back to the loader? That's the stumper for
> me.
>

Yeah, I was actually just looking at that again and the jump to 7755 is
rather odd.  I think that's what stumped me a couple of years back and
since I never got around to building the interface... I think I just
assumed a couple of bits had gone south on my PROMs, to be honest.



>
> My MP-12 also lacks an async serial interface, I was thinking of building
> > some glue logic to convert from the sync (paper-tape) interface to RS232
> > (probably with a small microcontroller) so I could load code in, but I
> > haven't gotten around to it yet...
>
>
> It doesn't look like it'd be too hard. The synchronous interface provides
> much more support that for just the reader; you also get the relays,
> 7-segment displays, 8-bit parallel output, and presumably the buttons on
> the front of the reader unit too. Still figuring out the buttons; I haven't
> spent much time investigating them just yet.
>

That's interesting -- on my MP-12, the sync interface brings out (IIRC)
three lines: clock, data in, and data out.  I'd be interested to know what
hardware's hooked up to yours to provide all the goodies you have.

- Josh



>
> Thanks!
>
> Kyle
>


More information about the cctalk mailing list