|
The recent activity on x5250 (nice work, James!) prompts me to mention something in tn5250 I've been intending to look into, but haven't gotten around to. It's a minor matter that I only notice using the test pgm below. My setup (using xt5250 on SuSE 9.1 Linux & KDE) works great, except that on a test screen that displays all displayable chars (>= x40) it seems to swallow some little-used chars. Maybe it's processing them as commands, rather than data? Below is an AS/400 display file and pgm that puts up a table of all displayable chars and all attribute bytes (best viewed with a fixed font). On the first line of the table, one of the chars (x70 x80 x90 or xA0) seems to be swallowed, shifting the rest of the line to the left. The same happens on the lines for chars ending in xC, xD & xE. Also on the first line, a spurious character sometimes, but not always, mysteriously appears between '20 GRN' and '30 TRQ'. I wonder if this is a consequence of ncurses? BTW, x5250 displays it perfectly, except that it doesn't show the 3 chars less than x40: x1C, which is the char that dumb terminals display when you press the dup key (looks like an asterisk with a line over it), x1E which is a high line, and x1F, a solid rectangle. I presume that's because the font used doesn't have those chars (but who cares, really?). --Dave ----------------------------------------------------------------------------- A R TESTREC A CA03 A CA12 A 3 2'1st hex' A 3 15'EBCDIC' A 4 3'char->' A 4 10'0123456789ABCDEF' DSPATR(HI UL) A 5 8'0' DSPATR(HI) A L0 16A O 5 10 DSPATR(CS UL) A 6 8'1' DSPATR(HI) A L1 16A O 6 10 DSPATR(CS UL) A 7 8'2' DSPATR(HI) A L2 16A O 7 10 DSPATR(CS UL) A 8 8'3' DSPATR(HI) A L3 16A O 8 10 DSPATR(CS UL) A 9 8'4' DSPATR(HI) A L4 16A O 9 10 DSPATR(CS UL) A 10 1'2nd' A 10 8'5' DSPATR(HI) A L5 16A O 10 10 DSPATR(CS UL) A 11 1'hex' A 11 8'6' DSPATR(HI) A L6 16A O 11 10 DSPATR(CS UL) A 12 1'char->' A 12 8'7' DSPATR(HI) A L7 16A O 12 10 DSPATR(CS UL) A 13 8'8' DSPATR(HI) A L8 16A O 13 10 DSPATR(CS UL) A 14 8'9' DSPATR(HI) A L9 16A O 14 10 DSPATR(CS UL) A 15 8'A' DSPATR(HI) A LA 16A O 15 10 DSPATR(CS UL) A 16 8'B' DSPATR(HI) A LB 16A O 16 10 DSPATR(CS UL) A 17 8'C' DSPATR(HI) A LC 16A O 17 10 DSPATR(CS UL) A 18 8'D' DSPATR(HI) A LD 16A O 18 10 DSPATR(CS UL) A 19 8'E' DSPATR(HI) A LE 16A O 19 10 DSPATR(CS UL) A 20 8'F' DSPATR(HI) A LF 16A O 20 10 DSPATR(CS UL) A 21 10'0123456789ABCDEF' DSPATR(HI UL) * A 3 28'-----------' A 3 40'Display Attributes' A 3 59'-----------' A 4 28'Hex' DSPATR(HI UL) A 4 48'Hex' DSPATR(HI UL) A DATR20 18 O 5 29 A DATR30 21 O 5 49 A DATR21 18 O 6 29 A DATR31 21 O 6 49 A DATR22 18 O 7 29 A DATR32 21 O 7 49 A DATR23 18 O 8 29 A DATR33 21 O 8 49 A DATR24 18 O 9 29 A DATR34 21 O 9 49 A DATR25 18 O 10 29 A DATR35 21 O 10 49 A DATR26 18 O 11 29 A DATR36 21 O 11 49 A DATR27 18 O 12 29 A DATR37 21 O 12 49 A DATR28 18 O 13 29 A DATR38 21 O 13 49 A DATR29 18 O 14 29 A DATR39 21 O 14 49 A DATR2A 18 O 15 29 A DATR3A 21 O 15 49 A DATR2B 18 O 16 29 A DATR3B 21 O 16 49 A DATR2C 18 O 17 29 A DATR3C 21 O 17 49 A DATR2D 18 O 18 29 A DATR3D 21 O 18 49 A DATR2E 18 O 19 29 A DATR3E 21 O 19 49 A DATR2F 18 O 20 29 A 20 49'3F' A 20 52' ' A DSPATR(CS BL UL HI RI) ---------------------------------------------------------------------- * * Pgm to display all displayable chars and all display attributes * ftestd cf e workstn d hexvals ds d l0 16a d l1 16a d l2 16a d l3 16a d l4 16a d l5 16a d l6 16a d l7 16a d l8 16a d l9 16a d la 16a d lb 16a d lc 16a d ld 16a d le 16a d lf 16a d hex 1a dim(256) overlay(hexvals) d datr2x ds d datr20 18a inz('20 GRN ') d datr21 18a inz('21 GRN RI') d datr22 18a inz('22 WHT HI ') d datr23 18a inz('23 WHT HI RI') d datr24 18a inz('24 GRN UL ') d datr25 18a inz('25 GRN UL RI') d datr26 18a inz('26 WHT UL HI ') d datr27 18a inz('27 ND UL HI RI') d datr28 18a inz('28 RED BL ') d datr29 18a inz('29 RED BL RI') d datr2a 18a inz('2A RED BL HI ') d datr2b 18a inz('2B RED BL HI RI') d datr2c 18a inz('2C RED BL UL ') d datr2d 18a inz('2D RED BL UL RI') d datr2e 18a inz('2E RED BL UL HI ') d datr2f 18a inz('2F ND BL UL HI RI') d datr2 1a dim(288) overlay(datr2x) d datr3x ds d datr30 21a inz('30 TRQ CS ') d datr31 21a inz('31 TRQ CS RI') d datr32 21a inz('32 YLW CS HI ') d datr33 21a inz('33 YLW CS HI RI') d datr34 21a inz('34 TRQ CS UL ') d datr35 21a inz('35 TRQ CS UL RI') d datr36 21a inz('36 YLW CS UL HI ') d datr37 21a inz('37 ND CS UL HI RI') d datr38 21a inz('38 PNK CS BL ') d datr39 21a inz('39 PNK CS BL RI') d datr3a 21a inz('3A BLU CS BL HI ') d datr3b 21a inz('3B BLU CS BL HI RI') d datr3c 21a inz('3C PNK CS BL UL ') d datr3d 21a inz('3D PNK CS BL UL RI') d datr3e 21a inz('3E BLU CS BL UL HI ') d datr3 1a dim(315) overlay(datr3x) d ds d d 1 4i 0 d dchr 4 4a d x s 10i 0 d y s 10i 0 d ix s 10i 0 /free // generate displayable data bytes d = 0; for x = 0 to 15 by 1; for y = 0 to 240 by 16; ix = x + y + 1; if dchr < x'40'; if dchr = x'1C' or dchr = x'1E' or dchr = x'1F'; hex(ix) = dchr; else; hex(ix) = x'40'; endif; else; hex(ix) = dchr; endif; d = d + 1; endfor; endfor; // insert display attribute bytes ix = 3; for d = 32 to 47 by 1; datr2(ix) = dchr; ix = ix + 18; endfor; ix = 3; for d = 48 to 62 by 1; datr3(ix) = dchr; ix = ix + 21; endfor; // write the screen exfmt testrec; *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.