LINUX.ORG.RU
ФорумTalks

Собрал первую программу под DOS :)

 , , , ,


0

0

Всё началось с этой темы: Debian 2.0 (комментарий)

После своего коммента, я осознал, что никогда в жизни не писал под DOS, и даже не знаю есть ли сейчас что живое под эту платформу.

Оказывается ещё живо :) FreeDOS 1.2 - 25 декабря 2016, ну и DOSBox жив.

И даже есть несколько живых компиляторов.

1) https://github.com/open-watcom/open-watcom-v2

Очень приятно, что ребята которые его пилят, запилили Coverity Scan и Travis. Можно скачать самый новый компилятор https://github.com/open-watcom/travis-ci-ow-builds/archive/master.zip собранный под windows и linux сразу.

Огорчает лишь поддержка стандартов, частично С99 и очень частично C++11, но зато я понял, почему кто-нибудь может начать писать на С89 в 2019 году, всё-таки не все живые компиляторы осилили С99...

2) http://www.delorie.com/djgpp/ Самый настоящий gcc под DOS. Не смотря на неинформативный сайт, с очень скудной помощью: https://imgur.com/a/e5mWNN5 gcc работает. Библиотека С реализована частично, в частности нет файла complex.h, может ещё чего-нибудь нет. Но в целом работает, и не только С, но и С++ и, наверное, другие языки gcc.

И так выглядит моя первая программа под DOS: https://imgur.com/a/qEN79yP

Не знаю зачем я это написал, просто захотелось кому-нибудь рассказать...

А Linux, тут вот причём, компилятор работает под Linux:

i586-pc-msdosdjgpp-gcc -v
Using built-in specs.
COLLECT_GCC=i586-pc-msdosdjgpp-gcc
COLLECT_LTO_WRAPPER=/usr/local/djgpp/libexec/gcc/i586-pc-msdosdjgpp/8.2.0/lto-wrapper
Target: i586-pc-msdosdjgpp
Configured with: ../gnu/gcc-8.20/configure --target=i586-pc-msdosdjgpp --program-prefix=i586-pc-msdosdjgpp- --prefix=/usr/local/djgpp --disable-nls --disable-plugin --disable-lto --enable-lto --enable-libstdcxx-filesystem-ts --enable-libquadmath-support --with-gmp=/home/fsb4000/github/build-djgpp/build/djcross-gcc-8.2.0/tmpinst --with-mpfr=/home/fsb4000/github/build-djgpp/build/djcross-gcc-8.2.0/tmpinst --with-mpc=/home/fsb4000/github/build-djgpp/build/djcross-gcc-8.2.0/tmpinst --enable-version-specific-runtime-libs --enable-languages=c,c++
Thread model: single
gcc version 8.2.0 (GCC) 

★★★★★

Ответ на: комментарий от tiinn

У меня подобная машинка стоит с виндой 98. С нативным досом так сказать тоже.

Serg_HIS
()
Ответ на: комментарий от madcore

В то время своей IBM PC совместимой машины у меня не было, а в школе преподавали QBasic. И он был не так уж и плох.

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

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

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

А в годы наиболее активной жизни MS DOS'а активно форсился именно Basic. Вплоть до таких калькуляторов как МК-85. За исключением разве что, например, БК-0010/0011, где дефолтнее был Фокал.

МК-85 (который фактически карманный PDP-11) тут при чем?

В те времена Basic для разных 8-биток фактически заменял собой операционную систему, которой часто просто не было. Из-за этого появилась некая культура бейсика, которая даже до сих пор сказывается (VBA в офисных пакетах). Но писюк с ms-dos - это уже была не голая 8-битка. Язык Паскаль (не только борландовский) тогда вообще был очень популярен. Типа бейсик - это для самых зеленых, а кто чуток освоился - тем паскаль.

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

И он был не так уж и плох

Ух, как он мне нравился! Я на нём даже пробовал текстовый редактор сделать. Правда, дальше меню дело не пошло :) Помню, в институте, делали мы лабу на Паскале, а лаборантка что-то для себя клепала на Турбо Бейсике. Возникла у неё какая-то проблема, так мои одногруппники не смогли ей помочь. И тогда Серёга подвёл её ко мне, и сказал: «Это Костя, он у нас специалист по Бейсику» :)

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

Да, у неё какой-то простой вопрос был. Просто, кроме меня, бейсик никто не знал.

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

Чего я только на всяких бейсиках ни писал...

Правда то было время Спектрумов и тогда у меня даже был компилятор бейсика и я запилил на нём игру динамичную. А встроенного бейсика хватало и на менее динамичные поделки в стиле игры «угадай животное».

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

