Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 675
от 06.02.2007, 12:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 378, Экспертов: 32
В номере:Вопросов: 1, Ответов: 2


Вопрос № 73584: Пишу простейший вьюер тесктовых файлов.Как реализовать ПОСТРОЧНУЮ прокрутку текста по нажатию стрелок?...

Вопрос № 73.584
Пишу простейший вьюер тесктовых файлов.Как реализовать ПОСТРОЧНУЮ прокрутку текста по нажатию стрелок?
Отправлен: 01.02.2007, 05:42
Вопрос задал: Kashey (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Олег Владимирович
Здравствуйте, Kashey!

Если простейший, то под DOS, так? :)
При распознавании нажатия стрелок (расширенные коды которых 72 для "вверх" и 80 для "вниз", числа десятичные) можно пользоваться прерыванием INT 10h.
Его функция 06h прокручивает изображение в прямоугольной области экрана. AL задаёт число перемещаемых строк (0 очищает экран), BH - цвет новых строк, CH - номер верхней строки области, CL - номер левой колонки, DH - нижней строки, DL - правой колонки. Например, код
MOV AX,0601h
MOV BH,07h
MOV CX,0000h
MOV DX,184Fh
INT 10h
перемещает всё, что содержится в окне, на 1 строку вверх.
Функция 07h с полностью аналогичными параметрами прокручивает изображение вниз. Обе они не трогают курсор.
Так что остаётся только заполнить верхнюю/нижнюю строки соответствующим текстом. Удачи!
---------
Факультет ПМ-ПУ - лучший в СПбГУ!
Ответ отправил: Олег Владимирович (статус: Студент)
Ответ отправлен: 01.02.2007, 11:18

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Kashey!

В текстовых файлах каждая строка заканчивается кодами 0Dh и 0Ah,
поиск их текстовом буффере можно сделать используя строковые команды вместе с префиксами меняя только направление сканирования. После сканирования у Вас в ES:DI будет находится адрес текста после вывода на экране будет в левом верхнем углу(при сканировании назад нужно будет корректировать DI, потому,что он не будет указывать на начало строки). На экран выводиш начиная с этого адреса плюс количество строк.

если курсор вверху и нажата стрелка вверх ищеш начало предыдушей строки,
если курсор внизу и нажата стрелка вниз ищеш начало следующей строки,
иначе двигаеш курсор по экрану.
Удачи!
Ответ отправил: Зенченко Константин Николаевич (статус: 2-ой класс)
Ответ отправлен: 01.02.2007, 11:36


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.43 beta от 26.01.2007
Яндекс Rambler's Top100

В избранное