![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Сижу в центре кремниевой долины и программирую на фортране для БЭСМ-6. На дворе 2016 год, а вот поди ж ты, возникла настоятельная потребность. Нужно извлечь с диска некий бинарный образ и преобразовать в текстовый HEX файл. Надо сказать, Фортран-ГДР отличный инструмент для подобных задач. Мониторная система Дубна, симулятор ОС Диспак, книжки Мазного и Салтыкова-Макаренко под рукой. Решение выглядит так: hexdump.b6
История вопроса следующая. Есть процессор микро-БЭСМ, и для него есть тест системы команд. Тест написан на языке ассемблера, а сам ассемблер имеется в исходных текстах для БЭСМ-6. К ассебмлеру также прилагается линкер. Всё это запускается под мониторной системой "Дубна" на симуляторе ОС Диспак. На самом деле написана эта кросс-система была под ОС Дубна, и пользуется некоторыми её особенностями, поэтому пришлось на скорую руку привинтить несколько дубненских экстракодов к симулятору Диспака. Но это всё мелочи. В конце концов ассемблер с линкером заработали и на диске получился двоичный образ теста, размером около 24 килобайт. Как его извлечь оттуда? Тем более, что хранится он под управлением некой "библиотеки виртуальной памяти", и формат хранения не описан. Но есть API, набор фортрановских вызовов. Не вопрос: пишем програмулину и получаем нужный результат. Теперь можно смело запускать тест на симуляторе Verilog.
История вопроса следующая. Есть процессор микро-БЭСМ, и для него есть тест системы команд. Тест написан на языке ассемблера, а сам ассемблер имеется в исходных текстах для БЭСМ-6. К ассебмлеру также прилагается линкер. Всё это запускается под мониторной системой "Дубна" на симуляторе ОС Диспак. На самом деле написана эта кросс-система была под ОС Дубна, и пользуется некоторыми её особенностями, поэтому пришлось на скорую руку привинтить несколько дубненских экстракодов к симулятору Диспака. Но это всё мелочи. В конце концов ассемблер с линкером заработали и на диске получился двоичный образ теста, размером около 24 килобайт. Как его извлечь оттуда? Тем более, что хранится он под управлением некой "библиотеки виртуальной памяти", и формат хранения не описан. Но есть API, набор фортрановских вызовов. Не вопрос: пишем програмулину и получаем нужный результат. Теперь можно смело запускать тест на симуляторе Verilog.
no subject
Date: 2016-11-24 07:12 (UTC)no subject
Date: 2016-11-24 08:40 (UTC)10 a=a+1
goto 100
100 a=a-1
goto 10
no subject
Date: 2016-11-24 22:05 (UTC)no subject
Date: 2016-11-24 08:44 (UTC)no subject
Date: 2016-11-24 09:10 (UTC)https://github.com/eatonphil/jsforth
Сейчас наверное имеет смысл реализовать Форт под asm.js.
no subject
Date: 2016-11-24 13:41 (UTC)Теперь эпоха WebAssembly (отгрузка официально в Q1 2017)
А внутри там очень даже
тортфорт!no subject
Date: 2016-11-24 22:10 (UTC)no subject
Date: 2016-11-25 02:07 (UTC)https://cdn.rawgit.com/WebAssembly/wabt/e528a622caa77702209bf0c3654ca78456c41a52/demo/index.html
Исходник в виде AST:
Выхлоп:
Видно что в туловище: a b +
no subject
Date: 2016-11-25 02:14 (UTC)no subject
Date: 2016-11-25 01:59 (UTC)no subject
Date: 2016-11-24 22:11 (UTC)no subject
Date: 2016-11-24 23:01 (UTC)no subject
Date: 2016-11-25 02:01 (UTC)