Thinking in Binary: The Making of HoustonTracker 2

На недавнем Revision 2017 один из главных активистов однобитной музыки, utz (irrlichtproject), выступил с докладом об истории разработки им трекера HoustonTracker 2 для 8-битной (на Z80) линейки графических калькуляторов Texas Instruments — TI-82, TI-83 (TI-82STATS), TI-83+/84+/SE. Рассказ довольно мало касается собственно трекера, музыки, и однобитного синтеза звука, но даёт очень много интереснейших подробностей о самой платформе и сложностях, поджидающих новичков на пути её освоения.

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




  • Закрытость платформы. Компания Texas Instruments никогда не предполагала запуск пользовательских приложений в машинном коде, он стал возможен только благодаря усилиям энтузиастов, обнаруживших уязвимости в коде ОС. По той же причине никогда не была доступна официальная документация на железо и ОС. Вся низкоуровневая информация собрана любителями, в силу специфики платформы довольно юными, зачастую она неполна, неточна и просто ошибочна. Требуется сопоставление множества описаний и проведение тестов на железе для выявления истины.
  • Более полусотни разных моделей калькуляторов и их ревизий, часто содержащих значительные отличия в железе и софте, что вносит существенные проблемы в обеспечение совместимости. Для поддержки основного модельного ряда требуется создание нескольких различных версий, а также автоопределение некоторых их особенностей.
  • Сырость средств разработки. Так, наиболее популярный на платформе Telemark Assembler, несмотря на своё коммерческое прошлое и четвёртую мажорную версию, довольно ограничен и нестабилен. Всего три эмулятора, каждый из которых имеет различные проблемы с корректностью и скоростью эмуляции, а также ограниченную поддержку моделей калькуляторов. Официальная программа для обмена данными с компьютером передаёт не все файлы, установка более совершенной сторонней имеет ряд сложностей.
  • Ограниченный объём памяти при отсутствии средств сохранения и загрузки данных на внешнем носителе, за исключением связи с PC. Доступно только 25-27 килобайт ОЗУ с батарейным питанием, содержимое которого теряется при малейшем сбое. Flash-память, добавленная в поздних моделях, имеет очень небольшой ресурс, исчерпание которого приводит к потере работоспособности калькулятора.
  • Значительный разброс тактовой частоты в разных моделях, от 5.6 до 7.2 МГц. При этом она нестабильна и зависит от уровня заряда батареи. Применительно к синтезу звука это не позволяет получить стандартный музыкальный строй.
  • Крайне медленный контроллер дисплея, требующий больших (от 100 тактов) задержек при обращении к нему, причём более свежие модели требуют более длительных задержек. Дребезг клавиатуры, программное устранение которого требует задержек, отличающихся для разных моделей.
  • Особенности реализации внешнего порта, используемого как для связи с PC, так и в качестве аудиовыхода, отличающиеся в разных моделях и приводящие к различным проблемам. Так, простое подключение наушников к внешнему порту калькулятора при работе ОС приводит к многократному замедлению его работы (ошибочное ожидание передачи данных). В более новых моделях одновременная работа порта вместе с новым USB портом периодически приводит к просадке по питанию и перезагрузке.

2 комментария

avatar
Спасибо, заинтересовался и посмотрел полностью.
Ну и жесть! Упоролся же чувак! Особенно понравилось про изучение C++ для написания собственной тулзы. Вызывает уважение.
avatar
Господи, это ж как надо любить это железо, чтобы пытаться при таких проблемах делать для него софт, да еще и трекер!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.