Adventurer #08
31 августа 1998

Обмен опытом - процедура вывода окна с рамкой.

     (C) Иван Рощин, Москва, 1998

     Предлагаю  вашему вниманию небольшую
(44  байта),  но очень полезную процедуру
OPEN_W , которая изображает на экране ок-
но  с рамкой. Ее нетрудно модифицировать,
задав любые символы для изображения рамки
и заполнения окна.
     При ее вызове в регистровой паре  DE
нужно  задать  координаты левого верхнего
угла  рамки, в регистре B - высоту, C ши-
рину окна (в символах):

       ╔═════════════════════════╗
       ║     ^                   ║
       ║     |E                  ║
       ║  D  v                   ║
       ║<--->┌───────────┐ ^     ║
       ║     │           │ |     ║
       ║     │           │ |     ║
       ║     │   окно    │ |B    ║
       ║     │           │ |     ║
       ║     │           │ |     ║
       ║     │           │ |     ║
       ║     └───────────┘ v     ║
       ║     <----------->       ║
       ║           C             ║
       ╚═════════════════════════╝

     При  использовании  этой процедуры в
вашей  программе должна присутствовать  и
процедура  печати одного символа. Предпо-
лагается,  что она называется PRSYM и при
ее  вызове в аккумуляторе указывается код
печатаемого  символа, а в DE - координаты
печати (D=X, E=Y). После окончания работы
процедуры  PRSYM регистры не должны изме-
няться.
     Текст  процедуры 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

               *   *   *




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Железо - КОНТРОЛЛЕР IBM-совместимой клавиатуры и мыши для любого компьютера типа ZX-SPECTRUM (Инструкция по работе и подключению V 2.0).
Разное - И СНОВА AY. Статья о коррекции звучания муз. сопроцессора.
Железо - CОVОХ 251. Что это такое и с чем его едят.

В этот день...   22 октября