ZX Spectrum
Game

Patterns

ZX Computing (Великобритания),

Автор:

Жанр: Утилиты: Визуализация


Язык

  • Русский
  • English

Управление

  • Клавиатура(?)

Игроков

  • Один

Доступные версии

Неофициальное издание
Играть!

Доступные версии

Неофициальное издание
Играть!
  •  Описание (авт.пер.)
  •  Информация
Описание Patterns (автоматический перевод)

1 2 3 4 5 6 7 8

Освоение машинного кода на Вашем Spectrum часть 5 из 8 – от ZX Computing июня / Jul’83

Машина мастер-код, Тони Бейкер, показывает, как

включить машинный код в ваш основной программы с невероятная программа для добавления визуальное сопровождение к вашим стерео.

Я бы хотел, чтобы обмануть немного сейчас, если можно, давая вам BASIC

Программа. (Вопли ужаса!) Ну, он получил некоторые машины Код в этом, но ничего нового. Это урок в том, как включить машинный код в BASIC, для нахождения применение все эти странные и удивительные процедуры, которые держат обрезка до. Почти самая трудная задача у вас есть в программировании торчать на автобусных остановках и утомительных вечеринок ждет, что наиболее призрачны качеств – вдохновение.

Машина код рутина в вопросе был показан в рамках

три из этой серии статей – это рутина изменить цвета бумаги и чернил на протяжении всего экрана быстрее, чем вы можете сказать шестой “шестого больного шейха овечий болен “без падения. BASIC, что окружает оно является новым, однако. Это программа, чтобы произвести впечатление ваш следующий соседи и фанатики лазерных шоу, или новый способ работает дискотека. Это визуальное сопровождение к вашим стерео!

Звук здорово!

Это не технически звуко- to-осветительное устройство, для Программа не имеет возможности узнать, является ли ваш стерео даже включен, не говоря уже о то, что играет на нем. Что это Однако, это очень хорошая оптическая иллюзия звука и Видение синхронизируются. То, что вы сделать, это запустить программу и входные ответы на различные вопросы, задаваемые, положить ваши любимый альбом на, выключать освещение и закрыть шторы, то просто сидеть сложа руки в то время как ваш мозг танцует вокруг в кругах.

Программа отличается на рис. 1 и 2. Вы должны ввести

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

Я сейчас дам вам несколько примеров о том, как запустить программу.

Введите RUN. (Еще легко, не так ли?) На вопрос “НОМЕР ЛИНИЙ “, вы должны ввести (скажем) 5. Для” INK “, вход” INT (4 * RND) +4 », и для ‘бумажных’ вход ‘0’. Наконец, для «STARS?

Вы должны ввести “Y”. Это просто пример – попробуйте ее для себя.

Что сюжет?

Программа имеет несколько дополнительных функций, которые вы должны

знать о. RUN 200 позволяет определить начальную INK и начальные цвета бумаги. Например, RUN 200 и Затем вход 0/7/4 / “7-X ‘/’ 7-Y ‘/’ Y ‘/ (‘ / ‘, считается, что ENTER). RUN 400 спасет и проверить программу и машинный код.

Я не получится выше программы в машинный код только пока.

Прежде чем сделать, я дам вам некоторую информацию о УЧАСТОК и Рисовать.

ВЫЗОВ PLOT_BC (Hex CD E522) требуется B о проведении Y координировать и C удерживать X координату. Это будет сюжет требуется точка. Бит нуль P_flag (5C91) должна быть равна нулю В течение более чем 0 или один на сумму свыше 1.

ВЫЗОВ DRAW_3 (Hex CDBA24) требуется B удерживать абсолютное Значение параметра Y, и C абсолютная величина X Параметр. Если Y больше или равно нулю, то D должны провести 01 Hex, в противном случае D следует проводить FF Hex. Если X является больше или равно нулю, то Е следует держать 01 Hex, в противном случае E следует провести УС Hex. Последовательность инструкций LD HL, 2758 / EXX должны проводиться между разговором DRAW_3 и RET (для BASIC) иначе Спектр рухнет.

Время трансформации

Мы до сих пор не могут переписать программу в машинный код еще,

