Fabritek MP-12 Loader
kylevowen at gmail.com
Thu Dec 3 14:15:44 CST 2015
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
> 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
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. 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
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.
More information about the cctech