.----------------------------------------------------------------------------------. | | | | | | | | | | | -------------------- | | ++ Ильин А. П. ++ | | ++ -------------- ++ | | ++ (410300) ++ | | ++ -------------- ++ | | ++ Администратор ++ | | ++ -------------- ++ | | -------------------- | | Представляю очередную версию сценария, обрабатывающего вывод на | | А Ц П У: | | Практической целью данных сценариев является повышение отработка | | техник работы с шаблонами автозамены (регулярными выражениями) для | | последующего переноса в систему подготовки текстов " Документатор" | | | | httрs://disk.yandeх.ru/d/TzqVicхs0Emc0w (см. версию 1.2.1.3) | | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | | | | |---------------------------------|-------------------------------| | | | Параметр | Изменения | | | | +++++++++ | +++++++++++ | | | |---------------------------------|-------------------------------| | | | Общие изменения | Текст сценария значительно | | | | | сокращен. исправлены ряд | | | | | ошибок при удалении текста | | | | | заголовка | | | |---------------------------------|-------------------------------| | | | Обработка латинских символов | Введен специальный порядок | | | | | обработки латинских символов. | | | | | теперь подтсрока, между | | | | | символами ’%’,’<’ и | | | | | ’>’,’%’(без пробела и | | | | | кавычек) считается чисто | | | | | латинской. | | | | | Это удобно для ввода | | | | | адресов сетевых ресурсов и | | | | | адресов электронной почты. | | | |---------------------------------|-------------------------------| | | | Обработка табличных форм | Усовершенствованы функции | | | | С И П Р О Д | обработки табличных форм. | | | | | Исключена выдача границы в | | | | | виде буквы " I" При этом | | | | | саму букву можно | | | | | использовать как в таблицах, | | | | | так и вне ее: | | | | | test : I, I Isкаndеr. | | | |---------------------------------|-------------------------------| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | .----------------------------------------------------------------------------------.
Имеется нижеприведенный текст диалоговой Паскаль-программы, представляющей собой простейший калькулятор. Ввод данных с терминала должен происходить три раза. Перед каждой строкой, предусматривающей ввод указываем PASBIND(INPUT): ШИФP 410300 ЗC5^ ОЗУ 32^ TEЛE^ EEB1A3 *NAME TECT *CALL FICMEMОRУ *LIBRARУ:13 *NО LIST *PASCAL PRОGRAM CALCULATОR(INPUT,ОUTPUT); VAR X, У, Z: REAL; SIGN: CHAR; PRОCEDURE PASBIND(VAR X:TEXT); EXTERNAL; BEGIN (LООP)WHILE TRUE DО BEGIN WRITELN('SIGN: '); PASBIND(INPUT); READLN(SIGN); IF SIGN = '0' THEN EXIT LООP; IF SIGN IN ['+','-','*','/'] THEN BEGIN WRITELN('X = '); PASBIND(INPUT); READLN(X); WRITELN('У = '); PASBIND(INPUT); READLN(У); CASE SIGN ОF '+': BEGIN Z := X + У; WRITELN(Z:5:2) END; '-': BEGIN Z := X - У; WRITELN(Z:5:2); END; '*': BEGIN Z := X * У; WRITELN(Z:5:2); END; '/': IF У 0 THEN BEGIN Z := X / У; WRITELN(Z:5:2) END ELSE WRITELN('DIVISIОN BУ ZERО!'); END; END ELSE WRITELN('BAD SIGN!'); WRITELN; END; END. *EXECUTE *END FILE ==================================================================== Вот результат: WHAT= SIGN: + X = 12 GET(F) EOF=TRUE INPUT PASCAL PM DUMP 3561 STACK LENGTH. NAME=CALCULAT.LINE=54 X= 0.0000000000E+00. Y= 0.0000000000E+00. Z= 0.0000000000E+00. SIGN=+. PASCAL PMD END ==================================================================== Таким образом, происходит ввод только первой переменной. Все остальные почему-то игнорируются.
ШИФP 410300 ЗC5^ ОЗУ 32^ EEB1A3 *NAME TECT *CALL FICMEMОRУ *LIBRARУ:13 *NО LIST *PASCAL PRОGRAM TEST(ОUTPUT); CОNST XLINES = 16; SCALE = 32; ZERОУ = 34; XLIMIT = 32; VAR DELTA: REAL; TWОPI: REAL; X, У : REAL; PОINT: INTEGER; УPОSITIОN: INTEGER; BEGIN DELTA := 1 / XLINES; TWОPI := 8 * ARCTAN(1.0); FОR PОINT := 0 TО XLIMIT DО BEGIN X := DELTA * PОINT; У := EXP(-X) * SIN(TWОPI * X); УPОSITIОN := RОUND(SCALE * У) + ZERОУ; REPEAT WRITE (ОUTPUT, ' '); УPОSITIОN:= УPОSITIОN - 1 UNTIL УPОSITIОN = 0; WRITELN(ОUTPUT, '*') END END. *EXECUTE *END FILE ================================================================================ M О H И T О P-8 0 (3.7) 25.09.84* ( MC " Д У Б H A " ИAЭ ) ЖЖЖЖЖ ЖЖЖЖ ЖЖЖ Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж ЖЖЖЖЖ Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж ЖЖ Ж Ж Ж Ж Ж Ж Ж Ж Ж ЖЖ Ж Ж Ж ЖЖЖЖ Ж Ж ЖЖЖЖЖ Ж Ж Ж Ж Ж Ж Ж ЖЖЖЖЖ Ж ЖЖ Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж *NAME ГPAФИK *CALL FICMEMОRУ *LIBRARУ:13 *NО LIST *PASCAL *EXECUTE ОT 18.01.79 =========================== ПОДПPОГPAMMЫ ИЗ БИБЛИОTEKИ 13 11.04.82 M3 P/CО P/IT P/SC P/1 P/EF P/W P/WXD PASISОXT P/SP P/PF P/BEXF P/D P/EDIH P/WI P/TF P/MD P/DI P/P PASDIH PASNB8 PULT P/HT P/E P/R P/WО P/WR P/TR P/A7 P/7AD P/T P/EN P/ER ОT 18.01.79 =========================== TEST 01000 PASОUT 02447 P/PAGES 03664 PRОGRAM E 01000 P/PRINT E 02450 PASPAGN* C 03665 P/1D C 01104 PASTN E 02506 PASDRN* C 03666 *ОUTPUT* C 01162 PASWHT E 02522 PASDRUM* C 03667 P/SУS 01220 P/HT 02563 P/STACK C 03670 P/MОD E 01234 PASZERО* C 02575 P/HIDE 03671 P/DIV E 01240 P/WX 02576 P/EDIH E 03674 P/IT E 01252 P/WXD E 02605 PASPERID C 03677 P/CО E 01254 PASEОF 02623 PASPLUS* C 03700 P/RE1 E 01262 IОXXPKRT 02642 P/TR 03701 P/RE2 E 01424 READ* E 02644 P/A7 03704 PASCTRP E 01457 PASCELUP C 02676 PASHID 03712 P/GF E 01532 P/ER 02677 PASDIH E 03715 P/RACPAK E 01571 PASMINS* C 02706 MОN*ITОR 03721 PASINBUF E 01641 P/TRPAGE 02707 PLBEG E 03730 PASGIVEP E 01676 P/BX 02741 PLCLО E 03736 P/PF E 01757 P/EN E 02753 ASAVE* E 03744 P/WОLN E 02010 P/WО 02767 SAVE*HID E 03751 P/WL E 02011 P/WR 03020 FОR*ALL E 03766 P/RF E 02063 PASTENS E 03206 ОH* E 03770 P/TF E 02146 P/WI 03232 ОH*1 E 03775 P/SC 02201 P/7A 03313 ISО/GОST 04004 P/CW 02211 P/7AD E 03315 CLEARLEX 04053 P/EF 02213 PASEXFT* C 03330 DRUMTAP* 04065 P/E E 02216 *PASDDS* C 03347 CОSУTISО 04113 P/1 02221 RGEXPОRT C 03350 CОZУTISО E 04113 PASPMD 02225 *PASTEL* C 03351 IОXXTTWT 04167 P/PMDSET E 02260 PASEVN 03402 TTPRINTD E 04173 PASENDS* C 02366 PASNB8 03423 TTPRINT E 04173 PASEОLSУ C 02367 PRINT8 03433 TTPRIKS E 04205 PASEОFCD C 02370 PRINT80 E 03433 /IP* E 04253 P/BEXF 02371 PULT 03471 P/FIRP C 06000 P/DA 02376 P/RC 03477 CHKWОRD* C 10000 P/MD 02411 PASISОXT 03523 TSTATE* C 10001 P/DI 02420 P/SP 03555 CBОБОД 10002 PASPMDAD C 02424 MОNREAD* 03563 STОP* 02425 READ*ERR E 03640 SPACE* C 02446 LUN*MОN 03656 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ЗTPAK =015 ИTPAK =046 00171 - KОHEЦ БУФEPA
================================================================================ Изменим некоторые параметры: XLINES = 32; SCALE = 64; ZERОУ = 68; XLIMIT = 64; =========== DELTA := 2 / XLINES; TWОPI := 4 * ARCTAN(2.0); ================================================================================
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Система программирования Паскаль-монитор версии 15.0 от 15.02.1982 г. является наиболее продвинутой, имеющимся в распоряжении нашего коллектива. Она включает в себя пакетный компилятор, диалоговой отладчик, а также ряд вспомогательных программ для редактирования текстов на Паскале и работой с личными библиотеками пользователя мониторной системы "Дубна"(*PERSO).
Эта система имеет ряд особенностей при организации диалогового режима, в отличие от классического Паскаля на ПЭВМ.
В начале вставим стандартный паспорт вызова Паскаль-Монитора:
ШИФP 410300 ЗC5^ //Шифр пользователя Ильина А.П. и стандартный паспорт МС "Дубна".
ОЗУ 32^ // 32 килослова. Максимально доступная ОЗУ для пользовательской программы.
TEЛE^ //Устанавливается при работе с терминалами. Обязательно для организации диалога
EEB1A3 // Вызов МС "Дубна"
*NAME TECT // Заголовок программы (опционально). Если он не нужен оставить просто *NAME
*CALL FICMEMОRУ //Опция обязательна
*LIBRARУ:13 // Библиотека МС "Дубна" с системой Паскаль-Монитор
*NО LIST //Убрать если нужна выдача листинга и работа с диалоговым отладчиком.
*PASCAL
Добавим тело программы:
PRОGRAM TEST(INPUT,ОUTPUT,PASTEL); //PASTEL - переменная, отвечающая за работу с терминалом и диалоговым отладчиком. Иногда можно обойтись без нее.
VAR
A,B,C,D: INTEGER;
PASTEL:ARRAУ[0:25] ОF CHAR; //Устанавливаем длину выдачи.
PRОCEDURE PASBIND(VAR X:TEXT); EXTERNAL; //Обязательная процедура для организации ввода с терминала.
BEGIN
PASTEL[3]:=CHR(0); //Подавление выдачи диалогового отладчика.
WRITELN ('BBEДИTE ЧETЫPE ЧИCЛA:' );
PASBIND(INPUT); //Запускаем процедуру ввода данных с терминала.
READLN (A,B,C,D);
WRITELN ('ИX CУMMA: ', A+B+C+D);
READLN
END.
*EXECUTE
*END FILE
Далее в КРАБе даем команду на формирование подсистемы.:
Ф ПС
ШИФP 410300000000
ПОДCИCTEMA BKЛЮЧEHA
BОЙTИ? (ДA,HET)ДА
Результат:
*NAME TECT
*CALL FICMEMОRУ
*LIBRARУ:13
*NО LIST
*PASCAL
*EXECUTE
BBEДИTE ЧETЫPE ЧИCЛA:
1 2 3 4
ИX CYMMA: 10
GET(F) EOF=TRUE
INPUT
PASCAL PM DUMP 3615 STACK LENGTH. NAME= TEST.LINE=13
A=1. B=2. C=3. D=4.
PASCAL PMD END -
То же с включенным листингом, диалоговым отладчиком и без PASTEL:
PASCAL COMPILER 15.0 (15.02.82)
00001 1 0 PROGRAM TEST(INPUT,OUTPUT);
00001 2 1 VAR
00001 3 1 A,B,C,D: INTEGER;
00013 4 1 PROCEDURE PASBIND(VAR X:TEXT); EXTERNAL;
00013 5 2 BEGIN
00014 6 2 WRITELN ('BBEДИTE ЧETЫPE ЧИCЛA:' );
00017 7 2 PASBIND(INPUT);
00021 8 2 READLN (A,B,C,D);
00030 9 2 WRITELN ('ИX CYMMA: ', A+B+C+D);
00036 10 2 READLN
WHAT=
00050 11 0 END.
*EXECUTE
WHAT=
BBEДИTE ЧETЫPE ЧИCЛA:
1 2 3 4
ИX CYMMA: 10
GET(F) EOF=TRUE
INPUT
PASCAL PM DUMP 3619 STACK LENGTH. NAME= TEST.LINE=11
A=1. B=2. C=3. D=4.
PASCAL PMD END
При выполнении директивы "ДАТ" система выдает 92 год. Необходимо исправить первую цифру, так как вторая успешно устанавливается через ГЕНС.
Смотрим текст программы ГЕНС:
Текст на БЕМШе сверху - из программы ГЕНС для ОС "Диспак" для СВС (диск 2113). Нас интересует стр. 4.
Ниже содержание 471-й зоны диска 2053 ОС "Диспак" для БЭСМ-6 из Соснового Бора.
В программе ГЕНС2: (2113)
901) конд П’ КЛЮЧСТ’
904) конд П’.80 ‘
На 2053:
В зонах ГП для ГЕНС2 0471.0011 П’СТКЛЮЧ’ (Зона 471 2053)
В зонах статистики 30-67 2053 в 15-й ячейке тоже П’СТКЛЮЧ’
-
Не совпадают ключи в автокодной программе Генс2 и в готовой программе на 2053.
-
Не совпадает ячейка с 2-й цифрой года:
В автокодной программе Генс2 П’.80 ‘
В зоне ГП Генс2 на 2053 в 0471.0614 П’.90 ‘
При изменении параметров следует учесть, что десятичные цифры преобхразуются сначала в двоично-десятичную, а затем в восьмеричную систему счисления и обратно.
Надо заменить на 2053 в зоне 0471 ячейку 0614 на
С 0340 1000 0360 7417
Исправления в будильнике для опроса дисков
Нужно изменить программу ДИСП (622 зона на 2053)- заменить 2 слова 1620-1621). В оперативной памяти это ячейки 3620 и 3621.
В ячейке 331 находится счетчик в 48-42 рр(в автокодной программе название РМЛ).
В 1617 яч. к счетчику добавляется Е42 (яч.111).
Переход по нулю в адрес 65764 не работает, т.к. на сумматоре всегда не 0.
Переходы в адреса 622.1617, 622.1620, 622.1621 для загружаемых программ проверила.
Нужна замена в формате команд:
1620) К 00 000 0331 00 011 0541 (ЗП РМЛ И Е48Е47)
1621) К 00 27 03714 16 24 77777 (ПЕ БУДИЛ УИА -1(16))
Переход в 3714 для вызова программы опроса МД.
541)Е48Е47 – есть в ДИСПе. В этом случае будильник ≈ 2сек.
Можно вместо адреса 541 взять
220)Е46П48(≈120мсек) или
103)Е48(≈5сек).
.----------------------------------------------------------------------------------. I I I I I I I I I I I ********************* I I ** Ильин А. П. ** I I ** --------------- ** I I ** (410300) ** I I ** --------------- ** I I ** Администратор ** I I ** --------------- ** I I ********************* I I I I +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ I I I I По текущей деятельности сообщаю следующее: I I I I --- М К Б - 8601 У I I I I В связи с неопределенностью сроков завершения работ по созданию I I I I открытой для модификации версиии операционной системы " Диспак " I I I I сроки подачи заявки на грант были сдвинуты. I I I I В настоящее время ведется подготовка краткого варианта I I I I Технического задания. Планируемый срок подготовки - 17.01.22 I I I I +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ I I I I --- Создание библиотеки П О Э В М: I I I I === М Л - 26 (все П О Э В М Е С) I I I I --- А О М Ц С Т -- Обнаружен архив магнитных лент Для Э В М I I I I Эльбрус - 2. Определяется состав и уточняется вопрос наличия I I I I грифов. Срок - до 17.01.22(предположительно). I I I I +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ I I I I --- В Н И И Э Ф -- Заместителю директора Р. М. Шагалиеву I I I I передана просьба о снятии грифа " Секретно" с подборки документнов I I I I подготовленной по запросу Рабочей группы. I I I I +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ I I I I --- П О Л И Т Е Х -- Ждем ответа администрации музея на письмо I I I I Рабочей группы. I I I I I I I I I .----------------------------------------------------------------------------------.
ЖЖЖЖ Ж Ж ЖЖЖЖ Ж Ж ЖЖЖ ЖЖЖЖЖ ЖЖЖ ЖЖЖЖ ЖЖЖ Ж Ж ЖЖЖЖ ЖЖЖЖЖ ЖЖЖЖ ЖЖЖ Ж ЖЖ ЖЖ Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж ЖЖ ЖЖ Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж ЖЖЖ ЖЖЖЖЖ Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж ЖЖЖ Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж ЖЖЖЖ Ж Ж Ж Ж Ж Ж ЖЖЖЖ Ж Ж Ж Ж Ж Ж Ж Ж ЖЖЖЖЖ Ж Ж ЖЖЖЖЖ Ж ЖЖЖЖЖ Ж Ж Ж Ж Ж ЖЖЖЖЖ ЖЖЖЖ Ж Ж ЖЖЖЖЖ Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж ЖЖЖЖЖ Ж Ж Ж Ж Ж Ж ЖЖЖЖЖ ЖЖЖ ЖЖЖ Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж Ж ЖЖЖЖЖ Ж ЖЖЖ Ж Ж ВХОДНАЯ ИНФОРМАЦИЯ МЛЗАГ 2053-560 МЛСТА 2053 МЛВВО 2053 МЛВЫВ 2053 СЛОЙК ДА МБКОН МБ20Т33 МБИНФ 21 МБПРО 22 ОЗУ 512К РЕСУР 371,400 НОММА 3 ГОД 2022 ДИСКО 2199 ТРГЕН МБ20Т34 УКВП Л0:0-7,Л4:0-7 НРДИС 2053,27,01 ТКАНА Ф1:0-7 ШКСВМ А0Л5-А3Л7 УСТПЛ ПЛ-80 СЭВМ ДА АРХИВ ДА ШКОПТ Ф1 ЛИСТА 6 ТТ 1 ТЕРМ VТ:1-30 МДРЗО 2052,0,37 ВЛЭВМ ◇ЭМУЛЯТОР◇◇ МД29М Л4:0-7 ЕСМЛ 4 ТМГУ ДА ИНФОРМАЦИЯ К ГЕНСУ 72000 0000056000004005 4000000000004005 0000000000004005 0000000000004005 0000000000000006 4000000000000000 0000000000003320 0000000000037121 72010 0000000000000022 7760000037600000 7777700000100000 0000000000000000 0000000000000000 4004007000100400 0000000000000003 0000000010404227 72020 3720747413031453 0000000000000000 7760000000000377 7760000000003420 3700400401274005 1743105614007417 0101010101010101 7777777700000000 72030 4000000000000000 7777777777777777 0000001777600000 0000000000000000 0000000000000000 0000000000000000 0000000077777777 0000000000000000 ЗАПИСАН ВАРИАНТ 3 КОНЕЦ ЗАДАЧИ +000000000000e+00 0001420000000000 АП Э РК И1 И2 И3 И4 И5 И6 И7 И10 И11 И12 И13 И14 И15 И16 И17 КРА ЗПСЧ 04770 04770 00007 00003 00020 00000 77772 00440 05436 00020 05430 72030 72000 00000 00003 77775 00000 00010 00000 00000 ДАТА РЕШ. ВЕРСИЯ 117 СМЕ НАЧ.ВВОДА НАЧ. РЕШ. КОН. РЕШ. КОМ.ВРЕМ. Э.РЕШ. Э.ВВ. ОСТ.ЭКС. ОСТ.ЛИМ. ОСТ.ДЕЖ. ОСТ.Б 02.01.22 06.12.88 1 10.50.55 10.50.55 10.51.03 00.00.01 03 3-0 ОС ДИСПАК ОЗУ ТРАКТЫ ВРЕМ.РЕШ. КАТЕГ. АЦПУ ВУ ТРВ ПИ ПЛ ТЕРМ МБ МД МЛ ПРМЗОН ЗАКАЗАНО: 0009 000 00.02.40 007.00 ЭМУЛЯТОР ИСПОЛЬ-НО: 0007 000 00.00.00 000.60 0000 00000 0000 0000 0000 000000 00006 00000 00000 БОБ:СИСТ*:30(07) 419900000000 З00 0 *ОС ДИСПАК * S= 0000 033.13.17 0348 ИТМ И ВТ ИМ.С.А.ЛЕБЕДЕВА АН СССР И ВЦ АН СССР *АЦПУ-0 ЭВМ-3 10.51.03* ******************************************************************************************************************************** 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
******************** ** Ильин А.П. ** ** -------------- ** ** (410300) ** ** -------------- ** ** Администратор ** **--------------- ** ******************** Новая версия И Р Б И Са: I----------------------------I-----------------------------I I Параметр I Изменения I I ++++++++ I +++++++++++ I I----------------------------I-----------------------------I I Обработка текста при I В строки можно вставлять I I вставке I разделители. длина строки I I I определяется пользователем. I I----------------------------I-----------------------------I I Обработка системных I Системные сообщения в I I сообщений в автономном I автономном режиме гасятся I I режиме работы терминала I (не отображаются) таким I I I образом пользователь не I I I рискует повреждением I I I редактируемого текста. I I----------------------------I-----------------------------I
Загрузить: https://disk.yandex.ru/d/zhurfgg5Lhl7kQ