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

       

Программа МИШЕНЬ



Рисунок 6.8. Программа МИШЕНЬ

ORG 60000 ENT $ ; Задание постоянных атрибутов экрана LD A,7 LD (23693),A XOR A CALL 8859 CALL 3435 LD A,2 CALL 5633 ; Ввод символов UDG - три «пулевые отверстия» LD HL,UDG LD (23675),HL

; Основная часть программы CALL MISH ;рисование мишени MAIN CALL WAIT ;ожидание нажатия любой клавиши CP " " RET Z LD A,22 RST 16 LD E,20 ;задание диапазона для координаты Y CALL RND RST 16 LD E,30 ;задание диапазона для координаты X CALL RND RST 16 LD A,16 RST 16 LD A,6 RST 16 LD E,3 ;задание номера «пулевого отверстия» CALL RND ADD A,144 ;вычисление кода спрайта RST 16 CALL SND ;звуковой сигнал JR MAIN

; Подпрограмма вывода на экран мишени MISH LD C,20 CALL CIRC LD C,40 CALL CIRC LD C,60 CALL CIRC LD C,80 CALL CIRC LD DE,TEXT LD BC,LENTXT JP 8252

; Подпрограмма рисования окружностей CIRC EXX PUSH HL EXX PUSH BC LD A,120 CALL 11560 LD A,90 CALL 11560 POP BC LD B,0 CALL 11563 CALL 9005 EXX POP HL EXX RET

; Подпрограмма остановки счета WAIT XOR A LD (23560),A WAIT1 LD A,(23560) AND A JR Z,WAIT1 RET ; Подпрограммы

SND LD B,80 LD HL,150 LD DE,1

; Данные для мишени TEXT DEFB 22,10,14 DEFM "10" DEFB 22,10,18 DEFM "8" DEFB 22,10,21 DEFM "6" DEFB 22,10,23 DEFM "4" DEFB 22,10,11 DEFM "8" DEFB 22,10,8 DEFM "6" DEFB 22,10,6 DEFM "4" LENTXT EQU $-TEXT ; Данные для «пулевых отверстий» UDG DEFB 4,20,62,60,127,60,40,8 DEFB 9,95,252,63,126,44,8,8 DEFB 16,48,244,63,28,56,28,8



Содержание раздела