LINUX.ORG.RU
ФорумTalks

тулчейн для C, который запускается под ELKS (8086 linux-like)

 


0

1

https://github.com/rafael2k/8086-toolchain

Там даже бинарнички есть, для тест-программы и консольных шахмат ;)

Собирается вроде как gcc-ia16 + OpenWatcom v2 (т.е. о селфхостинге пока речи нет). Однако прогресс, ещё недавно разработчики ELKS считали это невозможным ;)

★★★★★

О, надо бы сборку под ELKS добавить как таргет в свой компилер.

Но правда, запуститься нативно я там смогу разве что для сборки хелло ворлда, так как при компиляции самого себя компилер использует около 2 МБ ОЗУ. Так что чисто как кросскомпилятор.

А насколько продвинутый cc им удалось портировать? Какие технологии в нём задействованы?

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

80286 в принципе только 16 Мб мог адресовать. Так как 24-х битный. Так что могло теоретически быть только 16 Мб, но я такого не помню, обычно было 1 Мб, в редких случаях 2-2.5 Мб.

praseodim ★★★★★
()

И в чём прелесть? Моё знакомство с сями было на 286 и 640кб хватит всем и на дос и на борланд с и на компиляцию. Собирало, мягко скажем, не быстро, но собирало. Так же мне показывали ( я не пользовался) компилятор для к&р си с требованиями 64кб (по-моему) памяти. Так что расписали бы в чём восторг.

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

Да, это я перепутал. Впрочем, набить больше 16-и всё ещё было можно через EMS. ;-)

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

но я такого не помню, обычно было 1 Мб, в редких случаях 2-2.5 Мб

Я и 2 Мб двоек сам не видел. Не было смысла ставить столько на комп конечного пользователя.

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

Некоторые программы хотели больше 1 Мб. Winword в win 3.1 на 1 Мб не запускался. И вообще винда на 1 Мб хотя и запускалась, но этого мало было. AutoLisp в автокаде (10-м) сейчас не помню - или в принципе хотел больше 1 Мб или по крайней мере ему очень тесно было без дополнительной памяти. Емнип сервак Novell Netware хотел больше. OS/2 уже упомянутая.

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

Winword в win 3.1 на 1 Мб не запускался.

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

AutoLisp в автокаде (10-м) сейчас не помню - или в принципе хотел больше 1 Мб или по крайней мере ему очень тесно было без дополнительной памяти.

10-ка была под DOS. Соответственно, работала на одном метре.

Емнип сервак Novell Netware хотел больше.

Это да, мог использовать. Только тут был тот же принцип: Съесть-то он съест, да кто ж ему даст. :) Ну и от версии сильно зависило. Старая версия вполне тянула скромную файлопомойку на мегабайтной двойке.

Думаю, то, что в бСССР мало кто видел двойки с более чем 1 Мб памяти, в том, что завозить компы стали уже в конце 80-х. Тогда проще было тройку с 2-4 Мб найти, чем двойку.

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

Думаю, то, что в бСССР мало кто видел двойки с более чем 1 Мб памяти, в том, что завозить компы стали уже в конце 80-х. Тогда проще было тройку с 2-4 Мб найти, чем двойку.

У кого-то в конце 80-х XT получить уже счастьем было, на надо за всех говорить. Вполне себе были 286 с несколькими мб, в 90-х.

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

А насколько продвинутый cc им удалось портировать? Какие технологии в нём задействованы?

c86 он же c68 v5.1 там в ридми есть ссылка на мануал. Вроде как ANSI C (89) умеет, хотя переменные в разных файлах с одинаковыми названиями не переваривает. Им пришлось ещё портировать as86 ибо nasm оказался тем ещё тормозом даже на qemu.

Мегатред (уже второй): https://github.com/ghaerr/elks/issues/1443#issuecomment-2538327043

Andrew-R ★★★★★
() автор топика
Ответ на: комментарий от praseodim

Только я не пойму чем они его собирают?

https://github.com/tkchia/gcc-ia16 так что это не совсем обычный gcc (тот ниже 386-го не умеет)

и еще openwatcom (где-то тут описано, с его помощью 8086 порт дума собрали .. даже играбельный условно на 25 мгц двушке )

https://github-wiki-see.page/m/ghaerr/elks/wiki/Coding-games-for-ELKS

edit: https://github.com/ghaerr/elks/wiki/Using-OpenWatcom-C-with-ELKS

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

на надо за всех говорить.

Вы не правильно меня поняли. Вот вы организовали СП по поставке компов. Какие вы повезёте? Сервер, который дорогой и которому ещё покупателя найти надо, который будет знать зачем он ему.

Или десктоп, которой точно купят?

Вполне себе были 286 с несколькими мб

Допускаю. Просто я видел компы много где (правда ближе к середине 90-х, когда двойки были уже мало актуальны) и ни разу не видел двойки более чем с метром.

atrus ★★★★★
()

Вот еще из недр vogons

https://github.com/ArnoldUK/Faux86-remake/

эмулятор x86 который также может напрямую без ОС работать на rpi 1-4 (до 100 мгц скорость эмулируемого проца, как меряли не знаю :) )

Andrew-R ★★★★★
() автор топика
Ответ на: комментарий от atrus

СП по поставке (в 80-е) - это не для обычных людей было, а либо для предприятий, либо для богатеев. Особенно если речь не про Москву.

До массового народа 286 дошли как раз в середине 90-х, в виде списанных на помойку с предприятий или просто стыренных оттуда же.

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

Да, только «предприятия» это далеко не всегда крупняк. Какие-нибудь кооперативчики, которым потребовался бухучёт и подготовка документов. Туда как раз мегабайтные двойки и тройки массово и тащили.

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

До массового народа 286 дошли как раз в середине 90-х

Не имею статистики, но к середине все уже облизывались на Doom, которому нужна была минимум тройка в 4 Мб. Не, если кто-то мог получить списанную за бесценок, то и двойка подошла бы. Но если новую... Примерно в то время начал смотреть каталоги железа и не помню, чтобы видел двойки в продаже.

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

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

Я ж говорю - списанные или стыренные. О покупке за свой счёт у подавляющего большинства тогда не могло быть и речи. Впрочем, тогда всё очень быстро менялось, к концу 90-х уже всё было по-другому.

А новые - ну, наверно в 95 году их уже не производили, да. А вот проц 286 вроде 92 года производства у меня есть, правда амд.

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

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

На 286-м свопа не было. Теоретически мог быть, но аппаратные возможности для этого были сильно неудобные. Так что это ты про 386 говоришь скорее всего, причем вероятно с 2 Мб памяти.

Но WinWord 2.0 (мс офиса еще не было, были отдельные программы) помню запускали на 286-м.

10-ка была под DOS. Соответственно, работала на одном метре.

Под DOS не значит, что не могла использовать XMS-память. По крайней мере AutoLISP совершенно точно ее использовал. Я не помню только 384 Кб (сверх 640 Кб при общем 1 Мб) ему хватало, чтобы запуститься или даже для запуска нужно было больше.

Немного поясню. Сам по себе 10-й автокад вполне работал с 640 Кб памяти, а может даже и меньше. Впервые я его увидел на Искре 1030 - советском аналоге XT. Но если хотелось пописать программы для него на лиспе, то нужен был AutoLISP (входил в комплект автокада, но как отдельная подсистема) - и вот ему точно нужно было больше 640 Кб, насколько сильно больше уже не могу точно вспомнить.

Думаю, то, что в бСССР мало кто видел двойки с более чем 1 Мб памяти, в том, что завозить компы стали уже в конце 80-х. Тогда проще было тройку с 2-4 Мб найти, чем двойку.

Возможно. 1 Мб RAM у нас были как бы стандартом для 286-х компьютеров.

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

Надо будет на моём 286 с миниксом попробовать, мб даже ядро и систему перекомпилять.

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

На 286-м свопа не было.

Swap в real mode (это вообще 80086):

https://virtuallyfun.com/2011/07/12/setting-up-a-permanent-swapfile-under-win...

Swap в standard mode (80286):

https://www.tech-insider.org/windows/research/acrobat/920221/2TIPW.pdf

For standard mode Windows, set the application swap file to the fastest hard drive by setting the SwapDisk= entry in the [NonWindowsApp] section of SYSTEM.INI

У 16-битной венды забавная система управления памятью была. Функции GlobalAlloc/LocalAlloc возвращали не указатель, а дескриптор, для доступа к указателю выделенную память надо было блокировать через [Global/Local]Lock/[Global/Local]Unlock. И пока память не заблокирована ядро могло менять расположение блока, в том числе, сбрасывая его на диск. Аппаратной поддержки не требовалось.

Но аппаратный своп на 286 тоже был вполне возможен. Только оперировать приходилось бы не страницами, а целыми сегментами, что менее удобно. Но в остальном механизм тот же самый. Даже нашёл упоминание, что это реально использовалось:

https://www.vogons.org/viewtopic.php?t=49914

Yes, 286 can simulate paging. Borland's DOS Extender did that to provide overlays in protected mode, in exactly the way that you describe. You can see it in action in titles such as Into the Shadows.

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

Нет, путаешь. turbo и borland - разные линейки продуктов, хотя и от одной конторы.

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

286 can simulate paging

А сколько там тактов приходилось на доступ за пределы границ сегмента? Семь? Вроде как очень дорогое удовольствие получалось.

luke ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)