А, прикольно! Я, максимум, моделирование логических цепей делал, со всеми этими дешифраторами, мультиплексорами и прочими простыми элементами. Строилась таблица значений, в зависимости от входов. Ну, потом ещё на VBA писал, но уже не так задорно.

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

Я потом понял, что на спектруме на бейсике делать нечего и перелез шустро на Ассемблер. Вот там я реально эпичные штуки делал. Правда на кассетах сильно не разгонишься... Но вскоре я купил себе пентиум 1. И там начал уже отрываться. Потому что Поиск 1 который у меня был чуть позже Спектрума, я тоже полноценным компом не считал. Потому как даже текстовый режим там был эмуляцией в графическом режиме, ну и т.п.

Serg_HIS
()
Ответ на: комментарий от tiinn

мы одно время на работе на PС/104 запускали DOS, чтобы с портами напрямую работать.

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

У меня есть Gentoo LiveDVD 2007.1. Там GCC 4.1.1. При помощи него, я скомпилирую GCC начиная с 4.2 заканчивая 8 в /opt/gcc-4.2, /opt/gcc-4.3 и так далее. Затем скомпилирую Dosbox каждым из них. Запущу в нём бенчмарки, как на YouTube-канале Old Robot. И в Excel/Calc составлю диаграмму.

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

Так я говорю про расцвет MS DOS'а в 80-х. В 90-х могло форситься что угодно. MS Windows начала набирать обороты ещё даже в середине этих 80-х, а лет через 10 уже были Win 9x. С Visual Basic'ами, Delphi и C++ Builder'ами.

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

Я думал ты более жёстко подойдёшь и попробуешь закомпилить например интеловским и чьим нибудь ещё компилятором. Хотя и так интересно.

Serg_HIS
()
Ответ на: комментарий от tiinn

Согласен. Нормально на виндовс 95 только сели начиная с 1994 года.

Serg_HIS
()
Ответ на: комментарий от snizovtsev

Не будешь же пятиклассникам емакс сразу давать.

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

Хотя в 21-м веке, может, есть уже что-нибудь более современное и актуальное для обучения программирования с азов ?

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

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

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

Меня тоже никто не заставлял это делать. Просто нравилось и от этого адреналин бушевал. И сейчас нравится. Сейчас тоже мегахрень пишу под Андроид.

А посмотрев на задания для курсовых и погрустив, сам попросил у преподавателя разрешить мне написать шашки. Параллельно своему однокашнику запилил игру змейка/гусеница (ну ты понял). Тоже с кучами наворотов. До сих пор в архиве держу.

Serg_HIS
()
Ответ на: комментарий от CYB3R

Думал об этом.

Просто так получается что там не все правила окончания игры для чемпионатов соблюдены в ней (ну там сколько ходов без взятия шашки противника можно сделать чтобы игру не признали ничьёй). Ну и пару багов таки осталось. Хотя меня лихо вздувает всё равно.

Serg_HIS
()
Ответ на: комментарий от CYB3R

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

Serg_HIS
()
Ответ на: комментарий от tiinn

Да. К стати. Если будешь из под винды 98 или НТ запускать не забудь поставить на её ярлык нивысший приоритет исполнения. Винда любила ДОС приложения запихивать куда подалее и не давать ей много процессора. На НТ к стати с мышкой в оконном режиме была лажа. На 98 всё ок.

Serg_HIS
()
Ответ на: комментарий от CYB3R

отправил. Если не прийдёт, с другого адреса попробую.

Serg_HIS
()
Ответ на: комментарий от praseodim

Но писюк с ms-dos - это уже была не голая 8-битка

Писюк с MS-DOS - вообще не 8-и битка.

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

Win9x - по большому счёту, тоже надстройка над DOS,

Нет.

там и dll во многом 16-битные

16-и битные DLL ты найдешь даже в симёрачке.

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

Да, она не имела своего ядра и пользовалась ядром DOS

Нет, она имела своё ядро и ядром DOS не пользовалась.

В чём такое принципиальное отличие Windows 95 от Windows 3.11, кроме 32 бит?

Даже 32-и битного отличия нет. На windows 3.11 накатывается такая штука, как win32s, и ооппа - она запускает 32-х битные приложения.

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

Ну, спорно, на самом деле. Думаю, слово «только» тут всё-таки лишнее, без него будет ближе к истине.

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

А если накатить Windows 3.11, что не ОС, а лишь оболочка

Абсолютная чепуха. Оболочкой над DOS была только мифическая Windows 1.0. Уже начиная с Windows 2.0, там был защищённый режим, собственные драйверы и виртуальная память (своп).

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.