fbpx
Wikipedia

ORVYL and WYLBUR

ORVYL is a time-sharing monitor developed by Stanford University for IBM System/360 and System/370 computers in 1967–68.[1] ORVYL was one of the first time-sharing systems to be made available for IBM computers. Wylbur is a text editor and word processor program designed to work either without ORVYL, or in conjunction with ORVYL.[2][3]

ORVYL and WYLBUR
DeveloperStanford University
Written in360/370 Assembly language
Working stateDiscontinued
Source modelOriginally Open source; the later proprietary versions had licensed source
Initial release1967, 1968
Available inEnglish
PlatformsIBM S/360, S/370, and successors
LicenseOriginally public domain; the later proprietary versions had distinct licenses
Official websiteweb.stanford.edu/dept/its/support/wylorv/

Overview edit

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.[1] The first version runs only on a 360/67, but later versions run on a System/370.
  • WYLBUR is a text editor, word processor,[a] job submission and retrieval, and e-mail program designed to work in conjunction with ORVYL or with IBM's OS/360, SVS, and MVS operating systems.[2]
  • MILTEN is terminal control software used by both ORVYL and WYLBUR for start/stop terminals.[1]

WYLBUR is not a full standalone operating system in the mold of Dartmouth Time Sharing System (DTSS) or Unix. Instead it runs on top of an IBM batch operating system (OS/360, SVS, MVS). It takes the form of an editor with a Remote Job Entry system and thus has much the same relationship to the IBM operating systems as Emacs does to Unix. For these reasons WYLBUR is often thought of as a text editor rather than a time-sharing system. However, whereas Unix does not need Emacs to provide text editing services, IBM's operating systems originally needed WYLBUR. Later innovations such as IBM's Administrative Terminal System (ATS), Conversational Remote Batch Entry (CRBE), Conversational Remote Job Entry (CRJE) and Time Sharing Option (TSO) made WYLBUR less relevant for IBM users and gradually replaced it.

This article will use the full upper case spelling for commands and keywords. All references to characters and string assume an EBCDIC code page.

Use edit

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 about Y2K issues, they remained in use at NIH until December 2009.[4] ORVYL and WYLBUR are still available as open source from Stanford.[5] There are also proprietary versions such as SuperWYlbur.

ORVYL and WYLBUR were much admired as shown by this excerpt from a 2004 article titled "Computing at CERN: the mainframe era":

[In 1976 the IBM S/370-168] also brought with it the MVS (Multiple Virtual Storage) operating system, with its pedantic Job Control Language, and it provided the opportunity for CERN to introduce WYLBUR, the well-loved, cleverly designed and friendly time-sharing system developed at SLAC, together with its beautifully handwritten and illustrated manual by John Ehrman. WYLBUR was a masterpiece of design, achieving miracles with little power (at the time) shared amongst many simultaneous users. It won friends with its accommodating character and began the exit of punch-card machinery as computer terminals were introduced across the lab.[6]

Advantages and disadvantages edit

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 of CP-67 at IBM's own Cambridge Scientific Center took place. WYLBUR had the additional advantage that it could be used in conjunction with IBM's mainstream operating system, OS/360.

WYLBUR is a single-address-space system, unlike TSO. This conserved memory in the days when memory was precious. So even when TSO was available, organizations seeking to minimize memory use would often keep some or even a majority of their users on WYLBUR rather than letting them use the TSO interactive environment.

WYLBUR provides compressed Partitioned Data Sets (PDSs, aka libraries) to save disk space. In MVS, source code is typically stored as a sequence of card images (80 character lines). If a line contained only one or just a few characters, 80 characters were still used to store that line. Even when data, e.g., source code, are stored as variable blocked (VB), space could be wasted on strings of embedded blanks. WYLBUR implements stream-oriented storage of text in PDSs, (and sequential data sets) so that a one character line might only take 16 characters (line length, offset, chunk length, character) rather than 80 to store. WYLBUR, or an external program run via JCL, was used to convert files to and from the WYLBUR EDIT format.

Although TSO allows a user to do more than a locked-down WYLBUR system did, it is possible to write WYLBUR Exec scripts that execute batch jobs to perform functions that ordinarily would have required a TSO account, filling a batch job skeleton out with parameters, submitting the batch job, retrieving the output and displaying it on the screen.

WYLBUR has some security advantages over TSO, and some disadvantages. Advantages include:

  • Being able to write rules to restrict user access to datasets other than those owned by them and stored under their prefix. This is analogous to a user's home directory on UNIX, and looks something like WYL.AV99.HCO, where AV99 is roughly analogous to the "group" and HCO the "user" within the group.
  • Being fairer about resource use. WYLBUR doesn't implement commands such as TSO's alloc which can intentionally or unintentionally prevent others' access to data files for an extended period of time or use tremendous amounts of memory or CPU time. In this way, it minimizes the impact of any single user on all other users.
  • Commands to set certain status parameters or "spy" on the commands being executed by other users were restricted to administrative users and could not be executed by regular users.

Disadvantages related to security included:

  • WYLBUR is a single-address-space system. That means that if a user can figure out how to access raw bytes in the address space, they can potentially access information they do not own. For example, there once existed a program written by two college students in the WYLBUR Exec scripting language which could dig the password of the most recently logged on user out of WYLBUR's memory.
  • Because the WYLBUR process runs under the system account assigned to WYLBUR, one is completely dependent on its enforcement of dataset access protections according to the rules set up in WYLBUR. Enforcement of the access rules could be completely disabled by an administrative user, for system maintenance purposes, who might not remember to re-enable them.
  • WYLBUR implements disk quotas, with an interesting twist: any system user could give away all or part of their quota to other users. This functionality could be combined with typical course-related student accounts that went away at the end of every semester, and computer-savvy student staff who had non-expiring accounts with low disk quotas, in a manner not always anticipated by university staff.
  • In systems running the ACF2 security package, a user with accounts in both TSO and WYLBUR that are tied to the same account name could reset the contents of their WYLBUR account's security record interactively from within TSO. This could be used to turn a regular WYLBUR user into an administrative WYLBUR user, increase its disk quota, etc.
  • At least through the 1960s, the WYLBUR security rules were not enforced for batch jobs running on the same system. So, utilities such as IEHLIST and IEBGENER could be used to discover, read, and modify files belonging to other WYLBUR users unless you password protected those files, which was operationally awkward.

Data Management edit

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 edit

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

  1. Absolute line number: ddddd.ddd
  2. FIRST: first line in the working data set
  3. CURRENT: the current line for the working data set
  4. LAST: last line in the working data set
  5. END: a target for copies, following the last line in the working data set
  6. relative: line+ordinal or line -ordinal.
  7. 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

  1. An explicit range, e.g., 5.3-2/7.4+3
  2. A pattern, e.g., 'X' DIGITS*3
  3. A pattern with a column range, e.g., 'BAL' 10/15
  4. An ordinal, e.g., 3RD 'BAL' 10/15
  5. An ordinal relative to a match, e.g., 3RD AFTER 'BAL' 10/15
  6. A sequence of lines following a match, e.g., EVERY 3RD AFTER 'BAL' 10/15
  7. A Boolean operation, e.g., 'PAGE' INTERSECTION COMPLEMENT 'NUMBER'
  8. A specification in parentheses prefixed by SET, e.g., 'PAGE' INTERSECTION SET (COMPLEMENT 'NUMBER')

