Решил выложить исходники и коды своих наработок на Z80 под Спектрум. Самое ценное там - моя модификация ПЗУ Турбо90 : включает ряд новых команд -
!N - редактирование бейсик-строки N
# - загрузка бейсик-файла без автозапуска
$N - выдает адрес бейсик-строки N
%N - выдает число N в двоичной системе
&N - выдает число, находящееся по адресу N в 5-байтовом формате бейсик-калькулятора
' - - выдает число N в 16-ной системе
)N - загружает блок кодов по адресу N (вместе с флаговым байтом!)
( - выдает числа из заголовка стандартных ленточных файлов бейсика
.N - запускает код по адресу N с возможностью возврата в бейсик
*N - вызывает редактор памяти с адреса N (хоткеи - JKL enter NMOPQ)
, - выдает количество байт свободной памяти бейсика.), три режима сброса (полный - с нажатым CAPS, обычный - с сохранением бейсик-программы, и кажется с Symbol - с инициализацией системных областей бейсика, но без обнуления памяти), ленточный загрузчик нормальной\турбо скорости с автоподстройкой. ПЗУ максимально совместимо с оригинальным, большинство игр идут нормально, несмотря на модификацию, (не идут единицы, использующие код ПЗУ при декодировании своих загрузчиков, или проверяющие свободное место ПЗУ).
Также там исходники и коды моей модификации ассемблера Zeus (редактор полностью переписан, поддерживает работу с блоками и что-то ещё), процедуры перекодирования из текстового формата асма в формат Zeros, коды монитора-взломщика, загружаемого в теневое ОЗУ, исходники процедуры попиксельной печати символов, трейсинга z80-кода из монитора, LZ-компрессии, и процедура, которой я особенно горжусь -
дизассемблер команды z80, который занимает после компиляции что-то около 700 байт, емнип.Там две версии дизассемблера - старая и новая (старая сильно менее оптимизированная, к тому же код подпорчен при чтении с диска, но принцип обоих одинаковый - для оптимизации по размеру кода дизассемблирование кодируется байтами микрокоманд).
Кому надо, разбирайтесь, используйте) Часть исходников в обычном текстовом формате, часть - в формате Zeros (с токенами Zeus, но без номеров строк).