Для тех кто испытывает ностальгию по старым добрым временам, а также для тех кому просто интересно посмотреть на старые системы вживую в рамках проекта PDP-11.ORG.RU поддерживается хост с системой RSX-11M-PLUS. Чтобы попасть в систему достаточно зайти telnet’ом на адрес rsx.pdp-11.org.ru и войти в систему командой HEL GUEST/ Подробности о командах системы можно узнать, набрав команду HELP даже без входа в систему. Для более подробной информации можно прочитать RSX-11M-PLUS MCR Operations Manual. Для получения персональной учетной записи (а также по любым вопросам о системе) следует написать по адресу support@pdp-11.org.ru.

Ниже приведены краткие сведения о системе и о работе в ней.


О системе

Хост rsx.pdp-11.org.ru находится в Новосибирске. Операционная система выполняется на виртуальной машине под управлением демо версии Ersatz-11. Эмулируемая конфигурация оборудования: PDP-11/94, 640KW памяти, 20 модемных линий, три SCSI диска, SCSI стример, Ethernet контроллер. В качестве консольного терминала используется VT52-совместимый терминал CM7209. Операционная система: RSX-11M-PLUS V4.6 BL87, выпущенная компанией Mentec в 1998 году. В системе установлены компиляторы языков программирования MACRO-11, FORTRAN 77, FORTRAN IV и C. Также установлены некоторые сторонние утилиты и игрушки.

Работа в системе

Как и в любой многопользовательской системе в RSX-11M-PLUS прежде чем начать работу следует войти в систему под своим именем и паролем с помощью команды HELLO или LOGIN (названия команд могут быть сокращены до трех первых букв). Подробную информацию о входе в систему можно получить по команде HELP HELLO или HELP LOGIN. Кроме команд HELLO и LOGIN, команда HELP единственная, которую можно использовать без предварительного входа в систему (при этом имя команды должно быть введено полностью). Подробное описание команд доступно в RSX-11M-PLUS MCR Operations Manual.

После входа в систему пользователю назначается выбранный при создании учетной записи интерпретатор команд и пользователь получает право использовать остальные команды системы. В данной системе есть три интерпретатора команд: MCR (основной интерпретатор), DCL (язык команд DIGITAL, используемый во многих системах) и CCL (позволяющий пользователю создавать свои команды). До входа пользователя в систему используется MCR. Ему также передаются команды из DCL и CCL в случае если команда не совпала ни с одной из команд этих интерпретаторов. Описание команд DCL можно прочитать в RSX-11M/RSX-11M-PLUS Command Language Manual. Для выхода из системы можно воспользоваться командой BYE.

Запуск и останов программ

В системе существует два основных способа запуска программ. Если программа установлена в системе как задача, ее можно запустить командой RUN имязадачи. Исключение составляют задачи с именами вида …имя и имя$$$. Задачи вида имя$$$ являются служебными и не предназначены для запуска вручную. Задачи вида …имя запускаются простым набором команды имя. В этом случае реальное имя запущенной задачи будет имяTnn (где Tnn – первая буква имени терминального устройства и его номер). Список установленных задач можно посмотреть по команде TAS.

Если программа не установлена как задача в системе, запустить ее можно по команде RUN имяфайла. В этом случае имя задачи будет TTnn (в соответсткии с именем и номером терминального устройства).

В отличие от UNIX систем в RSX-11M-PLUS нет понятия фоновой программы. Если запущенная задача не запрашивает ввода с терминала после ее запуска можно сразу вводить следующую команду. Если задача запрашивает ввод с терминала ввести команду можно в ответ на подсказку MCR>, DCL> или CCL> (в зависимости от выбранного интерпретатора команд), которая появляется при нажатии Ctrl/C (программа может захватить управление терминалом, выдав соответствующую системную директиву; в этом случае реакция на нажатие Ctrl/C определяется самой программой).

Для останова задачи используется команда ABO имязадачи (где имязадачи – имя запущенной задачи). Для останова зазачи с именем вида имяTnn (см. выше), достаточно указать только имя (первые три символа имени). Для задач вида TTnn указывать имя задачи не требуется.

Подробности можно узнать по командам HELP, HELP RUN, HELP ABO, а также в RSX-11M-PLUS MCR Operations Manual.

