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

       

Правила игры



Рисунок 4.5. Правила игры

После ввода исходного текста программы следует выйти в Бейсик и подгрузить в память только что полученные кодовые файлы:

LOAD "latfont"CODE 64000 LOAD "rusfont"CODE 64768

Затем оттранслируйте набранный текст и введите команду редактора R для исполнения машинного кода.

Вот текст программы «Правила игры»:

ORG 60000 ENT $ LATF EQU 64000-256 RUSF EQU LATF+768 LD A,5 LD (23693),A LD A,0 CALL 8859 CALL 3435 LD A,2 CALL 5633 ; Печать «отрывной части блокнота» LD DE,TXT LD BC,TXT1-TXT CALL 8252 ; Печать названия игры «MOON SHIP» LD HL,LATF LD (23606),HL LD DE,TXT1 LD BC,TXT2-TXT1 CALL 8252 ; Печать русского текста LD HL,RUSF LD (23606),HL LD DE,TXT2 LD BC,TXT3-TXT2 CALL 8252 ; Печать слова «Enter» LD HL,LATF LD (23606),HL LD DE,TXT3 LD BC,TXT4-TXT3 CALL 8252 ; Печать русского текста LD HL,RUSF LD (23606),HL LD DE,TXT4 LD BC,TXT5-TXT4 CALL 8252 ; Печать слова «Space» LD HL,LATF LD (23606),HL LD DE,TXT5 LD BC,TXT6-TXT5 CALL 8252 ; Печать русского текста LD HL,RUSF LD (23606),HL LD DE,TXT6 LD BC,END-TXT6 CALL 8252 ; Рисование «листка блокнота» EXX ;сохранение HL' PUSH HL LD A,5 LD (23695),A ; Левая вертикальная линия LD DE,#101 ;DRAW 169,0 LD BC,#A900 CALL 9402 ; Верхняя горизонтальная линия LD DE,#101 ;DRAW 0,255 LD BC,255 CALL 9402 ; Правая вертикальная линия LD DE,#FF01 ;DRAW -169,0 LD BC,#A900 CALL 9402 ; Нижняя горизонтальная линия LD DE,#1FF ;DRAW 0,-255 LD BC,255 CALL 9402 POP HL ;восстановление HL' EXX ; Восстановление стандартного шрифта LD HL,15360 LD (23606),HL RET

; Данные для печати «отрывной части блокнота» TXT DEFB 22,1,0,16,5 DEFB 32,131,32,131,32,131,32,131 DEFB 32,131,32,131,32,131,32,131 DEFB 32,131,32,131,32,131,32,131 DEFB 32,131,32,131,32,131,32,131

; Данные текста правил игры TXT1 DEFB 22,2,8,16,4 DEFM "M O O N··S H I P" DEFB 22,3,7,16,6 DEFM "------------------" TXT2 DEFB 22,4,10,16,7 DEFM "Prawila igry" DEFB 22,6,2,16,2,"1",".",16,5 DEFM " Dlq··uprawleniq···korablem" DEFB 22,7,1 DEFM "ispolxzujte··klawi{i " DEFB 16,7 DEFM "# $ % " DEFB 16,5,"i" DEFB 16,7 DEFM " &" DEFB 22,9,2,16,2,"2",".",16,5 DEFM " Dlq ustanowki dozy gorЈ~e-" DEFB 22,10,1 DEFM "go naberite ~islo ot 10 do 200" DEFB 22,11,1 DEFM "ili 0 i··navmite klawi{u " TXT3 DEFB 16,3 DEFM "Enter" TXT4 DEFB 22,13,2,16,2,"3",".",16,5 DEFM " Wremennaq ostanowka -" TXT5 DEFB 16,3 DEFM "Space" TXT6 DEFB 22,15,2,16,2,"4",".",16,5 DEFM " Blestq}aq posadka dostiga-" DEFB 22,16,1 DEFM "etsq, esli··na··wysote, rawnoj" DEFB 22,17,1 DEFM "nulЈ, skorostx··lunnogo modulq" DEFB 22,18,1 DEFM "takve budet rawna nulЈ" DEFB 22,20,7,16,1 DEFM "Prodolvatx ? (" DEFB 16,2,18,1,"D" DEFB 16,1,18,0,"/" DEFB 16,2,20,1,18,1,"N" DEFB 16,1,20,0,18,0,")" END



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