По традиции считается, что на этой странице размещена всякая информация о ещё не совсем покойном популярном советском и слегка постсоветском бытовом микрокомпьютере БК-0010, известном и за пределами хСССР. БК-0011, при всех своих преимуществах перед БК-0010, всё же не был так же широко распространён, и лично у меня его не было. (УКНЦ - вообще отдельная песня.)
Здесь лежат образы различных прошивок контроллеров FDD и FDD/HDD, как широко известные, так и не очень.
Копия рабочего каталога эмулятора БК-0010/11М для UNIX/Linux находится в стадии приведения в божеский вид. Помощь приветствуется. В версии от 2005.08.26 сделана первая попытка перенести звук под SDL. Качество звука несколько ухудшилось, но зато код компилируется и работает под CygWin. Работающим только под Линуксом пока предлагаю брать предыдущую версию.
Для компиляции нового эмулятора нужно установить не только библиотеки SDL, но и среду разработки (SDL-devel).
Целью является не полировка эмуляции игр
(также см. некоторые образы дисков
с демонстрационными программами и играми),
а реализация стека TCP/IP и запуск HTTP-сервера:
в идеале - на реальной машине, подключенной к компьютеру, доступному извне,
в идеале - по телеграфному каналу (это требует минимума работы с паяльником: RS-232 удовлетворяется сигналами с TTL-уровнями, а входные диоды телеграфного канала не портятся от сигналов от RS-232),не столь интересно - на эмуляторе, с той же градацией предпочтительности способа "подключения".
чуть хуже - по параллельному порту (для переключения направления передачи данных потребуются некоторые логические элементы),
ещё чуть хуже - с помощью блока ИРПС (который, строго говоря, не входит в комплект поставки БК-0010(-01), а только в комплект поставки БК-0010Ш), переделанного из токовой петли в RS-232 или ТТЛ-уровни;
Стоит, наверное, заметить, что, в отличие от остальных программ, позволяющих запускать программы для БК-0010, мой эмулятор не пользуется практически никакой информацией о системном мониторе - не перехватывает никакие адреса или EMT, а все команды процессора исполняются как положено (разве что при чтении с "магнитофона" запрошенный файл всегда оказывается первым), и поэтому является именно эмулятором, а не симулятором, как остальные.
В соответствии с этим принципом я хочу реализовать дисковый контроллер путём прямой эмуляции, а не перехватом команд, так что любая программа, обращающаяся к портам напрямую, будет работать. (Ноябрь 2006: уже почти.)
2005, 25 июня:Эмулятор почти работает под Windows XP/Cygwin.
2004, 17 ноября:Реализован AY-3-8910.
2003, 24 октября:Исправлена ошибка, связанная с байтовым обращением к регистру страниц.
2003, 8 октября:Размер образа дискеты определяется динамически.
2003, 6 октября:Введена возможность задания некоторых параметров конфигурации в файле ~/.bkrc.
2003, 2 октября:Чересстрочная развёртка и переключение буферов и палитр на ходу в принципе работают, но точное соответствие интервала времени после таймера и номера отображающейся в этот момент телевизионной строки пока не найдено.
2003, 29 сентября: Первая реализация имитации чересстрочной развёртки.
2003, 28 сентября: Таймер и палитры появились, но быстрое переключение палитр пока не работает.
2003, 25 сентября: Выложена первая версия эмулятора с поддержкой рудиментарного режима БК-0011 (пока без таймера и без палитр)
2003, 14 сентября: Под давлением общественности и для ускорения работы эмулятора я принял решение поступиться этим принципом и начал реализацию поддержки работы с диском путём перехвата команд в дисковом биосе. Работа с магнитофоном тоже будет ускорена таким же способом.
Для продолжения работы над эмулятором, переносом TCP/IP, и просто так разыскиваются:
Если у Вас есть что прислать мне, пожалуйста, напишите мне(не забыв удалить q и x). Спасибо.
На этой странице не будет описания системы команд БК-0010 (LSI-11), потому что оно доступно на многих других страницах. Здесь будут находиться описания специфических для БК-0010 или редкоиспользуемых деталей системы.
Одна из таких редкоиспользуемых деталей - команда MARK.
Другая - нетривиальное использование команды JSR в качестве сопрограммного перехода.
А вот одна специфическая для БК-0010 деталь системы (в данном случае не системы команд, а системы программирования): реализация датчиков случайных чисел в Фокале и вильнюсском бейсике. В Фокале достаточно написать программу, аналогичную бейсиковской
10 CLS
20 FOR I=0 TO 1000
30 PSET (RND(1)*512, RND(1)*240)
40 NEXT
чтобы увидеть регулярные волнистые линии.
В бейсике же эта программа ставит точки с виду совершенно хаотически.
Но запустите такую программу:
10 CLS
20 FOR I%=0% TO 32766%
30 PSET (RND(1)*256%, RND(1)*240%), RND(1)*3%+1%
40 NEXT
и насладитесь узором ,
возникающим из-за того, что выбранный алгоритм
на самом деле - случайный процесс второго порядка (каждое число
зависит только от двух предыдущих).