ORVYL и WYLBUR

редактировать
ORVYL и WYLBUR
Разработчик Стэнфордский университет
Написано на 360/370 Язык ассемблера
Рабочее состояниеСнято с производства
Исходная модельПервоначально Открытый исходный код ; более поздние проприетарные версии имели лицензионный исходный код
Первоначальный выпуск1967, 1968
Доступен на английском языке
ПлатформыIBM S / 360, S / 370 и последующие
Лицензия Изначально общественное достояние; более поздние проприетарные версии имели отдельные лицензии
Официальный сайтweb.stanford.edu / dept / its / support / wylorv /

ORVYL - это монитор с разделением времени, разработанный Стэнфордским университетом для компьютеров IBM System / 360 и System / 370 в 1967–68. ORVYL была одной из первых систем с разделением времени, которые были доступны для компьютеров IBM. Wylbur - это программа текстового процессора, предназначенная для работы либо без ORVYL, либо в сочетании с ORVYL.

Содержание

  • 1 Обзор
  • 2 Использование
  • 3 Преимущества и недостатки
  • 4 Управление данными
  • 5 Редактирование
  • 6 Расширенные версии
  • 7 SuperWylbur ™
    • 7.1 Средство макросов SuperWylbur
      • 7.1.1 Константы SuperWylbur
      • 7.1.2 Операторы SuperWylbur
        • 7.1.2.1 Арифметические операторы SuperWylbur
        • 7.1.2.2 Операторы отношения SuperWylbur
        • 7.1.2.3 Логические операторы SuperWylbur
      • 7.1.3 Макрофункции SuperWylbur
      • 7.1.4 Псевдофункции макроса SuperWylbur
      • 7.1.5 Операторы макроса SuperWylbur
  • 8 См. Также
  • 9 Примечания
  • 10 Ссылки
  • 11 Внешние ссылки

Обзор

Имена ORVYL и WYLBUR часто используются взаимозаменяемо, но:

  • ORVYL - это монитор с разделением времени, который поддерживает файловую систему, язык команд, выполнение программ и отладку, а также предоставляет услуги супервизора.
  • WYLBUR - это текстовый редактор, текстовый процессор, отправка заданий и программа поиска и электронной почты, разработанная для работы с ORVYL или операционными системами IBM OS / 360, SVS и MVS. и
  • MILTEN - это программное обеспечение для управления терминалом, используемое ORVYL и WYLBUR для start / stop терминалов.

WYLBUR не является полностью автономной операционной системой в форме Dartmouth Time Система совместного использования (DTSS) или Unix. Вместо этого он работает поверх пакетной операционной системы IBM (OS / 360, SVS, MVS). Он принимает форму редактора с системой удаленного ввода заданий и, таким образом, имеет такое же отношение к операционным системам IBM, как Emacs к Unix. По этим причинам WYLBUR часто воспринимается как текстовый редактор, а не как система разделения времени. Однако, в то время как Unix не нуждается в Emacs для предоставления услуг редактирования текста, операционные системы IBM изначально нуждались в WYLBUR. Более поздние инновации, такие как IBM Time Sharing Option (TSO), сделали WYLBUR менее актуальным для пользователей IBM и постепенно заменили его.

В этой статье будет использоваться полное написание прописных букв для команд и ключевых слов. Все ссылки на символы и строку предполагают кодовую страницу EBCDIC.

Использование

ORVYL и WYLBUR использовались в Стэнфордском центре линейных ускорителей (SLAC), Европейской организации ядерных исследований (CERN), США Национальные институты здоровья (NIH) и многие другие сайты. Ушедшие с большинства сайтов в конце 1990-х годов из-за проблем с Y2K, они использовались в NIH до декабря 2009 года. ORVYL и WYLBUR по-прежнему доступны в Стэнфорде в виде открытого исходного кода. Существуют также проприетарные версии, такие как SuperWYlbur.

ORVYL и WYLBUR вызвали большое восхищение, как показывает этот отрывок из статьи 2004 года, озаглавленной «Вычисления в ЦЕРН: эра мэйнфреймов»:

[В 1976 году IBM S / 370-168] также принесла с собой операционная система MVS (Multiple Virtual Storage) с ее педантичным языком управления заданиями, и она дала возможность ЦЕРН представить WYLBUR, любимую, продуманную и удобную систему разделения времени, разработанную SLAC, вместе с красиво написанной от руки и иллюстрированное руководство Джона Эрмана. WYLBUR был шедевром дизайна, совершая чудеса с небольшой мощностью (в то время), распределяемой между множеством одновременных пользователей. Он завоевал друзей своим любезным характером и положил начало отказу от оборудования для перфокарт, когда в лаборатории появились компьютерные терминалы.

Преимущества и недостатки

ORVYL и WYLBUR впервые стали доступны в 1967–68, до TSS / 360, TSO или любое другое официальное решение для разделения времени от IBM. Это было примерно в то же время, когда стали доступны сторонние системы с разделением времени, такие как MTS, и в собственном Кембриджском научном центре IBM была проведена незаметная разработка CP-67.. У WYLBUR было дополнительное преимущество, заключающееся в том, что его можно было использовать вместе с основной операционной системой IBM, OS / 360.

WYLBUR - это система с одним адресным пространством, в отличие от TSO. Это сохраняло память в те дни, когда память была драгоценна. Таким образом, даже когда TSO был доступен, организации, стремящиеся минимизировать использование памяти, часто оставляли некоторых или даже большинство своих пользователей на WYLBUR, вместо того, чтобы позволять им использовать интерактивную среду TSO.

WYLBUR предоставляет сжатые многораздельные наборы данных (PDS, также известные как библиотеки) для экономии места на диске. В MVS исходный код обычно хранится как последовательность изображений карточек (80 символьных строк). Если строка содержала только один или несколько символов, 80 символов все равно использовались для хранения этой строки. Даже когда данные, например, исходный код, хранятся в виде заблокированной переменной (VB), пространство может быть потрачено впустую на строки встроенных пробелов. WYLBUR реализует потоковое хранение текста в PDS (и последовательных наборах данных), так что односимвольная строка может занимать только 16 символов (длина строки, смещение, длина фрагмента, символ), а не 80 для хранения. WYLBUR или внешняя программа, запускаемая через JCL, использовалась для преобразования файлов в формат WYLBUR EDIT и обратно.

Хотя TSO позволяет пользователю делать больше, чем это делала заблокированная система WYLBUR, можно написать сценарии WYLBUR Exec, которые выполняют пакетные задания для выполнения функций, которые обычно требовали бы учетной записи TSO, заполняя пакет каркас задания с параметрами, отправка пакетного задания, получение выходных данных и отображение их на экране.

WYLBUR имеет некоторые преимущества в плане безопасности по сравнению с TSO и некоторые недостатки. К преимуществам относятся:

  • Возможность писать правила для ограничения доступа пользователей к наборам данных, отличным от принадлежащих им и хранящихся под их префиксом. Это аналог домашнего каталога пользователя в UNIX и выглядит примерно как WYL.AV99.HCO, где AV99 примерно аналогичен «группе», а HCO - «пользователю» внутри группы.
  • Быть справедливее в отношении использование ресурсов. WYLBUR не реализует такие команды, как распределение TSO, которые могут намеренно или непреднамеренно предотвращать доступ других к файлам данных в течение длительного периода времени или использовать огромные объемы памяти или процессорного времени. Таким образом, это сводит к минимуму влияние любого отдельного пользователя на всех других пользователей.
  • Команды для установки определенных параметров состояния или «слежения» за командами, выполняемыми другими пользователями, были ограничены административными пользователями и не могли быть выполняется обычными пользователями.

К недостаткам, связанным с безопасностью, относятся:

  • WYLBUR - это система с одним адресным пространством. Это означает, что если пользователь может выяснить, как получить доступ к необработанным байтам в адресном пространстве, он потенциально может получить доступ к информации, которой он не владеет. Например, когда-то существовала программа, написанная двумя студентами колледжа на языке сценариев WYLBUR Exec, которая могла выкапывать пароль последнего вошедшего в систему пользователя из памяти WYLBUR.
  • Поскольку процесс WYLBUR выполняется в системе учетная запись, назначенная WYLBUR, полностью зависит от ее применения защиты доступа к набору данных в соответствии с правилами, установленными в WYLBUR. Применение правил доступа может быть полностью отключено пользователем с правами администратора в целях обслуживания системы, который может не забыть включить их повторно.
  • WYLBUR реализует дисковые квоты с интересным поворотом: любой пользователь системы может предоставить передать всю или часть своей квоты другим пользователям. Эту функциональность можно было бы сочетать с типичными связанными с курсом учетными записями студентов, которые удаляются в конце каждого семестра, и опытным компьютером студенческим персоналом, у которого были бессрочные учетные записи с низкими дисковыми квотами, что не всегда ожидается сотрудниками университета.
  • В системах, использующих пакет безопасности ACF2, пользователь с учетными записями в TSO и WYLBUR, привязанными к одному и тому же имени учетной записи, может сбросить содержимое записи безопасности своей учетной записи WYLBUR в интерактивном режиме из TSO.. Это можно было использовать для превращения обычного пользователя WYLBUR в пользователя WYLBUR с правами администратора, увеличения дисковой квоты и т. Д.
  • По крайней мере, до 1960-х годов правила безопасности WYLBUR не применялись для пакетных заданий, выполняемых в той же системе.. Таким образом, такие утилиты, как IEHLIST и IEBGENER, можно было использовать для обнаружения, чтения и изменения файлов, принадлежащих другим пользователям WYLBUR, если только вы не защитили эти файлы паролем, что было неудобно в эксплуатации.

