ZX Spectrum
Game

Border FX

Your Sinclair (Великобритания),

Автор:

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


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

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

Язык

  • Русский
  • English

Управление

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

Игроков

  • Один
  • Описание
  • Описание (авт.пер.)
  • Информация

ГРАНИЦА FX

Грэм Мейсон

[Этикетка Таблица в листинг ассемблера было определено, но это было]

[Довольно очевидно, где он должен идти. JimG]

Пограничные эффекты рутина Грэма Мейсона является довольно хорошим примером

эффективное иллюзия. И это дает превосходный впечатление, как быстро машинный код на самом деле.

Использование прерываний, процедура изменяет цвет границы в последовательности

каждый 50-й секунды. Результатом является “твердой” бар эффект, прямо в граница. Поверьте мне, это ошеломляющее.

Я взял программу на части, разбить его на разделы, и

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

Вы должны будете ассемблер ввести в листинг. Любой будет делать. Но обратите внимание

что ‘#’ перед некоторыми номерами указывает шестнадцатеричные числа. Некоторые монтажники отличаются нотации. Лучше всего, чтобы проверить руководство.

Эта инструкция (используется во всех сборщиков) обозначает адрес происхождения

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

0000 00000 орг 60000

Отключение всех маскируемых прерываний и делает программу работать немного быстрее.

EA60 F3 00000 ди

Создает таблицу векторов в 32768, который содержит адрес прерывания

