Просмотр полной версии : LD A,0F7H и OUT (0FDH),A в Jetpac
1983 год. Spectrum 16K. Игра Jetpac. В цикле рисуется текстовое меню, затем идет OUT, затем опрос полуряда клавиатуры "12345" и реакция на нажатые клавиши.
Вопрос: какой смысл в OUT? Для чего он нужен?
Если вместо OUT поставить два NOP'а - все нормально работает в эмуляторе.
82663
OUT идет сразу перед IN. Может быть на реальном железе "залипает" состояние клавиш и их нужно сбрасывать перед чтением... Хотелось бы знать точно.
Dart Alver
16.08.2025, 13:38
Вопрос: какой смысл в OUT? Для чего он нужен?
Посылает байт #F7 в порт #F7FD на 16k машинке ?
Х.з. сбрасывание клавиш както сомнительно но х.з. может и правда нашли самотычный неофициальный метод )), какая-то непонятная периферия тоже возможно, но все-таки 16k., а может просто воткнули ради прикола, чтоб мы голову чесали. ))
старший байт порта клавы посылался в порт FD который мог использоваться в какой то клавиатурной периферии, возможно была клава которая это использовала для устранения матричного эффекта. Такая фигня во всех играх Ultimate.
ещё возможна ошибка ассемблера
(при компиляции - вставка ненужной команды, перед нужной)
Помню, что тоже видел эту странность, когда в 2002 году делал для этой игры возможность выбора клавиш управления. (Смотрите здесь.)
Но тогда не придал этому значения и списал все на неумение программистов работать с новым компьютером. Ведь когда писалась игра, Спектруму было около года.
Есть ещё такая гипотеза:
Писали на ЯВУ, в котором не было команды чтения из 16-битного порта. Нашли такой вот костыль. Сначала вывод в левый порт, чтобы только в А загрузить нужное значение.
в играх от ACG это было повсеместно.
возможно какая то ранняя девелоперская инфа по опросу клавы.
- - - Добавлено - - -
Есть ещё такая гипотеза:
Писали на ЯВУ, в котором не было команды чтения из 16-битного порта. Нашли такой вот костыль. Сначала вывод в левый порт, чтобы только в А загрузить нужное значение.
Это не ЯВУ.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot