Сообщение от
form
В советские времена я с RSX работал в основном.
А я вот RSX-11 совсем не знаю, сталкивался шапочно, только как пользователь.
form, сразу вопрос (может очень глупый): а возможно собрать RSX-11 без поддержки диспетчера памяти?
Сообщение от
form
В RT-11 CCLем обзывают упрощенную запись CSI в виде явной передачи параметров программе:
что транслируется в
А-а-а-а!!! С этим я знаком. Но это не то. Моя UCL покруче будет.
---------- Post added at 19:15 ---------- Previous post was at 18:42 ----------
Раз зашла речь об UCL, то кратенько опишу, что может моя версия. Сама UCL работает, только когда вызывается по макрозапросу .CHAIN. Строку для обработки она берет из ячеек 500-776. Первым параметром идет имя файла, расширение .UCL. Далее идут параметры, они следуют через запятую, если параметр содержит запятую, то он заключается в кавычки. Сам .UCL-файл является текстовым и содержит шаблон для формирования командного файла. Команды начинаются с символа %. С %1 по %9 - это передаваемые параметры. %Bn - условие, если параметр n присутствует. %Inстрока%T - если параметр n равен строка. %E - если условие не выполняется. Конец условия - это конец строки или команда %C. %=mn - присвоить параметру m значение параметра n. %% - собственно сам %. %_ - конец строки, это дает возможность задавать в одной текстовой строке .UCL-файла несколько строк командного файла. %* - User error, ошибка, прекращается трансляция, файл не исполняется.
Еще поддерживает команду ECHO - вывод строки на экран, правда строка приводится к верхнему регистру самой RT-11.
Примеры:
Трансляция программы с Паскаля (файл PAS.UCL)
Код:
%B1%E%*
ECHO Translation ...
PASCAL %1%B2,%2%C=%1
ECHO Macrotranslation ...
MAC %1
ECHO Linking ...
LINK%B3/MAP:%3%C %1%B4,%4%C,SY:PASCAL
%B5%I5RUN%TECHO Running ...%E%*
%B5%I5RUN%TRUN %1%E%*
В качестве параметров - имя программы на Паскале (1), имя листинга (2), имя карты памяти при линковке (3), дополнительные объектные модули (4), запуск, если RUN (5).
Собственно, что делается:
1. Если отсутствует первый параметр, то ошибка
2. Вывод Translation ...
3. Трансляция программы на Паскале, если присутствует второй параметр, то в файл выводится листинг
4. Вывод Macrotranslation ...
5. Трансляция на MACRO
6. Вывод Linking ...
7. Линковка. Если есть третий параметр, то карта памяти выводится в файл. При присутствии дополнительных объектных модулей указывается четвертый параметр.
8. Если присутствует пятый параметр и он равен RUN, то на экран выводится Running ..., а если не равен RUN, то ошибка
9. Если присутствует пятый параметр и он равен RUN, то запускается странслированная программа.
Еще - вывод версии системных программ:
Код:
%B1R %1%_%_^C%EGET SY:RT11SJ.SYS
%B1%ED 4700=012700,004740,104351,104350
%B1%EST 4700
Си - классический, автономные программы, с математической библиотекой
Код:
%B1%E%*
CC
-LE %1
LINK%B2/MAP:%2%C %1,%B3%3,%CC:SPEIS,C:CXLIB/BOT:%B4%4%E2000%C
%B5%I5RUN%TRUN %1%E%*
%B1%E%*
CC
-L %1
LINK%B2/MAP:%2%C %1,C:INITNF,C:NFTIO,%B3%3,%CC:SPEIS,C:CXLIB/BOT:%B4%4%E2000%C
%B5%I5RUN%TRUN %1%E%*
%B1%E%*
CC
-L %1
LINK%B2/MAP:%2%C %1,%B3%3,%CC:SPEIS,C:CMLIB,C:CXLIB/BOT:%B4%4%E2000%C
%B5%I5RUN%TRUN %1%E%*
Вытяжка объектных модулей из библиотек, перевод их в MACRO, редактирование и печать
Код:
%B1%E%*
%B2%E%=21
LIBR/EXT C:%B3%3%ECXLIB%C %1
%2%_
SET USR SWAP
R DECOBJ
%1.MAC=%1.OBJ
^C
SET USR NOSWAP
EDIK %1.MAC
%B4%EPRI %1.MAC
---------- Post added at 20:58 ---------- Previous post was at 19:15 ----------
Сообщение от
hobot
Там возможно что-то ещё интересное, например
что за программа BUG.SAV ? Драйвер MH.SYS ?
BUG.SAV - это экранный отладчик. Требует для работы BG.SYS. Откуда он у меня взялся - не помню. Краткая инструкция:
Код:
*********************************************************************
********************** B U G *************************
*********************************************************************
К О М А Н Д Ы Д И С А С С Е М Б Л Е Р Н О Й С Т Р А Н И Ц Ы
<ВК> - ВЫПОЛНИТЬ ОДНУ КОМАНДУ
<G> - НАЧАТЬ ВЫПОЛНЕНИЕ ПРОГРАММЫ
<J> - ВЫПОЛНИТЬ ПОДПРОГРАММУ
<CTRL/T> - НА СТРАНИЦУ ВПЕРЕД
<CTRL/R> - ПОКАЖИ ПРЕДЫДУЩУЮ СТРАНИЦУ
<CTRL/K> - НА НЕСКОЛЬКО СЛОВ НАЗАД
<CTRL/P> - ВЕРНУТЬСЯ НА СТРАНИЦУ С ТЕКУЩИМ PC
<ESC> - ПЕРЕЙТИ НА ДАМПОВУЮ СТРАНИЦУ
*********************************************************************
К О М А Н Д Ы Д А М П О В О Й С Т Р А Н И Ц Ы
<ВК> - ПЕРЕЙТИ К ДИСАССЕМБЛЕРНОЙ СТРАНИЦЕ
< > - ОБНОВИТЬ СОДЕРЖИМОЕ ЭКРАНА
<R0=2002> - ЗАПИСАТЬ 2002 В R0
( R0,R1,R2,R3,R4,R5,SP,PC,RX; RX - РЕГИСТР СМЕЩЕНИЯ )
<w0=1514> - ЗАДАТЬ 0 ТОЧКУ ОСТАНОВА ПО АДРЕСУ 1514
( B0,B1,B2,B3,B4,B5,B6,B7 )
<w0=0> - ОТМЕНИТЬ 0 ТОЧКУ ОСТАНОВА
<DA=1000> - ПОКАЗАТЬ ДАМПОВУЮ СТРАНИЦУ С АБСОЛЮТНОГО АДРЕСА 1000,
БЕЗ УЧЕТА СМЕЩЕНИЯ В RX
<CO=1000,123> - ЗАПИСАТЬ ВОСЬМЕРИЧНЫЙ КОД 123 ПО АДРЕСУ 1000
<CR=1000,DSK> - ЗАПИСАТЬ DSK В RADIX-50 ПО АДРЕСУ 1000
<CA=1000,TX> - ЗАПИСАТЬ TX В ASCII ПО АДРЕСУ 1000
<QUIT> - ВЫХОД ИЗ BUG
*********************************************************************
MH.SYS - драйвер дисковода для считывания дискет с размером сектора в 256 байт. Естественно умеет только читать и писать такие дискеты, загрузится с них невозможно. Поддерживает только два параметра:
SET MH SYSGEN - настройка под параметры генерации монитора;
SET MH TRACKS=num - установка количества дорожек сразу на все приводы, VARSZ$ (тома переменного размера) не поддерживается.