Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Problems with new install

122 views
Skip to first unread message

Jeff Shrager

unread,
Feb 1, 2025, 9:03:39 PMFeb 1
to PiDP-8
Hi, I've just rcvd a prebuilt 8 and install the OS on a Pi4. (There were a few hitches, but it does seem to have finally compiled.) And it drives the lamps, but not in a way that I can make sense of. pidp8i stop turns all lights out; okay good, but start, instead of running, stop is in stop with gives me pc=0100, mem=0055, and the AND lamp. If I toggle in almost anything, say 1100 and hit Load Address, it seems to read the left 7 bits, but the lower 5 are always on. (Data and Inst are both 00 for all experiments here.) And no matter what address I load, MB does not change. And if I single step from a random location, my Pi crashes and reboots. I'm not sure what to do to investigate what's going on. I'm not even sure what's correct because (although I'm pretty sure that this is incorrect). Also, BTW, pidp8i without an argument seems to go into pdp8 os mode because ctrl-Ad will stop it,  but the lights do nothing, and I never go to command mode, although characters echo, no errors or correct action take place.

Thanks in advance for any adivce.
'Jeff

Jeff Shrager

unread,
Feb 1, 2025, 9:10:26 PMFeb 1
to PiDP-8
Oh, weird. In the above state: p... stop; p...start; 0000 LA -> PC=0037, M=0314, if I then hit START it goes from 0037 to 0040 and the memory becomes the previous contents of PC, and each START then does this again. Am I in a loader of some sort?

William Cattey

unread,
Feb 2, 2025, 2:31:17 PMFeb 2
to PiDP-8
Check the settings of your front panel switches.  As shown at the bottom of this doc:
Different things will get started up depending on how your front panel switches are set.

-Bill

Jeff Shrager

unread,
Feb 2, 2025, 2:57:40 PMFeb 2
to PiDP-8
Thanks. I thought I'd done this, but the behavior doesn't make sense.What I really just want is a clean PDP8 that I can program from the panel.  I started with IF=000 -- that's what get's me pc=0100 etc as above. I hit stop and nothing happens. Okay, it's already stopped. Then I try to LA say 0100 and the PC reads 0137 (any bits I put into the left 7 are reflected by the LA, but the right 5 are always on.) I just want to stop the thing an let me toggle in a program. 

Jeff Shrager

unread,
Feb 2, 2025, 2:59:47 PMFeb 2
to PiDP-8
ps. I tried pidp8i restart with all if settings and it just does the same thing.

William Cattey

unread,
Feb 4, 2025, 8:24:57 PMFeb 4
to PiDP-8
Hi Jeff,

I've continued to ponder the situation, but at the present time I can't think of what it might be.

Perhaps other readers have ideas?

-Bill

timr...@gmail.com

unread,
Feb 5, 2025, 10:21:49 AMFeb 5
to PiDP-8
Well, something is wrong.  Doing a LOAD ADDR of 0000 should set the PC to 0000.  Not 0037.  I am not smart enough to know what might be causing this.  Could it be a faulty Pi?  Always pulling those 5 address bits high no matter what?  Doubt that. I have had many Pi's and never had any with issues.  Something with the pre-assembled board was not done right?  I know I've made some mistakes when I assembled my PiDP-11 board.  We need more info.  Check continuity between all GPIO pins from the Pi to the PiDP-8? Check the board for any apparent errors in assembly?  Is there the blinky lights test on the 8?  Possible the lower 5 switches are reading backwards?  That would be odd.  I don't really know.  Hopefully someone more knowledgeable can offer some hints.  Good luck on fixing this.  

Jeff Shrager

unread,
Feb 6, 2025, 12:53:58 PMFeb 6
to PiDP-8
Thanks. I'm going to make a video to show what it's doing, but I had a friend over yesterday who has one of these, and he wasn't able to figure it out even hands on and having done it before. 

A couple things we noticed: 

