Software in the museum in several Layers of a PDP 11 system are exhibited in the museum of computing. Example code and media are available for inspection.
Exhibiting these hidden levels of the software architecture is essential to the understanding of how a PDP 11 computer system works. This software architecture is common to many other computer systems and is adopted with minor variations in current day computer systems.
The microcode above is copied from the PDP 11/05 Processor manual. Each section of microcode implements an associated PDP11 assembler instruction by directly addressing the hardware registers and internals. In the listing above you can see the implementation of the FETCH instruction. (I was not aware in the early years of my career that development systems were available to modify or add to the PDP11's assembly instruction sets using microcode).
Each PDP11 assembler instruction was entered as a 5 digit octal number. e.g. Jump was 137 followed by the 5 digit octal address where the program was required to jump to (i.e. to execute the next instruction). NB. In the 1970's I implemented programs in assembler code via a PDP 11 Keyboard or by loading using a paper tape reader. A coding sheet example of an assembler program can be seen in the image above).
The executive code or operating system in my early years of programming was written in house. The executive code OS was also part of the program space and so for example if a new device (e.g. disk drive) was to be implemented in the system the disk device handler assembly code needed to be modified to interface to the new device. As memory and performance of the PDP11 hardware improved we were able to take advantage of the software provided by Digital equipment; we implemented systems using DEC's RSX11 and RT11 executives. We used the RSX11 executive for multi-user systems and RT11 for simpler single user applications. You can see in the figure above taken from the index of a software handbook of the period many other OS's tailored to particular applications such as RSTS for commercial applications and ULTRIX for cross platform compatibility. Today on a PC only one OS (Windows) is available unless this is removed and a non Microsoft OS such as Linux (UNIX) is installed.
High Level languages were compiled to produce assembler level code implementations. The advantage of this is that the complexity of the Assembly instructions is hidden from the coder and a more natural language like instruction could be used. The first program I wrote was a Fortran program at University entered on punched card [see Punched Card Software (Media 2) below]. Each iteration would take around 2 days to run the program on a punch card machine (see the Media section of this Web Site for details). You would then collect the output (if any) from the computer bureau. You would edit the punched card program to correct the errors and then the whole iteration of the process would kick off again taking another couple of days. It often took weeks to complete a program but it did encourage very careful checking before a new program was submitted ! .
Floppy disks were a popular media for software distribution. They came in various sizes 8 inch, 5 1/4 inch and 3 inches. The smaller 3 inch floppy disks were popular with Personal Computer systems. The larger 5 1/4 inch floppy disks were popular with both Personal Computer systems and Industrial and Office minicomputers. The 8 inch floppy disks were used in early minicomputers where the size of the drives had no constraint.
Punched Card media was typically used to load batch jobs into mainframe computers that executed batch jobs. These Batch jobs would typically be in High Level languages such as COBOL or Fortran as can be seen in the image above.