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 TI-99/4a

Компьютер Texas Instruments TI-99/4a почти неизвестен за пределами США, однако он был там весьма популярен (выпущено более двух миллионов машин). Хотя этот компьютер создавался как домашний, существенной особенностью (во многом определившей его архитектуру, а затем и судьбу) было то, что за основу был взяли уже существовавший серьёзный мини-компьютер TI-990, собранный на обычной ТТЛ логике. Фактически, микропроцессор TMS9900 в компьютере TI99/4A является реализацией TI-990, но в виде чипа. TI-990 был выпущен в 1975 году, а TMS9900 в 1976 году.



Таким образом, TI99/4a (в 1979 был выпущен чуть более простой TI-99/4, а в 1981 уже TI-99/4a) получил в наследство крайне странную, для домашних компьютеров, архитектуру. Во-первых, микропроцессор TMS9900 в нём 16-разрядный — с честной 16-разрядной шиной данных (это в конце 1970-х!). Во-вторых, на чипе нет регистров (кроме PC, флагов и указателя «регистров» WP). То, что можно назвать регистрами, находится в отдельной микросхеме 16-разрядного статического ОЗУ размером 256 байт и может адресоваться одновременно как память и (первые 16 слов) как регистры R0..R15. Называется это «scratchpad».
Аппаратного стека нет, вместо этого сохранение значений при вызове подпрограмм осуществляется изменением указателя начала регистров WP в этом самом ОЗУ (напоминает регистровые окна в Sparc'ах). В предке (TI-990) это также использовалось для переключения контекста при реализации многозадачности.

Хотя тактовая частота TMS9900 — 3 МГц, инструкции занимают довольно много тактов — не менее 8. При этом реализовано даже умножение и деление (124 такта).

Читать дальше →