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

User Tag List

Страница 105 из 167 ПерваяПервая ... 101102103104105106107108109 ... ПоследняяПоследняя
Показано с 1,041 по 1,050 из 1664

Тема: SjASMPlus Z80 кросс ассемблер

  1. #1041
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,802
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    87 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SAM style Посмотреть сообщение
    Собранные выше rc7 не видел
    Ну как соберут и если увидишь - свистни если не трудно.
    (счаз не с руки разбиратся как эти сборки делаются и т.д. - с открыткой бы успеть, а дальше сам знаешь 3д заждалось )

  2. #1042
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нда, чудеса... Не прошло и вечности, как индеец Зоркий Глаз заметил, что пример из инструкции по структурам:
    Or without label:

    Код:
    COLORTABLE
      SCOLOR 0,0,0
      SCOLOR 1,2,3
      SCOLOR ,2
      ; etc.
    не компилится потому что структуры без меток не перевариваются (1.07RC7). А Зоркий Глаз очень надеялся попользоваться структурами... Есть кто живой для фикса? Или самому?

    ---------- Post added at 20:06 ---------- Previous post was at 20:03 ----------

    Чот вспомнилось такое винрарное:
    Указание начинающему программисту: Если вы с первого раза сумели написать программу, в которой транслятор не обнаружил ни одной ошибки, сообщите об этом системному программисту. Он исправит ошибки в трансляторе.

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    сообщите об этом системному программисту. Он исправит ошибки в трансляторе.
    Вроде бы взрослый человек, а все в сказки верит

  4. #1044
    Guru Аватар для SAM style
    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,055
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    218
    Поблагодарили
    92 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Нда, чудеса... Не прошло и вечности, как индеец Зоркий Глаз заметил, что пример из инструкции по структурам
    Дейстивтельно... http://zx-pk.ru/showpost.php?p=723673&postcount=1013
    Все любят гипножабу

  5. #1045
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SAM style Посмотреть сообщение
    Ну так на то он и Зоркий глаз Видимо, когда читал тот твой пост, думал, что уж мне-то структуры никогда не понадобятся.
    Пока накопал только, что структуры, похоже, были прикостылены сбоку. Поскольку отрабатываются в той же процедуре, что и метки. Подумаю ща как сделать их в человечьем виде.

    ---------- Post added at 22:00 ---------- Previous post was at 21:01 ----------

    Короче, либо я не разобрался в коде SjAsm (что весьма вероятно), либо я выловил багу. В parser.cpp есть функция ParseMacro(). В ней такой кусок:
    Код:
    	if (!(r = MacroTable.Emit(n, p)))
    	{
    		//do none
    	}
    	else		
    	if (r == 2)
    	{
    		return 1; //return 1
    	}
    	else
    	if (StructureTable.Emit(n, 0, p, gl) || !gl)
    	{
    	return 1;
    	};
    return 0;
    Как я понял, смысл его примерно такой: если макрос не впендюрился (результат впендюривания не 0), то выходим из функции с 0 в результате. А вот если макрос впендюрился с результатом 0, то проверяем результат на равенсто на 2 (!), если не 2, то пытаемся впендюрить структуру, но строка уже кончилась, поэтому ничего не сломается и вообще даже не случится.

    Я починил на такое:
    Код:
    	if (!(r = MacroTable.Emit(n, p))) {
    		if (r == 2){
    			return 1;
    		}
    		else
    		if (StructureTable.Emit(n, 0, p, gl)) {
    			lp = p;
    			return 1;
    		}
    	}
    Тут логика такая: если макрос впендюрился с кодом 0 или 2, то вернуть 1, иначе попробовать впендюрить структуру и вернуть 1 если получилось. На самом деле ParseMacro зовется только из ParseLine без анализа результата, так что можно хоть номер телефона из него возвращать

    Я это все к чему. Я буду проверять у себя фикс на своих старых сырцах (с макросами) и на Саботере, а мой фикс неплохо бы отправить гуру во внутренностях SjAsm на предмет оценки кошерности и впиливание в репозиторий. Только я не знаю кому отправлять.

    ---------- Post added at 22:24 ---------- Previous post was at 22:00 ----------

    Все я попутал. MacroTable.Emit возвращает 0 если не нашла макрос, 1 если ошибка в параметрах и 2 если все ok. Тогда фикс получается более такой:
    Код:
    	if (!(r = MacroTable.Emit(n, p))) {
    		if (StructureTable.Emit(n, 0, p, gl)){
    			lp = p;
    			return 1;
    		}
    	}
    	else
    	if (r == 2){
    		return 1;
    	}
    	return 0;
    Последний раз редактировалось Alex Rider; 06.01.2015 в 21:03.

  6. #1046
    Veteran Аватар для perestoronin
    Регистрация
    25.11.2011
    Адрес
    г. Красногорск
    Сообщений
    1,389
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если есть желание - лучше не к автору взывать, а создать свой репозитарий, клонировав авторский или какой-либо иной с sjasm+ на github и затем внести в него желаемую правку.
    На деле sjasm+ очень бажный и написан в лучших традициях. Замечу, что оригинальный sjasm не прибегает к лучшим традициям, но в нем нет нужных модных фич.

  7. #1047
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от perestoronin Посмотреть сообщение
    Если есть желание - лучше не к автору взывать, а создать свой репозитарий,
    Не согласен. Если каждый для затычки очередного бага будет клонировать репозитарий, то наплодится куча неполноценных бажных никому не нужных версий. Жеоательно все же фиксы рассовывать в существующие репозитарии.

    Цитата Сообщение от perestoronin Посмотреть сообщение
    На деле sjasm+ очень бажный и написан в лучших традициях. Замечу, что оригинальный sjasm не прибегает к лучшим традициям, но в нем нет нужных модных фич.
    "Качеством" тамошнего кода я очень проникся. Особенно, с учетом того, что чтобы понять как сделать фикс на 10 строк пришлось продебажить кучу всего и въехать в работу этого "кучи всего".

  8. #1048
    Banned
    Регистрация
    28.12.2012
    Адрес
    Leesburg, VA, USA
    Сообщений
    974
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Предлагаю Витамину добавить тебя в коммитеры своей репы.

  9. #1049
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от TSL Посмотреть сообщение
    Предлагаю Витамину добавить тебя в коммитеры своей репы.
    Излишне. C++ я знаю в режиме "read-only", так что саппортить не буду все равно. Тут я напрягся потому что ахтунг совсем возник - без структур дизасм саботера пришлось бы переделывать чуть более, чем весь. Если что и буду еще править, проще сюда сложить, хозяева живых бранчей растащат если им оно надо.

    ---------- Post added at 00:25 ---------- Previous post was at 00:21 ----------

    Олсо у меня нет VS2010 и тем более неWindows. Есть VS2013, но выкладывать в public правки, сделанные в ней, я слегка очкую.

  10. #1050
    Banned
    Регистрация
    28.12.2012
    Адрес
    Leesburg, VA, USA
    Сообщений
    974
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тады пусь сабж сам померджит кот и вылажыт.

Страница 105 из 167 ПерваяПервая ... 101102103104105106107108109 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Кросс-ассемблеры Z80 для Pc
    от Aprisobal в разделе Программирование
    Ответов: 16
    Последнее: 15.01.2011, 22:46
  2. кросс компилятор С для Z80
    от vitasam в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2007, 18:03
  3. Хороший ПЦшный ассемблер - залог успеха!
    от Aprisobal в разделе Программирование
    Ответов: 35
    Последнее: 08.08.2005, 15:25
  4. ZX ассемблер (и не только?) с библиотеками
    от shade в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2005, 19:43

Ваши права

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