Albert
Guest
|
Posted:
Mon Jun 06, 2005 3:11 pm Post subject:
HIS 2000 sample app |
|
|
Hi,
The sample rui3270.exe program that comes together with the HIS SDK is using
the following codes to check for bind condition,
if (((read_data[6] & 0x20) == 0x20) && /* Brackets used and BETB
*/
((read_data[7] & 0xF0) == 0x80) && /* HDX-FF, sec con winner
*/
( read_data[14] == 0x02)) /* LU type 2
*/
{
printf("BIND\n");
send_state = BETB;
lu_session = TRUE;
}
However, I've came accross an implementation where the host responded value
of read_data[7] is 0x40. When breaking down the bits of byte number 7, the
differences are as below,
0x80 = 1000 0000
0x40 = 0100 0000
bit 8 = HDX-FF; 0:HDX-FF reset state is RECV, 1: HDX-FF reset state is SEND
bit 7 = Control vectors are; 0: not included after SLU Name, 1 : are
included after SLU name
What is the impact of the difference in this byte between 0x80 and 0x40? Can
i just make the modification to the bind condition and just accept 0x40?
What exactly does HDX-FF means?
Thank you very much! |
|
Rob Beardsworth [MSFT]
Guest
|
Posted:
Fri Jun 10, 2005 12:53 am Post subject:
RE: HIS 2000 sample app |
|
|
HI Albert,
welcome to the world of IBM Bit Numbering! You mention Bit 8 as HDX-FF
Reset State and Bit 7 as having to do with control vectors. I assume with
this, you believe that the MSB of 0x80 is set and has the number 8. This is
not right, the MSB of 0x80 is set and has the number 0.
So, in the code below Byte 7's 0'th and 1st bits are checked
to ensure that they are 1 and 0 respectively, this says that the normal
flow is Half-Duplex, Flip-Flop (i.e. one sends, then the other, then the
first), in addition, bit 3 is checked to make sure it is not set, saying
Secondary is the contention winner. In your case, you say that you are
receiving 0x40 instead of 0x80. This means that the normal flow is
Half-Duplex Contention.I am a little surprised that an LU Type 2 would have
that set rather than Flip Flop. I am assuming that read_data[14] in your
case is 0x02. It may be ok for your code to accept 0x40 and see if you
never get into contention problems.
Rob Beardsworth
Microsoft
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of any included samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm
--------------------
From: "Albert" <annoymous@onlinediscussion.com>
Subject: HIS 2000 sample app
Hi,
The sample rui3270.exe program that comes together with the HIS SDK is using
the following codes to check for bind condition,
if (((read_data[6] & 0x20) == 0x20) && /* Brackets used and BETB
*/
((read_data[7] & 0xF0) == 0x80) && /* HDX-FF, sec con winner
*/
( read_data[14] == 0x02)) /* LU type 2
*/
{
printf("BIND\n");
send_state = BETB;
lu_session = TRUE;
}
However, I've came accross an implementation where the host responded value
of read_data[7] is 0x40. When breaking down the bits of byte number 7, the
differences are as below,
0x80 = 1000 0000
0x40 = 0100 0000
bit 8 = HDX-FF; 0:HDX-FF reset state is RECV, 1: HDX-FF reset state is SEND
bit 7 = Control vectors are; 0: not included after SLU Name, 1 : are
included after SLU name
What is the impact of the difference in this byte between 0x80 and 0x40? Can
i just make the modification to the bind condition and just accept 0x40?
What exactly does HDX-FF means?
Thank you very much! |
|