| From: DEC:.REO.REOVTX::HUDSON "[email protected] - UK Software
Partner Engineering 830-4121" 16-MAY-1997 10:13:14.52
To: nm%vbormc::"[email protected]"
CC: HUDSON
Subj: RE: POINT 28463, Company Autodealing, LAT QIO
Hello Declan O'Connell
Thanks for your ASAP question on LAT QIOs.
I had a look through the database and found someone else seeing the same
problem as you (using QIO with IO$_TTY_PORT | IO$M_LT_MAP_PORT results in
BADPARAM error on Alpha but not VAX).
It turns out that this is due to a bug in LTDRIVER. I believe the problem is
fixed in V7.
The reason for the problem is that the function code/modifier combination you
are using is for an old (and obsolete) version of LTDRIVER. The way you should
be doing this for the current LTDRIVER is to use a SETMODE QIO.
I believe that the current LTDRIVER attempts to translates the old format to
the new, and the bug is that on Alpha it gets this wrong.
Chapter 5 of the I/O User's Reference Manual ("Terminal Driver") details the
current valid I/O function codes and modifiers for LTDRIVER. There is an
example program in that book (Example 5-1 "LAT.C") which shows how to use the
SETMODE function code.
I hope this information is useful to you
Regards
Nick Hudson
Digital Software Partner Engineering
Chapter 5
|
| From: VBORMC::"[email protected]" "Declan O'Connell" 16-MAY-1997
20:38:53.31
To: "'[email protected] - UK Software Partner Engineering 830-4121
16-May-1997 1013 +0100'" <[email protected]>
CC:
Subj: RE: POINT 28463, Company Autodealing, LAT QIO
OK,
I've changed the code to use the SETMODE function but now I'm encountering a
different problem.
The message "%LAT-F-NOMSG, Message number 0176A184" is being returned in the
iosb.cond variable.
Any ideas ???
Here is the code I'm now using.
(*----------------------------------------------------------------------------*)
[GLOBAL,ASYNCHRONOUS]
FUNCTION lat_map_port( port_chan : UWORD;
node : PACKED ARRAY [LB1..UB1:INTEGER] OF CHAR;
port : PACKED ARRAY [LB2..UB2:INTEGER] OF CHAR;
lat_link : PACKED ARRAY [LB3..UB3:INTEGER] OF CHAR ) :
UNSIGNED;
[ALIGN(VAX)]
TYPE
LAT_MAP_ITEMLIST = RECORD
node_func : WORD;
node_len : WORD;
node_addr : INTEGER;
port_func : WORD;
port_len : WORD;
port_addr : INTEGER;
link_func : WORD;
link_len : WORD;
link_addr : INTEGER;
term : INTEGER;
END;
VAR
rc : UNSIGNED;
func : P_STR_10;
err_msg : P_STR_80;
iosb : IOSB_STR;
item_list : LAT_MAP_ITEMLIST;
item_list_size : WORD;
BEGIN
func := 'MAP_PORT ';
err_msg := ZERO;
item_list_size := SIZE( item_list );
item_list.node_len := UB1;
item_list.node_func := LAT$_ITM_TARGET_NODE_NAME;
item_list.node_addr := IADDRESS( node );
item_list.port_len := UB2;
item_list.port_func := LAT$_ITM_TARGET_PORT_NAME;
item_list.port_addr := IADDRESS( port );
item_list.link_len := UB3;
item_list.link_func := LAT$_ITM_TARGET_SERVICE_NAME;
item_list.link_addr := IADDRESS( lat_link );
item_list.term := 0;
rc := $QIOW(
CHAN := %IMMED port_chan,
FUNC := %IMMED (IO$_TTY_PORT + IO$M_LT_SETMODE),
IOSB := %REF iosb,
P1 := %REF item_list,
P2 := %IMMED item_list_size,
P3 := %IMMED ( LAT$C_ENT_PORT + LAT$C_ENTS_UNK )
);
IF rc <> SS$_NORMAL THEN
rpt_err( func, 1, sys_err, rc, err_msg );
rc := iosb.cond;
IF rc <> SS$_NORMAL THEN
rpt_err( func, 2, sys_err, rc, err_msg );
lat_map_port := rc;
END;
(*----------------------------------------------------------------------------*)
Regards,
Declan.
----------
From: [email protected] - UK Software Partner Engineering 830-4121
16-May-1997 1013 +0100[SMTP:[email protected]]
Sent: 16 May 1997 12:01
To: "[email protected]"@vbormc.vbo.dec.com; [email protected]
Cc: [email protected]
Subject: RE: POINT 28463, Company Autodealing, LAT QIO
Hello Declan O'Connell
Thanks for your ASAP question on LAT QIOs.
I had a look through the database and found someone else seeing the same
problem as you (using QIO with IO$_TTY_PORT | IO$M_LT_MAP_PORT results in
BADPARAM error on Alpha but not VAX).
It turns out that this is due to a bug in LTDRIVER. I believe the problem is
fixed in V7.
The reason for the problem is that the function code/modifier combination you
are using is for an old (and obsolete) version of LTDRIVER. The way you should
be doing this for the current LTDRIVER is to use a SETMODE QIO.
I believe that the current LTDRIVER attempts to translates the old format to
the new, and the bug is that on Alpha it gets this wrong.
Chapter 5 of the I/O User's Reference Manual ("Terminal Driver") details the
current valid I/O function codes and modifiers for LTDRIVER. There is an
example program in that book (Example 5-1 "LAT.C") which shows how to use the
SETMODE function code.
I hope this information is useful to you
Regards
Nick Hudson
Digital Software Partner Engineering
Chapter 5
% ====== Internet headers and postmarks (see DECWRL::GATEWAY.DOC) ======
% Received: from mail.vbo.dec.com (mail.vbo.dec.com [16.36.208.34]) by
vbormc.vbo.dec.com (8.7.3/8.7) with ESMTP id OAA12335 for
<[email protected]>; Fri, 16 May 1997 14:48:16 +0200
% Received: from server21.digital.fr (server21.digital.fr [193.56.15.21]) by
mail.vbo.dec.com (8.7.3/8.7) with ESMTP id PAA31560 for
<[email protected]>; Fri, 16 May 1997 15:00:37 +0200 (MET DST)
% Received: from mail (gate.autodealing.com [194.125.131.131]) by
server21.digital.fr (8.7.5/8.7) with SMTP id PAA16465 for
<[email protected]>; Fri, 16 May 1997 15:06:19 +0200 (MET DST)
% Received: from declan2.cognotec.com.15.9.194.in-addr.arpa by mail with smtp
(Smail3.1.29.1 #3) id m0wSMaj-002mLxC; Fri, 16 May 97 13:58 BS
% Received: by declan2.cognotec.com.15.9.194.in-addr.arpa with Microsoft Mail id
<[email protected]>; Fri, 16 May 1997
13:58:22 +-10
% Message-ID: <[email protected]>
% From: "Declan O'Connell" <[email protected]>
% To: "'[email protected] - UK Software Partner Engineering 830-4121
16-May-1997 1013 +0100'" <[email protected]>
% Subject: RE: POINT 28463, Company Autodealing, LAT QIO
% Date: Fri, 16 May 1997 13:58:21 +-100
% MIME-Version: 1.0
% Content-Type: text/plain; charset="us-ascii"
% Content-Transfer-Encoding: 7bit
|
| From: DEC:.REO.JOLLY::HUDSON "[email protected] - UK Software
Partner Engineering 830-4121" 19-MAY-1997 11:40:16.83
To: VBORMC::"[email protected]"
CC: HUDSON
Subj: RE: POINT 28463, Company Autodealing, LAT QIO
Hello Declan
I don't know what that error message means, but I think it may result from your
entity type (P3) being wrongly specified in the QIO:
P3 := %IMMED ( LAT$C_ENT_PORT + LAT$C_ENTS_UNK )
You are ORing the LAT$C values together; confusingly enough you actually need
to put LAT$C_ENTS_UNK in bits 16-19 of this longword (see sec 5.4.4.3 "Creating
and Configuring LAT Entities" of the I/O User's Ref Manual). I don't know why
they've done it like this - maybe just to catch people out.
Anyway, the example 5-1 in the manual (in C) does this using the syntax:
LAT$C_ENT_PORT | (LAT$C_ENTS_OLD << 0x10)
In Pascal you need something like
P3 := %IMMED ( LAT$C_ENT_PORT + (LAT$C_ENTS_UNK * 65536))
Have a go with this and see if it gets you any further...
regards
nick
|