Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для shurikan

Старожил


Сообщения: 240
Благодарности: 1

Профиль | Отправить PM | Цитировать


himik
Ну, полностью код писать не буду. Наводку даю:
(я так понимаю, что это требуется под DOS)

Способ 1.
Используем прерывние 10h (видео) функции скроллирование прямоугольной области экрана.
Если в ah записать число 06h, то скроллинг осуществляется вверх, а если 07h, то - вниз. Остальные аргументы одинаковы для обеих функций.
ch, cl - соответственно номера строки и колонки левого верхнего угла области скроллинга, (для всего экрана эти координаты 0 и 0)
dh, dl - номера строки и колонки правого нижнего угла области скроллинга,
al - количество строк, на которое нужно произвести сдвиг,
bh - видео атрибут (цвет символа и фона) для заполнения пустого места, например 07h - светло серый символ на черном фоне.

Способ 2.
Прямое обращение к видеопамяти.
Код: Выделить весь код
 
 *push ds 
 *mov *ax,0B800h 
 *mov *ds,ax 
 *mov *ax, Y 
 *mul *160 
 *add *ax, X 
 *add *ax, X 
 *mov *dx,[ax]
 *sub *ax, 160 ; для сдвига вверх 
 *add *ax, 160 ; для сдвига вниз 
 *mov *[ax],dx 
 *pop *ds


[s]Исправлено: shurikan, 4:41 18-11-2003[/s]

-------
UNIX, UNAS и др. Myself I'll like 'em


Отправлено: 03:39, 18-11-2003 | #2