PDP11 CPU Speed =============== Re:I cut my teeth on that CPU (Score:5, Interesting) by Anonymous Coward on Wednesday June 19, 2013 @10:18AM (#44049371) Many of us can still program in macro-11. I got tired of ODT though and built a symbolic debugger with DDT that ran in another task. The pdp11 has a number of possible hacks that can be useful in remotely identifying code. Ever try a DIV on SP, which moves the stack and changes the program counter all at a go? mov @offset(r5),pc ? That gives control transfer an extra level of indirection. There are others. Note the DIV hack works only for CPU models with the EIS instructions. The pdp11/45 has a 300ns cycle time though, corresponding to ~3.3MHz clock speed. Current machines have more like ~3.3GHz. The larger 11s could address 4MB of memory (a lot in those days). Now a 4GB machine is beginning to look small. I recall when we got a 22MB hard drive (size and shape of a clothes washing machine; we put Dymo labels under the lights labelled "wash rinse dry" for fun) it seemed vast. Nowadays it is not unheard of for a home machine to have 22TB. With all those factors modern machines can be said to have grown by a factor of maybe a trillion. Still the pdp11 was versatile and allows significant and useful code to run. It is usually programmed in assembler (macro11; nobody uses PAL11R any more I hope) or Fortran or C. (The original pdp11 Fortran was a nightmare of code inefficiency, could burn 100 instructions to add 2 integers where the hardware could do it in one. Only the later f4p compiler got half decent code generation.) I only ever saw mov -(pc),-(pc) used as a fast clear memory; it traps at the end, but won't get any unmapped addresses. It was more fun to arrange to handle interrupts in supervisor mode. (Did that too. Needs a lil trick to RTI.)