Обновить
4
0.3

Пользователь

Отправить сообщение

Особенностью архитектуры ARM64 является то, что при определенных условиях эти манипуляции со стеком раскладывались компилятором на две команды

Точнее особенностью кодогенератора Go под ARM64 (уже пофикшенной). Так то в типичном коде под DOS или Win32 (именно 32битный) для "обычных" интеловских процессоров постоянно используются push/pop при вызовах функций или просто когда регистров под временные переменные не хватает, так что в произвольный момент указатель стека указывает на какие то промежуточные данные.

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

Погуглил - пишут, что для LFN в MS DOS 7 нужен отдельный резидент (работающий и в других версиях DOS). Я в те годы его не видел. И в любом случае нужно использовать отдельное API (семейство функций 71h для int 21h).

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

То есть сама MS DOS поддерживала длинные имена

Насколько помню, LFN для досовских программ был доступен только в дос окне из под винды (и то если сама прога использовала соответствующие расширения), при загрузке в режиме DOS только короткие.

Это уже ближе к концу 90х.

Doom, Duke Nukem 3D, Fallout и тысячи других игр теперь могли работать не только под DOS, но и в «нормальной» Windows.

Я что-то пропустил и во времена Windows 95 действительно была Win32 версия дюка?

разделения на фронт и бек тоже не было

В больших проектах разделение на разбирающихся во внутренней логике и в пользовательском интерфейсе всё таки было.

У меня от Turbo C осталась привычка к F2, так и перенавешивал на неё сохранение в разных редакторах.

Теперь десктоп на RISC-V тянет базовые задачи — браузинг, офисные приложения — без заметных тормозов, особенно на современных платах с RVA23

На каком железе проверяли? Есть мнение, что с поддержкой настоящих процессоров стало не очень.

Прочитайте сообщения выше )

Речь шла об эмуляции одной инструкции процессора, какие ещё блендеры/скейлеры?

под SVE хочется писать «длино‑агностичный» код. std::simd частично закрывает эту историю: native<T> подбирает «правильную» ширину под флаги компилятора

Идеология SVE - скомпилировать один раз бинарный код, который автоматом использует ширину вектора на том процессоре, на котором запускается. Для std::simd размер нужен во время компиляции.

TP был заметно быстрее TC (как минимум сам язык делает возможной однопроходную компиляцию).

Верю что быстрее, но реализовать эмуляцию произвольной инструкции, скажем, на x86 или ARM с разнообразными расширениями - задачка весьма серьёзная.

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

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

Тут возможно два варианта

А первый вариант как то реализуется без Trap Flag?

8 битный буфер экрана, разрешение 800x600

В принципе во второй половине 90х нормой были карты с поддержкой HiColor/TrueColor, и в квестах тех времён оно использовалось (скажем, в Zork Nemesis) - но там картинка в основном статичная, проблем со скоростью нет.

Я свой первый комп купил как раз в 1995ом, и это бы 486 dx2 66 c 4Mb оперативки и видеокартой от Cirrus Logic (сходу номер не вспомню) и 14" монитором (15" стали массовыми уже позже, тогда вообще не помню таких); звуковуху (что-то дешёвое на ESS688) и CD ROM прикупил уже позже. В 1995ом Pentium стоил запредельно (я только года через два взял у знакомых б/ушную материнку с Pentium 100), S3 Virge ещё не вышла, и Windows 95 ещё только начинала свои завоевания - я её поставил только когда вышла демка Diablo, а так первое время хватало доса и Windows 3.x (уже потом приползли OS/2 Warp и Linux). 16Mb оперативки в 95'ом - тоже какая то запредельная цифра; помню, при покупке раздумывал насчёт размера винчестера (они тогда быстро дешевели - выбирал между 420 и 540Mb, в результате взял 850), но про память не раздумывал, казалось что 4Mb более чем достаточно и по деньгам разумно. Windows 95 на таком объёме вполне себе грузилась. На мамке с Pentium было 8Mb и я с такой конфигурацией жил до 2003го (понятно, что о новых игрушках речи не было).

В общем, ваша конфигурация на народную 1995ого года никак не тянет. Но если говорить по Arcanum - он всё таки вышел в конце 2000го, когда железо было совсем другим.

Информация

В рейтинге
2 458-й
Зарегистрирован
Активность