User Tag List

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

Тема: Вектор-06Ц: Операционные системы

Древовидный режим

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

    Регистрация
    27.08.2019
    Адрес
    г. Ростов-на-Дону
    Сообщений
    1,034
    Спасибо Благодарностей отдано 
    467
    Спасибо Благодарностей получено 
    194
    Поблагодарили
    125 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    Что-то как-то всё сложно... Для выхода в МДОС достаточно сделать JMP (или RET) на нулевой адрес. Ну и не трогать в программе память от 0000h до 0100h, а также выше адреса, записанного в ячейках 0001-0002, считается, что это нижняя граница МДОС.
    Программа работает со всеми четырьмя плоскостями, то есть с 8000 до FFFFH все стирается и меняется. Хотелось бы еще добавить, что программе нужен максимально прямой доступ к ОЗУ, чтобы не тормозить, по этому отключается КД чтобы избежать переадресации части озу на КД.
    Так же меняются адреса в 002H, 003H и 039H, 040H чтобы при нажатии "сбр+блк" и наличии прерывания управление передавалось функциям программы. Изначально я пробовал никуда ничего не копирывать (имею в виду с E000H до FFFFH), но система после такого вмешательства не работает.

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

    Цитата Сообщение от Improver Посмотреть сообщение
    Это строки, которые должны получится в памяти Вектора после старта МДОС по адресам 0000h и далее. Немного поясню, что это и как работает:
    Код:
    21 03 B6 01 00 C3 00 B6 3E 23 D3 10 E9
    ^^ -- стандартно тут JMP, в первом патче менялось на RST 6, а в этом варианте меняем на LXI
       ^^^^^ -- это адрес перехода на МДОС, используется программами
             ^^ -- тут свободный байт, меняем его на LXI, чтобы отключить JMP в адресе 00005h
                ^^ -- а вот сюда МДОС пишет номер текущего диска, менять этот байт нельзя
                   ^^^^^^^^ -- на самом деле тут JMP 0B600h, который вызывается по CALL 5
    И далее идут команды на включение КД и переход в МДОС.
    Это всего двумя командами отличается от того, что сделал ivagor в своём патче и принципиальных отличий в работе не имеет, но наложить это на файл mdos31h.com просто так не получится, надо править исходники так, чтобы при старте МДОС в память заносились эти значения.
    С этим вообще ничего не понятно пока, простите мне мою глупость, но вы ведь написали код,

    Цитата Сообщение от Improver Посмотреть сообщение
    Код:
    0000: LXI H, 0B603h
    0003: LXI B, 0C300h
    0006: NOP
    0007: ORA M
    0008: MVI A, 023h
    000A: OUT 010h
    000C: PCH
    Вот этот код как раз и есть 21 03 B6 01 00 C3 00 B6 3E 23 D3 10 E9 ...

    Прошу прощения, не могли бы вы пояснить этот момент ?!?
    Последний раз редактировалось electroscat; 27.03.2020 в 12:31.

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

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

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

Похожие темы

  1. Ответов: 213
    Последнее: 13.06.2022, 14:02
  2. Ответов: 4
    Последнее: 20.08.2007, 16:14
  3. Организация plug-in'нной системы
    от CityAceE в разделе Программирование
    Ответов: 9
    Последнее: 20.09.2005, 12:45
  4. Описание системы команд - давайте централизуем ;)
    от Alex/AT в разделе Программирование
    Ответов: 42
    Последнее: 09.07.2005, 22:34
  5. Инициализация системы
    от breeze в разделе Программирование
    Ответов: 13
    Последнее: 24.03.2005, 10:03

Ваши права

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