The first publicly available assembler, emulator, and instruction set documentation for the Rockwell PPS-8 (Parallel Processing System, 8-bit) microprocessor (1974).
The PPS-8 was an 8-bit PMOS microprocessor from Rockwell International, announced in 1974. It featured a unique "data pool" architecture for code density optimization. The chip was used in specialized applications including the HCL 8C (India's first personal computer) before being superseded by the MOS 6502.
No PPS-8 emulator, assembler, or complete opcode map existed publicly before this project.
- pps8asm.py - Python assembler with full pool management, branch tag insertion, iterative address stabilization, and I/O encoding
- pps8emu.c - C emulator with 60 opcodes, pool decode, interactive debugger, instruction trace, and breakpoints
- crt_fdc.asm - Complete transcription of the Rockwell CRT/FDC Demonstrator program (2,641 lines, the only known PPS-8 assembly source code)
- PPS8_CPU_Manual.md - Complete CPU reference (registers, opcodes, pool encoding, interrupts)
- Assembler_Manual.md - Assembler usage, directives, pool sizing rules
- Emulator_Manual.md - Emulator usage, debugger commands, memory map
- PPS8_ISA_Reference.md - Detailed ISA reference from the October 1974 datasheet
- pool_encoding.md - Pool encoding algorithm decoded from datasheet Figure 3-3
- pps8_opcode_inferred.txt - Complete 61/64 opcode map with confidence levels
- pps8_opcodes_verified.txt - Frequency analysis of 575 instruction instances
- Assembly listing transcriptions from the 1976 CRT/FDC Demonstrator
- Pool ROM map, opcode frequency data, ROM ground truth bytes
- Raw opcode extraction data used for frequency analysis
- crt_fdc_test.rom - Assembled ROM output from crt_fdc.asm
python3 src/pps8asm.py src/crt_fdc.asm -o roms/output.rom -l listing.lstcc -O2 -o pps8emu src/pps8emu.c
./pps8emu -d roms/crt_fdc_test.rom # interactive debugger
./pps8emu -t roms/crt_fdc_test.rom # trace modeThe PPS-8 datasheet (October 1974) lists all instructions by mnemonic but does NOT publish hex opcode values. The opcode map was reconstructed by:
- Downloading the CRT/FDC Demonstrator assembly listing from bitsavers.org
- Extracting every (hex_code, mnemonic) pair from the listing (575 instances)
- Using frequency analysis to resolve OCR ambiguities in the scanned document
- Cross-referencing with the datasheet's instruction descriptions
- Inferring unobserved opcodes from positional patterns
OCR error patterns identified: 5/6, 8/A, E/F, 8/B confusion in hex digits.
- Opcode map: 47 confirmed + 14 inferred = 61/64 primitive opcodes
- Assembly coverage: 99% effective (all key routines at correct addresses)
- Label accuracy: 100% of key routine addresses match the original listing
- Tables: 100% (384/384 bytes of EBCDIC/ASCII translation tables)
- Assembler: 0 errors, 0 warnings on the CRT/FDC program
- Pool encoding: Fully decoded from datasheet Figure 3-3
This is a reconstruction of historical computing documentation for preservation and educational purposes. The original Rockwell documentation is from 1974-1976.