Monitor de tiempo compartido para ordenadores IBM
Sistema operativo
ORVYL es un monitor de tiempo compartido desarrollado por la Universidad de Stanford para computadoras IBM System/360 y System/370 en 1967-1968. [1] ORVYL fue uno de los primeros sistemas de tiempo compartido que estuvo disponible para computadoras IBM. Wylbur es un editor y procesador de textos diseñado para funcionar sin ORVYL o junto con ORVYL. [2] [3]
Descripción general
Los nombres ORVYL y WYLBUR se utilizan a menudo indistintamente, pero:
- ORVYL es un monitor de tiempo compartido que admite un sistema de archivos, lenguaje de comandos, ejecución y depuración de programas y proporciona servicios de supervisión. [1] La primera versión se ejecuta solo en 360/67 , pero las versiones posteriores se ejecutan en System/370 .
- WYLBUR es un editor de texto, procesador de textos, [un] programa de envío y recuperación de trabajos y de correo electrónico diseñado para funcionar en conjunto con ORVYL o con los sistemas operativos OS/360 , SVS y MVS de IBM. [2]
- MILTEN es un software de control de terminales utilizado tanto por ORVYL como por WYLBUR para terminales de arranque/parada . [1]
WYLBUR no es un sistema operativo completamente independiente en el molde de Dartmouth Time Sharing System (DTSS) o Unix . En lugar de ello, se ejecuta sobre un sistema operativo por lotes de IBM (OS/360, SVS, MVS). Toma la forma de un editor con un sistema de entrada remota de trabajos y, por lo tanto, tiene la misma relación con los sistemas operativos de IBM que Emacs con Unix. Por estas razones, a menudo se piensa en WYLBUR como un editor de texto más que como un sistema de tiempo compartido. Sin embargo, mientras que Unix no necesita Emacs para proporcionar servicios de edición de texto, los sistemas operativos de IBM originalmente necesitaban WYLBUR. Innovaciones posteriores, como el sistema de terminal administrativo (ATS) de IBM, la entrada de lotes remota conversacional (CRBE), la entrada de trabajos remota conversacional (CRJE) y la opción de tiempo compartido (TSO), hicieron que WYLBUR fuera menos relevante para los usuarios de IBM y lo reemplazaron gradualmente.
Este artículo utilizará la ortografía completa en mayúsculas para comandos y palabras clave. Todas las referencias a caracteres y cadenas asumen una página de códigos EBCDIC .
Usar
ORVYL y WYLBUR se utilizaron en el Centro del Acelerador Lineal de Stanford (SLAC) , la Organización Europea para la Investigación Nuclear (CERN) , los Institutos Nacionales de Salud de EE. UU. (NIH) y muchos otros sitios. Retirados de la mayoría de los sitios a fines de la década de 1990 debido a preocupaciones sobre los problemas del año 2000 , permanecieron en uso en los NIH hasta diciembre de 2009. [4] ORVYL y WYLBUR todavía están disponibles como código abierto en Stanford. [5] También existen versiones propietarias como SuperWYlbur.
ORVYL y WYLBUR eran muy admirados, como lo muestra este extracto de un artículo de 2004 titulado "Computación en el CERN: la era del mainframe":
- [En 1976, el IBM S/370-168] también trajo consigo el sistema operativo MVS (Almacenamiento Virtual Múltiple), con su pedante Lenguaje de Control de Trabajo, y brindó al CERN la oportunidad de presentar WYLBUR, el querido e inteligentemente diseñado y amigable sistema de tiempo compartido desarrollado en SLAC, junto con su manual bellamente escrito a mano e ilustrado por John Ehrman. WYLBUR fue una obra maestra de diseño, logrando milagros con poca potencia (en ese momento) compartida entre muchos usuarios simultáneos. Se ganó amigos con su carácter complaciente y comenzó la salida de la maquinaria de tarjetas perforadas a medida que se introdujeron terminales de computadora en todo el laboratorio. [6]
Ventajas y desventajas
ORVYL y WYLBUR estuvieron disponibles por primera vez en 1967-68, antes de TSS/360 , TSO o cualquier otra solución oficial de tiempo compartido de IBM. Esto fue aproximadamente al mismo tiempo que los sistemas de tiempo compartido de terceros, como MTS , estuvieron disponibles y se llevó a cabo el esfuerzo de desarrollo oculto del CP-67 en el Centro Científico de Cambridge de IBM. WYLBUR tenía la ventaja adicional de que podía usarse junto con el sistema operativo principal de IBM, OS/360 .
WYLBUR es un sistema de espacio de dirección única, a diferencia de TSO . Esto conservaba la memoria en los días en que la memoria era preciosa. Entonces, incluso cuando TSO estaba disponible, las organizaciones que buscaban minimizar el uso de memoria a menudo mantenían a algunos o incluso a la mayoría de sus usuarios en WYLBUR en lugar de permitirles usar el entorno interactivo TSO.
WYLBUR proporciona conjuntos de datos particionados comprimidos (PDS, también conocidos como bibliotecas) para ahorrar espacio en disco. En MVS , el código fuente normalmente se almacena como una secuencia de imágenes de tarjetas (80 líneas de caracteres). Si una línea contenía solo uno o unos pocos caracteres, todavía se usaban 80 caracteres para almacenar esa línea. Incluso cuando los datos, por ejemplo el código fuente, se almacenan como variables bloqueadas (VB), se podría desperdiciar espacio en cadenas de espacios en blanco incrustados. WYLBUR implementa el almacenamiento de texto orientado a flujos en PDS (y conjuntos de datos secuenciales) de modo que una línea de un carácter solo pueda tomar 16 caracteres (longitud de línea, desplazamiento , longitud de fragmento, carácter) en lugar de 80 para almacenar. Se utilizó WYLBUR, o un programa externo ejecutado a través de JCL , para convertir archivos hacia y desde el formato WYLBUR EDIT.
Aunque TSO permite a un usuario hacer más de lo que hacía un sistema WYLBUR bloqueado, es posible escribir scripts WYLBUR Exec que ejecuten trabajos por lotes para realizar funciones que normalmente habrían requerido una cuenta TSO, completando un esqueleto de trabajo por lotes con parámetros, enviar el trabajo por lotes, recuperar el resultado y mostrarlo en la pantalla.
WYLBUR tiene algunas ventajas de seguridad sobre TSO y algunas desventajas. Las ventajas incluyen:
- Ser capaz de escribir reglas para restringir el acceso de los usuarios a conjuntos de datos que no sean de su propiedad y almacenados bajo su prefijo. Esto es análogo al directorio de inicio de un usuario en UNIX y se parece a WYL.AV99.HCO, donde AV99 es más o menos análogo al "grupo" y HCO al "usuario" dentro del grupo.
- Ser más justo en el uso de los recursos. WYLBUR no implementa comandos como alloc de TSO, que pueden impedir intencionalmente o no el acceso de otros a archivos de datos durante un período prolongado o utilizar enormes cantidades de memoria o tiempo de CPU. De esta manera, minimiza el impacto de un solo usuario sobre todos los demás usuarios.
- Los comandos para establecer ciertos parámetros de estado o "espiar" los comandos ejecutados por otros usuarios estaban restringidos a usuarios administrativos y no podían ser ejecutados por usuarios normales.
Las desventajas relacionadas con la seguridad incluyeron:
- WYLBUR es un sistema de espacio de dirección única. Eso significa que si un usuario puede descubrir cómo acceder a bytes sin procesar en el espacio de direcciones, potencialmente puede acceder a información que no le pertenece. Por ejemplo, una vez existió un programa escrito por dos estudiantes universitarios en el lenguaje de programación WYLBUR Exec que podía extraer de la memoria de WYLBUR la contraseña del usuario que inició sesión más recientemente.
- Debido a que el proceso WYLBUR se ejecuta bajo la cuenta del sistema asignada a WYLBUR, uno depende completamente de su aplicación de las protecciones de acceso al conjunto de datos de acuerdo con las reglas establecidas en WYLBUR. Un usuario administrativo podría desactivar completamente la aplicación de las reglas de acceso, con fines de mantenimiento del sistema, y tal vez no recuerde volver a habilitarlas.
- WYLBUR implementa cuotas de disco, con un giro interesante: cualquier usuario del sistema podría regalar total o parte de su cuota a otros usuarios. Esta funcionalidad podría combinarse con cuentas típicas de estudiantes relacionadas con cursos que desaparecían al final de cada semestre, y personal estudiantil con conocimientos de informática que tenía cuentas que no vencían con cuotas de disco bajas, de una manera que el personal de la universidad no siempre anticipaba.
- En los sistemas que ejecutan el paquete de seguridad ACF2 , un usuario con cuentas en TSO y WYLBUR que están vinculadas al mismo nombre de cuenta podría restablecer el contenido del registro de seguridad de su cuenta WYLBUR de forma interactiva desde TSO. Esto podría usarse para convertir un usuario normal de WYLBUR en un usuario administrativo de WYLBUR, aumentar su cuota de disco, etc.
- Al menos durante la década de 1960, las reglas de seguridad de WYLBUR no se aplicaban a los trabajos por lotes que se ejecutaban en el mismo sistema. Por lo tanto, se podían utilizar utilidades como IEHLIST e IEBGENER para descubrir, leer y modificar archivos pertenecientes a otros usuarios de WYLBUR a menos que protegiera esos archivos con contraseña, lo cual era incómodo desde el punto de vista operativo.
Gestión de datos
Wylbur tenía un formato de edición especial para los conjuntos de datos de Wylbur, que están comprimidos y tienen un número de línea y un indicador de revisión para cada línea. Además, Wylbur admite conjuntos de datos estándar FB y VB. Un usuario de Wylbur normalmente especifica un volumen predeterminado, que puede ser la palabra especial CATLG. solicitar una búsqueda en el catálogo de un conjunto de datos existente y solicitar que se catalogue un nuevo conjunto de datos. Wylbur tiene la capacidad de convertir números de línea entre conjuntos de datos de edición e IBM, ya sea como números enteros escalados o con un punto decimal explícito.
Edición
Wylbur proporciona un editor de líneas que trabaja con conjuntos de datos temporales, similar a los buffers de otros editores. En cualquier momento, uno de los conjuntos de datos temporales se designa como predeterminado. Wylbur mantiene un puntero de línea actual para cada conjunto de datos temporales. El usuario puede especificar un conjunto de datos de trabajo explícito en un comando; si lo omite, entonces el conjunto de datos temporales predeterminado se utiliza como conjunto de datos de trabajo.
La unidad de operación es un conjunto de líneas ( rango asociativo ) y las líneas individuales se identifican con un número de línea en el rango de 0,0 a 99999,999; Se pueden omitir los ceros iniciales en la parte entera y los ceros finales en la parte fraccionaria. El usuario puede especificar un número de línea de cualquiera de las siguientes maneras
- Número de línea absoluto: ddddd.ddd
- PRIMERO: primera línea en el conjunto de datos de trabajo
- ACTUAL: la línea actual para el conjunto de datos de trabajo
- ÚLTIMO: última línea del conjunto de datos de trabajo
- FINAL: un destino para copias, después de la última línea en el conjunto de datos de trabajo
- relativo: línea+ordinal o línea -ordinal.
- variable macro que contiene una línea
Las bibliotecas Wylbur tienen un formato no estándar, sin embargo, permite al usuario exportar a archivos del sistema operativo nativo con números de secuencia enteros e importar archivos del sistema operativo nativo con secuencia entera y reescalar el número de línea en un factor de 1000.
Un rango se puede especificar como una combinación de
- Un rango explícito, por ejemplo,
5.3-2/7.4+3
- Un patrón, por ejemplo,
'X' DIGITS*3
- Un patrón con un rango de columnas, por ejemplo,
'BAL' 10/15
- Un ordinal, por ejemplo,
3RD 'BAL' 10/15
- Un ordinal relativo a una coincidencia, por ejemplo,
3RD AFTER 'BAL' 10/15
- Una secuencia de líneas que siguen a una coincidencia, por ejemplo,
EVERY 3RD AFTER 'BAL' 10/15
- Una operación booleana, por ejemplo,
'PAGE' INTERSECTION COMPLEMENT 'NUMBER'
- Una especificación entre paréntesis con el prefijo SET, por ejemplo,
'PAGE' INTERSECTION SET (COMPLEMENT 'NUMBER')
Un patrón es similar a una expresión regular , pero la sintaxis es más cercana a la de SNOBOL que a la de Unix o Perl , no hay retroceso y solo el NIH Wylbur tiene captura de subpatrones. Un patrón puede ser:
- 'cadena'
- "cadena"
- patrón patrón
- (patrón)
- patrón*dígitos
- patrón*dígitos/dígitos
- ARRIBA 'cadena'
- patrón Y patrón
- CUALQUIER
- RETROCESO
- DEBAJO de 'cadena'
- BLANCO
- BLANCOS
- BOL
- bos
- BALA
- ESTRELLARSE
- DÍGITO
- DÍGITOS
- BCE
Igual, coma, en blanco - ECBS
Iguales, comas, espacios en blanco - VACÍO
- fin de vida
- EOS
- HEX [#]dígitos hexadecimales
- SOPORTE L
- CARTA
- MÁS BAJO
- NO patrón
- patrón O patrón
- PÁRRAFO
- PUNTUACIÓN
- SOPORTE
- SECCIÓN
- ESPACIO
- ESPACIOS
- ALGUNA 'cadena'
- patrón A TRAVÉS del patrón
- INDECENTE
- ARRIBA 'cadena'
- SUPERIOR
Comandos de muestra
CAMBIAR 73/80 A X10 + 10 EN CADA 3ª LÍNEA DE ' ABC ' 1/3 en 1 . 5-2 / 3 . 7 + 2 COPIAR 'BAL' 10 / 15 A EMD CAMBIAR 73 / 80 A ' ' EN CADA 3ª LÍNEA INICIO 2 DE 'BAL' 10 / 15 CAMBIAR '(' DÍGITOS * 3 ')' A SUBSTRING 2 / 4
La especificación de base+increment significa que el texto de reemplazo en la primera línea es base y se incrementa en las líneas siguientes, de modo que X10+10 reemplaza el texto coincidente en la primera línea con X10 , en la segunda línea con X20 y en la tercera. línea con X30 . La especificación de SUBSTRING 2/4 significa las columnas 2-4 de la cadena coincidente; tenga en cuenta que esto es menos flexible que las capturas.
Versiones mejoradas
Varias organizaciones desarrollaron versiones mejoradas de Wylbur. Estos incluyen
- Institutos Nacionales de Salud [7] [8] [9] [10]
- Online Business Systems que fue adquirida por ACS (Affiliated Computer Services Inc).
- Optimum Systems Inc., vendido a Electronic Data Systems y luego escindido como SuperWylbur® Systems, Inc. [11] [12] [13] [14] [15]
- Corporación RAND:
- Instalaciones de mando de WYLBUR 1975
- Este manual describe dos funciones relacionadas que amplían WYLBUR en la dirección de un lenguaje de programación que admite aplicaciones de manipulación y entrada de texto estructurado.
- La primera instalación es una extensión del vocabulario de comandos de WYLBUR que le brinda a WYLBUR muchas de las capacidades asociadas con los lenguajes de programación tradicionales. La extensión fue escrita por Paul Andersen.
- La segunda instalación es un preprocesador por lotes que permite al programador WYLBUR desarrollar programas de comando WYLBUR en un lenguaje similar a PL/I. El preprocesador fue desarrollado por David J. Smith.
- Guía del alumno de WYLBUR
- Manual de referencia WYLBUR
SuperWylbur
SuperWylbur tiene varias mejoras con respecto al Wylbur original. Los más importantes son
- Compatible con terminales 3270, 3767 y NTO a través de VTAM ; Al igual que con otras versiones patentadas de Wylbur, SuperWylbur no utiliza MILTEN para terminales VTAM.
- Una instalación macro mejorada .
- Admite paneles de pantalla completa escritos por el usuario
Macroinstalación SuperWylbur
El macroprocesador agrega comandos, constantes, funciones y expresiones a Wylbur. Incluso cuando la sintaxis del comando no incluye parámetros definidos como expresiones, el usuario puede usar las formas %( expresión ) y %%( expresión ) para forzar la evaluación. Si la expresión es una función sin argumento o variable, entonces se pueden omitir los paréntesis, por ejemplo, %.TIME en lugar de %(.TIME) . Un % duplicado solicita que se cotice el valorado.
Constantes SuperWylbur
SuperWylbur tiene dos tipos de constantes:
- Constantes numéricas
- [ signo ] dígitos [ E [ signo ] exponente ]
- # dígitos hexadecimales
- constantes de cadena
- ' caracteres '
- " caracteres "
Operadores SuperWylbur
Los operadores de SuperWylbur cuyos nombres contienen sólo caracteres especiales no necesitan estar separados por espacios. Los operadores cuyos nombres contengan un punto y letras deben estar separados por espacios. SuperWylbur cuenta con los siguientes tipos de operadores:
Operadores aritméticos SuperWylbur
- + Más
- - menos
- * Horarios
- / Dividir
- // división entera
- .DIV sinónimo de //
- Módulo .MOD
- ** Exponencial
Operadores relacionales SuperWylbur
- < ( .LT ) Menos de
- <= ( .LE ) Menor o igual
- = ( .EQ ) Igual
- >= ( .GE ) Mayor o igual
- > ( GT ) Mayor
- ¬< ( .NLT ) No menos de
- ¬<= ( .NLE ) No menor o igual
- ¬= ( .NEQ ) No igual
- ¬>= ( .NGE ) No mayor o igual
- ¬> ( .NGT ) No mayor que
Operadores lógicos SuperWylbur
- & ( .Y y
- | ( .O o
- ¬ ( .NOT ) No
Funciones macro de SuperWylbur
El nombre de una función macro comienza con un punto. Si hay argumentos, dos puntos los separan del nombre. Un punto y coma separa los argumentos sucesivos. SuperWylbur proporciona los siguientes tipos de funciones macro:
funciones aritméticas
- .ABDOMINALES
- .ACOS
- .COMO EN
- .UN BRONCEADO
- .TECHO
- .COS
- .APORREAR
- .COTAN
- .DEG
- .MI
- .ERF
- .ERFC
- .EXP
- .PISO
- .FRACCIÓN
- .GAMA
- .LGAMMA
- .REGISTRO
- .LOG10
- .PI
- .RAD
- .REDONDO
- .PECADO
- .SINH
- .SQRT
- .BRONCEARSE
- .TANH
- .TRUNCAR
funciones contables
- .CARGAR
- .CONNTIME
- .TIEMPO DE CPU
- .MEMACT
- .MEMCPU
- .MEMORIA
- .MEMTIME
- .PÁGINAS
- .PAGESECS
- .PAGING
- .TERMIO
conversión de fecha y hora
Los parámetros predeterminados son la fecha u hora actual.
- .FECHA
- .FECHA4
- .DÍAS
- .DÍAS
- .FECHA COMPLETA
- .JATE
- .JDATE4
- .TIEMPO
- .TIME100
- .TIME24
- .TIMEMICO
consultas ambientales
La mayoría de estos valores devueltos por comandos SET :
- .CUENTA
- .ALARMA
- .AUTOLOGO
- .ATRÁS
- .LOTE
- .PAPELERA
- .CASO
- .CONFIRMAR
- .CONT
- .UPC
- .DSFORMATO
- .EDITAR
- .EXTDS
- .FSASIZE
- .LONGITUD
- .LNDP
- .LOGONID
- .MAILDSN
- .MAILVOL
- .NOTIFICAR
- .PUERTO
- .PREFIJO
- .PRIV
- .PROYECTO
- .PROMEM
- .PUBPREFIX
- .PUBVOL
- .RECDSN
- .RECVOL
- .HABITACIÓN
- .RSASIZE
- .SCRSIZE
- .SSASIZE
- .SWCOUNT
- .SWSYSPRE
- .SYSMDSN
- .SYSMVOL
- .SYSNAME
- .T3270
- .PESTAÑAS
- .HABLAR
- .TERMINAL
- .BREVE
- .SE ACABÓ EL TIEMPO
- .USUARIO
- .VERSIÓN
- .VOLUMEN
- .ANCHO
funciones de pantalla completa
- .CURSORPOSN
- .CURSORVAR
- .EDITAR
- .EDITLINE
- .ENTRYKEY
- .SCRNUPDT
- .VARUPDATE
funciones JES
funciones macro
- .ARG
- .CARG
- .CMDCOUNT
- .CMDLIMITE
- .CMDMAX
- .DSEXISTA
- .DSNOMBRE
- .INICIAL
- .ÚLTIMO TRABAJO
- .LATTN
- .LERR
- .MRETURN
- .NATIVO
- .XLATTN
- .XLERR
funciones de cadena
- .BYTE
- .CARBONIZARSE
- .COLUMNAS
- .ESTRELLARSE
- .EXTENDER
- .FINDEX
- .MALEFICIO
- .HEXSTR
- .ÍNDICE
- .MÁS BAJO
- .ALMOHADILLA
- .CITA
- .CONTRARRESTAR
- .ROMANO
- .STRHEX
- .CADENA
- .STRLENO
- .SUBSTRING
- .TRADUCIR
- .RECORTAR
- .SUPERIOR
- .VERIFICAR
funciones del archivo de trabajo
Los argumentos de s están predeterminados al conjunto de datos de trabajo predeterminado actual.
- .ACTUAL
- .FIN
- .PRIMERO
- .ÚLTIMO
- .LONGITUD
- .LÍNEA
- .LINENO
- .MACRO
- .MAXTEMPS
- .NÚMERO DE TEMPERATURAS
- .TAMAÑO
- .TEMPORARIO
- .TEMPSLEFT
- .TEMPUPD
- .TEXTO
Lista completa de funciones macro.
- .ABS: n
- Valor absoluto
- .CUENTA
- Número de cuenta del ID de inicio de sesión
- .ACOS: x
- Arco coseno x
- .ALARMA
- 1 si suena un pitido en la siguiente terminal, escriba
- .ARG
- Argumentos pasados a macro.
- .ASIN: x
- Arco seno x
- .ATAN: x
- Arco tangente x
- .AUTOLOGO
- Valor de SET AUTOLOG ; utilizado para la recuperación de la sesión anterior
- .ATRÁS
- Opción SET : ATRÁS o NO ATRÁS
- .LOTE: s
- Valor de las opciones SET BATCH
- .PAPELERA
- Valor de SET ROOM
- .BYTE:( s [ ; yo ])
- Convertir el byte i de s a un número entero
- .CARG
- Argumentos pasados a un comando definido por el usuario definido con SET COMMAND
- .CASO
- Valor de SET CASE : SUPERIOR o ARRIBA
- .TECHO: n
- truncar hacia arriba
- .CHAR: yo
- Convierta i en un solo carácter EBCDIC
- .CARGAR
- Cargo de la sesión actual en dólares y centavos
- .CMCOUNT
- Comandos macro sin E/S de terminal
- .CMDCOUNT
- Comandos macro sin E/S de terminal
- .CMDLIMITE
- Valor de SET CMDLIMIT ; recomendación de macro máxima sin E/S de terminal
- .CMDMAX
- Máximo permitido en SET CMDLIMIT
- .CMLIMIT
- Valor de SET CMDLIMIT ; recomendación de macro máxima sin E/S de terminal
- .COLUMNAS: s ; i1 [ ; i2 ]
- Subcadena de s de la columna i1 a la columna i2
- .CONFIRMAR
- 1 si CONFIGURAR CONFIRMAR
- .CONNTIME
- Conecta tiempo en segundos con 2 decimales
- .CONT
- Personaje de continuación
- .COS: x
- coseno x
- .COSH: x
- Coseno hiperbólico x
- .COTAN: x
- Cotangente x
- .UPC
- ID de CPU de SMF
- .TIEMPO DE CPU
- Tiempo de CPU en segundos con 2 decimales
- .ACTUAL [ : s ]
- Número de línea actual de los conjuntos de datos de trabajo ; -1 si no existe, -2 si está vacío
- .CURPOSN
- Posición del cursor en la última interrupción en el formulario fila+col/1000; -1 si no 3270
- .CURSORVAR
- Nombre de variable para el campo que contiene el cursor en la última interrupción
- .ESTRELLARSE
- Carácter de guión utilizado por HYPHENATE ('62'X)
- .Fechas ]
- Convierta la fecha juliana s (aa.ddd o aaaa.ddd) a mm/dd/aa
- .FECHA4 [ : s ]
- Convierta la fecha juliana s (aa.ddd o aaaa.ddd) a mm/dd/aaaa
- .Días ]
- El día de la semana ( dd/mm/aa o dd/mm/aaaa) cae en
- .DÍAS [ : s ]
- Días desde el 01/01/1900 al s
- .DEG: x
- Convertir x radianes a grados
- .DSEXIST: s1 [ ; s2 )
- 1 si el conjunto de datos s1 existe en el volumen s2 (puede ser CATLG )
- .DSFORMATO
- Valor de SET DSFORMAT : TERSE o VERBOSE
- .DSNOMBRE: s
- Convierte s en un nombre de conjunto de datos completo
- .MI
- mi
- .EDITAR
- 1 si está en un entorno de edición de pantalla completa
- .EDITLINE
- Número de línea en la parte superior del marco de edición, -1 si no es 3270, -2 si no hay edición de pantalla completa, -3 vacío
- .END [ : s ]
- Siguiente entero después del último número de línea en el conjunto de datos de trabajo s
- .ENTRYKEY
- Tecla que causa la última interrupción: CLEAR , CURSEL , ENTER , PA1 - PA3 , PFK1 - PRK24
- .ERF: x
- función de error
- .ERFC: x
- función de error
- .EXP: x
- mi ^ x
- .EXTDS
- 1 si sessiona admite flujo de datos extendido 3270
- .EXTENDER:( s1 ; i [ ; s2 ] )
- Agregue tantas copias de s2 (predeterminado " ") como sea necesario a s1 para obtener la longitud i
- .FETCHLIN
- Líneas recuperadas por el comando FETCH
- .PRIMERO [ : s ]
- Número de primera línea de conjuntos de datos de trabajo ; -1 si no existe, -2 si está vacío
- .PISO: yo
- Truncar hacia abajo
- .FRACCIÓN: n
- Parte fraccionaria de n
- .FSASIZE
- Tamaño del área de pantalla completa 3270
- .FECHA COMPLETA [ : s ]
- Convertir mm/dd/aa o mm/dd/aaaa a día del mes, aaaa
- .GAMMA: x
- Gama( x )
- .AYUDADSN
- Nombre del conjunto de datos de ayuda
- .AYUDA
- Número de serie del volumen del conjunto de datos de ayuda o CATLG
- .HEX:( i1 [ ; i2 ] )
- Convierta i1 a hexadecimal , relleno con ceros a la longitud i2
- .HEXSTR: s
- Convertir s hexadecimales a cadena
- .ÍNDICE: s1 [ ; t2 ] )
- Primera columna en la que s2 aparece en s1 ; 0 si no hay coincidencia
- .INICIAL: s
- 1 si la variable se inicializa
- .ENTRADA: yo
- Contenido de la línea actual del canal i ; avance del puntero de la línea actual
- .JFECHA [ : s ]
- Convierta s de mm/dd/aa o mm/dd/aaaa a fecha juliana aa.ddd
- .JDATE4 [ : s ]
- Convierta s de mm/dd/aa o mm/dd/aaaa a fecha juliana aaaa.ddd
- .Tiene una duración ]
- Número de última línea de los conjuntos de datos de trabajo ; -1 si no existe, -2 si está vacío
- .ÚLTIMO TRABAJO
- Número de trabajo del último trabajo enviado con el comando RUN
- .LATTN
- Número de línea de la línea que se ejecutó cuando se tomó la salida de atención en el nivel macro actual; -1 si se autoriza o no se toma ninguna salida
- .LONGITUD
- Valor de ESTABLECER LONGITUD
- .LONGITUD: n [ ; [ s ][[ ; i ]] )
- Longitud de la línea i líneas después (antes si es negativa) de la línea n del conjunto de datos de trabajo s
- .LERR
- Número de línea de la línea que se ejecuta cuando se realizó la salida por error en el nivel de macro actual; -1 si se autoriza o no se toma ninguna salida
- .LGAMMA: x
- Ln(Gamma( x ))
- .LÍNEA: n [ ; [ s ][[ ; i ]] )
- Línea i líneas después (antes si es negativa) línea n del conjunto de datos de trabajo s
- .LINENO: n [ ; [ s ][[ ; i ]] )
- Numere las líneas i después (antes si es negativa) de la línea n del conjunto de datos de trabajo s
- .LNDP
- Decimales del número de línea (3)
- .LOG: x
- ln x
- .LOGONID
- ID de inicio de sesión utilizado para la sesión actual
- .LOG10: x
- Registro 10x
- .BAJO: s
- Convertir s a minúsculas
- .MACRO
- Nombre de la macro que se está ejecutando actualmente
- .MAILDSN
- Nombre del conjunto de datos del conjunto de datos de correo.
- .MAILVOL
- Número de serie del volumen del conjunto de datos de correo o CATLG
- .MAXTEMPS
- Número máximo de temporales no predeterminados permitidos en la sesión
- .MEMACT
- Bytes accedidos durante la sesión
- .MEMCPU
- Bytes*segundos con 2 decimales
- .MEMORIA
- Almacenamiento de trabajo en uso
- .MEMTIME
- Almacenamiento*segundos con 2 decimales
- .MRETURN
- Número de línea de la línea macro que se está ejecutando actualmente
- .NATIVO [ : i ]
- 1 si CONTROL NATIVO está vigente en el nivel macro i (corriente predeterminada)
- .Siguiente yo
- Puntero de línea actual para el canal i
- .NOTIFICAR
- 1 si SET NOTIFY está vigente
- .NÚMERO: s
- Representación en cadena del valor de la expresión s.
- .NÚMERO DE TEMPERATURAS
- Número de temporales no predeterminados en uso por sesión
- .PAD: n [ ; [-] i1 [[ ; i2 ]] )
- Igual que .STRING pero rellena con cero en lugar de espacio
- .PÁGINAS
- Número de páginas de SuperWylbur en uso por sesión
- .PAGESECS
- Páginas*segundos
- .PAGING
- Número de operaciones de paginación en la sesión actual
- .PI
- π(Pi)
- .PINDEX: s1 ; s2 )
- Primera coincidencia del patrón s2 en s1 ; columna + fracción(longitud/1000); 0 si no hay coincidencia
- .PUERTO
- Nombre de nodo VTAM o cuu
- .PREFIJO
- Valor de SET PREFIX
- .PRIV: s
- 1 si el usuario tiene privilegios
- .PROYECTO
- Nombre del proyecto
- .PROMEM
- Miembro del perfil cuando no está en recuperación
- .PUBPREFIX
- Prefijo para conjuntos de datos públicos ( &PUBLIC )
- .PUBVOL
- Número de serie del volumen de conjuntos de datos públicos o CATLG
- .CITA: s1 [ ; t2 ] )
- Cita s1 usando el carácter de marco s2
- .RAD: x
- Convertir x grados a radianes
- .RECDSN
- Nombre del conjunto de datos del conjunto de datos de recuperación después de cerrar sesión INTACTO
- .RECVOL
- Volumen sobre el que crear conjuntos de datos de recuperación o CATLG
- .REVERSE: s
- Invertir el orden de las cadenas s
- .RJECMD
- Número de comandos JES emitidos durante la sesión
- .ROMAN: yo
- Números romanos en minúscula para i
- .HABITACIÓN
- Valor de SET ROOM
- .RONDA: n [ ; i ] )
- Redondear n a i decimales
- .RSASIZE
- Tamaño del área de pantalla de reserva 3270
- .SCRNUPDT
- El usuario actualizó un campo del panel desde la última escritura.
- .SCRSIZE
- Tamaño de pantalla como filas.columnas 3 dígitos después del punto decimal) o -1 si no es 3270
- .PECADO: x
- seno x
- .SINH: x
- Seno hiperbólico x
- .TAMAÑO [ : s ]
- Número de líneas en conjuntos de datos de trabajo ; -1 si no existe
- .SQRT: x
- Raíz cuadrada de x
- .SSASIZE
- Tamaño del área de pantalla estándar 3270
- .STRHEX: s
- Convierta los primeros 127 caracteres de la cadena EBCIDIC a hexadecimal
- .STRING: norte
- Valor de expresión sin notación exponencial
- .STRING:( norte ; i1 )
- Valor de expresión con longitud i1
- .STRING:( n ; i1 ; i2 )
- Valor de expresión con longitud i1 e i2 decimales
- .STRING:( norte ; -i1 )
- Valor de expresión con longitud máxima i1
- .STRING:( n ; -i1 ; i2 )
- Valor de expresión con longitud máxima i1 e i2 decimales
- .STRLENO: s
- Número de caracteres en s
- .SUBSTRING:( s ; i1 [ ; i2 ] )
- Subcadena de s de la columna i1 para columnas i2
- .SWCOUNT
- Número de usuarios que iniciaron sesión en esta tarea de SuperWylbur
- .SWSYSPRE
- Prefijo del conjunto de datos del sistema
- .SYSMDSN
- Nombre del conjunto de datos de macros del sistema público
- .SYSMVOL
- Número de serie del macrovolumen del sistema público o CATLG
- .SYSNAME
- Nombre de la tarea de la instancia actual de SuperWylbur
- .PESTAÑAS
- Configuración de pestañas, separadas por comas
- .HABLAR
- Valor de SET TALK ( SET BREAK ): TALK o NOTALK
- .TAN: x
- Tangente x
- .TANH: x
- Tangente hiperbólica x
- .TEMPORARIO
- Nombre único para nuevo temporal
- .TEMPSLEFT
- Número de temporales no predeterminados disponibles para la sesión
- .TEMPUPD [ : s ]
- 1 si los archivos de trabajo se han actualizado desde el último GUARDADO
- .TERMINAL
- Nombre del terminal o valor de .PORT
- .TERMIO
- Número de operaciones de E/S de terminal en la sesión actual
- .BREVE
- CONCRETO o VERBOSO
- .TEXTO
- Conjunto de datos de trabajo predeterminado actual
- .TIEMPO
- Tiempo de 12 horas en forma hh : mm : ss x .m.
- .TIMEMICO
- Microsegundos de 11 dígitos desde medianoche
- .SE ACABÓ EL TIEMPO
- 0 si ESTABLECE NO TIEMPO DE ESPERA , 1 si ESTABLECE TIEMPO DE ESPERA , -1 si no hay privilegio de TIEMPO
- .TIEMPO DE ESPERA:( i [ ; s ] )
- Valor del i-ésimo intervalo de tiempo de espera para s ( USUARIO o SISTEMA )
- .TIME100
- Número de segundos desde medianoche con 2 decimales
- .TIME24
- horario de 24 horas
- .TRADUCIR:( s1 ; s2 ; s3 )
- Traduzca s1 usando la tabla de entrada s2 y la tabla de salida s3
- .TRIM:( s1 ; s2 [ ; s3 ] )
- Elimine s2 de los extremos de s1 de acuerdo con s3 : L = izquierda, R = derecha (predeterminado), B = ambos
- .TRUNCAR:( n [ ; i ] )
- Truncar n a i decimales
- .T3270
- 1 si 3270
- .SUPERIOR: s
- Convertir s a mayúsculas
- .USUARIO
- Parte del usuario de la identificación de inicio de sesión
- .VARUPDATE
- Número de variables de pantalla del panel que el usuario actualizó desde la última escritura; -1 si no 3270
- .VERIFICAR:( s1 [ ; s2 ] )
- Primera posición en s1 no presente en s2 ; 0 si todos los caracteres en s1 están en s2
- .VERSIÓN
- Nivel SuperWylbur en formato versión.lanzamiento - PTF
- .VOLUMEN
- Volumen establecido para la sesión, CATLG o nulo
- .ANCHO
- Valor de SET ANCHO
- .XLATTN
- Número de línea de salida de atención para el nivel macro actual; -1 si no hay salida de atención establecida
- .XLERR
- Número de línea de salida de error para el nivel de macro actual; -1 si no se ha establecido ninguna salida de error
Pseudofunciones macro de SuperWylbur
Las pseudofunciones son como funciones, excepto que aparecen en el lado izquierdo de una tarea, por ejemplo, LET. foo : barra = baz .
- .COLUMNAS:( v ; i1 [ ; i2 ] )
- Reemplace las columnas i1 a i2 de v
- .CURSOR
- Establecer la variable del panel en la que colocar el cursor
- .ARCHIVO: yo
- Asociar un conjunto de datos de trabajo con el canal i
- .LINEA:( n [ ; [ s ][[ ; i ]] )
- Reemplace o inserte la línea n en el conjunto de datos de trabajo s si i se omite o es cero
Reemplace la línea i líneas después (antes si es negativa) de la línea 'n' en el conjunto de datos de trabajo 's' - .Siguiente yo
- Establecer el puntero de línea actual para el canal i
- .SALIDA: yo
- Agregar o reemplazar la línea actual del canal i , avanzar el puntero de la línea actual
- .SUBSTRING:( v ; i1 [ ; i2 ] )
- Reemplace la columna i1 de v por columnas i2
- .ACTUALIZACIÓN: yo
- Reemplace la última línea leída del canal i
Declaraciones macro de SuperWylbur
- ¬ comando [ ; comando ]* (comando nativo)
- LLAMAR a qué opciones temporales opciones -proceso arg VALOR nombre-var
- LOCALES CLAROS
- BORRAR MACRO
- BORRAR MACROS
- RASTRO CLARO
- COMENTARIO
- CONTROL
- DEMANDA
- HACER
- HACER HASTA
- HACER MIENTRAS
- FIN
- EJECUTAR
- SALIDA
- IR
- IR A
- SI
- DEJAR variable = expresión
- BUCLE [ USANDO variable ] DE expresión-1 A expresión-2 [ POR expresión-3 ]
- Comando de expresión de patrón COINCIDIR
- DE LO CONTRARIO
- PAUSA
- SELECCIONAR [ expresión ]
- CONFIGURAR SALIR
- ESTABLECER LÍMITE
- ESTABLECER SEGUIMIENTO
- ESCANEAR PALABRA CLAVE
- ESCANEO POSICIONAL
- MOSTRAR GLOBALES
- MOSTRAR LÍMITE
- MOSTRAR LOCALES
- MOSTRAR MACRO
- MOSTRAR MACROS
- MOSTRAR PANELES
- SEÑAL
- TIPO
- TIPO I
- intervalo de ESPERA
- ESPERA b
- CUANDO ( expresión [ ; expresión ]* )
Ver también
Notas
Referencias
- ^ Descripción funcional del sistema de tiempo compartido abc ORVYL / 370, Universidad de Stanford, 1978
- ^ ab Manual de referencia WYLBUR , Universidad de Stanford, 1984
- ^ "WYLBUR, ORVYL (MILTEN y amigos)". hercules-390.yahoogroups.narkive.com . Consultado el 9 de octubre de 2023 .
- ^ "WYLBUR se jubilará" Archivado el 6 de mayo de 2009 en Wayback Machine , Titan News , Centro de Tecnología de la Información, Institutos Nacionales de Salud (NIH), 7 de abril de 2009
- ^ "Fuente y documentación de ORVYL, WYLBUR y MILTEN".Disponible de forma gratuita como código abierto de la Universidad de Stanford bajo una licencia modelada a partir de la "Licencia Mozilla 1.1" certificada por la "Open Source Initiative (OSI)"
- ^ "Computación en el CERN: la era del mainframe", Chris Jones, CERN Courier , 6 de septiembre de 2004
- ^ Fundamentos de Wylbur . Institutos Nacionales de Salud. Noviembre de 1980.
- ^ Edición general de Wylbur . Institutos Nacionales de Salud. Febrero de 1984.
- ^ Procedimientos de comando de Wylbur . Institutos Nacionales de Salud. Diciembre de 1980.
- ^ Formato de documentos de Wylbur . Institutos Nacionales de Salud. Diciembre de 1980.
- ^ Guía de comandos de SuperWylbur® . SuperWylbur® Systems, Inc. Septiembre de 1996.
- ^ Preparación de documentos SuperWylbur® . SuperWylbur® Systems, Inc. Septiembre de 1996.
- ^ Entrada y recuperación de trabajos SuperWylbur® . SuperWylbur® Systems, Inc. Septiembre de 1996.
- ^ Paneles de usuario y programación de macros SuperWylbur® . SuperWylbur® Systems, Inc. Septiembre de 1996.
- ^ Edición de texto SuperWylbur® . SuperWylbur® Systems, Inc. Septiembre de 1996.
enlaces externos
- Roger Fajman; John Borgelt (mayo de 1973). "WYLBUR: un sistema interactivo de edición de texto e ingreso de trabajos remoto". Comunicaciones de la ACM . 16 (5): 314–322. doi : 10.1145/362041.362234 . ISSN 0001-0782. S2CID 6892186.
- Descarga de software ORVYL y WYLBUR de la Universidad de Stanford
- Notas de Usenet sobre WYLBUR
- Instalaciones de comando WYLBUR, Centro de Computación Rand R-1555/10, The Rand Corporation 1975