LINUX.ORG.RU

DOS Navigator портирован на Linux

 , , , turbo vision,


2

2

Разработчик @unxed, неоднократно предпринимавший попытки запустить двухпанельный файловый менеджер DOS Navigator под Linux, добился, наконец, успеха. Для решения проблемы лицензионной чистоты встроенная модифицированная библиотека Turbo Vision для Паскаля, никогда не публиковавшаяся под открытой лицензией, была заменена на рерайт современного форка доступной легально C++-версии, с переходом на UTF-8 и современную классовую архитектуру взамен характерной для TV, но практически не применяющейся сегодня, объектной.

Заявлена работоспособность базовых функций, таких как навигация по панелям и копирование файлов.

Для поддержки UTF-8 в DOS-сборках применяется специально разработанный для этого DOS UTF8 API, уже добавленный в DOSBox-X.

Отдельно стоит отметить порт на Linux Volkov Commander, предпринятый этим же разработчиком. Используется простой эмулятор 8088. Вывод рисуется в консоль за счёт скрейпинга видеопамяти текстового режима по аналогии с тем, как WinPTY скрейпил консоль Windows.

>>> DOS Navigator 1.20



Проверено: hobbit ()
Последнее исправление: dataman (всего исправлений: 3)
Ответ на: комментарий от vvb333007

это пока... у вас волосы «гладкие и пушистые», а со временем все становится на свои места! :о)

sunjob ★★★★★
()
Последнее исправление: sunjob (всего исправлений: 1)

Ubuntu 26.04.1 LTS

Поставил компилятор (apt install fp-compiler fp-units-rtl)

Скачал сорсы, собираю "./tools/build.sh linux64", как в инструкции написано. Получаю «fmttgz.pas(76,5) Fatal: Can't find unit zstream used by fmttgz»

Гуглингом выяснил, что надо доустановить fp-units-base, fp-units-misc. После этого всё собралось и даже заработало.

Radjah ★★★★★
()
Ответ на: комментарий от Shadow

из-за полного отсутствия поддержки мыши.

Зачем в текстовом двухпанельнике мышь если он отлично управляется с клавиатуры? «мышиных» файлменеджеров косящих под виндовый «проводник» и таких же неудобных любителям клавиатуры - и так хватает.

watchcat382 ★★
()
Ответ на: комментарий от Radjah

видимо, надо было устанавливать мета-пакет, а не отдельные его части

apt-get install fpc

p.s.
да и лазаря-бы установили сразу, весьма занятная штукенция (затянет, хрен отлипнет :о)

sunjob ★★★★★
()
Последнее исправление: sunjob (всего исправлений: 1)
Ответ на: комментарий от sunjob

Хотел возразить по поводу несопоставимого расходования дискового пространства, но получилось 357МБ кусками против 605МБ метапакетом.

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

действительно, было за что бороться и экономить! (а вдруг, в след. раз еще что-то «не найдется»?!)
значит лазарю - дулю кислую?! :о)

sunjob ★★★★★
()
Последнее исправление: sunjob (всего исправлений: 1)
Ответ на: комментарий от Radjah

ну и славно, трам-пайраммм!!! :о)
п.с. но компилятор надо ставить полностью.

sunjob ★★★★★
()
Последнее исправление: sunjob (всего исправлений: 1)
Ответ на: комментарий от wandrien

не, в mc не все окна полноэкранные, в том же редакторе окно можно уменьшать и двигать, но панели, просмотрщик и диалоги подвигать уже не выйдет

mittorn ★★★★★
()

LLM иногда конечно тот ещё п****ц. Пишешь: напиши с нуля, вот референс. Она пишет с нуля и в каждый файл пишет комментарий ported. Почему ported? Откуда ported? Сделал скрипт аудита - код новый, чистый.

Это ж надо было так поднасрать на ровном месте.

Теперь приходится гонять модель поумнее, чтобы навела порядок.

unxed
() автор топика
Ответ на: комментарий от unxed

UPD: совпадения таки нашлись, долбаный Соннет действительно спиздил код при строгом указании писать с нуля. Теперь приходится жечь токены Опуса на чистку, как чистил Дос Навигатор.

Как же они иногда бесят

unxed
() автор топика
Ответ на: комментарий от unxed

UPD: совпадения таки нашлись, долбаный Соннет действительно спиздил код при строгом указании писать с нуля.

Типикал.

wandrien ★★★★
()
Ответ на: комментарий от wandrien

У него ещё дебильная привычка вставлять комментарии вроде «это чистая комната» и «ничего не скопировано», которые отнюдь не мешают ему брать и копировать.

По ходу, в такие истории в принципе нельзя ходить без скриптов токенного аудита, отлавливающего такое механически.

Штош, будет опыт

unxed
() автор топика
Последнее исправление: unxed (всего исправлений: 1)
Ответ на: комментарий от unxed

волшебной палочки не существует, текстовый трансформер просто достаёт веса из датасета, где это всё уже есть, к тому же модель могла быть переобучена на чём-то

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

Да всё проще, ии просто списывает из исходника и нагло брешет.

Поэтому весь этот «переписанный» ИИшницами код это по факту банальное нарушение лицензии.

wandrien ★★★★
()
Ответ на: комментарий от unxed

я постоянно работаю в том самом терминале из 70х, вот прям в текстовом режиме, я такие патчи тоже не принял бы. кому хочется красоты есть полно графических 2 панельников от гном командера и санфлавера до всяких командеров на куте.

bernd ★★★★★
()
Последнее исправление: bernd (всего исправлений: 1)
Ответ на: комментарий от wandrien

если ему исходник скормили - то несомненно

mittorn ★★★★★
()
Ответ на: комментарий от unxed

там нейрофобы

Не ужели эта такая проблема написать поддержку требуемых протоколов самому?
Если уже совсем сложно, можно посмотреть на сгенерированную портянку и переписать ручками так, как написал бы сам

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

я пару раз располагал несколько редакторов на экране termux (не помню, локально или через ssh)

А как? В смысле что для этого надо сделать?

anc ★★★★★
()
Ответ на: комментарий от anc

Видишь в mcedit верхнюю строку:

[----]  0 L:[  1+ 0   1/  1] *(0   /   0b) <EOF>    [*][X]

Нажимаешь на [*], и окно с текстом из «полноэкранного» становится «рамочным». За рамку его можно перемещать и менять размер:

https://ibb.co/KpVmyxCV

wandrien ★★★★
()
Ответ на: комментарий от mittorn

То есть мультиплексированием tmux занимался? У меня вопрос в другом. Зачем несколько окон в mcedit. Тем более там, похоже, нет способа с клавиатуры между окнами переключаться, кроме как через меню. Это какая-то особая боль.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Тем более там, похоже, нет способа с клавиатуры между окнами переключаться, кроме как через меню. Это какая-то особая боль.

Там еще забавно, что внутри mc можно запустить несколько копий mcedit и переключаться между ними через Alt + тильда.

А внутри каждого такого mcedit – открыть несколько окон. А вот хоткея, чтобы переключаться между этими окнами, я тоже не знаю.

wandrien ★★★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Зачем несколько окон в mcedit.

Видимо, для того, чтобы была возможность работать с несколькими файлами, когда mcedit запущен в терминале, в обход mc.

wandrien ★★★★
()
Ответ на: комментарий от wandrien

Не. Я и про тильду то не знал. Но кажется случайно иногда её нажимал и страдал после этого, не зная как вернуть всё назад. mcedit использую только в однофайловом режиме, а если надо два одновременно - открываю два гуи-терминала и позиционирую их как удобно средствами wm.

firkax ★★★★★
()
Ответ на: комментарий от i-rinat

Тем более там, похоже, нет способа с клавиатуры между окнами переключаться, кроме как через меню.

Есть, но по умолчанию не очень удобный, alt+{ / alt+}:

ScreenList = alt-prime
ScreenNext = alt-rbrace
ScreenPrev = alt-lbrace
Beewek ★★★★
()
Последнее исправление: Beewek (всего исправлений: 1)
Ответ на: комментарий от Beewek

Это между «окнами» внутри mc. Это не то.

Но спасибо за наводку – я не знал.

(Интересно, а как об этом можно узнать, если этих пунктов нет в меню?)

wandrien ★★★★
()
Ответ на: комментарий от wandrien

(Интересно, а как об этом можно узнать, если этих пунктов нет в меню?)

Ну, я узнал так же, как firkax - случайно нажал:)

Beewek ★★★★
()
Ответ на: комментарий от wandrien

Это между «окнами» внутри mc. Это не то.

Открыл файл в редакторе, переключился в файловые панели, открыл второй файл в редакторе. Потом можно между файлами переключаться. Короче, тоже два редактора, но другим путём.

Beewek ★★★★
()
Ответ на: комментарий от Beewek

Да понятно. Но чисто спортивный интерес, а как в внутри mcedit. Мне щас некогда в исходники смотреть, работа. Может потом гляну. Но пока думаю, что хоткеев нет.

wandrien ★★★★
()
Ответ на: комментарий от mittorn

Я прочитал «tmux» вместо «termux».

Ну а так изврат, чо. Termux это который на мобилках? Если так, то там места и так чрезвычайно мало. Урезать его ещё, располагая несколько окон, это какой-то особый мазохизм.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

на 8" планшетнике вполне достаточно места. Надо было видеть несколько файлов сразу, на android с этим беда прям

mittorn ★★★★★
()
Ответ на: комментарий от wandrien

Видишь в mcedit верхнюю строку:

[----] 0 L:[ 1+ 0 1/ 1] *(0 / 0b) <EOF>

  • [X]

Забавно, у меня в гейоси такой радости нет :) Если не забуду потом под онтопиком посмотрю.

anc ★★★★★
()

Я просто уверен, что портированный код не учитывает все особенности линуксовых терминалов (двойной Escape например).

Saakx ★
()
Последнее исправление: Saakx (всего исправлений: 1)

Собрал из мастера, потыкал, нашел визуальные баги. Репортить лень. Может оно еще перепишется 10 раз и само пофиксится в процессе.

Сборка паскалевским компилятором – моментальная. На выходе статический бинарник на 9 мегабайт, без зависимостей.

cloc говорит вот что. Сколько из этого кода реально участвует в сборке, хз.

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Pascal                         396          14300          19455         146327
Python                         138           1496           1936          10955
Markdown                        59           1086              0           4946
BitBake                          3             67              0           1545
Bourne Shell                    37             83            306           1464
YAML                            14             55             62           1380
diff                             2             26            306            833
Smarty                           1             45             11            518
Text                             6              1              0            387
Assembly                         2              3              8            193
INI                              2             83            208            135
sed                             37              0             87             85
make                             1              6              7             36
PHP                              2              2             27             13
SVG                              1              0              1             11
-------------------------------------------------------------------------------
SUM:                           701          17253          22414         168828
-------------------------------------------------------------------------------
wandrien ★★★★
()
Ответ на: комментарий от Saakx

Так и во многих программах под линуксовыми терминалами хватает одного.

Это деталь реализации конкретной программы.

wandrien ★★★★
()
Ответ на: комментарий от vvb333007

Чем проще пишется, тем меньше удовлетворения от продукта

За свою жизнь не замечал такого. Хотя и понятие «проще» оно имхо размытое, Например у меня были варианты «проще» если судить по затраченному времени, но если вспомнить в каких условиях это время было затрачено понимаешь что оно вот совсем не проще было.

anc ★★★★★
()
Ответ на: комментарий от unxed

Если я чего не заметил, кидайте тикет!

Да не, я там в ответ на то, что было сложно и много граблей с turbo vision и портированием, просто пытался уточнить, что именно и приводил свой опыт портирование достаточно большого проекта, где у меня было всё на свете, даже свой собственный язык встроенный и байт-код придумал интуитивно, и отдельный редактор и т.п.

И все вроде портировалось без особых проблем, хотя это было еще 20 лет назад, когда FPC и FreeVision были еще весьма сырыми.

До сих пор иногда захожу посмотреть на то, как в 19 лет я мог ночами без интернетов и с единственной книжкой под рукой мог кропотливо писать даже огромную документацию для проекта, не говоря уж о коде, который отлаживал просто методом тыка ночами напролет. Сил и энтузиазма было нескончаемое количество :)

Hiddenman ★
()
Ответ на: комментарий от wandrien

одиночный Esc — это начало ANSI-последовательности, и приложение должно подождать, не придёт ли следующий байт. Двойной Esc — способ явно сказать «это точно Esc, а не начало последовательности».

ANSI последовательности - это решение для раскраски символов в терминалах. Если нужен цветной терминал, без них никак. А DOS-навигатор синенький.

Saakx ★
()
Последнее исправление: Saakx (всего исправлений: 1)
Ответ на: комментарий от wandrien

там написано, цитирую:
«No reliable way to distinguish single Esc key presses from the start of a escape sequence. Currently, client programs use fragile timing related hacks for this, leading to bugs»

Saakx ★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.