ORVYL
   HOME

TheInfoList



OR:

ORVYL is a
time-sharing In computing, time-sharing is the Concurrency (computer science), concurrent sharing of a computing resource among many tasks or users by giving each Process (computing), task or User (computing), user a small slice of CPU time, processing time. ...
monitor developed by
Stanford University Leland Stanford Junior University, commonly referred to as Stanford University, is a Private university, private research university in Stanford, California, United States. It was founded in 1885 by railroad magnate Leland Stanford (the eighth ...
for IBM System/360 and System/370 computers in 1967–68.''ORVYL/370 Timesharing System Functional Description''
Stanford University, 1978
ORVYL was one of the first
time-sharing In computing, time-sharing is the Concurrency (computer science), concurrent sharing of a computing resource among many tasks or users by giving each Process (computing), task or User (computing), user a small slice of CPU time, processing time. ...
systems to be made available for IBM computers. Wylbur is a text editor and
word processor A word processor (WP) is a device or computer program that provides for input, editing, formatting, and output of text, often with some additional features. Early word processors were stand-alone devices dedicated to the function, but current word ...
program designed to work either without ORVYL, or in conjunction with ORVYL.''WYLBUR Reference Manual'', Stanford University, 1984


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 a System/370. * WYLBUR is a text editor, word processor, 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. * MILTEN is terminal control software used by both ORVYL and WYLBUR for start/stop terminals. WYLBUR is not a full standalone operating system in the mold of
Dartmouth Time-Sharing System The Dartmouth Time-Sharing System (DTSS) is a discontinued operating system first developed at Dartmouth College between 1963 and 1964. It was the first successful large-scale time-sharing system to be implemented, and was also the system for wh ...
(DTSS) or
Unix Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
. 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 Emacs (), originally named EMACS (an acronym for "Editor Macros"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, s ...
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 Extended Binary Coded Decimal Interchange Code (EBCDIC; ) is an eight- bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems. It descended from the code used with punched cards and the corresponding si ...
code page.


Use

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. ORVYL and WYLBUR are still available as open source from Stanford. 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": : n 1976 the IBM S/370-168also 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."Computing at CERN: the mainframe era"
Chris Jones, ''CERN Courier'', September 6, 2004


Advantages 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 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 In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
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 In computing, a script is a relatively short and simple set of instructions that typically automation, automate an otherwise manual process. The act of writing a script is called scripting. A scripting language or script language is a programming ...
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

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
integer An integer is the number zero (0), a positive natural number (1, 2, 3, ...), or the negation of a positive natural number (−1, −2, −3, ...). The negations or additive inverses of the positive natural numbers are referred to as negative in ...
s 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 a
regular expression A regular expression (shortened as regex or regexp), sometimes referred to as rational expression, is a sequence of characters that specifies a match pattern in text. Usually such patterns are used by string-searching algorithms for "find" ...
, but the syntax is closer to that of SNOBOL than to that of
Unix Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
or
Perl Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed ...
, there is no backtracking and only the NIH Wylbur has capture of subpatterns. A pattern may be: 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

Various organizations developed enhanced versions of Wylbur. These included *
National Institutes of Health The National Institutes of Health (NIH) is the primary agency of the United States government responsible for biomedical and public health research. It was founded in 1887 and is part of the United States Department of Health and Human Service ...
* Online Business Systems which was acquired by ACS (Affiliated Computer Services Inc). * Optimum Systems Inc., sold to
Electronic Data Systems Electronic Data Systems (EDS) Corporation was an American multinational corporation, multinational information technology equipment and services company headquartered in Plano, Texas, which was founded in 1962 by Ross Perot. The company was a s ...
and later spun off as * 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 Manual''


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 panels


SuperWylbur 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''">'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 * () Not


SuperWylbur 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 In mathematics, the absolute value or modulus of a real number x, is the non-negative value without regard to its sign. Namely, , x, =x if x is a positive number, and , x, =-x if x is negative (in which case negating x makes -x positive), ...
; :Account number from logon id ; ''x'' :Arc
cosine In mathematics, sine and cosine are trigonometric functions of an angle. The sine and cosine of an acute angle are defined in the context of a right triangle: for the specified angle, its sine is the ratio of the length of the side opposite that ...
''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 In mathematics, the trigonometric functions (also called circular functions, angle functions or goniometric functions) are real functions which relate an angle of a right-angled triangle to ratios of two side lengths. They are widely used in a ...
''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''
radian The radian, denoted by the symbol rad, is the unit of angle in the International System of Units (SI) and is the standard unit of angular measure used in many areas of mathematics. It is defined such that one radian is the angle subtended at ...
s 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 Hexadecimal (also known as base-16 or simply hex) is a Numeral system#Positional systems in detail, positional numeral system that represents numbers using a radix (base) of sixteen. Unlike the decimal system representing numbers using ten symbo ...
, 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 executing 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 executing 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=" [-"> [-'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 set


SuperWylbur 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 zero
Replace line ''i'' lines after (before if negative) line 'n' in working data set 's' ; ''i'' :Set current line pointer for channel ''i'' ; ''i'' :Add or replace current line of channel ''i'', advance current line pointer ; ''v'i1'' 'i2'':Replace column ''i1'' of ''v'' for ''i2'' columns ; ''i'' :Replace the last line read from channel ''i''


SuperWylbur 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 evolution


Notes


References


External links

*
ORVYL and WYLBUR software download
from Stanford University

* WYLBUR Command Facilities, The Rand Computation Center R-1555/10, The Rand Corporation 1975 {{DEFAULTSORT:Orvyl And Wylbur Computer-related introductions in 1967 Time-sharing operating systems Discontinued operating systems IBM mainframe operating systems 1960s software Stanford University Text editors Word processors