Текстовая видео память.

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
Mosk
Сообщения: 9
Зарегистрирован: 14 окт 2006, 13:54

Пишу резидента для сохранение текстовой станицы (80*25 симфолов) в файл.
Всё шло хорошо,если брать текстовую информацию с самого начала B800h(собстно адрес начала текст-ой видео памяти) и класть 80*25 символов в файл...т.е. страницу #0
Но задача такова,что надо класть в файл сраницу, номер которой введен пользователем. Пусть номер страницы N. Тогда я ввожу переменную "Ofs" = N*80*25*2.....т.е (номер.стр)*(колич символов страницы)*2(2-т.к. каждому символу в памяти соот-ет еще и атрибут )....И начинаю писать 80*25 символов расположенных по адресу B800:"Ofs"....т.е пропускаю "Ofs" байт в видео памяти .....но четно! когда открываю записанный файл он пуст(хотя в окне доса скролл продвинулся на страниц 5)...NEED HELP!
пользуясь случаем,передаю привет маме...
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Скролл - он на то и скролл. В ДОСе всегда одна видеостраница, по умолчанию она находиться в B800h о чем и сказано выше. При скроле просто идет пермещение в пределах одной видеостраницы (текущей активной). Для переключения видеостраниц есть специальные функции. Т.е. если уж надо захватить пять скоролов то надо брать с одного места, с B800h, только в разные моменты времени. Сам ДОС при скроле страницы не переключает (не имеет права, по большому счету - вдруг я что-то храню в других страницах) и физический адрес текста на экране всегда остаеться неизменным.
It's a long way to the top if you wanna rock'n'roll
Ответить