Терминалы

Для входа в систему потребуется программа эмуляции терминала. В Windows лучше всего себя зарекомендовала программа SecureCRT, умеющая работать с кодировкой koi8-r и полностью поддерживающая функциональность Alternate Keypad (если выбрана эмуляция VT220), активно использующуюся во многих программах DEC и Mentec, но в принципе подойдет и любой другой терминальный эмулятор, совместимый с VT100. В UNIX системах для поддержки функциональности Alternate Keypad можно использовать xterm с дополнительными настройками в файле ~/.Xdefaults (см. настройки и комментарии внизу файла). В данный момент русский язык в программах системы расчитан на кодировку koi8-r. Для VT100 и не экранных программ можно также использовать кодировку windows-1251, включив трансляцию командой SET TRA:CP$1251. Для отмены трансляции следует выполнить команду SET NOTRA.

Общение

Как и всякая многопользовательская система RSX-11M-PLUS предоставляет пользователям возможность общения между собой. С помощью команды BRO TTn:текст можно передать текст на терминал TTn: (где n – немер терминала). Можно также явно указать нужного пользователя системы. В этом случае команда будет выглядеть так: BRO пользователь текст (где пользователь – имя пользователя которому нужно передать текст). Чтобы посмотреть список активных в данный момент пользователей системы нужно ввести команду DLG или WHO. Если в системе активен пользователь IRCYKA, и ему передается сообщение – оно будет распечатано на закрытом канале IRC сервера проекта.

Другой способ общения предоставляет команда PHO пользователь. С помощью этой команды можно вести интерактивный разговор в стиле команды talk UNIX-подобных систем. Эта команда может быть также использована для общения по сети. Например команда PHO MIM::GUEST выдаст запрос на разговор пользователю GUEST на хосте MIM. При поступлении входящего запроса на разговор на экране будет распечатана строчка вида MIM::GUEST is phoning you on CTAKAH:: (в данном примере вызов делает пользователь GUEST с хоста MIM). Для ответа на запрос следует использовать команду PHO ANS.

Дополнительная информация по данным командам может быть получена с помощью команд HELP BRO и PHO HELP.

HECnet

В системе установлен DECnet-Plus V4.6 с помощью которого можно получить доступ к другим системам, подключенным к HECnet. Например можно зайти на хост MIM, находящийся в Швеции. Для этого достаточно набрать команду RMT MIM или SET HOST MIM, после чего войти в систему командой HEL GUEST/GUEST. Данный хост также доступен через telnet по адресу mim.update.uu.se. Подробнее о данной системе можно почитать здесь. Точно также можно зайти на нашу систему с любой другой в пределах HECnet. Наше имя в сети CTAKAH, адрес 1.300.

Программирование

В системе установлены компиляторы следующих языков программирования: MACRO-11, FORTRAN 77, FORTRAN IV, PASCAL, DECUS C. Примеры программ можно найти в каталогах DU1:[GUEST] и DU1:[EXAMPLES]. Файлы программ имеют следующие расширения: .MAC (MACRO-11), .FTN (FORTRAN 77, FORTRAN IV), .PAS (PASCAL), .C (DECUS C). Объектные файлы имеют расширение .OBJ, собранная программа (образ задачи) имеет расширение .TSK. Создать/отредактировать файл можно командой EDT имяфайла. Для выхода из редактора следует нажать Clrt/Z и в ответ на подсказку * ввести EX (выход с записью) или QUIT (выход без записи). Чтобы вернуться в режим редактирование введите команду C В случае аварийного завершения сеанса редактирования (например при разрыве соединения) можно восстановить предыдущий сеанс командой EDT имяфайла/RE. Подробную информацию можно посмотреть по команде HELP EDT, а также в RSX-11M/RSX-11M-PLUS EDT Editor Manual.

Сборка простых программ выполняется следующим образом:

