"uTracer11-GUI" is the graphical control program to work with a PDP-11, be it a physical machine or a simulator.

architecture full physical pdp11

Its main function is to start/stop/single step the PDP-11 under test, as well to display function of the CPU and micro machine in various info screens.

 gui micro program flow

 

What is there now?

uTracer11 GUI is written modular, and shows different stuff depending on the actual PDP-11 model.
Current development state:   final for the PDP-11/34, under test for 11/40, an 11/05 is next in pipeline.

Panels include

  • The Start/Stop/Single-Step logic for the PDP-11 CPUs micro machine
  • logging of program internal events
  • raw state of UNIBUS signal levels.
  • CPU internal hardware registers.
  • Load/store of PDP-11 memory via UNIBUS
  • Activity display for memory and IO addresses accessed by the CPU.
  • A trace of executed micro program steps, with disassembled UNIBUS opcode and operand fetches.
  • current micro sinstruction the original DEC flow charts.
  • the active bits in the current micro word (DEC docs).
  • the active components in  CPU data path (again in DEC docs).

See following pages for details. The common example setup for this doc is:
A PDP11/34 executing the console character input loop of the M9312 Boot ROM console emulator code.

m9312 character input

 

Technology

GUI is a C++ application and uses the platform-independent "wxWidgets" library ... older than even C++ (!) but stable.

It compiles under MS-Windows and Linuxes. Even Mac OSX should be possible, but wasn't tried (no Apple fan boy here).

wxWidgets provides own User Controls like Buttons, Panels, ScrollBars, Treeves, Mouse functions and the like, implementing these with features of the underlying operating system.

Also common function like date/time, string functions or TCP/IP socket communications are re-implemented platform-independent.
If you ever tried to compile a C++ program both under MS-Windows and Linux, you'll love that.

Normally a wxWidgets GUI is constructed via program code. uTracer11 uses the graphical designer "wxFormBuilder " to generate most of that code.

 Integral part of GUI are libraries with pre-processed DEC original documentation, hold in a tree of "resource" directories.

 GitHub path for the whole uTracer11 project is https://github.com/j-hoppe/uTracer11
with GUI stuff in sub directries ./common,  ./gui and ./resources .

 

Starting

Before starting, the PDP-11 under test must be running, so GUI can connect to it.

GUI commandline is:

gui [-h] -t <str> [-sp <str>] [-sa <str>] -rd <str> [-sf <str>]
-h, --help displays help on the command line parameters
-t, --pdptype=<str> PDP-11 model like "pdp1134phys"
-sp, --serial=<str> serial port to PDP-11 hardware probe, like "COM2"
-sa, --socket=<str> TCP/IP socket address of remote PDP-11, like "localhost:65392"
-rd, --resourcedir=<str> path to resource directory
-sf, --symbolfile=<str> file with disassembler symbols in resource directory

Most options are mandatory to config GUIs personality and enable access to documentation.

Example to control a physical PDP-11/34 under MS-Windows, where the M93X2 probe is connected via serial COM4

bin\gui.exe -t pdp1134phys --serial COM4 --resourcedir resources\ --symbolfile pdp11_hardware.sym

Example to control a simulated PDP-11/40 under MS-Windows.

bin-cygwin\pdp1140sim.exe 65392
bin\gui.exe -t pdp1140sim --socket localhost::65392 --resourcedir resources\ --symbolfile pdp11_hardware.sym