+16.72
20 читателей, 59 топиков

Карта памяти NES

Одна из первых вещей, которую приходится изучать при освоении низкоуровневого программирования для новой платформы — её карта памяти, то есть где в адресном пространстве находятся ОЗУ, ПЗУ, регистры устройств и тому подобное. Если простота устройства ZX Spectrum, которое можно описать одним предложением — 'нижние 16 килобайт ПЗУ, остальное ОЗУ, экран в начале ОЗУ, весь ввод и вывод через один порт' — позволяет не особо задумываться о самом существовании этого вопроса, то у многих других современных ему платформ дела обстоят несколько сложнее. В особенности это справедливо для NES, карту памяти которой, а также причины именно такой её организации, мы и рассмотрим в этой статье.


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

Архитектура и программирование уникального компьютера Vectrex

На CC'2015 была представлена работа «Electric Force» под один из самых необычных компьютеров, с векторым дисплеем и AY8912 на борту — «Vectrex». Пётр Соболев, автор работы, рассказал об этом компьютере подробнее в презентации на пати:



Саму презентацию можно почитать в pdf. А для тех, кого заинтересует данная тема, есть подробная статья — «Архитектура и программирование Vectrex».

"Unhinged" trackmo engine

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

В этом топике я опубликую двиг, разработанный для «Unhinged», и использованный позже как обслуживающий в «Марио».

Зачем это? Дело в том, что пресловутое flow требует от дизайн-мейкера постоянно вводить как новые эффекты, так и их развитие в процессе своего течения.
Соответственно, код демо должен быть настраиваемым — предоставьте себе контролы, которые позволят вам менять внешний вид того же эффекта, который уже на экране. И применяйте их в течении демо именно в тот момент, когда они будут иметь максимальное воздействие на зрителя.

ДАО ГОВОРИТ :)
Главная цель движка трекмо — это Контроль выполнения демо.
Контроль должен быть реализован изменением состояния кода демо в процессе её выполнения (показа), путём изменения значений памяти в её подпрограммах в нужный нам момент, либо изменением вызываемой процедуры (что может быть переходом в следующую часть).

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

Threads on Z80

Привет, друзья.

Хочу поделиться с вами своими наработками. Сперва хочу извиниться за то, что постоянно буду использовать свой ассемблер ASAM. Увы, он работает только под 32-бита, у этого есть ряд причин, но почему это так, — не сейчас.

Теперь о сегодняшней теме, о параллельных потоках. Начиная с 2003 года я постоянно использую два типа потоков на Speccy: первый, мой любимый — это сквозные функции; и второй, о котором пойдёт речь — это классические потоки. Я приведу пример самых простых потоков, и если вам это нужно — вы легко сможете доработать его до своих нужд.

Thread'ы очень просты. Всё сводиться к двум основным процедурам — это создание и переключение потоков. Текущий вариант потоков эволюционировал из простых переключений между блоками памяти в переключение между страницами, что очень удобно для decrunch'ингов чего-нибудь, или для распаковок данных. Хочу отметить, что впервые оправданное использование потоков я ощутил при coding'е под ts-conf'у.

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

Работа с SDC/MMC на примере драйвера под Z-Controller (Z80)

BUDDER/MGN 2015

Лет 7 все собирался написать свой собственный драйвер, для работы с SDC/MMC под Z80, да всё как-то не складывалось. В своих проектах все это время использовал драйвер от Savelij'а. В принципе меня таковой вполне устраивал, т. к. недостатки в оном не сильно критичны. Драйвер сделан весьма упрощённо и соответственно не работает с некоторыми картами, но при этом очень компактен. Так же, из-за специфики реализации, работает с картами медленнее, чем можно было бы (что, пожалуй, вообще не критично). В свое время Слава меня таки спас от написания драйвера, за что ему мега респект.


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

GO WEST, часть 2

Ну вот я и созрел написать вторую часть талмуда по классическим спектрумам. Первая часть никому не понравилась, потому что в ней было многабукаф и никаких картинок. Попробую исправиться: напишу меньше букаф.
Картинок - не дождётесь!

Движок трекмо

Интересно Ваше мнение на такую тему как движок трекмо.
Я думаю, что движок должен делать следующее:
  • Отслеживать время перехода от части к части
  • Отрабатывать иниталайзы частей
  • Отработка декранча следующей части в процессе показа, при необходимости / возможности проца

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