I use a subroutine to manage all data input for a character based version of our
application. This version allows the use of function keys, the escape key,
arrow
keys, and some other special keys. We usually use a wyse 60 emulation, thus the
character sequence for a variety of keys contain multiple characters.
This has worked flawlessly for 10-15 years. We moved a group of our clients
from D3
to UniData v7.1.9 on a new Dell Win 2K3 machine. Since then, we've been having
problems with the data input code, in that UniData seems to be dropping
characters.
An example is in our ECL shell program we might enter something like:
.
...Welcome to 'TCL'. Enter Command to execute, or Press [Esc] to exit.
1 Demo (0)-> LIST-LOGINS
In E:\DataTrust\DTA\BP\BP\_TCL.SHELL at line 1123 Not a verb
In E:\DataTrust\DTA\BP\BP\_TCL.SHELL at line 1123 LIS-LOGINS
1 Demo (0)-> .L10
0001 LIS-LOGINS
0002 UD.LOGOFF 2332
0003 UD.LOGOFF 2652
The characters are echoed back to the terminal emulator (it doesn't matter
whether
it's wIntegrate or AccuTerm) but what's submitted to the EXECUTE, in the ECL
shell
program, has lost characters. This doesn't happen when UD is running in our
development environment (on our local network) but only seems to happen on our
ASP.
It also doesn't happen in some our D3/Windows environments at our clients
offices.
Does anyone know if the SYSTEM(14) function, or the type-ahead buffer, can be
controlled (configured). The code that runs this looks like:
LOOP ; ** UD
version
IF NOT(WaitTime) THEN ; ** UD
version
INPUT AsciiChar,1: UNFILTERED ; ** get a raw byte UD
version
END ELSE ; ** UD
version
INPUT AsciiChar,1: FOR WaitTime UNFILTERED THEN ; ** UD
version
NULL ; ** UD
version
END ELSE ; ** UD
version
IF I.VALUE = NULL$ THEN I.VALUE = WCHAR ; ** UD
version
AsciiChar = CHAR(13) ; ** UD
version
MenuExit = 1 ; ** UD
version
END ; ** UD
version
END ; ** UD
version
DecChar = SEQ(AsciiChar) ; ** convert to decimal UD
version
HexStr := OCONV(AsciiChar, 'MX') ; ** convert to hex UD
version
DecStr := DecChar : SP1 ; ** build decimal string UD
version
KeyStr := AsciiChar ; ** build ascii UD
version
UNTIL NOT(SYSTEM(14)) DO REPEAT ; ** UD
version
Any thoughts would be appreciated.
Bill Haskett
Advantos Systems, Inc.
"What Software can be."
4370 La Jolla Village Drive, Suite 400
San Diego, CA 92122
( 360-923-4838 (WA)
( 760-944-5570 (CA)
Visit: <blocked::http://www.advantos.net/> www.advantos.net
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/