[comp.os.vms] Possible fix for a 8NN console problem

KVC@ENGVAX.SCG.HAC.COM (Kevin Carosso) (07/16/87)

One problem with the 8NN series and the PRO console (85nn, 8700, 8800) is
apparently caused by the terminal class driver getting timeouts from the
operator console terminal port (which is the PRO, right?).  This is the
problem where the VAX goes away if you go to the ">>>" prompt or back to
the PRO while using the PRO as the console terminal (OPA0:).

According to a knowledgable source I know, the class driver should do no
timeout processing for the console port driver on these machines.  Accordingly,
I wrote a little hack which will set the TTY$M_PC_NOTIME bit in the
UCB$W_TT_PRTCTL field of the console terminal device's UCB (OPA0:).  This is a
port driver control bit.  The terminal port and class drivers use these bits to
handle port devices which might need some special treatment by the class
driver.

The idea is to run this little program (requires CMKRNL) to set the bit.
There is a patch forthcoming (in 4.6 maybe?) to do the same thing in the
driver itself.  It was easier for me, however, just to do it from a program
at SYSTARTUP until something better comes along.

Anyway, I don't even HAVE a 8NN machine or I'd verify that this helps before
sending out to the masses.  I, of course, make no guarantees that this won't
crash your system, etc...  so obviously USE AT YOUR OWN RISK!  It may not
help at all, them's the breaks.

Note that this attempts to address ONE problem with the console.  Namely,
timeout processing yucking your VAX when using the PRO as OPA0:

Cut on the dotted line and "@" the resulting .COM file.  MACRO and LINK
to SYS$SYSTEM:SYS.STB, wait around till all the users go home, and give
it a try...

By the way, I did test it on my VS2000.  It sets the bit alright.  Doesn't
seem to hurt anything.

        /Kevin Carosso                     kvc@engvax.scg.hac.com
         Hughes Aircraft Co.               kvc%engvax@oberon.usc.edu

------------------------------------------------------------------------
$ show default
$ check_sum = 571479804
$ write sys$output "Creating FIX_8NN.MAR"
$ create FIX_8NN.MAR
$ DECK/DOLLARS="$*$*EOD*$*$"
        .Title  FIX_8NN - Fix 8NN console problems...

;++
;
;       Fix the little timeout problem on the 8NN series machine consoles
;       by disabling terminal driver timeouts for the console terminal.
;
;       Run this at system startup time to set the NOTIME port control bit
;       on OPA0:
;
; Author:
;       Kevin Carosso at Hughes Aircraft SCG/CTC, 15-JUL-1987
;
; Revision history:
;
;--

        .SBTTL  External and local symbol definitions

;
; External symbols
;
        .Library        /SYS$LIBRARY:LIB/

        $UCBDEF                         ; Unit control block
        $TTYDEFS                        ; TTY symbols

        .Entry  start, 0

        $CMKRNL_S       ROUTIN = mod_UCB
        ret

        .Entry  mod_UCB,^M<r5>

        moval   G^OPA$UCB0, r5          ; This is the console UCB
        DSBINT  UCB$B_DIPL(r5)          ; Raise to device IPL
        bisw    #TTY$M_PC_NOTIME, -     ; Use port control to make
                UCB$W_TT_PRTCTL(r5)     ; class driver never timeout
        ENBINT
        movl    #SS$_NORMAL, r0
        ret

        .end    start
$*$*EOD*$*$
$ checksum FIX_8NN.MAR
$ if checksum$checksum .ne. check_sum then -
$   write sys$output "Checksum failed, file probably corrupted"
$ exit