PiDP-8/I Software

Update of "Major Differences"
Log In

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview

Artifact ID: 482527ea033015c3e2e2098de6ac2eff32cab056
Page Name:Major Differences
Date: 2018-02-22 13:35:02
Original User: tangent
Mimetype:text/x-markdown
Parent: 3e11fd5e4ce0bea87a64244b5ca2ad5f9af030e3 (diff)
Next c7ac2dbec936e0c9b7f4563ab2378642db7b959a
Content

Major Differences Between the Distributions

This software began as a series of improvements I made to Oscar Vermeulen's 2015.12.15 software release. For the first several months of this software distribution's lifetime, it was considered an alternative to Oscar's stable version, but as of May 2017, Oscar now considers this to be the current stable version.

You can consider the rest of this document a migration guide for users who are coming from Oscar's prior stable release. It may also be of use while reading through older messages on the mailing list, since they often give commands that differ under this version of the software.

This document ignores pure enhancements, bug fixes, and other things which do not change how the user interacts with the software from this site as compared with Oscar's prior stable version. If you want a detailed user-focused list of changes since that version, see the ChangeLog. For the low-level blow-by-blow, see the project timeline.

Build and Installation

The prior stable version has a fairly involved manual build and installation process, whereas my version installs like any other Linux source code release: ./configure && make && sudo make install. It's a tradeoff: my version is more complicated under the hood in order to be more automatic.

This means any references you find to cd scanswitch ; make or to sudo install/pidp8-setup-default.sh do not apply to this version of the software.

Path Names

This software distribution builds and installs several files in different locations than the prior stable version. The mapping is:

Prior Name What It Is Current Name
pdp.sh script to [re]enter the simulator from the command line pidp8i
pidp8 modified SimH simulator for the PiDP-8/I panel pidp8i-sim
pidp8-test panel LED and switch test program by Paul R. Bernard, posted to mailing list pidp8i-test
/etc/init.d/pidp8 init script used on boot to start the software ~/.local/share/systemd/user/pidp8i.service
/opt/pidp8 default installation location (a.k.a. $prefix) /opt/pidp8i
$prefix/bin/scanswitch helper program for the simulator startup script $prefix/libexec/scanswitch
$prefix/bootscripts scripts that tell the simulator how to start up given different IF switch combinations $prefix/share/boot
$prefix/imagefiles binary paper tape images, disk images, and such $prefix/share/media

I added an i to some of these names for two reasons:

  1. It was useful during the transition period so that both versions of the software could be installed on the same system without conflicts.

  2. I decided that it was unlikely that we will ever see a follow-on project for a different PDP-8 front panel, or if we do, it will be different enough that it won't use this software directly, so the paths and program names might as well be named after the only hardware it does work with, the PiDP-8/I.

The files now under the share subdirectory were moved to conform to the Linux Filesystem Hierarchy Standard, so that experienced Linux users would be more likely to guess their location.

The reason for the scanswitch relocation is that there is no reason for end users to run it directly, so it's better off out of the user's PATH. That is also why I haven't bothered to rename it to something like pidp8i-scanswitch. There is a plan to merge this program with pidp8i-test, which if done will mean scanswitch goes away.

The PiDP-8/I Service

The way you start, stop, restart, and query the background simulator service has changed. See the top-level README.md file for details.

Running Both Versions Side-by-Side

It is possible to run both the current PiDP-8/I software from this web site alongside Oscar's last stable release. They can't run simultaneously, since they'd fight over the front panel GPIO pins, but you can swap between them at will, without either interfering with the other, due to the file naming and service differences lined out above.

To switch back from my version to the prior stable version, say:

$ systemctl --user stop pidp8i
$ sudo systemctl start pidp8

And then to switch back to my version:

$ sudo systemctl stop pidp8
$ systemctl --user start pidp8i

Multiple Installations

The prior stable version was essentially fixed in place in the filesystem. Its source code had to be unpacked into /opt/pidp8 and run from there to work correctly.

This current software can be unpacked anywhere in the filesystem, you can build it into a second directory separate from the source directory, and you can install it to yet a third directory. This affords considerable flexibility in how you build and install this software.

This software also doesn't overwrite your binary media on re-installation: whenever we ship a change to one of the paper tape images, DECtape images, disk images, etc., upgrading to that release only gets you a copy of the new media in the source tree; those new versions do not overwrite your local copies in the installation tree, since they may contain local changes. With the prior stable version, since the build and installation locations were the same, upgrading would always overwrite your local media images. See the "Overwriting the Local Simulator Setup" section of the README.md file for more on this topic.

Incandescent Lamp Simulator

When you build this software on a multi-core Pi, the default is to build the PiDP-8/I simulator with the incandescent lamp simulator (ILS) enabled, as opposed to the original LED driving code which is more efficient but less period-accurate in appearance. On single-core Pis, we build the software to drive the LEDs in much the same way as the prior stable version does, because the ILS takes too much CPU to run both it and the PDP-8 simulator at the same time on a single 700 MHz ARM core. You can force a return to the old efficient method on a multi-core Pi by configuring the software with the --no-lamp-simulator option.

Runs on More OSes

The PiDP-8/I software now builds and runs on more OS types than did Oscar's last release, which was pretty much tied to Raspbian and close relatives like pipaOS. Full details on this are covered elsewhere.

Front Panel Switch Combos

Several of the PiDP-8/I specific front-panel switch combos are different:

License

Copyright © 2017-2018 by Warren Young. This document is licensed under the terms of the SIMH license.