© Иван Рощин, Москва
| ZXNet | : 500:95/462.53 |
| : bestview@mtu-net.ru | |
| WWW | : http://www.ivr.da.ru |
(Adventurer #8)
Дата последнего редактирования: 16.06.2003.
Предлагаю вашему вниманию небольшую (44 байта), но очень полезную процедуру OPEN_W, которая изображает на экране окно с рамкой. Её нетрудно модифицировать, задав любые символы для изображения рамки и заполнения окна.
При её вызове в регистровой паре DE нужно задать координаты левого верхнего угла рамки, в регистре B высоту, в C ширину окна (в символах):
![]() |
При использовании этой процедуры в вашей программе должна присутствовать и процедура печати одного символа. Предполагается, что она называется PRSYM и при её вызове в аккумуляторе указывается код печатаемого символа, а в DE координаты печати (D X, E Y). Процедура PRSYM не должна изменять значения регистров A, B, C, D, E.
Текст процедуры PRSYM здесь не приводится. В конце концов, если вам
понадобилось вывести окно и
OPEN_W LD A,"" ;Левый верхний угол рамки. LD L,"
" ;Правый верхний угол рамки. CALL OPEN_W2 OPEN_W1 LD A,"
" ;Вертикальная граница рамки. LD H," " ;Этим символом заполняется окно. LD L,A CALL OPEN_W3 DJNZ OPEN_W1 LD A,"
" ;Левый нижний угол рамки. LD L,"
" ;Правый нижний угол рамки. OPEN_W2 LD H,"
" ;Горизонтальная граница рамки. OPEN_W3 PUSH DE CALL PRSYM INC D LD A,H LD H,C OPEN_W4 CALL PRSYM INC D DEC H JR NZ,OPEN_W4 LD A,L CALL PRSYM POP DE INC E RET