переход на каждое 50-е секунды (# 9090).

EA61 210080 00000 LD HL, # 8000 EA64 110180 00000 LD DE, # 8001 EA67 010101 00000 LD BC, # 0101 EA6A 3690 00000 LD (HL), # 90 EA6C EDB0 00000 LDIR

Места с заявлением перехода по этому адресу.

EA6E 3EC3 00000 LD, # c3 EA70 329090 00000 LD (# 9090),

Теперь на # 9090 подпрограмма прерывания сказал, чтобы перейти к приграничных эффектов

рутина.

EA73 2182EA 00000 LD HL, ИНТЕР EA76 229190 00000 LD (# 9091), гл

Очки прерывание зарегистрируйтесь, чтобы старший байт таблицы векторов.

EA79 3E80 00000 LD, # 80 EA7B ED47 00000 LD I,

Выбор прервать режим два и разрешает прерывания. Пограничные эффекты будут

начать работать в этой точке. IM 2 является режим позволяет использовать ваш собственный прерывая программы в предпочтении к ПЗУ.

EA7D ED5E 00000 им 2 EA7F FB 00000 СЕРЫЙ е EA80 18FD 00000 младший СЕРЫЙ

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

подпрограмма по предупреждению коррупции.

EA82 F5 00000 ИНТЕР толчок аф EA83 C5 00000 толчок н.э.

EA84 E5 00000 PUSH HL EA85 D5 00000 толчок де

Граница чёрный.

EA86 AF 00000 исключающее EA87 D3FE 00000 из (#FE),

Эта задержка здесь является количество времени граница выбора между строк.

EA89 0B 00000 DELAY декабря до н.э.

EA8A 78 00000 LD A, B EA8B B1 00000 или в EA8C 20FB 00000 JR NZ, DELAY

Очки HL в таблице цветов.

EA8E 21F8EA 00000 LD HL, ТАБЛИЦА

Регистрация занимает содержимое [на который указывает] HL (это следующий байт из

таблица).

EA91 7E 00000 COLLEC LD, (гл)

Проверяет, если был достигнут конец таблицы (отмечен #FF),

если так, то отходят на STDATA.

EA92 FEFF 00000 ф # FF EA94 CAA8EA 00000 JP г, STDATA

Изменение границы с цветом, указанным в таблице.

EA97 D3FE 00000 из (#FE),

Регистрация BC проводит количество времени пограничные цвета будут оставаться на экране.

Увеличьте значение для более толстых линий.

EA99 010600 00000 LD BC, 6 EA9C 0B 00000 DELAY1 декабря до н.э.

EA9D 78 00000 LD A, B EA9E B1 00000 или в EA9F C29CEA 00000 JP NZ, delay1

Очистите флага переноса и возвращается назад, пока не сделано.

EAA2 E6FF 00000 и # FF EAA4 23 00000 INC HL EAA5 C391EA 00000 JP COLLEC

Очки HL в начале таблицы снова.

EAA8 21F8EA 00000 STDATA LD HL, ТАБЛИЦА

Другой задержка управления расстояние между верхней и нижней решеткой.

Чем дольше задержка дальше друг от друга, и наоборот.

EAAB 016E07 00000 LD BC, # 76-ой EAAE 0B 00000 delay2 декабря до н.э.

EAAF 78 00000 LD A, B EAB0 B1 00000 или в EAB1 20FB 00000 JR NZ, delay2

Регистрация занимает содержимое [на который указывает] HL в рамках подготовки к “печати”

Второй бар. Если маркер конца появляется на этот раз, то ключевую процедуру сканирования активируется.

EAB3 7E 00000 DATA LD, (гл) EAB4 FEFF 00000 ф # FF EAB6 CACAEA 00000 JP г, KESCAN

Изменение границы.

EAB9 D3FE 00000 из (#FE),

Другой задержка, на этот раз для бара два.

Инструкция JP быстрее, чем инструкции JR.

EABB 010600 00000 LD BC, 6 EABE 0B 00000 DELAY3 декабря до н.э.

EABF 78 00000 LD A, B EAC0 B1 00000 или в EAC1 C2BEEA 00000 JP NZ, DELAY3

Loop назад вокруг, пока не закончил.

EAC4 E6FF 00000 и # FF EAC6 23 00000 INC HL EAC7 C3B3EA 00000 JP ДАННЫЕ

Сканирование пространства, а левый нижний пять клавиши клавиатуры (кодируется # 7F).

Перейти к разворотом рутины, если не нажата пространство.

EACA 3E7F 00000 KESCAN LD A, # 7F EACC DBFE 00000 в, (# к) EACE F6E0 00000 или # e0 EAD0 Fefe 00000 ф #FE EAD2 200E 00000 JR NZ, BACKIN

Выключите эффект границы.

EAD4 F3 00000 ди

POP регистры из стека в обратном порядке, к которому они были выдвинуты.

EAD5 D1 00000 поп-де- EAD6 E1 00000 POP HL EAD7 C1 00000 поп н.э.

Установите зарегистрироваться вернуться к нормальной жизни, в гармонии с BASIC.

EAD8 3E3F 00000 LD, # 3f EADA ED47 00000 LD I,

Re-выбрать режим прерывания ROM.

ЭАДХ ED56 00000 им 1

Восстановление и флаги (F).

Иде F1 00000 поп аф

Разрешить прерывания. Очень важно при возвращении в BASIC для предотвращения “висит”.

EADF FB 00000 е

Используйте процедуру ошибке ROM, возвращаясь с ОК 0: 1.

EAE0 CF 00000 RST # 8 EAE1 FF 00000 DEFB # FF

Это полезно рутина сдвигает содержимое таблицы таким образом, чтобы на каждый

перепечатка бары появляются вращаться вокруг.

EAE2 3AF8EA 00000 BACKIN LD, (ТАБЛИЦА) EAE5 21F9EA 00000 LD HL, СТОЛ + 1 EAE8 11F8EA 00000 LD DE, ТАБЛИЦА EAEB 010D00 00000 LD BC, # d EAEE EDB0 00000 LDIR EAF0 2B 00000 декабре гл EAF1 77 00000 LD (HL),

Восстановить все укладываются регистров.

EAF2 D1 00000 поп-де- EAF3 E1 00000 POP HL EAF4 C1 00000 поп н.э.

EAF5 F1 00000 поп аф

Вернуться в BASIC с прерывания по-прежнему работает.

EAF6 ED4D 00000 RETI

EAF8 06070605 00000 Таблица DEFB 6,7,6,5,4,3,2,1,1

EAFC 04030201 EB00 01 EB01 01020304 00000 DEFB 1,2,3,4,5,0, # FF

EB05 0500FF

Игра Border FX запускается прямо на сайте. Эта программа для визуализации, опубликованная в Великобритании в 1989 году компанией Your Sinclair, которую написал Graham Mason.

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

avatar
  Subscribe  
Уведомлять об
 

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

  

Справка[X]

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

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

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

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

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

Помощь

Размер

  • x1 [256x192]
  • x2 [512x384]
  • x3 [768x576]
  • Полный

Диск

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