так как мы не имеем процедуру для INT (X * RND). Здесь Можно написать простую случайных чисел подпрограмму, которая создает случайные числа между 0000 и FFFF Hex в HL зарегистрируйтесь пару, так взгляните на рис.3, который иллюстрирует такие подпрограммы. Она работает с использованием случайных чисел семена уже используется ПЗУ, но на самом деле не называть РНД рутина ПЗУ (так как это очень непрактично).

подпрограмма, тем не менее, работать в более или менее так же, как РНД – она ​​принимает значение переменной SEED системы, и умножает его на какой-то постоянной. Только остальные по модулю 65536d берется в качестве нового результата. Это не совсем РНД, но она дает довольно случайные результаты.

Рисунок Четыре, с другой стороны, это еще один чайник рыбы

в целом. Это подпрограмма я назвал RAND_A в порядке чтобы отличить его от подпрограммы в рис.3. Это требует что содержит ряд между 00 и А-1. Из частности примечание подпрограмма MULT который называется изнутри RAND__A; это подпрограмма, которая будет умножить число состоится в реестр A по количеству проведенного в реестре DE пара. Результат будет формироваться в АХЛ регистра триплет (Результат всегда будет вписываться в трех байт). RAND_A работы так же, как обычной RND ПЗУ – он берет значение, семена, который умножается на 4В, а затем остаток найден от деления на Hex 10001, меньше одного. Вы можете увидеть, как Программа вычисляет этот остаток? Чтобы найти случайное число требуется, это новое начальное умножается на А и высокой части только становится случайное число.

Теперь мы почти готовы превратить программные шаблоны

полностью в машинный код. Ну – не совсем полностью, как мы до сих пор не может сделать VAL. Давайте игнорировать эту часть на время быть и оставить VAL в BASIC. Я хотел бы вам сейчас учиться Рис. 5 и 6, которые перечислены в пересмотренной программе, которая теперь называется Шаблоны 2. Если вы сейчас сравнить его с рис. 1 и 2, см, если Вы можете работать, как перевод осуществляется. Учтите, что инструкция ЗВОНОК RAND_A используется – это ссылка на подпрограмма на рис. 4.

Вы можете использовать любые адреса вы любите для этой программы. Я выбрал

использовать следующее:

Этикетка Hex декабря RAND_A 7000 28672 MULT 7021 28705 FIND_A 7030 28720 PL_DR 703b 28731 INIT 7078 28792 ГЛАВНАЯ 7098 28824 P_VAL 7105 28933 P_OVER 7106 28934 P_DRAW 7107 28935 ЛИНИИ 7108 28936 INK 7109 28937 ДОКУМЕНТ 710А 28938 ЗВЕЗДЫ 710B 28939 ARRAY 710C 28940

Важно, однако, что P_OVER и P_DRAW быть

смежные, а также этот массив указывает на старте сегмент свободное ОЗУ.

– Рис.1 Программа, паттерны: часть первая – BASIC – – – – – – – – – – – –

  10 INPUT “количество строк”; п

  20 DIM х (п + 1): DIM у (п + 1)   30 INPUT “INK”; х $ (использовать INK ключевое слово здесь)   40 INPUT “БУМАГИ”; у $ (использовать ключевое слово БУМАГИ здесь)   50 INPUT “STARS?”; $: Пусть S = $ = “N” ИЛИ $ = “N”   60 CLS: Пусть P = 1   70 Пусть p1 = р + 1: ЕСЛИ p1>п + 1 то пусть p1 = 1   80 LET p2 = p1 + 1: ЕСЛИ p2>п + 1 то пусть р2 = 1   90 PLOT х (P1), у (P1)   95 ЖЕРЕБЬЕВКА х (р2) -x (P1), у (р2) -y (P1)  100 PLOT над S; х (P1), у (P1)  105 рисования поверх 1; х (р2) -x (P1), у (р2) -y (P1)  110 Пусть X (p1) = INT (256 * RND)  120 Пусть Y (p 1) = INT (176 * RND)  130 PLOT х (р), у (р)  140 ЖЕРЕБЬЕВКА х (P1) -x (р), у (P1) -y (р)  150 Пусть X = VAL х $: Пусть у = VAL Y $  160 POKE 32769, х: POKE 32770, у: Пусть P = P1 + USR 32768  170 GO TO 70  200 INPUT “НАЧАЛЬНАЯ INK”; х  210 INPUT “основополагающей работе”; у  220 GO TO 10  400 SAVE “шаблонов” ЛИНИЯ 430  410 SAVE “шаблонов” КОД 32768,34  420 ПРОВЕРКА “”: Проверьте “” CODE: СТОП  430 CLEAR, 32767: LOAD “” CODE: STOP [я добавил CLEAR. JG.]

