Open larsbrinkhoff opened 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.
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.
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.