|
|||
| Разделы сайта | Cтатьи. |
Статистика сайта.
Посещений за день: 22 Баннеры. Статистика в картинках. Погода.
|
|
|
|
Вывод точки по таблице.
Сейчас хотелось бы поговорить о выводе точки. Сразу скажу, что метод, предложенный SATSOFT'ом в седьмом номере BODY, меня не вполне устраивает из-за скорости работы. Думаю, это связано с тем, что при подготовке BODY не всегда учитывались материалы из других изданий, где можно найти немало полезной информации, в частности в ECHO#1.
LD D,XPOSITION LD B,YPOSITION LD H,СТАРШИЙ БАЙТ АДРЕСА ТАБЛИЦЫ LD L,D LD E,(HL) INC H LD A,(HL) LD L,B INC H OR (HL) LD C,A INC H LD B,(HL) LD A,(BC) OR E LD (BC),A Процедура достаточно проста: по координатам X и Y с помощью заранее подготовленной таблицы вычисляется адрес нужной области экранной памяти, после чего в соответствующем байте устанавливается необходимый бит. Теперь приведу программу, создающую таблицу для этой процедуры. Без неё приведённая выше подпрограмма работать не будет. LD H,СТАРШИЙ БАЙТ РАЗМЕЩЕНИЯ БУДУЩЕЙ ТАБЛИЦЫ LD L,0 LD A,1 LD B,L MET1 RRCA LD (HL),A INC HL DJNZ MET1 LD D,L LD B,D MET2 LD A,D RRCA RRCA RRCA AND 31 LD (HL),A INC HL INC D DJNZ MET2 LD B,192 MET3 LD A,D RLCA RLCA AND 224 LD (HL),A LD A,D AND 7 LD E,A LD A,D AND 192 RRCA RRCA RRCA OR 64 OR E INC H LD (HL),A DEC H INC HL INC D DJNZ MET3 RET Таблица должна располагаться по адресу, соответствующему требованиям данной процедуры. Её размер можно определить по приведённому выше коду. И напоследок — немного информации о зависимости адреса экранной памяти от координат точки. Допустим, нам необходимо рассчитать адрес экранной памяти по координатам X и Y. Координата X может принимать значения от 0 до 255, а Y — от 0 до 191. Y ▒▒▓▓▓░░░ X ╬╬╬╬╬+++ 76543210 76543210 Полученный адрес: 010▒▒░░░ ▓▓▓╬╬╬╬╬ 76543210 76543210 │ │ │ └─ младший байт адреса └─────────── старший байт адреса Здесь символами обозначены группы битов, используемые при формировании адреса. Последовательность битов, обозначенная знаками «+», не влияет на получаемый адрес и при его расчёте может иметь любое значение. Однако это относится только к расчёту адреса, а не к самой процедуре вывода точки. Надеюсь, эта информация поможет разобраться с принципом работы процедуры и использовать её в собственных графических программах. >> |
||
| BitByByte, 2000 г. (2026). | |||