Как написать игру для ZX Spectrum на ассемблере



         

Элементы углов рамки - часть 2


UDG DEFB 0,63,64,95,95,95,95,95 ;A (144) DEFB 0,252,30,250,250,250,242,242 ;B (145) DEFB 95,95,127,127,124,96,63,0 ;C (146) DEFB 226,194,130,2,2,2,252,0 ;D (147) DEFB 0,63,0,95,107,95,107,95 ;E (148) DEFB 0,244,0,208,234,208,234,208 ;F (149) DEFB 107,95,107,95,107,0,63,0 ;G (150) DEFB 234,208,234,208,234,0,244,0 ;H (151) DEFB 107,95,107,95,107,95,107,95 ;I (152) DEFB 234,208,234,208,234,208,234,208 ;J (153) DEFB 0,31,85,74,95,74,95,95 ;K (154) DEFB 0,255,85,170,255,170,255,255 ;L (155) DEFB 95,95,85,74,21,64,21,0 ;M (156) DEFB 255,255,85,170,85,0,85,0 ;N (157) DEFB 0,248,82,170,250,170,250,250 ;O (158) DEFB 250,250,82,170,80,2,80,0 ;P (159)

В комментариях справа от каждой строки указаны клавиши, соответствующие символам, вводимым в режиме курсора [G], и их десятичные коды. Буквы выписаны, скорее, как воспоминание о Бейсике, а вот коды нам понадобятся при составлении следующего блока, так как в редакторе GENS нет возможности вводить символы UDG непосредственно с клавиатуры.

Для получения блока данных, описывающего внешний вид рамки, за неимением какого-либо специализированного редактора лучше всего «включить» полученный набор UDG и составить программу сначала на Бейсике. При таком способе не нужно будет после каждого введенного символа транслировать программу заново и проверять правильность ввода, достаточно дать команду RUN. Кроме того, в Бейсике вы застрахованы от возникновения таких критических ошибок, после которых всю работу нужно начинать сначала. В конце останется только переписать полученный блок уже в редакторе GENS, не опасаясь, что где-то закралась ошибка.

«Включить» новые символы UDG в ассемблере до смешного просто. В Бейсике для этого требуется прежде всего определить адрес размещения символов в памяти, затем в цикле последовательно считывать коды из блока данных и переносить их по рассчитанному адресу. В ассемблере же ничего никуда перемещать не требуется, достаточно изменить адрес области UDG в системных переменных. А выполняется это всего двумя командами микропроцессора:




Содержание  Назад  Вперед