Code Monkey home page Code Monkey logo

ukncbtl's Introduction

ukncbtl

UKNCBTL — UKNC Back to Life! emulator, Win32 version.

License: LGPL v3 Build status CodeFactor

GitHub all releases

На русском / In Russian

UKNCBTL — UKNC Back to Life! — это эмулятор компьютера Электроника МС-0511 (УКНЦ). УКНЦ это советский домашний/учебный компьютер, построенный на двух процессорах КМ1801ВМ2, совместимых по системе команд с Электроника-60, ДВК и др.

Текущее состояние эмулятора: в разработке. Большая часть программного обеспечения запускается и работает.

Эмулируются:

  • Центральный и периферийный процессоры
  • Оба контроллера памяти
  • Видеоконтроллер
  • Контроллер гибких дисков (стандарт MZ)
  • Картриджи ПЗУ (24 КБ на картридж)
  • Звук
  • Контроллер жёсткого диска IDE (два варианта)
  • Работа с кассетным магнитофоном — эмулируется через работу с WAV PCM файлами
  • Последовательный порт (Стык С2) — экспериментально
  • Параллельный порт — через запись вывода в файл, для просмотра результата можно использовать утилиту ESCParser

Пока что НЕ эмулируются: сетевая карта, RAM-диски, джойстики.

Огромное спасибо всем тем, кто внёс свой вклад в создание и развитие эмулятора, особенно:

  • Феликс Лазарев — проделал огромную работу на начальном этапе развития эмулятора
  • Алексей Кислый (Alex_K) — оказал неоценимую помощь во всех вопросах, касающихся деталей работы УКНЦ

In English

UKNCBTL is cross-platform UKNC emulator for Windows/Linux/Mac OS X. UKNC (УКНЦ, Электроника МС-0511) is soviet school computer based on two PDP-11 compatible processors KM1801VM2.

Current status: under development. Most of software works fine.

Emulated:

  • CPU and PPU
  • Both memory controllers
  • Video controller
  • FDD controller (MZ standard, 400K/800K .dsk/.trd files)
  • ROM cartridges (24K .bin files)
  • Sound
  • Hard disk (IDE, .img files) — can read/write and boot
  • Tape cassette — read/write WAV PCM files
  • Serial port (experimental)
  • Parallel port — just dump output to file, use ESCParser to visualize the result

NOT emulated yet: network card, RAM disks, joysticks.


The UKNCBTL project consists of:

ukncbtl's People

Contributors

ilynxy avatar nzeemin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ukncbtl's Issues

Covox на порту принтера ПП

Реализовать Covox на порту принтера УКНЦ.

  1. Команда включения в меню. При включении выключает запись данных из порта принтера в файл.
  2. Когда включено -- меняет состояние битов на порту.
  3. В обработке звука учитывать этот флаг и использовать биты, выданные на порт.

Floppy: после смены дорожки головка не должна сбрасываться на 0

https://zx-pk.ru/threads/31397-portirovanie-igry-quot-krakout-quot-na-uknts.html?p=1050830&viewfull=1#post1050830
Alex_K:

Единственно после перехода на другую дорожку виртуальная головка оказывается в самом её начале. На реальном УКНЦ с дисководом 3,5" у меня команда проверки дискеты DIR/FIL/BAD проходит за 50 с лишним секунд, а в эмуляторе UKNCBTL за 1 мин 10-15 сек.

УКНЦ, отключение RОM ПП и эмуляция

https://zx-pk.ru/threads/31349-uknts-otklyuchenie-rom-pp-i-emulyatsiya.html

BlaireCas:

Как-известно там можно в периферийном процессоре отключить банки ПЗУ с адресов 100000-160000 и поставить туда ОЗУ которое обычно используется под план 0 видеопамяти (чтобы не использовать регистры, а так мол в план 0 записывать).
С настоящей УКНЦ началась какая-то проблема. Она упорно не хочет считывать переключенное ОЗУ, а считывает из ПЗУ ПП. Но записать туда можно.
Делается командой в ПП
mov #161, @#177054 ; 001 110 001 (all RAM banks of plane 0)
Переключаем ПЗУ и дальше работаем вроде как с ОЗУ. И тут-то вылезла проблема у моего возможно УКНЦ. Он пишет в видеопамять по этим адресам. Команды типа MOV нормально работают. Но вот если команда использует считывание оттуда - она читает с другого места. С ПЗУ отключенного. Например BIC у меня на реальной машине показывает совсем не то что ожидалось.
Можно попросить владельцев УКНС запустить диск? Набрать там RU TEST2. Программа делает следующее: устанавливает таблицу строк 0..287 на адреса 100000...155000 линейно и в четырех частях делает операции: 1 часть - просто MOV, вторая BIS #1, (R5)+, третья COM (R5)+, четвертая MOV (R5), (R5)+.

Alex_K:

BlaireCas, как выше написал MM, отключать можно только ПЗУ в диапазоне 0100000-0117777. Но подключать ОЗУ можно в диапазоне 0100000-0176777. Так как ПЗУ не реагирует на запись, то в подключенное ОЗУ можно спокойно писать командами CLR и MOV, но не CLRB и не MOVB. У процессора 1801ВМ2 есть одна особенность - для полнословных команд MOV и CLR в dst делается только цикл записи, а для байтовых цикл чтение-модификация-запись. При чтении читаться будут одновременно ПЗУ и ОЗУ, но ПЗУ значительно быстрее, и вероятнее всего что вы получите её содержимое, возможно также с наложением по ИЛИ содержимого буферного регистра контроллера ОЗУ в текущий момент. С окном 0100000-0117777 могут быть проблемы, если в разъёмы ВУ воткнуты контроллер винчестера или электронный диск, т.к. эти контроллеры активизируются при снятии сигнала CE0 и выборе нужного уровня сигнала CE3 (в зависимости от слота). Ну и в диапазоне 0177000-0177777 всегда страница ввода-вывода.

Do not lock diskette image file.

Образ дискеты после монтирования в эмулятор блокируется на запись.
Это несколько неудобно при отлатдке - необходимо переходить в эмулятор чтобы размонтировать образ и после модификации образа вновь смонтироват его.

Очень хочется например чтобы скрипт собирающий мой проект мог бы записать перекомпилированные файлы в образ без необходимости предварительного размонтирования.

мысль по лог

Так как Debug Step идет отдельно (DebugTicks()) от Debug StepOver, Run, Breakpoints, но лог самых инструкций только по Debug Step, то будущим полокениям для отладки пригодился бы лог в файл всех пройденных инструкций, IRQ, с регистрами, портами, после. Типа команда On/Off. Можно и обойтись, конечно, но StepOver на CALL xxx заходит "на долго" и выходит после с множеством изменений. Причем ведь IRQ это как тайная программа вообще внутри. Легче, когда точно знаешь где что должно происходить внутри, и с портами точно. Но есть .sln, можно и так. Помню BkEmu был очень удобный Debug, именно понять БК мелочи, хоть в Lua можно все творить. Идея и только, стандарт единственный однако. Тоесть не для УКНЦ кода, а для художника в 2050 году.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.