Последний раз редактировалось KTSerg; 12.03.2018 в 15:38.
Вот он: dasm580.rar
Описание есть, приложено в архиве...
Делал его, кстати, я в пару к ассемблеру KRASS (не мой), так, чтобы любую программу для Вектора можно было дизассемблировать, а потом этим KRASS-ом скомпилить со 100% бинарным совпадением, но вот только этот ассемблер я что-то найти не смог.
Спасибо, очень не плохой результат.
Особенно интересна битовая структура данных.
- - - Добавлено - - -
Посмотрел внимательно, так и есть:
MVI A,9Bh
OUT 04
MVI A,82h
OUT 0F0h
Причем в самом начале программы.
Так что стало понятно, что влипили дополнительную ВВ55.
- - - Добавлено - - -
Дело привычки, но мне кажется, что легче воспринимать код, когда команды и параметры в разных столбцах вертикально выровнены.
Вот в таком представлении первый параметр теряется:
LXI H, L_07EC
MVI A, 08Ah
CALL L_06B1
LXI H, L_024A
SHLD 0DCF2h
И было-бы удобно наличие разделения кода на куски, например после строк с RET или JMP, вставлять строку с комментарием ";" (пустую строку).
А так, ещё раз спасибо.
- - - Добавлено - - -
Ну, стало понятно, почему на моём Векторе считывание байта из ПЗУ происходит с задержкой в 21мкс после выставления адреса, а в других загрузчиках через 9 мкс.
Разница в коде налицо.
В моём:
OUT 007h
OUT 0F3h
MOV A, H
OUT 005h
OUT 0F1h
MOV A, E
ORA A
IN 006h
В загрузчиках BOOTS и kish2:
OUT 007H
MOV A,H
OUT 005H
IN 006H
- - - Добавлено - - -
Жаль, что не устранили "ляп" с проверкой наличия ЛВС и переходом к загрузке с магнитофона при наличии ЛВС.
Но это проявляется только при перезагрузке с нажатой F2.
Если КвазиДиска нет, то следующим за ним проверяется наличие ЛВС и это работает корректно.
При наличии КвазиДиска удержание F1 и F2, так-же позволяет не проверяя наличие КвазиДиска перейти к загрузке с ЛВС.
Последний раз редактировалось KTSerg; 12.03.2018 в 18:56.
Не, там всё выровнено, просто надо смотреть с моноширинным шрифтом:
Код:ORG 00000h L_0000: MVI A, 09Bh L_0002: OUT 004h MVI A, 088h OUT 000h MVI A, 0A8h LXI B, L_0040 L_000D: OUT 008h SUB C L_0010: JNC L_000D IN 001h ANA C MOV C, B MOV A, B OUT 010h JZ L_0029Это можно сделать. Я вчера тоже попробовал дизассемблировать всякие загрузчики, нашёл ещё пару моментов, поправлю сразу всё...И было-бы удобно наличие разделения кода на куски, например после строк с RET или JMP, вставлять строку с комментарием ";" (пустую строку).
Дизассемблер поправил, не откладывая надолго: DASM580_105.7z
Пользуйтесь... :-)
Я такие вещи смотрю и редактирую редактором из FAR-а, попробую ещё раз...Не, там всё выровнено, просто надо смотреть с моноширинным шрифтом:
Вчера нашел Векторовский дизассемблер, закинул его в образ Квазидиска, в эмуляторе запустил, для сравнения результатов.
Задаёт кучу наводящих вопросов, но некоторые "фишки" бывают очень удобны.
Например по запросу может включить в тест для каждой строки, её адрес и HEX последовательность команды.
- - - Добавлено - - -
Если кому будет интересно, считанный загрузчик прикрепил к первому письму этой темы.
И исправленный вариант (при перезагрузке с нажатой F2), прицепом.
Последний раз редактировалось KTSerg; 13.03.2018 в 12:47.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Понял в чем фокус. Я привёл пример где в соседних строках есть команды с мнемоникой из 3-ёх и 4-ёх символов, а в Вашем, есть только из 3-ёх символов, и они выглядят ровно.Не, там всё выровнено, просто надо смотреть с моноширинным шрифтом:
Нужно к мнемонике команд состоящих из 2-ух и 3-ёх символов добавить один пробел, что-бы все команды были длиной 4 символа, а далее пробелы разделители и параметры, и тогда будет выглядеть ровно.
В новой версии дизассемблера пропали метки в участках данных. В предыдущей было видно где начинается каждая картинка (это я про код загрузчика), теперь в данных вообще не понятно, есть ли на них ссылки из программы...
Немного не понял... Вот тот же участок кода, как есть сейчас:
Вроде, всё красиво... Надо выровнять по первому аргументу в командах типа так?Код:L_0173: LXI H, 007ECh MVI A, 08Ah CALL L_06B1 LXI H, 0024Ah SHLD 0DCF2h
Или так?Код:L_0173: LXI H, 007ECh MVI A, 08Ah CALL L_06B1 LXI H, 0024Ah SHLD 0DCF2h
Код:L_0173: LXI H, 007ECh MVI A, 08Ah CALL L_06B1 LXI H, 0024Ah SHLD 0DCF2hУпс... Поправим. :-)В новой версии дизассемблера пропали метки в участках данных. В предыдущей было видно где начинается каждая картинка (это я про код загрузчика), теперь в данных вообще не понятно, есть ли на них ссылки из программы...
KTSerg, спасибо за загрузчик!
По F5 всегда грузит 32 Кб, без детекта размера, в отличие от F2.
Последний раз редактировалось ivagor; 13.03.2018 в 19:37.
Такой вариант вроде интереснее выглядит. Только нужно, предусмотреть, что параметр бывает например "SP" или "PSW", и это не должно пересекаться с соседней колонкой. Т.е. расстояние между колонками команд и параметров сделать с не большим запасом.
ivagor, вроде по F5 грузит исключительно из дополнительной ВВ55 (адреса F0-F3), из обычного ПЗУ (на ПУ) в этом случае грузиться не должно...
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)