Hello,

I am experiencing an issue on a Windows 2003 server running jBase 3.4.7.  It
seems if I use the EXECUTE statement to do something at the operating system
level that I am getting strange results on my "IN" commands to read the
keyboard.

I have isolated the issue and am able to reproduce it with the two listings,
below.  In listing #1 I am getting the correct responses, which are
equivalents for the arrow keys and the escape key.  In program listing #2,
by appending the CHAR(255):'k', the programming no longer returns the
correct results.

Any assistance would be greatly appreciated!

Thanks,
Larry


Program listing #1.  
001 ***EXECUTE CHAR(255):'k':'CLS' CAPTURING JUNK
002 EXECUTE 'CLS' CAPTURING JUNK
003
004 10  CALL SINGLE.CHAR.INPUT.JBASE (KEY$)
005
006     CRT KEY$
007
008     IF KEY$ = '<ESC>' THEN STOP ELSE GO 10

RUN:
jsh CI E:\cubs\ci\data -->IN.TEST
<UP>
<DOWN>
<RIGHT>
<LEFT>
<ESC>


Program listing #2.
001 EXECUTE CHAR(255):'k':'CLS' CAPTURING JUNK
002 ***EXECUTE 'CLS' CAPTURING JUNK
003
004 10  CALL SINGLE.CHAR.INPUT.JBASE (KEY$)
005
006     CRT KEY$
007
008     IF KEY$ = '<ESC>' THEN STOP ELSE GO 10

RUN:
jsh CI E:\cubs\ci\data -->IN.TEST
[A

[C


SINGLE.CHAR.INPUT.JBASE listing:
    SUBROUTINE SINGLE.CHAR.INPUT.JBASE (KEY$)

    $INCLUDE JBC.h
    $INCLUDE jCmdKeys.h

    CALL CommandInit

    ECHO OFF
    CALL CommandNext(RtnNo, KeyData, 0)
    ECHO ON

    BEGIN CASE
*
** ESCAPE
*
    CASE RtnNo = cmd_escape
        KEY$ = '<ESC>'
*
** ARROW KEYS
*
    CASE RtnNo = cmd_cursor_up          ;* Move cursor up a line
        KEY$ = '<UP>'
    CASE RtnNo = cmd_cursor_down        ;* Move cursor down a line
        KEY$ = '<DOWN>'
    CASE RtnNo = cmd_cursor_right       ;* Move cursor to the right
        KEY$ = '<RIGHT>'
    CASE RtnNo = cmd_cursor_left        ;* Move cursor to the left
        KEY$ = '<LEFT>'
*
** CTRL CHARACTERS
*
    CASE RtnNo = cmd_start_line
        KEY$ = '<CTRL-A>'
    CASE RtnNo = cmd_end_line
        KEY$ = '<CTRL-E>'
    CASE RtnNo = 'D'
        KEY$ = '<CTRL-D>'
    CASE RtnNo = 36
        KEY$ = '<CTRL-H>'
*
** REGULAR CHARACTERS
*
    CASE RtnNo = cmd_alpha_numeric      ;* Simple alpha-numeric
        KEY$ = KeyData
    CASE 1
    END CASE
*
    RETURN

-- 
IMPORTANT: T24/Globus posts are no longer accepted on this forum.

To post, send email to [email protected]
To unsubscribe, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

Reply via email to