Changing server escape key? - Protocols

This is a discussion on Changing server escape key? - Protocols ; Hello - I was asked to get an RS-232 link running between an EZ-TRAX milling- machine controller and a PC running Windows NT 4. EZ-TRAX is running MS-DOS 6.2. The first thing that crossed my mind was to use Kerlite ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: Changing server escape key?

  1. Changing server escape key?

    Hello -

    I was asked to get an RS-232 link running between an EZ-TRAX milling-
    machine controller and a PC running Windows NT 4. EZ-TRAX is running
    MS-DOS 6.2.

    The first thing that crossed my mind was to use Kerlite on EZ-TRAX and
    Kermit 3.15 on the PC-box floppy-booted to Windows 98SE. That works
    and files can be moved back and forth. Good. However.. this is
    awkward. Kermit 95 on NT would be much better.

    But there is another problem..

    The keypad connected to the EZ-TRAX controller has only a few
    keys.. and no Ctrl-C or a way to generate one. And while issuing
    FINISH from Kermit works to terminate server-mode, I wanted to press
    -ESC- on the keypad and have it get translated to Ctrl-C. A local
    abort.

    Now I have a TSR that intercepts the Int 0x16 call and replaces 0x011B
    with 0x2E03. Kermit still does not recognize the ..artificial..
    Ctrl-C.

    Suggestions? I'm happy recommending Kermit 95 on the NT side.. but am
    unsure how to get a local abort feature into the server side running
    on the EZ-TRAX system.

    Regards,

    Mark Becker

  2. Re: Changing server escape key?

    On 2004-07-24, Mark Becker wrote:
    : I was asked to get an RS-232 link running between an EZ-TRAX milling-
    : machine controller and a PC running Windows NT 4. EZ-TRAX is running
    : MS-DOS 6.2.
    :
    : The first thing that crossed my mind was to use Kerlite on EZ-TRAX and
    : Kermit 3.15 on the PC-box floppy-booted to Windows 98SE. That works
    : and files can be moved back and forth. Good. However.. this is
    : awkward. Kermit 95 on NT would be much better.
    :
    : But there is another problem..
    :
    : The keypad connected to the EZ-TRAX controller has only a few
    : keys.. and no Ctrl-C or a way to generate one. And while issuing
    : FINISH from Kermit works to terminate server-mode, I wanted to press
    : -ESC- on the keypad and have it get translated to Ctrl-C. A local
    : abort.
    :
    : Now I have a TSR that intercepts the Int 0x16 call and replaces 0x011B
    : with 0x2E03. Kermit still does not recognize the ..artificial..
    : Ctrl-C.
    :
    : Suggestions? I'm happy recommending Kermit 95 on the NT side.. but am
    : unsure how to get a local abort feature into the server side running
    : on the EZ-TRAX system.
    :
    Do you have a Letter C key? Just use that key.

    - Frank

  3. Re: Changing server escape key?

    Frank da Cruz wrote:
    >
    > Do you have a Letter C key? Just use that key.
    >


    The available keys are:

    F1 through F9
    UpArrow, DownArrow, LeftArrow, RightArrow
    0 through 9
    '/', '*', '-', '+', -ENTER-, and -ESC-

    Ideas on getting keys translated would be greatly appreciated.

    Regards,

    Mark

  4. Re: Changing server escape key?

    On 2004-07-27, Mark Becker wrote:
    : Frank da Cruz wrote:
    :> Do you have a Letter C key? Just use that key.
    :
    : The available keys are:
    :
    : F1 through F9
    : UpArrow, DownArrow, LeftArrow, RightArrow
    : 0 through 9
    : '/', '*', '-', '+', -ENTER-, and -ESC-
    :
    : Ideas on getting keys translated would be greatly appreciated.
    :
    If you can't get your TSR to work, you'll need to change the source and
    re-assemble or poke the binary with DDT. Here's what Joe D says:

    The code for escaping server mode is in file mssser.asm, procedure
    chkcon, which looks like this:

    chkcon: call isdev ; is stdin a device and not a disk file?
    jnc chkco5 ; nc = no, a disk file so do not read here
    mov dl,0ffh
    mov ah,dconio ; read console
    int dos
    jz chkco5 ; z = nothing there
    and al,1fh ; make char a control code
    cmp al,CR ; carriage return?
    je chkco3 ; e = yes, simulate timeout
    cmp al,'C'-40h ; Control-C?
    je chkco1 ; e = yes
    cmp al,'E'-40h ; Control-E?
    je chkco1 ; e = yes
    cmp al,'X'-40h ; Control-X?
    je chkco4 ; e = yes
    cmp al,'Z'-40h ; Control-Z?
    je chkco4 ; record it, take no immmediate action here
    cmp al,'Q'-40h ; Control-Q?
    je chkco6 ; e = yes
    or al,al ; scan code being returned?
    jnz chkco5 ; nz = no, ignore ascii char
    mov ah,dconio ; read and discard second byte
    mov dl,0ffh
    int dos
    jmp short chkco5 ; else unknown, ignore
    chkco1: or al,40h ; make Control-C-E printable
    mov flags.cxzflg,al ; remember what we saw
    chkco2: or status,stat_int ; interrupted
    stc
    ret ; act now
    chkco3: or status,stat_tmo ; CR simulates timeout
    stc
    ret ; act now
    chkco4: or al,40h ; make control-X-Z printable
    mov flags.cxzflg,al ; put into flags
    clc ; do not act on them here
    ret
    chkco5: cmp flags.cxzflg,'C' ; control-C intercepted elsewhere?
    je chkco2 ; e = yes
    clc ; else say no immediate action needed
    ret
    chkco6: xchg ah,al ; put Control-Q in AH for transmission
    call spkout ; send it now
    jmp short chkco5
    etc

    The goal is to end up with 'C' in byte flags.cxzflg. DOS is used
    to read the keyboard (dconio is non-blocking). This leaves the possibility
    of a keyboard translator being interposed over DOS and thus feed MSK what
    it needs in server mode.

    (end quote)

    - Frank

  5. Re: Changing server escape key?

    Hello -

    In a previous post lost by my news server, Frank da Cruz wrote:
    >
    > [ chunk of assembly language supplied by Joe D removed for clarity ]
    >


    I .. had found that routine in mssser.asm but had managed to misread
    it. That misunderstanding, and a typo in my interrupt handler have
    been straightened out.. The TSR is fixed and everything works.
    Success is a heady feeling.

    Thank you.

    Regards,

    Mark

+ Reply to Thread