ZX Turbo Disassembler
version 2.0
(c) 1996 Инозецев Алексей
(с) 2020 V.Rubts0FF
Много раз я пытался дизассемблировать эту лучшую, пожалуй единственную программу, правильно выполняющую поставленную задачу -
получение исходных текстов исследуемого чужого, а иногда и своего кода.
Лично мне не хватало элементарных в общем вещей, и это:
1. Поиск по файлу
2. Закладки
3. При переходе по CALL / JUMP запоминать и возвращаться не только один последний адрес, но и еще хотя бы сколько.
Конечно это не единственное, но уже что то.
Многочисленные попытки не увенчались успехом, в какой то момент вносимые изменения приводили к потере
работоспособности программы. Причин здесь несколько и сейчас об этом не будем.
В очередной раз я вернулся к этой теме благодаря .., в общем я хотел перейти со своего "Шалаева" на что нибудь другое и
этим другим оказался
xpeccy. Что бы привыкнуть, нужно что то делать и вот было решено в этом эмуляторе делать это.
К слову сказать, после двух вылетов, я даже не понял причин, на ровном месте,
xpeccy был отложен в сторону и работа
продолжилась под эмулятором Шалаева
Вот и подошли к главному, но вначале о том что не сделано.
Сам дизассемлер не изменен никак, я собственно с ним особо не разбирался и понятия не имею как он работает, хотя он
мне кажется странным. Так что токеницация мнемноник
z80 так же не изменилась.
Так же в угоду совместимости с оригинальной версией, адреса
work-файла так же сохранились.
Что же изменилось:
1. исчез пунк
View как бестолковый, после загрузки файла,
Prog или
Work, сразу попадаем в режим, так сказать редактирования.
3. вместо
VIEW сделан пунк
EDIT и он имеет пункты:
-
Find - поиск, можно ввести как текст, так и hex, использовать маску;
-
Find Next - продолжить с последней позиции;
¦
Goto addr - Переход по введенному адресу;
¦
Start Addr- определить начальный адрес программы, NewStart;
¦
DEC/Hex - переключение системы счисления dec/hex
¦
Save point- запомнить позицию в файле 10 ячеек.
¦
Goto point- перейти на одну из сохраненных позиций.
Все это так же вызывается из режима так сказать редактирования.
[
m] - переход по введенному адресу;
[
f] - Find
[
n] - Find Next
[
y] - Save point
[
t] - Goto point - в ZAsm'е bookmark на тех же кнопках.
Так же, при переходе по адресу/метке CALL/JUMP - [j] - Jump, [b] - Back реализован стек на 8 или 10 адресов, а не один как было ранее.
4. Пунк
Options - там ничего нет, так как нет места. Сейчас поясню.
Каждая ячейка памяти файла описывается 2-мя битами и для хранения этой информации, выделена память, для совместимости с оригинальной версией эти адреса трогать не могу и пока не хочу.
И вот зазор между программой и этой памятью совсем ничего 200-300 байт.
Решение есть, но эту пробную версию хочу оставить так как есть.
В общем с целью выявления ошибок, а они могут быть, хотя сейчас вроде бы все работает, но с имитировать все возможные
ситуации сложно.
5. Планы.
Перво-наперво все же разобраться с самим дизассемблером, мне это все то же не очень нравиться. Мнемоники z80 хотя и
считаются совместимыми с ZAsm'ом, но без импорта - syntax error. Как с этим бороться - еще не решил.
Что еще, хочу полный шрифт, хотя это и не так важно, хочу элементарные вещи по редактированию исследуемого файла, как в
самом обычном мониторе, в том числе FILL, COPY.
Но в ближайшие дни буду испытывать эту версию и прощу присоединиться к этому.
Так же выслушаю все пожелания и сообщения о найденных ошибках.
25.04.2020 V.Rubts0FF