This document serves as a practical introduction and reference guide for using SMILE, a system designed for microprogram loading and examination on the PDP-11/40E computer. It familiarizes users with SMILE as a key microprogram development aid within the microprogramming laboratory, interfacing with other tools like the MICRO/40 assembler and the UNIX operating system.
The report details the organization of the SMILE system, including the generation of a "SMILE tape" from user microcode and an optional machine language test program. This tape contains a system loader, a RAM loader, the user microprogram object code, and the test program. SMILE operates on the bare PDP-11/40E hardware, bootstrapped from a magnetic tape, due to the micro-architecture's lack of protection mechanisms.
Key functionalities covered include:
- Loading Microprograms: The system loader transfers the RAM loader, user microcode, and test program into main memory. The RAM loader then loads the user microprogram into the writable control store (WCS) of the PDP-11/40E.
- On-line Testing: SMILE provides facilities for on-line testing at the microprogram level, allowing users to execute microprograms and observe their effects on processor registers and main memory. This complements off-line simulator tests.
- Microcode Validation: The system incorporates checksum tests and immediate rereads to ensure the loaded microcode matches the assembled version, with options for manual modifications and re-checksumming.
- System Operation: A tutorial walkthrough demonstrates the complete process, from assembling microcode and test programs, generating the SMILE tape, bootstrapping the system from the processor console, performing control store loading, and executing the test program.
- UNIX Integration: It explains how to prepare SMILE files under UNIX and how to bootstrap the UNIX operating system after microcode validation, optionally overwriting the user microcode with the Extended Instruction Set (EIS) microcode if needed.
The document emphasizes SMILE's role in providing crucial tools for microcode validation by enabling direct interaction with the hardware.