-------- Shipped to VMTOOLS 22 Apr 1993 12:27:41 ----------------------- PIPELINE MODULE Modification 1.0107 sublevel 83 ( 53 in hex) PIPSYSF MODULE Edition .40004 This is the "official" modification level 1.1.7. The glue module for filter packages has been fixed not to cause a CMS wait state when entered in 24-bit mode. CONSOLE The underlying interface rejects a buffer address of zero. For a null line, substiture a 1. In other cases, copy into a buffer. Also issue error message when the return code from CMS is non-zero. CRC New filter in PIPSYSF. Computes 32-bit and 16-bit CRCs. DELAY Use MVS macro on CMS 5.5 and later. This should allow for coexistence with PROFS cross-calendar, wakeup, etc. *** this was repealed *** HLASM Bad return from the exit in a 370-mode virtual machine. STATE(W) Scan more carefully for keywords. If all argument words are keywords, then accept them; otherwise treat as file name. Thus, STATE FORMAT MODULE S will continue to work as intended. UNPACKX Did not popagate EOF to the left. This can cause a loop. -------- Shipped to VMTOOLS 31 Mar 1993 13:50:02 ----------------------- PIPELINE MODULE Modification 1.0107 sublevel 77 ( 4D in hex) BLOCK ADMSF would ABEND if an output block ever needed padding with '00'x (DE)BLOCK Incorrect when LINENED EOF specified; line end character then defaulted to the length of the EOF keyword. Also support TERMinate (TERMinator) to indicate that the last line is terminated with a line end sequence. TERMINATE is specified before EOF. FULLSCR CONSOLE did not write '01'x when CP took over the screen. This leads to a stall in BROWSE &c. FULLSCRQ formatted the CCSID was formatted incorrectly. RUNPIPE EVENTS various problems fixed. SPEC fix incorrect pad of missing input field. SQL Issue more meaningful message when ARIRVSTC TEXT is not available. STARxxx Decode error codes returned when system services severs. -------- Shipped to VMTOOLS 26 Feb 1993 17:53:13 ----------------------- PIPELINE MODULE Modification 1.0107 sublevel 66 ( 42 in hex) The ABEND exit no longer issues messages for 222 abends (which are usually HX). BROWSE Don't choke on an unknown codepage in the terminal. COUNT Stacking options deleted. COUNTLNS Deleted. DFSORT No longer adds SORT verb. You're most likely to wish to specify OPTION NOLIST. SQLSELECT Add %dump option to dump the pipeline issued into the output stream instead of issuing it. VAR TRACKING. Suspend before getting variable from REXX. This may make data more timely. XTRACT Deleted. ZONE Fixed to work with WORDS and FIELDS. -------- Shipped to VMTOOLS 11 Feb 1993 22:34:57 ----------------------- PIPELINE MODULE Modification 1.0107 sublevel 64 ( 40 in hex) BROWSE Support all arguments for BUILDSCR after a parenthesis. Use * as a placeholder where you wish to take the actual characteristics of the terminal. CHANGE ANYCASE fixed more trouble. Also ruggedised stream handling. FULLSCRS Can be first in the pipeline; it invokes FULLSCRQ under the covers if so. CASEI ZONE NOT would drop a leading blank from the argument string to the filter. This causes incorrect results if the filter is one that takes a string argument (FROMLABEL &c). -------- Shipped to VMTOOLS 5 Feb 1993 12:57:46 ------------------------ PIPELINE MODULE Modification 1.0107 sublevel 62 ( 3E in hex) The selection stages with both output streams connected did not terminate immediately if when both streams are severed and the last one severed was not the one currently passing a record. CASEI Now part of the base. Supports ZONE and REVERSE operands. ZONE ensures that the following word is acceptable to SPECs as a column/field/word range which is then used as the argument to SPEC. The order is SPEC, Uppercase, Reverse, irrespective of the order of operands. CMS/COMMAND The HT flag was not saved correctly between commands issued by a stage. Invalid return code when out of storage. TOTARGET/FROMTARGET Run a selection stage until it produces output on its promary (or for FROMTARGET its alternate) output stream. Behave like all other partitioning selection stages; pass rejected records on the secondary stream if it is defined. FANOUT Optimised to reduce the number of attempted writes. Shorts itself out when only one connected stream remains. GATE New stage. GATE terminates when it reads a record on the primary input stream. It passes records from other input streams to their corresponding output stream. When STRICT is specified, GATE checks its primary input stream before passing a record; when STRICT is omitted it stops when SELECT any input reports stream 0 selected. Locate L is now the minimum abbreviation. NOT Moved into base. PREDSELECT was a wee bit too naive about severed output streams and its assumptions when two successive records are met on the primary input stream. The decision tree is now: Both inputs 1 and 2 are connected: Discard previous record. One of inputs 1 and 2 is connected: Assume missing record arrived on the other input. Decision at EOF on primary input is based on last observed states of streams 1 and 2; querying them at that point might show EOF erroneously. This has ramifications for NOT, CASEI, and ZONE. SQL On MVS. Ignore CAF reason code 00c10202 (already open). This makes SQL able use a connection that was held with COMMIT. ZONE Now in the base. See CASEI. The MVS read/write routines only check for member names in an existing allocation when the DSORG is PO. -------- Shipped to VMTOOLS 17 Jan 1993 19:34:06 ----------------------- PIPELINE MODULE Modification 1.0107 sublevel 51 ( 33 in hex) ALL Did not process hex and binary literals correctly. BROWSE Copy input file to the output, if connected. CHANGE Fixed problem with CHANGE ANYCASE; unchanged records would prefix any changed one. DFSORT /* Supply a SORT verb if the first word is not SORT. */ NB: This change has been regressed. ELASTIC Change strategy to reduce number of records in buffer. PA2 Include REXX program in module for BROWSE. SPEC Support single negative number as meaning -n;-n. Support 1;* (and *;*). Support FIELDS (abbreviates to F) to indicate tab-delimited fields ('05' between fields). A tab-delimited field can be null (unlike a word). Support FIELDSEPerator (synonym FS) to specify the TAB character. Note the difference between |spec word1| and |spec fs blank field 1| the latter will be null if the first character of the record is a blank. SQL Provide the correct length in a DESCRIBE SELECT of a long VARCHAR field. It needs two bytes for the length field. TAPE Consumes one less record when it stops reading because the output goes to end-of-file. TIMESTAMP No longer generate an infinite supply when first in a pipeline. That is, behave as a filter, not a device driver. XLATE Support CODEPAGE 500 as a no-op. -------- Shipped to VMTOOLS 21 Dec 1992 20:56:17 ----------------------- PIPELINE MODULE Modification 1.0107 sublevel 46 ( 2E in hex) PIPSYSF MODULE Edition .40002 On MVS, the address of the address of the CPPL was passed to REXX when running a REXX filter; this causes an abend (66D) when REXX then hands this back to the pipe in an Address LINK. PIPSYSF is now generated as a 31-bit module. It dragged CMS down on CMS 9 when invoked as a CMS command. BLOCK Add number after FIXED to specify the LRECL of the file. Message 134 is then issued on a conflict. This makes for a meaningful message on MVS... FANOUT Enforce that the number specified after STOP is less than or equal to the number defined of output streams. JOINCONT Daft test for the strings being equal; only one byte tested. SPECS The keyword STOPANY was never recognised. Use the FANOUT STOP format instead. The STOP keyword must be the first operand. SPEC terminates as soon as it discovers the specified number of streams at end-of-file. (But it checks all input streams at the same time.) New conversion formats: Packed and Isodate. Conversions to and from packed can specify the scaling in parentheses (abutted to the name of the conversion routine). The internal format for an ISO date is the Julian format used by MVS. x'92001F' or x'0092001F' represent the internal format of 19920101. Three additional pairs of digits are allowed for the time (hours, minutes, seconds). Additional conversions are supported, for instance D2X. It must be understood that x2y these is strictly x2C followed by C2y. These are allowed: * To: CDXBFVPI DC BL1'01111111' From C 0 DC BL1'10110000' From D 1 DC BL1'11011111' From X 2 DC BL1'11101111' From B 3 DC BL1'10110000' From F 4 DC BL1'10110000' From V 5 DC BL1'10110000' From P 6 DC BL1'10110000' From I 7 -------- Shipped to VMTOOLS 15 Dec 1992 15:35:32 ----------------------- PIPELINE MODULE Modification 1.0107 sublevel 41 ( 29 in hex) PIPSYSF MODULE Edition .40001 Random ABENDs when a stage that uses a buffer internally is not started because the aggregate return code was zero by the time the stage should be started. ALL Rolled into the base. DEBLOCK CMS did not consume the last input record when it is padded with zeros. ISPF Add operands VCOPY and VREPLACE to interface directly to function pool variables. PATTERN Reference variables correctly in expression. More trace. STARMON New stage to connect to *MONITOR and deblock records into the pipeline. One operand is required, two are optional. [SHARED|EXCLUSIVE|EVENTs|SAMPLE] [SUPPRESS ] The first keyword sets the events that the virtual machine should be notified of. The is a bitmap of domains to be suppressed. The bitmap is a halfword. 8000 suppresses System domain. Output records contain a 20-byte prefix. The first halfword is the length of the record including this length field. The output records are equivalent the part of the MONWRITE output containing segment data (the 12-byte prefix is not written). MONWRITE writes one record per page; STARMON deblocks to logical records. TRANSLATE added as a synonym for XLATE to be ESA2 compatible. -------- Shipped to VMTOOLS 20 Nov 1992 00:49:50 ----------------------- PIPSYSF MODULE Edition .40001 EGREP Fixed bug for special characters in a string. An ASSERT was a tadd to unrestrictive... SCM The formatting engine of the SC/SCM XEDIT macro. UDP User Datagram Protocol. A TCP/IP protocol, but not the one you want... XEDITREPL Glenn fixed this to handle null records. -------- Shipped to VMTOOLS 8 Nov 1992 16:20:24 ------------------------ PIPELINE MODULE Modification 1.0107 sublevel 25 ( 19 in hex) At long last, a new HELPLIB! Melinda says that she is not that desperate to keep "hex" as a prefix for hexadecimal delimited strings. Thus, just H and X will be allowed. I'd actually like to kill off the H as well. It will stay in SPECs, but elsewhere it will go away some day... Help's menu and the browser now clear the screen unless the global variable PIPELINE_CLEAR_SCREEN is set to NO. DFSORT New interface to DF/SORT CMS. The argument string is passed as the sort control statement appended with a RECORD statement that indicates Variable 32K records. OPTION NOLIST is recommended. The file is inserted on E15 and removed on E35. The record descriptor words are added and removed by the interface; you must specify four more than the column number in the input record (such is the way of DF/SORT). dfsort option nolist sort fields=(5,1,ch,a) DF/SORT is known to mess with the EMSG setting; this means that it will interfere with trace and error messages. FULLSCR Disable when using the CONSOLE interface. ISPF The variable list is now optional. The only supported field format is CHAR; this keyword is only supported for compatibility. The driver now reads variables from the function pool; all restrictions on multiple use of variables are lifted. PAD Tolerate record length zero. REXX Fixed bug with BEGOUTPUT that could lead to entwined REXX environments. REXXM Withdrawn; support for re-entrant environments did not pan out. REXXR REXXVARS Fix PRODUCER support. (Blush.) STEM VAR VARLOAD STACK When putting data on the stack STACK should continue after the output reaches EOF. UNTERSE Gave non-zero return code if the end-of-file indication was spanning two records. -------- Shipped to VMTOOLS 9 Oct 1992 15:37:26 ------------------------ PIPELINE MODULE Modification 1.0107 sublevel 13 ( D in hex) PIPSYSF MODULE Edition .4 Stages waiting both for input records or external events (eg FULLSCR ASYNCHRONOUSLY) did not wake up when the input stream is shorted to a stage that has an output record waiting. FANINANY does this on its last input stream. Rather nasty interaction in the dispatcher here... The stage numbering has now found its final form, I hope. Both connectors and label references count as a stage. This does have benign compatibility issues: 'callpipe *:|stem x.' now always loads data in the stem; if the input stream is not connected, x.0 is set to zero rather than trying to read the stem. Bit strings can be specified only with a leading B (BIT. &c is no longer accepted); likewise hexadecimal literals can be specified as Xxx Hxx and (to please Melinda) HEXxx. UNTERSE Consume the last record of the input file. MVS: REXX Runs programs in a re-entrant environment. Instore programs and programs read from a stream can select the type of environment they requrire in the leading comment which must start in column 1: /* MERGE xxx /* RENT xxx STACK Support MVS. This is a baked-in REXX program running in a merged environment. SUBCOM Support MVS. TSO Issues TSO commands with outtrap. Also a baked-in REXX program running in a merged environment. -------- Shipped to VMTOOLS 29 Sep 1992 20:51:36 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 306 ( 132 in hex) APLDECODE Does the inverse of APLENCODE. BLOCK C, LINEND, CRLF, and STRING now support an additional keyword DEBLOCK EOF [] to specify the DOS end-of-file character. The default is x'3f' which is the EBCDIC equivalent of the ASCII substitute (x'1a'). CHANGE If the secondary output stream is defined, unchanged records are written to it instead of to the primary. With just one stream all is unchanged (forgive the hopeless pun). PREDSELECT fixed to work when the secondary output is not connected. (blush). SNAKE Was N-UP (and ABREAST before that). Cute name. -------- Shipped to VMTOOLS 23 Sep 1992 18:04:33 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 295 ( 127 in hex) PIPSYSF MODULE Edition .3338 The stage number in error messages no longer depends on connectors; connectors are ignored in this count. The number returned by the STAGENUMBER pipeline command is unchanged (as are the contents of registers and parameter lists on entry to stages). CHANGE The keyword ANYCASE (with synonyms CASEANY IGNORECASE CASEIGNORE) specifies case insensitive replacement. If further both strings are not null and both contain lowercase letters and the first string contains no uppercase letters, then the case of the field being replaced is preserved in the replacement field. Specify uppercase in the first string to have the second string replaced exactly as written. Input: Change: Output: foo /foo/bar/ bar Foo /foo/bar/ Bar FOo /foo/bar/ BAR FOO /foo/bar/ BAR FOO /fOo/bar/ bar foo /foo/Bar/ Bar FOo /foo/Bar/ BAR COUNTLNS (Though obsolete.) Was broken by the recent change to add options to COUNT. ELASTIC Prefers to write records but will read as many records and buffer them as it takes to make things roll. When it has two input streams, it is assumed that the secondary input is fed back from (a derivative of) the primary output stream. In this case, ELASTIC buffers records until the primary input stream is at EOF and the buffer is empty. FANOUT Support STOP {ANYEOF | ALLEOF | } Processing stops when the specified number of output streams are at end-of-file. ALLEOF is the default, making it stop when all streams are severed. ANYEOF is equivalent to 1. xGREP ANYCASE forced lowercase when argument contained lowercase letters. HELPX Fixed for 3179; less flicker. Search improved. Does not fail on XI. JUXTAPOSE Uses two input streams. Whenever a record arrives on the secondary input stream, this record is prefixed with the previous record read from the primary input stream and written to the primary output stream. NOT Rolled ito the base module. Same semantics; better checking. PREDSELect Predicate select. This will speed up the CASEI/ZONE filters considerably, but can also be used in general. CASEI find is done this way: 'callpipe (end ? name PIPELINE)', '|*:', '|fo: fanout stop anyeof', '|p: predselect', '|*..0:', /* Selected records */ '?fo: ', '|xlate', '|fx: find ABC', '|p:', '|*..1', /* Rejected records */ '?fx:', '|p:' A casual observer may find that the result is the same if you delete the last two lines; however, the timing is different. With all stages the do not delay the record and all three input streams connected, this subroutine pipeline does not delay the record. (Even though it buffers it!) REXXM Run a REXX filter in a merged TSO/E environment on MVS. REXXR Run a REXX filter in a re-entrant environment on MVS. REXX is the default; currently it resolves to REXXR. Both entry points resolve to REXX on CMS. RUNPIPE Add TRACE option. This forces trace of all stages in the pipeline set; the trace cannot be disabled on individual stages. Message 32 (showing the address and length) is issued before message 39; the program processing the output from RUNPIPE can use this message to obtain the complete record or command as long as the record has not been delayed; the buffer should not be expected to remain valid after the record is consumed. STATE(W) Add FORMAT option for default behaviour; NODETails to copy input records to the primary output when the file exists. QUIET to suppress return code 28. STEM Also support FROM when writing a stem. STRxxxxx Variants of filters taking a string argument. These filters require a single delimited string. Thus, they can be used with hex and bit strings. STRASMFIND STRASMNFIND STRFIND STRFRLABEL STRFROMLABEL STRLITeral STRNFIND STRTOLABEL STRWHILELABEL UNIQUE PAIRWISE compares a pair of records; if they are equal (within the columns specified) the pair is written to the secondary output; if they are not equal they are written to the primary output. Any unpaired input record is written to the primary output. The first record in a pair is ipso facto delayed; the second one is not. UNTAB Expand '05'x tabs according to tabstops equivalent to the XEDIT TABS setting. Specify a list of positive intergers (any order) for the tabstops or a single negative number. A negative number specifies a tab stop every n positions starting with 1. The default is a tabstop for each three positions (untab -3). (In PIPSYSF.) VMC Restrict command length to 132 (SMART 1.5.1 enforces this). -------- Shipped to VMTOOLS 6 Sep 1992 19:58:43 ------------------------ PIPELINE MODULE Modification 1.0106 sublevel 258 ( 102 in hex) -------- Shipped to VMTOOLS 6 Sep 1992 19:37:00 ------------------------ PIPELINE MODULE Modification 1.0106 sublevel 256 ( 100 in hex) PIPSYSF MODULE Edition .3337 ABREAST Joins input lines to have columns of records. is optional; it defaults to the number required to populate all columns for one page. APLENCODE Processes lines to select the APL/TEXT character set for those characters that should map this way (as done by CP). The argument is a number that should be 1 for 3278 mapping, 2 for 3277 mapping. If the secondary input is connected, the table is read from there; if not, a built-in default is used. HELPX HELP replacement for experimentation. Does not use XEDIT. This is the help used on MVS. STEM Add FROM after variable name when reading a stemmed array. TIMESTAMP Support MVS. The format of the date is changed to 19yymmdd; the time is stored with hundreths of a second resolution. (Except for CMS5 where the last two digits are stored as zeros.) When first in the pipeline it behaves as if it has an infinite supply of input records; thus it writes the time the record was created. -------- Shipped to VMTOOLS 2 Sep 1992 16:04:28 ------------------------ PIPELINE MODULE Modification 1.0106 sublevel 251 ( FB in hex) RUNPIPE switched incorrectly between pipelines when the controlled pipeline went into wait. This could happen with FULLSCR in a 370-mode virtual machine. -------- Shipped to VMTOOLS 26 Aug 1992 15:51:31 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 249 ( F9 in hex) -------- Shipped to VMTOOLS 26 Aug 1992 15:50:57 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 248 ( F8 in hex) There was a severe bug in the fix to >. -------- Shipped to VMTOOLS 24 Aug 1992 21:15:38 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 246 ( F6 in hex) PIPSYSF MODULE Edition .3336 COMBINE Combines data from a run of records into a single output record. The output record is as long as the longest record in the input run. Usable for images. COMBINE [ | *] {FIRST | LAST | X | N | O} Number of additional records. Default is 1 to process two records. FIRST Retain the first occurrence of a column. LAST Retain the last occurrence of a column. X Exclusive or N And O Or Columns that occur only in one record are copied to the end of the output record. DISKfast Program check when a record (except for the first) is longer > than 64K and the file is V-format. STARSYS Like STARMSG except that it uses the two-way protocol to obtain data from system services. This means that the message is not deleted by CP until the record has been consumed. Thus, if the stage processing the (say) accounting data fails, you have not lost the record that causes the failure. STARSYS is intenede for accounting and EREP data; there is still no satisfactory way to process monitor data. But we'll fix that some day. -------- Shipped to VMTOOLS 22 Aug 1992 12:29:28 ----------------------- PIPSYSF MODULE Edition .3335 xGREP Random errors possible when reading input from stream or file and the NFA for a line begins one or two slots before the end of the work area into which the NFA is constructed. This happens at states 'E3'x, '1C7'x, and so on. There is a state for each character in the input plus an overhead of 4 states per line. The error was observed with 36 9-character input lines. -------- Shipped to VMTOOLS 12 Aug 1992 12:28:33 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 243 ( F3 in hex) BRWCTL Control stage used by BROWSE. Usage is "unspecified" for now. MENUCTL Process a HELPMENU file and display. The arguments are the title of the first line of the display. The file should have two blank lines to indicate the end of a heading. SQL Fix problem with literal insert|sql execute. 3277BFRA Convert 16-bit halfwrod to 12-bit 3277 buffer address (six bits per byte). The argument is the column number of the first byte of the halfword to convert. Halfwords that do not have four leading zero bits are left unchanged. 3277ENC Writes the 64-character encoding string used for the 3277 6-bit device code. -------- Shipped to VMTOOLS 5 Aug 1992 18:02:13 ------------------------ PIPELINE MODULE Modification 1.0106 sublevel 232 ( E8 in hex) BROWSE Full-screen browser. BRW is the synonym. PF1 gives a rudimentary list of PF settings. Moved to main pipeline module. BUILDSCR The APL/TEXT translate table is loaded from the secondary input strea, if defined. The record should be 256 bytes. The secondary input stream is severed after the first record is read. An additional argument specifies (when 0) that the target screen does not support extended highlighting &c; this generates a datastream that is compatible with a 3277. COUNT MINline and MAXline to determine shortest and longest record. These counters are stored as number 4 and 5 when all five counts are requested. When there is no input, MINLINE is stored as the largest possible integer. DELAY Protection exception possible when the output from DELAY is severed to terminate the stage. Rather complex; I am unable to make a simple test case. A dangling pointer. LOCATE and NLOCATE to support a target string that is longer than 16M. FULLSCR Erroneously issues a WSF 3270DS to fool CONSOLE also when device does not support WSF. FULLSCRS Decode the information provided by FULLSCRQ. Used by BROWSE. FULLSCRQ Write diagnose 24 (16 bytes) and diagnose 8c responses. This works with a dialled-in screen and on MVS. REXX Toleration of an abutted ( has been pulled; at least it fails consistently until it is fixed to work consistently. Or CMS is fixed. SCREENSIZE now reports the alternate size for 3179s SQL Do not write debugging trace files. -------- Shipped to VMTOOLS 15 Jul 1992 16:22:42 ----------------------- PIPSYSF MODULE Edition .33339 BROWSE Renamed from BROWSER and also fixed not to use old stuff. TIMESTAMP New filter in PIPSYSF to put a timestamp on records as they fly by. The argument specifies the number of characters in the timestamp; it can be 1 through 16 inclusive; 8 is the default. The number specifies how many characters to take from the right-hand side of the first 16 bytes returned by diagnose C. (The first eight bytes are the data; the last eight bytes the local time. Slashes, colons and all.) -------- Shipped to VMTOOLS 7 Jul 1992 16:37:40 ------------------------ PIPELINE MODULE Modification 1.0106 sublevel 204 ( CC in hex) PIPSYSF MODULE Edition .33338 Rather embarrassing oversight caused the previous one not to work in a 370-mode virtual machine. PATTERN Support the DATATYPE bif. Including the C and D types. -------- Shipped to VMTOOLS 6 Jul 1992 17:55:39 ------------------------ PIPELINE MODULE Modification 1.0106 sublevel 200 ( C8 in hex) PIPSYSF MODULE Edition .33337 >>>> NOTE: A future change to the scanner will support DBCS SI/SO sequences. Be sure to use X0e to specify a hex string that is not to be treated as a SI sequence by the scanner. strings: All delimited strings can now also be expressed as hex or binary constants. This is upwards compatible with the hex items for SPECs. These are valid delimited strings: (which we should probably start to call literals?) /abc/ as before xf1f2 /12/ hf1f2 /12/ hexf1f2 /12/ hex.f1f2 /12/ b10000001 /a/ bit10000001 /a/ bit.10000001 /a/ Some added syntactic sugar. ASATOMC Tolerate X'03' no-op records at the beginning of a file that is otherwise ASA carriage control. CHANGE Support hex and binary data as part of the change string. As a fall-out, the change strings can now be two delimited strings if the first delimiter only occurs twice. These are all valid change specifications: /abc/def/ As before /abc/ ?def? /abc/?def? /abc/ xc2 /abc/xc2 xf1 /0/ xf1 xf0 The blank is optional after the first string. JOINCONT New filter in PIPSYSF to join contiunation lines. Continuation lines can be marked by a trailing string in the first record or a leading string in the second record (or the absence of such a string when NOT is specified): JOINCONT [NOT] [TRAILING|LEADING] [] The continuation string is deleted when NOT is omitted; the second string is inserted between joined records in both cases. Note that this stage does not cater for the C continuation rules in general (only an odd number of trailing backslants indicates continuation). Nor is it suitable for REXX's rules. PATTERN * Variable names are now up to 250 characters. * Correct trouble with e.g., output((^1)). * Correct translate() with omitted argument 1 and 2. * Correct assert failure abutted assignments to same variable. * Support padding (up to three arguments) in the OUTPUT built-in function (but not the atom). * A colon is no longer an assignment operator in a string expression. * The VALUE() function is now treated as irreducible. (It could have returned an "old" value or the contents of a previous input record.) SPEC End-of-file on READ now treats the condition as if it has read a null record. UNPACKX Unterses a tersed file; unpacks a packed file. Passes a file that is neither through unchanged. -------- Shipped to VMTOOLS 18 Jun 1992 21:40:24 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 190 ( BE in hex) PIPSYSF MODULE Edition .33336 DISKRANDOM The new option BLOCKed (after the file mode) specifies that all records in a range should be written as a single output record. The file must be fixed-format. DISKUPDATE Support blocked records for fixed-format files. Additional logical records can be appended to a record. DROP Do not give return code 8 when last stream severed. TAKE CASEI Escape the pipeline control characters properly. ZONE HELP Suppress spurious message when helplib not available. READER Support data chaining across SPLINKs (3800 character sets and APA files). REXX Support arguments with a parenthesis abutted to the program name. Note that this may not be a favour; the argument string seen by the REXX program is not what you would expect. I have inspected the parameter lists I pass to REXX; they are as correct as they can be. Seems that REXX scans incorrectly for the program name. (display the source string.) SQL Load the code in ARIRVSTC dynamically. The TEXT deck must be accessible when the driver is used. VAR The keyword TRACKING (at the end of the plist) specifies that VAR at the beginning of the pipeline should read the variable until it receives a non-zero return code writing it to the pipeline. As a not-first stage, it sets the variable for each input record; it leaves an existing value unchanged if there is no input. -------- Shipped to VMTOOLS 3 Jun 1992 15:15:06 ------------------------ PIPELINE MODULE Modification 1.0106 sublevel 181 ( B5 in hex) refer to PIPELINE NEWS on IBMVM FULLSCR Asynchronously fixed. HELP Support for XEDIT options when displaying help in an XEDIT session set up by the HELP stage. The string is maintained in the permanent global variable PIPELINE_HELP_XEDIT_OPTIONS in the UNNAMED repository. The options are translated to uppercase before being passed to XEDIT (this precludes a lowercase file name for the profile). There are two ways to set this string: 1. A ( on the invocation of HELP sets the default string to the text following the bracket. 2. After the options are scanned for (, if the rexx filter XITHLP03 is present, it is invoked, connected to the primary output of the HELP stage (no arguments). It can inspect and set the default if it so desires. A "good" default is probably: NOPROFILE NOMSG Note that there is no default for this string; thus the user's profile is invoked by default. -------- Shipped to VMTOOLS 29 May 1992 18:58:47 ----------------------- PIPSYSF MODULE Edition .33335 BROWSER (With synonym BRW) contains the browser part from PIPDSCR. This is particularly handy on MVS. Somewhat hardwired PF settings ;-) Hit PF1 to see what they are. HLASM Interface to the High-Level Assembler. Primary input is the source file; primary output is the object file; secondary output (if defined) is the listing file; tertiary output (if defined) receives the ADATA file--be sure to specify the ADATA option as well. NOPUNCH OBJECT LIST should be defaulted or specified. The REXX programs in PIPGDSCR LOADLIB are now in PIPSYSF: PA2 Drop into INTM on a PA2 interrupt. UNPACKX Inspect first record of file; call UNPACK or UNTERSE if file is in any of these formats. SCRCTL The guts of the browser. 3270LOAD Load a PS. SCREENSIZE Determine screen size in a portable manner. RPQRY Process a query reply. RPQRYSF Generate a query reply structured field. -------- Shipped to VMTOOLS 28 May 1992 11:57:44 ----------------------- PIPSYSF MODULE Edition .33334 ESCAPE Do not append spurious escaped character. (Real dumb bug.) FANINANY Should terminate as soon as its output becomes not connected. XLATE Add codepages 274 (Belgium) 275 (Brazil) 297 (France) and 871 (Iceland). These changes were shipped in the previous replacement: CMS Maintain a private HT setting for each invocation. The HT COMMAND flag is set off when the first command is issued and then saved/restored for each additional command. Command output is discarded if the HT flag is on, allowing for applications that do SET CMSTYPE to suppress spurious output. CONSOLE No longer inspects the HT flag. -------- Shipped to VMTOOLS 8 May 1992 19:00:49 ------------------------ PIPELINE MODULE Modification 1.0106 sublevel 167 ( A7 in hex) MVS filenames can be of these forms. Assume the prefix is JOHN: pdsdirect tso.load JOHN.TSO.LOAD < 'dpmvs.logon.proclib($tsjohn) (trailing quote optional trailing ) is also optional > ddname=xedit(profile) Replace member profile in the dataset allocated to XEDIT; abbreviate to DD= JOIN Support a third operand specifying the maximum output record length. Records longer than this length are copied without truncation. To flow a paragraph in stem p.: pipe stem p. | split | join * / / 72 | stem flowed. REXX Allow the specification of a file identifier for the program list when a REXX program is read from a stream, for instance: < source rexx | rexx (*: SourcE xxer $) | ... The result from parse source will be exactly what is written; the file mode is truncated after two characters and translated to uppercase; the file name and file type are not uppercased. REXXVARS Support the keyword PRODUCER before the number of environments STEM to go back. The search back starts in the environment defined VAR for the stage connected to the input of the stage that issues VARLOAD the CALLPIPE that defines the new pipeline(s). Everything has to be just right to use this keyword: * The pipeline must have been issued by CALLPIPE * The stage connected to the caller must be blocked in an output call. This is ensured by doing a peekto before calling the subroutine. The combination of REXX' ability to read a program from a stem, the not widely publisised BEGOUTPUT command, and the PRODUCER keyword allows the construction of a macro processor along the XEDIT model: The controlling REXX program handles a macro call (say to TEST) by adding a pipeline that captures the commands issued by the macro: 'addpipe ( name PIPELINE)', '| < test macro ', "| literal /**/ 'begoutput'", '| rexx *:' args , '| *.input.0:' It can now read the commands in a peekto/readto loop and process an extract-type command with |stem . producer 'peekto command' do while RC=0 parse var command verb operand rest select when verb=extract then 'callpipe stem' operand'.|stem' operand'. producer' end 'setrc' Return_code /* Set the return code */ 'readto' /* Now discard the line */ 'peekto command' end There is of course much more to XEDIT, but the point is that it is doable and will port to MVS. -------- Shipped to VMTOOLS 29 Apr 1992 13:38:58 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 162 ( A2 in hex) Scanner is corrected (again!) to fix problems with GREP in a 16M+ virtual machine. ABEND exit reports assert failures again. (They were reported as 0C1 for a while--not something you'd spot easily.) An assert failure could be triggered by a combination of CALLPIPE and ADDPIPE in two neighbouring stages. CMS/COMMAND Process lines that are longer than 256 characters correctly. CONSOLE DARK introduced problem with ASYNCHRONOUS on CMS5 (and earlier). DROP/TAKE LAST could get confused in their buffering. A different strategy is now used. -------- Shipped to VMTOOLS 16 Mar 1992 18:25:41 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 150 ( 96 in hex) FULLSCR When using CONSOLE, the option ASYNCHRONOUS makes it write data on the terminal as the records arrive, only reading the terminal in response to an attention interrupt. A read from the input is forced, however, when the screen drops into line mode. This allows for status displays that a user can interact with, as well as PASSTHRU-style things. SQL Regress the change to load the SQL bootstrap dynamically; it didn't pan out. -------- Shipped to VMTOOLS 13 Mar 1992 18:17:00 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 149 ( 95 in hex) PIPESTOP New stage that performs the same operation as PIPMOD STOP. Useful on MVS. Throw a line into it when you want the whole caboodle to crumble. Bug: IMMCMD Did not remove the immediate command if some other stage causes IMMCMD's commit to fail. (Most likely an error in a REXX stage.) FANINANY Trouble in recently introduced optimisation. -------- Shipped to VMTOOLS 1 Mar 1992 20:17:08 ------------------------ PIPELINE MODULE Modification (Version.Release/Mod) sublevel 146 ( 92 in hex) PIPSYSF MODULE Edition - Bugs: The change to the scanner for self-escaping stage separator and end characters broke the way the parameter list to grep to be built incorrectly. The scanner got fooled when the arguments to GREP include the end character or the stage separator. This causes an assert failure. Presumably no one has hit this (phew). PIPMOD STOP goes berserk if the pipeline set has short-through pipelines. APPEND uses one to pass the input to the output. BUILDSCR The output field is now protected, as it should always have been. PDSdirect Truncated directory records at 256. Some LOADLIBs have longer records. The contents of these are still a mystery. The first record is still truncated at 256 (since all that matters in it are the first 80 bytes). New MVS device drivers: < One word DSNAME allowed. It follows standard TSO > conventions: The user prefix (if any) is prefixed unless >> the DSNAME is enclosed in single quotes ('). I know this will hurt on REXX, but apparently that is the convention. A member name in parentheses can be appended. The dataset must exist and be cataloged. < DISP=(SHR,KEEP) > DISP=(OLD,KEEP) >> DISP=(MOD,KEEP) DELAY Up to 16 concurrent DELAY stages are possible. PDSDIRECT (like <) -------- Shipped to VMTOOLS 24 Jan 1992 18:30:34 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 138 ( 8A in hex) XLATE Support any number of "default tables"; the operations are combined. Particularly silly ones (eg XLATE UPPER LOWER) are allowed. The useful ones are things like FROM 37 E2A and A2E TO 37 (or whatever one's codepage is). -------- Shipped to VMTOOLS 24 Jan 1992 15:31:35 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 137 ( 89 in hex) CP When used with a number, the buffer may be too small and cause protection exceptions. (Bug in the new support.) -------- Shipped to VMTOOLS 24 Jan 1992 13:34:53 ----------------------- PIPPTFF MODULE 22 Jan 1992 18:19:58 -------- Shipped to VMTOOLS 23 Jan 1992 11:48:36 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 133 ( 85 in hex) Scanner Allow leading end-character after global options. Allow leading separator when there are no global options. Separators and end-characters are now "self-escaping"; To split at stage separators: ...| split || |... streamstate output sets incorrect return code when following stage is waiting for LOCATE (which is what most built-ins do). Suspend New pipeline command. The return code is the count of other stages on the dispatch list at the time the stage was suspended. All these stages are run before the stage resumes. CPASIS Dropped. CP Extend buffer dynamically for the QUERY command when no explicit buffer size is used. This should fix it for most cases where huge data is returned. Query does not have side effects (at least I know of none) so it is safe to reissue it. IEBCOPY Substitute message 69 correctly. ISPF Pad records to the size of the buffer so that short records do not load data from previous records into variables (or random data). MDISKBLK Support record numbers on read. Support write blocks. MDISKBLK [NUMBER] [READ] [] MDISKBLK WRITE READ is default. NUMBER prefixes a 10-byte field "like everyone else". When writing, the input record must have the block number in column 1-10. The length of the record must be ten plus the disk block size. REXXVARS Can now be used with ADDPIPE. The REXX environment is the one STEM in effect at the initial PIPE command (since this is the only VAR one guaranteed to be there). This had to be fixed because VARLOAD a combination of ADDPIPE and CALLPIPE could provoke an ABEND. SPEC RECNO/NUMBER has two new suboptions: SPEC NUMBER [FROM ] [BY ] The default remains 1 for each number. The numbers can be negative or zero (which makes little sense in case of the BY number). Negative numbers have a leading hyphen. BUT the hyphen is not included in the field (10 bytes) when the number has ten digits (which it can have). Seems to be no easy way to fix this. -------- Shipped to VMTOOLS 13 Dec 1991 19:29:37 ----------------------- PIPSYSF MODULE Edition .333338 PIPPTFF MODULE 13 Dec 1991 18:20:29 BLOCK New data formats supported: DEBLOCK VS Variable spanned format. CRLF C-style blocking with '0d25'x between records; should be good for binaries up/downloaded from PCs. STRING specifies a string that is inserted between records. CRLF is equivalent to "STRING /"'0d25'x"/| SF Strucutred fields; halfword length field in front with a length that includes the length field. ADMSF Like SF, but the length field is never spanned. The block is padded with x'00' if a field ends with one byte to spare. CONSOLE Support DARK option on read to read without echo. DEBLOCK GDForders: Deblock the GDF order format. To split a GDF file into its orsers: < x admgdf|drop 1|spec 21-*|deblock admsf|deblock gdf|... DUPlicate Argument can be -1 which produces no output. HASM Do not filedef to TAPE; ESA 1.1 knows they're not there. And it doesn't understand that the AUXPROC doesn't cause I/O. HELP Support more ways of specifying a message. HOLE Support any number of streams. INSTORE Operand PGMLIST to write a program list. (Use by REXX.) REXX Provide the mode of the disk where the file originated, if known. Use the real mode if CMS provides one. Support reading the program on an input stream. "REXX *:" reads the program from the primary stream; specify a stream identifier to read from other streams, for instance: "REXX *.1:". New command: BEGOUTput to write all commands to the output until one that matches the argument (first 8 characters): 'begoutput' /* Null string terminates */ 'this is the first line' 'this is the last line' '' /* Terinate burst */ SELECT Renamed to WASELECT. In case anyone uses it. We're clearing the decks. SPECS Support keyword STRIP between the input field and conversion routine. This overcomes trouble with the placement options. TERSE Terse file like TERSE (PACK. Arguments are like for PACK; record format and lrecl. Same behaviour for the secondary output stream. UNTERSE Unterse files done with TERSE (PACK and TERSE (SPACK. Be sure to specify Fixed on the > stage that writes the file. -------- Shipped to VMTOOLS 12 Sep 1991 16:59:41 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 99 ( 63 in hex) BUILDSCR Correct the default for APL/TEXT present (the default should be 0). CMS Allocate storage for buffer for intercepted output with BAL to COMMAND storage management rather than SVC. HELP Use COMMAND CMS to issue PIPE commands from Xedit. REXX Correct it to pick up a file on a particular minidisk if specified as the argument. -------- Shipped to VMTOOLS 16 Aug 1991 14:01:40 ----------------------- PIPSYSF MODULE Edition .333336 XEDITxxx Never made it into an entry point table before. -------- Shipped to VMTOOLS 14 Aug 1991 17:27:11 ----------------------- PIPSYSF MODULE Edition .333335 COPY Just about the simplest thing to write and I couldn't get it right! -------- Shipped to VMTOOLS 11 Aug 1991 18:06:06 ----------------------- PIPSYSF MODULE Edition .333334 New programs in PIPSYSF filter package: COPY Copy records with a one-record elastic in the pipeline. Can be used where a record must be deleayed one slot. ESCAPE Process records inserting escape characters. NOT Documented; has been there for ages. XEDITDEL Delete lines read with previous XEDIT stage. XEDITINP Insert lines after lines read with previous XEDIT stage. XEDITREP Replace lines read with previous XEDIT stage. XI Insert lines in the file after the current line. -------- Shipped to VMTOOLS 10 Aug 1991 15:42:27 ----------------------- PIPELINE MODULE Modification 1.0106 sublevel 92 ( 5C in hex) This is the level shipping to customers in 1.0106. FULLSCR Suppress message about RC 32 when the screen is in linemode when CP rejects the WSF that is used to fool CONSOLE.