-------------------- Series 37 HIOP Tests -------------------- 10 .DISPLAY TERMINATION CODE AFTER HIOP 20 DB VV,7,0 30 LET CHANNEL:=4,DEVICE:=2 40 CPVA VV(0) 50 LET NORESPONS:=1 60 ZEROESON 70 INIT 80 PROC 90 BSIO AA 100 IDENT X 110 IN H 120 RSIO 130 RDRT 3,Y 140 PRINT "[A] DRT3 IS ";!Y;" CPVA 0 IS ";!VV(0);" IDENT IS ";!X 150 PRINT "DELAY" 160 PRINT "DELAY" 170 HIOP 180 RDRT 3,Y 190 PRINT "[B] DRT3 IS ";!Y;" CPVA 0 IS ";!VV(0);" IDENT IS ";!X 200 RDRT 3,Y 210 IF Y THEN 200 220 PRINT "[C] DRT3 IS ";!Y;" CPVA 0 IS ";!VV(0);" IDENT IS ";!X 230 END > 240 RUN [A] DRT3 IS !8008 CPVA 0 IS !0000 IDENT IS !0000 DELAY DELAY [B] DRT3 IS !4008 CPVA 0 IS !0000 IDENT IS !0000 [C] DRT3 IS !0000 CPVA 0 IS !E004 IDENT IS !0000 (Channel hardware timeout) There is a perceptible delay between [B] and [C]. which presumably is the GIC timer expiring. That implies that the HIOP does not actually stop execution. With device = 3, I get: > 240 RUN [A] DRT3 IS !0000 CPVA 0 IS !8000 IDENT IS !0000 DELAY DELAY [B] DRT3 IS !0000 CPVA 0 IS !8000 IDENT IS !0000 [C] DRT3 IS !0000 CPVA 0 IS !8000 IDENT IS !0000 Presumably, the IDENT is completing so rapidly that the IN H is executing before the HIOP. So the HIOP does nothing. However, I don't see why the ID bytes are not present. With device = 3 and 80 PROC removed, I get: > 240 RUN [A] DRT3 IS !0000 CPVA 0 IS !8000 IDENT IS !0183 DELAY DELAY [B] DRT3 IS !0000 CPVA 0 IS !8000 IDENT IS !0183 [C] DRT3 IS !0000 CPVA 0 IS !8000 IDENT IS !0183 Same here, except that the ID bytes are actually present. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 10 .DISPLAY TERMINATION CODE AFTER HIOP 20 DB VV,7,0 30 DB TT,1024 40 ASSIGN TT(0),8 50 LET CHANNEL:=4,DEVICE:=3 60 CPVA VV(0) 70 LET NORESPONS:=1,X:=0 80 ZEROESON 90 INIT 100 PROC 110 BSIO AA 120 DSJ 130 130 WR 1,TT(0),1,,R 140 RR 0,TT(1),1024 150 IN H 160 RSIO 170 RDRT 3,Y 180 PRINT "[A] DRT3 IS ";!Y;" CPVA 0 IS ";!VV(0);" IDENT IS ";!X 190 PRINT "DELAY" 200 PRINT "DELAY" 210 HIOP 220 RDRT 3,Y 230 PRINT "[B] DRT3 IS ";!Y;" CPVA 0 IS ";!VV(0);" IDENT IS ";!X 240 RDRT 3,Y 250 IF Y THEN 240 260 PRINT "[C] DRT3 IS ";!Y;" CPVA 0 IS ";!VV(0);" IDENT IS ";!X 270 END [ rewind the tape ] > 270 RUN [A] DRT3 IS !8002 CPVA 0 IS !8000 IDENT IS !0000 DELAY DELAY [B] DRT3 IS !0000 CPVA 0 IS !8000 IDENT IS !0000 [C] DRT3 IS !0000 CPVA 0 IS !8000 IDENT IS !0000 With lines 170-200 deleted, I get: > 280 RUN [B] DRT3 IS !4002 CPVA 0 IS !8000 IDENT IS !0000 [C] DRT3 IS !0000 CPVA 0 IS !8000 IDENT IS !0000 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 10 .DISPLAY TERMINATION CODE AFTER HIOP 20 DB VV,7,0 30 LET CHANNEL:=4,DEVICE:=3 .CHANNEL 4 DEVICE 3 IS THE PIC + 7970 40 CPVA VV(0) 50 LET NORESPONS:=0 60 ZEROESON 70 INIT 80 PROC 90 BSIO AA 100 JUMP 110 110 JUMP 100 120 IN H 130 RSIO 140 RDRT 3,Y 150 PRINT "[A] DRT3 IS ";!Y;" CPVA 0 IS ";!VV(0) 160 PRINT "DELAY" 170 PRINT "DELAY" 180 HIOP 190 RDRT 3,Y 200 PRINT "[B] DRT3 IS ";!Y;" CPVA 0 IS ";!VV(0) 210 RDRT 3,Y 220 IF Y THEN 210 230 PRINT "[C] DRT3 IS ";!Y;" CPVA 0 IS ";!VV(0) 240 PRINT "NORESPONS IS ";%NORESPONS 250 END > 260 RUN **SYSTEM FAILURE** Delta P=%1400 Code Segment=9 Non-responding Module Halt 5 2-LOCAL (from Normal) H for help->RUN I/O Restarted. ** AID ERROR in statement 00130* Non-responding channel or not valid data (CCL) >0260 ~~~~~~~~~~ Setting NORESPONS = 1 produces: > 260 RUN **SYSTEM FAILURE** Delta P=%1400 Code Segment=9 Non-responding Module Halt 5 2-LOCAL (from Normal) H for help->RUN I/O Restarted. [A] DRT3 IS !0000 CPVA 0 IS !4F20 DELAY DELAY [B] DRT3 IS !0000 CPVA 0 IS !4F20 [C] DRT3 IS !0000 CPVA 0 IS !4F20 NORESPONSE IS %000243 [ this decodes as CCL returned for channel 4, device 3 ] End of AID user program > 260 ~~~~~~~~~~ With channel = 4 device = 0, I get the same error. CPVA is the same, NORESPONSE is %240 for device 0. ~~~~~~~~~~ With channel = 3 and device = 3, I get: > 260 RUN [A] DRT3 IS !C000 CPVA 0 IS !0000 DELAY DELAY [B] DRT3 IS !4001 CPVA 0 IS !0000 (CTRL+Y) Break in statement 210 >EXIT End of AID user program > 260 [ The program loops at 210-220 forever until stopped by CTRL+Y. Here, the HIOP changes the status, but completion of the halt never occurs. ] ~~~~~~~~~~ With channel = 3 and device 3 and 180 HIOP removed, I get: > 260 RUN [A] DRT3 IS !C000 CPVA 0 IS !0000 DELAY DELAY [B] DRT3 IS !C000 CPVA 0 IS !0000 (CTRL+Y) Break in statement 220 >EXIT End of AID user program > 260 [ The program loops at 210-220 forever until stopped by CTRL+Y. Here, the status remains "run pending". ] ~~~~~~~~~~ Adding 205 INIT produces: > 260 RUN [A] DRT3 IS !C000 CPVA 0 IS !0000 IDENT IS !0000 DELAY DELAY [B] DRT3 IS !4001 CPVA 0 IS !0000 IDENT IS !0000 [C] DRT3 IS !0000 CPVA 0 IS !0000 IDENT IS !0000 NORESPONSE IS %000001 End of AID user program > 260 [ Which is expected, as INIT stops the channel program and clears DRT 3. As there were no errrors, NORESPONS retains its initial setting. ]