[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
ДОС-ской программы на быстрых компьютерах под Windows 98 что-то неладное творится с регистрами асинхронного адаптера при чтении. Если раньше на медленных компьютерах и при ДОС-е я обычно вычитывал из всех регистров нули, то теперь - почему-то единицы!!! Т.е. если программа хочет что-то прочитать из регистра, поменять а затем снова записать (старое значение или модифицированное), то ничего не работало, потому как читались одни единички и если прочитанные значения снова записать в те же регистры, то устанавливались и разрешения прерываний (при принятии байта, после передачи байта, при BREAK, при изменении CTS, DSR, RI, DCD), устанавливался режим запуска диагностики (Digital Loopback test) и прочие "прелести".
Короче, напишите программу, которая при запуске считывает все регистры и показывает их на экране и запустите ее на "честном" компьютере и на быстром - и увидите разницу.
Выход - не восстанавливать все регистры, если они "бесчестные". Кроме того, программа может "понять" на нормальном она компьютере или нет (если у нее стоит режим диагностики в 1 - значит, она запущена на "нечестном" компьютере и восстанавливать регистры опасно).
E-mail: info@telesys.ru