Управление данными

У Уилбура была специальный формат редактирования для наборов данных Wylbur, которые сжимаются и имеют номер строки и флаг редакции для каждой строки. Кроме того, Wylbur поддерживает стандартные наборы данных FB и VB. Пользователь Wylbur обычно указывает объем по умолчанию, которым может быть специальное слово CATLG. запрос поиска в каталоге существующего набора данных и запрос каталогизации нового набора данных. Wylbur имеет возможность преобразовывать номера строк между редактируемыми наборами данных и наборами данных IBM либо как масштабированные целые числа, либо с явной десятичной точкой.

Редактирование

Wylbur предоставляет редактор строк, который работает с временными наборами данных, подобно буферам в других редакторах. В любой момент времени один из временных наборов данных используется по умолчанию. Wylbur поддерживает текущий указатель строки для каждого временного набора данных. Пользователь может указать явный набор рабочих данных в команде; если он его опускает, то в качестве рабочего набора данных используется набор временных данных по умолчанию.

Единица измерения - это набор строк (ассоциативный диапазон), и отдельные строки идентифицируются с помощью номера строки в диапазоне от 0,0 до 99999,999; начальные нули в целой части и конечные нули в дробной части могут быть опущены. Пользователь может указать номер строки любым из следующих способов

  1. Абсолютный номер строки: ddddd.ddd
  2. ПЕРВАЯ: первая строка в рабочем наборе данных
  3. ТЕКУЩИЙ: текущая строка для набор рабочих данных
  4. LAST: последняя строка в наборе рабочих данных
  5. END: цель для копий, следующая за последней строкой в ​​наборе рабочих данных
  6. относительная: строка + порядковый или строчный -ординальный.
  7. макропеременная, содержащая строку

Библиотеки Wylbur имеют нестандартный формат, однако он позволяет пользователю экспортировать в собственные файлы ОС с целыми порядковыми номерами и импортировать файлы собственных ОС с целочисленная последовательность и масштабируйте номер строки с коэффициентом 1000.

Диапазон может быть указан как комбинация

  1. Явный диапазон, например, 5,3-2 / 7,4 + 3
  2. Шаблон, например, 'X' DIGITS * 3
  3. Шаблон с диапазоном столбцов, например, 'BAL' 10/15
  4. Порядковый номер, например, 3RD 'BAL' 10/15
  5. Порядковый номер относительно совпадения, например, 3RD AFTER 'BAL' 10/15
  6. Последовательность строк fo разрешение совпадения, например, КАЖДЫЙ 3-Й ПОСЛЕ 'BAL' 10/15
  7. Логическая операция, например, ДОПОЛНИТЕЛЬ ПЕРЕСЕЧЕНИЯ 'СТРАНИЦЫ' НОМЕР '
  8. Спецификация в скобках с префиксом SET, например, НАБОР ПЕРЕСЕЧЕНИЙ 'СТРАНИЦЫ' (ДОПОЛНИТЕЛЬНОЕ 'НОМЕР')