ЯзыкКоманды MCRКоманды DCL
MACRO-11
>MAC имяфайла=имяфайла
>TKB имяфайла=имяфайла
$ M имяфайла
$ L имяфайла
FORTRAN-77
>F77 имяфайла=имяфайла
>TKB имяфайла=имяфайла,LB:[1,1]F77FCS/LB
$ F имяфайла
$ L имяфайла,LB:[1,1]F77FCS/LIB
FORTRAN IV
>FOR имяфайла=имяфайла
>TKB имяфайла=имяфайла,LB:[1,1]FORLIB/LB
$ F/FOR имяфайла
$ L имяфайла,LB:[1,1]FORLIB/LIB
PASCAL
>PAS имяфайла=имяфайла
>TKB имяфайла=имяфайла,LB:[1,1]PASLIB/LB
$ PA имяфайла
$ L имяфайла,LB:[1,1]PASLIB/LIB
DECUS C
>XCC -A имяфайла
>TKB имяфайла=имяфайла,C:C/LB
$ XCC -A имяфайла
$ L имяфайла,C:C/LIB

Более подробная информация о программировании содержится в следующих документах: PDP-11 MACRO-11 Language Reference Manual, PDP-11 FORTRAN 77 Langiage Reference Manual, PDP-11 FORTRAN IV Langiage Reference Manual, RSX-11M/RSX-11M-PLUS Task Builder Manual, RSX-11M/RSX-11M-PLUS/RSX-11D/IAS System Library Routines Reference Manual.

Игры

        В системе установлены некоторые игры. По мере возможности список будет пополняться. Некоторые игрушки используют возможности видео терминалов VT100 и VT52. С VT100 особых проблем нет – почти все терминальные программы совместимы с VT100. С VT52 дело обстоит хуже: хотя многие программы заявляют об умении эмулировать VT52, на деле оказывается, что практически ни одна из них не делает этого правильно. В качестве решения для UNIX систем была написана программа vtwrap, транслирующая VT52 Esc-последовательности в совместимые с VT100. Программа проверялась в OpenBSD и Linux и должна без проблем собираться в FreeBSD и NetBSD (возможно с небольшими доработками). В случае невозможности воспользоваться программой vtwrap можно использовать установленную в системе программу трансляции. Она работает хуже, но достаточна для запуска многих VT52 игр. Чтобы включить режим трансляции нужно подать команду SET TRA:CM$7209. При включенной трансляции также маленькие английские буквы отображаются как большие русские как это было на терминалах CM7209 в старые добрые времена ;). Для возврата в нормальный режим используется команда SET NOTRA.

Ниже приведен список игрушек, установленных в системе с их кратким описанием.

GANG (посвящается отделу ГАП ПО ВЕГА города Бердска и лично Кожевникову Сергею Фёдоровичу благодаря которому многие из нас выбрали свою профессию)

В МРАЧНЫХ ПОДЗЕМЕЛЬЯХ СТАРОГО ЗАМКА ЗАСЕЛИ 10 ГАНГСТЕРОВ… Возможно кто-то вспомнит эту замечательную фразу и прослезится… К сожалению это не та самая игрушка, что влекла нас к себе в начале 80-ых годов, а всего лишь созданная по образу и подобию ее. Но, как говорится, на безрыбьи и… 😉

Игра не использует специальных возможностей видеотерминала. Цель игры – уничтожить гангстеров, засевших в подвалах ГАПа. Герой начинает свой путь со случайно выбранного места и, перемещаясь по лабиринту подвалов, душит, режет и стреляет негодяев. При этом его жизненный ресурс ограничен и постепенно уменьшается. Для указания направления используются цифровые клавиши 1, 2, 3, 4, 6, 7, 8, 9 (направление соответствует расположению данных клавиш на дополнительной клавиатуре). Душить и резать можно только в пределах одного шага вокруг себя, стрелять можно на любое расстояние если нет препятствий по дороге. Условные обозначения объектов: * – стена, колонна или другое препятствие, ! – главный герой, Г – живой гангстер, Т – мертвый гангстер. Кроме того где-то в подвале есть К – кошка. Зачем она там? А просто так. Наступите – узнаете! 😉
Для запуска следует набрать команду GAN.

PACMAN

Наверное все знают что такое PACMAN. Игрушка использует возможности VT100-совместимых терминалов. Управление производится клавишами 2, 4, 6, 8, (направление соответствует расположению данных клавиш на дополнительной клавиатуре). Нужно убегать от злыдней, вылезающих из помещения посередине, стараясь съесть все точки. При съедании одного из яблок, лежащих в некоторых углах лабиринта, на некоторое время можно есть самих злыдней. Для запуска программы используется команда PAC.

