Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   CD в XT
RSS

CD в XT

<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 7 * 8 9 10 11
Печать
 
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
das написал:
[q]
uav1606, я так понимаю, что PATCH.COM правит кусочек кода загруженного драйвера на совместимый с 8088?
[/q]
Попытаюсь объяснить... В коде драйвера есть одна инструкция для процессора 80186/188+ - rep insb (FCh 6Ch). Чтобы этот код заработал на 8086/88, нужно поменять всё это на примерно такой код:

    push ax
loop_1:
    in  al,dx      
    mov  es:[di],al
    inc  di
    loop  loop_1    
    pop ax


Проблема в том, что если я "инъектирую" этот код в драйвер и перекомпилирую его, то он не работает, т.к., видимо, где-то смещаются адреса, т.к. файл становится длиннее.
Поэтому я сделал следующий "костыль": заменил в драйвере hex-редактором rep insb (FCh 6Ch) на int 0f1h (CDh F1h) - вызов неиспользуемого обычно прерывания F1. Длина файла при этом не меняется.
А потом написал резидент patch.com, который вешается на это прерывание и выполняет вышеприведённый код, т.е. "развёрнутый" вариант инструкции rep insb для 86/88, а потом возвращает управление в точку вызова.
Gerda
Advanced Member
Седьмая из Девяти.

Откуда: Ленинград
Всего сообщений: 1130
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 мар. 2015
[q]
А потом написал резидент patch.com, который вешается на это прерывание и выполняет вышеприведённый код, т.е. "развёрнутый" вариант инструкции rep insb для 86/88, а потом возвращает управление в точку вызова.
[/q]
"Костыль, Джон!" ©"Остров сокровищ", Ленфильм, 1982, Владимир Воробьёв. Реплика Джорджа Мерри.

Убрать из "тела" процедуру, проверяющую длину файла, не?
[q]
то есть книжка
[/q]
Есть такая книжка, причём ещё бумажная. Весьма бестолково написана, между прочим.
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
[q]
Убрать из "тела" процедуру, проверяющую длину файла, не?
[/q]
Xalveyn, не уверен, что она там есть. Там просто может быть код вроде mov ax, какое-то число. Дизассемблер не поймёт, что это адрес или часть адреса, и не скорректирует его при повторной компиляции файла с изменённой длинной. И таких точек может быть полно - надо полностью разбирать код.
Были б исходники, тогда другое дело.
Gerda
Advanced Member
Седьмая из Девяти.

Откуда: Ленинград
Всего сообщений: 1130
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 мар. 2015
[q]
Были б исходники, тогда другое дело.
[/q]
Кай, через усмешку, сказал: "лучше промолчи!".
das
Advanced Member


Откуда: МО и Москва
Всего сообщений: 307
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
11 сен. 2015
Да, согласен, я неправильно сказал, не правит, а дополняет исправленный SDR112, куда вместо "неправильного" кода Вами вписан вызов "правильного" кода из резидентного PATCH.СOM
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
Да, как-то так.
Gerda
Advanced Member
Седьмая из Девяти.

Откуда: Ленинград
Всего сообщений: 1130
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 мар. 2015
[q]
не уверен, что она там есть
[/q]
Почему-то я в этом уверена. Авторское право придумали не Никита Михалков и Дарья Донцова и защищать его могли по-разному.
MD5 вряд ли применялось в 1994 году. =) Искать константу длины файла по "телу"...
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
Xalveyn, не всё так просто. Я, например, восстанавливал исходную длину файла, сокращая текстовые сообщения на ту же величину, на какую увеличивал код своей вставкой - всё равно были глюки.
Если б у меня хотя бы был такой CD-ROM с платой, можно было разобраться, а так... Его и запустить проблематично, да и в отладчик запихнуть тоже...
das
Advanced Member


Откуда: МО и Москва
Всего сообщений: 307
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
11 сен. 2015
Поскольку застрял на работе, часть того, что планировал на завтра сделал сегодня. Доставка полдня к нам едет, поскольку Москва сегодня стоит в пробках. А утром было очень интересно по сугробам до гаража пробираться, давненько я не видел столько выпавшего снега за одну ночь.

В MS DOS 3.30 и с альтернативным SHCDX - всё работает.
Gerda
Advanced Member
Седьмая из Девяти.

Откуда: Ленинград
Всего сообщений: 1130
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 мар. 2015
Если что-то это изменит, http://cateee.net/lkddb/web-lkddb/OPTCD.html
[q]
В MS DOS 3.30 и с альтернативным SHCDX - всё работает.
[/q]
На XT? Тогда я Вас поздравляю.
<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 7 * 8 9 10 11
Печать
Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   CD в XT
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS