Multi-Edit 7.0

Софт только для использования в DOS

+1

Сообщение SergeCpp » 17 июл 2014, 21:16

Интересные отличия в текстах отладчика.

Версия J:
Код: Выделить вс
   if(  var_index != -1  ) {
    switch( var_type & 0x7f )
    {
      case 1 :
      do_var_type1:
        taddr = memp( str_addr + ((var_index ) * str_record_size) + 1 ); // "+1"
        var_max = memw( taddr + 2 );
        jx = memw( taddr );
        tstr2 = memstr( taddr + 4, jx );
        break;


У меня:
Код: Выделить вс
#define MEMP_STR memp( p_strs + ( watch_index * 5 ) ) // никакого "+1"
...
  if( watch_index != WATCH_ERROR )
  {
    watch_ok = TRUE;

    switch( WATCH_IS )
    {
    case VAR_STR :
    _get_str_watch:
      var_addr  = MEMP_STR;

      str_len   = memw  ( var_addr + 2 );
      watch_int = memw  ( var_addr     );
      temp_str  = memstr( var_addr + 4, watch_int );
      break;


Подобное там в нескольких местах с этим "+1". Я вот никак не вспомню: 1) было ли "+1" в том тексте, что я получил путём ручной декомпиляции, и: 2) если было, то почему я его убрал. Так как это много где и ошибка получения неправильного адреса была бы сразу видна, то тут что-то имелось в виду. Но вот что?.. Или они в J изменили формат хранения переменных?..
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 500
Зарегистрирован: 11 апр 2011, 13:49
Откуда: At Home

+1

Сообщение Nika » 17 июл 2014, 22:18

А может, то у них глюк был в самом ME.EXE и пришлось подстроить MEDEBUG под эту фичу версии 7.00... (?)
И в паблик-версии medebug 7.00j и в DownPorted версии medebug 6.10p та "+1" присутствует.
Я глазам своим поверить отказывался - но заработало в 7.00p именно без той "+1".
(Сначала поборол версию medb610p.S. Потом, когда полез в medb700p.S, уже был готов к чему-то подобному).
Зато вполне объяснимая замена str_record_size в вер.6 - да, поменялась структура.
Ну, и ещё момент, помеченный как "//{add ver6" в medb610p.S.
Вот это и были три пакстных момента, с которыми пришлось повозиться.
Остальное ерунда (ну, там, формат MAP-файла и путь к нему).

-- Добавлено --
Вот, кстати, ещё одно, что можно было бы сделать для "улучшения" версии 7.хх - подбросить туда последний MEMAC.EXE v.6.10a
и подкорректировать medebug.s (v.7.0j) так, чтобы можно было отлаживать и программы в SRC формате, а не только в S-формате.
Примерно как это в ME v.6.10p. Но там проще - там у CMAC и у MEMAC одинаковый формат MAP-файла.
Последний раз редактировалось Nika 17 июл 2014, 22:39, всего редактировалось 12 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 693
Зарегистрирован: 17 окт 2013, 00:21

Re: Multi-Edit 7.0

Сообщение nextaty » 17 май 2015, 01:49

Срочно нужна консультация по Mult Edit по скайпу. Оплата хорошая по договорённости. Мой тел. +***** или скайп nextaty1. Дмитрий.
Последний раз редактировалось informatik 20 май 2015, 22:01, всего редактировалось 1 раз.
nextaty
Новичок
 
Сообщения: 1
Зарегистрирован: 17 май 2015, 01:44

Отзыв о Multi-Edit

Сообщение SergeCpp » 23 янв 2019, 13:28

ztmak (LJ) 2016-10-01 писал(а):Реплика дилетанта, с 1990-х и по сю использующего а) Multi-Edit для DOS и б) XP. В WIN-7 досовское не заработало, а мне никак без Multi-Edit для DOS.

https://ztmak.livejournal.com/14777.html или http://archive.li/uoqH2
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 500
Зарегистрирован: 11 апр 2011, 13:49
Откуда: At Home

Multi-Edit 7.0 and Total Commander for Android

Сообщение SergeCpp » 09 сен 2019, 13:10

Установил только что Total Commander для Android, а там переключение панелей реализовано с изменением их размера (увеличением активной и уменьшением пассивной) -- совсем как в программе работы с файлами в Multi-Edit (вызывается по Shift+F3) и даже стрелочка вправо так же работает (как Tab или Shift+Tab; стрелочка влево там выполняет другую функцию).

Изображение
В полный размер.

Изображение
В полный размер.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 500
Зарегистрирован: 11 апр 2011, 13:49
Откуда: At Home

Re: Multi-Edit 7.0

Сообщение Gawobeka » 10 ноя 2019, 22:31

Извиняюсь, если это уже обсуждалось. Интересует, можно ли декомпилировать файлы .mac? (в том числе в ранних версиях ME). В версии 2 неправильно работает макрофункция форматирования абзаца при длине строки более 80 символов. Любопытно, можно ли попробовать ее исправить.
Аватара пользователя
Gawobeka
Мастер Даунгрейда
 
Сообщения: 343
Зарегистрирован: 08 дек 2012, 22:11
Откуда: Кострома

MAC

Сообщение SergeCpp » 11 ноя 2019, 06:25

Декомпилировать файлы MAC можно. Я это делал для файла MEDEBUG. Автоматических средств у меня не было и я не знаю о существовании таковых. Поэтому я самостоятельно изучал структуру файла MAC и значения кодов операций в этом файле. В помощь были — дизассемблированный редактор и макрокомпилятор.

В версии 2, очевидно, всё это придётся проделывать уже вам — самостоятельно. Времени это занимает много (я несколько раз брался и отступался, с одного раза точно бы не осилил).

Посмотрите у меня файл DOC\MAC в архиве ME_PLUS [ http://old-dos.ru/files/file_1328.html#file1852 ]. Но версия 7, разумеется, это не 2.

Или можете написать новую функцию форматирования абзаца, взяв таковую, например, у меня (в том же архиве есть текст, не помню уже имя S-файла).
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 500
Зарегистрирован: 11 апр 2011, 13:49
Откуда: At Home

Re: Multi-Edit 7.0

Сообщение Nika » 11 ноя 2019, 19:49

Gawobeka писал(а):Извиняюсь, если это уже обсуждалось. Интересует, можно ли декомпилировать файлы .mac? (в том числе в ранних версиях ME). В версии 2 неправильно работает макрофункция форматирования абзаца при длине строки более 80 символов. Любопытно, можно ли попробовать ее исправить.
В версии 2 в самом редакторе ограничение на длину строки в 80 символов.
(а не 2000 симвлов, как в последних версиях).
Имхо средствами MAC там мудрить бесполезно.
Такое вот реальное ограничение.
Последний раз редактировалось Nika 11 ноя 2019, 19:50, всего редактировалось 1 раз.
Nika
Мастер Даунгрейда
 
Сообщения: 693
Зарегистрирован: 17 окт 2013, 00:21

Re: Multi-Edit 7.0

Сообщение Gawobeka » 12 ноя 2019, 22:56

У меня Фотон и ME2 работают с длиной строки до 254 символов.
Аватара пользователя
Gawobeka
Мастер Даунгрейда
 
Сообщения: 343
Зарегистрирован: 08 дек 2012, 22:11
Откуда: Кострома

Форматирование текста

Сообщение SergeCpp » Вчера, 01:22

Кстати, я вспомнил, что изначально (в оригинальных версиях 7) форматирование полагается на функцию ядра (реализована и находится в EXE) для форматирования строки (не помню, как называется). У той функции есть разные особенности (из которых я помню лишь то, что после конца предложения /точки точно, вроде бы ещё воскл. и вопр. знаки/) ставится два пробела. Это можно видеть по разным текстам, находящимся в оф. поставке. Поэтому, в частности, я и не использую эту функцию ядра при форматировании в своей модификации.

То есть, весьма вероятно, что во 2 версии всё устроено так же и вам или придётся писать своё форматирование или посмотреть, как там в ядре 2 версии реализована та функция форматирования строки, чтоб поправить там по возможности (константы, размеры буферов, ещё что).

Там макрокомпилятор есть? В нём можно пока по-быстрому (в Hiew) посмотреть, есть ли там имя функции, связанной с форматированием (в хелпе там может быть имя, или же так, "на вид" видно будет).

Если есть, то определить, где там она в EXE (без дизасма тут вряд ли), и смотреть, что там за реализация.

В общем, работы много будет.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 500
Зарегистрирован: 11 апр 2011, 13:49
Откуда: At Home

Re: Multi-Edit 7.0

Сообщение Nika » Вчера, 07:48

Gawobeka писал(а):У меня Фотон и ME2 работают с длиной строки до 254 символов.
Да, ошибся, - не 80 символов, а 254 символа.
Остальное верно, с учётом написанного SergeCpp.
Последний раз редактировалось Nika 13 ноя 2019, 07:48, всего редактировалось 1 раз.
Nika
Мастер Даунгрейда
 
Сообщения: 693
Зарегистрирован: 17 окт 2013, 00:21

Форматирование текста

Сообщение SergeCpp » Вчера, 10:20

Есть, кстати, вариант вполне возможный:

1) Функция форматирования в EXE имеет ограничение в 254 символа;
2) В макропрограмме форматирования размер одной или нескольких рабочих строковых переменных установлен в 80 символов.

В таком случае вполне достаточно изменить (увеличить с 80/0x50 до 254/0xFE) соответствующие байты в MAC-файле. Вот только поиск этих байтов (их адресов) без макротекстов будет тоже непрост.

P. S. Типа: "Можно снять 'Truncate spaces' и не обращаясь к настройкам редактора, изменив в файле INIT.MAC значение байта по адресу 0x266 с 1 на 0.".
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 500
Зарегистрирован: 11 апр 2011, 13:49
Откуда: At Home

Re: Multi-Edit 7.0

Сообщение Gawobeka » Вчера, 21:18

Спасибо за подсказки, правда, не знаю, когда мое мастерство дорастет до их использования :)
Аватара пользователя
Gawobeka
Мастер Даунгрейда
 
Сообщения: 343
Зарегистрирован: 08 дек 2012, 22:11
Откуда: Кострома

Пред.

Вернуться в Программы для DOS

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2