– Рис.2 Программа, паттерны: часть вторая – машина код – – – – – – – –

01 ???? СХЕМЫ LD BC, ???? Чтобы быть ткнул по BASIC

78 LD A, B 76 HALT D3FE OUT (FE), 78 LD A, B 87 ДОБАВИТЬ, 87 ДОБАВИТЬ, 87 ДОБАВИТЬ, 81 ДОБАВИТЬ A, C 218D5C LD HL, ATTR_P 77 LD (HL), 210058 LD HL, ATTRS 110158 LD DE, ATTRS + 1 01FF02 LD BC, 02FF 77 LD (HL), EDB0 LDIR C9 RET

– Фиг.3 машинный код случайное число подпрограмма – – – – – – – – – – – – –

D5 RAND PUSH DE

2A765C LD HL, (SEED) 54 LD D, H 5D LD E, L

29 ДОБАВИТЬ HL, HL
29 ДОБАВИТЬ HL, HL
19 ДОБАВИТЬ HL, DE
29 ДОБАВИТЬ HL, HL
29 ДОБАВИТЬ HL, HL
29 ДОБАВИТЬ HL, HL
19 ДОБАВИТЬ HL, DE

22765C LD (SEED), HL D1 POP DE C9 RET

– Фиг.4 INT (RND *) подпрограмма – – – – – – – – – – – – – – – – – – – – – –

C5 RAND_A PUSH BC

D5 PUSH DE E5 PUSH HL F5 PUSH AF 3E4B LD, 4Б ED5B765C LD DE, (SEED) CD ???? ВЫЗОВ MULT A7 И 4F LD C, ED42 SBC HL, BC 3801 JR C, AA 2В декабря HL 22765C А.А. LD (SEED), HL 54 LD D, H 5D LD E, L F1 POP AF CD ???? ВЫЗОВ MULT E1 POP HL D1 POP DE C1 POP BC C9 RET 0608 MULT LD B, 08 210000 LD HL, 0000 29 LOOP ДОБАВИТЬ HL, HL 17 РБА 3003 JR NC, BB 19 ДОБАВИТЬ HL, DE CE00 АЦП, 00 10F7 BB DJNZ LOOP C9 RET

– Рис.5 Программа, Patterns2; ОСНОВНЫЕ – – – – – – – – – – – – – – – – –

  10 INPUT “количество строк”; п

  20 тыкать линии, н: Пусть N = USR инициализации   30 INPUT “INK”; х $   40 INPUT “БУМАГИ”; у $   50 INPUT “STARS?”; $: Тыкать звезды, $ = “N” ИЛИ $ = “N”   60 POKE чернила, VAL х $: POKE бумагу, VAL у $   70 Пусть N = USR главная   80 GO TO 60  200 INPUT “НАЧАЛЬНАЯ INK”; х  210 INPUT “основополагающей работе”; у  220 GO TO 10  400 SAVE “P2” ЛИНИЯ 450  410 SAVE “P2” КОД rand_a, 263  420 ПРОВЕРКА “”  430 ПРОВЕРКА “” CODE  440 СТОП  450 CLEAR, rand_a-1: LOAD “” CODE [я добавил CLEAR. JG.]

– Рис.6 Программа, Patterns2; машинный код – – – – – – – – – – – – –

D5 FIND_A PUSH DE

