Важная информация

User Tag List

Результаты опроса: Вам интересена поддержка Y2K и другие улучшения в ранних версиях ОС RT-11?

Голосовавшие
17. Вы ещё не участвовали в этом опросе
  • Да ! В идеале надо патчить всё !

    11 64.71%
  • Только RT-11 V5.x .

    2 11.76%
  • Только TSX-Plus .

    0 0%
  • Мне всё равно, я и так счастлив )

    4 23.53%
Страница 15 из 17 ПерваяПервая ... 11121314151617 ПоследняяПоследняя
Показано с 141 по 150 из 161

Тема: ОС RT-11 и поддержка Y2K !!!

  1. #141
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    В общем, моё мнение - надо выбрать несколько систем и пропатчить их на уровне исходников, вписав изменения прямо в KMON.
    KMON мало.
    Нужно еще в RMON подправить вызовы .SDTTM и .SFDAT.
    С RMON все просто, с KMON придется немного повозиться - там команды раскиданы по оверлеям, и навскидку попытка просто добавить нужный код в V5.0 к примеру приведет к выходу за рамки оверлея.
    Но в целом решаемо.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  2. Этот пользователь поблагодарил form за это полезное сообщение:

    hobot (09.12.2020)

  3. #142
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я тут подумал и пришел к выводу, что все эти дела, в действительности, никому не нужны. А что действительно нужно - это пропатчить три сгенерированные системы - RT11DS, RT11CD и ADOSSJ. Увы от всех трех систем в наличии только собранные файлы системы: RT11DS.SYS, RT11CD.SYS, ADOSSJ.SYS, и всё! Никаких исходников, никаких мапов, никаких объектных модулей - ничего! Поэтому вопрос: что-нибудь можно сделать, или как? Да, программу DIR.SAV можно просто заменить чем-то посвежее, что-то еще из внешних программ можно будет пропатчить позже или тоже заменить на версии посвежее, но все три ядра системы надо патчить так, как они есть.


    form, что скажешь? И вообще, опиши изменения, вносимые патчами, желательно с фрагментами исходников. Чтобы можно было найти нужные места по коду и перетереть их, допустим, DESS-ом.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  4. #143
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    опиши изменения, вносимые патчами, желательно с фрагментами исходников.
    В системе пропатчить надо несколько мест: KMON (команда DATE), RMON (вызовы .SDTTM, .SFDAT и код перевода даты если он включен в систему).
    Под рукой сейчас нету фрагментов, но их можно посмотреть в исходниках v5.7 и сравнить с v5.6 - они наиболее близки, при сравнении как раз будет видно разницу y2k в данных местах.
    Посмотреть же исходный код того от чего нет исходников легко - подойдет скорее всего 5.00 или 5.02.
    Я начинал писать драйвер который при загрузке в память патчил бы RMON и отслеживал загрузку KMON, но руки не дошли.
    Если кому не лень, идея такая:
    • фрагменты кода которые отвественны за нужное начиная с версии 4.0 и до самого 5.6 существуют всего в двух-трех вариантах (код .SFDAT не существует для v4 [v5.7 не считаем - его не нужно править]), это относится и к рафосам-фодосам.
    • код RMON ищется прямо в памяти и оттуда переставляются ссылки в драйвер
    • начальный блок KMON (нужно будет вычислить номер блока на диске - берется из области каналов после открытия файла) и точка входа DATE в файле монитора ищется анализом файла монитора (начальное смещение можно найти в загрузчике, на память не подскажу)
    • сам драйвер сохраняет адрес подпрограммы QCOMP (смещение 270 кажется), прописывает туда свой адрес и в момент входа в него (сразу после завершения чтения) проверяет было ли чтение по системному каналу (SYSCH), проверяет был ли прочитан KMON (он всегда читается по начальному номеру блока в файле и читается целиком), и прямо в буфере куда KMON был прочитан (берется из смещения Q$BUFF пакета [на входе если склероз не врет R4 будет содержать адрес xxCQE системного драйвера, оттуда можно взять адрес I/O пакета]), после чего отдать управление системной QCOMP.
    • проверять чтение нужно именно по использованию SYSCH, а не по индексу устройства чтобы не патчить результат команды COPY например (при этом не нужно проверять индекс устройства - всегда будет SY и тип операции - всегда будет чтение).


    Есть еще такое понятие как RMON patch space - это пустое место в конце RMON, его размер где-то в загрузчике хранится - туда можно вписать код для вызова и вызывать его через смещение относительно @#54. Это способ пропатчить прямо сам файл, но беда в том, что размер patch space разный, и он может быть недостаточным чтобы впихнуть в него нужный код.

    У меня пока не будет времени заниматься этим. Если найду заготовки к драйверу - выложу.
    Последний раз редактировалось form; 21.04.2022 в 11:15.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  5. #144
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Я начинал писать драйвер который при загрузке в память патчил бы RMON и отслеживал загрузку KMON
    Напомиаю еще раз: драйвер хорош, когда есть много памяти. А у нас есть три системы SJ, которые даже не FB/SB, а примитивные мониторы, которые даже операцию ввода-вывода останавливают не отработкой всех последовательностей завершения, а банальной командой RESET. И процессоры, на которых им предстоит работать, обычно, БЕЗ диспетчера памяти, а попадаются и машинки с памятью меньшей, чем 28К - допустим, ЦП М2 с одной платой П3 (20К слов), а то и с 16К слов. Недавно консультировал одного коллегу, так он пытался запустить RT11 на Э-60 (ЦП М2) с 8К слов. Да, не то, чтобы осмысленно работать, а просто запустить - тем не менее...

    То есть, очень желателен именно двоичный патч, который можно было бы внести даже DESS'ом. Ты же, помнится, при патче даже что-то там оптимизировал, чтобы влезть куда-то (в оверлейный сегмент, кажется). Так вот, здесь задача еще более жесткая - надо влезть в собранную систему, и чтобы она работала. Можно, вероятно, грохнуть какую-либо команду, только вот ненужную команду у RT11 я знаю одну - BACKUP/RESTORE, и ее в моей любимой RT11DS (SJ) уже грохнули.

    Цитата Сообщение от form Посмотреть сообщение
    Есть еще такое понятие как RMON patch space - это пустое место в конце RMON, его размер где-то в загрузчике хранится - туда можно вписать код для вызова и вызывать его через смещение относительно @#54. Это способ пропатчить прямо сам файл, но беда в том, что размер patch space разный, и он может быть недостаточным чтобы впихнуть в него нужный код.
    А вот это может быть решением - в тех собранных системах это пространство, если его, конечно, не заняли, уже никому не потребуется - единственная доработка, которая требуется этим системам - RT11DS (SJ), RT11CD и ADOSSJ - это Y2k, так, что всё, что там оставили - наше.
    Последний раз редактировалось AFZ; 11.09.2022 в 05:09.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  6. #145
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Напомиаю еще раз: драйвер хорош, когда есть много памяти.
    Драйвер поддержки Y2K должен уложиться в несколько слов.
    Резидентная часть минимальная, нерезидентная глубоко пофигу лежит она внутри файла монитора или за его пределами.
    Цитата Сообщение от AFZ Посмотреть сообщение
    двоичный патч
    Патч поверх системы можно внести если там есть для этого место.
    Довольно небольшое, но часто и его нет.

    Цитата Сообщение от AFZ Посмотреть сообщение
    Можно, вероятно, грохнуть какую-либо команду, только вот ненужную команду
    Это настолько нифига не даст, что даже рассматривать не стоит. Разве что нужно освободить 3-4 слова, но столько обычно и так найдется.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  7. #146
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    435
    Спасибо Благодарностей отдано 
    110
    Спасибо Благодарностей получено 
    321
    Поблагодарили
    124 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А в чем проблема с Y2K? Я какую-то систему заюзал от патрона наверное и она нормально к датам относится. (собственно скрин вон в теме про подключение старого компа к новому монитору). Какие-то вещи факапнулись, но в основном вон все даты точно написаны.
    https://zx-pk.ru/threads/34641-rgbdi...92#post1162592
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  8. #147
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    А в чем проблема с Y2K?
    С Y2K проблем нет, начиная от того, что последняя версия в принципе изначально поддерживает даты до 2099 года без всяких переделок вместе со всеми утилитами, кончая тем, что известно что переделать в любой веросии системы.
    Но насколько я понял хочется "именно вот это" уже собранное, исходников нет, карты памяти нет, как на планете щелезяка.

    - - - Добавлено - - -

    Цитата Сообщение от AFZ Посмотреть сообщение
    А вот это может быть решением
    Самый простой способ (если нет карты памяти) - найти RMON stack.
    Секция PATCH$ идет сразу после него и до границы блока.
    Стек ищется легко: он забит словами 125252.
    На примере RT-11SJ V5.0 из дистрибутива:
    Код:
    BLOCK NUMBER  000046
    000/ 000207 125252 125252 125252 125252 125252 125252 125252 *..***************
    020/ 125252 125252 125252 125252 125252 125252 125252 125252 ******************
    040/ 125252 125252 125252 125252 125252 125252 125252 125252 ******************
    060/ 125252 125252 125252 125252 125252 125252 125252 125252 ******************
    100/ 125252 125252 125252 125252 125252 125252 125252 125252 ******************
    120/ 125252 125252 125252 125252 125252 125252 125252 125252 ******************
    140/ 125252 000000 000000 000000 000000 000000 000000 000000 ***..............*
    160/ 000000 000000 000000 000000 000000 000000 000000 000000 *................*
    200/ 000000 000000 000000 000000 000000 000000 000000 000000 *................*
    Здесь видно, что секция PATCH$ начинается по смещению 46142, размер 636 (414.) байт.
    Проверяем по карте памяти:
    Код:
     PATCH$  046142 000636 = 207.   words  (RW,I,LCL,REL,CON)
                            $RMEND  046142
    Все точно.
    Вот эти 207 слов мы можем добавить к RMON во время загрузки системы.
    По смещению 4736 находится размер в виде $RMEND-KMON, его нужно увеличить на нужное количество байт.
    Последний раз редактировалось form; 12.09.2022 в 08:53.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  9. #148
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Самый простой способ (если нет карты памяти) - найти RMON stack.
    Секция PATCH$ идет сразу после него и до границы блока.
    Заглянул внутрь RT11DS (SJ). Есть, но похуже, начинается со смещения в блоке 304, т.е. всего 158 слов.
    Цитата Сообщение от form Посмотреть сообщение
    Это настолько нифига не даст, что даже рассматривать не стоит. Разве что нужно освободить 3-4 слова, но столько обычно и так найдется.
    Ну почему же? Можно было бы использовать этот кусок оверлейного сегмента вместо родного. Думаю, подменить вызываемый оверлей не так сложно. О! А нельзя ли из одного оверлея вызвать второй? На том же уровне вложенности, без возврата. Блин, забыл, как это называется...
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  10. #149
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Думаю, подменить вызываемый оверлей не так сложно.
    Подменить оверлей вообще без проблем, и менять существующие для этого не обязательно: оверлеи идут последними в образе - добавить еще один в конец несложно - если склероз не врет, в отличие от SAV тут нет ни таблицы оверлеев ни подпрограм переадресации. Есть только вычисляемый ID.
    Главное - учесть оверлейные вызовы.
    Наиболее простой способ - оставить старый оверлей, а из него вызвать новый - тогда не придется заботиться о вызовах из других оверлеев.
    Впрочем можно сначала посмотреть по исходникам есть ли такие вызовы.
    Сам оверлей KMON должен уложиться в 2 блока.
    Последний раз редактировалось form; 17.09.2022 в 10:26.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  11. #150
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Заглянул внутрь RT11DS (SJ). Есть, но похуже, начинается со смещения в блоке 304, т.е. всего 158 слов.
    Заглянул внутрь RT11CD. Чуть лучше - на 17 слов больше. На ту часть, которая в RMON'е 158 слов хватит, или как? Или, хотя бы, 175 ? Не нашел ADOSSJ, ближе к вечеру спрошу у Макса.

    Цитата Сообщение от form Посмотреть сообщение
    Наиболее простой способ - оставить старый оверлей, а из него вызвать новый - тогда не придется заботиться о вызовах из других оверлеев.
    Ну, если это так легко, то почему же мы до сих пор не сделали все это?

    Цитата Сообщение от form Посмотреть сообщение
    Сам оверлей KMON должен уложиться в 2 блока.
    Это предельный размер оверлея или что?
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

Страница 15 из 17 ПерваяПервая ... 11121314151617 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Поддержка NemoIDE A8
    от Black_Cat в разделе Программирование
    Ответов: 6
    Последнее: 14.03.2011, 00:31
  2. Ответов: 128
    Последнее: 24.11.2010, 17:48
  3. Поддержка Digital Sound
    от Destr в разделе Программирование
    Ответов: 18
    Последнее: 05.05.2008, 03:39
  4. Програмная поддержка HDD.
    от alexfreed в разделе Внешние накопители
    Ответов: 1
    Последнее: 23.10.2005, 09:49
  5. Поддержка CP/M Profi в эмулях
    от Doctor Max в разделе Эмуляторы
    Ответов: 5
    Последнее: 24.03.2005, 00:54

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •