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



         

Элементы углов рамки



Рисунок 4.2. Элементы углов рамки



Для упрощения кодирования мы можем предложить простую сервисную программку на Бейсике, перед использованием которой следует создать полный набор символов, прибегнув к помощи одного из редакторов фонтов (например, из Art Studio). Но не обязательно все символы будут взяты из полученного шрифта, например, в нашей программе заставки их использовано только16. Вот текст кодировщика символов (в дальнейшем везде, где в программах потребуется ввести более одного пробела подряд, для наглядности будем обозначать их символом «·».):

10 BORDER 0: PAPER 0: INK 5: CLEAR 64255 30 INPUT "Font file name:"; LINE a$ 40 LOAD a$CODE 64256 50 INPUT "start symbol:"; LINE a$ 60 CLS : PRINT AT 15,0; INK 6;"'E' - to exit" 70 LET a$=a$(1) 80 LET start=64256+((CODE a$)-32)*8 90 LET s=CODE a$: LET c=0 100 GO TO 110 110 FOR m=start TO 64256+768 120 LET a=PEEK m: LET byte=a 130 LET c=c+1 140 DIM b(8) 150 FOR n=1 TO 8 160 LET a=a/2: LET b(n)=a<>INT a: LET a=INT a 170 NEXT n 180 PRINT AT 2,1; INK 2;"Symbol: "; INK 7; PAPER 1;CHR$ s; PAPER 0; INK 2;" Code: "; INK 7;s 190 FOR n=1 TO 8 200 IF b(n)=0 THEN PAPER 1 210 IF b(n)=1 THEN PAPER 6 220 PRINT AT c+3,9-n;" " 230 NEXT n 240 PAPER 0: PRINT AT c+3,10;byte;"··" 250 IF c>7 THEN LET c=0: LET s=s+1: GO TO 270 260 NEXT m 270 REM ----Если нажата клавиша E---- 280 LET k$=INKEY$ 290 IF k$="E" OR k$="e" THEN BEEP .01,0: GO TO 50 300 IF k$<>"" THEN BEEP .01,20: GO TO 260 310 GO TO 280

Использование этой программы не вызовет никаких затруднений - достаточно отвечать на вопросы, появляющиеся на экране. Добавим только, что при работе с дисководом следует включить в программу строку

20 RANDOMIZE USR 15619: REM : CAT

а строку 40 заменить на такую:

40 RANDOMIZE USR 15619: REM : LOAD a$CODE 64256

Мы пропустим утомительный этап кодирования символов, в результате чего получится довольно длинный ряд цифр, которые запишем после инструкции DEFB и присвоим первому байту этого блока данных метку UDG:




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