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'а. В принципе меня таковой вполне устраивал, т. к. недостатки в оном не сильно критичны. Драйвер сделан весьма упрощённо и соответственно не работает с некоторыми картами, но при этом очень компактен. Так же, из-за специфики реализации, работает с картами медленнее, чем можно было бы (что, пожалуй, вообще не критично). В свое время Слава меня таки спас от написания драйвера, за что ему мега респект.


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

Плеер MTC контейнеров для реала

Всем привет!

Рад сообщить, что представленный в предыдущей статье формат треков MTC (Multi Track Container) теперь можно (с некоторыми ограничениями) слушать и на реале.


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

z80: Инструменты статического и динамического анализа кода.


Отчасти развивая вопрос поднятый в этой публикации, хочу спросить у вас: «какие есть 'умные' интерактивные инструменты динамического и статического анализа кода для z80 (кроме дорогущего IDA Starter/Pro)»?

И что эти «умники» умеют?

  1. какие (и где) есть инструменты динамического анализа кода?
    к примеру, для того, чтобы получить маркировку участка исходного кода как «исполняемого», достаточно запустить программу под эмулятором, некоторое время погонять её с включенным логированием состояния регистра PC (указатель адреса исполняемой команды) — как результат получим массив адресов, по которым реально расположен исполняемый код.

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

Почему я дебажу код

Мне довольно странно было было узнать, что много из моих друзей –кодеров практически не пользуются дебаггерами. «Крайний случай», говорят.

В определённый момент кодинга под z80 (в 90-х) я осознал, что для того, что бы писать код – нужно мыслить как процессор. Звучит конечно странно, но полностью осознать довольно простую, по сегодняшним меркам, логику выполнения команд процессора помогает именно отладка своих программ. Кроме того – ответ на вопрос «КАК ИМЕННО ЭТО СДЕЛАНО!?» может дать лишь отладчик.



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