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

User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 32

Тема: I8080 TO Z80 SOURCE TRANSLATOR

  1. #11
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,751
    Спасибо Благодарностей отдано 
    256
    Спасибо Благодарностей получено 
    266
    Поблагодарили
    200 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Да ладно, задача то нередкая - какой-нить листинг из ужасных интеловских мнемоник (а листингов немало - разных билиотечек полезных понаписано) перевести в нормальный вид (у Z80 самый красивый ассемблер на мой вкус, в особенности в классических реализациях, например пакете M80 от Microsoft). Эта задачка очень давняя и популярная - от реализаций в CP/M, например XLATE5 (а также XIZ/XZI - соответственно в обе стороны, еще ZCON и ITOZ были - тоже аналогичные) в прошлом веке, до сравнительно современных - например в компиляторе Z88dk

    Кстати, и обратная задача тоже интересная, в частности для проверки совместим ли бинарно с 8080 код, написанный в мнемониках Z80. Т.е. запустится ли он, собранный ассемблером Z80, на 8080.
    там creator, в предыдущем сообщении выпендривался. вопрос ему как бы был
    С уважением,
    Jerri / Red Triangle.

  2. #12
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вроде бы есть такой:
    http://forum.tslabs.info/viewtopic.php?f=9&t=621

    пока в разработке.

  3. #13
    Veteran Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,668
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    320
    Спасибо Благодарностей получено 
    221
    Поблагодарили
    174 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от denpopov Посмотреть сообщение
    пока в разработке.
    Проверял твой конвертер на том же самом исходнике, Вычисление числа Пи на ассемблере,
    что и транслятор повыше.
    Теперь то я знал, что должно получится в итоге, так что было чуточку побыстрее.
    Комменты на великом и могучем игнорирует напрочь, ладно.
    С комментами совсем бяда. Без зазрения совести вставляет их в аргументы. Например:
    Было
    Код:
            ld  (NINES),a     ;NINES = 0;
    cpl     
            ld  (DIGIT),a     ;DIGIT = -1;
            ld  (DOT),a     ;DOT = true;
            ld  bc,N    ;for(j=0;j<N;j++) {
    стало
    Код:
        ld (NINES ; NINES = 0;),a    
                 cpl
        ld (DIGIT ; DIGIT = -1;),a
        ld (DOT ; DOT = true;),a
        ld bc,N ; for(j=0;j<N;j++) {
    было cp h
    стало call p,h
    И желательно чтобы метки не выравнивал вместе с кодом, хотя это меньшая проблема.
    Масштабирование окна тоже желательно включить.
    Profi v3.2 -=- Speccy2010,r2

  4. #14
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    спасибо, отправил g0blinish'у. сказал, пофиксит.

  5. #15
    Activist Аватар для Sergey
    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    473
    Спасибо Благодарностей отдано 
    93
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    'sub e' транслирует в 'sub a,e', возможно в каких то ассемблерах такая запись и правильная, возможно, но ужасм это понимает как две команды ((((((
    Ну, тут просто: поправь скрипт в текстовом редакторе, строки 235 и 239:
    Так сейчас:
    Код:
    I2Z_13:
    if upper(cargs) = "M" then do
    				      cargs = "(hl)"
    				      end
    oline = label||" sub a,"||cargs||" "||comment
    return
    
    I2Z_14:
    oline = label||" sub a,"||cargs||" "||comment
    return
    будет:
    Код:
    I2Z_13:
    if upper(cargs) = "M" then do
    				      cargs = "(hl)"
    				      end
    oline = label||" sub "||cargs||" "||comment
    return
    
    I2Z_14:
    oline = label||" sub "||cargs||" "||comment
    return
    Цитата Сообщение от zebest Посмотреть сообщение
    Ну и немного меньшая головная боль с DB
    было _END: DB 0,0,0E6h
    стало _END: DB 0,#,0E6
    Так то жи правильно??
    А так да, спасибо )
    А здесь сложнее. Знаю что глючит, пофиксить пока ума не хватает. Придётся ручками дату переносить. Да и в NP++ это достаточно удобно.
    Если, действительно, есть спрос на мой скрипт, постараюсь довести до ума.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  6. #16
    Veteran Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,668
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    320
    Спасибо Благодарностей получено 
    221
    Поблагодарили
    174 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    Если, действительно, есть спрос на мой скрипт, постараюсь довести до ума.
    Ну у меня как бы есть, мне Z80 мнемоники понятнее и ужасм привычнее, но комуу-то - наеборот....
    Upd
    Еще какая-то заморочка с псевдооператорами HIGH\LOW
    такой вариант
    mvi m,low(SCR_BUF)
    mvi m,high(SCR_BUF)
    транслирует в
    ld (hl),low(SCR_BUF)
    ld (hl),high(SCR_BUF)
    и получается как метка, а надо с пробелом между
    ld (hl),low (SCR_BUF)
    ld (hl),high (SCR_BUF)

    Или он их вообще чистаа как метки транслирует?
    Тут скорее проблемы исходного асма, который допускает слитное написание псевдооператора и аргумента, а ужасм это понимает по своему...тогда только ручками править ((((
    Последний раз редактировалось zebest; 08.04.2016 в 08:54.
    Profi v3.2 -=- Speccy2010,r2

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Activist Аватар для Sergey
    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    473
    Спасибо Благодарностей отдано 
    93
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    Или он их вообще чистаа как метки транслирует?
    Естественно, как метки.
    Цитата Сообщение от zebest Посмотреть сообщение
    тогда только ручками править ((((
    Целью написания скрипта было избавиться от рутинной работы по трансляции мнемоник. Можно, конечно, допилить скрипт.
    Но, по-моему, для трансляции high/low достаточно двух операций замены в любом текстовом редакторе:
    "заменить всё" "high(" на "high (" и "low(" на "low (".
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  9. #18
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нашелся еще один
    Вложения Вложения

  10. #19
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,125
    Записей в дневнике
    37
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    11 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    Проверял твой конвертер на том же самом исходнике, Вычисление числа Пи на ассемблере,
    что и транслятор повыше.
    Теперь то я знал, что должно получится в итоге, так что было чуточку побыстрее.
    Комменты на великом и могучем игнорирует напрочь, ладно.
    С комментами совсем бяда. Без зазрения совести вставляет их в аргументы. Например:
    Было
    Код:
            ld  (NINES),a     ;NINES = 0;
    cpl     
            ld  (DIGIT),a     ;DIGIT = -1;
            ld  (DOT),a     ;DOT = true;
            ld  bc,N    ;for(j=0;j<N;j++) {
    стало
    Код:
        ld (NINES ; NINES = 0;),a    
                 cpl
        ld (DIGIT ; DIGIT = -1;),a
        ld (DOT ; DOT = true;),a
        ld bc,N ; for(j=0;j<N;j++) {
    было cp h
    стало call p,h
    И желательно чтобы метки не выравнивал вместе с кодом, хотя это меньшая проблема.
    Масштабирование окна тоже желательно включить.

    А ты точно брал последнюю версию?
    cp h исправил
    Вложения Вложения

  11. #20
    Veteran Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,668
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    320
    Спасибо Благодарностей получено 
    221
    Поблагодарили
    174 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Шынни Посмотреть сообщение
    было cp h
    стало call p,h
    Где ты был два дня назад (
    а5 я на эти "ср" напнулся. Посмотрю на исправленной версии как

    - - - Добавлено - - -

    Неее, пока все плохо

    0+

    [свернуть]

    Слева код после твоего конвертера, справа - после правильного. Красным соответственно различия.
    Ну и табуляцию как бы желательно, после твоего много ручной работы
    Profi v3.2 -=- Speccy2010,r2

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Совместимость Z80 и i8080 (580ВМ80)
    от Dmitry Dubrovenko в разделе Для начинающих
    Ответов: 50
    Последнее: 08.05.2016, 09:54
  2. Комманды ассемблера/коды i8080/КР580ВМ80А
    от sergey2b в разделе Разное
    Ответов: 4
    Последнее: 29.11.2015, 14:01
  3. Код эмуляции i8080 на С
    от medvdv в разделе Эмуляторы отечественных компьютеров
    Ответов: 15
    Последнее: 27.03.2015, 03:43
  4. МикроСтеплер. Компилятор ЯП СТЕПЛЕР для i8080
    от Kakos_nonos в разделе Программирование
    Ответов: 8
    Последнее: 31.05.2013, 16:34
  5. Эмулятор i8080
    от Higgins в разделе Разное
    Ответов: 2
    Последнее: 20.05.2011, 11:43

Ваши права

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