Entry tags:
Линукс с системой команд БЭСМ-6
Я тут подумал. Если взглянуть на взаимодействие юзерского кода с ядром юникса, можно заметить, что системы команд не обязаны совпадать. Программа юзера может иметь одну систему команд, а ядро - совсем другую. Параметры системного вызова передаются через регистры. Если форматы данных и указателей более-менее совместимы, то и нет проблем.
Мы имеем мэсм6, то есть реализацию системы команд БЭСМ-6 на Верилоге. А Микрочип имеет PolarFire: микропроцессор RISC-V с Линуксом и FPGA в одном чипе. Платка стоит $132 на microchipdirect.com.
Что если скрестить ежа с ужом? Добавить к имеющимся ядрам RISC-V еще и ядро БЭСМ-6. Благо FPGA вроде немаленького размера (95K логических элементов). Научить Линукс запускать и обслуживать процесс БЭСМ-6. Задействовать имеющийся у нас компилятор Паскаля, и можно будет кодить для БЭСМ-6 под Линуксом!
А если ещё маленько поднапрячься, можно и мониторную систему "Дубна" подтащить. Получим весь спектр языков программирования и ассемблеров. Опыт мы наработали на симуляторе dubna.
Мне кажется, вполне реальная идея.

Мы имеем мэсм6, то есть реализацию системы команд БЭСМ-6 на Верилоге. А Микрочип имеет PolarFire: микропроцессор RISC-V с Линуксом и FPGA в одном чипе. Платка стоит $132 на microchipdirect.com.
Что если скрестить ежа с ужом? Добавить к имеющимся ядрам RISC-V еще и ядро БЭСМ-6. Благо FPGA вроде немаленького размера (95K логических элементов). Научить Линукс запускать и обслуживать процесс БЭСМ-6. Задействовать имеющийся у нас компилятор Паскаля, и можно будет кодить для БЭСМ-6 под Линуксом!
А если ещё маленько поднапрячься, можно и мониторную систему "Дубна" подтащить. Получим весь спектр языков программирования и ассемблеров. Опыт мы наработали на симуляторе dubna.
Мне кажется, вполне реальная идея.

no subject
no subject
ABI разве не должен быть language agnostic? (Если язык не предписывает экзотическое представление данных.)
no subject
no subject
besmc hello.ftn — компилирует фотрановскую программу и создаёт бинарник hello.exe, который можно непосредственно выполнять. Тот самый бэсмовский оверлей.
Можно компилить и линковать несколько файлов:
besmc a.ftn b.assem c.algol
С флагом -c можно генерить объектные файлы, то есть perso библиотеки:
besmc -c foo.assem -o foo.obj
И потом линковать объектные файлы в кучу:
besmc a.obj b.obj c.obj -o result.exe
Выбор компилятора определяется расширением файла:
.ftn
.fortran
.forex
.algol
.pascal
.assem
.madlen
.bemsh
Получается законченная система программирования для БЭСМ-6 под Линуксом.
no subject
no subject
Если же запрошен вывод с расширением .punch, то выводить стандартный массив через *punch.
besmc -c foo.ftn -o foo.punch