Важная информация

User Tag List

Страница 6 из 6 ПерваяПервая ... 23456
Показано с 51 по 60 из 60

Тема: Рекомпиляция Z80 -> КР580ВМ80А

  1. #51
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    657
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    SES сказал, что он перетаскивал на Вектор плееры для всех мыслимых и немыслимых форматов. Сорцы от них у него вроде бы не сохранились, но он их давал и другим людям, то есть теоретически они могли сохраниться. Сорцы периодически всплывают, да и люди тоже -- не зря же мы жужжим тут.
    Больше игр нет

  2. #52
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нужна утилита, проверяющая исходник в мнемониках Z80 на совместимость на выходе с опкодами i8080. Можно транслятор (меняющий на макросы), можно просто выводящий несовместимое с опкодами i8080 на экран. Главное, чтобы после трансляции текст оставался как и был в мнемониках Z80 (ну не перевариваю я интеловые), с комментариями, директивами препроцессора и т.п. Есть такое в природе?
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  3. #53
    Tim0xA
    Гость

    По умолчанию

    Ёлы-палы, почему я раньше об этом не подумал?!

    Стандартный макрос замены команды LDIR, например

    Код:
     	  lxi	b, 0000Fh
     	  push	psw
     	  mov	a, m
     	  stax	d
     	  inx	h
     	  inx	d
     	  dcx	b
     	  mov	a, b
     	  ora	c
     	  jnz	$-7
     	  pop	psw
    для случаев BC<=000FFh вполне можно представить в виде

    Код:
     	  lxi	b, 0000Fh
     	  push	psw
     	  mov	a, m
     	  stax	d
     	  inx	h
     	  inx	d
    	  dcr	c
    	  jnz	$-5
     	  pop	psw
    Получаем экономию 12 тактов при каждом выполнении тела цикла. В некоторых случаях можно отказаться от push/pop psw и развернуть цикл.

    ivagor, в связи с этим новый исходник tank.asm в приложении, запакуй его, как ты это делаешь. Кое-что еще поправлено, в итоге получилось на 112 байт короче и теоретически должно быть немного пошустрее.
    Вложения Вложения
    • Тип файла: zip tank.zip (15.0 Кб, Просмотров: 219)

  4. #54
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,842
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,814
    Поблагодарили
    1,043 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tim0xA Посмотреть сообщение
    для случаев BC<=000FFh
    если точнее, даже для 0<BC<=00100h (когда в BC исходно было 100h, задаем BC=0).
    Последний раз редактировалось ivagor; 09.05.2010 в 07:48.

  5. #55
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,842
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,814
    Поблагодарили
    1,043 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В связи с некоторым всплеском интереса к теме выкладываю dao1.12. Tim0xA разрешал

  6. Эти 4 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    crackintosh (13.02.2021), NEO SPECTRUMAN (13.02.2021), nzeemin (15.02.2021), vwarlock (17.02.2021)

  7. #56
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,996
    Спасибо Благодарностей отдано 
    1,061
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Переделываю DAO 1.12 в приложение tvdao на FPC и FreeVision.
    FPC кроссплатформенный, поэтому (теоретически) приложение можно собрать под маком и линуксом.
    Репозиторий с кодом: https://github.com/nzeemin/tvdao

    Оригинал это текстовое приложение под DOS, которое пишет asm-кодом прямо в экран. Можно было конечно переделать только рисование экрана, но мы же простых путей не ищем.



    Дизасм увеличен с 14 до 22 строк - позже можно будет переделать чтобы не было константой.
    Блок с просмотром памяти занимает оставшееся слева место, показывают символы, в режиме просмотра только символов теперь видно 64 в строке.
    Справа показываю все метки - этого не было в оригинале.
    Использует тот же формат рабочего файла, что и DAO 1.12 - формат версии 1.0. (DAO 1.15 использует формат 1.1, рабочий файл больше на 32К.)

    Реализованы основные команды навигации и редактирования, сохранение ASM.

    Пока не сделано:
    - Несколько оставшихся команд навигации и редактирования
    - Сканирование по F9 и Alt+F9
    - Команды поиска
    - Импорт .SYM и .CTL
    - Просмотр графики

    Досыпал немного багов конечно, чтобы потом исправить.
    Последний раз редактировалось nzeemin; 27.06.2021 в 20:22.

  8. Эти 3 пользователя(ей) поблагодарили nzeemin за это полезное сообщение:

    CityAceE (27.06.2021), mastermind (04.07.2021), vwarlock (28.06.2021)

  9. #57
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,842
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,814
    Поблагодарили
    1,043 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    С одной стороны это хорошее дело, но у DAO есть принципиальный недостаток - меня с самого начала не устраивала технология, которая требует дизассемблировать в самом DAO. Но возможно для многих это не проблема.
    "Словарь" надо дорабатывать, но про это уже много написано и при наличии исходника это посильная вещь.

  10. Этот пользователь поблагодарил ivagor за это полезное сообщение:

    nzeemin (28.06.2021)

  11. #58
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,996
    Спасибо Благодарностей отдано 
    1,061
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    С одной стороны это хорошее дело, но у DAO есть принципиальный недостаток - меня с самого начала не устраивала технология, которая требует дизассемблировать в самом DAO. Но возможно для многих это не проблема.
    "Словарь" надо дорабатывать, но про это уже много написано и при наличии исходника это посильная вещь.
    В DAO есть импорт .SYM (список меток) и .CTL (разметка код-байты-слова) - это может как-то помочь?
    Как я понимаю, обычно предпочитают реверсить в IDA - какие там есть подходящие форматы экспорта?

  12. #59
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    657
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я никогда не занимался рекомпиляцией, поэтому могу не до конца чувствовать суть проблемы. Мне не очень понятно почему получение исходника и подмена инструкций должны делаться в одном инструменте.

    Почему нельзя получить исходник в том инструменте, который хорошо это умеет делать, например IDA, а результат реверса пропустить через поиск-замену по словарю?
    Больше игр нет

  13. #60
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,842
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,814
    Поблагодарили
    1,043 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Мне не очень понятно почему получение исходника и подмена инструкций должны делаться в одном инструменте.
    Если говорить о сегодняшнем дне, то мне тоже. Почему Tim0xA так сделал - он взял за основу рекомпилятор Валерия Бостана и сменил начинку c z80->x86 на 8080->z80. Но с самого начала я писал ему, что вариант трансляции на уровне исходников был бы намного продуктивнее.

    Цитата Сообщение от nzeemin Посмотреть сообщение
    В DAO есть импорт .SYM (список меток) и .CTL (разметка код-байты-слова) - это может как-то помочь?
    Мне не особо.

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Как я понимаю, обычно предпочитают реверсить в IDA - какие там есть подходящие форматы экспорта?
    Главное, что IDA может экспортировать в asm и я считаю, что рекомпилятор должен делать из исходника z80 исходник 8080. Ведь нередко бывает, особенно сегодня, что исходник z80 уже есть. Да, можно открыть бинарник в DAO и сверяясь с исходником заново дизассемблировать. И я даже так делал для коротких программ, но это просто потеря времени и больше я так делать не буду, энтузиазм молодости закончился.

Страница 6 из 6 ПерваяПервая ... 23456

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •