Программы для советских компьютеров
Если Вы — энтузиаст ретро-компьютеров, то мотивационную речь можете смело пропустить и перейти к следующему разделу.
Однако, есть кое-что более важное.
При создании “Good Apple” нам пришлось работать с реальным железом, так как мы использовали возможности компьютера, которые эмуляторы воспроизводят не совсем корректно. Прежде всего, хотелось добиться одинаково устойчивой работы с жёсткими дисками формата IDE и с их современными заменителями в виде Compact Flash.
Именно на этом проекте мой 13-летний сын обрёл бесценный опыт промышленной разработки. Дефектное железо. Хорошее железо, которое ведёт себя не так, как описано в документации. Документация, которая составлена с ошибками. Отсутствие документации по ряду вопросов. Написание собственных тестов для выявления проблем с железом. Выходящие сроки. Тестирование на разных машинах и конфигурациях. Написание собственного кросс-ассемблера (когда стало понятно, что существующие решения тормозят процесс разработки). И, наконец, после короткого празднования успеха — обязательный выпуск финальной версии, исправляющей ряд багов.
На первый взгляд кажется, что подобный опыт можно было получить и с каким-нибудь современным Arduino. По факту же, нам пришлось погрузиться в самые дебри схемотехники. Мы вычисляли число тактов, за которое исполняются инструкции. В разных типах памяти это время отличается. Контроллер памяти и процессор работают на разных частотах, поэтому одинаковые команды могут выполняться разное время даже в памяти одного типа. Длительность исполнения подпрограммы не равна сумме длительностей команд этой подпрограммы. Нам пришлось писать собственные инструменты для тестирования и оптимизации кода на реальном железе.
Закончилось тем, что сын изучал схемотехнику БК 0011 (какие фронты сигналов куда приходят, когда срабатывает RPLY и т.д. — я в этом уже ничего не понимаю). Так он пришёл к идее сделать собственный эмулятор БК, совместимый с реальным железом с точностью до такта, и даже написал ядро… Впрочем, это уже другая история.
Итого, за месяц — от изучения ассемблера до создания собственных средств разработки, от хардварных тестов до готового мультимедийного произведения. Всё это было бы невозможно без главного: Планирование. Пожалуй, наиболее ценный вынесенный урок. Берёшь невозможную задачу. Понимаешь, что столкнёшься с непреодолимыми сложностями. Планируешь. Делаешь. Результат поражает всех настолько, что даже знатоки обвиняют в читерстве (“вы разогнали процессор!”).
Почему не ZX Spectrum?
Опять начну со странного: с финансов. Судя по объявлениям на Avito, в среднем БК 0010 стоит в несколько раз дороже, чем ZX Spectrum. Понятно, что за редкий экземпляр родного Спектрума в идеальном состоянии запросят круглую сумму. Но БК 0011м в полной комплектации всё равно выйдет дороже. Если вообще удастся найти. Цены говорят сами за себя: коллекционная значимость БК 0010 выше. А БК 0011м – и подавно. Иметь такой компьютер дома очень приятно.
Третий довод: для ZX Spectrum написано множество демок. Для БК 0010 — меньше полусотни, считая мелкие 256-байтные и 4-килобайтные. Место на демосцене почти свободно, есть где себя проявить даже начинающему!
И последнее соображение, чисто субъективное. Я наблюдаю за российской демосценой с 1994-го года. Тусовка спектрумистов представляется мне, к сожалению, более токсичной и враждебной. Конечно, есть и прекрасные дружелюбные люди! Испытываю огромное уважение к ним и к их творчеству. Но в целом – вероятно из-за своей массовости – спектрумовская сцена наполнилась конфликтами, выяснением отношений и даже интригами типа name-voting (когда на конкурсах голосуют только за “своих”). В то время как на маленькой БК-шной сцене не ставят вопросов типа “кто круче” и рады каждому новому участнику. Повторю: это моё сугубо личное впечатление, которое вы можете проигнорировать.
Реальное железо
Прошло 20 лет, прежде чем я вернулся к написанию программ для БК. За эти 20 лет многое изменилось. Лично для меня главный сдвиг произошёл в сознании: “Think Different”. Именно этот слоган помещён в заключительные титры нашей демки “Good Apple”.
Раньше мы по 5 минут грузили игры с магнитофона. Затем появились контроллеры дисководов. За ними – жёсткие диски. Потом новодельные реплики контроллеров с Compact Flash на борту. Теперь на ретро-сцене принято эмулировать дисководы флешками… Но постойте, в 2019-ом году у нас есть высококачественный портативный источник звука – iPhone. Так давайте возьмём стандартный аудио-шнур DIN-5 — mini jack (даже перепаивать не придётся) и будем грузить БК с iPhone на высокой скорости.
Я прошёлся трассировкой по ПЗУ, выявил как можно слегка перехитрить алгоритм загрузки с магнитофона и заставить БК читать данные в 4 раза быстрее.
Следующим этапом стало написание микро-загрузчика, который считывал данные в специально разработанном турбо-формате. И загрузчик, и данные помещались друг за другом в единый WAV-файл (конвертер написал Ленар Закиров). БК 0010 считывает и автоматически запускает микро-загрузчик, а тот, в свою очередь, читает остаток данных из файла. Частоты в турбо-формате доходят до 22 КГц, поэтому требования к качеству источника звука высоки. iPhone справляется. Хороший музыкальный плеер тем более. Звуковая карта компьютера тоже.
Затем настала очередь кросс-ассемблера. В него были добавлены опции сохранения программы в WAV (как в стандартном, так и в турбо-формате). Более того, кросс-ассемблер умеет сразу проигрывать WAV через звуковую карту. Только представьте, насколько ускорилась разработка! Не нужно возиться с записью образа диска на CF-карту после каждой компиляции. Просто вносишь изменения в код, нажимаешь “Build”, звук льётся в БК и через несколько секунд программа уже запущена на реальном железе. Для приёма звука в стандартном формате достаточно нажать на БК 0011 клавиши L (Load) и Enter (загружать первую встреченную программу). Для передачи звука в турбо-формате нужно предварительно запустить микро-загрузчик (у меня он автоматически запускается с жёсткого диска при включении БК; в любой момент можно выйти в систему, нажав клавишу СТОП).
Подключить БК к телевизору проще всего в монохромном режиме, в обычный композитный AV-вход. Нужно спаять кабель с “тюльпаном” на одном конце и DIN-5 на другом. Монохромный сигнал выходит с 4-го контакта DIN-5 разъёма БК, обозначенного “ТВ”. Земле традиционно соответствует 2-ой контакт DIN-5.
Лично я поклонник монохромных ЭЛТ дисплеев – они обеспчивают чёткость изображения, недостижимую на цветных мониторах с их апертурной решёткой. Но большинство игр и все демки предпочтительней смотреть в цвете. Для этого используют “ТВЦ” выход БК и подключение к телевизору через RGB SCART. Контакты 3, 4, 5 на DIN-5 – соответственно красный, синий, зелёный. Контакт 1 – синхронизация. Контакт 2 – земля. В случае подключения к ЖК-телевизору полезно подать +5 вольт на 16-ый контакт SCART (через резистор 200 Ом или около того). 5 вольт обычно берут с соседнего разъёма “ТВ” (контакт 1).
Можно воспользоваться конвертером SCART-HDMI. Сразу предупрежу, что БК выводит изображение с частотой не 50 кадров в секунду, а 48.83, поэтому вместо плавного скроллинга на ЖК-мониторах будет заметно периодическое подёргивание. Я решил эту проблему заменой 12-мегагерцового кварцевого резонатора БК на 12.288 МГц. Впрочем, подёргивание было заметно только в некоторых демках. Большинство программ на БК не использует синхронизацию с кадровой частотой.
Почему не довольствоваться эмулятором, для чего вообще может понадобиться реальный компьютер? Я обнаружил четыре вещи, которые плохо эмулируются:
- Поведение динамика на высоких частотах.
- Синхронизация изображения и палитр с ходом луча.
- Точное время исполнения команд (важно для музыки через Covox).
- Работа с жёсткими дисками IDE на высоких скоростях.
Эмуляция
На MacOS я использую эмулятор BK2010. Он не очень точный, но для большинства задач подходит.
Самый продвинутый на сегодняшний день эмулятор GID работает под Windows. Он также запускается в CrossOver под MacOS и в Wine под Linux. В эмуляторе хороший отладчик, просмотрщик страниц памяти и тому подобное.
Для записи образов дисков на Compact Flash пользуюсь мультиплатформенной утилитой Etcher. Но чаще передаю данные по звуковому каналу.
Средства разработки
Ребята из демогруппы Excess Team подсказали кросс-ассемблер Алексея Морозова. Сперва мы пользовались им, но вскоре Ivanq написал свой собственный – мультиплатформенный, на Python. Он работает медленней, зато гораздо богаче функционально. Тут и поддержка многофайловых проектов, и сложные арифметические выражения, типы данных double word, интеграция с Sublime Text и расширенная поддержка ошибок компиляции, сохранение результата в формате звукового файла, компиляция не только под БК, но и под УКНЦ, и многое другое. Обо всём этом можно почитать в официальной документации.
Кросс-ассемблер называется PDPy11.
Некоторые из ветеранов жалуются, что в PDPy11 не хватает макросов классического DEC’овского макро-ассемблера (Macro-11). Макро-ассемблер – это в некотором смысле другой язык. Он, вероятно, хорош для написания системных программ, но серьёзные игры и демки для БК писали, насколько я знаю, на обычном классическом ассемблере. Иронично: для исходников БК-шных программ принято использовать расширение фала .mac (от “макро”) даже в тех ассемблерах, которые не поддерживают макросы. В любом случае, возможностей PDPy11 хватает для написания программ любого уровня сложности.
Отладчик встроен в эмулятор GID. Он позволяет задать адреса точек останова, в любой момент прерывать или продолжать исполнение программы, смотреть содержимое регистров и памяти, выполнять программу пошагово, изменять содержимое памяти и т.д.
Для конвертации графики в формат БК мы написали онлайн-конвертер. Разрешение БК – 256x256 точек в цветном режиме или 512x256 в монохромном. Картинки большего размера лучше не подавать на вход конвертеру.
Документация
Прекрасное пособие по программированию на ассемблере написал Юрий Зальцман. Об отличиях БК 0011м от БК 0010 написано здесь. Существовала ещё модель БК 0011 (без “м”), но её быстро сняли с производства, признав неудачной.
Несмотря на то, что БК 0011м обладает большими возможностями (цветовые палитры, дополнительные страницы памяти), поначалу я советую программировать под БК 0010 — эта модель проще и понятней. Любая программа, корректно написанная для БК 0010, запустится и на БК 0011м.
Устройство процессора и набор инструкций хорошо описаны в Wikipedia.
Hello, world!
Чтобы поставить точку на экране, нужно записать какое-нибудь число в область экранной памяти. Аргументы в DEC’овском ассемблере записываются слева направо: источник, затем приёмник Например:
Косвенная адресация (R1) использует регистр R1 как указатель адреса. Память в БК адресуется побайтно, но инструкция CLR очищает сразу два соседних байта: сначала 40000 и 40001, на следующем шаге цикла 40002 и 40003, и так далее. Запись (R1)+ означает, что после использования аргумента нужно его увеличить. В данном случае на 2, потому что команда обрабатывает 2 байта. Счётчиком цикла может быть любой регистр. SOB вычитает единицу из регистра и переходит на метку 1. Локальные метки обозначаются цифрами и двоеточием, их область видимости между двумя глобальными метками. Глобальные метки должны начинаться с буквы и также заканчиваться двоеточием.
Инструкцию CLR можно заставить работать с байтами, дописав букву “B”. Тогда CLRB (R1)+ будет увеличивать регистр R1 уже не на 2, а на 1.
Можно сделать то же самое короче. Очищаем экран снизу вверх при помощи индексного метода адресации:
Если нужна высокая скорость, то лучше очищать память не побайтно, а сразу словами. Получится вдвое быстрее. Но можно ускориться сверх того: по какой-то причине команда CLR работает медленней, чем MOV. Поэтому:
Теперь, выбрав один из четырёх способов очистки экрана, можно уже ставить точки. В цветном режиме каждой точке соответствуют два бита. В монохромном — один бит. Программного переключения режимов экрана у БК нет. К какому выходу подключил монитор, такое изображение и получил.
Для наглядности запишем цвета точек в двоичной системе счисления:
Цвета в каждой паре битов кодируются так: если установлен только чётный бит — зелёная точка, только нечётный бит — синяя, установлены оба бита — красная, сброшены оба бита — чёрная. Ну а монохромный монитор показывает каждый бит как отдельную точку.
Команда MOVB записывает в экранную память сразу 4 точки, а команда MOV — 8 точек. Если вы не хотите затрагивать соседние точки, используйте команду BIC (Bit Clear) и BIS (Bit Set), например:
Интересный момент: в тексте мы записываем младшие биты правее старших. А на экране наоборот: точки, соответствующие младшим битам, появляются левее.
Вот, собственно, и всё об устройстве экранной памяти БК 0010.
А что же на счёт вывода текста?
Покажите исходники!
Легче всего будет начать, посмотрев исходники готовых демок:
Когда приступать?
Прямо сейчас. Через 4 недели в Казани состоится демопати CAFe 2019. В программе фестиваля есть конкурс БК 0010 — 512 байт. В такой размер уместится от 85 до 256 инструкций – идеально для начинающих. Двух недель вам хватит на то, чтобы разобраться с инструментарием и написать первую простенькую демку. После этого ещё останется неделя-полторы на написание второй, более серьёзной работы.
Дерзайте, вы можете! Телеграм-чат, форум на zx-pk — везде вам помогут. присылайте работы на конкурс, а лучше ещё и приезжайте сами. Scene is alive!
В этой статье я собрал обобщающую информацию по некоторым программным эмуляторам советских компьютерных систем - начиная от больших ЭВМ типа БЭСМ-6 и заканчивая микропроцессорными электронными играми.
Скриншот эмулятора калькулятора - записной книжки "Электроника МК-87"
Эмуляция - это воспроизведение работы одного устройства на другом, зачастую полностью не совместимому с ним.
Сейчас сложилась терминология, отличающая термины "эмуляция" от "симуляция". В симуляции происходит приблизительное воспроизведение работы одного устройства на другом. Например, есть популярная в СССР игра "Ну, погоди!". Программист, игравший в игру, может написать симулятор на современном железе, и почти точно её воспроизвести. Однако, он может либо не учесть каких-то особенностей, либо немного изменить геймплей по своему усмотрению. В эмуляции же используется точное воспроизведение оригинала. Это обеспечивается за счёт использования оригинальной прошивки с программным обеспечением и эмуляции работы оригинального процессора. В этом случае игра происходит точно так же, как и в оригинале, потому что программист не вносит каких-то субъективных артефактов.
Сами же прошивки добываются различными способами. Для каких-то можно просто взять микросхему ПЗУ, заботливо установленную производителем на панельку, считать её на программаторе и потом написать эмулятор. Для других извлечение прошивки - это отдельный увлекательный квест, порой очень сложный. Например, для эмуляции микрокалькулятора "Электроника МК-61" пришлось вскрывать микросхему, добираться до кристалла и через микроскоп считывать прошивку.
Фрагмент прошивки микросхемы К145ИК1301
Написание эмуляторов наверно можно отнести к отдельному виду компьютерного искусства. Если с простыми устройствам, например, с x86 или 8080 совместимым процессором всё ясно, то для того же калькулятора архитектура бывает порой настолько загадочной, что не помогают описания в литературе, где она описывается. Да и в создании одного эмулятора может понадобиться помощь не одного человека. Например, коллекционер где-то раздобудет редкий экспонат. Но коллекционер может не быть электронщиком. Электронщик знает как извлечь прошивку, но может не знать, как сделать эмулятор. И наконец, программист делает сам эмулятор. Но чаще эмуляторы делают в одном лице - и коллекционер, и электронщик, и программист - один потрясающе крутой человек.
Итак, на верхней картинке вы видели скриншот калькулятора - записной книжки "Электроника МК 87". Сами машинки довольно редки - их было выпущено что-то около 7000 штук, и все раздарены депутатам очередного съезда КПСС. Для их производства была закуплена в Японии целая линия по штамповке таких корпусов.
Эмулятор этой машинки написан Piotr Piatek. Его очень известный сайт. Сам эмулятор доступен по ссылке. Прошивка для Электроники МК 87 была написана Подоровым А.Н. - тем же программистом, который писал прошивку для Электроники МК 85. Известен факт, что фамилию разработчика можно в МК 85 вывести командой WHO. И только месяц назад мы узнали, что в МК 87 тоже заложена фича, которая выводит эту фамилию. Вы можете это проверить в эмуляторе.
Скриншот эмулятора калькулятора "Электроника МК 85"
Кроме эмулятора для МК 87, Piotr Piatek так же написал эмуляторы для "Электроники МК 85" и "Электроники МК 90".
"Электроника МК-85" - наш ответ Casio с его Casio fx-700P. Ответ на задачу разработчикам "сделать такой же". В итоге наши сделали как бы симулятор fx-700P, повторив внешний вид и принцип работы японского прототипа. Но в то же время, своё железо с 16-битным процессором и оригинальной прошивкой (добавив туда кириллицу и другие прикольные фичи) - сделали сами.
Эмулятор "Электроники МК 85" доступен там.
Скриншот эмулятора микро ЭВМ "Электроника МК 90"
Эмулятор "Электроники МК 90" доступен там.
Три описанных выше машинки работают на микропроцессорах с системой команд, аналогичной системе команд DEC PDP-11.
У калькулятора "Электроника МК-90" было продолжение - "Электроника МК-98". Их было выпущено совсем мало - порядка десяти штук - эту модель не успели довести до серийного изготовления. Зато недавно появился и её эмулятор, и можно посмотреть примерно как она работала. В отличие от МК-90, в МК-98 стоял отечественный микропроцессор, совместимый с Intel 80С86.
Скриншот эмулятора "Электроника МК-98"
Продолжая эмуляторы наших систем нельзя не упомянуть про эмулятор калькуляторов семейства "Электроника МК-61".
Скриншот окна эмулятора калькулятора "Электроника МК 61"
Наверно самый сложный эмулятор, которые я встречал. Сделан благодаря Феликсу Лазареву - он смог извлечь и прошивку из скана кристалла, и понять как работает процессор, и написать основу эмулятора.
Примерно узнать, как работает его процессор, архитектура которого в его предшественнике "Электроника Б3-09" заработала аж в 1973-м году, вы можете в моей статье на Хабре.
В начале статьи я написал об эмуляторе БЭСМ-6. Советский суперкомпьютер 1960-х годов, в своё время конкурировавший с американскими и европейскими компьютерами, ближе всего с CDC 1604 или Atlas. Их архитектурные решения имели общие детали, но БЭСМ-6 не является близкой копией ни того, ни другого.
Эмулятору БЭСМ-6 посвящен целый сайт.
Игры типа "Ну, погоди!" нельзя назвать отечественной микропроцессорной системой из-за того, что внутри неё стоит прошивка от Nintendo. Сейчас пока нет сведений, получена ли технология выпуска этих игр по лицензии от самой Nintendo (как например, в своё время закупили завод по производству калькуляторов у General Instrument или в Японии линию по производству Электроники МК-87) или сами справились.
Кроме эмулятора семейства "Ну, погоди!" есть даже отладчик.
Скриншот отладчика игр типа "Ну, погоди!"
То ли калькулятор, то ли компьютер "Электроника Д3-28" тоже обзавёлся эмулятором (имитатором, как его называют авторы). Он вышел от Wang 700, но доработан нашими разработчиками до такой степени, что на нём стало возможно запускать интерпретатор языка Бейсик, чем активно и пользовались.
Как же без эмуляторов семейства ДВК?
Эмулятор компьютера "Электроника МС0511" УКНЦ, очень популярного школьного компьютера.
Компьютер "Электроника МС0515" очень нечастый компьютер, и тем интереснее для него посмотреть эмулятор.
Компьютер "Немига" разрабатывался в Белоруссии тоже для школ, и тоже есть для него эмулятор.
Шахматный компьютер "Интеллект 02" сделан на базе процессора КР580ВМ80А (аналог Intel 8080A). Прошивка для игр - шахматы, калах и гран находились в ПЗУ, оформленных в виде картриджей.
И ещё один эмулятор шахматных компьютеров - включает "Электроника ИМ-01", "Электроника ИМ-01Т" и "Электроника ИМ-05". Они выпущены на базе платформы "Электроника С5-41" объединением "Светлана" с использованием микропроцессоров К1801ВМ1 и К1801ВМ2, такими же как в семействе ДВК.
Эмуляторов на самом деле много. Нет возможности все запустить и все описать. Вот несколько ссылок, пройдя по которым вы можете узнать и о других эмуляторах:
Возможно есть и другие источники с эмуляторами типа MESS, MAME и других.
Коллекционирование компьютеров - увлекательное занятие. Хотелось бы конечно, всем показать компьютеры не только в виде сайта. Но хорошо, что есть эмуляторы, и можно "погонять" эти компьютеры в виртуале.
Если у вас есть информация о каком-нибудь интересном эмуляторе, напишите в комментарии. Также можно обсудить их в ретрочате.
В этой статье я собрал обобщающую информацию по некоторым программным эмуляторам советских компьютерных систем - начиная от больших ЭВМ типа БЭСМ-6 и заканчивая микропроцессорными электронными играми.
Скриншот эмулятора калькулятора - записной книжки "Электроника МК-87"
Эмуляция - это воспроизведение работы одного устройства на другом, зачастую полностью не совместимому с ним.
Сейчас сложилась терминология, отличающая термины "эмуляция" от "симуляция". В симуляции происходит приблизительное воспроизведение работы одного устройства на другом. Например, есть популярная в СССР игра "Ну, Погоди!". Программист, игравший в игру, может написать симулятор на современном железе, и почти точно её воспроизвести. Однако, он может либо не учесть каких-то особенностей, либо немного изменить геймплей по своему усмотрению. В эмуляции же используется точное воспроизведение оригинала. Это обеспечивается за счёт использования оригинальной прошивки с программным обеспечением и эмуляции работы оригинального процессора. В этом случае игра происходит точно так же, как и в оригинале, потому что программист не вносит каких-то субъективных артефактов.
Сами же прошивки добываются различными способами. Для каких-то можно просто взять микросхему ПЗУ, заботливо установленную производителем на панельку, считать её на программаторе и потом написать эмулятор. Для других извлечение прошивки - это отдельный увлекательный квест, порой очень сложный. Например, для эмуляции микрокалькулятора "Электроника МК-61" пришлось вскрывать микросхему, добираться до кристалла и через микроскоп считывать прошивку.
Фрагмент прошивки микросхемы К145ИК1301
Написание эмуляторов наверно можно отнести к отдельному виду компьютерного искусства. Если с простыми устройствам, например, с x86 или 8080 совместимым процессором всё ясно, то для того же калькулятора архитектура бывает порой настолько загадочной, что не помогают описания в литературе, где она описывается. Да и в создании одного эмулятора может понадобиться помощь не одного человека. Например, коллекционер где-то раздобудет редкий экспонат. Но коллекционер может не быть электронщиком. Электронщик знает как извлечь прошивку, но может не знать, как сделать эмулятор. И наконец, программист делает сам эмулятор. Но чаще эмуляторы делают в одном лице - и коллекционер, и электронщик, и программист - один потрясающе крутой человек.
Скриншот эмулятора калькулятора "Электроника МК 85"
Кроме эмулятора для МК 87, Piotr Piatek так же написал эмуляторы для "Электроники МК 85" и "Электроники МК 90".
Скриншот эмулятора микро ЭВМ "Электроника МК 90"
Три описанных выше машинки работают на микропроцессорах с системой команд, аналогичной системе команд DEC PDP-11.
У калькулятора "Электроника МК-90" было продолжение - "Электроника МК-98". Их было выпущено совсем мало - порядка десяти штук - эту модель не успели довести до серийного изготовления. Зато недавно появился и её эмулятор, и можно посмотреть примерно как она работала. В отличие от МК-90, в МК-98 стоял отечественный микропроцессор, совместимый с Intel 80С86.
Скриншот эмулятора "Электроника МК-98"
Продолжая эмуляторы наших систем нельзя не упомянуть про эмулятор калькуляторов семейства "Электроника МК-61".
Скриншот окна эмулятора калькулятора "Электроника МК 61"
Наверно самый сложный эмулятор, которые я встречал. Сделан благодаря Феликсу Лазареву - он смог извлечь и прошивку из скана кристалла, и понять как работает процессор, и написать основу эмулятора.
В начале статьи я написал об эмуляторе БЭСМ-6. Советский суперкомпьютер 1960-х годов, в своё время конкурировавший с американскими и европейскими компьютерами, ближе всего с CDC 1604 или Atlas. Их архитектурные решения имели общие детали, но БЭСМ-6 не является близкой копией ни того, ни другого.
Кроме эмулятора семейства "Ну, погоди!" есть даже отладчик.
Скриншот отладчика игр типа "Ну, погоди!"
То ли калькулятор, то ли компьютер "Электроника Д3-28" тоже обзавёлся эмулятором (имитатором, как его называют авторы). Он вышел от Wang 700, но доработан нашими разработчиками до такой степени, что на нём стало возможно запускать интерпретатор языка Бейсик, чем активно и пользовались.
Как же без эмуляторов семейства ДВК?
Эмулятор компьютера "Электроника МС0511" УКНЦ, очень популярного школьного компьютера.
Компьютер "Электроника МС0515" очень нечастый компьютер, и тем интереснее для него посмотреть эмулятор.
Шахматный компьютер "Интеллект 02" сделан на базе процессора КР580ВМ80А (аналог Intel 8080A). Прошивка для игр - шахматы, калах и гран находились в ПЗУ, оформленных в виде картриджей.
Эмуляторов на самом деле много. Нет возможности все запустить и все описать. Вот несколько ссылок, пройдя по которым вы можете узнать и о других эмуляторах:
Возможно есть и другие источники с эмуляторами типа MESS, MAME и других.
Коллекционирование компьютеров - увлекательное занятие. Хотелось бы конечно, всем показать компьютеры не только в виде сайта. Но хорошо, что есть эмуляторы, и можно "погонять" эти компьютеры в виртуале.
Несмотря на то, что очень немногие могли позволить себе персональный компьютер, в 80-е годы в СССР активно разрабатывали такие устройства. Было представлено много продуктов, а для вас мы подготовили список из 10 самых крутых.
«Агат» (1984–1993)
Компьютер «Агат» был первым подобным устройством, созданным для широкого распространения и использования в обучении. Его разработали на основе Apple II, выпустив в серийное производство в 1984 году. Интересно, что его производили аж до 1993 года. Жесткий диск «Агата» вмещал до 2 КБ информации, но можно было ставить дополнительные модули памяти. ОЗУ — до 128 КБ в зависимости от поколения компьютера. В комплекте также были два игровых джойстика.
«Корвет» (1987)
«Корвет» разрабатывали для рабочих потребностей: он мог обрабатывать информацию, делать расчеты, составлять архивы данных. Персональный компьютер был одной из передовых разработок СССР и отображал графику на высокой скорости. Разработчики даже утверждали, что этот параметр был лучшим по сравнению с IBM PC. Но из-за большого количества брака, допущенного при производстве, «Корвет» не стал популярным и славился своей ненадежностью.
«Львов ПК-01» (1986–1991)
Созданный во Львовском политехническом институте, «Львов ПК-01» был сделан для организации обучения в школах и институтах. На нем можно было читать книги, выполнять задания или играть. Внешней памятью служил бытовой магнитофон, а если нужно, то к компьютеру можно было подключить принтер ROBOTRON. Существовало несколько модификаций «Львов ПК-01», но все разработки были свернуты после распада СССР. А жаль — последний вариант компьютера даже получил дисплей на 256 цветов, да и вообще, «Львов ПК-01» имел реальный потенциал стать домашним компьютером для каждого.
«Микроша» (1987)
Один из первых ПК, предназначенных, что называется, «для дома, для семьи». Выводить изображение можно было на бытовой телевизор, кассетный магнитофон выполнял роль памяти. Поэтому для пользователей выпускались программы вроде редактора текста, ассемблера, калькулятора, игр — и все на кассетах. Демократичности «Микроше» добавляла и цена: тогда его можно было приобрести за 500 рублей. Конечно, многовато, но уж никак не запредельно.
«БК» (1983–1993)
Серия «Бытовых компьютеров» была создана для дома и учебных заведений. Она даже стала относительно популярной: цена на такое устройство колебалась от 600 до 750 рублей, что было соразмерно стоимости хорошего цветного телевизора. Она превышала среднюю зарплату в три-четыре раза, но семьи могли позволить себе накопить на такой компьютер. «БК» управлялся первой советской полноценной операционной системой DEMOS, которую зачастую в шутку называли UNAS («у нас»), пародируя известную за границей UNIX («у них»).
Robotron 1715 (1984–1989)
Удивительно функциональный компьютер Robotron 1715 производился в ГДР и стал популярным из-за того, что обладал широкими возможностями. Например, текстовый редактор был не просто удобным, но и корректно работал с кириллицей, компиляторы языков программирования — Pascal, например — позволяли создавать сложные программы. А еще было довольно много игр: «Тетрис», «Крестики-нолики», «Шахматы», «Лабиринт», советские аналоги «Змейки» и «Пакмана». Позже программист Александр Гарнышев создал новые игры, в которых сумел использовать звуки принтера как спецэффекты для происходящего.
«Искра 1030» (1989)
Созданный для обучения, компьютер «Искра 1030» существовал в двух модификациях: одна для учителей (с жестким диском) и другая для учеников (без него). Устройство было вполне конкурентоспособным — объем операционной памяти составлял 256 КБ, и его можно было увеличить до 1 МБ.
«Радио-86РК» (1986)
Уникальный в своем роде компьютер предназначался для увлеченных инженерным делом и радио. Его нужно было собрать самому: купить детали, платы и смонтировать все компоненты. Затем записывалась прошивка, а блок питания, клавиатура и корпус изготавливались самостоятельно. В качестве устройства вывода предлагалось использовать телевизор. «Радио-86РК» было очень тяжело собрать, а еще сложнее — отладить. Поэтому большой популярностью он не пользовался.
«Криста» (1986)
Компьютер работал на советском аналоге процессора Intel 8080 и, в общем-то, очень походил на «Микрошу». Было только одно, но заметное отличие: «Кристой» можно было управлять с помощью светового пера, нажимая им на области тач-панели. Кроме того, в комплект входила кассета, на одной стороне которой были игры «Орегонская тропа» и «Королевство Эйфория» (вдобавок к стандартным), а на другой — несколько уроков для изучения языка Бейсик.
«Апогей БК-01» (1988–1991)
Компьютер, который не был выдающимся по своим техническим характеристикам, безусловно выигрывал в одном: он стоил 440 рублей. Пользователи могли играть на нем, писать тексты или хранить информацию. А студенты технических факультетов получили программы для расчетов по высшей математике и статистике.
Архив программ и документации для компьютеров
УК-НЦ, ДВК и БК
Огромная благодарность всем присылающим материалы для архива, разработчикам соответствующих эмуляторов, программистам и просто сочувствующим пользователям архива.
ZX Spectrum игры, программы, книги
ПРОГРАММЫ
Проверено, заклятий нет!
Эмулятор RT-11 для консоли Windows. Основное назначение - использование компилятора MACRO-11 в Windows. Подробнее.
Эмулятор PDP-11 для MS-DOS с поддержкой устройств ДВК, таких как контроллер MY, терминал 15-ИЭ-00-013 и контроллер графического дисплея КГД.
EMU  - универсальный эмулятор, большой перечень отечественных ЭВМ, в том числе ДВК, ДВК2 и БК0010(11М).
EmuStudio УК-НЦ. Эмулятор-гибрид, позволяющий запускать игры для УК-НЦ и ДВК, поддерживается несколько видеорежимов.
ОС UNIX для УК-НЦ  - вариант системы ЮНИКС для УК-НЦ. Ознакомительная сборка включающая эмулятор и авторские инструкции по запуску системы.
ЭМУЛЯТОР ДВК. Очень точный эмулятор (ДВК) на процессорах 1801ВМ1, 1801ВМ2, 1801ВМ3.
RT-11dsk.wcx.- плагин для TotalCommander, позволяет осуществлять файловые операции с образами дискет и разделов ЖД с файловой системой RT11.
Полный набор файлов для запуска DSK-плагина в FAR
RT11DSK консольная утилита Н.Зимина для работы с образами в формате .dsk или .rtd
PDP11 Diagnostic Database. DEC создала диагностические программы для каждого изготовленного ими компонента PDP-11. Большая часть этой диагностики сохранилась собрана на разных веб-сайтах и скрыта в дебрях каталогов. Цель этой базы данных централизовать поиск по всем известным на данный момент интернет-ресурсам.
ТМОС-2 на ДВК и УКНЦ.
XXDP - уникальная операционная система, предназначенная исключительно для запуска тестов.
HX_Server 2.x_UKNC_C2
- новый вариант сервера для загрузки УК-НЦ через стык С2.
HX_Server 2.x_CA_UKNC
- новый вариант сервера для загрузки через доработанный СА УК-НЦ.
Видео с примером загрузки
Драйвер HD с расширенными номерами устройств и поддержкой больших дисков.
Видео загрузки платы ДВК МС1201.02-01 через порт терминала на скорости 57600. Процессор КМ1801ВМ2 8 МГц.
Образы ЖД для UKNCBTL. Инструкции и описания читайте в текстовых файлах.
V57DW.rar - посекторный образ ЖД(RD50) c системой RT-11 v05.07 для эмулятора ДВК.
Утилита SAV2CART для преобразования SAV файлов в формат картриджей для UKNCBTL.
mkdisk - утилита позволяет создать и поддерживает основные типы дисков для PDP-11.
Эмулятор БК001Х Доработанный и улучшенный эмулятор Юрия Калмыкова на основе его исходников.
Эмулятор Калмыкова - по прежнему актуальная версия эмулятора БК0010-01. Скачивайте 3.0 версию с инсталятором.
BKBTL - эмулятор БК от автора UKNCBTL эмулятора УК-НЦ. Авторская тема.
SPC/BK EMULATOR - эмулятор БК различных модификаций.
Коллекция БК-шного софта. - в поддержку эмулятора БК0010(01)-БК0011(М)
Утилита BIN2WAV - переводит BIN файлы в WAV формат(для загрузки на реал). Подробнее.
Утилита DaDither для дизеринга картинок, среди выходных форматов добавлена поддержка PCX для УК-НЦ. Подробнее.
Читайте также: