Я бы пробел оставил в покое. УС/Ctrl лучше. ESC как всегда АР2. Хорошо бы предусмотреть возможность добавить дублирование на джойстиках.
Опрос клавиатуры + джойстиков из Рива рейда:
https://github.com/svofski/incursion...ster/input.inc
Вид для печати
Я бы пробел оставил в покое. УС/Ctrl лучше. ESC как всегда АР2. Хорошо бы предусмотреть возможность добавить дублирование на джойстиках.
Опрос клавиатуры + джойстиков из Рива рейда:
https://github.com/svofski/incursion...ster/input.inc
В аттаче положил первую драфт-версию.
https://pic.maxiol.com/thumbs2/16066....202011292.png https://pic.maxiol.com/thumbs2/16066....202011293.png https://pic.maxiol.com/thumbs2/16066....202011294.png https://pic.maxiol.com/thumbs2/16066....202011295.png
Текущий маппинг клавиатуры Вектора:
- Движение в четырёх направлениях - стрелки.
- Look/shoot - Пробел
- Переключатель Look/Shoot - ТАБ
- Инвентарь - 'I' / 'M'
- Закрыть диалог (Escape) - ПС / ЗБ
- Выход в меню - 'P' / 'R'
Собираюсь ещё доделать:
- Генератор случайных чисел
- Применение "тёмной темы" в режиме когда на экране печатается часть истории
- Исправления ошибок
- Может быть, какая-то оптимизация
Ребят, а можно ещё пример кода чтобы простейший пук на динамик выдать? хочу повесить на look/shoot, как и в ZX версии.
Только пожалуйста, ничего сложного, просто цикл или вызов в ROM.
А чем тут принято упаковывать результат? какой-нибудь консольный упаковщик + код распаковки?
(сорри туплю, вспомнил про LZSA - https://gitlab.com/ivagor/lzsa8080
Не знаю, можно-ли сделать компактный вывод "пук" через ВИ53.
Мне кажется можно попробовать вывести в динамик код самой программы. ;)
Прослушать всю программу, возможно кусок с какой-то картинкой может быть похож на "пук". :)
Это чтоб звук специально не хранить, место экономить... взять кусок того, что уже есть...
nzeemin, вопрос в том, как в принципе издать звук или в том как издать конкретный звук? Возможно есть пример такого звука для другого компа.
Если надо издать звук через ВИ53, то вот небольшой код, выдрал из теста техпрогона:
Скрытый текст
Код:; Режим 3 - генератор прямоугольных сигналов
LXI H, 005DCh ; Значение делителя частоты
MVI A, 036h ; 0011 0110 -- [канал 0][чт/зп слова][режим 3][двоичный]
OUT 008h ; РУС м/с ВИ53
MOV A, L
OUT 00Bh ; Канал 0
MOV A, H
OUT 00Bh ; Канал 0
LXI H, 002EEh ; Значение делителя частоты
MVI A, 076h ; 0111 0110 -- [канал 1][чт/зп слова][режим 3][двоичный]
OUT 008h ; РУС м/с ВИ53
MOV A, L
OUT 00Ah ; Канал 1
MOV A, H
OUT 00Ah ; Канал 1
LXI H, 001F4h ; Значение делителя частоты
MVI A, 0B6h ; 1011 0110 -- [канал 2][чт/зп слова][режим 3][двоичный]
OUT 008h ; РУС м/с ВИ53
MOV A, L
OUT 009h ; Канал 2
MOV A, H
OUT 009h ; Канал 2
; выключение звука
; Режим 0 - выдача сигнала прерывания по конечному числу
MVI A, 030h ; 0011 0000 -- [канал 0][чт/зп слова][режим 0][двоичный]
OUT 008h ; РУС м/с ВИ53
MVI A, 070h ; 0111 0000 -- [канал 1][чт/зп слова][режим 0][двоичный]
OUT 008h ; РУС м/с ВИ53
MVI A, 0B0h ; 1011 0000 -- [канал 2][чт/зп слова][режим 0][двоичный]
OUT 008h ; РУС м/с ВИ53
[свернуть]
Если не ошибаюсь в значениях, то там через канал 0 выдаётся частота 1кГц, канал 1 -- 2кГц и канал 2 -- 3кГц.