Графические устройства

         

Контроль ошибок



Контроль ошибок

В данном разделе ничего не говорилось о контроле ошибок при установке или изменении окон видеопамяти. Это объясняется несколькими причинами. Прежде всего, признак ошибки функция 4F05h возвращает только в том случае, если содержимое регистра ьь больше единицы, т. е. если неправильно указано запрашиваемое действие. Контроль правильности указанного значения окна не производится, поскольку его не так просто осуществить.

Если задача проверила поддержку установленного видеорежима, т. к. это рекомендовалось в предыдущем разделе, то при корректно организованной работе с видеопамятью значение устанавливаемого окна не может выходить за допустимые пределы. При организации любого контроля над ходом вычислительного процесса надо, прежде всего, руководствоваться соображениями здравого смысла, иначе можно дойти до проверки результатов каждого выполняемого действия.

В рассматриваемом случае возможен единственный способ контроля — проверка соответствия номера окна реально существующему объему видеопамяти. Но выполнять такую проверку при каждом изменении номера окна едва ли целесообразно. В крайнем случае, ее можно временно на период отладки задачи включить в подпрограмму setwin и убрать после отладки. Но лучше тщательно продумать алгоритм работы задачи и проверить правильность его воплощения.

Если вы умеете работать с отладчиками и восстанавливать по кодам команд исходный текст на языке ассемблера, то имеет смысл разобраться в том, как воплощена процедура VMC в BIOS. Это позволит вам узнать, как выполняется чтение или установка номера окна на уровне работы с портами ввода-вывода.




Содержание раздела