User Tag List

Показано с 1 по 10 из 563

Тема: Софт для УКНЦ

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,421
    Спасибо Благодарностей отдано 
    1,717
    Спасибо Благодарностей получено 
    2,245
    Поблагодарили
    882 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Драйвер MZ при загрузке с дисковода является драйвером системного устройства, а значит этот драйвер резидентный и его невозможно выгрузить, а значит ячейки 474 и 476 защищены. Но можно написать драйвер без использования прерываний, у него не будет таблицы векторов, а значит и защищать нечего.
    А как изначально происходит загрузка с диска? Как устроена УКНЦ с точки зрения железа, я достаточно хорошо понимаю. А вот в системном плане не очень. Очевидно ПП загружает с дискеты boot-сектор. А что дальше? В какой момент загружается с диска этот MZ-драйвер, и руль загрузки передается с начального загрузчика в ПП (или где он там), в руки этого MZ?

    ---------- Post added at 15:23 ---------- Previous post was at 15:13 ----------

    Посмотрел бегло проги от ДВК, никто из них не начинается раньше чем с адреса 500. Так что скорее всего подобная программа - исключение.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    361
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    А как изначально происходит загрузка с диска? Как устроена УКНЦ с точки зрения железа, я достаточно хорошо понимаю. А вот в системном плане не очень. Очевидно ПП загружает с дискеты boot-сектор. А что дальше? В какой момент загружается с диска этот MZ-драйвер, и руль загрузки передается с начального загрузчика в ПП (или где он там), в руки этого MZ?
    Подробно описывать не буду, будет очень много букв.
    Когда выбирается пункт "загрузка с диска", то с адреса 1000 копируется программа для чтения 1-го сектора нулевого трека нижней стороны, это блок 0 в формате RT-11. В RT-11 устройства прямого доступа называются блочными и делятся на блоки по 512 байт. В качестве условия - нулевой блок должен начинаться командой NOP (код 240). После чтения нулевого блока ему передается управление. Сам процесс загрузки RT-11 состоит в чтении первичного загрузчика (он как раз расположен в нулевом блоке), далее первичный загрузчик читает вторичный загрузчик (блоки 2-5) и передает ему параметры и управление. Вторичный загрузчик уже ищет драйвера на диске, загружает драйвер системного устройства, саму операционную систему и передает ей управление.
    В первичный загрузчик также входит драйвер системного устройства, работающий только на чтение, им пользуется вторичный загрузчик для загрузки системы на начальном этапе.
    Зачем нужны два загрузчика. Первичный - это часть драйвера системного устройства, а вторичный - часть монитора. Благодаря этому в монитор не надо встраивать на этапе сборки драйвер системного устройства (это было вплоть до третьей версии), и система становится переносимой на любые носители, с которых можно грузится.
    Драйвер MZ, к примеру, состоит из блока описания и установки SET-параметров (это нулевой блок в драйвере), затем следует тело основного драйвера, и в конце - первичный загрузчик. Вторичный загрузчик расположен в теле монитора в блоках 1-4. По команде COPY/BOOT первичный и вторичный загрузчики копируются из драйвера и монитора на диск в блоки 0 и 2-5.

    А насчет передачи управления в MZ. Сначала вторичный загрузчик читает каталог, ищет там драйвер системного устройства (в данном случае MZ), загружает его в память в самый конец (обычно адреса 157000), после этого читается RMON, настраивается. В принципе уже можно использовать основной MZ. Вот сейчас не помню, USR читается уже через MZ, или через первичный загрузчик. Но есть исходники - посмотрите.

  4. #3

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,807
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    80 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Посмотрел бегло проги от ДВК, никто из них не начинается раньше чем с адреса 500. Так что скорее всего подобная программа - исключение.
    А я у себя обнаружил штук пять таких программ - обычно это небольшие утилиты, для которых экономия одного блока может составлять до 50% выигрыша в размере :)

    Наиболее интересная утилита HAND.SAV - выводит информацию о любом драйвере.

    Код:
    .HAND SY:WD.SYS
     
    Имя драйвера            WD.SYS
    Код устройства          53 (винчестерский диск МС5402, RD50/51/52)
    В устройстве блоков     1.
    Регистр                 CSR=176670
    Вектор                  144
    Обработка прерываний    .+22
    Приоритет               340
    Размер драйвера         64 байт, 26. слов
    Начальный загрузчик     555 байт, 182. слов
    Контроль установки      Есть
    Параметры генерации     TIM$IT=1 (поддерживает тайм-аут)
                            MMG$T =0 (не поддерживает диспетчер памяти)
                            ERL$G =0 (не поддерживает регистратор ошибок)
    Слово состояния         FILST$=1 (прямой доступ)
                            RONLY$=0 (не только для чтения)
                            WONLY$=0 (не только для записи)
                            SPECL$=0 (стандартная файловая структура)
                            HNDLR$=0 (не выполняет простые завершающие операции)
                            SPFUN$=1 (выполняет специальные функции)
                            ABTIO$=0 (не выполняет завершающие операции)
                            VARSZ$=1 (поддерживает тома переменного размера)
    SET WD SYSGEN
    SET WD [NO]ROLL
    Чтобы эта утилита могла запускаться на УКНЦ - потребовалось изменить адрес начала кода в исходнике и перекомпилировать.

    Исходник и перекомпилированный .SAV - в приложении.
    Вложения Вложения
    • Тип файла: zip HAND.zip (31.1 Кб, Просмотров: 270)

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

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

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

Похожие темы

  1. Эмулятор УКНЦ - UKNCBTL
    от nzeemin в разделе Эмуляторы отечественных компьютеров
    Ответов: 1118
    Последнее: 29.12.2025, 22:46
  2. Восстанавливаем УКНЦ
    от felix в разделе ДВК, УКНЦ
    Ответов: 735
    Последнее: 22.12.2024, 21:55
  3. Как проверить УКНЦ и КМД ? Help
    от Andrey_Ak в разделе ДВК, УКНЦ
    Ответов: 37
    Последнее: 23.07.2020, 15:50
  4. Проблема с УКНЦ
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 8
    Последнее: 10.01.2010, 23:04
  5. Дискетки от УКНЦ
    от ZXSlaver в разделе ДВК, УКНЦ
    Ответов: 12
    Последнее: 15.11.2009, 17:25

Ваши права

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