2023-10-29 babolo Удаление варнингов. 2022-02-27 babolo Замена BUILDINCLUDEDIR. 2022-01-30 babolo Обход неспособности последних версий clang к --oformat=binary. 2021-11-05 babolo Даты в копилефтах. 2021-05-29 babolo Ошибки работы с BLIN. 2016-05-04 babolo Новый флаг -X для промежуточного вывода между каскадами. 2016-04-23 babolo Возможность многократного повторения. 2016-04-23 babolo Перенос remsexe_dipro() и прилегающего в новый файл lib/seg.c. Подробнее диагностика при вызове remsexe_dark(). 2016-04-19 babolo Локальный newseg() стал глобальным remsexe_newseg(). Указатели на код стали помещать новые сегменты, пока без последствий. 2016-04-18 babolo Перетасовка типа remsexe_xref. 2016-04-17 babolo Заработала группа jump у loop. 2016-04-17 babolo Пополнена дагностика. У remsexe_usout() ошибочно предполагались отрицательные коды возврата. Удален remsexe_X[] за ненадобностью. 2016-04-16 babolo Не работали флаги -N и -s. Вывод пометок вынесен в отдельную процедуру remsexe_dumpl(). Пополнена диагностика. 2016-04-15 babolo Теперь CS_GRP_JUMP и CS_GRP_CALL оставляют свои пометки не только если операнд X86_OP_IMM. Исправлена ошибка, когда не хватало места REMSEXE_UOFFS. Сделана попытка поставить X86_GRP_JUMP для команд типа loop, неудачно. Не заканчиваем аварийно, когда remsexe_lea() возвращает 1. 2016-04-14 babolo Добавлены MASUM в переходы. Диагностика. Комментарий. 2016-04-13 babolo Теперь при неизвестном базовом регистре пометка MSCOM ставится, но без расставления ссылок. 2016-04-13 babolo Отлажено затенение лишних USE - процедура remsexe_dark(). 2016-04-13 babolo Начальное состояние регистров стало нулевым. 2016-04-13 babolo В MASUM всегда используется полный адрес, потому не делаем отметку seg, только adr. В lib/nul.c было много рудиментного использования sref, удалено. 2016-04-13 babolo Во избежание мусора тип remsexe_ref дополнен заполнителем. В remsexe_darc REMSEXE_DCADR принципиально отличается от маскированного REMSEXE_DMACK, исключен оттуда. Из pxrf() исключена проверка на пару USE NONE - USE значение, это функция процедуры remsexe_dark(). 2016-04-12 babolo Перемещение remsexe_xref.used в другое слово. 2016-04-12 babolo Подготовка remsexe_tuse() к управлению затенением. 2016-04-12 babolo Новые флаги -R и -T, REMSEXE_WUSUMM и REMSEXE_WTYPAU. Переименование REMSEXE_DISASM в REMSEXE_WDISASM. Рассчет USE вынесен из typau() в remsexe_tuse(), там развит. Новый тип remsexe_darc. Форматирование. 2016-04-12 babolo Изменение параметра remsexe_outsrg(). 2016-04-12 babolo Появилось отслеживание конфликтов USE. 2016-04-12 babolo Новая процедура remsexe_refd() для сокращения. 2016-04-12 babolo Лишние переменные. Уточнение проходов в комментариях. 2016-04-12 babolo Перенумерация проходов, общее количество проходов увеличилось до 5ти. Локальный prite() стал глобальным remsexe_prite(). Прекращение действия USE по присваиванию вместо четвертого прохода делается во втором - новая процедура remsexe_usout(). В remsexe_usin() изменение смысла перемнной j, для регистра использовано r. Допереименование FLO1 в CARY. Комментарии. 2016-04-11 babolo Признак dark теперь распечатывается отдельно. 2016-04-11 babolo Замена имен условных переходов. 2016-04-11 babolo Переименование REMSEXE_SFLO1 в REMSEXE_SCARY. 2016-04-11 babolo Исправлено вычисление адреса с базой и/или индексом. 2016-04-11 babolo Исправлено вычисление адреса в UOFFS. Первый проход повторяется многократно. Уточнена диагностика. Комментарий. 2016-04-11 babolo В сборе пометок MASUM участвуют CS_GRP_JUMP наряду с CS_GRP_CALL. Исправлена ошибка переноса USE CS на дальних jump и call. Аккуратно собираются переносятся значения регистров и затеняются лишние USE. 2016-04-10 babolo В типе remsexe_xref два идентификатора наложились. В remsexe_disout() не был учтен REMSEXE_GETDARK. Комментарий. 2016-04-09 babolo Существенно ускорен основной тормоз - поиск места вставки стал делением пополам вместо последовательного. 2016-04-08 babolo Небольшое сокращение помещения значений в multilar. 2016-04-07 babolo Поскольку typau() обрабатывает сложности с type, в switch(){} подстановки линие. 2016-04-06 babolo Перетасованы значения REMSEXE_T*. Новый флаг -x для вывода невыводимых пометок. Процедура remsexe_dark() для зачистки лишних пометок. Отметки по RET теперь ставятся после команды. Ведено в действие поле dark типа remsexe_xref. Расширена диагностика. 2016-04-06 babolo Исправлено сравнение xref в pxrf(). Новый источник Carry от 1го прохода. Первый проход заработал, теперь он организован покомандно из remsexe_disout(), как и последующие проходы. 2016-04-06 babolo К внедрению прохода между 0ым и 1ым, перенумерация проходов. Расширена диагностика. Ликвидация кодового сегмента от указателей 0:0. Форматирование. 2016-04-06 babolo Реализация флага -M. 2016-04-06 babolo При неопределенности сегмента у REMSEXE_UOFFS терялась длинна операнда. Теперь remsexe_gumul() можен возвращать 1, если предложенное значение уже в xref существует. 2016-04-06 babolo Перераспледеление места в типе remsexe_xref, новое поле dark. 2016-04-06 babolo Новый флаг -M для дампа пометок. Новый макрос REMSEXE_GUMUL() для сокращения текста программы. При анализе IMM операнда в remsexe_labl() позмолительны одновременно оба варианта пометки. Стиль. 2016-04-05 babolo Устранена возможность утекания регистра. 2016-04-05 babolo У remsexe_lea() последняя пара параметров стала remsexe_ref вместо u_int32_t. В remsexe_delt() использованы remsexe_lea(). 2016-04-05 babolo Функции неизвестности и отсутствия у REMSEXE_UNONE поделены на REMSEXE_UNONE и REMSEXE_UIMMD. Поля pntr и leng типа remsexe_xref поменялись местами. Новый remsexe_xref.leng REMSEXE_LCODE для ссылок на код. Макрос REMSEXE_UDRCT() для определения нессылочности remsexe_xref. Ликвидированы макросы REMSEXE_INLAB() и REMSEXE_XREF2(). Поменялись значения констант REMSEXE_LBYTE и REMSEXE_LWORD. Замена некоторых идентификаторов констант на их локальные эквиваленты. Была путаница между sysexits и errno. Теперь сегменты кода в 0ом проходе оформляются и из указателей из данных. Перед 0ым проходом не устанавливались начальные значения (posclear()). Исправлена под новые условия логика typau(). Для уменьшения путаницы разведены представления для REMSEXE_SDATA и REMSEXE_TDATA, REMSEXE_LCODE и REMSEXE_TCODE. Исправлены пометки-ссылки от 0ого прохода. Локальные внутри lib/bin.c макросы INLAB() и INGEN() для сокращения текста. Метка PSPavailmem стала PSPtopmem. Пополнение меток PSP. Переменная omode в remsexe.c переименована в ouode. По -OC и -PC исправлены пометки. Стиль. Пополнена диагностика. Комментарии, форматирование. 2016-04-04 babolo Сделан, но не отлажен вариант REMSEXE_UOFFS. Изменен typau() в соответствии с выносом ссылки в pntr. Выбор CODE или DATA зависит не только от type, но и от pntr. 2016-04-04 babolo Замена REMSEXE_XREF*() на remsexe_gen() (местами). Флаги -B, -C, -D, -S, -W принимают -P и -O. 2016-04-04 babolo Замена REMSEXE_XREF*() на remsexe_gen() (местами). Замена длинных идентификаторов на локальные (местами). Замена условия распечатки tidx вместо !!tidx на !!duse. 2016-04-04 babolo Только форматирование и комментарии. 2016-04-04 babolo Описана remsexe_gen() глобально, применение в remsexe_delt(). 2016-04-04 babolo Новая процедура remsexe_gen() для замены REMSEXE_XREF*, внедрена в remsexe_inref() и remsexe_inlab(). Сокращенные названия констант под REMSEXE_INTERNAL. При выводе банга rexec() более не нуждается в argc и argv. Новые флаги -O, -P, -u, -U, -V вводятся, но пока не работают. 2016-04-04 babolo В новый файл lib/nul.c вынесены из lib/cod.c процедуры remsexe_dipro() с подпрограммами и repair() с переименованием в remsexe_repar() и глобализацией. 2016-04-04 babolo Перенос remsexe_inref() и remsexe_inlab() из lib/dis.c в lib/tec.c без изменений. 2016-04-04 babolo Новый источник REMSEXE_SDELT для 1го прохода по данным. Ошибка в декодировании remsexe_xref.src. Не выводились источники пометок Labl и Delt. Исправлен help по опциям -: и -;. Комментарии. 2016-04-03 babolo Новая процедура remsexe_xdump() для декодирования remsexe_xref. Новое поле pntr в remsexe_xref для замены REMSEXE_LPNTR и дальнейших расширений - ссылки на тип. Переименование макроса REMSEXE_XREF() в REMSEXE_XREF9(). Расширена диагностика. Макрос REMSEXE_XREF0() расширен на pntr. В remsexe_labl() недозаполнялся xref. В remsexe_dipro() в качестве сегментов учитываются все пометки CODE. Макрос REMSEXE_INLAB() и процедура remsexe_inlab() расширены на pntr. Новый флаг -I для задания кода с сегментным адресом. Форматирование, комментарии. 2016-04-02 babolo Новый флаг -o для непропуска кода. Новые процедуры remsexe_inref(), remsexe_inlab() и макрос REMSEXE_INLAB(). Изменение ширины addr и stop полей remsexe_handle. Новая константа REMSEXE_XCOMN для обозначения того, что обозначала по большей части REMSEXE_XBEGN. Диагностика, комментарии, форматирование. 2016-04-02 babolo Процедура remsexe_inref() для внесения меток в xref и ее использование отлажены. 2016-04-01 babolo Новая процедура для внесения меток в xref. Пока местами ошибается. Новый тип источника REMSEXE_SPNTR. Форматирование. 2016-04-01 babolo Из типа remsexe_xref уделены поля shnd и dhnd в пользу src: REMSEXE_SHAND. В тип remsexe_handle добавлено поле immr для вычисления адреса из непосредственного операнда, обеспечено заполнение его и вывод результата. Добавлена диагностика в промежуточных местах. Новая процедура posclear() для недублирования инициализации проходов. Новый флаг -@, новый тип пометки REMSEXE_MIMMA для отметки констант, используемых как адреса. Неправильно выводились по -i флаги -:. Стиль, комментарии. 2016-03-30 babolo Поправлена краткая справка. 2016-03-30 babolo Для правильной сортировки поменялось значение константы REMSEXE_REG_NO. Новая функция remsexe_issrg() определяет, базовый ли регистр-параметр. Расширен remsexe_handle.sreg для соответствия новым номерам регистров. Не было имен индексных регистров для вывода. 2016-03-30 babolo Перенумерация регистров, теперь 0 не верный регистр. 2016-03-30 babolo Метка PSPargs стала PSPenv. Добавлено мягкое отслеживание индексных регистров. Порядок remsexe_xref.src констант JMPS..CALL поменян на обратный. 2016-03-30 babolo Перестановка меток в разборе опций без изменений логики. 2016-03-30 babolo Новый флаг -: для транслируемых в метки коротких комментариев. 2016-03-30 babolo По -H не выводился флаг -i. Улучшена диагностика при вводе параметров. Признак ручного ввода поменялся с -- на ==. Добавлен признак ручного ввода для коротких комментариев. 2016-03-29 babolo Пополнение документации. Расставление пометок. 2016-03-29 babolo Пополнение справочника. 2016-03-25 babolo Пополнение справочника. 2016-03-24 babolo Замена идентификатора PSPdispDOS на PSPlcallDOS и длинны его на BYTE. 2016-03-24 babolo Пополнение справочника. 2016-03-24 babolo Обновлена зависимость от версии babolo-parser. 2016-03-22 babolo Добавлено описание. 2016-03-21 babolo Буква печаталась по %s. 2016-03-21 babolo Короткий комментарий теперь можно задать флагами. Убрана неиспользуемая статическая переменная insrg из tec.c. Форматирование. 2016-03-21 babolo Исключение дублирующих USE. 2016-03-21 babolo В выдачу добавлен PSP. 2016-03-21 babolo Пометка с leng = PNTR от lds и les. 2016-03-18 babolo Добавлена метка PSP. 2016-03-18 babolo Базовые регистры в работу включены. При вводе ASSUME из командной строки отмена ASSUME символом 'N'. Замена слова ASSUME на USE. Слежка за сегментными и базовыми регистрами для издания USE NONE. Константа REMSEXE_SHAND была наименьшей, стала наибольшей для сортировки USE автоматических и заданных вручную в нужном порядке. Для ввода имени регистра используется lexor. 2016-03-18 babolo Изменилось представление значения сегментных регистров. Подготовка работы с базовыми регистрами. Автоматом вставляются начальные ASSUME для DS и ES. 2016-03-18 babolo Исправление названий регистров. 2016-03-18 babolo Адреса теперь выводятся с короткими комментариями. 2016-03-18 babolo Процедура remsexe_delt() не учитывала имеюшиеся пометки. 2016-03-17 babolo Процедура remsexe_lfind() перенесена из cod.c в dis.c без изменений и снова стала приватной. 2016-03-17 babolo Вывод короткого комментария оформлен отдельной процедурой remsexe_scom(). Процедура remsexe_lfind() сделана публичной. В remsexe_data() добавлен вывод короткого комментария. В remsexe_opout() погашено возмущение компилятора отсутствием варианта X86_OP_INVALID в switch(). Комментарии. 2016-03-17 babolo Процедура remsexe_delt() включена в работу. В remsexe_delt() не ыло заголовка REMSEXE_MSCOM у пометки. 2016-03-16 babolo Новая процедура remsexe_delt() для разметки данных, пока не включена в работу. Убран лишний default:break;. Изменилось оформление вывода сегментного регистра. 2016-03-16 babolo В 0ом и 1ом проходах не зачищался список групп. 2016-03-16 babolo В коротком комментарии Segment заменен на S и уточнены условия выдачи. Убраны лишние пустые строки. 2016-03-16 babolo В remsexe_xref добавлены поля suse и duse для отображения use из remsexe_ref. Перестановки полей внутри remsexe_xref.used и remsexe_ref для взаимного соответствия. Перенесена в pxrf() установка p. В основном отлажено приклеивание коротких комментариев. Удалена процедура getlbl(), ее работу делает первый проход. В remsexe_lfind() разрешено .nil, адреса у нее все натуральные, при успехе поиска возвращает ссылку на multilar text. В remsexe_dipro() изменен уровень вложенности без изменения сути. В remsexe_labl() делаются короткие комментарии для call и jump. Остался вывод лишней пустой строки. 2016-03-16 babolo Пометка REMSEXE_MSCOM помещается в xref и извлекается оттуда, пока без вывода. 2016-03-16 babolo Константы REMSEXE_SREAD и REMSEXE_SWRIT поменялись значениями - влияет при сортировке. Обеспечена невыдача пометки при mode == REMSEXE_MSCOM. Заполняется REMSEXE_MSCOM, пока без вывода. Комментарии. 2016-03-15 babolo Изменилась декорация пометок. Начаты пометки на основании команд обработки данных. 2016-03-15 babolo Изменилась декорация пометок. Изменилась декорация таблицы интервалов. 2016-03-15 babolo Вывод ASSUME соответственно колонкам. Общий подсчет пространства до колонки с идентификатором команды вынесен в отдельную процедуру remsexe_pcnt(). Изменилась декорация пометок. В remsexe_data() переменная w0 стала u_int32_t. Комментарии. 2016-03-14 babolo В typau() неправильно брался номер регистра. Добавилось много выдач сегментного регистра, отдельная процедура prsg() для этого. Теперь leng выдается и для REMSEXE_MASUM. Прооптимизированы вычисления в remsexe_dipro(). Внедрены сегментные регистры во многие пометки. Комментарии. 2016-03-14 babolo Сегментный регистр теперь имеет отдельное поле в remsexe_xref. Соответственно переписаны макросы REMSEXE_XREF*(). Разметка CALL и JUMP подобных команд вместо remsexe_labl() теперь в remsexe_dipro(). Комментарии. 2016-03-13 babolo Процедура sortseg() переименована в glueseg(). Сортировка из glueseg() перенесена в новую процедуру sortseg(). 2016-03-13 babolo Добавлено условие прекращения сегмента по jmp и ljmp. 2016-03-13 babolo Новый флаг -N - начало нетрансляции. 2016-03-13 babolo Изменен признак незакрытого сегмента. Исправлено решение о создании нового сегмента. Введена трансляция только используемых сегментов. Комментарии. 2016-03-13 babolo Новый тип REMSEXE_TOFF, пока дубликат REMSEXE_TCODE. Выбор варианта декодирования в dis.c сделан через switch(). Теперь MASUM из SFLOW заодно может установливать TOFF. В разметчике remsexe_dipro() конец интервала мог уменьшаться. Форматирование. 2016-03-12 babolo Статический анализ хода программы. При введении источника для анализа поменялись номера REMSEXE_S... Новый флаг -i для вывода исполняемых интервалов. На основании исполняемых интервалов ставятся ASSUME CS. Стал ненужным ASSUME CS из REMSEXE_SHEDR REMSEXE_XINIP. Была ошибка при невыводе REMSEXE_L... у REMSEXE_MASUM. Неправильно выводился источник у REMSEXE_SDATA. Инициализация pos.sreg сделана по именам номеров регистров. Поолнены диагностические сообщения. Комментарии. 2016-03-11 babolo Была случайная вставка лишней строки. 2016-03-11 babolo Расставлены определения blin_internal_flags. 2016-03-11 babolo Только оформление, ничего, кроме оформления, но не все оформление. 2016-03-11 babolo Удален макрос REMSEXE_SISSR() за ненадобностью. Описан новый вид REMSEXE_MSCOM. Новый тип remsexe_sub для разметки передачи управления. 2016-03-11 babolo Новый макрос REMSEXE_XREF1(). Автоматом устанавливаем метку MAIN:, ASSUMEы для CS и SS на точке входа. Прооптимизирована отладочная выдача xref в remsexe_relocate(). Уточнены комментарии. 2016-03-11 babolo Только оформление, ничего, кроме оформления, но не все оформление. 2016-03-11 babolo Сегментные регстры перенумерованы согласно оригиналу. Новая процедура remsexe_insrg() вводит имя сегментного регистра. Выдача имени сегментного регистра переименована с remsexe_snamerg() на remsexe_outsrg() и процедура перенесена из prt.c в tec.c. При вводе опций не везде при ошибках устанавливался код выхода. 2016-03-11 babolo Вывод адреса в пометках управляется общей маской. 2016-03-11 babolo Процедура pxxx() внесена внутрь pxrf(). 2016-03-11 babolo Только оформление, ничего, кроме оформления, но не все оформление. 2016-03-11 babolo Уточнён вывод пометок. Номера Relocов в источниках по умолчанию не выдаются. 2016-03-11 babolo С использованием ноого поля remsexe_ref.use уменьшен вывод мусора в коротких комментариях. Ликвидирован REMSEXE_PCOM за ненадобностью. 2016-03-11 babolo Флаг -a неправильно вносил пометку. У флага -a REMSEXE_XREF0() был не в одной строке. В типе remsexe_ref появилось поле off. Переименование lfind() в remsexe_lfind() и использование изменение типа remsexe_ref. Процедура remsexe_lfind() пополнена проверками и сообщениями. Распечатка пометки pxrf(): вывод адреса вынесен отдельно, точнее сообщения. 2016-03-10 babolo Только оформление, ничего, кроме оформления, но не все оформление. 2016-03-10 babolo Исправлена ширина строки в lib/remsexe.h. 2016-03-10 babolo Переставлены адресные и сегментные mode для более правтильной сортировки. Заполнены пустые места в типе remsexe_xref. Выделен отдельный бит REMSEXE_VXREL в маске вывода для ссылок на Reloc, бит REMSEXE_VXAUT подвинут. Для удобства поиска все REMSEXE_XREF() записаны в одну строку. Поправлен usage() на биты в маске вывода. Комментарии. 2016-03-09 babolo Вывод короткого комментария заработал. Использование u_int128_t константы в присваивании в remsexe_disout(). 2016-03-09 babolo Только оформление, ничего, кроме оформления, но не все оформление. 2016-03-09 babolo Размер remsexe_xref увеличился с 64 до 128 разрядов. Вариативность в результате сильно уменьшилась. Вместо отдельных mular_descriptorов для меток и комментариев сделан общий mular_descriptor для текстов. Вместо массива remsexe_snamerg[][] теперь процедура remsexe_snamerg(). Для обмена ссылками теперь сделан тип remsexe_ref. Был пропущен один сдвиг маски вывода полей. Вывод короткого комментария усовершенствован - не работает. Поменялся порядок вывода описаний пометок. Из remsexe_ref() два похожих вычисления текущего вида кода вынесены в отдельную процедуру typau(). Размеры mularов xref и text теперь разные, размер элемента xref теперь задан через sizeof(). 2016-03-09 babolo Новый вид пометки - ASSUME. Введено отслеживание сегментных регистров. Новая маска REMSEXE_VXASS для распечатки источников ASSUME. Небольшие перетасовки в масках REMSEXE_V... В remsexe_disout() слишком смело устанавливался now.mode. В lfind() прооптимизированы условия. Бывший флаг -a стал -p. Новый флаг -a для задания ASSUME. Файл, открытый по -f, в конце закрывается. Файл параметров (-f) теперь обрабатывается Bpars_NOEN | Bpars_NOAL. Несколько ссылок зануляются. Форматирование. 2016-03-08 babolo Появилось управление выводом источника метки. Десятибайтовый тип данных стал обозначаться dt вместо df, соответствующая константа тоже поменялась на REMSEXE_CDT. Была некоторая путаница в выводе меток разных типов. Форматирование, комментарии. 2016-03-08 babolo Новый флаг -f. Стиль. 2016-03-07 babolo Отметки о начальной установке DS и ES. Точнее отмеряются и распечатываются строки. Заготовка под метки от mov. Если есть метки для mov, выводятся. 2016-03-07 babolo Извлечение метки из команды mov. К метке добавлены ;;. 2016-03-07 babolo Прозрачнее условие ремонта соманды call. Исключение групп X86_GRP_NOT64BITMODE и X86_GRP_MODE32 при ремонте. Удаление следов ручноо короткого комментария. 2016-03-07 babolo Показываются метки при call и jump. В remsexe_labl() была запутанная схема определения наличия x86.operands. Показываются источники при метках и комментах. Метки распечатываются без ;;. Комментарии распечатываются между #. Теперь remsexe_misp() проверяет ссылки на NULL. Новый вид remsexe_misp(REMSEXE_PCOM, ...). 2016-03-06 babolo В связи с увеличением возможного количества элементов cfg->label и cfg->comel стали mular_descriptorами. Теперь remsexe_misp() не подгоняет позицию печати, если к печати 0 позиций. Убран отживший код в #if 0. К mular_create() добавлен флаг BLIN_GEN0. Изменился размер sz mular_descriptorов. 2016-03-05 babolo В описании типа remsexe_xref варианты асставлены по приоритету. 2016-03-05 babolo Изменился тип remsexe_xref, из общей структуры вынесен REMSEXE_TLABL, вместо этого введены дополнительные варианты структуры: метка и комментарий. В выводе запуска был потерян cfg->wide[5]. Расслаблена проверка при выводе адресных флагов. 2016-03-04 babolo Сделана разметка по call и jump. 2016-03-04 babolo В тип posor добавлен счетчик будущих концов строки, через него делается пропуск после ret. 2016-03-04 babolo Выравнивание комментариев в данных. 2016-03-04 babolo Выравнивание комментариев в коде. Нужна доработка при ret. Выравнивание комментариев в данных начато, но еще не. 2016-03-04 babolo Исправлено исправление команды call процедурой repair(). 2016-03-04 babolo Для вывода кода данных используется вся доступная ширина. 2016-03-04 babolo Исправлено количество аргументов у флага -w. Компактнее сделан вывод префисков LOCK, SEGO, OSZO, ASZO. Процедуры pbb() и pskp() ликвидированы, их код внесен на место употребления. При вызове remsexe_misp(REMSEXE_PPBB, ...) не корректировался posis. Комментарии. 2016-03-03 babolo Константа REMSEXE_INIMASK переименована в REMSEXE_VINIM. Прочие биты remsexe_cfg.disamask обозваны и названия использованы. К wide[] добавлен еще один элемент - на комментарий. В usage() биткомментария показан. Теперь remsexe_opout() и remsexe_detout() отслеивают позицию печати. Позиция печати теперь передается в remsexe_code() и remsexe_data() из remsexe_disout(). В выдаче префиксов с REMSEXE_VLOCK по REMSEXE_VASZO исправлена ошибка. В remsexe_data() сделано аккуратное выравнивание по remsexe_code(). В remsexe_disout() сделана попытка выравнять комментарий, пока не. 2016-03-02 babolo Новый флаг -#, в cfg->xref отличие от -L обозначается старшим битом leng. Процедура repair() теперь компактизирует строку операндов. Вместо ручного размера insn->op_str теперь используется sizeof(). Выходные строки ужаты. Комментарии. 2016-03-02 babolo Новый флаг -L для декларирования меток с именами. Разрешение сообщать об ошибках babolo_openopts(). Сделано прекращение обработки при ошибка в -b. Частично расставлен blin_internal_flags. Добавлена возможность пробела после ret. Уточнено вычисление now в remsexe_disout(). В repair() подготовка к ужиманию пробелов. 2016-03-01 babolo Начальные значения -m и -w заданы макросами. Изменился способ выдачи по -H, для чего добавлена процедура rexec(). 2016-03-01 babolo Параграфы в usage() начинаются с заглавной буквы. Добавлен флаг -W для задания слов данных. Процедура nz() в dat.c выдает имеющееся количество нулей, на этой основе сделано планирование. Исправлена ошибка в remsexe_disout() при вычислении now. 2016-03-01 babolo Добавлены флаги -A и -B Для определения адресов указателей и байтовых данных. Увеличен wide[0] до 15. Процедура str() поделена на планирующую str0() и применяющую str1(). Отлажена пара str0() и str1(). Сплошные нули из текстовой области печатаются специальным образом. Параметр remsexe_data(..., t) стал указателем, что бы str0() могла его менять. При вычислении remsexe_disout():now Reloc Word не сбивает размер now. 2016-03-01 babolo Вынесена в отдельный файл lib/dat.c процедура remsexe_data() со всем ее хозяйством. В remsexe_relocate() был вывод, зависимый от разрядности. 2016-03-01 babolo Теперь вывод сода команд не сокращается, для чего организован отдельный вид remsexe_misp(REMSEXE_P2XQ, ...). 2016-03-01 babolo В remsexe_misp(REMSEXE_P2XN, ...) неправильно читалась позиция печати. Вывод данных управлялся неправильными битами disamask. Ширины кода не хватало на все команды. Не индицировался размер операнда в remsexe_opout(). Место для префиксов и разобранного опкода управлялось неправильными битами disamask. Вывод строки похож местами на правду, но не код к ней. 2016-02-29 babolo Пополнена, но не доотлажена распечатка данных. Новый вариант к remsexe_misp(): REMSEXE_P02X. Замена remsexe_misp(REMSEXE_P2XN, ...) с количеством 1 на remsexe_misp(REMSEXE_P02X, ...). В remsexe_handle внесено поле xrix. В варианте remsexe_misp(REMSEXE_P2XN, ...) появилось ограничение длинны. Выравнивание знаковости у remsexe_misp(REMSEXE_P2XN, ...). 2016-02-29 babolo Новый файл lib/prt.c, куда пересены детали печати из lib/cod.c. Оттуда приватный интерфейс через remsexe_misp(). Начало разработки remsexe_data(). Убраны лишние MIFE_COMPAT. Из usage() убран недействующий бит 00000001. Комментарий о распределении имен макросов. 2016-02-29 babolo Теперь все пометки, отличающиеся только xref, вывоятся в одну строку. Добавлен новый xref REMSEXE_XINIT. 2016-02-29 babolo Изменена нумерация внутри remsexe_xref. Причина - сортировка. Новый тип remsexe_handle для облегчения передачи параметров. Из параметров remsexe_gumul() и remsexe_gumul4() убран md, поскольку он всегда cfg->xref. Процедура decodecom() со всем хозяйством перенесена в lib/cod.c под именем remsexe_code(). Флаг -c стал -C, -s и -S поменялись смыслами, новый флаг -D для для отметки DATA без уточнения вида (leng). 2016-02-29 babolo В определении типа remsexe_xref из поля type выделено отдельно поле leng. В целях сортировки переставлены поля типа remsexe_xref. Для отделения порядка полей от порядка записи полец типа remsexe_xref введены макросы REMSEXE_XREF() и REMSEXE_XREF0(). Переменные disamask и wide[] перенесены в состав типа remsexe_cfg. Описание типа posor перенесено из lib/dis.c в приватную часть lib/remsexe.h. Замена процедур remsexe_irout(), remsexe_iwout() и remsexe_tyout() на одну remsexe_detout(). Вывод xref процедурой pxrf(): Поменялось оформление. Вывод команды из remsexe_disout() в отдельную процедуру decodecom(). Из вывода списка групп исключается "not64bitmode". Использование remsexe_addr() везде вместо * 16U. Новый флаг -H для вывода командной строки. В babolo_openopts() добавлен флаг Bpars_ESYM для обработки неразрешенных флагов. В remsexe_gumul4() все поля, которые не вводятся из командной строки, заполняются из параметра-образца. В remsexe_gumul4() имя параметра kind заменено на k. 2016-02-27 babolo Вместо relocs, margins, strings и segments введен единый список xref. Сортировка происходит при помещении в этт список. Новая опция -c для указания начала кода. Пока не работает, как и -s и -S. Новая вспомогательная процедура remsexe_addr(). Убрана * при Reloc и другие розничные отметки, введена единая процедура вывода для всех отметок. Ненужная переменная cidx в remsexe_disout(). 2016-02-26 babolo Не протирались перед использованием ename и bname. Процедура remsexe_guarg() размножилась до remsexe_guarg2() и remsexe_guarg4(). В список сегментов вносился InitSP вместо InitSS. Внесение InitSS пока исключено - какая-то ошибка. Форматирование. 2016-02-26 babolo В новый файл tec перенесены внутренние процедуры. Реализованы опции -s и -S - ввод адресов строк и сегментов. Пополнена проверка ошибок. Выброшен #include , где не нужен. Стиль, форматирование. 2016-02-26 babolo Добавлены отметки для границ сегментов из Reloc и бит в маске для разрешения. Все биты в маске сдвинуты на 4. Есть место еще для 3х разрешений перед выводом строк дисассемблера. Добавлены отметки начальных указателей стека и команд. В выдаче таблицы перемещений исправлено вычисление адреса перемещаемого. В remsexe_relocate() изменен уровень отладки вычисления адреса. В remsexe_relocate() цикл отладочной выдачи вычисленных и отсортированных Relocов спрятан под уровень отладки. Изменился тип последнего параметра padr() - мелкое несущественное удобство. Отмечаются звездочкой места Relocов. В remsexe_cfg на будущее добавлены поля strings и segments. 2016-02-25 babolo Добавлена возможность менять ширину некоторых полей. По умолчанию из выдачи исключены поля 0x07FC. Макросы A86() и D86() для обхода ситуации с несуществующим указателем. Поготовка к отметке Relocов. 2016-02-25 babolo Вывод явных операндов теперь зависит от маски. Сделан вывод неявных регистров. Сделан вывод списка групп, к которым принадлежит команда. В usage() добавлено описание маски. 2016-02-25 babolo Добавлен флаг -m и в dis.c сделан вывод полей по маске, параметр маска добавлен в remsexe_disout(). Сделана система распечатки с выравниванием в dis.c. 2016-02-25 babolo Из remsexe_cfg исключен mife_descriptor *md. Вынос кода в remsexe_opout() без внешних изменений. Стиль. 2016-02-25 babolo Комментарии к переменным. В remsexe_header() разведен смысл i на i и k. Уточнена диагностика при cs_open(). 2016-02-24 babolo Форматирование, комментарии. 2016-02-24 babolo Пополнен usage(). Изменен смысл флага -h, инверсия от прежнего значения сейчас -n. Уменьшена remsexe_cfg переносом части полей в локальные переменные. В связи с предыдущим поменялся прототип remsexe_loadexe(). Исправлено описание remsexe_exebin(). В remsexe_loadexe() исправлено вычисление cfg->shift. Ликвидирован макрос REMSOFF(). Перенос remsexe_relocate() из ana в bin. Локальная процедура spfill() облегчила вывод дисассемблированного. В дисассемблере исправлено вычисление addr. В дисассемблере добавлена SKIPDATA и уточнена диагностика ошибок. В дисассемблере детали выводятся только о допустимой инструкции. 2016-02-24 babolo Вынос отдельных частей в библиотеку. 2016-02-24 babolo Поле bfile переименовано в bname. Имя файла .EXE внесено в cfg. Из flar исключены zZ, поскольку они автоматически добавляются babolo_openopts(..., 'Z'). Неправильно понимался релок, теперь он >>4. Диагноз "Short .EXE" теперь через ifBLIN_Q*. Поправлено соответствие типов форматам вывода. 2016-02-24 babolo Подключены recobe и lcapstone. Новые флаги -b, -d, -r, -t. Изменен формат вывода таблицы релоков. Добавлен вывод релоцированного бинарника (-b). Доавлено дисассемблирование (-d). Таблица релоков выдается только по -r. Комментарии. 2016-02-21 babolo В регистре флагов задействованы REMSEXE_HDRPLUS и REMSEXE_SFTPLUS. Задействованы опции -a и -h. В обращении к mife_ctl() и mife_point() важно соблюдать типы аргументов. Замена %d на %u в распечатке свойств заголовка. К PEHeaderAddr добавлена * при подозрении. Добавлена распечатка Res1 и Res2 из заголовка. Релокаторы подсчитываются и распечатываются, из-за большой ширины вместо 4 колонок теперь 2. Колонки релокаторов выравнены. 2016-02-20 babolo Переименованы поля структуры remsexe_hdr. Структура remsexe_segaddr вынесена из структуры remsexe_hdr. Расширено описание структуры remsexe_hdr. Поплнена распечатка. 2016-02-19 babolo Начало.