|
|
| (не показаны 2 промежуточные версии этого же участника) |
| Строка 1: |
Строка 1: |
| − | '''DOWN HL''', '''UP HL''' — широко используемые при программировании графики процедуры для перехода к следующей и предыдущей пиксельной строке экрана с учётом [[256x192|нелинейной раскладки видеопамяти]], то есть с переходом между строками знакомест и третями экрана.
| + | #REDIRECT [[Расчет адреса следующей строки экрана]] |
| − | | + | |
| − | Из названия процедуры следует, что адрес находится в регистровой паре HL. Также используются варианты этой процедуры для других регистровых пар. Существует несколько версий процедуры, отличающихся размером и быстродействием, а также оформлением в виде подпрограммы или макроса. Время выполнения процедуры зависит от адреса текущей пиксельной строки.
| + | |
| − | В случае реализации функционала в виде отдельной процедуры, условные переходы необходимо заменить на условный возврат (JR Z,EXIT -> RET Z).
| + | |
| − | | + | |
| − | <code><pre>
| + | |
| − | ;В этом варианте процедуры также используется флаг переноса.
| + | |
| − | ;Он установлен, если был переход к следующей строке знакомест.
| + | |
| − | | + | |
| − | DOWN_HL:
| + | |
| − | INC H
| + | |
| − | LD A,H
| + | |
| − | AND 7
| + | |
| − | JR NZ,EXIT ;CY=0
| + | |
| − | LD A,L
| + | |
| − | ADD A,32
| + | |
| − | LD L,A
| + | |
| − | JR C,EXIT ;CY=1
| + | |
| − | LD A,H
| + | |
| − | ADD A,-8
| + | |
| − | LD H,A ;CY=1
| + | |
| − | EXIT:
| + | |
| − | | + | |
| − | UP_HL:
| + | |
| − | LD A,H
| + | |
| − | DEC H
| + | |
| − | AND 7
| + | |
| − | JR NZ,EXIT
| + | |
| − | LD A,L
| + | |
| − | SUB 32
| + | |
| − | LD L,A
| + | |
| − | JR C,EXIT
| + | |
| − | LD A,H
| + | |
| − | ADD A,8
| + | |
| − | LD H,A
| + | |
| − | EXIT:
| + | |
| − | </pre></code>
| + | |
| − | | + | |
| − | [[Категория:Программирование]] [[Категория:Программирование графики]]
| + | |