![[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-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, и тем не менее компиляторы справляются.