This is interesting. The PDP has been sitting under my bed for awhile,
not doing anything. My parents were beginning to catch onto the fact that
it doesn't run, and if they figure this out they will likely make me pitch
it. So, I got my 486 "Terminal"[1] going and fired up E11. I got the
PDP-11
instruction set from the PDP-11 FAQ ("What is the PDP-11 Instruction
Set?") and poked 4 bytes at location 1000. The code was the following:
1000 RESET
1002 MOV PC,R1
1004 INC R0
1006 JMP (R1)
so it would loop forever, incrementing R0 each time. Just a counter.
This ran under E11, but not under the real PDP. Is it broken? It just
doesn't run. At all. The code stays in memory, I can see it there after
a few attempts, so it's not stomping on core. But R0 never gets
incremented. R1 gets set, but never R0. Does it have a special use?
This is my first-ever shot at assembler on ANY machine. So I am probably
making an obvious mistake.
---------------------------
[1] I was told a story in which an MIT hacker broke his leg, and had
to stay in the hospital. His friends decided to bring him a terminal and
a modem, so he could hack while in bed. The guard at the door stopped
them, saying "What's that?" to which the hackers replied "A computer
terminal." The guard digs through the list of stuff patients are allowed
to have, and sure enough terminals are not on the list. Rules are rules!
The hackers leave. They return about 20 minutes later, with the
equipment. The guard says "I said you couldn't take that up!" They say
"It's not the same thing. This is a TV Typewriter! See, you type, and it
shows up on the TV!" The guard checks his list again. TV is on the
list, and so is Typewriter. "Okay, take it in!"