Мои приложения MSX

Я научился преподавать в начальной школе во время внеклассных занятий в начальной школе (АРСЕ) за последние пару лет вместе с Хуаном Карлосом, учителем из Сальвадора Батлле.

Позже я купила компьютер MSX (Sony Hit Bit 501P (Sony HB-501P)) и вместе с другом мы изучили возможности этой машины, проведя целые дни, печатая программы, которые были написаны на бумаге в некоторых журналах MSX того времени.

Следующим шагом после того, как мой учитель математики взялся за решение этой задачи, было обучение программированию на языке сборки MSX (процессор Z-80).


На этом сайте я намерен поделиться некоторыми лучшими приложениями, которые я запрограммировал тогда в формате.cas:

  • Флейт: программа конкурса в моей средней школе (I.B. Gabriel Ferrater), когда я был на первом курсе BUP (BASIC).
  • Дизайнер: графический дизайнер, чтобы создать графики для игр, которые он собирался продюсировать в будущем (в Assembler Z-80).
  • Зодия: Космический корабль с вертикальным свитком (в Assembler Z-80).
  • Habla: Приложение от текста к тексту на испанском языке (комбинация Z-80 Assembler и BASIC).
  • Tetris: Моя версия популярной игры Tetris. (в Assembler Z-80).
  • Семя того, что должно было быть лабиринтом, вдохновлённое "Конами" "Мазой Галиуса".
  • Я также делюсь исходными кодами приложений в Assembler, вместе с сборщиком Hishoft, который я купил в тот день и который я делюсь между файлами.cas в загрузке (не все из них работают).


Я также собираюсь поделиться кое-какими изменениями, которые я сделал для приложения командно-координационного интерфейса, запрограммированного Винсентом ван Дамом.

В настоящее время существует факультативная функция отключения сигнала, обработанного с помощью вав2cas, на csv, в числе других новых элементов.

Я также поделюсь рядом дополнительных сценариев для работы с.cas или с новыми.csv из образцов сигналов вав2cas:

  • histogram.py : Скрипт для получения значений гистограммы из проб.
  • ..................................................................
  • del_msx_taperes_into_singular_files.py :: Разделяет файлы.cas в файлы.cas, содержащие индивидуальные файлы.
  • ..................................................................
  • экстракт_msx_sources.py : Он позволяет вам извлекать файл.txt с каждым исходным файлом из файла.cas (ascii и Asm). Он работает не очень хорошо, но может быть началом.
  • ..................................................................

Флейт (1987 год)

Смотреть видео

Графический дизайнер (1989 год)

Смотреть видео

Зодия (1987-1989 годы)

Смотреть видео

Объединение (1991 год)

Смотреть видео

Тетрис (1992 год)

Смотреть видео

Говори (1991 год)

Смотреть видео

Ристу (1990-1992 годы)

Смотреть видео

Встреча с сборщиком

Смотреть видео

Описание программы

image
image

Программа Flauta была создана для участия в конкурсе программного обеспечения в моей средней школе (I.B. Gabriel Ferrater), когда я был на первом курсе средней школы.

Она предназначена для проверки положения пальца для воспроизведения каждой ноты на флейте.

Программа является предлогом для отображения пользовательского интерфейса в графическом режиме.

Вы можете увидеть видео, где работает программа Демовидео

image
image

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

Запрограммировано в Assembler Z-80.

Я закончила программирование после двух интенсивных месяцев развития.

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

С ним можно было бы проектировать экраны презентации, сериты и игровые персонажи.

Вы можете увидеть видео, где работает программа Демовидео


Также есть демо, показывающее лучшие скриншоты и графики, которые я спроектировал вместе с ним: Видео с лучшими экранами

image
image

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

Запрограммировано в Assembler Z-80.

Он посвящен моему учителю математики (Дж.Р.М. - Хосе Рамон Молина) за то, что он дал мне идею обучения сборщикам.

Игра на SKEN 1 с более мягкой графикой, чем SKEN 2.


Чтобы дать тебе представление о том, каково это...

Очевидно, что в какой-то момент счёт, достигнутый игроком, должен был быть напечатан...

Цифры были либо эквивалентны uint8 или uint16

Для доски я выбрала тип uint16 (он не может превышать 65535)

Чтобы распечатать цифры, число нужно было преобразовать в Базу-10, что я сделал, делив на 10 n раз, принимая модули и катекторы.

Но... у Z-80 не было никаких указаний в сборщике для умножения или деления! И что теперь?

Ну, это просто... мы разделяем, вычитаем дивиденд из дивиденда N раз, и мы увеличиваем соотношение до тех пор, пока результат не переполнится...

Какая глупость!

Ну, вот как все было...


Есть видео, показывающее полный свиток (с некоторыми ошибками): Видео с полным свитком


Вы можете увидеть видео, где работает программа Демовидео

image

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

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

Было запомнено состояние трех синтезирующих ключей, нажатых одновременно (три голоса чипов).

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

Для проведения поиска я просто узнал о частоте примечания А ((регулировочная вилка) 400 Гц) и применил корень-двенадцатый коэффициент 2 (2 ≥ (1/12)) (одна октава, двенадцать полутонов).

А потом искать соответствующие элементы в ПЗУ, с номерами uint16.


Вы можете увидеть видео, где работает программа Демовидео

image

Летом между выпускным классом средней школы и первым классом Телеко (1991 год) я активно работал официантом в бар-аргенте в Салу.

Я ездил на автобусе туда-сюда, и по дороге домой, перед тем как идти домой, я заходил на игру в игру, чтобы поиграть в сказочные игры Тетриса...

После более чем 60 игр в этой игре я стал экспертом, и мне понравилось найти эту игру, когда судьба повезла меня случайно в место, где были автоматы.


В 1992 году я решил запрограммировать свою версию Tetris в Assembler Z-80 и в рекордное время в три дня.

В то время я уже немного флиртовал с оцифровкой звуков (из записи MSX), и на резервном экране игры песня играется через оратора (эмулятор OpenMSX идеально имитирует эту деталь).


Вы можете увидеть видео, где работает программа Демовидео

image

Не помню, когда я впервые наткнулся на возможность оцифровки звуков из записи MSX.

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

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


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

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

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

Да, немного сумасшедший... но больше ничего не получилось...

Я запрограммировал правила испанской телефоники в приложении Assembler Z-80, с взаимодействием с пользователем, запросив предложение в BASIC.


С эмулятором OpenMSX вы можете идеально имитировать исполнение этой маленькой программы.


Вы можете увидеть видео, где работает программа Демовидео

image

Проведя бесчисленное количество часов в "Мазе Галиуса", я решил создать игру в лабиринт, вдохновленную ею, и с похожим визуальным видом (с моими ограничениями).

Программа снова была в Assembler Z-80.

Я создал экраны (в 14 x 12 экранной матрице) на основе 4x4, которые были объединены как головоломка.

Итак, экран занимал 5 х 8 = 40 байтов, хотя для определения 4 х 4 блоков нужно было добавить фиксированную оккупацию памяти.


Я спас несколько реализаций, чтобы перенести персонажа по всему миру, хотя самый полный из них (PERFEC) я не смог заставить его работать в эмуляторе.

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

Я помню, что однажды мне пришлось сделать трюк, переместив область памяти BASIC выше (с некоторыми замечательными шутками, которые я больше не помню).

И без них невозможно добиться того, чтобы эта реализация работала (хотя этот исходный код был извлечен правильно в.cas).


Вы можете увидеть видео, где работает программа Демовидео

image

Сборщик является основной частью развития в Assembler Z-80.

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

Там был также монитор, но я никогда не знала, как заставить его работать...


В видео вы можете увидеть пример сеанса с сборщиком Демовидео

Видеоматериалы

Загрузка