A colleague and I are working on getting our respective Fabritek MP-12s working. The MP-12 is an industrial-looking computer with a very limited front panel (deposit doesn't increment PC...gah!) but does emulate most respects of a PDP-8. So far, we've been able to find the device codes for updating the 7-segment LED displays on the front, turning on and off relays, and setting some arbitrary open-collector outputs. It appears as though there is no serial port option on ours, which is unfortunate.
There are three 512-by-4 bipolar (configured as 512-by-12) PROMs that seem to override the core memory at the top of the 4k field. If the PROM's value is 7777 octal, the core memory is accessible. Otherwise, you're stuck with ROM, best I can tell. We've dumped the ROMs to verify, but here's the code I've backed out of them, disassembled and labeled where appropriate: *7756 TEMP, 7755 /NOT IN ROM CLA HLT /7602 ADDR, 7755 /7755 STARTING ADDRESS? START, TAD ADDR /1360 GET STARTING ADDRESS? DCA TEMP /3356 SAVE TEMPORARILY LOOP, RRB /6012 GET CHAR CLL RTL /7106 RTL /7006 RTL /7006 ROTATE SO BIT 0 IS IN BIT 7, BIT 4 IN BIT 11, ETC. 6015 /6015 SKIP ON FLAG? JMP .-1 /5367 SNL /7420 SKIP IF LINK IS SET (BIT 6 OF PAPER TAPE IS SET) JMP LOOP /5363 DCA I TEMP /3756 ISZ TEMP /2356 JMP 7755 /5355 7776 /NOT IN ROM JMP START /5361 $ The "NOT IN ROM" indicates that the ROM's value is unprogrammed, so that you can in fact access those core locations. The values I've provided just happen to be what's in my machine's memory at this time. It looks a lot like a RIM loader, except I can't figure out for the life of me what the format should look like. Best I can tell, if RRB ORs the read buffer with the accumulator, you'll never be able to send anything but patterns matching (data & 7737). At least, that's what I've simulated. Due to the fact that they're clearing the link after the second go around, you'd be losing one bit of data. So, maybe this isn't really a program loading routine, but rather just something to store 8-bit values in core? Any other ideas? Thanks, Kyle
