ATT has gone wierded out on attachments for the moment, so I'm dumping all this into a
long text ramble
Jim:
Please forward these observations to the appropriate parties, copying me. I am having
trouble sorting out who started the thread and who is receiving replies.
I will respond directly to anyone w/ questions, to the best of my ability and experience.
I believe that I see some discrepancies, as I think others are also questioning some
assumptions.
To: group
I own and did operate a PDP-12; having written unique PDP-12 code, I disagree: the 2 modes
"ping-ponged". I think some of the thoughts here are based on reading the books
and thinking in "hardware mode" and not considering actual operation or the
software implementations.
I have done the full experience: ownership, hardware integration, commissioning, running
and developing custom code of both PDP-12's and PDP-8's. I still own 1 PDP-12 and
4+ PDP-8's.
Re: the 12, you were either in LINC mode or PDP mode at any given time. These were NOT
"parallel processors". You called the LINC IOT instruction to switch from PDP
mode to LINC mode; then you "returned" to PDP mode by making the PDP call in
LINC code. Usually, you briefly switched to LINC mode to run the peripherals. Most of
the code that you ran was PDP code. The TU-55/6's needed LINC code and so did the
VR-12, for instance.
It is possible that something written for the LINC would be run in LINC mode for high
percentages of the time. That code might have some "patches" that ran in PDP
mode after review and revision.
It could be that such code was modified from LINC code to a PDP-12 routine using the 12 as
a "development system" to test and implement such patches.
The PDP-12 switch selected which mode you STARTED FROM, IIRC. Once you had launched and
were running code, you had to switch via code calls in the routines.
I can't vouch for this on a LINC-8 machine, but I thought it was similar.
I wrote my own "Mag Tape Boot Loader" in my trials and tribulations while my 12
was running. The following is an excerpt from my account of that experience. Note the
PDP versus LINC calls inline in the code.
<quote>
My Boot loader [MTBL] code used the followings syntax. It resided at the high end address
of a page, was toggled in via Front Panel and a Front Panel "Start Switch"
launched the code. It called the Mag Tape and rewrote itself over the corrupted memory. I
think I had another routine to update the Mag Tape locations periodically, after
rewrites.
I can't remember the LINC syntax and would have to look those up in the reference
manuals. (Don't leave the launch address without them.)
Comments are posted after the code [in this case], to allow for inevitable corruption by
non column friendly text machinery.
************************
* MAG TAPE BOOT LOADER *
************************
CLA
LINC
LIF 0
LDF 0
AXO
RCG
DATA
PDP
JMP I+1
DATA
Comments, added here due to not being in "column mode"
/MAG TAPE BOOT ROUTINE;
/MUST BE PRESENT IN TAPE
/BLOCK 273; WILL BE OVER-
/WRITTEN ON USE.
/WHEN CALLED THIS CODE READS
/TAPE BLOCKS 270-273 TO
/MEMORY BLOCKS 0-3.
/TO USE:
/ 1) LEFT SW TO 1760
/ 2) START LEFT SW
/RESTART ADDRESS
Sherman, 12 owner
shermanfoy at
att.net
<endquote>
The longer narrative in a Word doc is attached.
A PDP-8 WILL NOT run LINC code: that is also by ownership & experience & hardware
troubleshooting-debug & handwriting machine code. I did ALL of that in one session of
working on a design flaw in the 8-E [also F & M] machines.
Again, the PDP-12 does not run the two modes CONCURRENTLY, rather they run CONSECUTIVELY.
I am borrowing the legalese for terms of sentencing, as it lends itself well to this
description.
And again, I am doing this from actual ownership and experience of getting hardware
running, hand-coding and debugging custom routines. Of course, I did this after
researching and reading instruction sets from the programming manuals and poring through
sample code listings.
Further, as I previously mentioned, I cannot vouch these thoughts and descriptions for the
LINC-8. If I understand this correctly, the "straight LINC" would also share
the use of LINC only code characteristic w/ the PDP-8's use of the PDP only code
characteristic.
My 12 is in storage and would be a "year out" to operation at any given time.
That assumes that it has not suffered deterioration from its "put in storage
running" status. It has always been stored in dry storage. Another major obstacle
is simply finding the proper floorspace to mount its large footprint environmentally.
If I am encouraged and/or flogged, I may bring the 12 machine out of retirement. I expect
that my path will be to launch a PDP-8M [perhaps a PDP-8E] first and then bring the
PDP-12's VR-12 out and try to interface it w/ an IBM PC. There is a local "moral
imperative" to resurrect SpaceWars :)
I also intend to try to make a TU-56HM STANDALONE Mag tape talk to the PC machine. The
TU-56 Standalone mode is a rare beast and can be found in the FOOTNOTES on the TU-56
drawings. I do not believe there was a complete document for the Standalone machine. I
seem to have the requisite TU-56 hardware, but I am not sure of the interfacing and
cabling. Code would likely be written in C from a DOS environment on the PC.
This would, likely be analogous to some of the TU-58 modes of operation, which were based
on serial ports. I also have several pieces of TU-58, including a VT-103 machine.
These projects could be described as ambitious. We need some more SoCal DECnutz.
<quote>
Then I discussed my 12 running time:
The "12 monster" had Core Memory, which, like an elephant, doesn't forget.
It had about 100 pounds of Sola Constant Voltage Transformer. These combos are good for
brownouts.
It had a Power Fail Auto Restart Option [PFAR, my acronym]. I learned the hard way on a
PDP-11/44: don't screw with it and it will restore itself when the power come back.
Also, the power supply had three gigantic electrolytics, about the size of thermos
bottles. These guys were significant fractions of a Farad 40 YEARS BEFORE SUPERCAPS. The
decay rate of the power supply was fantastic. This provided major "headroom" on
the RC time constant that the PFAR used. One thing done with this was to turnoff the Write
Amps for the Core Memory on Power Fail detection.
All in all, blackout/brownout, the 12 was ready. I had a block level blackout happen and
when the power came back on, restarted in "mid sentence" of the code I was
bumming.
I wrote my own version of a "Monitor", that I called MON-12. It was based on
ODT-8. I originally keyed it in from the front panel, hundreds of lines. I wrote the
documentation as I went. I stripped out the Paper Tape stuff, since the 12 didn't have
one and I would have to add an extra cabinet; later???
The 12 had two TU-55's. Tape-tape copy was an obvious feature. But I always wondered
why they didn't use a TU-56 Dual Transport and put a Paper Tape in the main cabinet. I
have two TU-56's and a stack of PC-0X's patiently waiting in the warehouse.
Somewhere along the way, I got to where I could edit from the keyboard. I also started
work on an ambitious "block mode copy" function.
If you can see this coming, I developed code that would "eat itself". After
toggling this in from the Front Panel three times, I decided to take a cue from the Paper
Tape stuff I had removed from ODT. I wrote a Mag Tape Boot Loader [MTBL, my acronym]. The
12 implementation for the Mag Tape used LINC code, not a TU-55 IOT set of calls.
My Boot loader [MTBL] code used the followings syntax. It resided at the high end address
of a page, was toggled in via Front Panel and a Front Panel "Start Switch"
launched the code. It called the Mag Tape and rewrote itself over the corrupted memory. I
think I had another routine to update the Mag Tape locations periodically, after
rewrites.
I can't remember the LINC syntax and would have to look those up in the reference
manuals. (Don't leave the launch address without them.)
Comments are posted after the code [in this case], to allow for inevitable corruption by
non column friendly text machinery.
************************
* MAG TAPE BOOT LOADER *
************************
CLA
LINC
LIF 0
LDF 0
AXO
RCG
DATA
PDP
JMP I+1
DATA
/MAG TAPE BOOT ROUTINE;
/MUST BE PRESENT IN TAPE
/BLOCK 273; WILL BE OVER-
/WRITTEN ON USE.
/WHEN CALLED THIS CODE READS
/TAPE BLOCKS 270-273 TO
/MEMORY BLOCKS 0-3.
/TO USE:
/ 1) LEFT SW TO 1760
/ 2) START LEFT SW
/RESTART ADDRESS
Sherman, 12 owner
shermanfoy at
att.net
<endquote>