Из журнала 3bit#1, Украина, Харьковская область, 04.01.2005 Рисование окна с рамкой в цвете. (c) Иван Рощин (c) Cooper/RSM/P7S ------------------------------------------ Автором основного алгоритма является Иван Рощин. Cooper , тобишь я, добавил саму процедуру печати символа 8х8 (оптимизиро- ванная на скорую руку. Кому надо - тот сделает быстрее ;) и поддержку цвета. Да, и еще, я сделал вызов окна через вектор, но можете сделать так, как удобнее вам. При её вызове (метка OPEN_W ) в регистро- вой паре DE нужно задать координаты левого верхнего угла рамки,в регистре B - высоту, в C - ширину окна (в символах). Ячейка COLOR должна содержать цвет. LD IX,VEKT CALL OKHO RET OKHO LD D,(IX+0) LD E,(IX+1) LD B,(IX+2) LD C,(IX+3) LD A,(IX+4) LD (COLOR),A 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 JP NZ,OPEN_W4 LD A,L CALL PRSYM POP DE INC E RET ;печать символа 8х8 с цветом ;in: DE - координаты, A - код символа PRSYM PUSH BC PUSH AF PUSH DE PUSH HL LD L,A LD H,0 LD BC,42048 ;адрес вашего шрифта ADD HL,BC LD A,D AND 7 RRCA RRCA RRCA OR E LD E,A LD A,D AND 24 OR 64 LD D,A DUP 7 LD A,(HL) LD (DE),A INC H INC D EDUP LD A,(HL) LD (DE),A LD A,D RRCA RRCA RRCA AND 3 OR #58 LD D,A LD A,%00001111 COLOR EQU $-1 LD (DE),A POP HL POP DE POP AF POP BC RET ;---вектор окна----- ;+00 - Y координата ;+01 - X координата ;+02 - X-размер ;+03 - Y-размер ;+04 - цвет окна ;------------------- ;пример вектора окна VEKT DB 1,1,10,10,15