В имитаторе Д3-28 наконец-то удалось найти и устранить (начиная с версии имитатора от 8-07-2019) неточность имитации нескольких машинных команд, связанную с битом знака R-регистров. Результат: наконец-то в имитаторе стал запускаться транслятор системы ВТ-МХТИ-128С, и теперь мы можем с этой системой познакомиться подробнее. В разделе Архив программ Д3-28 есть pdf с подробным описанием ОС ВТ-МХТИ-128С (файл b__mhti128_opisanie_s_kassety-20.pdf в строке "кассета 20 В"), и есть pdf с описанием языка программирования ВТ-МХТИ (файл b__mhti128_qzyk_progr__k24b.pdf в строке "кассета 24 В"). Также там есть байт-коды для загрузки ОС ВТ-МХТИ-128С в имитатор - это файл k20a_mhti-128__KP-1431.txt (в строке "кассета 20 А") или файл k21a_mhti-128c__KP-5227.txt (в строке "кассета 21 А"), у них различны только загрузчики. Для опытов возьмём, например, последний из них: k21a_mhti-128c__KP-5227.txt. Открываем его в свежезапущенном имитаторе и звгружаем систему "с МЛ в ОЗУ машины" - нажимаем по очереди клавиши <L>, <K>, <C>, <S>. Будут мигать индикаторы ОМ и ОП на табло машины - так загрузчик отображает чтение нужных блоков и пропуски дублей. (Кстати, файл k20a_mhti-128__KP-1431.txt загружается в имитаторе гораздо быстрее, но менее "зрелищно"; в повторных опытах лучше для быстроты загрузки брать его.) В меню View > Display переходим к просмотру "экрана дисплея", сбрасываем в ноль параметры служебной строки (клавишами <F8>, <F9>, <F8>), включаем ДУП-ЛИН клавишей <F5>. По окончании загрузки система выводит на экран своё название и дату версии: ОС ВТ-128-МХТИ 27.12.87 и затем в верхней строке печатает приглашение к вводу команд "Монитора Операционной Системы" - символы "МОС:". Выполним опыт, не самый примитивный для машинки Д3-28, - скомпилируем и попробуем запустить многомодульную программу. Пример такой программы с исходным кодом, составленным в ОС ВТ-МХТИ-128С, имеется в Архиве программ Д3-28 на "кассете 24 А" - в раскодировке k24a_prg-4-17.txt. В меню File закрываем предыдущий файл и открываем файл k24a_prg-4-17.txt. Список имеющихся в нём модулей можно увидеть по команде МОС: Мл: Каталог Т:Д. Для этого надо нажать латинскую <М>, затем <K> и <D>. Система читает заголовочные записи, выводит на экран информацию о файлах, найденных ею на "магнитной ленте", и, дойдя до записи "конец библиотеки", снова в верхней строке печатает приглашение "МОС:". Вот скриншот этой стадии, перед приглашением МОС: Видим, что на "ленте" k24a_prg-4-17.txt имеется 14 записей исходных программок (ИП). Две последние ИП дублируют пару файлов из начала списка, поэтому мы будем "читать с ленты" в "библиотеку монитора" только первые 12 файлов. Для этого даём команду Мл:Чт:Группу прог номера:1-12, нажимаем пару раз <Пробел>, и затем <D>. Чтение файлов с ленты система отображает на экране так же, как и вывод каталога файлов. Очистим экран клавишей <F9>. В имитаторе при этом снова устанавливаются начальные значения параметров служебной строки, и мы каждый раз сбрасываем их в ноль: <F8>, <F9>, <F8>. Текущее содержимое "библиотеки монитора" смотрим командой Библ: Каталог, нажав латинские клавиши <B> и <K> Замечаем, что здесь десять ИП имеют имя с "кодом" - с номером после символа /, а две ИП такого кода не имеют. Уважаемый Виталий любезно предоставил скан пояснений из письма уважаемого автора программ, где говорится, что все программы с кодом надо компилировать, а программы без кода система ВТ-МХТИ-128С вызывает по ходу компиляции сама. Даём команду МОС:Компиляция:Группы ИП номера:1-9 :12 . На предложение указать номера программ, вызываемых при компиляции, отвечаем клавишей <Пробел> - тогда система сама их определит, по тексту исходного кода программ. Тип вывода информации (Т:) указываем клавишей <Пробел> (если же указать дисплей, нажав <D>, то на экране начнёт печататься листинг исходного кода; это в имитаторе занимает много времени, так как программки довольно большие. Листинг, в том числе с выводом на ТПУ, можно сделать потом). По ходу компиляции надо обратить внимание на значения параметра АМ (это "адрес массивов") в различных модулях, и для дальнейших целей запомнить наибольшее значение АМ. Ход компиляции система отображает на экране дисплея: Заполнив 24 строки экрана, система приостанавливает вывод; для продолжения надо нажимать <Пробел> (либо надо ещё до того клавишей <F> вызвать настройку формата вывода и задать большее количество строк). Продолжение и окончание компиляции: Образующиеся при компиляции рабочие программы (РП) система вносит в "библиотеку монитора", и присваивает им номера, следующие подряд за номерами уже имеющихся в библиотеке программ. На экране это отображается так: РП -> библ 13, РП -> библ 14, и т. д. В нашем примере ИП имеют номера от 1 до 12, а РП имеют номера от 13 до 22. Запишем все десять РП на "новую кассету", чтобы, если потребуется, в дальнейших опытах не компилировать исходные модули заново, а загружать готовые РП в машину с МЛ. Для этого в меню File имитатора закрываем файл k24a_prg-4-17.txt и открываем заранее созданный пустой txt-файл; в нашем примере пусть это будет файл с именем my_rp_k24a.txt. Чтобы старые строки на экране не мешали наблюдать появление новых, по мере надобности очищаем экран, как рассказано выше. Чтобы на "новой кассете" нумерация записей не продолжала нумерацию записей предыдущей кассеты, а началась с единицы, даём команду МЛ, затем Пр:0, и нажимаем <Пробел>. Клавишами <Z>, <G> и т. д. даём команду Зп:Группу прог номера:13-22: <Пробел> Т:Д После окончания записи программ даём клавишами <M>, <Z>, <K> команду записи признака "конец библиотеки": Зп:КБ. Итак, компиляция многомодульного проекта прошла успешно - без сообщений об ошибках, результат сохранён, приступаем к его испытанию. В упомянутом рукописном пояснении говорится, что в этом примере запускать на исполнение следует РП с именем ОПИС/1. Даём команду "исполнить", подтверждая клавишей <Пробел> запуск указанной РП с номером билиотечной версии 1: МОС:Исполнить:РП имя:ОПИС/1 в= 1: Принимая эту команду, система печатает на экране начальное значение "адреса массивов" АМ = 6480. С ним мы не станем соглашаться. В описании системы говорится, если я правильно понял, что в многомодульном проекте адрес массивов должен быть единым для всех модулей. Поэтому следует ввести наибольшее значение АМ (и нажать <Пробел>). В нашем примере это есть установленное в ходе компиляции программки СТАТ/35 значение АМ = 16352; его и вводим. Система печатает принятое значение АМ и просит подтвердить наш выбор. Вот так выглядит эта командная строка "на экране дисплея" в имитаторе перед нажатием подтверждающего <Пробела>: После нажатия <Пробела> командная строка очищается, и в ней система печатает приглашение уже от "монитора рабочих программ" - это символы "МРП:" Нажимаем латинскую клавишу <P>, означающую команду Пуск. С этого момента ОС ВТ-МХТИ-128С начинает исполнение рабочих программ, входящих в данный многомодульный комплекс. На экране появляется "меню" комплекса программ: Выполним какие-нибудь из предлагаемых действий для иллюстрации работоспособности получившихся РП (правда, не всё работает; например, зависают запись и считывание с МЛ. Но автор программ предупреждал в пояснении: эти пользовательские программы не доделаны). Выберем, для эксперимента, пункт "1. Начальный запуск". Появляется вопрос: ВЫ УВЕРЕНЫ, ЧТО ЭТО НУЖНО ? (ДА, НЕТ) (Хороший вопрос... и впрямь задумаешься 🙂 ... Не уверены, но жмём <D>, т. е. "да". Повторяется вывод того же меню. Тогда пробуем выбрать пункт 2. На вопрос об изменении размеров массива отвечаем "да". В ответ на предложение ввести количество строк и столбцов вводим для примера 8 и 8, подтверждая ввод чисел нажатием <Enter> (на реальном терминале это была бы клавиша ПС). Введённые значения появляются в информационной таблице. На повторный вопрос об изменении размера массива отвечаем <N>, т. е. "нет". Очистить массив соглашаемся. Экран очищается, и система рисует таблицу 8х8. В правом верхнем углу виден текущий формат чисел "F1.3", слева внизу - приглашение смотреть "Справку": Ясное дело, "справку" надо посмотреть. Нажимаем <S>. Появляется таблица с пояснениями и приглашение выбрать команду: Здесь видно, что команды в этой программе задаются не только буквенными клавишами, но и специальными клавишами терминала 15ИЭ-00-013. Выберем команду Ф (нажмём <F>). Появляется запрос количества цифр в целой и в дробной частях числа; вводим для примера 1 и 1. Система умная - снова рисует изображение таблицы 8х8, но теперь её горизонтальный размер уменьшился в соответствии с "укоротившимся" форматом чисел: "Справка" подсказывает, что перед вводом числа в ячейку таблицы надо нажимать клавишу терминала с изображением "стрелка вниз с точкой". На клавиатуре ПК нет такой клавиши. Но из документации к терминалу известен байт-код этой клавиши: 0002. Этот код терминал выдаёт также при нажатии СУ Б. В имитаторе нажатие СУ имитируется нажатием (с отпусканием) <CapsLock>; затем нажимаем латинскую <B>, и ещё раз (с отпусканием) <CapsLock> - тем самым отпускаем СУ. В ячейке с курсором появляется двоеточие, это приглашаение к вводу числа. Вводим цифру целой части какого-нибудь числа, точку, цифру дробной части, и нажимаем <Enter> - это как бы ПС. Таким путём можем заполнить всю таблицу массива: Заполнив таблицу, пробуем вывести её на печать - на ТПУ. В имитаторе ТПУ включается клавишей <Home>. И, как учит "Справка", даём команду В, т. е. <W>. Задаём "вывод фрагмента со строки" 1, "количество строк" 20 - чтобы охватить большую часть экрана, с запасом, так как вывод на ТПУ здесь, по-видимому, реализован блочной передачей строк с экрана. В txt-файле появляется наша табличка с массивом: Завершение работы в этом пользовательском комплексе тоже работает нормально: нажатием <K> попадаем в исходное меню, и затем после нажатия ВК, т.е. <Backspace>, возвращаемся к приглашению МРП. Для возврата в "Монитор Операционной Системы" нажимаем <М>; появляется приглашение "МОС:". Посмотрим, работает ли листинг. (В прежних версиях имитатора, до 8.07.2019, система МХТИ-128С вместо листинга выводила на экран сообщение "ошибка: не описано имя программы"; из-за неправильной имитации работы с битом знака в некоторых командах система воспринимала любую ИП как "вложенную" и требовала упоминания её имени в "основной" программе). Для примера даём команду листинга ИП УПРА/2, библиотечный номер версии "в=1". Вот начало этого листинга: Всё нормально, листинг работает. Листинг всех 12 исходных программ данного примера (включая примеры редактирования ИП) приведён в Для проверки работоспособности записанных на ленту ранее скомпилированных рабочих программ (РП) выполняем сначала рестарт имитатора (клавишей <Escape>) и новый запуск ОС ВТ-МХТИ-128С. Затем "читаем с МЛ" десять РП из ранее записанного файла my_rp_k24a.txt: Как и раньше, запускаем на исполнение РП ОПИС/1 со значением АМ = 16352 (а можно и побольше взять значение АМ, например 17000). Всё нормально: система работает так же, как непосредственно после компиляции ИП. Например, можем выбрать пункт 2 в меню комплекса программ, ответить "нет" на предложения об изменении размеров массива и о его очистке, и затем перейти к просмотру "Справки". Можно выполнить опыт, подтверждающий, что "комплекс программ" здесь работает действительно как многомодульная система. Для этого после рестарта имитатора и нового запуска ОС ВТ-МХТИ-128С прочтём из файла my_rp_k24a.txt не десять, а девять РП, т. е. не будем загружать в ОЗУ файл РП СПРА/32. Тогда по ходу исполнения РП ОПИС/1 и пункта 2 в меню комплекса программ мы не сможем как раньше перейти к просмотру "Справки" - она осталась в незагруженном файле. А если не загружать (или удалить командой МОС "библиотека, чистка") файл УПРА/2, то и меню комплекса программ будет недоступным, - машинка зависнет сразу после запуска РП ОПИС/1. Ещё один пример многомодульной пользовательской разработки - вариант этого же "комплекса программ" на кассете "108 сторона А", раскодировка имеется в файле k108a_p1-8.txt.Там два раза записаны четыре исходных модуля, так что загружать в библиотеку монитора достаточно четыре первые записи: МАСС/1, ВЫЗО/2, ВЫЧИ/3, ВЕМА. Компилировать (как группу исходных программ) можно первые три из них; затем запускать на исполнение - РП МАСС/1. Листинги исходных модулей и скриншоты запуска приведены в Интересно также, что "загрузчик" в файле k21a_mhti-128c__KP-5227.txt содержит и "генератор" системы ВТ-МХТИ-128С. В реальности он выполнял резервную запись системы (включая такого же "загрузчика") на новую МЛ. В имитаторе такая генерация системы тоже работает (но, конечно, не на МЛ, а в новый txt-файл). Инструкция, имеющаяся в рукописном пояснении к кассете "24 А", гласит: Для запуска ОС ВТ-МХТИ-128С (загруженной загрузчиком с контрольной суммой = 5227) с последующей генерацией надо: . на пульте машины вместо S нажать два раза кнопку с "треугольником" (в имитаторе - два раза нажать клавишу <T>), (Конечно, помимо проверки этой системы в имитаторе такое копирование раскодировки не имеет смысла; на компьютере создать копию txt-файла проще без имитатора :- ) В имитаторе Д3-28 наконец-то удалось найти и устранить (начиная с версии имитатора от 8-07-2019) неточность имитации нескольких машинных команд, связанную с битом знака R-регистров. Результат: наконец-то в имитаторе стал запускаться транслятор системы ВТ-МХТИ-128С, и теперь мы можем с этой системой познакомиться подробнее. В разделе Архив программ Д3-28 есть pdf с подробным описанием ОС ВТ-МХТИ-128С (файл b__mhti128_opisanie_s_kassety-20.pdf в строке "кассета 20 В"), и есть pdf с описанием языка программирования ВТ-МХТИ (файл b__mhti128_qzyk_progr__k24b.pdf в строке "кассета 24 В"). Также там есть байт-коды для загрузки ОС ВТ-МХТИ-128С в имитатор - это файл k20a_mhti-128__KP-1431.txt (в строке "кассета 20 А") или файл k21a_mhti-128c__KP-5227.txt (в строке "кассета 21 А"), у них различны только загрузчики. Для опытов возьмём, например, последний из них: k21a_mhti-128c__KP-5227.txt. Открываем его в свежезапущенном имитаторе и звгружаем систему "с МЛ в ОЗУ машины" - нажимаем по очереди клавиши <L>, <K>, <C>, <S>. Будут мигать индикаторы ОМ и ОП на табло машины - так загрузчик отображает чтение нужных блоков и пропуски дублей. (Кстати, файл k20a_mhti-128__KP-1431.txt загружается в имитаторе гораздо быстрее, но менее "зрелищно"; в повторных опытах лучше для быстроты загрузки брать его.) В меню View > Display переходим к просмотру "экрана дисплея", сбрасываем в ноль параметры служебной строки (клавишами <F8>, <F9>, <F8>), включаем ДУП-ЛИН клавишей <F5>. По окончании загрузки система выводит на экран своё название и дату версии: ОС ВТ-128-МХТИ 27.12.87 и затем в верхней строке печатает приглашение к вводу команд "Монитора Операционной Системы" - символы "МОС:". Выполним опыт, не самый примитивный для машинки Д3-28, - скомпилируем и попробуем запустить многомодульную программу. Пример такой программы с исходным кодом, составленным в ОС ВТ-МХТИ-128С, имеется в Архиве программ Д3-28 на "кассете 24 А" - в раскодировке k24a_prg-4-17.txt. В меню File закрываем предыдущий файл и открываем файл k24a_prg-4-17.txt. Список имеющихся в нём модулей можно увидеть по команде МОС: Мл: Каталог Т:Д. Для этого надо нажать латинскую <М>, затем <K> и <D>. Система читает заголовочные записи, выводит на экран информацию о файлах, найденных ею на "магнитной ленте", и, дойдя до записи "конец библиотеки", снова в верхней строке печатает приглашение "МОС:". Вот скриншот этой стадии, перед приглашением МОС: Видим, что на "ленте" k24a_prg-4-17.txt имеется 14 записей исходных программок (ИП). Две последние ИП дублируют пару файлов из начала списка, поэтому мы будем "читать с ленты" в "библиотеку монитора" только первые 12 файлов. Для этого даём команду Мл:Чт:Группу прог номера:1-12, нажимаем пару раз <Пробел>, и затем <D>. Чтение файлов с ленты система отображает на экране так же, как и вывод каталога файлов. Очистим экран клавишей <F9>. В имитаторе при этом снова устанавливаются начальные значения параметров служебной строки, и мы каждый раз сбрасываем их в ноль: <F8>, <F9>, <F8>. Текущее содержимое "библиотеки монитора" смотрим командой Библ: Каталог, нажав латинские клавиши <B> и <K> Замечаем, что здесь десять ИП имеют имя с "кодом" - с номером после символа /, а две ИП такого кода не имеют. Уважаемый Виталий любезно предоставил скан пояснений из письма уважаемого автора программ, где говорится, что все программы с кодом надо компилировать, а программы без кода система ВТ-МХТИ-128С вызывает по ходу компиляции сама. Даём команду МОС:Компиляция:Группы ИП номера:1-9 :12 . На предложение указать номера программ, вызываемых при компиляции, отвечаем клавишей <Пробел> - тогда система сама их определит, по тексту исходного кода программ. Тип вывода информации (Т:) указываем клавишей <Пробел> (если же указать дисплей, нажав <D>, то на экране начнёт печататься листинг исходного кода; это в имитаторе занимает много времени, так как программки довольно большие. Листинг, в том числе с выводом на ТПУ, можно сделать потом). По ходу компиляции надо обратить внимание на значения параметра АМ (это "адрес массивов") в различных модулях, и для дальнейших целей запомнить наибольшее значение АМ. Ход компиляции система отображает на экране дисплея: Заполнив 24 строки экрана, система приостанавливает вывод; для продолжения надо нажимать <Пробел> (либо надо ещё до того клавишей <F> вызвать настройку формата вывода и задать большее количество строк). Продолжение и окончание компиляции: Образующиеся при компиляции рабочие программы (РП) система вносит в "библиотеку монитора", и присваивает им номера, следующие подряд за номерами уже имеющихся в библиотеке программ. На экране это отображается так: РП -> библ 13, РП -> библ 14, и т. д. В нашем примере ИП имеют номера от 1 до 12, а РП имеют номера от 13 до 22. Запишем все десять РП на "новую кассету", чтобы, если потребуется, в дальнейших опытах не компилировать исходные модули заново, а загружать готовые РП в машину с МЛ. Для этого в меню File имитатора закрываем файл k24a_prg-4-17.txt и открываем заранее созданный пустой txt-файл; в нашем примере пусть это будет файл с именем my_rp_k24a.txt. Чтобы старые строки на экране не мешали наблюдать появление новых, по мере надобности очищаем экран, как рассказано выше. Чтобы на "новой кассете" нумерация записей не продолжала нумерацию записей предыдущей кассеты, а началась с единицы, даём команду МЛ, затем Пр:0, и нажимаем <Пробел>. Клавишами <Z>, <G> и т. д. даём команду Зп:Группу прог номера:13-22: <Пробел> Т:Д После окончания записи программ даём клавишами <M>, <Z>, <K> команду записи признака "конец библиотеки": Зп:КБ. Итак, компиляция многомодульного проекта прошла успешно - без сообщений об ошибках, результат сохранён, приступаем к его испытанию. В упомянутом рукописном пояснении говорится, что в этом примере запускать на исполнение следует РП с именем ОПИС/1. Даём команду "исполнить", подтверждая клавишей <Пробел> запуск указанной РП с номером билиотечной версии 1: МОС:Исполнить:РП имя:ОПИС/1 в= 1: Принимая эту команду, система печатает на экране начальное значение "адреса массивов" АМ = 6480. С ним мы не станем соглашаться. В описании системы говорится, если я правильно понял, что в многомодульном проекте адрес массивов должен быть единым для всех модулей. Поэтому следует ввести наибольшее значение АМ (и нажать <Пробел>). В нашем примере это есть установленное в ходе компиляции программки СТАТ/35 значение АМ = 16352; его и вводим. Система печатает принятое значение АМ и просит подтвердить наш выбор. Вот так выглядит эта командная строка "на экране дисплея" в имитаторе перед нажатием подтверждающего <Пробела>: После нажатия <Пробела> командная строка очищается, и в ней система печатает приглашение уже от "монитора рабочих программ" - это символы "МРП:" Нажимаем латинскую клавишу <P>, означающую команду Пуск. С этого момента ОС ВТ-МХТИ-128С начинает исполнение рабочих программ, входящих в данный многомодульный комплекс. На экране появляется "меню" комплекса программ: Выполним какие-нибудь из предлагаемых действий для иллюстрации работоспособности получившихся РП (правда, не всё работает; например, зависают запись и считывание с МЛ. Но автор программ предупреждал в пояснении: эти пользовательские программы не доделаны). Выберем, для эксперимента, пункт "1. Начальный запуск". Появляется вопрос: ВЫ УВЕРЕНЫ, ЧТО ЭТО НУЖНО ? (ДА, НЕТ) (Хороший вопрос... и впрямь задумаешься 🙂 ... Не уверены, но жмём <D>, т. е. "да". Повторяется вывод того же меню. Тогда пробуем выбрать пункт 2. На вопрос об изменении размеров массива отвечаем "да". В ответ на предложение ввести количество строк и столбцов вводим для примера 8 и 8, подтверждая ввод чисел нажатием <Enter> (на реальном терминале это была бы клавиша ПС). Введённые значения появляются в информационной таблице. На повторный вопрос об изменении размера массива отвечаем <N>, т. е. "нет". Очистить массив соглашаемся. Экран очищается, и система рисует таблицу 8х8. В правом верхнем углу виден текущий формат чисел "F1.3", слева внизу - приглашение смотреть "Справку": Ясное дело, "справку" надо посмотреть. Нажимаем <S>. Появляется таблица с пояснениями и приглашение выбрать команду: Здесь видно, что команды в этой программе задаются не только буквенными клавишами, но и специальными клавишами терминала 15ИЭ-00-013. Выберем команду Ф (нажмём <F>). Появляется запрос количества цифр в целой и в дробной частях числа; вводим для примера 1 и 1. Система умная - снова рисует изображение таблицы 8х8, но теперь её горизонтальный размер уменьшился в соответствии с "укоротившимся" форматом чисел: "Справка" подсказывает, что перед вводом числа в ячейку таблицы надо нажимать клавишу терминала с изображением "стрелка вниз с точкой". На клавиатуре ПК нет такой клавиши. Но из документации к терминалу известен байт-код этой клавиши: 0002. Этот код терминал выдаёт также при нажатии СУ Б. В имитаторе нажатие СУ имитируется нажатием (с отпусканием) <CapsLock>; затем нажимаем латинскую <B>, и ещё раз (с отпусканием) <CapsLock> - тем самым отпускаем СУ. В ячейке с курсором появляется двоеточие, это приглашаение к вводу числа. Вводим цифру целой части какого-нибудь числа, точку, цифру дробной части, и нажимаем <Enter> - это как бы ПС. Таким путём можем заполнить всю таблицу массива: Заполнив таблицу, пробуем вывести её на печать - на ТПУ. В имитаторе ТПУ включается клавишей <Home>. И, как учит "Справка", даём команду В, т. е. <W>. Задаём "вывод фрагмента со строки" 1, "количество строк" 20 - чтобы охватить большую часть экрана, с запасом, так как вывод на ТПУ здесь, по-видимому, реализован блочной передачей строк с экрана. В txt-файле появляется наша табличка с массивом: Завершение работы в этом пользовательском комплексе тоже работает нормально: нажатием <K> попадаем в исходное меню, и затем после нажатия ВК, т.е. <Backspace>, возвращаемся к приглашению МРП. Для возврата в "Монитор Операционной Системы" нажимаем <М>; появляется приглашение "МОС:". Посмотрим, работает ли листинг. (В прежних версиях имитатора, до 8.07.2019, система МХТИ-128С вместо листинга выводила на экран сообщение "ошибка: не описано имя программы"; из-за неправильной имитации работы с битом знака в некоторых командах система воспринимала любую ИП как "вложенную" и требовала упоминания её имени в "основной" программе). Для примера даём команду листинга ИП УПРА/2, библиотечный номер версии "в=1". Вот начало этого листинга: Всё нормально, листинг работает. Листинг всех 12 исходных программ данного примера (включая примеры редактирования ИП) приведён в Для проверки работоспособности записанных на ленту ранее скомпилированных рабочих программ (РП) выполняем сначала рестарт имитатора (клавишей <Escape>) и новый запуск ОС ВТ-МХТИ-128С. Затем "читаем с МЛ" десять РП из ранее записанного файла my_rp_k24a.txt: Как и раньше, запускаем на исполнение РП ОПИС/1 со значением АМ = 16352 (а можно и побольше взять значение АМ, например 17000). Всё нормально: система работает так же, как непосредственно после компиляции ИП. Например, можем выбрать пункт 2 в меню комплекса программ, ответить "нет" на предложения об изменении размеров массива и о его очистке, и затем перейти к просмотру "Справки". Можно выполнить опыт, подтверждающий, что "комплекс программ" здесь работает действительно как многомодульная система. Для этого после рестарта имитатора и нового запуска ОС ВТ-МХТИ-128С прочтём из файла my_rp_k24a.txt не десять, а девять РП, т. е. не будем загружать в ОЗУ файл РП СПРА/32. Тогда по ходу исполнения РП ОПИС/1 и пункта 2 в меню комплекса программ мы не сможем как раньше перейти к просмотру "Справки" - она осталась в незагруженном файле. А если не загружать (или удалить командой МОС "библиотека, чистка") файл УПРА/2, то и меню комплекса программ будет недоступным, - машинка зависнет сразу после запуска РП ОПИС/1. Ещё один пример многомодульной пользовательской разработки - вариант этого же "комплекса программ" на кассете "108 сторона А", раскодировка имеется в файле k108a_p1-8.txt.Там два раза записаны четыре исходных модуля, так что загружать в библиотеку монитора достаточно четыре первые записи: МАСС/1, ВЫЗО/2, ВЫЧИ/3, ВЕМА. Компилировать (как группу исходных программ) можно первые три из них; затем запускать на исполнение - РП МАСС/1. Листинги исходных модулей и скриншоты запуска приведены в Интересно также, что "загрузчик" в файле k21a_mhti-128c__KP-5227.txt содержит и "генератор" системы ВТ-МХТИ-128С. В реальности он выполнял резервную запись системы (включая такого же "загрузчика") на новую МЛ. В имитаторе такая генерация системы тоже работает (но, конечно, не на МЛ, а в новый txt-файл). Инструкция, имеющаяся в рукописном пояснении к кассете "24 А", гласит: Для запуска ОС ВТ-МХТИ-128С (загруженной загрузчиком с контрольной суммой = 5227) с последующей генерацией надо: . на пульте машины вместо S нажать два раза кнопку с "треугольником" (в имитаторе - два раза нажать клавишу <T>), (Конечно, помимо проверки этой системы в имитаторе такое копирование раскодировки не имеет смысла; на компьютере создать копию txt-файла проще без имитатора :- )ОС ВТ-МХТИ-128С (примеры работы в имитаторе)
. ввести в регистр Х желаемое количество дублей блоков в блочной записи,
. поставить чистую кассету (в имитаторе - открыть заранее созданный пустой txt-файл),
. нажать S. Машина выполнит запись.
. для выхода из режима генерации в режим работы нажать на пульте машины кнопку "треугольник" и затем кнопку СК (в имитаторе - нажать клавишу <T> и затем клавишу <X>).
. ввести в регистр Х желаемое количество дублей блоков в блочной записи,
. поставить чистую кассету (в имитаторе - открыть заранее созданный пустой txt-файл),
. нажать S. Машина выполнит запись.
. для выхода из режима генерации в режим работы нажать на пульте машины кнопку "треугольник" и затем кнопку СК (в имитаторе - нажать клавишу <T> и затем клавишу <X>).
Форум
Навигация ФорумаПожалуйста Вход или Регистрация для создания записей и тем.ОС ВТ-МХТИ-128С (примеры работы в имитаторе)
#1 · 22.07.2019, 04:27Nikolay Kimlik отреагировал на эту запись.Nikolay Kimlik