* It makes no difference whether I correct the Pi directly or via a cable. (I usually use a cable bcs it's too tight in the back of the panel for my taste. I've used a lot of Pis and never had an issue, but the cable introduces another failure point, but this appears to be fine. so I don't think it's the Pi, or the cable. 

* The blinking lights test works fine. (But I don't see a test for the switches!) 

* An ohm-meter told us that the switches appear to be correctly opening and closing, but we noticed that the two little prongs for the switches -- the "grounds" from the switch case -- are NOT soldered into the board. In the pictures they look like they are soldered into the board. Because most of the switches work, we hypothesize that these are irrelevant -- like for positioning, or something, but it could be that the right five switches are accidentally not touching and the rest are or something. Should the two "ground" (case) pins be soldered?

Thanks!
'Jeff

Ian Schofield

unread,
Feb 6, 2025, 1:33:42 PMFeb 6
to PiDP-8
Hi All,

 This situation can happen. It occurs if pidp8i-sim is run without a script file as an argument.
 Then, the display shows 37(8) in the PC.
 In order to do anything with the switches etc. simh needs to be doing something. However, from what you say, I am not sure if this is the only problem.
 May I suggest that you open a  terminal window and type: /opt/pidp8i/bin/pidp8i-sim
 Then, you should get a simh prompt. And, the lights should be PC=037,ADDR=036 AND light on and no others.
pi@pizero:~ $ /opt/pidp8i/bin/pidp8i-sim
PiDP-8/I pkg:vUNKNOWN [pi3b] [ils] [stdpcb] [gpio] [rt]
PDP-8 simulator V4.0-0 Current        git commit id: 030a47bd
sim>

Then type:  do /opt/pidp8i/share/boot/0.script
This should boot OS/8 and give you a monitor '.'

sim>  do /opt/pidp8i/share/boot/0.script
Loading OS/8 from the RK05 cartridge disk...
/opt/pidp8i/share/boot/0.script-48> at ttix 2222
Listening on port 2222

.
Then you can press STOP and toggle in a test programme or whatever.
If this does not happen, do send the terminal output for further analysis.

Regards, Ian.

Jeff Shrager

unread,
Feb 6, 2025, 2:13:06 PMFeb 6
to PiDP-8
Thanks! I made a video of the problem. (In the vid I do the at before the do, but I've tried it the other way too and it makes no difference.)

Obsolescence

unread,
Feb 6, 2025, 4:06:43 PMFeb 6
to PiDP-8
Jeff, all,

Apologies for being slow to reply! Bad episode of Brain Fog recently.


I suspect that the software install was done for a Pi 3, not a Pi 4. The reason is

>>Doing a LOAD ADDR of 0000 should set the PC to 0000.  Not 0037.

0037 is the telltale sign, the GPIO between the Pi3/4/5 is different and this is the pattern.

Although I'm quite sure that this is at play here, I might be wrong. 

But please check the software install page: https://obsolescence.dev/pidp-8-quick-install.html

There are multiple install options here - I tested them all two months ago. Try Recipe 1 and if oddness still persists, please fall back to the Recipe 2 (the preinstalled SD card, and make sure to pick the one for the Pi 4 if indeed you use a Pi 4).

Kind regards,

Oscar.
Also, if you see no relief from this software reinstall, I'll email you my personal contact details separately. Apologies for being slow to respond!


Ian Schofield

unread,
Feb 6, 2025, 5:26:24 PMFeb 6
to PiDP-8
Hi Jeff,

 Just seen your video. The problem is partly due to the fact that you have an instance of pidp8i running after booting the pi.
 This instance appears to be getting lost.
 Then, when you try to start another copy (instance) as above, it will again get stuck.
 I suggest you try: pidp8i stop  in a terminal just after you have booted the pi.
This command should turn all of the leds off.
 At this point, I suggest you run /opt/pidp8i/bin/pidp8i-test

If you get this message, you have an instance of pidp8i from boot which is stuck/deadlocked.
Failed to lock /dev/gpiomem.  Only one PiDP-8/I
program can be running at a given time.

  If this test runs OK then  try pidp8i start again and it should boot OS/8 if all of the SR switches are zero.
 Or, try the commands as above as it is then possible to see what it happening.
 The reason I am asking you to try these options is in the unlikely event that there is a hardware fault.

Regards, Ian.

Jeff Shrager

unread,
Feb 6, 2025, 7:50:57 PMFeb 6
to PiDP-8
Thanks all for your help and guidance. 

I was apparently running the wrong build for a Pi4. (Couldn’t the build script know what hardware it’s on and at least warn you, esp in Pi world where there are several confusingly slightly different platforms?) 

Anyway, it’s working now! Joy!

timr...@gmail.com

unread,
Feb 6, 2025, 8:23:20 PMFeb 6
to PiDP-8
Glad to hear it's working.  I had no idea there were different builds for different Pi models.  Wow.

Mike Katz

unread,
Feb 6, 2025, 10:06:53 PMFeb 6
to PiDP-8
Actually, the most recent trunk as well as the main pi5 and pi5 with single step and incandescent lamp simulation branches work on any Pi.  I ran the the following branches on all PIs from the Zero and Zero 2 to the A and B through the Pi 5:

trunk
pi5
pi5-ils2-bookworm
pi5-ils2-cyclerealistic

The following script will install and build everything necessary to install and compile all of these branches.

This will create 4 directories in your home directory:
~/src/pidp8i/pi5                                     <--  Pi 5 optimizations only
~/src/pidp8i/pi5-ils2                             <--  Pi 5 optimizations & Incandescent lamp simulation
~/src/pidp8i/pi5-ils2-cyclerealistic     <-- Pi5 optimizations, incandescent lamp simulation and single step/single cycle compatiblity
~/src/pidp8i/trunk                                <-- No incandescent lamp simulation no single step/single cycle compatibility, without specific pi5 optimizations

Note:  All four of these will run on all Raspberry Pis.

Note:  Installing this way will install the trunk version as the version run during boot.
            To run one of the the other versions run >pidp8i stop
           Change directory to one of the directories in the ~/src directory
           Run ./bin/pidp-8i ~/SimStart
          This will load the simulator and boot OS/8 from the rk05 image. The period prompt is the OS/8 prompt.



#!/bin/bash
#
#  Update the apt database
#
echo -e "\r\nUpdating apt database\r\n"
sudo apt update
#
#  Update the operating system
#
echo -e "\r\nUpdating the opearting system\r\n"
sudo apt upgrade -y
sudo apt full-upgrade -y
#
#  Install fossil if necessary
#
echo -e "\r\nVerifying fossil installation\r\n"
if ! dpkg-query -W fossil &>/dev/null ; then
        echo -e "\r\nInstalling fossil\r\n"
        sudo apt install fossil -y
fi
#
#  Install build-essential if necessary
#
echo -e "\r\nVerifying build-essential installation\r\n"
if ! dpkg-query -W build-essential &>/dev/null ; then
        echo -e "\r\nInstalling build-essential\r\n"
        sudo apt install build-essential -y
fi
#
#  Install libraspberrypi-dev if necessary
#
echo -e "\r\nVerifying libraspberrypi-dev installation\r\n"
if ! dpkg-query -W libraspberrypi-dev &>/dev/null ; then
        echo -e "\r\nInstalling libraspberrypi-dev\r\n"
        sudo apt install libraspberrypi-dev -y
fi
#
#  Install libncurses-dev if necessary
#
echo -e "\r\nVerifying libncurses-dev installation\r\n"
if ! dpkg-query -W libncurses-dev &>/dev/null ; then
        echo -e "\r\nInstalling libncurses-dev\r\n"
        sudo apt install libncurses-dev -y
fi
#
#  Install perl if necessary
#
echo -e "\r\nVerifying perl installation\r\n"
if ! dpkg-query -W perl &>/dev/null ; then
        echo -e "\r\nInstalling perl\r\n"
        sudo apt install perl -y
fi
#
#  Install python3-pexpect if necessary
#
echo -e "\r\nVerifying python3-pexpect installation\r\n"
if ! dpkg-query -W python3-pexpect &>/dev/null ; then
        echo -e "\r\nInstalling python3-pexpect\r\n"
        sudo apt install python3-pexpect -y
fi
#
#  Install python3-yaml if necessary
#
echo -e "\r\nVerifying python3-yaml installation\r\n"
if ! dpkg-query -W python3-yaml &>/dev/null ; then
        echo -e "\r\nInstalling python3-yaml\r\n"
        sudo apt install python3-yaml -y
fi
#
#  Install time if necessary
#
echo -e "\r\nVerifying time installation\r\n"
if ! dpkg-query -W time &>/dev/null ; then
        echo -e "\r\nInstalling time\r\n"
        sudo apt install time -y
fi
#
#  Install expect if necessary
#
echo -e "\r\nVerifying expect installation\r\n"
if ! dpkg-query -W expect &>/dev/null ; then
        echo -e "\r\nInstalling expect\r\n"
        sudo apt install expect -y
fi
#
#  Make sure that the date and time are correct.  Change the timezone for your local timezone
#
sudo timedatectl set-timezone US/Central
sudo timedatectl set-ntp on
#
#  Setup the log file
#
now=`date +"%Y%m%d%H%M"`
Logfile=$PWD'/BenchmarkSetupLog_'${now}
echo -e "\r\nLogfile:  "$Logfile"\r\n"
cat /sys/firmware/devicetree/base/model | tee ${Logfile}
cat /proc/cpuinfo | tee -a ${Logfile}
#
#  Check out trunk and the cycle-realistic branch
#
echo -e "\r\nMaking Directories\r\n" | tee -a ${Logfile}
mkdir -p ~/museum ~/src/pidp8i/trunk ~/src/pidp8i/pi5 ~/src/pidp8i/pi5-ils2 ~/src/pidp8i/pi5-ils2-cyclerealistic
#
#  Cloning fossil repository
#
echo -e "\r\nCloniung reposotory\r\n" | tee -a ${Logfile}
(/usr/bin/time fossil clone https://tangentsoft.com/pidp8i ~/museum/pidp8i.fossil) 2>&1 | tee -a ${Logfile}
#
#  Get trunk
#
cd ~/src/pidp8i/trunk
echo -e "\r\nGetting trunk\r\n" | tee -a ${Logfile}
(/usr/bin/time fossil open ~/museum/pidp8i.fossil) 2>&1 | tee -a ${Logfile}
echo -e "\r\nConfiguring trunk for build\r\n" | tee -a ${Logfile}
(/usr/bin/time ./configure --prefix=$PWD/pidp8i) 2>&1 | tee -a ${Logfile}
echo -e "\r\nMaking tools\r\n" | tee -a ${Logfile}
(/usr/bin/time tools/mmake) 2>&1 | tee -a ${Logfile}
echo -e "\r\nMaking install\r\n" | tee -a ${Logfile}
(/usr/bin/time sudo make install) 2>&1 | tee -a ${Logfile}
#
#  Get PI5
#
cd ~/src/pidp8i/pi5
echo -e "\r\nGetting pi5" | tee -a ${Logfile}
fossil open ~/museum/pidp8i.fossil pi5 | tee -a ${Logfile}
echo -e "\r\nConfiguring pi5 for build\r\n" | tee -a ${Logfile}
(/usr/bin/time ./configure --prefix=$PWD/pidp8i) 2>&1 | tee -a ${Logfile}
echo -e "\r\nMaking tools\r\n" | tee -a ${Logfile}
(/usr/bin/time tools/mmake) 2>&1 | tee -a ${Logfile}
echo -e "\r\nMaking install\r\n" | tee -a ${Logfile}
(/usr/bin/time sudo make install) 2>&1 | tee -a ${Logfile}
#
#  Get pi5-ils2-bookworm
#
cd ~/src/pidp8i/pi5-ils2
echo -e "\r\nGetting pi5-ils2-bookworm" | tee -a ${Logfile}
fossil open ~/museum/pidp8i.fossil pi5-ils2-bookworm | tee -a ${Logfile}
echo -e "\r\nConfiguring pi5-ils2-bookworm for build\r\n" | tee -a ${Logfile}
(/usr/bin/time ./configure --prefix=$PWD/pidp8i) 2>&1 | tee -a ${Logfile}
echo -e "\r\nMaking tools\r\n" | tee -a ${Logfile}
(/usr/bin/time tools/mmake) 2>&1 | tee -a ${Logfile}
echo -e "\r\nMaking install\r\n" | tee -a ${Logfile}
(/usr/bin/time sudo make install) 2>&1 | tee -a ${Logfile}
#
#  Get pi5-ils2-bworm-cyclerealistic
#
cd ~/src/pidp8i/pi5-ils2-cyclerealistic
echo -e "\r\nGetting pi5-ils2-bworm-cyclerealistic" | tee -a ${Logfile}
fossil open ~/museum/pidp8i.fossil pi5-ils2-bworm-cyclerealistic | tee -a ${Logfile}
echo -e "\r\nConfiguring pi5-ils2-bworm-cyclerealistic for build\r\n" | tee -a ${Logfile}
(/usr/bin/time ./configure --prefix=$PWD/pidp8i) 2>&1 | tee -a ${Logfile}
echo -e "\r\nMaking tools\r\n" | tee -a ${Logfile}
(/usr/bin/time tools/mmake) 2>&1 | tee -a ${Logfile}
echo -e "\r\nMaking install\r\n" | tee -a ${Logfile}
(/usr/bin/time sudo make install) 2>&1 | tee -a ${Logfile}
--
You received this message because you are subscribed to the Google Groups "PiDP-8" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-8+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pidp-8/b77194ae-37b6-4342-abbf-fef15f38f2efn%40googlegroups.com.

Jeff Shrager

unread,
Feb 7, 2025, 12:27:00 AMFeb 7
to PiDP-8
Thanks! The problem stemmed from google legacy page confusion. I started from this page:

   https://tangentsoft.com/pidp8i/wiki?name=Home

Note that this says: "Does not work on Pi 4 and up due to a hardware change; you will need to build from source instead." And then I went to someplace else random in that set of pages, and was just lost in space. (The tell is that these lead one to create ~/pidp8i/ whereas the new, correct one lead one to create ~/tanget/

whereas I should have been here (as kindly pointed out by some of you):


Someone who has the power should either clobber the legacy pages, or mark them as deprecated and point to the new ones.

Reply all
Reply to author
Forward
0 new messages