A pattern is similar to a regular expression, but the syntax is closer to that of SNOBOL than to that of Unix or Perl, there is no backtracking and only the NIH Wylbur has capture of subpatterns. A pattern may be:

  • 'string'
  • "string"
  • pattern pattern
  • (pattern)
  • patern*digits
  • pattern*digits/digits
  • ABOVE 'string'
  • pattern AND pattern
  • ANY
  • BACKSPACE
  • BELOW 'string'
  • BLANK
  • BLANKS
  • BOL
  • BOS
  • BULLET
  • DASH
  • DIGIT
  • DIGITS
  • ECB
    Equal, comma, blank
  • ECBS
    Equals, commas, blanks
  • EMPTY
  • EOL
  • EOS
  • HEX [#]hexdigits
  • LBRACKET
  • LETTER
  • LOWER
  • NOT pattern
  • pattern OR pattern
  • PARAGRAPH
  • PUNCTUATION
  • RBRACKET
  • SECTION
  • SPACE
  • SPACES
  • SOME 'string'
  • pattern THRU pattern
  • UNPRINTABLE
  • UPLOW 'string'
  • UPPER

Sample commands

CHANGE 73/80 TO X10+10 IN EVERY 3RD LINE OF 'ABC' 1/3 in 1.5-2/3.7+2 COPY 'BAL' 10/15 TO EMD CHANGE 73/80 TO '' IN EVERY 3RD LINE START 2 OF 'BAL' 10/15 CHANGE '(' DIGITS*3 ')' TO SUBSTRING 2/4 

The specification of base+increment means that the replacement text on the first line is base and is incremented on subsequent lines, so that X10+10 replaces the matched text on the first line with X10, on the second line with X20 and on the third line with X30. The specification of SUBSTRING 2/4 means columns 2-4 of the matched string; note that this is less flexible than captures.

Enhanced versions edit

Various organizations developed enhanced versions of Wylbur. These included

  • National Institutes of Health[7][8][9][10]
  • Online Business Systems which was acquired by ACS (Affiliated Computer Services Inc).
  • Optimum Systems Inc., sold to Electronic Data Systems and later spun off as SuperWylbur® Systems, Inc.[11][12][13][14][15]
  • RAND Corporation:
    • WYLBUR Command Facilities 1975
      • This manual describes two related facilities that extend WYLBUR in the direction of a programming language that supports structured text entry and text manipulation applications.
        1. The first facility is an extension to WYLBUR's command vocabulary that gives WYLBUR many of the capabilities associated with traditional programming languages, The extension was written by Paul Andersen.
        2. The second facility is a batch preprocessor that permits the WYLBUR programmer to develop WYLBUR command programs in a language similar to PL/I. The preprocessor was developed by David J. Smith.
    • WYLBUR Learner's Guide
    • WYLBUR Reference Manual

SuperWylbur edit

SuperWylbur has several enhancements over the original Wylbur. The most important are

  1. Supporting 3270, 3767 and NTO terminals via VTAM; as with other proprietary Wylbur versions, SuperWylbur does not use MILTEN for VTAM terminals.
  2. An enhanced macro facility.
  3. Supporting user-written full-screen panels

SuperWylbur macro Facility edit

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., %.TIME instead of %(.TIME). A doubled % requests that the valued be quoted.

SuperWylbur constants edit

SuperWylbur has two types of constants:

  • Numeric constants
    • [sign]digits[E[sign]exponent]
    • #hexdigits
  • string constants
    • 'characters'
    • "characters"

SuperWylbur operators edit

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 edit
  • + Plus
  • - Minus
  • * Times
  • / Divide
  • // Integer divide
  • .DIV synonym for //
  • .MOD Modulus
  • ** Exponential
SuperWylbur relational operators edit
  • < (.LT) Less than
  • <= (.LE) Less than or equal
  • = (.EQ) Equals
  • >= (.GE) Greater or equal
  • > (GT) Greater
  • ¬< (.NLT) Not less than
  • ¬<= (.NLE) Not less than or equal
  • ¬= (.NEQ) Not equal
  • ¬>= (.NGE) Not greater than or equal
  • ¬> (.NGT) Not greater than
SuperWylbur logical operators edit
  • & (.AND) And
  • | (.OR) Or
  • ¬ (.NOT) Not

SuperWylbur macro functions edit

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 edit
  • .ABS
  • .ACOS
  • .ASIN
  • .ATAN
  • .CEILING
  • .COS
  • .COSH
  • .COTAN
  • .DEG
  • .E
  • .ERF
  • .ERFC
  • .EXP
  • .FLOOR
  • .FRACTION
  • .GAMMA
  • .LGAMMA
  • .LOG
  • .LOG10
  • .PI
  • .RAD
  • .ROUND
  • .SIN
  • .SINH
  • .SQRT
  • .TAN
  • .TANH
  • .TRUNCATE
accounting functions edit
  • .CHARGE
  • .CONNTIME
  • .CPUTIME
  • .MEMACT
  • .MEMCPU
  • .MEMORY
  • .MEMTIME
  • .PAGES
  • .PAGESECS
  • .PAGING
  • .TERMIO
date and time conversion edit

s parameters default to current date or time

  • .DATE
  • .DATE4
  • .DAYS
  • .DAYS
  • .FULLDATE
  • .JDATE
  • .JDATE4
  • .TIME
  • .TIME100
  • .TIME24
  • .TIMEMIC
environmental queries edit

Most of these return values from SET commands:

  • .ACCOUNT
  • .ALARM
  • .AUTOLOG
  • .BACK
  • .BATCH
  • .BIN
  • .CASE
  • .CONFIRM
  • .CONT
  • .CPU
  • .DSFORMAT
  • .EDIT
  • .EXTDS
  • .FSASIZE
  • .LENGTH
  • .LNDP
  • .LOGONID
  • .MAILDSN
  • .MAILVOL
  • .NOTIFY
  • .PORT
  • .PREFIX
  • .PRIV
  • .PROJECT
  • .PROMEM
  • .PUBPREFIX
  • .PUBVOL
  • .RECDSN
  • .RECVOL
  • .ROOM
  • .RSASIZE
  • .SCRSIZE
  • .SSASIZE
  • .SWCOUNT
  • .SWSYSPRE
  • .SYSMDSN
  • .SYSMVOL
  • .SYSNAME
  • .T3270
  • .TABS
  • .TALK
  • .TERMINAL
  • .TERSE
  • .TIMEOUT
  • .USER
  • .VERSION
  • .VOLUME
  • .WIDTH
full screen functions edit
  • .CURSORPOSN
  • .CURSORVAR
  • .EDIT
  • .EDITLINE
  • .ENTRYKEY
  • .SCRNUPDT
  • .VARUPDATE
JES functions edit
  • .FETCHLIN
  • .LASTJOB
macro functions edit
  • .ARG
  • .CARG
  • .CMDCOUNT
  • .CMDLIMIT
  • .CMDMAX
  • .DSEXIST
  • .DSNAME
  • .INITIAL
  • .LASTJOB
  • .LATTN
  • .LERR
  • .MRETURN
  • .NATIVE
  • .XLATTN
  • .XLERR
string functions edit
  • .BYTE
  • .CHAR
  • .COLUMNS
  • .DASH
  • .EXTEND
  • .FINDEX
  • .HEX
  • .HEXSTR
  • .INDEX
  • .LOWER
  • .PAD
  • .QUOTE
  • .REVERSE
  • .ROMAN
  • .STRHEX
  • .STRING
  • .STRLEN
  • .SUBSTRING
  • .TRANSLATE
  • .TRIM
  • .UPPER
  • .VERIFY
working file functions edit

s arguments default to current default working data set

  • .CURRENT
  • .END
  • .FIRST
  • .LAST
  • .LENGTH
  • .LINE
  • .LINENO
  • .MACRO
  • .MAXTEMPS
  • .NUMTEMPS
  • .SIZE
  • .TEMPORARY
  • .TEMPSLEFT
  • .TEMPUPD
  • .TEXT
Complete list of macro functions edit
.ABS:n
Absolute value
.ACCOUNT
Account number from logon id
.ACOS:x
Arc cosine x
.ALARM
1 if beep on next terminal write
.ARG
Arguments passed to macro
.ASIN:x
Arc sine x
.ATAN:x
Arc tangent x
.AUTOLOG
Value of SET AUTOLOG; used for recovery from previous session
.BACK
SET option: BACK or NOBACK
.BATCH:s
Value of SET BATCH option s
.BIN
Value from SET ROOM
.BYTE:(s[;i])
Convert byte i of s to integer
.CARG
Arguments passed to a user defined command defined with SET COMMAND
.CASE
Value from SET CASE: UPPER or UPLOW
.CEILING:n
Truncate up
.CHAR:i
Convert i to a single EBCDIC character
.CHARGE
Current session charge in dollars and cents
.CMCOUNT
Macro commands with no terminal I/O
.CMDCOUNT
Macro commands with no terminal I/O
.CMDLIMIT
Value from SET CMDLIMIT; maximum macro commend without terminal I/O
.CMDMAX
Maximum allowed in SET CMDLIMIT
.CMLIMIT
Value from SET CMDLIMIT; maximum macro commend without terminal I/O
.COLUMNS:s;i1[;i2]
Substring of s from column i1 to column i2
.CONFIRM
1 if SET CONFIRM
.CONNTIME
Connect tinme in seconds to 2 decimal places
.CONT
Continuation character
.COS:x
Cosine x
.COSH:x
Hyperbolic cosine x
.COTAN:x
Cotangent x
.CPU
CPU id from SMF
.CPUTIME
CPU time in seconds to 2 decimal places
.CURRENT[:s]
Current line number of working data set s; -1 if it does not exist, -2 if it is empty
.CURPOSN
Cursor position at last interrupt in form row+col/1000; -1 if not 3270
.CURSORVAR
Variable name for field containing cursor at last interrupt
.DASH
Dash character used by HYPHENATE ('62'X)
.DATE[:s]
Convert Julian date s (yy.ddd or yyyy.ddd) to mm/dd/yy
.DATE4[:s]
Convert Julian date s (yy.ddd or yyyy.ddd) to mm/dd/yyyy
.DAY[:s]
Day of week s (mm/dd/yy or mm/dd/yyyy) falls on
.DAYS[:s]
Days since 01/01/1900 to s
.DEG:x
Convert x radians to degrees
.DSEXIST:s1[;s2)
1 if data set s1 exists on volume s2 (may be CATLG)
.DSFORMAT
Value from SET DSFORMAT: TERSE or VERBOSE
.DSNAME:s
Converts s to a fully qualified data set name
.E
e
.EDIT
1 if in a full screen edit environment
.EDITLINE
Line number at top of edit frame, -1 if not 3270, -2 if no full screen edit, -3 empty
.END[:s]
Next integer after last line number in working data set s
.ENTRYKEY
Key causing last interrupt: CLEAR, CURSEL, ENTER, PA1-PA3, PFK1-PRK24
.ERF:x
Error function
.ERFC:x
Error function
.EXP:x
e^x
.EXTDS
1 if sessiona supports 3270 extended data stream
.EXTEND:(s1;i[;s2])
Append as many copies of s2 (default " ") as necessary to s1 to get length i
.FETCHLIN
Lines fetched by FETCH command
.FIRST[:s]
First line number of working data set s; -1 if it does not exist, -2 if it is empty
.FLOOR:i
Truncate down
.FRACTION:n
Fractional part of n
.FSASIZE
Size of 3270 full screen area
.FULLDATE[:s]
Convert mm/dd/yy or mm/dd/yyyy to month day, yyyy
.GAMMA:x
Gamma(x)
.HELPDSN
Name of help data set
.HELPVOL
Volume serial number of help data set or CATLG
.HEX:(i1[;i2])
Convert i1 to hexadecimal, zero padded to length i2
.HEXSTR:s
Convert hexadecimal s to string
.INDEX:s1[;s2])
First column at which s2 occurs in s1; 0 if no match
.INITIAL:s
1 if variable s initialized
.INPUT:i
Contents of current line of channel i; advance current line pointer
.JDATE[:s]
Convert s from mm/dd/yy or mm/dd/yyyy to Julian date yy.ddd
.JDATE4[:s]
Convert s from mm/dd/yy or mm/dd/yyyy to Julian date yyyy.ddd
.LAST[:s]
Last line number of working data set s; -1 if it does not exist, -2 if it is empty
.LASTJOB
Job number of last job submitted with the RUN command
.LATTN
Line number of line executing when attention exit was taken at the current macro level; -1 if cleared or no exit taken
.LENGTH
Value from SET LENGTH
.LENGTH:n[;[s][[;i]])
Length of line i lines after (before if negative) line n of working data set s
.LERR
Line number of line executing when error exit was taken at the current macro level; -1 if cleared or no exit taken
.LGAMMA:x
Ln(Gamma(x))
.LINE:n[;[s][[;i]])
Line i lines after (before if negative) line n of working data set s
.LINENO:n[;[s][[;i]])
Number i lines after (before if negative) line n of working data set s
.LNDP
Line number decimal places (3)
.LOG:x
Ln x
.LOGONID
Logon id used for current session
.LOG10:x
Log10 x
.LOWER:s
Convert s to lower case
.MACRO
Name of macro currently executing
.MAILDSN
Data set name of mail data set
.MAILVOL
Volume serial number of mail data set or CATLG
.MAXTEMPS
Maximum number of non-default temporaries allowed in session
.MEMACT
Bytes accessed during session
.MEMCPU
Bytes*seconds to 2 decimal places
.MEMORY
Working storage in use
.MEMTIME
Storage*seconds to 2 decimal places
.MRETURN
Line number of currently executing macro line
.NATIVE[:i]
1 if CONTROL NATIVE is in effect at macro level i (default current)
.NEXT:i
Current line pointer for channel i
.NOTIFY
1 if SET NOTIFY is in effect
.NUMBER:s
String representation of the value of expression s
.NUMTEMPS
Number of non-default temporaries in use by session
.PAD:n [ ; [-]i1[[;i2]])
Same as .STRING but pad with zero instead of space
.PAGES
Number of SuperWylbur pages in use by session
.PAGESECS
Pages*seconds
.PAGING
Number of paging operations in current session
.PI
π (Pi)
.PINDEX:s1;s2)
First match of pattern s2 in s1; column + fraction(length/1000); 0 if no match
.PORT
VTAM node name or cuu
.PREFIX
Value from SET PREFIX
.PRIV:s
1 if user has privilege s
.PROJECT
Project name
.PROMEM
ProfIle member when not in recovery
.PUBPREFIX
Prefix for public data sets (&PUBLIC)
.PUBVOL
Volume serial number of public data sets or CATLG
.QUOTE:s1[;s2])
Quote s1 using framing character s2
.RAD:x
Convert x degrees to radians
.RECDSN
Data set name of recovery data set after LOGOFF INTACT
.RECVOL
Volume on which to create recovery data sets or CATLG
.REVERSE:s
Reverse the order of string s
.RJECMD
Number of JES commands issued during session
.ROMAN:i
Lower case Roman numerals for i
.ROOM
Value from SET ROOM
.ROUND:n[;i])
Round n to i decimal places
.RSASIZE
Size of 3270 reserve screen area
.SCRNUPDT
The user updated a panel field since the last write
.SCRSIZE
Screen size as rows.columns 3 digits after decimal point) or -1 if not 3270
.SIN:x
Sine x
.SINH:x
Hyperbolic sine x
.SIZE[:s]
Number of lines in working data set s; -1 if it does not exist
.SQRT:x
Square root of x
.SSASIZE
Size of 3270 standard screen area
.STRHEX:s
Convert first 127 characters in EBCIDIC string s to hexadecimal
.STRING:n
Value of expression with no exponential notation
.STRING:(n;i1)
Value of expression with length i1
.STRING:(n;i1;i2)
Value of expression with length i1 and i2 decimal places
.STRING:(n;-i1)
Value of expression with maximum length i1
.STRING:(n;-i1;i2)
Value of expression with maximum length i1 and i2 decimal places
.STRLEN:s
Number of characters in s
.SUBSTRING:(s;i1[;i2])
Substring of s from column i1 for i2 columns
.SWCOUNT
Number of users logged on to this SuperWylbur task
.SWSYSPRE
System data set prefix
.SYSMDSN
Public system macro data set name
.SYSMVOL
Public system macro volume serial number or CATLG
.SYSNAME
Task name of current SuperWylbur instance
.TABS
Tab settings, comma separated
.TALK
Value from SET TALK (SET BREAK): TALK or NOTALK
.TAN:x
Tangent x
.TANH:x
Hyperbolic tangent x
.TEMPORARY
Unique name for new temporary
.TEMPSLEFT
Number of available non-default temporaries for session
.TEMPUPD[:s]
1 if working file s has been updated since last SAVE
.TERMINAL
Terminal name or value of .PORT
.TERMIO
Number of terminal I/O operations in current session
.TERSE
TERSE or VERBOSE
.TEXT
Current default working data set
.TIME
12-hour time in form hh:mm:ss x.m.
.TIMEMIC
11 digit microseconds since midnight
.TIMEOUT
0 if SET NO TIMEOUT, 1 if SET TIMEOUT, -1 if no TIME privilege
.TIMEOUT:(i[;s])
Value of i'th timeout interval for s (USER or SYSTEM)
.TIME100
Number of seconds since midnight to 2 decimal places
.TIME24
24-hour time
.TRANSLATE:(s1;s2;s3)
Translate s1 using input table s2 and output table s3
.TRIM:(s1;s2[;s3])
Remove s2 from the ends of s1 according to s3: L = left, R = right (default), B = both
.TRUNCATE:(n[;i])
Truncate n to i decimal places
.T3270
1 if 3270
.UPPER:s
Convert s to upper case
.USER
User portion of logon id
.VARUPDATE
Number of panel screen variables that the user updated since the last write; -1 if not 3270
.VERIFY:(s1[;s2])
First position in s1 not present in s2; 0 if all characters in s1 are in s2
.VERSION
SuperWylbur level in form version.release - PTF
.VOLUME
Volume set for the session, CATLG or null
.WIDTH
Value of SET WIDTH
.XLATTN
Line number of attention exit for current macro level; -1 if no attention exit set
.XLERR
Line number of error exit for current macro level; -1 if no error exit set