Шаблон похож на регулярное выражение, но синтаксис ближе к синтаксису SNOBOL, чем к в Unix или Perl, здесь нет обратного отслеживания, и только NIH Wylbur имеет захват подшаблонов. Шаблон может быть:

  • 'string'
  • "string"
  • шаблон шаблон
  • (шаблон)
  • шаблон * цифры
  • шаблон * цифры / цифры
  • ВЫШЕ 'строка'
  • шаблон И шаблон
  • ЛЮБОЙ
  • BACKSPACE
  • НИЖЕ 'строка'
  • BLANK
  • BLANKS
  • BOL
  • BOS
  • BULLET
  • DASH
  • DIGIT
  • ЦИФРЫ
  • ECB. Равно, запятая, пробел
  • ECBS. Равно, запятые, пробелы
  • ПУСТО
  • EOL
  • EOS
  • HEX [#] шестнадцатеричные цифры
  • LBRACKET
  • БУКВА
  • НИЖНИЙ
  • НЕ шаблон
  • шаблон ИЛИ шаблон
  • PARAGRAPH
  • ПУНКТУАЦИЯ
  • RBRACKET
  • SECTION
  • SPACE
  • SPACES
  • НЕКОТОРЫЕ 'строка'
  • шаблон THRU шаблон
  • НЕПЕЧАТИВАЕМЫЙ
  • UPLOW 'string'
  • UPPER

Примеры команд

CHANGE 73/80 НА X10 + 10 В КАЖДОЙ СТРОКЕ «ABC» 1/3 дюйма 1,5–2 / 3,7 + 2 КОПИРОВАТЬ «BAL» 10/15 ЧТОБЫ ИЗМЕНИТЬ 73/80 НА «В КАЖДОМ НАЧАЛЕ 2-Й СТРОКИ» BAL '10/15 CHANGE' ('DIGITS * 3') 'НА SUBSTRING 2/4

Спецификация приращения base + означает, что замещающий текст в первой строке является базовым и увеличивается в последующих строках, так что X10 + 10 заменяет совпавший текст в первой строке на X10, во второй линия с X20 и на третьей строке с X30. Спецификация SUBSTRING 2/4 означает столбцы 2–4 совпадающей строки; обратите внимание, что это менее гибко, чем захват.

Расширенные версии

Различные организации разработали расширенные версии Wylbur. К ним относятся

SuperWylbur ™

SuperWylbur имеет несколько улучшений по сравнению с оригинальным Wylbur. Наиболее важными из них являются

  1. Поддержка терминалов 3270, 3767 и NTO через VTAM; как и другие проприетарные версии Wylbur, SuperWylbur не использует MILTEN для терминалов VTAM.
  2. Расширенные возможности макроса.
  3. Поддержка написанных пользователем полноэкранных панелей

Средство макросов SuperWylbur

Макропроцессор добавляет в Wylbur команды, константы, функции и выражения. Даже если синтаксис команды не включает параметры, определенные как выражения, пользователь может использовать формы % (выражение ) и %% (выражение ) для принудительной оценки. Если выражение - это функция без аргументов или переменная, скобки можно опустить, например, %.TIME вместо % (. TIME) . Удвоенный% требует, чтобы стоимость была указана.

Константы SuperWylbur

SuperWylbur имеет два типа констант:

  • числовые константы
    • [знак] цифры [E [знак] показатель степени]
    • #шестнадцатеричные цифры
  • строковые константы
    • 'символы '
    • "символы "

операторы SuperWylbur

операторы SuperWylbur, имена которых содержат только специальные символы, не обязательно разделять пробелами. Операторы, имена которых содержат точку и буквы, должны быть разделены пробелами. SuperWylbur имеет следующие типы операторов:

Арифметические операторы SuperWylbur
  • +Плюс
  • -Минус
  • *Времена
  • /Делить
  • //Целочисленное деление
  • .DIV синоним для //
  • .MOD Модуль
  • **Экспоненциальный
Операторы отношения SuperWylbur
  • <(.LT ) Меньше
  • <=(.LE ) Меньше или равно
  • =(.EQ ) Равно
  • >=(.GE ) Больше или равно
  • >(GT) Больше
  • ¬<(.NLT ) Не меньше
  • ¬<=(.NLE ) Не меньше или равно
  • ¬=(.NEQ ) Не равно
  • ¬>= (.NGE ) Не больше или равно
  • ¬>(.NGT ) Не больше
Логические операторы SuperWylbur
  • (.И ) И
  • |(.ИЛИ ) Или
  • ¬(.NOT ) Не

Макрофункции SuperWylbur

Имя макрос-функции начинается с точки. Если есть аргументы, их от имени отделяет двоеточие. Точка с запятой разделяет последовательные аргументы. SuperWylbur предоставляет следующие типы макросов:

арифметические функции

  • .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

учетные функции:

  • .CHARGE
  • .CONNTIME
  • .CPUTIME
  • .MEMACT
  • .MEMCPU
  • .MEMORY
  • .MEMTIME
  • .PAGES
  • .PAGESECS
  • .PAGING
  • .TERMIO

преобразование даты и времени: параметры s по умолчанию на текущую дату или время

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

запросы среды; большинство этих возвращаемых значений из команд SET :

  • .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

полноэкранные функции:

  • .CURSORPOSN
  • .CURSORVAR
  • .EDIT
  • .EDITLINE
  • .ENTRYKEY
  • .SCRNUPDT
  • .VARUPDATE

Функции JES:

  • .FETCHLIN
  • .LASTJOB

макрофункции:

  • .ARG
  • .CARG
  • .CMDCOUNT
  • .CMDLIMIT
  • .CMDMAX
  • .DSEXIST
  • .DSNAME
  • .INITIAL
  • .LASTJOB
  • .LATTN
  • .LERR
  • .MRETURN
  • .NATIVE
  • .XLATTN
  • .XLERR

строковые функции:

  • .BYTE
  • .CHAR
  • .COLUMNS
  • .DASH
  • .EXTEND
  • .FINDEX
  • .HEX
  • .HEXSTR
  • .INDEX
  • .LOWER
  • .PAD
  • .QUOTE
  • .REVERSE
  • .ROMAN
  • .STRHEX
  • .STRING
  • .STRLEN
  • .SUBSTRING
  • .TRANSLATE
  • .TRIM
  • .UPPER
  • .VERIFY

функции рабочего файла; По умолчанию для аргументов s используется текущий набор рабочих данных по умолчанию

  • .CURRENT
  • .END
  • .FIRST
  • .LAST
  • .LENGTH
  • .LINE
  • .LINENO
  • .MACRO
  • .MAXTEMPS
  • .NUMTEMPS
  • .SIZE
  • .TEMPORARY
  • .TEMPSLEFT
  • .TEMPUPD
  • .TEXT

Полный список функций макроса:

  • .ABS: n. Абсолютное значение
  • .ACCOUNT . Номер счета из идентификатора входа
  • .ACOS: x. Арккосинус x
  • .ALARM . 1, если звуковой сигнал на следующем терминале напишите
  • .ARG . Аргументы, переданные в макрос
  • .ASIN: x. Арк синус x
  • .ATAN: x. Арктангенс x
  • .AUTOLOG . Значение SET AUTOLOG ; используется для восстановления из предыдущего сеанса
  • .BACK . SET опция: BACK или NOBACK
  • .BATCH: s. Значение SET BATCH option s
  • .BIN . Значение из SET ROOM
  • .BYTE :( s[;i]). Преобразовать байт i из s в целое число
  • .CARG . Аргументы, передаваемые пользовательской команде, определенной с помощью SET COMMAND
  • .CASE . Значение из SET CASE : UPPER или UPLOW
  • .CEILING: n. Усечь
  • .CHAR: i. Преобразовать i в один символ EBCDIC
  • .CHARGE . Стоимость текущего сеанса в долларах и центах
  • .CMCOUNT . Макрокоманды без терминального ввода-вывода
  • .CMDCOUNT . Макрокоманды без терминального ввода-вывода
  • .CMDLIMIT . Значение из SET CMDLIMIT ; максимальное количество макросов без ввода / вывода терминала
  • .CMDMAX . Максимально допустимое значение в SET CMDLIMIT
  • .CMLIMIT . Значение из SET CMDLIMIT ; максимальный макрос без ввода / вывода терминала
  • .COLUMNS: s;i1 [; i2]. Подстрока s из столбца i1 в столбец i2
  • .CONFIRM . 1, если SET CONFIRM
  • .CONNTIME . Соединяет tinme в секундах с двумя десятичными знаками
  • .CONT . символ продолжения
  • .COS: x. Косинус x
  • .COSH: x. Гиперболический косинус x
  • .COTAN: x. Котангенс x
  • .CPU . Идентификатор процессора из SMF
  • .CPUTIME . Процессорное время в секундах с точностью до 2 десятичных знаков
  • .CURRENT [:s]. Текущий номер строки рабочего набора данных s; -1, если он не существует, -2, если он пуст
  • .CURPOSN . Позиция курсора при последнем прерывании в форме row + col / 1000; -1, если не 3270
  • .CURSORVAR . Имя переменной для поля, содержащего курсор на последнем прерывании
  • .DASH . Знак тире, используемый HYPHENATE ('62 'X)
  • .DATE [:s]. Преобразование юлианской даты s (гг.ддд или гггг.дд) в мм / дд / гг
  • .DATE4 [:s]. Преобразование юлианской даты s (гг.ддд или гггг.дд)) до мм / дд / гггг
  • .DAY [:s]. День недели s (мм / дд / гг или мм / дд / гггг) приходится на
  • .DAYS [:s]. Дней с 01.01.1900 по s
  • .DEG: x. Преобразует x радиан в градусы
  • .DSEXIST: s1 [;s2). 1, если набор данных s1 существует на томе s2 (может быть CATLG )
  • .DSFORMAT . Значение из SET DSFORMAT : TERSE или VERBOSE
  • .DSNAME: s. Преобразует s в полное имя набора данных
  • .E. e
  • .EDIT . 1, если в среде полноэкранного редактирования
  • .EDITLINE . Номер строки в верхней части рамки редактирования, -1, если не 3270, - 2, если нет полноэкранного редактирования, -3 пусто
  • .END [:s]. Следующее целое число после номера последней строки в наборе рабочих данных s
  • .ENTRYKEY . Ключ, вызывающий последнее прерывание: CLEAR, CURSEL, ENTER, PA1 - PA3, PFK1 - PRK24
  • .ERF: x. Функция ошибки
  • .ERFC: x. Функция ошибки
  • .EXP: x. e^x
  • .EXTDS . 1, если sessiona поддерживает 3270 расширенный поток данных
  • .EXTEND :( s1;i[;s2] ). Добавить столько копий s2 (по умолчанию ""), сколько необходимо, к s1, чтобы получить длину i
  • .FETCHLIN . Строки, выбранные FETCH команда
  • .FIRST [:s]. Номер первой строки рабочих наборов данных; -1, если он не существует, -2, если он пуст
  • .FLOOR: i. Усечь
  • .FRACTION: n. Дробная часть n
  • . FSASIZE . Размер 3270 полноэкранной области
  • .FULLDATE [:s]. Преобразование мм / дд / гг или мм / дд / гггг в день месяца, гггг
  • . ГАММА: x. Гамма (x)
  • .HELPDSN . Имя набора справочных данных
  • .HELPVOL . Серийный номер тома набора справочных данных или CATLG
  • .HEX: (i1 [; i2] ). Преобразовать i1 в шестнадцатеричное, с дополнением нулями до длины i2
  • .HEXSTR: s. Преобразовать шестнадцатеричное s в строку
  • . ИНДЕКС: s1 [; s2] ). Первый столбец, в котором s2 встречается в s1; 0, если совпадений нет
  • .INITIAL: s. 1, если переменная s инициализирована
  • .INPUT: i. Содержимое текущей строки канала i; переместить указатель текущей строки
  • .JDATE [:s]. Преобразовать s из мм / дд / гг или мм / дд / гггг в дату по юлианскому календарю yy.ddd
  • .JDATE4 [:s]. Преобразование s из мм / дд / гг или мм / дд / гггг в юлианскую дату yyyy.ddd
  • .LAST [:s]. Номер последней строки рабочего набора данных s; -1 если его не существует, -2, если оно пусто
  • .LASTJOB . Номер последнего задания, отправленного с помощью команды RUN
  • .LATTN. Номер строки, в которой был выполнен выход из внимания взяты на текущем макроуровне; -1, если сброшено или выход не выполняется
  • .LENGTH . Значение из SET LENGTH
  • .LENGTH: n[;[s] [; i]] ). Длина строки i строк после (перед, если она отрицательная) строки n рабочего набора данных s
  • .LERR . Номер строки, исключаемой при выходе из ошибки на текущем макроуровне; -1, если сброшено или выход не выполняется
  • .LGAMMA: x. Ln (Gamma (x))
  • .LINE: n[;[s] [; i] ] ). Строка i, строка после (перед, если отрицательная) строка n рабочего набора данных s
  • .LINENO: n[;[s] [; i]] ). Номер i строк после (перед, если отрицательный) строка n рабочего набора данных s
  • .LNDP . десятичные разряды номера строки (3)
  • .LOG: x. Ln x
  • .LOGONID . Идентификатор входа, используемый для текущего сеанса
  • .LOG10: x. Журнал 10x
  • .LOWER: s. Преобразовать s в нижний регистр
  • .MACRO . Имя макроса, выполняющегося в данный момент
  • .MAILDSN . Имя набора данных набора данных почты
  • .MAILVOL . Серийный номер тома набора данных почты или CATLG
  • .MAXTEMPS . Максимальное количество нестандартных временных файлов, разрешенных в сеансе
  • .MEMACT . Байт, к которым был получен доступ во время сеанса
  • .MEMCPU . Байт * секунды до 2 знаков после запятой
  • .MEMORY . Используемая рабочая память
  • .MEMTIME . Хранение * секунды до 2 знаков после запятой
  • .MRETURN . Строка количество в настоящее время исполнительных ng макрос строки
  • .NATIVE [:i]. 1, если CONTROL NATIVE действует на уровне макроса i (текущий по умолчанию)
  • .NEXT: i. Указатель текущей строки для канала i
  • .NOTIFY . 1, если действует SET NOTIFY
  • .NUMBER: s. Строковое представление значения выражения s
  • . NUMTEMPS . Количество нестандартных временных файлов, используемых сеансом
  • .PAD: n [; [-] i1 [; i2]] ). То же, что и .STRING, но с нуля вместо пробела
  • .PAGES . Количество страниц SuperWylbur, используемых сеансом
  • .PAGESECS . Страницы * секунды
  • .PAGING . Количество операций подкачки в текущем сеансе
  • .PI . π (Pi)
  • .PINDEX: s1;s2). Первое совпадение с шаблоном s2 в s1; столбец + дробь (длина / 1000); 0 при отсутствии совпадения
  • .PORT . Имя узла VTAM или cuu
  • .PREFIX . Значение из SET PREFIX
  • .PRIV: s. 1, если у пользователя есть привилегия s
  • .PROJECT . Имя проекта
  • .PROMEM . Член профиля, когда не в режиме восстановления
  • .PUBPREFIX . Префикс для общедоступные наборы данных (PUBLIC )
  • .PUBVOL . Серийный номер тома общедоступных наборов данных или CATLG
  • .QUOTE: s1 [; s2 ] ). Заключите s1 в кавычки, используя символ кадра s2
  • .RAD: x. Преобразуйте x градусов в радианы
  • .RECDSN . Имя набора данных для набора данных восстановления после LOGOFF INTACT
  • .RECVOL . Том, на котором создаются наборы данных для восстановления, или CATLG
  • .REVERSE: s. Обратный порядок строки s
  • .RJECMD . Количество команд JES, выданных во время сеанса
  • .ROMAN: i. Римские цифры в нижнем регистре для i
  • .ROOM . Значение from SET ROOM
  • .ROUND: n[;i]). Округлить n до i десятичных знаков
  • .RSASIZE . Размер 3270 резервной области экрана
  • .SCRNUPDT . Пользователь обновил поле панели с момента последней записи
  • .SCRSIZE . Размер экрана в виде строк. Столбцов 3 цифры после десятичной точки) или -1, если не 3270
  • .SIN: x. Синус x
  • .SINH: x. Гиперболический синус x
  • .SIZE [:s]. Количество строк в рабочем наборе данных s; -1, если его не существует
  • .SQRT: x. Квадратный корень из x
  • .SSASIZE . Размер стандартной области экрана 3270
  • .STRHEX: s. Преобразовать первые 127 символов в строке EBCIDIC s в шестнадцатеричный
  • .STRING: n. Значение выражения без экспоненциальной записи
  • .STRING :( n;i1). Значение выражения длиной i1
  • .STRING :( n;i1;i2). Значение выражения с длиной i1 и i2 десятичных знаков
  • .STRING :( n;-i1 ). Значение выражения с максимальной длиной i1
  • .STRING: (n;-i1 ;i2). Значение выражения с максимальной длиной i1 и i2 десятичных разрядов
  • .STRLEN: s. Количество символов в s
  • .SUBSTRING :( s;i1 [; i2] ). Подстрока s из столбца i1 для столбцов i2
  • .SWCOUNT . Количество пользователей, вошедших в эту задачу SuperWylbur
  • .SWSYSPRE . Префикс набора данных системы
  • .SYSMDSN . Имя набора данных макроса общедоступной системы
  • .SYSMVOL . Серийный номер тома макроса общедоступной системы или CATLG
  • .SYSNAME . Название задачи текущего SuperWylbur i nstance
  • .TABS . Настройки вкладок, разделенные запятыми
  • .TALK . Значение из SET TALK (SET BREAK ): TALK или NOTALK
  • .TAN: x. Tangent x
  • .TANH: x. Гиперболический тангенс x
  • .TEMPORARY . Уникальное имя для нового временного файла
  • .TEMPSLEFT . Количество доступных временных файлов не по умолчанию для сеанса
  • .TEMPUPD [:s]. 1, если рабочий файл s был обновлен с момента последнего СОХРАНИТЬ
  • .TERMINAL. Имя терминала или значение .PORT
  • .TERMIO. Количество операций ввода / вывода терминала в текущем сеансе
  • .TERSE . TERSE или VERBOSE
  • .TEXT. Текущий набор рабочих данных по умолчанию
  • .TIME . 12-часовое время в форме hh :mm:ss x .m.
  • .TIMEMIC . 11 цифр микросекунд с полуночи
  • .TIMEOUT . 0, если SET NO TIMEOUT, 1, если SET TIMEOUT, -1, если нет TIME привилегия
  • .TIMEOUT :( i[;s]). Значение i-го интервала тайм-аута для s (USER или SYSTEM )
  • .TIME100 . Число секунд с полуночи до 2 десятичных знаков
  • .TIME24 . 24-часовое время
  • .TRANSLATE :( s1;s2;s3). Преобразовать s1, используя входную таблицу s2 и выходную таблицу s3
  • .TRIM :( s1;s2 [; s3] ). Удалить s2 с концов s1 согласно s3: L = левый, R = правый (по умолчанию), B = оба
  • .TRUNCATE: (n[;i]). Усечь n до i десятичных знаков
  • .T3270 . 1, если 3270
  • .UPPER: s. Преобразовать s в верхний регистр
  • .USER . Пользовательская часть идентификатора входа
  • .VARUPDATE . Число экранных переменных панели, которые пользователь обновил с момента последней записи; -1, если не 3270
  • .VERIFY :( s1 [; s2] ). Первая позиция в s1 отсутствует в s2; 0, если все символы в s1 находятся в s2
  • .VERSION . Уровень SuperWylbur в форме version.release - PTF
  • .VOLUME . Объем, установленный для сеанса, CATLG или ноль
  • .WIDTH . Значение SET WIDTH
  • .XLATTN . Номер строки выхода с вниманием для текущего уровня макроса; -1, если не установлен выход с вниманием
  • .XLERR . Номер строки выхода из ошибки для текущего макроуровня; -1, если выход из ошибки не установлен

