|
> 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 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.