> It's not just your emulator. . . In Client Access, the cursor position is
> also disturbed.

I think this statement is wrong.  I think you're confusing a status
message with re-writing the display.  When you send a new display format
(even if it's with FRCDTA & INVITE) the cursor position is reset.

However, with a status message, the cursor position isn't.   At least,
it's not in the emulator that I helped write (the open source tn5250) and
it's not on a "real terminal" (IBM 3476)  --  though I don't own Client
Access, so I can't try it with that.

Here's source code (DDS & ILE RPG -- I think it requires V5R1 or later,
but I'm too lazy to look it up) that displays a different status message
every second while the user is keying in data:


File QDDSSRC, member STSMSGDSP:

     A                                      DSPSIZ(24 80 *DS3)
     A          R STSMSGDSP1
     A                                      FRCDTA
     A                                      INVITE
     A                                 11  3'Enter something here:'
     A            MYFIELD       50   B 11 25



File QRPGLESRC, member STSMSG:

     FSTSMSGDSP CF   E             WORKSTN USROPN

     D QCMDEXC         PR                  ExtPgm('QCMDEXC')
     D   command                   3000A   const options(*varsize)
     D   length                      15P 5 const

     D QMHSNDPM        PR                  ExtPgm('QMHSNDPM')
     D   MessageID                    7A   Const
     D   QualMsgF                    20A   Const
     D   MsgData                  32767A   const options(*varsize)
     D   MsgDtaLen                   10I 0 Const
     D   MsgType                     10A   Const
     D   CallStkEnt                  10A   Const
     D   CallStkCnt                  10I 0 Const
     D   MessageKey                   4A
     D   ErrorCode                32767A   options(*varsize)

     D QRCVDTAQ        PR                  ExtPgm('QRCVDTAQ')
     D    dataq                      10A   const
     D    dqlib                      10A   const
     D    maxlen                      5P 0
     D    data                       80A
     D    wait                        5P 0 const

     D dsEC            DS
     D   dsEC_BytesP                 10I 0 inz(0)
     D   dsEC_BytesA                 10I 0 inz(0)

     D cmd             s           3000A   varying
     D len             s              5P 0
     D entry           s             80A
     D msg             s             80A   varying
     D msgno           s             10I 0
     D msgkey          s              4A

      /free

         monitor;
            cmd = 'DLTDTAQ DTAQ(QTEMP/STSMSGQ)';
            QCMDEXC(cmd: %len(cmd));
         on-error;
         endmon;

         cmd = 'CRTDTAQ DTAQ(QTEMP/STSMSGQ) MAXLEN(80)';
         QCMDEXC(cmd: %len(cmd));

         cmd = 'OVRDSPF FILE(STSMSGDSP) DTAQ(QTEMP/STSMSGQ)';
         QCMDEXC(cmd: %len(cmd));

         open STSMSGDSP;

         write STSMSGDSP1;

         dou (len > 0);

             len = %len(entry);
             QRCVDTAQ('STSMSGQ': 'QTEMP': len: entry: 1);

             msgno = msgno + 1;
             if (msgno > 3);
                msgno = 1;
             endif;

             select;
             when msgno = 1;
                msg = 'I like spam!';
             when msgno = 2;
                msg = 'Model railroading is fun!';
             when msgno = 3;
                msg = 'This is a sample of the work done on ' +
                          'this machine.';
             endsl;

             QMHSNDPM('CPF9897': 'QCPFMSG   *LIBL': msg: %len(msg):
                      '*STATUS': '*EXT': 0: MsgKey: dsEC);

         enddo;

         read(e) STSMSGDSP1;

         close STSMSGDSP;
         cmd = 'DLTOVR FILE(STSMSGDSP)';
         QCMDEXC(cmd: %len(cmd));

         *inlr = *on;

      /end-free

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.