Overview
The names ORVYL and WYLBUR are often used interchangeably, but: * ORVYL is a timesharing monitor that supports a file system, command language, program execution and debugging, and provides supervisor services. The first version runs only on a 360/67, but later versions run on aUse
ORVYL and WYLBUR were used at the Stanford Linear Accelerator Center (SLAC), the European Organization for Nuclear Research (CERN), the U.S. National Institutes of Health (NIH), and many other sites. Retired from most sites in the late 1990s owing to concerns aboutAdvantages and disadvantages
ORVYL and WYLBUR first became available in 1967–68, before TSS/360, TSO, or any other official time-sharing solution from IBM. This was roughly the same time that third-party time-sharing systems such as MTS became available and the under the radar development effort ofData Management
Wylbur had a special edit format for Wylbur data sets, which are compressed and have a line number and revision flag for each line. In addition Wylbur supports standard FB and VB datasets. A Wylbur user normally specifies a default volume, which may be the special word CATLG. requesting a search of the catalogue for an existing dataset and requesting that a new dataset be cataloged. Wylbur has the ability to convert line numbers between edit and IBM data sets, either as scaled integers or with an explicit decimal point.Editing
Wylbur provides a line editor that works with temporary data sets, similar to buffers in other editors. At any point in time one of the temporary data sets is designated as default. Wylbur maintains a current line pointer for each temporary data set. The user may specify an explicit working data set on a command; if he omits it, then the default temporary data set is used as the working data set. The unit of operation is a set of lines (''associative range'') and individual lines are identified with a line number in the range 0.0 to 99999.999; leading zeros in the integer part and trailing zeros in the fractional part may be omitted. The user can specify a line number in any of the following ways # Absolute line number: ddddd.ddd # FIRST: first line in the working data set # CURRENT: the current line for the working data set # LAST: last line in the working data set # END: a target for copies, following the last line in the working data set # relative: line+ordinal or line -ordinal. # macro variable containing a line Wylbur libraries have a nonstandard format, however it allows the user to export to native OS files with integer sequence numbers and to import native OS files with integer sequence and rescale the line number by a factor of 1000. A range can be specified as a combination of # An explicit range, e.g., # A pattern, e.g., # A pattern with a column range, e.g., # An ordinal, e.g., # An ordinal relative to a match, e.g., # A sequence of lines following a match, e.g., # A Boolean operation, e.g., # A specification in parentheses prefixed by SET, e.g., A pattern is similar to aEnhanced versions
Various organizations developed enhanced versions of Wylbur. These included *SuperWylbur
SuperWylbur has several enhancements over the original Wylbur. The most important are #Supporting 3270, 3767 and NTO terminals via VTAM; as with other proprietary Wylbur versions, SuperWylbur does not use MILTEN for VTAM terminals. #An enhanced macro facility. #Supporting user-written full-screen panelsSuperWylbur macro Facility
The macro processor adds commands, constants, functions and expressions to Wylbur. Even when the command syntax does not include parameters defined to be expressions, the user can use the forms ''expression'' and ''expression'' to force evaluation. If the expression is a function with no argument or a variable then the parentheses may be omitted, e.g., instead of . A doubled % requests that the valued be quoted.SuperWylbur constants
SuperWylbur has two types of constants: * Numeric constants ** 'sign'''digits'' 'sign'''exponent''.html" ;"title="'sign'''exponent''">'sign'''exponent''** ''hexdigits'' * string constants ** ''characters'' ** ''characters''SuperWylbur operators
SuperWylbur operators whose names contain only special characters need not be separated by spaces. Operators whose names contain a period and letters must be separated by spaces. SuperWylbur has the following types of operators:= SuperWylbur arithmetic operators
= * Plus * Minus * Times * Divide * Integer divide * synonym for * Modulus * Exponential= SuperWylbur relational operators
= * () Less than * () Less than or equal * () Equals * () Greater or equal * () Greater * () Not less than * () Not less than or equal * () Not equal * () Not greater than or equal * () Not greater than= SuperWylbur logical operators
= * () And * () Or * () NotSuperWylbur macro functions
The name of a macro function begins with a period. If there are arguments, a colon separates them from the name. A semicolon separates successive arguments. SuperWylbur provides the following types of macro functions:=arithmetic functions
= * * * * * * * * * * * * * * * * * * * * * * * * * * * *=accounting functions
= * * * * * * * * * * *=date and time conversion
= ''s'' parameters default to current date or time * * * * * * * * * * *=environmental queries
= Most of these return values from commands: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *=full screen functions
= * * * * * * *=JES functions
= * *=macro functions
= * * * * * * * * * * * * * * *=string functions
= * * * * * * * * * * * * * * * * * * * * * *=working file functions
= ''s'' arguments default to current default working data set * * * * * * * * * * * * * * *=Complete list of macro functions
= ; ''n'' :Absolute value ; :Account number from logon id ; ''x'' :Arc cosine ''x'' ; :1 if beep on next terminal write ; :Arguments passed to macro ; ''x'' :Arc sine ''x'' ; ''x'' :Arc tangent ''x'' ; :Value of ; used for recovery from previous session ; : option: or ; ''s'' :Value of option ''s'' ; :Value from ; ''s'' 'i'' :Convert byte ''i'' of ''s'' to integer ; :Arguments passed to a user defined command defined with ; :Value from : or ; ''n'' :Truncate up ; ''i'' :Convert ''i'' to a single EBCDIC character ; :Current session charge in dollars and cents ; :Macro commands with no terminal I/O ; :Macro commands with no terminal I/O ; :Value from ; maximum macro commend without terminal I/O ; :Maximum allowed in ; :Value from ; maximum macro commend without terminal I/O ; ''s'i1'' 'i2'':Substring of ''s'' from column ''i1'' to column ''i2'' ; :1 if ; :Connect tinme in seconds to 2 decimal places ; :Continuation character ; ''x'' :Cosine ''x'' ; ''x'' :Hyperbolic cosine ''x'' ; ''x'' :Cotangent ''x'' ; :CPU id from SMF ; :CPU time in seconds to 2 decimal places ; 's'':Current line number of working data set ''s''; -1 if it does not exist, -2 if it is empty ; :Cursor position at last interrupt in form row+col/1000; -1 if not 3270 ; :Variable name for field containing cursor at last interrupt ; :Dash character used by ('62'X) ; 's'':Convert Julian date ''s'' (yy.ddd or yyyy.ddd) to mm/dd/yy ; 's'':Convert Julian date ''s'' (yy.ddd or yyyy.ddd) to mm/dd/yyyy ; 's'':Day of week ''s'' (mm/dd/yy or mm/dd/yyyy) falls on ; 's'':Days since 01/01/1900 to ''s'' ; ''x'' :Convert ''x'' radians to degrees ; ''s1''[''s2'' :1 if data set ''s1'' exists on volume ''s2'' (may be ) ; :Value from : or ; ''s'' :Converts ''s'' to a fully qualified data set name ; : ; :1 if in a full screen edit environment ; :Line number at top of edit frame, -1 if not 3270, -2 if no full screen edit, -3 empty ; 's'':Next integer after last line number in working data set ''s'' ; :Key causing last interrupt: , , , -, - ; ''x'' :Error function ; ''x'' :Error function ; ''x'' :^''x'' ; :1 if sessiona supports 3270 extended data stream ; ''s1'i'' 's2'':Append as many copies of ''s2'' (default " ") as necessary to ''s1'' to get length ''i'' ; :Lines fetched by command ; 's'' :First line number of working data set ''s''; -1 if it does not exist, -2 if it is empty ; ''i'' :Truncate down ; ''n'' :Fractional part of n ; :Size of 3270 full screen area ; 's'':Convert mm/dd/yy or mm/dd/yyyy to month day, yyyy ; ''x'' :Gamma(''x'') ; :Name of help data set ; :Volume serial number of help data set or ; ''i1'' 'i2'':Convert ''i1'' to hexadecimal, zero padded to length ''i2'' ; ''s'' :Convert hexadecimal ''s'' to string ; ''s1'' 's2'':First column at which ''s2'' occurs in ''s1''; 0 if no match ; ''s'' :1 if variable ''s'' initialized ; ''i'' :Contents of current line of channel ''i''; advance current line pointer ; 's'':Convert ''s'' from mm/dd/yy or mm/dd/yyyy to Julian date yy.ddd ; 's'':Convert ''s'' from mm/dd/yy or mm/dd/yyyy to Julian date yyyy.ddd ; 's'':Last line number of working data set ''s''; -1 if it does not exist, -2 if it is empty ; :Job number of last job submitted with the command ; :Line number of line excuting when attention exit was taken at the current macro level; -1 if cleared or no exit taken ; :Value from ; ''n'' ''s''''i'' :Length of line ''i'' lines after (before if negative) line ''n'' of working data set ''s'' ; :Line number of line excuting when error exit was taken at the current macro level; -1 if cleared or no exit taken ; ''x'' :Ln(Gamma(''x'')) ; ''n'' ''s''''i'' :Line ''i'' lines after (before if negative) line ''n'' of working data set ''s'' ; ''n'' ''s''''i'' :Number ''i'' lines after (before if negative) line ''n'' of working data set ''s'' ; :Line number decimal places (3) ; ''x'' :Ln ''x'' ; :Logon id used for current session ; ''x'' :Log10 ''x'' ; ''s'' :Convert ''s'' to lower case ; :Name of macro currently executing ; :Data set name of mail data set ; :Volume serial number of mail data set or ; :Maximum number of non-default temporaries allowed in session ; :Bytes accessed during session ; :Bytes*seconds to 2 decimal places ; :Working storage in use ; :Storage*seconds to 2 decimal places ; :Line number of currently executing macro line ; 'i'':1 if is in effect at macro level ''i'' (default current) ; ''i'' :Current line pointer for channel ''i'' ; :1 if is in effect ; ''s'' :String representation of the value of expression ''s'' ; :Number of non-default temporaries in use by session ; ''n'' _[-'i1''[''i2''.html" ;"title=".html" ;"title=" [-"> [-'i1''[''i2''">.html" ;"title=" [-"> [-'i1''[''i2'' :Same as but pad with zero instead of space ; :Number of SuperWylbur pages in use by session ; :Pages*seconds ; :Number of paging operations in current session ; :π (Pi) ; ''s1's2'' :First match of pattern ''s2'' in ''s1''; column + fraction(length/1000); 0 if no match ; :VTAM node name or ''cuu'' ; :Value from ; ''s'' :1 if user has privilege ''s'' ; :Project name ; :ProfIle member when not in recovery ; :Prefix for public data sets () ; :Volume serial number of public data sets or ; ''s1'' 's2'':Quote ''s1'' using framing character ''s2'' ; ''x'' :Convert ''x'' degrees to radians ; :Data set name of recovery data set after ; :Volume on which to create recovery data sets or ; ''s'' :Reverse the order of string ''s'' ; :Number of commands issued during session ; ''i'' :Lower case Roman numerals for ''i'' ; :Value from ; ''n'' 'i'':Round ''n'' to ''i'' decimal places ; :Size of 3270 reserve screen area ; :The user updated a panel field since the last write ; :Screen size as rows.columns 3 digits after decimal point) or -1 if not 3270 ; ''x'' :Sine ''x'' ; ''x'' :Hyperbolic sine ''x'' ; 's'':Number of lines in working data set ''s''; -1 if it does not exist ; ''x'' :Square root of ''x'' ; :Size of 3270 standard screen area ; ''s'' :Convert first 127 characters in EBCIDIC string ''s'' to hexadecimal ; ''n'' :Value of expression with no exponential notation ; ''n'i1'' :Value of expression with length ''i1'' ; ''n'i1'i2'' :Value of expression with length ''i1'' and ''i2'' decimal places ; ''n'-i1'' :Value of expression with maximum length ''i1'' ; ''n'-i1'i2'' :Value of expression with maximum length ''i1'' and ''i2'' decimal places ; ''s'' :Number of characters in ''s'' ; ''s'i1'' 'i2'':Substring of ''s'' from column ''i1'' for ''i2'' columns ; :Number of users logged on to this SuperWylbur task ; :System data set prefix ; :Public system macro data set name ; :Public system macro volume serial number or ; :Task name of current SuperWylbur instance ; :Tab settings, comma separated ; :Value from (): or ; ''x'' :Tangent ''x'' ; ''x'' :Hyperbolic tangent ''x'' ; :Unique name for new temporary ; :Number of available non-default temporaries for session ; 's'':1 if working file ''s'' has been updated since last ; :Terminal name or value of ; :Number of terminal I/O operations in current session ; : or ; :Current default working data set ; :12-hour time in form ''hh'mm'ss'' ''x'' ; :11 digit microseconds since midnight ; :0 if , 1 if , -1 if no privilege ; ''i'' 's'':Value of i'th timeout interval for ''s'' ( or ) ; :Number of seconds since midnight to 2 decimal places ; :24-hour time ; ''s1's2''s3 :Translate ''s1'' using input table ''s2'' and output table ''s3'' ; ''s1's2''[''s3''] :Remove ''s2'' from the ends of ''s1'' according to ''s3'': L = left, R = right (default), B = both ; ''n'' 'i'':Truncate ''n'' to ''i'' decimal places ; :1 if 3270 ; ''s'' :Convert ''s'' to upper case ; :User portion of logon id ; :Number of panel screen variables that the user updated since the last write; -1 if not 3270 ; ''s1'' 's2'':First position in ''s1'' not present in ''s2''; 0 if all characters in ''s1'' are in ''s2'' ; : SuperWylbur level in form version.release - PTF ; :Volume set for the session, or null ; :Value of ; :Line number of attention exit for current macro level; -1 if no attention exit set ; :Line number of error exit for current macro level; -1 if no error exit setSuperWylbur macro pseudofunctions
Pseudofunctions are like functions, except that they appear on the left hand side of an assignment, e.g., . ; ''v'i1'' 'i2'':Replace columns''i1'' through ''i2'' of ''v'' ; :Set panel variable on which to place cursor ; ''i'' :Associate a working data set with channel ''i'' ; ''n'' ''s''''i'' :Replace or insert line ''n'' in working data set ''s'' if ''i'' is omitted or zeroSuperWylbur macro statements
* ''command'' 'command'' (native command) * ''what'' ''temp-opts'' ''process-opts'' ''arg'' ''var-name'' * * * * * * * * * * * * * * * * * ''variable'' ''expression'' * ''variable'' ''expression-1'' ''expression-2'' ''expression-3''* ''pattern'' ''expression'' ''command'' * * * 'expression''* * * * * * * * * * * * * * * ''interval'' * ''b'' * ''expression'' 'expression''See also
* Time-sharing system evolutionNotes
References
External links
*