Страница 1 из 1

Help!!!Help!!!Help!!!

Добавлено: 04 янв 2006, 17:24
Linuxoid
Как считать все символы с экрана?

Добавлено: 06 янв 2006, 12:33
Romeo
Адрес видео памяти текстового режима: B800h. Т.е. нужно читать символы из памяти начиная с этого адреса. Количество симоловов, которые нужно прочитать зависит от текствого режима. Как правило используется режим 80x25 (т.е. нужно выполнить 2000 итераций). Читатать нужно по два байта за раз. Младший байт - это ASCII код символа, старший - аттрибуты символа (цвет текста и цвет заднего фона).

Добавлено: 15 янв 2006, 03:27
BBB
Romeo:
Адрес видео памяти текстового режима: B800h.
Это в цветных режимах так. В монохромном (видеорежим с номером 7) - B000h.
Количество симоловов, которые нужно прочитать зависит от текствого режима. Как правило используется режим 80x25
Про "как правило - 25" - это весьма неочевидно. Может, например, быть и 50.
Значение (количество строк - 1) хранится в байте по адресу 0:0484h. А количество столбцов - по адресу 0:044Ah. Можно прочитать оттутда, а не гадать :)

Добавлено: 16 янв 2006, 13:43
Romeo
Всё верно, BBB, я так и написал, что это число зависит от режима. Просто в DOS'е наиболее часто используется режим 80x25, поэтому я привёл пример именно с ним.

Добавлено: 16 янв 2006, 17:29
BBB
Romeo, ну а я дополнил, откуда взять эти числа точно. Чтобы уж наверняка :)