![[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-29 03:36 (UTC)Если сделать КВУ для Arduino Ethernet, то можно "красиво" складывать и брать пакеты с данными прямо из памяти машины.
Я так понял что есть исходники ДИСПАКа для микро-БЭСМ, возможно придется сделать модуль для него для обработки сети, но это, конечно, если станет понятно как "генерировать ДИСПАК".
Так же смотрю, что есть достаточно недорогой модуль TFT cо слотом для microSD
А вообще напрашивается "толстая" атмега или pic, которая по аппаратному сбросу шьёт fpga прошивкой с sd карточки и потом выполняет роль КВУ.
no subject
Date: 2016-11-29 03:44 (UTC)+100
Я бы так и делал.
Вроде есть даже готовые платы где кроме FPGA стоит АРМ или еще какой-нибудь процессор.
Этот же процессор может эмулировать жесткие диски на основе файлов на SD карточке. И он же может эмулировать терминал.
Или если FPGA достаточно большая - то этот вспомогательный процессор можно засунуть в саму FPGA, вместе с микро-БЭСМ.
no subject
Date: 2016-12-14 01:13 (UTC)Первый вариант: возможность запускать имеющуюся операционку для микро-БЭСМ. Это не Диспак, нет, ничего общего. Генетически это сильно урезанный вариант ОС Дубна. Система обеспечивает примитивный диалог на консоли (через пультовый процессор) и возможность запуска пакетных файлов мониторной системы "Дубна". Файловый обмен обеспечивается пультовым процессором через общую память. В целом не бог весть что. Массовую публику пакетные файлы Дубны вряд ли заинтересуют. Сеть тут не очень понятно как приспособить. Многотерминальность имеется, но имеющиеся диалоговые системы от БЭСМ-6 не пойдут без переделок.
Второй вариант - перенос Unix на микро-БЭСМ. Собственно так и предполагалось в конце 80-х. В этом случае пультовый процессор не особо нужен. В хардвере надо добавить пару периферийных устройств: UART для консоли и SD карточку в качестве диска. Тегами можно пожертвовать. Получится вполне элегантная система.
no subject
Date: 2016-12-14 03:11 (UTC)А вот что делать с компилятором для unix'а непонятно... Все примеры заточены под современные процессоры где 2-3-х адресная система команд.
no subject
Date: 2016-12-14 05:18 (UTC)Ну, во-первых сохранился компилятор PCC для Эльбруса-Б. Не самый современный вариант, но сам себя и ядро Юникса он в то время компилировал. Можно его допилить небольшими усилиями.
Среди современных процессоров тоже существуют "странные" архитектуры, особенно в мире DSP, и тем не менее компиляторы справляются.