Tip
English version: README-EN.md
KR580 — современный настольный эмулятор системы на КР580 / Intel 8080. Внутри — детерминированное ядро CPU, типизированные внешние устройства через I/O-порты и нативный многооконный интерфейс.
Проект сделан для наблюдаемого выполнения программ: можно редактировать ОЗУ и регистры, идти по командам или тактам, видеть живое обновление панелей управления, открывать окна внешних устройств, сохранять снимки и экспортировать состояние без чтения данных из UI-виджетов.
- Детерминированное состояние КР580 / Intel 8080: регистры, флаги,
PC,SP, 64 КиБ ОЗУ, прерывания,HLT, счётчики циклов и тактовая фаза. - Выполнение документированных 8080-опкодов с тестами семейств команд, флагов, условных переходов, стека, прерываний и маршрутизации I/O.
- Пошаговое выполнение по команде, выполнение по такту, регулируемый запуск и быстрый burst-режим.
- Нативный iced-интерфейс: список ОЗУ, редактор регистров, регистр состояния, схема машинных циклов, панель управления и локализованный установщик.
- Окна внешних устройств: монитор, дисковод, жёсткий диск, сетевой адаптер и принтер.
- Версионированные
.580-снимки, загрузка сырых.krs-подпрограмм, прямой импорт/экспорт.txt/.xlsxи генерация PDF из буфера принтера. - Графический установщик, деинсталлятор, терминальный launcher, опциональная ассоциация
.580и portable/system-режимы установки.
Монитор · Дисковод
Жёсткий диск · Сетевой адаптер
Принтер
IoBus направляет младший байт адреса I/O-порта в пять моделируемых устройств:
| Порт | Устройство | Что делает |
|---|---|---|
00h |
Монитор | Текстовый framebuffer 64×20 и графический слой 256×256. |
01h |
Дисковод | Файловое или debug-buffer хранилище с окном просмотра. |
02h |
HDD | Append-backed hdd.kpd и отдельный просмотр принятого буфера. |
03h |
Сетевой адаптер | TCP client/server worker, RX/TX-счётчики и явное состояние соединения. |
04h |
Принтер | CP866 spool, буфер вывода и асинхронный экспорт A4 PDF. |
Операции устройств возвращают типизированные статусы и ошибки. CPU обращается к ним только через IN / OUT, поэтому состояние эмулятора остаётся сериализуемым и тестируемым.
- Rust
1.95.0или новее. - Desktop-окружение, способное запускать нативные iced-окна.
cargo install kr580Этот вариант рассчитан на опубликованный релиз в crates.io. Пока пакет не опубликован, используй сборку из исходников или standalone-установщик.
nix run github:WhoSowSee/KR580
nix profile install github:WhoSowSee/KR580NixOS-пакет ставит готовые k580 и kr, desktop entry, иконки и MIME-тип .580 напрямую через Nix store. Standalone-установщик для этого сценария не используется.
git clone https://github.com/WhoSowSee/KR580.git
cd KR580
cargo run -p kr580 --bin k580cargo build --release -p kr580 --bin k580Готовое приложение появится в target/release/ как k580 или k580.exe.
Windows:
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/build_installer.ps1Unix/macOS:
bash scripts/build_installer.shГотовый установщик будет записан в dist/.
# Запуск эмулятора из исходников
cargo run -p kr580 --bin k580
# Открыть snapshot через launcher
cargo run -p kr580 --bin kr -- path/to/program.580
# Показать справку launcher
cargo run -p kr580 --bin kr -- --helpПосле установки kr может открывать .580-снимки из терминала и регистрировать или удалять ассоциацию файлов там, где это поддерживает платформа.
| Формат | Назначение |
|---|---|
.580 |
Версионированный little-endian snapshot эмулятора с magic K580. |
.krs |
Сырые байты подпрограммы, загружаемые по указанному базовому адресу. |
.txt |
Текстовый экспорт регистров, флагов и памяти; также поддерживается импорт. |
.xlsx |
Импорт/экспорт workbook через rust_xlsxwriter и calamine. |
.pdf |
Вывод принтера в A4 с CP866-декодированием и встроенным Roboto Mono. |
| Crate | Ответственность |
|---|---|
k580-core |
Публичное ядро CPU: state, opcode decode/execute, timing, interrupts и PortBus. |
kr580 |
Публичный installable crate: desktop UI, launcher, installer, uninstaller, platform shims и внутренние modules backend, devices, persistence. |
cargo fmt --all
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspaceПолезные документы:
- Архитектура
- Ядро CPU
- Устройства и IoBus
- Сохранение данных
- Приложение и UI
- Установщик
- Тестирование
- Ассеты
© 2026-present WhoSowSee