dlinyj: (Default)
[personal profile] dlinyj
Мне только ленивый не написал, мол вот ребят, выложили исходники MS-DOS 4.0, вот заживём. Но я вам открою страшную тайну, что давно уже есть в сети утёкшие исходники MS-DOS 6.0, но так ничего не произошло.

Но я был бы не я, если бы не попробовал бы его собрать.


Мелкомягкие ДОС выложили на свой репозиторий https://github.com/microsoft/MS-DOS . Но, как обычно, есть НЮАНС! MS-DOS разрабатывался в кодировке CP866 и, сточки зрения ПО - это бинарные(!) файлы, а их выложили как текстовые файлы в кодировке UTF-8, превратив код в фарш. Читайте - было вредительство.

Но всё же мы попытаемся продвинутся в сборке и расскажу инструкцию, как начать. Фарш и косяки после неудачного (вредительского) выкладывания исходников начали исправлять достаточно большое количество ребят. Один из проектов, которые я нашёл интересным обитает тут: https://github.com/neozeed/dos400 , там исправлено достаточно большое количество косяков, особенности в части инициализации переменных сред окружения.

Что ж, попробуем собрать.

Создадим папки для сборки:

mkdir build_dos && cd build_dos

Склонируем репозиторий в папку src (это важно, так как к названию src привязаны сборочные скрипты).

git clone https://github.com/neozeed/dos400 src

Запускаем в текущей папке dosbox и монтируем в нём текущую директорию:

dosbox



После этого определяем переменные среды окружения и запускаем сборку:



И, да, успех! Сборка вполне себе бодро идёт, большинство файлов успешно собирается. Казалось бы, мы на пути к безоговорочному успеху!



Но в конце концов мы утыкаемся в кривые проблемы с кодировкой. Типичная боль и проблема переноса кода в git:



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

Иностранцы тоже негодуют, как же можно было так плохо выложить исходный код, представляющий такую ценность: How Not To Release Historic Source Code. Обидно конечно, но в целом было бы время и желание всё это разрешить.

Надеюсь постик будет полезным стартом в попытке собрать ДОС из исходников.

Date: 2024-04-30 02:05 pm (UTC)
From: [identity profile] sig-11.livejournal.com

MS-DOS разрабатывался в кодировке CP866


Вы в этом точно уверены? Данная кодировка появилась только в ms-dos 4.01 (русская редакция)


Может все-таки CP437?

Date: 2024-04-30 05:25 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Могу ошибаться, главное что не в UTF-8.

Date: 2024-05-08 12:59 am (UTC)
From: [identity profile] arush-damage.livejournal.com

Так-то кодировка в гите тут не причем.


Тут похоже эти файлы какй-то "добрый человек" открыл в редакторе который автоматом перекодирует в utf-8 потом сохранил и залил на гитхаб уже испорченные исходники.


Вт например CHKDSK\CHKINIT.ASM содержит такое:

Image (https://ic.pics.livejournal.com/arush_damage/2095858/3496/3496_original.png)

И никакое ютф не помешало и символы не изменились.

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. 23rd, 2026 11:51 am
Powered by Dreamwidth Studios