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



         

«Волна» - часть 3


ORG 60000 XOR A ;инициализация переменных: LD (HEAD),A ; начальной позиции «волны» CALL 3742 LD (AD_LIN),HL ; и адреса строки экрана WAVE LD HL,HEAD LD A,(HL) INC (HL) ;увеличивать или уменьшать можно не ; только содержимое регистров или ; регистровых пар, но и значение в ; ячейке памяти, адресованной парой HL CP 35 ;ушла ли «волна» за пределы экрана? RET Z CALL UP ;первый символ вверх DEC A CALL DOWN ;второй - вниз DEC A CALL DOWN ;третий тоже вниз DEC A CALL UP ;последний - вверх LD BC,5 CALL 7997 ;небольшая задержка (PAUSE 5) JR WAVE HEAD DEFB 0 ;позиция «головы» синусоиды AD_LIN DEFW 0 ;адрес экрана начала строки

Данная подпрограмма создает эффект «волны» в самой верхней строке экрана, а чтобы получить то же самое в другой строке, нужно перед командой

CALL 3742

добавить

LD A,N

где N - номер требуемой строки.

Подпрограмма в таком виде пригодна для вызова из Бейсика. Напечатайте в верхней строке какой-нибудь текст, желательно большими буквами, а затем выполните оператор

RANDOMIZE USR 60000

Если же вы захотите все необходимые приготовления выполнить в ассемблере, то у вас уже достаточно знаний, чтобы справиться с этой задачей самостоятельно и без особых трудностей.




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