[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference bulova::decwindows

Title:DECWINDOWS
Notice:DECwindows Motif V1.2-4 SSB kits: note 5519
Moderator:GRIM::MESSENGER
Created:Wed Nov 28 1990
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:5861
Total number of notes:24081

5845.0. "disable <CTRL/F2> with $QIO IO$K_DECW_OPWIN_KEY" by BALZAC::BIDAULT () Fri May 09 1997 06:50

    Bonjour,
    
    In factory a customer want disable the command <CTRL/F2>.
    
    In the session manager with OPTIONS and KEYBOARD there is the field
    OPERATOR WINDOW KEY. But it's not possible to disable completely this
    function. You can only replace <CTRL> by SHIFT and F2 by F1. It's not
    interessing.
    
    In the documentation DEVICE DRIVER MANUAL, I read that with a $QIO
    and IO$_SETMODE function code and IO$K_DECW_OPWIN_KEY function modifier
    it's possible to replace the <CTRL/F2>.
    Is it possible to modify the <CTRL/F2> after that the X server run,
    because the keyboard is attached to this server ?
    
    And if it's possible can you give an example of QIO how to replace the
    <CTRL/F2> by nothing or by <MB5/F2> (see appendix of the documentation
    of device driver).
    
    Merci pour vos r�ponses.
    
    Bonne journ�e,
    
    Jacques.
T.RTitleUserPersonal
Name
DateLines
5845.1GRIM::MESSENGERBob MessengerFri May 09 1997 11:0612
I don't have any example code, but it looks like you can make a $QIO call
to INA0: to set the keycode and modifier mask for the operator key.  Maybe
you could make a $QIO call using either an unused keycode or an unused
modifier bit, so the key/modifier combination can't be entered by the
user.  If the DECW$SERVER_0 process attaches the INA0: device you'd
probably need to make this $QIO call sometime before the server starts (e.g.
run a program in DECW$PRIVATE_SERVER_SETUP.COM).

Maybe there's a way to do what you want without a $QIO call, but if there
is I'm not aware of it.

				-- Bob
5845.2STAR::KLEINSORGEFred Kleinsorge, OpenVMS EngineeringFri May 09 1997 12:057
    
    The QIO must be done using the KB port driver (OPA2), the driver
    dispatch is revectored thru INA0.  You can do the QIO anytime, just do
    it from the system account.  Like Bob says, justy give it a
    non-existant keycode value... try something like 0x6D
    
    
5845.3IKA0 is OFFLINEBALZAC::BIDAULTMon May 12 1997 09:3358
    Bonjour fred,
    
    the KB port driver is IKA0
    
    $ sh dev ika
    
    Device                  Device           Error
     Name                   Status           Count
    IKA0:                   Offline              0
    
    The status of device IKA0 must be ONLINE.
    How can I modify this status.
    
    merci de votre aide,
    
    Bonne journ�e,
    
    Jacques.
    
    In annex the program
    
    #include <iodef>
    #include <ssdef>
    #include <descrip>
    
    static $DESCRIPTOR(first_dev,"IKA");
    
    #define IO$K_DECW_OPWIN_KEY 13
    
    main()
    {
        unsigned long int       condValue;          /* VMS condition value
    */
        unsigned short int      iosb[4];            /* i/o status block */
        unsigned short int      chan;
    
        condValue = sys$assign (&first_dev, &chan, 0, 0);
        if (condValue != SS$_NORMAL)
        {
            PrintF("Couldn't assign channel to Keyboard \n");
            lib$stop(condValue);
            return;
        }
    
        condValue = sys$qio (0, chan,
                            IO$_SETMODE,
                            &iosb, 0, 0,
                            IO$K_DECW_OPWIN_KEY,
                            0x6D,
                            0, 0, 0, 0) ;
        if (condValue != SS$_NORMAL)
        {
            PrintF("\nAttach screen failed %d", condValue) ;
            lib$stop(condValue);
            return;
        }
    }
    
5845.4As Easy As SYLOGICALS.TEMPLATE?XDELTA::HOFFMANSteve, OpenVMS EngineeringMon May 12 1997 11:484
   I haven't noticed this problem -- have you looking in SYLOGICALS.COM
   (or SYLOGICALS.TEMPLATE) for the procedure used to disable the OPA0:
   console window?
5845.5GRIM::MESSENGERBob MessengerMon May 12 1997 16:1827
Fred is on vacation until June 2nd.  Unfortunately he's the guy who
understands this stuff; I'm just the understudy.

Re: IKA0 being off-line, is there an OPA2 device on the system as well?

Re: .4, I thought the question was how to disable the Ctrl-F2 command that
allows the user to bring up or take down the operator window, not how to
prevent OPCOM from broadcasting messages to the operator window (which
automatically pops up the window).  It's true that the two are related,
though: if you're going to disable Ctrl-F2 then you'd better also disable
OPA0: broadcasts or else the user will have no way of taking down the
operator window once it's popped up.

As of DECwindows Motif V1.2-3 and later versions OPA0: broadcasts are
disabled by default in DECW$STARTUP.COM (actually DECW$STARTAPPS.COM).  If
you want the user to see operator messages the recommended way of doing
this is to define the global symbol DECW$CONSOLE_SELECTION with a value of
"WINDOW" in SYS$MANAGER:DECW$PRIVATE_APPS_SETUP.COM.  This tells
DECwindows to create an X application window (instead of the operator
window) to display OPA0: broadcasts.

Other values of DECW$CONSOLE_SELECTION are "DISABLE" to disable OPA0:
broadcasts (which is the default) or "ENABLE" to enable them and display
them in the operator window (which is not recommended because of problems
in the console driver).

				-- Bob
5845.6OPA2 doesn't exist ..BALZAC::BIDAULTWed May 14 1997 13:3810
    bonjour Bob,
    
    There isn't OPA2 device on the system.
    
    The device IKA0 correspond to the keyboard driver. Also which device
    must I use. And how modify the status of the device if it's off-line.
    
    Bonne soir�e,
    
    Jacques.
5845.7GRIM::MESSENGERBob MessengerWed May 14 1997 14:514
Sorry, but I don't think I can help you.  As I said, Fred's the expert and
he's on vacation.

				-- Bob
5845.8OPA2 for Alpha TTA0 for VAXBALZAC::BIDAULTTue May 27 1997 04:5615
    Bonjour Fred, Bob,
    
    Thank you for your help.
    
    The program in note .3 is running if you replace the device IKA by
    OPA2 in Alpha VMS or
    TTA0 in VAX VMS.
    To activate <CTRL><F2> you replace 0x6D by 0
    
    To know the device you look at the logical
    sh log decw$keyboard/table=decw$*.
    
    Merci beaucoup,
    
    Jacques.
5845.9STAR::KLEINSORGEFred Kleinsorge, OpenVMS EngineeringMon Jun 02 1997 00:3122
    IK is a class driver for the keyboard.  IM is the mouse equivalent.
    Each is marked offline and cannot be directly accessed.  They perform
    the decoding of the data for a physical port driver.  On all Alpha
    systems, the ports are OPA2 (KB) and OPA3 (mouse).  Th G* is a physical
    graphics driver.
    
    All of the drivers use a common superclass driver which contains the
    FDT routines (IN).
    
    KB/mouse SET/SENSE mode operations are done by assigning a channel to
    the port driver (OPA*).  The operation in this case is actually handled
    by a FDT routine in IN.  Some operations cause callbacks to device
    specific routines in the appropriate port driver.
    
    It's pretty convoluted.  I didn't design it (in some respects it's
    really a clever design) but it is very confusing.
    
    On the VAX systems, the physical port is typically TTxx.  But some
    devices (like the old QVSS) had built in mouse/kb ports on the card
    which come up as secondary Gxxx devices.