Star Wars Episode IV

Собственно это даже не игрушка, а ASCII фильм. Оригинал находится здесь. Для запуска нужно ввести команду WAR. Программа использует возможности VT100-совместимых терминалов.

Cookie

Программа, печатающая случайную цитату. Пользователям UNIX-систем известна подобная программа, называющаяся fortune. Для запуска программы наберите команду COO.

GAD

Старый добрый питон, глотающий кроликов. Цель – проглотить максимальное количество кроликов (обозначаются цифрами, показывающими на сколько клеток увеличится при этом питон), не наткнувшись на стены, на самого себя или на возникающие время от времени препятствия, обозначаемые буквой M. При управлении питоном можно повернуть направо или налево (клавиши спрашиваются при запуске программы и должны быть односимвольными [клавиши стрелок не подойдут]). Программа рассчитана на VT52 терминалы с большими русскими буквами вместо маленьких английских и требует включения трансляции (как описано выше) или использования программы vtwrap. Для запуска программы наберите RUN SYS$GAMES:GAD.

MAR

Многие помнят как надо расправляться с марсианами. Да, это она! Старая добрая игрушка, которую мы видели как в RT-11 так и в RSX-11. Для управления используются следующие клавиши: 4 для движения влево, 6 для движения вправо, 5 для останова движения, пробел для выстрела. Старайтесь экономить ракеты! Программа рассчитана на VT52 терминалы с большими русскими буквами вместо маленьких английских и требует включения трансляции (как описано выше) или использования программы vtwrap. Для запуска программы наберите RUN SYS$GAMES:MAR.

Arcanoid

Небольшой арканоид. Управляется клавишами 4 для движения влево и 6 для движения вправо. Увы, и эта программа рассчитана на VT52 терминалы и требует включения трансляции (как описано выше) или использования программы vtwrap. Для запуска программы наберите RUN SYS$GAMES:BKO.

Space Invaders

Старый добрый Space Invaders. Управляется клавишами 4 для движения влево и 6 для движения вправо. К сожалению задержки в программе делаются циклами и поэтому она двигается слишком быстро, но мы поработаем над этим. Опять таки программа рассчитана на VT52 терминалы и требует включения трансляции (как описано выше) или использования программы vtwrap. Для запуска программы наберите RUN SYS$GAMES:SMB.

К Р Е С Т

Очень глючная программа похожая на крестики-нолики. Правила игры однако из логики компьютера определить не удалось. Предположительно нужно составить цепочку из пяти своих символов, но не ясно почему имея такую возможность компьютер сначала делает несколько ходов в другом направлении. При вводе букв нужно обязательно использовать верхний регистр, иначе программа уходит в ступор и ее приходится снимать командой ABO. Программа не использует возможностей видеотерминалов, однако для правильного отображения русских букв требуется включение трансляции (как описано выше) или использование программы vtwrap. Для запуска программы наберите RUN SYS$GAMES:KN.

Разное

Некоторые команды в нашей системе могут напомнить команды, использующиеся в современных системах. Часть из них являются встроенными командами, другая часть – установленные в системе дополнительные программы. Команда CAL выдаст классический календарь как это делает команда cal в UNIX-системах. Команда UPT покажет время работы системы с момента ее загрузки и некоторую другую информацию как это делает UNIX-команда uptime. Команда RMD напомнит пользователям UNIX-система такие утилиты как top и systat. Команда VTL о less и more. Команда DIR будет знакома пользователям Windows и выполняет аналогичную функцию.

Об этих и других командах, а также прочую информацию о системе можно узнать с помощью команды HELP или из коллекции документации на данном сайте.

Проект приглашает всех желающих и имеющих возможность помочь в наполнении информативной части проекта присоединяться. Для этого можно отправить письмо по адресу support@pdp-11.org.ru. Также будем благодарны за любую полезную информацию, программы, литературу, железо.


Проект PDP-11.ORG.RU выражает глубокую благодарность bucker’у за любезно предоставленное оборудование.