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



         

Полный набор латинских символов



Рисунок 4.3. Полный набор латинских символов



Первая программа создает полный набор, состоящий из латинских букв, цифр, знаков препинания и специальных символов (Рисунок 4.3). Наберитесь терпения и введите ее строки в компьютер. Львиную долю программы составляют блоки данных, содержащие коды всех символов. Если вы нечаянно ошибетесь при вводе хотя бы одного числа, программа в конце работы сообщит об этом и текстом и звуком. А чтобы ошибку легче было обнаружить, все символы, один за другим, выводятся на экран по мере выполнения программы. Если текст программы введен без ошибок, то через некоторое время на экране появится стандартное сообщение Start tape then press any key. Включите магнитофон на запись и нажмите любую клавишу. Коды нового фонта запишутся на ленту. Если вы работаете с дисководом, слегка измените строку 90:

90 RANDOMIZE USR 15619: REM: SAVE "latfont"CODE 64000,768

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

10 PAPER 5: BORDER 5: CLEAR 63999: LET s=0: LET ad=64000 20 PRINT INK 1;"Please wait"''': PLOT 0,160: DRAW INK 6;255,0: PLOT 0,116: DRAW INK 6;255,0 25 RANDOMIZE ad-256: POKE 23606,PEEK 23670: POKE 23607,PEEK 23671 30 FOR i=CODE " " TO CODE "": FOR j=1 TO 8 40 READ a: LET s=s+a: POKE ad,a: LET ad=ad+1 50 NEXT j 60 PRINT CHR$ i;: NEXT i 70 POKE 23606,0: POKE 23607,60 80 IF s<>37874 THEN PRINT AT 10,8; INK 2; FLASH 1; "Error in DATA!!!": BEEP .5,-20: STOP 90 SAVE "latfont"CODE 64000,768 1000 DATA 0,0,0,0,0,0,0,0: REM Space 1010 DATA 0,48,48,48,48,0,48,0: REM ! 1020 DATA 0,108,108,0,0,0,0,0: REM " 1030 DATA 0,54,127,54,54,127,54,0: REM # 1040 DATA 0,8,62,104,60,22,124,16: REM $ 1050 DATA 0,99,102,12,24,51,99,0: REM % 1060 DATA 0,24,44,24,58,108,58,0: REM & 1070 DATA 48,48,96,0,0,0,0,0: REM ' 1080 DATA 0,12,24,24,24,24,12,0: REM ( 1090 DATA 0,48,24,24,24,24,48,0: REM ) 1100 DATA 0,0,54,28,127,28,54,0: REM * 1110 DATA 0,0,24,24,126,24,24,0: REM + 1120 DATA 0,0,0,0,0,48,48,96: REM , 1130 DATA 0,0,0,0,126,0,0,0: REM - 1140 DATA 0,0,0,0,0,48,48,0: REM . 1150 DATA 0,3,6,12,24,48,96,0: REM / 1160 DATA 0,60,102,110,118,102,60,0: REM 0 1170 DATA 0,24,56,24,24,24,60,0: REM 1 1180 DATA 0,60,102,6,60,96,126,0: REM 2 1190 DATA 0,60,102,12,6,102,60,0: REM 3 1200 DATA 0,12,28,44,76,126,12,0: REM 4 1210 DATA 0,124,96,124,6,70,60,0: REM 5 1220 DATA 0,60,96,124,102,102,60,0: REM 6 1230 DATA 0,126,6,12,24,48,48,0: REM 7 1240 DATA 0,60,102,60,102,102,60,0: REM 8 1250 DATA 0,60,102,102,62,6,60,0: REM 9 1260 DATA 0,0,48,48,0,48,48,0: REM : 1270 DATA 0,0,48,48,0,48,48,96: REM ; 1280 DATA 0,0,12,24,48,24,12,0: REM < 1290 DATA 0,0,0,126,0,126,0,0: REM = 1300 DATA 0,0,48,24,12,24,48,0: REM > 1310 DATA 0,56,108,12,24,0,24,0: REM ? 1320 DATA 0,60,110,110,110,96,62,0: REM @ 1330 DATA 0,60,102,102,126,102,102,0: REM A 1340 DATA 0,124,102,124,102,102,124,0: REM B 1350 DATA 0,60,102,96,96,102,60,0: REM C 1360 DATA 0,124,102,102,102,102,124,0: REM D 1370 DATA 0,126,96,124,96,96,126,0: REM E 1380 DATA 0,126,96,124,96,96,96,0: REM F 1390 DATA 0,60,102,96,110,102,60,0: REM G 1400 DATA 0,102,102,126,102,102,102,0: REM H 1410 DATA 0,60,24,24,24,24,60,0: REM I 1420 DATA 0,28,12,12,12,76,56,0: REM J 1430 DATA 0,100,104,120,104,100,102,0: REM K 1440 DATA 0,96,96,96,96,98,126,0: REM L 1450 DATA 0,99,119,107,107,99,99,0: REM M 1460 DATA 0,102,102,118,110,102,102,0: REM N 1470 DATA 0,60,102,102,102,102,60,0: REM O 1480 DATA 0,124,102,102,124,96,96,0: REM P 1490 DATA 0,60,102,102,102,124,58,0: REM Q 1500 DATA 0,124,102,102,124,108,102,0: REM R 1510 DATA 0,60,96,60,6,102,60,0: REM S 1520 DATA 0,126,24,24,24,24,24,0: REM T 1530 DATA 0,102,102,102,102,102,60,0: REM U 1540 DATA 0,102,102,102,102,60,24,0: REM V 1550 DATA 0,99,99,99,107,127,34,0: REM W 1560 DATA 0,76,76,56,56,100,100,0: REM X 1570 DATA 0,102,102,60,24,24,24,0: REM Y 1580 DATA 0,126,14,28,56,112,126,0: REM Z 1590 DATA 0,28,24,24,24,24,28,0: REM [ 1600 DATA 0,96,48,24,12,6,3,0: REM \ 1610 DATA 0,56,24,24,24,24,56,0: REM ] 1620 DATA 24,60,126,24,24,24,24,0: REM ­




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