11 ???? LD DE, ARRAY 6F LD L, 2600 LD H, # 00 29 ДОБАВИТЬ HL, HL 19 ДОБАВИТЬ HL, DE D1 POP DE C9 RET C5 PL_DR PUSH BC D5 PUSH DE 7А LD A, D D5 PUSH DE CD ???? ВЫЗОВ FIND_A 4E LD C, (HL) 23 INC HL 46 LD B, (HL) C5 PUSH BC 3А ???? LD, (P_OVER) 32915C LD (P_flag), CDE522 ЗВОНОК PLOT_BC C1 POP BC D1 POP DE 7В LD A, E CD ???? ВЫЗОВ FIND_A 7E LD, (HL) 23 INC HL 1E01 LD E, # 01 91 SUB C 3004 JR NC, ПД2 ED44 СЕГ 1EFF LD E, # FF 4F ПД2 LD C, 7E LD, (HL) 1601 LD D, # 01 90 SUB B 3004 JR NC, PD3 ED44 СЕГ 16FF LD D, # FF 47 PD3 LD B, 3А ???? LD, (P_DRAW) 32915C LD (P_flag), CDBA24 ЗВОНОК DRAW_3 D1 POP DE C1 POP BC C9 RET 210040 INIT LD HL, D_FILE 110140 LD DE, D_FILE + 1 01FF17 LD BC, # 17FF 3600 LD (HL), # 00 EDB0 LDIR ED4B ???? LD BC, (ЛИНИИ-1) 04 INC B 21 ???? LD HL, ARRAY AF XOR 77 IN2 LD (HL), 23 INC HL 77 LD (HL), 23 INC HL 10FA DJNZ IN2 32 ???? LD (P_VAL), C9 RET ED4B ???? ГЛАВНАЯ LD BC, (P_VAL) 3А ???? LD, (ЛИНИИ) 51 LD D, C 14 INC D BA CP D 3002 JR NC, M2 1600 LD D, # 00 5А M2 LD E, D 1С INC E BB CP E 3002 JR NC, M3 1E00 LD E, # 00 210000 M3 LD HL, # 0000 22 ???? LD (P_OVER), HL CD ???? ВЫЗОВ PL_DR 3А ???? LD, (STARS) 32 ???? LD (P_OVER), 3E01 LD A, # 01 32 ???? LD (P_DRAW), CD ???? ВЫЗОВ PL_DR 7А LD A, D CD ???? ВЫЗОВ FIND_A 3EFF LD A, # FF CD ???? ВЫЗОВ RAND_A 77 LD (HL), 23 INC HL 3EB0 LD A, # B0 CD ???? ВЫЗОВ RAND_A 77 LD (HL), 5А LD E, D 51 LD D, C 210000 LD HL, # 0000 22 ???? LD (P_OVER), HL CD ???? ВЫЗОВ PL_DR 7В LD A, E 32 ???? LD (P_VAL), 76 HALT 3А ???? LD, (ДОКУМЕНТ) D3FE OUT (#FE), 87 ДОБАВИТЬ, 87 ДОБАВИТЬ, 87 ДОБАВИТЬ, 2А ???? LD HL, (INK) B5 или L 328F5C LD (ATTR_T), 210058 LD HL, ATTRS 110158 LD DE, ATTRS + 1 01FF02 LD BC, # 02FF 77 LD (HL), EDB0 LDIR 215827 LD HL, # 2758 D9 EXX C9 RET

– Другой прекрасный продукт расшифрованы: Джим Grimwood (jimg@globalnet.co.uk), Weardale, Англия –

?

Краткая информация о Patterns

Играйте в Patterns без эмуляторов прямо на сайте. Программа для визуального представления, которую подарил миру Toni Baker, была выпущена творческой группой ZX Computing в 1983 году в Великобритании.

Не запускается или глючит игра, или не можете пройти? Спросите в комментариях.

Subscribe
Уведомлять об
guest
0 комментариев
Inline Feedbacks
View all comments

Сохранённые игры[X]

  

Справка[X]

Помощь уже в пути!

  • x1
  • x2
  • x3

Кликни в окно эмулятора, чтобы управлять!
<<<<

Не забывайте периодически сохранять игровой прогресс на сервере (клавишей F8), чтобы уверенно продвигаться вперёд!

Если вы гость на сайте, то прогресс будет сохранён только в памяти браузера и потеряется при закрытии. Чтобы этого не произошло - просто войдите в свой профиль.

Для загрузки сохранённой игры жмите F3 или откройте меню "Диск" кнопкой на правой панели.

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

Поделиться
Close
0
Would love your thoughts, please comment.x