SuperWylbur macro pseudofunctions edit

Pseudofunctions are like functions, except that they appear on the left hand side of an assignment, e.g., LET .foo:bar=baz.

.COLUMNS:(v;i1[;i2])
Replace columnsi1 through i2 of v
.CURSOR
Set panel variable on which to place cursor
.FILE:i
Associate a working data set with channel i
.LINE:(n[;[s][[;i]])
Replace or insert line n in working data set s if i is omitted or zero
Replace line i lines after (before if negative) line 'n' in working data set 's'
.NEXT:i
Set current line pointer for channel i
.OUTPUT:i
Add or replace current line of channel i, advance current line pointer
.SUBSTRING:(v;i1[;i2])
Replace column i1 of v for i2 columns
.UPDATE:i
Replace the last line read from channel i

SuperWylbur macro statements edit

  • ¬command[;command]* (native command)
  • CALL what temp-opts process-opts arg VALUE var-name
  • CLEAR LOCALS
  • CLEAR MACRO
  • CLEAR MACROS
  • CLEAR TRACE
  • COMMENT
  • CONTROL
  • DEMAND
  • DO
  • DO UNTIL
  • DO WHILE
  • END
  • EXECUTE
  • EXIT
  • GO
  • GO TO
  • IF
  • LET variable = expression
  • LOOP [USING variable] FROM expression-1 TO expression-2 [BY expression-3]
  • MATCH pattern expression command
  • OTHERWISE
  • PAUSE
  • SELECT [expression]
  • SET EXIT
  • SET LIMIT
  • SET TRACE
  • SCAN KEYWORD
  • SCAN POSITIONAL
  • SHOW GLOBALS
  • SHOW LIMIT
  • SHOW LOCALS
  • SHOW MACRO
  • SHOW MACROS
  • SHOW PANELS
  • SIGNAL
  • TYPE
  • TYPEI
  • WAIT interval
  • WAIT b
  • WHEN (expression [;expression]*)

See also edit

Notes edit

  1. ^ Using its own markup language

References edit

  1. ^ a b c ORVYL/370 Timesharing System Functional Description, Stanford University, 1978
  2. ^ a b WYLBUR Reference Manual, Stanford University, 1984
  3. ^ "WYLBUR, ORVYL (MILTEN and friends)". hercules-390.yahoogroups.narkive.com. Retrieved 2023-10-09.
  4. ^ "WYLBUR Will Be Retiring" May 6, 2009, at the Wayback Machine, Titan News, Center for Information Technology, National Institutes of Health (NIH), April 7, 2009
  5. ^ "ORVYL, WYLBUR, and MILTEN source and documentation". Available for free as Open Source from Stanford University under a license modeled after the "Mozilla 1.1 License" certified by the "Open Source Initiative (OSI)"
  6. ^ "Computing at CERN: the mainframe era", Chris Jones, CERN Courier, September 6, 2004
  7. ^ Wylbur Fundamentals. National Institutes of Health. November 1980.
  8. ^ Wylbur General Editing. National Institutes of Health. February 1984.
  9. ^ Wylbur Command Procedures. National Institutes of Health. December 1980.
  10. ^ Wylbur Document Formatting. National Institutes of Health. December 1980.
  11. ^ SuperWylbur® Command Guide. SuperWylbur® Systems, Inc. September 1996.
  12. ^ SuperWylbur® Document Preparation. SuperWylbur® Systems, Inc. September 1996.
  13. ^ SuperWylbur® Job Entry and Retrieval. SuperWylbur® Systems, Inc. September 1996.
  14. ^ SuperWylbur® Macro Programming and User Panels. SuperWylbur® Systems, Inc. September 1996.
  15. ^ SuperWylbur® Text Editing. SuperWylbur® Systems, Inc. September 1996.

External links edit

  • Roger Fajman; John Borgelt (May 1973). "WYLBUR: an interactive text editing and remote job entry system". Communications of the ACM. 16 (5): 314–322. doi:10.1145/362041.362234. ISSN 0001-0782. S2CID 6892186.
  • ORVYL and WYLBUR software download from Stanford University
  • WYLBUR Command Facilities, The Rand Computation Center R-1555/10, The Rand Corporation 1975

orvyl, wylbur, orvyl, time, sharing, monitor, developed, stanford, university, system, system, computers, 1967, orvyl, first, time, sharing, systems, made, available, computers, wylbur, text, editor, word, processor, program, designed, work, either, without, o. ORVYL is a time sharing monitor developed by Stanford University for IBM System 360 and System 370 computers in 1967 68 1 ORVYL was one of the first time sharing systems to be made available for IBM computers Wylbur is a text editor and word processor program designed to work either without ORVYL or in conjunction with ORVYL 2 3 ORVYL and WYLBURDeveloperStanford UniversityWritten in360 370 Assembly languageWorking stateDiscontinuedSource modelOriginally Open source the later proprietary versions had licensed sourceInitial release1967 1968Available inEnglishPlatformsIBM S 360 S 370 and successorsLicenseOriginally public domain the later proprietary versions had distinct licensesOfficial websiteweb wbr stanford wbr edu wbr dept wbr its wbr support wbr wylorv wbr Contents 1 Overview 2 Use 3 Advantages and disadvantages 4 Data Management 5 Editing 6 Enhanced versions 6 1 SuperWylbur 6 2 SuperWylbur macro Facility 6 2 1 SuperWylbur constants 6 2 2 SuperWylbur operators 6 2 2 1 SuperWylbur arithmetic operators 6 2 2 2 SuperWylbur relational operators 6 2 2 3 SuperWylbur logical operators 6 2 3 SuperWylbur macro functions 6 2 3 1 arithmetic functions 6 2 3 2 accounting functions 6 2 3 3 date and time conversion 6 2 3 4 environmental queries 6 2 3 5 full screen functions 6 2 3 6 JES functions 6 2 3 7 macro functions 6 2 3 8 string functions 6 2 3 9 working file functions 6 2 3 10 Complete list of macro functions 6 2 4 SuperWylbur macro pseudofunctions 6 2 5 SuperWylbur macro statements 7 See also 8 Notes 9 References 10 External linksOverview editThe 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 1 The first version runs only on a 360 67 but later versions run on a System 370 WYLBUR is a text editor word processor a job submission and retrieval and e mail program designed to work in conjunction with ORVYL or with IBM s OS 360 SVS and MVS operating systems 2 MILTEN is terminal control software used by both ORVYL and WYLBUR for start stop terminals 1 WYLBUR is not a full standalone operating system in the mold of Dartmouth Time Sharing System DTSS or Unix Instead it runs on top of an IBM batch operating system OS 360 SVS MVS It takes the form of an editor with a Remote Job Entry system and thus has much the same relationship to the IBM operating systems as Emacs does to Unix For these reasons WYLBUR is often thought of as a text editor rather than a time sharing system However whereas Unix does not need Emacs to provide text editing services IBM s operating systems originally needed WYLBUR Later innovations such as IBM s Administrative Terminal System ATS Conversational Remote Batch Entry CRBE Conversational Remote Job Entry CRJE and Time Sharing Option TSO made WYLBUR less relevant for IBM users and gradually replaced it This article will use the full upper case spelling for commands and keywords All references to characters and string assume an EBCDIC code page Use editORVYL 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 about Y2K issues they remained in use at NIH until December 2009 4 ORVYL and WYLBUR are still available as open source from Stanford 5 There are also proprietary versions such as SuperWYlbur ORVYL and WYLBUR were much admired as shown by this excerpt from a 2004 article titled Computing at CERN the mainframe era In 1976 the IBM S 370 168 also brought with it the MVS Multiple Virtual Storage operating system with its pedantic Job Control Language and it provided the opportunity for CERN to introduce WYLBUR the well loved cleverly designed and friendly time sharing system developed at SLAC together with its beautifully handwritten and illustrated manual by John Ehrman WYLBUR was a masterpiece of design achieving miracles with little power at the time shared amongst many simultaneous users It won friends with its accommodating character and began the exit of punch card machinery as computer terminals were introduced across the lab 6 Advantages and disadvantages editThis section does not cite any sources Please help improve this section by adding citations to reliable sources Unsourced material may be challenged and removed January 2016 Learn how and when to remove this template message 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 of CP 67 at IBM s own Cambridge Scientific Center took place WYLBUR had the additional advantage that it could be used in conjunction with IBM s mainstream operating system OS 360 WYLBUR is a single address space system unlike TSO This conserved memory in the days when memory was precious So even when TSO was available organizations seeking to minimize memory use would often keep some or even a majority of their users on WYLBUR rather than letting them use the TSO interactive environment WYLBUR provides compressed Partitioned Data Sets PDSs aka libraries to save disk space In MVS source code is typically stored as a sequence of card images 80 character lines If a line contained only one or just a few characters 80 characters were still used to store that line Even when data e g source code are stored as variable blocked VB space could be wasted on strings of embedded blanks WYLBUR implements stream oriented storage of text in PDSs and sequential data sets so that a one character line might only take 16 characters line length offset chunk length character rather than 80 to store WYLBUR or an external program run via JCL was used to convert files to and from the WYLBUR EDIT format Although TSO allows a user to do more than a locked down WYLBUR system did it is possible to write WYLBUR Exec scripts that execute batch jobs to perform functions that ordinarily would have required a TSO account filling a batch job skeleton out with parameters submitting the batch job retrieving the output and displaying it on the screen WYLBUR has some security advantages over TSO and some disadvantages Advantages include Being able to write rules to restrict user access to datasets other than those owned by them and stored under their prefix This is analogous to a user s home directory on UNIX and looks something like WYL AV99 HCO where AV99 is roughly analogous to the group and HCO the user within the group Being fairer about resource use WYLBUR doesn t implement commands such as TSO s alloc which can intentionally or unintentionally prevent others access to data files for an extended period of time or use tremendous amounts of memory or CPU time In this way it minimizes the impact of any single user on all other users Commands to set certain status parameters or spy on the commands being executed by other users were restricted to administrative users and could not be executed by regular users Disadvantages related to security included WYLBUR is a single address space system That means that if a user can figure out how to access raw bytes in the address space they can potentially access information they do not own For example there once existed a program written by two college students in the WYLBUR Exec scripting language which could dig the password of the most recently logged on user out of WYLBUR s memory Because the WYLBUR process runs under the system account assigned to WYLBUR one is completely dependent on its enforcement of dataset access protections according to the rules set up in WYLBUR Enforcement of the access rules could be completely disabled by an administrative user for system maintenance purposes who might not remember to re enable them WYLBUR implements disk quotas with an interesting twist any system user could give away all or part of their quota to other users This functionality could be combined with typical course related student accounts that went away at the end of every semester and computer savvy student staff who had non expiring accounts with low disk quotas in a manner not always anticipated by university staff In systems running the ACF2 security package a user with accounts in both TSO and WYLBUR that are tied to the same account name could reset the contents of their WYLBUR account s security record interactively from within TSO This could be used to turn a regular WYLBUR user into an administrative WYLBUR user increase its disk quota etc At least through the 1960s the WYLBUR security rules were not enforced for batch jobs running on the same system So utilities such as IEHLIST and IEBGENER could be used to discover read and modify files belonging to other WYLBUR users unless you password protected those files which was operationally awkward Data Management editWylbur 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 editWylbur 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 lineWylbur 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 span class mi 5 span span class p span span class mi 3 span span class o span span class mi 2 span span class o span span class mi 7 span span class p span span class mi 4 span span class o span span class mi 3 span A pattern e g span class s1 X span span class w span span class nv DIGITS span span class o span span class mi 3 span A pattern with a column range e g span class s1 BAL span span class w span span class mi 10 span span class o span span class mi 15 span An ordinal e g span class mi 3 span span class nv RD span span class w span span class s1 BAL span span class w span span class mi 10 span span class o span span class mi 15 span An ordinal relative to a match e g span class mi 3 span span class nv RD span span class w span span class kp AFTER span span class s1 BAL span span class w span span class mi 10 span span class o span span class mi 15 span A sequence of lines following a match e g span class nv EVERY span span class w span span class mi 3 span span class nv RD span span class w span span class kp AFTER span span class s1 BAL span span class w span span class mi 10 span span class o span span class mi 15 span A Boolean operation e g span class s1 PAGE span span class w span span class nv INTERSECTION span span class w span span class nv COMPLEMENT span span class w span span class s1 NUMBER span A specification in parentheses prefixed by SET e g span class s1 PAGE span span class w span span class nv INTERSECTION span span class w span span class kr SET span span class p span span class nv COMPLEMENT span span class w span span class s1 NUMBER span span class p span A pattern is similar to a regular expression but the syntax is closer to that of SNOBOL than to that of Unix or Perl there is no backtracking and only the NIH Wylbur has capture of subpatterns A pattern may be string string pattern pattern pattern patern digits pattern digits digits ABOVE string pattern AND pattern ANY BACKSPACE BELOW string BLANK BLANKS BOL BOS BULLET DASH DIGIT DIGITS ECBEqual comma blank ECBSEquals commas blanks EMPTY EOL EOS HEX hexdigits LBRACKET LETTER LOWER NOT pattern pattern OR pattern PARAGRAPH PUNCTUATION RBRACKET SECTION SPACE SPACES SOME string pattern THRU pattern UNPRINTABLE UPLOW string UPPER Sample commands CHANGE 73 80 TO X10 10 IN EVERY 3 RD LINE OF ABC 1 3 in 1 5 2 3 7 2 COPY BAL 10 15 TO EMD CHANGE 73 80 TO IN EVERY 3 RD LINE START 2 OF BAL 10 15 CHANGE DIGITS 3 TO SUBSTRING 2 4 The specification of base increment means that the replacement text on the first line is base and is incremented on subsequent lines so that X10 10 replaces the matched text on the first line with X10 on the second line with X20 and on the third line with X30 The specification of SUBSTRING 2 4 means columns 2 4 of the matched string note that this is less flexible than captures Enhanced versions editVarious organizations developed enhanced versions of Wylbur These included National Institutes of Health 7 8 9 10 Online Business Systems which was acquired by ACS Affiliated Computer Services Inc Optimum Systems Inc sold to Electronic Data Systems and later spun off as SuperWylbur Systems Inc 11 12 13 14 15 RAND Corporation WYLBUR Command Facilities 1975 This manual describes two related facilities that extend WYLBUR in the direction of a programming language that supports structured text entry and text manipulation applications The first facility is an extension to WYLBUR s command vocabulary that gives WYLBUR many of the capabilities associated with traditional programming languages The extension was written by Paul Andersen The second facility is a batch preprocessor that permits the WYLBUR programmer to develop WYLBUR command programs in a language similar to PL I The preprocessor was developed by David J Smith WYLBUR Learner s Guide WYLBUR Reference ManualSuperWylbur edit 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 edit 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 TIME instead of TIME A doubled requests that the valued be quoted SuperWylbur constants edit SuperWylbur has two types of constants Numeric constants sign digits E sign exponent hexdigits string constants characters characters SuperWylbur operators edit 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 edit Plus Minus Times Divide Integer divide DIV synonym for MOD Modulus Exponential SuperWylbur relational operators edit lt LT Less than lt LE Less than or equal EQ Equals gt GE Greater or equal gt GT Greater lt NLT Not less than lt NLE Not less than or equal NEQ Not equal gt NGE Not greater than or equal gt NGT Not greater than SuperWylbur logical operators edit amp AND And OR Or NOT NotSuperWylbur macro functions edit 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 edit ABS ACOS ASIN ATAN CEILING COS COSH COTAN DEG E ERF ERFC EXP FLOOR FRACTION GAMMA LGAMMA LOG LOG10 PI RAD ROUND SIN SINH SQRT TAN TANH TRUNCATE accounting functions edit CHARGE CONNTIME CPUTIME MEMACT MEMCPU MEMORY MEMTIME PAGES PAGESECS PAGING TERMIO date and time conversion edit s parameters default to current date or time DATE DATE4 DAYS DAYS FULLDATE JDATE JDATE4 TIME TIME100 TIME24 TIMEMIC environmental queries edit Most of these return values from SET commands ACCOUNT ALARM AUTOLOG BACK BATCH BIN CASE CONFIRM CONT CPU DSFORMAT EDIT EXTDS FSASIZE LENGTH LNDP LOGONID MAILDSN MAILVOL NOTIFY PORT PREFIX PRIV PROJECT PROMEM PUBPREFIX PUBVOL RECDSN RECVOL ROOM RSASIZE SCRSIZE SSASIZE SWCOUNT SWSYSPRE SYSMDSN SYSMVOL SYSNAME T3270 TABS TALK TERMINAL TERSE TIMEOUT USER VERSION VOLUME WIDTH full screen functions edit CURSORPOSN CURSORVAR EDIT EDITLINE ENTRYKEY SCRNUPDT VARUPDATE JES functions edit FETCHLIN LASTJOB macro functions edit ARG CARG CMDCOUNT CMDLIMIT CMDMAX DSEXIST DSNAME INITIAL LASTJOB LATTN LERR MRETURN NATIVE XLATTN XLERR string functions edit BYTE CHAR COLUMNS DASH EXTEND FINDEX HEX HEXSTR INDEX LOWER PAD QUOTE REVERSE ROMAN STRHEX STRING STRLEN SUBSTRING TRANSLATE TRIM UPPER VERIFY working file functions edit s arguments default to current default working data set CURRENT END FIRST LAST LENGTH LINE LINENO MACRO MAXTEMPS NUMTEMPS SIZE TEMPORARY TEMPSLEFT TEMPUPD TEXT Complete list of macro functions edit ABS n Absolute value ACCOUNT Account number from logon id ACOS x Arc cosine x ALARM 1 if beep on next terminal write ARG Arguments passed to macro ASIN x Arc sine x ATAN x Arc tangent x AUTOLOG Value of SET AUTOLOG used for recovery from previous session BACK SET option BACK or NOBACK BATCH s Value of SET BATCH option s BIN Value from SET ROOM BYTE s i Convert byte i of s to integer CARG Arguments passed to a user defined command defined with SET COMMAND CASE Value from SET CASE UPPER or UPLOW CEILING n Truncate up CHAR i Convert i to a single EBCDIC character CHARGE Current session charge in dollars and cents CMCOUNT Macro commands with no terminal I O CMDCOUNT Macro commands with no terminal I O CMDLIMIT Value from SET CMDLIMIT maximum macro commend without terminal I O CMDMAX Maximum allowed in SET CMDLIMIT CMLIMIT Value from SET CMDLIMIT maximum macro commend without terminal I O COLUMNS s i1 i2 Substring of s from column i1 to column i2 CONFIRM 1 if SET CONFIRM CONNTIME Connect tinme in seconds to 2 decimal places CONT Continuation character COS x Cosine x COSH x Hyperbolic cosine x COTAN x Cotangent x CPU CPU id from SMF CPUTIME CPU time in seconds to 2 decimal places CURRENT s Current line number of working data set s 1 if it does not exist 2 if it is empty CURPOSN Cursor position at last interrupt in form row col 1000 1 if not 3270 CURSORVAR Variable name for field containing cursor at last interrupt DASH Dash character used by HYPHENATE 62 X DATE s Convert Julian date s yy ddd or yyyy ddd to mm dd yy DATE4 s Convert Julian date s yy ddd or yyyy ddd to mm dd yyyy DAY s Day of week s mm dd yy or mm dd yyyy falls on DAYS s Days since 01 01 1900 to s DEG x Convert x radians to degrees DSEXIST s1 s2 1 if data set s1 exists on volume s2 may be CATLG DSFORMAT Value from SET DSFORMAT TERSE or VERBOSE DSNAME s Converts s to a fully qualified data set name E e EDIT 1 if in a full screen edit environment EDITLINE Line number at top of edit frame 1 if not 3270 2 if no full screen edit 3 empty END s Next integer after last line number in working data set s ENTRYKEY Key causing last interrupt CLEAR CURSEL ENTER PA1 PA3 PFK1 PRK24 ERF x Error function ERFC x Error function EXP x e x EXTDS 1 if sessiona supports 3270 extended data stream EXTEND s1 i s2 Append as many copies of s2 default as necessary to s1 to get length i FETCHLIN Lines fetched by FETCH command FIRST s First line number of working data set s 1 if it does not exist 2 if it is empty FLOOR i Truncate down FRACTION n Fractional part of n FSASIZE Size of 3270 full screen area FULLDATE s Convert mm dd yy or mm dd yyyy to month day yyyy GAMMA x Gamma x HELPDSN Name of help data set HELPVOL Volume serial number of help data set or CATLG HEX i1 i2 Convert i1 to hexadecimal zero padded to length i2 HEXSTR s Convert hexadecimal s to string INDEX s1 s2 First column at which s2 occurs in s1 0 if no match INITIAL s 1 if variable s initialized INPUT i Contents of current line of channel i advance current line pointer JDATE s Convert s from mm dd yy or mm dd yyyy to Julian date yy ddd JDATE4 s Convert s from mm dd yy or mm dd yyyy to Julian date yyyy ddd LAST s Last line number of working data set s 1 if it does not exist 2 if it is empty LASTJOB Job number of last job submitted with the RUN command LATTN Line number of line executing when attention exit was taken at the current macro level 1 if cleared or no exit taken LENGTH Value from SET LENGTH LENGTH n s i Length of line i lines after before if negative line n of working data set s LERR Line number of line executing when error exit was taken at the current macro level 1 if cleared or no exit taken LGAMMA x Ln Gamma x LINE n s i Line i lines after before if negative line n of working data set s LINENO n s i Number i lines after before if negative line n of working data set s LNDP Line number decimal places 3 LOG x Ln x LOGONID Logon id used for current session LOG10 x Log10 x LOWER s Convert s to lower case MACRO Name of macro currently executing MAILDSN Data set name of mail data set MAILVOL Volume serial number of mail data set or CATLG MAXTEMPS Maximum number of non default temporaries allowed in session MEMACT Bytes accessed during session MEMCPU Bytes seconds to 2 decimal places MEMORY Working storage in use MEMTIME Storage seconds to 2 decimal places MRETURN Line number of currently executing macro line NATIVE i 1 if CONTROL NATIVE is in effect at macro level i default current NEXT i Current line pointer for channel i NOTIFY 1 if SET NOTIFY is in effect NUMBER s String representation of the value of expression s NUMTEMPS Number of non default temporaries in use by session PAD n i1 i2 Same as STRING but pad with zero instead of space PAGES Number of SuperWylbur pages in use by session PAGESECS Pages seconds PAGING Number of paging operations in current session PI p Pi PINDEX s1 s2 First match of pattern s2 in s1 column fraction length 1000 0 if no match PORT VTAM node name or cuu PREFIX Value from SET PREFIX PRIV s 1 if user has privilege s PROJECT Project name PROMEM ProfIle member when not in recovery PUBPREFIX Prefix for public data sets amp PUBLIC PUBVOL Volume serial number of public data sets or CATLG QUOTE s1 s2 Quote s1 using framing character s2 RAD x Convert x degrees to radians RECDSN Data set name of recovery data set after LOGOFF INTACT RECVOL Volume on which to create recovery data sets or CATLG REVERSE s Reverse the order of string s RJECMD Number of JES commands issued during session ROMAN i Lower case Roman numerals for i ROOM Value from SET ROOM ROUND n i Round n to i decimal places RSASIZE Size of 3270 reserve screen area SCRNUPDT The user updated a panel field since the last write SCRSIZE Screen size as rows columns 3 digits after decimal point or 1 if not 3270 SIN x Sine x SINH x Hyperbolic sine x SIZE s Number of lines in working data set s 1 if it does not exist SQRT x Square root of x SSASIZE Size of 3270 standard screen area STRHEX s Convert first 127 characters in EBCIDIC string s to hexadecimal STRING n Value of expression with no exponential notation STRING n i1 Value of expression with length i1 STRING n i1 i2 Value of expression with length i1 and i2 decimal places STRING n i1 Value of expression with maximum length i1 STRING n i1 i2 Value of expression with maximum length i1 and i2 decimal places STRLEN s Number of characters in s SUBSTRING s i1 i2 Substring of s from column i1 for i2 columns SWCOUNT Number of users logged on to this SuperWylbur task SWSYSPRE System data set prefix SYSMDSN Public system macro data set name SYSMVOL Public system macro volume serial number or CATLG SYSNAME Task name of current SuperWylbur instance TABS Tab settings comma separated TALK Value from SET TALK SET BREAK TALK or NOTALK TAN x Tangent x TANH x Hyperbolic tangent x TEMPORARY Unique name for new temporary TEMPSLEFT Number of available non default temporaries for session TEMPUPD s 1 if working file s has been updated since last SAVE TERMINAL Terminal name or value of PORT TERMIO Number of terminal I O operations in current session TERSE TERSE or VERBOSE TEXT Current default working data set TIME 12 hour time in form hh mm ss x m TIMEMIC 11 digit microseconds since midnight TIMEOUT 0 if SET NO TIMEOUT 1 if SET TIMEOUT 1 if no TIME privilege TIMEOUT i s Value of i th timeout interval for s USER or SYSTEM TIME100 Number of seconds since midnight to 2 decimal places TIME24 24 hour time TRANSLATE s1 s2 s3 Translate s1 using input table s2 and output table s3 TRIM s1 s2 s3 Remove s2 from the ends of s1 according to s3 L left R right default B both TRUNCATE n i Truncate n to i decimal places T3270 1 if 3270 UPPER s Convert s to upper case USER User portion of logon id VARUPDATE Number of panel screen variables that the user updated since the last write 1 if not 3270 VERIFY s1 s2 First position in s1 not present in s2 0 if all characters in s1 are in s2 VERSION SuperWylbur level in form version release PTF VOLUME Volume set for the session CATLG or null WIDTH Value of SET WIDTH XLATTN Line number of attention exit for current macro level 1 if no attention exit set XLERR Line number of error exit for current macro level 1 if no error exit set SuperWylbur macro pseudofunctions edit Pseudofunctions are like functions except that they appear on the left hand side of an assignment e g LET foo bar baz COLUMNS v i1 i2 Replace columnsi1 through i2 of v CURSOR Set panel variable on which to place cursor FILE i Associate a working data set with channel i LINE n s i Replace or insert line n in working data set s if i is omitted or zeroReplace line i lines after before if negative line n in working data set s NEXT i Set current line pointer for channel i OUTPUT i Add or replace current line of channel i advance current line pointer SUBSTRING v i1 i2 Replace column i1 of v for i2 columns UPDATE i Replace the last line read from channel iSuperWylbur macro statements edit command command native command CALL what temp opts process opts arg VALUE var name CLEAR LOCALS CLEAR MACRO CLEAR MACROS CLEAR TRACE COMMENT CONTROL DEMAND DO DO UNTIL DO WHILE END EXECUTE EXIT GO GO TO IF LET variable expression LOOP USING variable FROM expression 1 TO expression 2 BY expression 3 MATCH pattern expression command OTHERWISE PAUSE SELECT expression SET EXIT SET LIMIT SET TRACE SCAN KEYWORD SCAN POSITIONAL SHOW GLOBALS SHOW LIMIT SHOW LOCALS SHOW MACRO SHOW MACROS SHOW PANELS SIGNAL TYPE TYPEI WAIT interval WAIT b WHEN expression expression See also editTime sharing system evolutionNotes edit Using its own markup languageReferences editThis article includes a list of general references but it lacks sufficient corresponding inline citations Please help to improve this article by introducing more precise citations August 2010 Learn how and when to remove this template message a b c ORVYL 370 Timesharing System Functional Description Stanford University 1978 a b WYLBUR Reference Manual Stanford University 1984 WYLBUR ORVYL MILTEN and friends hercules 390 yahoogroups narkive com Retrieved 2023 10 09 WYLBUR Will Be Retiring Archived May 6 2009 at the Wayback Machine Titan News Center for Information Technology National Institutes of Health NIH April 7 2009 ORVYL WYLBUR and MILTEN source and documentation Available for free as Open Source from Stanford University under a license modeled after the Mozilla 1 1 License certified by the Open Source Initiative OSI Computing at CERN the mainframe era Chris Jones CERN Courier September 6 2004 Wylbur Fundamentals National Institutes of Health November 1980 Wylbur General Editing National Institutes of Health February 1984 Wylbur Command Procedures National Institutes of Health December 1980 Wylbur Document Formatting National Institutes of Health December 1980 SuperWylbur Command Guide SuperWylbur Systems Inc September 1996 SuperWylbur Document Preparation SuperWylbur Systems Inc September 1996 SuperWylbur Job Entry and Retrieval SuperWylbur Systems Inc September 1996 SuperWylbur Macro Programming and User Panels SuperWylbur Systems Inc September 1996 SuperWylbur Text Editing SuperWylbur Systems Inc September 1996 External links editRoger Fajman John Borgelt May 1973 WYLBUR an interactive text editing and remote job entry system Communications of the ACM 16 5 314 322 doi 10 1145 362041 362234 ISSN 0001 0782 S2CID 6892186 ORVYL and WYLBUR software download from Stanford University Usenet notes on WYLBUR WYLBUR Command Facilities The Rand Computation Center R 1555 10 The Rand Corporation 1975 Retrieved from https en wikipedia org w index php title ORVYL and WYLBUR amp oldid 1216236385, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.