Help!!!Help!!!Help!!!
Модератор: Andy
Как считать все символы с экрана?
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Адрес видео памяти текстового режима: B800h. Т.е. нужно читать символы из памяти начиная с этого адреса. Количество симоловов, которые нужно прочитать зависит от текствого режима. Как правило используется режим 80x25 (т.е. нужно выполнить 2000 итераций). Читатать нужно по два байта за раз. Младший байт - это ASCII код символа, старший - аттрибуты символа (цвет текста и цвет заднего фона).
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Romeo:
Значение (количество строк - 1) хранится в байте по адресу 0:0484h. А количество столбцов - по адресу 0:044Ah. Можно прочитать оттутда, а не гадать
Это в цветных режимах так. В монохромном (видеорежим с номером 7) - B000h.Адрес видео памяти текстового режима: B800h.
Про "как правило - 25" - это весьма неочевидно. Может, например, быть и 50.Количество симоловов, которые нужно прочитать зависит от текствого режима. Как правило используется режим 80x25
Значение (количество строк - 1) хранится в байте по адресу 0:0484h. А количество столбцов - по адресу 0:044Ah. Можно прочитать оттутда, а не гадать

- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Всё верно, BBB, я так и написал, что это число зависит от режима. Просто в DOS'е наиболее часто используется режим 80x25, поэтому я привёл пример именно с ним.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Romeo, ну а я дополнил, откуда взять эти числа точно. Чтобы уж наверняка 
