Specifically around the action of bits 5,6 set to 0,1 in the dpy iot, which means "don't wait but set a completion pulse" which can then be waited on by 730000, iot i 0.
There is an example in the F25_PDP1_IO manual, see below.
What's happening is that when the dpy finishes its completion code isn't getting fired. In particular internally in src/blincolnlights/pdp1/pdp1.c, handleio(), dcp is not set so the logic there does not get executed. However, if a dpy i, 730007 is done, the logic fires.
According to the documentation, it should. How do I know its not firing? A printf in the function, of course. :)
The logic around all the io completion is convoluted, having multiple states. I'm hoping someone can provide insight, I've already wasted hours trying to find the bug in my code which didn't exist.
Here's the code:
Completion bug
100/
lio y
cla
jmp loop + 1
loop, 730000
724007
add inc
sma
jmp loop
jmp 100
y, 0
inc, 400
start 100
It appears to run properly, but as I said, the internal completion code isn't firing, it appears the ioh doesn't even wait.
Or, I'm just confused by the complex logic in pdp1.c.
Bill