User Tag List

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

Тема: Практическое программирование в среде RT-11 на ассемблере.

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

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

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Еще один вариант на закуску - скрытый драйвер. Особого смысла нет - просто побаловаться если есть интерес. Принцип такой: некая команда SET (или запуск драйвера по RUN или еще какой вариант на этапе подготовки дискеты) ищет во вторичном загрузчике команду MOV @#177570,R4 перед которой идет инструкция BR. Эта конструкция одинакова во всех RT-11 как минимум начиная с V4.0 (с оговоркой). Меняем BR на NOP, а MOV меняем на MOV #157400,R4 (значение по надобности скорректировать). В результате получаем во время загрузки зарезервированное окно куда уже драйвер из инсталционной процедуры может вписаться. Ну и оговорка (вернее две): метод не подойдет для mapped мониторов - там просто нет этого кода в загрузчике. Также в старых мониторах следующей после MOV командой идет BIC #3777,R4 - это легко проверить и поставить два NOPа. От обычного драйвера отличается только тем, что требует чуть-чуть меньше памяти (за счет экономии на служебных словах вначале и в конце драйверва).
    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. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

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

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Еще один вариант на закуску - скрытый драйвер.
    Будет отъедать память у системы, т.е. если функционал AC или JS не нужен, то память не будет задействована. Также не сработает, если кто-то запустит на ДВК с включенным ПЗУ Бейсика, там память ограничена 48 Кбайт до 0140000.

  4. #3

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Будет отъедать память у системы, т.е. если функционал AC или JS не нужен, то память не будет задействована.
    Да, этот минус есть, но по условиям задачи как я понимаю отключать все это не требуется, а если нужно - отключается легко (но с перезагрузкой). При использовании же перехватчика, наоборот памяти будет немного больше чем если использовать драйвер.

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Также не сработает, если кто-то запустит на ДВК с включенным ПЗУ Бейсика, там память ограничена 48 Кбайт до 0140000.
    Отлично сработает. Никто не мешает проверить сколько памяти есть (или явно указать) и считать исходя из этого.

    Но, как уже написал - это скорее баловство чем реальная идея (впрочем сам вопрос который поднят по-моему тоже ).

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

    Еще как вариант: просто меняем вторичный загрузчик на свою программу (а места для нее ого-го! хоть простенькую операционку запихивай), а уже эта программа позволяет или ввести пароль и загрузиться нормально или загрузиться вышеописанным способом. Кстати можно и не вышеописанным, а с тем же драйвером AC: просто меняем ему слово 60 так чтобы он (не)инсталился (но это сложнее - придется подгружать драйвер для записи, хотя 4 блока под программу - и не то можно наваять ).
    Последний раз редактировалось form; 18.12.2016 в 18:02.
    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. #4

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

    По умолчанию

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

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

    Цитата Сообщение от form Посмотреть сообщение
    Еще как вариант: просто меняем вторичный загрузчик на свою программу (а места для нее ого-го! хоть простенькую операционку запихивай), а уже эта программа позволяет или ввести пароль и загрузиться нормально или загрузиться вышеописанным способом. Кстати можно и не вышеописанным, а с тем же драйвером AC: просто меняем ему слово 60 так чтобы он (не)инсталился (но это сложнее - придется подгружать драйвер для записи, хотя 4 блока под программу - и не то можно наваять ).
    Свой вторичный загрузчик - это уже изврат. А про пароль hobot жаловался, что мол выводится запрос, а его не прервать, хотя снять пароль в JS.SYS просто.
    К тому же вторичный загрузчик делает всю основную работу - грузит системный драйвер, RMON, настраивает все адреса, инсталлирует драйверы.

  6. #5

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Свой вторичный загрузчик - это уже изврат.
    Чего же тут извратного - достаточно простое решение.

    Цитата Сообщение от Alex_K Посмотреть сообщение
    К тому же вторичный загрузчик делает всю основную работу - грузит системный драйвер, RMON, настраивает все адреса, инсталлирует драйверы.
    Что абсолютно не требуется от программы которая его заменит в блоках 2-4: всю эту работу выполнит родной вторичный загрузчик в штатном режиме - цели заменить его совсем нет. Я вот даже придумал как ничего не трогая на диске и не подгружая драйвер сообщить драйверу AC или какому там еще нужно или нет включаться. Сейчас вот только додумываю реализацию (вопрос скорее привлекает не с практической точки зрения, а с точки зрения покопаться в дебрях системы)...
    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. #6

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

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    и не подгружая драйвер сообщить драйверу AC или какому там еще нужно или нет включаться.
    Это в каком смысле? Хотелось бы узнать подробности.

  8. #7

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Это в каком смысле? Хотелось бы узнать подробности.
    Подробности простые: во втором слове конфигурации системы есть бит XITSW$ (настройка SET EXIT NOSWAP). К примеру драйвер проверяет этот бит из подпрограммы инсталяции и не инсталится если бит установлен. В загружаемой системе он всегда очищен (вариант пропатченой вручную системы не рассматриваем). Сложность состоит в том, что наша программка работает до того как запустился вторичный загрузчик и RMON в памяти еще нет. Ну а возможное решение сейчас обдумываю (через блок битов конфигурации) - его легко найти и он не менялся (там очень важен порядок).
    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

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

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

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

Похожие темы

  1. Арифметические процедуры на ассемблере
    от spensor в разделе Программирование
    Ответов: 27
    Последнее: 13.05.2017, 20:56
  2. Пишем на ассемблере под эмулятором
    от GM BIT в разделе Для начинающих
    Ответов: 76
    Последнее: 15.07.2016, 20:04
  3. try-catch на ассемблере z80
    от siril в разделе Программирование
    Ответов: 22
    Последнее: 30.10.2012, 21:17
  4. Продам книгу- AMIGA: программирование на ассемблере
    от Doctor Max в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 01.03.2012, 00:35
  5. Подпрограмма на ассемблере в памяти?
    от jimled в разделе Программирование
    Ответов: 1
    Последнее: 29.11.2009, 06:46

Ваши права

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