Псевдофункции макроса SuperWylbur

Псевдофункции похожи на функции, за исключением того, что они появляются в левой части присваивания, например, LET.foo: bar = baz.

  • .COLUMNS :( v;i1 [; i2] ). Заменить столбцы с i1 по i2 в v
  • .CURSOR . Установить панель переменная, на которую следует поместить курсор
  • .FILE: i. Свяжите рабочий набор данных с каналом i
  • .LINE :( n[;[s] [; i] ] ). Заменить или вставить строку n в рабочие наборы данных s, если i опущен или равен нулю. Заменить строку i на строки после (перед, если отрицательное значение) строки 'n' в рабочем наборе данных 's'
  • .NEXT: i. Установить указатель текущей строки для канала i
  • .OUTPUT: i. Добавить или заменить текущую строку канала i, переместить указатель текущей строки
  • .SUBSTRING :( v;i1 [; i2] ). Заменить столбец i1 of v на столбцы i2
  • .UPDATE: i. Заменить последнюю строку, прочитанную из канала i

Макросы SuperWylbur

  • ¬команда [; команда] * (собственная команда)
  • CALL какие временные опции выбирает процесс arg VALUEvar-name
  • CLEARLOCALS
  • CLEARMACRO
  • CLEAR МАКРОСЫ
  • CLEAR TRACE
  • COMMENT
  • CONTROL
  • DEMAND
  • DO
  • DOДО
  • DOWHILE
  • END
  • EXECUTE
  • EXIT
  • GO
  • GOTO
  • IF
  • LET переменная = выражение
  • LOOP [ИСПОЛЬЗОВАНИЕ переменной] ОТ выражение-1 ДО выражение-2 [ BY выражение-3]
  • MATCH шаблон выражения, команда
  • OTHERWISE
  • PAUSE
  • SELECT [выражение]
  • SET EXIT
  • УСТАНОВИТЬ LIMIT
  • SETTRACE
  • SCANKEYWORD
  • SCANPOSITIONAL
  • SHOWGLOBALS
  • SHOW LIMIT
  • SHOW LOCALS
  • SHOW MACRO
  • SHOW MACROS
  • SHOW PANELS
  • SIGNAL
  • TYPE
  • TYPEI
  • WAITinterval
  • WAITb
  • WHEN(expression [;expression]*)

See also

Notes

References

External links

Последняя правка сделана 2021-06-01 06:36:30
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте