PDP-10 / its

Incompatible Timesharing System
Other
858 stars 81 forks source link

Problem resetting the PDP-6 #1606

Open larsbrinkhoff opened 5 years ago

larsbrinkhoff commented 5 years ago

Sometimes, under unknown conditions, loading the PDP-6 with $L from DDT will fail. It's writing mostly zeroes to the PDP-6 16K over and over again.

Setting a breakpoint at PDPRST in ITS, I see this is called endlessly. Stepping over the .RESET call in timesharing DDT (under ALOAD3) I see it's not returning properly. The .RESET seems to be executed many times, and when it finally completes, the PC is at the .RESET call again.

larsbrinkhoff commented 5 years ago

Apparently, the PDPRST call to UDELAY never returns. It looks like it should sleep for 0.5 seconds and return, but instead the .RESET UUO is restarted.

larsbrinkhoff commented 5 years ago

UDELAY is just this:

UDELAY: PUSH P,T
        MOVE T,TIME
        ADDI T,15.      ;SLEEP 1/2 SEC. (REALLY SHOULD DO A LOW
        CAMLE T,TIME    ;PRIORITY UNBLOCK IF SYS LIGHTLY LOADED)
UDELA1:  PUSHJ P,UFLS
        JRST POPTJ

This looks clear enough. It's supposed to sleep for 15 ticks. If I understand correctly, UFLS is supposed to work much like .HANG. But for some reason we never get back to UDELA1+1.

I believe something happens that PCLSR's the .RESET.