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

User Tag List

Страница 17 из 19 ПерваяПервая ... 13141516171819 ПоследняяПоследняя
Показано с 161 по 170 из 187

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

  1. #161
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,744
    Спасибо Благодарностей отдано 
    104
    Спасибо Благодарностей получено 
    248
    Поблагодарили
    153 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я могу проверить только в эмуляторе, но на реале должно быть аналогично. На скриншоте паразитная точка справа, если еще порестартить, то еще добавятся.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	mdos31hp1.gif 
Просмотров:	27 
Размер:	1.6 Кб 
ID:	71939  

  2. #162
    Member
    Регистрация
    27.08.2019
    Адрес
    г. Ростов-на-Дону
    Сообщений
    112
    Спасибо Благодарностей отдано 
    66
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение

    electroscat, замени в файле mdos31h.com (с базиса который) по смещению 1D67h байт 32h на 00h, как посоветовал ivagor и все заработает.
    К сожалению, после замены результат тот же 1 в 1... %)
    контрольная сумма MD-5 файла с замененным байтом 2E2E69C64E91C0923358486DC1084146 ...
    В эмуляторе все получилось, в точности с точечкой как на скриншоте..
    Пойду перепроверю, что я на дискете отнес вектору ))))

    Ок, все заработало и на реале... ))) Спасибо !
    Последний раз редактировалось electroscat; 25.03.2020 в 18:03.

  3. #163
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,744
    Спасибо Благодарностей отдано 
    104
    Спасибо Благодарностей получено 
    248
    Поблагодарили
    153 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Контрольная сумма правильная. Этот вариант должен работать и на реале, стоит проверить например SIDом, что по адресу 0000 байт F7.
    А вот насчет запрета прерывания я стормозил, после ресета проц их и так запретит.

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

    electroscat (25.03.2020)

  5. #164
    Member
    Регистрация
    27.08.2019
    Адрес
    г. Ростов-на-Дону
    Сообщений
    112
    Спасибо Благодарностей отдано 
    66
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Я могу проверить только в эмуляторе, но на реале должно быть аналогично. На скриншоте паразитная точка справа, если еще порестартить, то еще добавятся.
    Кстати, на реальном компе такая же штука на экране, один в один...
    Improver - а у вас нет этих точек на экране после рестарта системы по "ввод+блк"?

  6. #165
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,744
    Спасибо Благодарностей отдано 
    104
    Спасибо Благодарностей получено 
    248
    Поблагодарили
    153 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Точки обязаны быть и в эмуляторе и на реале. Стек в районе D7xx, после RST там будет адрес возврата 1, а это одинокая точка. Т.к. дос работает со стеком, указатель немного изменяется и точки при нескольких рестартах образуют группу, но строго в одной колонке и все примерно рядом. При скролле они уедут, но если еще рестарить, то обязательно вернуться.

  7. Эти 2 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    electroscat (25.03.2020), Improver (26.03.2020)

  8. #166
    Activist Аватар для Improver
    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    306
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    29 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Точки обязаны быть и в эмуляторе и на реале. Стек в районе D7xx, после RST там будет адрес возврата 1, а это одинокая точка.
    А, тогда понятно, почему я их не видел. В Т-72 стек находится по адресам от 0E200h и меньше, что находится за границей экранной области, поэтому точки и не появляются.

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

    electroscat (26.03.2020)

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

  11. #167
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,744
    Спасибо Благодарностей отдано 
    104
    Спасибо Благодарностей получено 
    248
    Поблагодарили
    153 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Альтернативный патч mdos31h без мусорения на экране (без rst), на первый взгляд работает.
    Вложения Вложения

  12. Эти 2 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    electroscat (26.03.2020), Improver (27.03.2020)

  13. #168
    Activist Аватар для Improver
    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    306
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    29 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Альтернативный патч mdos31h без мусорения на экране (без rst), на первый взгляд работает.
    Оригинально, но можно ещё немного улучшить, например так:
    Код:
    0000: LXI H, 0B603h
    0003: LXI B, 0C300h
    0006: NOP
    0007: ORA M
    0008: MVI A, 023h
    000A: OUT 010h
    000C: PCHL

  14. Эти 2 пользователя(ей) поблагодарили Improver за это полезное сообщение:

    electroscat (27.03.2020), ivagor (27.03.2020)

  15. #169
    Member
    Регистрация
    27.08.2019
    Адрес
    г. Ростов-на-Дону
    Сообщений
    112
    Спасибо Благодарностей отдано 
    66
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Альтернативный патч mdos31h без мусорения на экране (без rst), на первый взгляд работает.
    Патч работает, в целом, если учитывать то, что нажимать "ввод+блк" если и нужно будет - то совсем не часто - то это 100% работает.
    Эксперимента ради я понажимал "ввод+блк" с пристрастием, и в эмуляторе и на реале, и это дало разные результаты. В эмуляторе мусор на экране я так и не увидел, полосок не было. Изредка мигала "карта памяти" на экране, зеленая на черном фоне, при зеленом цвете шрифта, белая - при белом... примерно раз в двадцать нажатий, но на долю секунды. А вот на реальном векторе "полоски" все же иногда вылезали на экран, так же где то раз в двадцать - тридцать нажатий, так же прокручивались, и исчезали в верху экрана. Причем, на этот раз это были не точки а именно полоски, одна максимум две, в одну строку друг от друга. И так же артифакт "карта памяти" иногда на экране мелькал на доли секунды. Все это крайне не существенно, и в целом не требует внимания, потому как такие действия с системой проводятся достаточно редко, и то в виде однократного нажатия "ввод+блк"...

    Благодарю !!!

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

    Цитата Сообщение от Improver Посмотреть сообщение
    Оригинально, но можно ещё немного улучшить, например так:
    Код:
    0000: LXI H, 0B603h
    0003: LXI B, 0C300h
    0006: NOP
    0007: ORA M
    0008: MVI A, 023h
    000A: OUT 010h
    000C: PCHL
    Доброго времени ! Спасибо за патч!

    На сколько я понимаю, это первые строки кода оси ? То есть они должны быть такими 21 03 B6 01 00 C3 00 B6 3E 23 D3 10 E9 ? Я не достаточно еще в коде ориентируюсь, вставил приведенный вами код с адреса 00H и получил в целом не совсем работающюю систему. Загрузка ее из ком. строки системы показывает сразу приглашение системы "A>" и в целом все работает, заголовка в левом верхнем углу "микроДОС 3.1 Р ...." нету, и точки иногда таки выскакивают. А вот записав систему в загрузочную область загрузку не получил... Наверняка я что то не понял, куда нужно этот код встраивать ? Судя по адресам - 000H - 000С... или я ошибаюсь ?

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

    У меня есть вопрос такого содержания. Я делал в своей программе выход в МДОС, алгоритм такой, выключаю КД, для освобождения экранной области копирую все с адреса E000H до FFFFH на адресс 5000H - 7FFFH (адресс установил опытно-наблюдательным путем), счетчик стека ставлю на 4FFFH, копирую код из адресов 0001H, 0002H, 0039H, 0040H в переменные и заменяю адресами старта приложения и обработчика прерывания, и потом при выходе все это возвращаю на место, включаю КД и делаю CALL 0005H с 00H в регистре С. Вчера доработал программу, для работы в РДС - она читает адресс системы из 0006Н, 0007H и дальше считает по этим цифрам сколько и куда копировать, и в соответствии с этим же ставит адресс указателя стека. В итоге - в РДС все отлично, огромное количество свободной памяти, а в других системах обратная реакция, для приложения остается совсем не много. В итоге, написал, чтобы если в 0006Н, 0007Н цифра меньше E000H то как предел принимается E000H. Потому что после отключения КД - c адреса, лежащего в 0006H, 0007H - нули и изредка какой то мусор, типа куски символов из консоли, которые уже были на экране, до адреса E000H, и только с этого адреса находится то, что при утере не дает вернуться систему. Пока во всех системах адресс E000H одинаково актуален, кроме РДС, там гораздо меньше, тем не менее очень интересно, есть ли в микродосе и CP/M универсальное место, где можно получить адресс того куска, который нужно скопировать из ОЗУ для того чтобы освободить экранную область, а потом восстановить работоспособность системы ? Ну или, может есть какие то альтернативные алгоритмы выхода в систему для приложений ?
    Последний раз редактировалось electroscat; 27.03.2020 в 12:02.

  16. #170
    Activist Аватар для Improver
    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    306
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    29 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от electroscat Посмотреть сообщение
    На сколько я понимаю, это первые строки кода оси ?
    Это строки, которые должны получится в памяти Вектора после старта МДОС по адресам 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 просто так не получится, надо править исходники так, чтобы при старте МДОС в память заносились эти значения.

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

    Цитата Сообщение от electroscat Посмотреть сообщение
    Я делал в своей программе выход в МДОС ...
    Что-то как-то всё сложно... Для выхода в МДОС достаточно сделать JMP (или RET) на нулевой адрес. Ну и не трогать в программе память от 0000h до 0100h, а также выше адреса, записанного в ячейках 0001-0002, считается, что это нижняя граница МДОС.

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

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

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

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

Похожие темы

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

Ваши права

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