dlinyj: (Default)
[personal profile] dlinyj
Всегда приятно, когда удаётся сделать мир чуточку лучше.

Понадобилось мне в одной задаче просматривать память в DOS. Весь мегабайт. Может быть даже всякий поиск и редактор организовать, но хотя бы так. Из коробки у DOS (в моём случае MS-DOS 6.22), есть "замечательная" утилита debug, которая убога чуть более чем полностью. Она ещё в конце 90-х, начале 2000-х вызывало у меня самые противоречивые чувства, сейчас и подавно. Но, тем не менее, хорошо что она есть. Но я искал более удобный инструмент. И нашёл - это утилита RAM View.



Но исполняемого файла найти не удалось, только сорцы под Borland C++ 3.1. И вот, начался квест по компиляции, и последующим исправлением ошибок. Даже по скринам с гита виден главный косяк: проблемы с символами, и выезжающий последний символ за пределы экрана (15 символов вместо 16). Итак, ковыряемся в старом коде, попутно исправляя его. Благодарю всех участников ретрочатика за помощь.

Самое сложное было собрать всю эту бодягу. Как оказалось, нужно компилятор положить в те же папки, что и компилятор у автора. Борланд был скачан отсюда, портабельная версия.

Далее в исходниках надо выполнить (не забываем указать пути к исполняемому файлу):

PRJ2MAK RAMVIEW.PRJ

После сиих манипуляций появляется мейкфайл: RAMVIEW.MAK, в котором можно посмотреть пути. В моём случае они оказались C:\BORLANDC. Переименовываем папку с компилятором в эту и собираем проект, я делал через графический интерфейс(ctrl-F9).

Компиляция прошла успешно, программа запускается. Но имеем кучу непечатных символов и выглядит как-то ущербно.



Ну что ж, пришла пора править код. Как оказалось видать где-то потерялись непечатные символы, при переносе кода из ДОС.





Спешу напомнить, чтобы корректно отображать символы в Notepad++, нужно установить кодировку OEM 866. Тогда всё будет более красиво.





Ну, а далее, находим подходящие символы по таблице ASCII для DOS, и подставляем их в исходник. Не буду показывать промежуточные варианты, как по мне, самым идеальным оказался этот.



После чего, делаем форк проекта, коммитим изменения в свой форк и из него делаем волшебной кнопкой pull request в оригинальный репозиторий.



Показываю вам, как делать правки в чужом коде, в чужих репах. Вот моё вольное оформление запроса на слияние: https://github.com/aurelitec/ramview/pull/1 .

Даже если автор не потрудиться добавить слияние, всё равно проект уже исправлен. Для тех кому нужен, вот собранная последняя версия программы RAMVIEW.

Date: 2022-10-12 03:10 am (UTC)
From: [identity profile] rw9uao.livejournal.com
так это в исходниках =) я сначала подумал, что прям в бинарнике.
молодец, годно.
а уж сборка древними компиляторами — это совсем квест.

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 07:53 pm
Powered by Dreamwidth Studios