там creator, в предыдущем сообщении выпендривался. вопрос ему как бы был :)
Вид для печати
вроде бы есть такой:
http://forum.tslabs.info/viewtopic.php?f=9&t=621
пока в разработке.
Проверял твой конвертер на том же самом исходнике, Вычисление числа Пи на ассемблере,
что и транслятор повыше.
Теперь то я знал, что должно получится в итоге, так что было чуточку побыстрее.
Комменты на великом и могучем игнорирует напрочь, ладно.
С комментами совсем бяда. Без зазрения совести вставляет их в аргументы. Например:
Было
сталоКод: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++) {
было cp hКод: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++) {
стало call p,h
И желательно чтобы метки не выравнивал вместе с кодом, хотя это меньшая проблема.
Масштабирование окна тоже желательно включить.
спасибо, отправил g0blinish'у. сказал, пофиксит.
Ну, тут просто: поправь скрипт в текстовом редакторе, строки 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
А здесь сложнее. Знаю что глючит, пофиксить пока ума не хватает. Придётся ручками дату переносить. Да и в NP++ это достаточно удобно.Код: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
Если, действительно, есть спрос на мой скрипт, постараюсь довести до ума.
Ну у меня как бы есть, мне 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)
Или он их вообще чистаа как метки транслирует?
Тут скорее проблемы исходного асма, который допускает слитное написание псевдооператора и аргумента, а ужасм это понимает по своему...тогда только ручками править ((((
Естественно, как метки.
Целью написания скрипта было избавиться от рутинной работы по трансляции мнемоник. Можно, конечно, допилить скрипт.
Но, по-моему, для трансляции high/low достаточно двух операций замены в любом текстовом редакторе:
"заменить всё" "high(" на "high (" и "low(" на "low (".
Нашелся еще один
Где ты был два дня назад :((
а5 я на эти "ср" напнулся. Посмотрю на исправленной версии как
- - - Добавлено - - -
Неее, пока все плохо
0+
http://s2.micp.ru/SjYih.jpg[свернуть]
Слева код после твоего конвертера, справа - после правильного. Красным соответственно различия.
Ну и табуляцию как бы желательно, после твоего много ручной работы