Tip
English version: README-EN.md
KR580 – современный настольный эмулятор системы на КР580 / Intel 8080. Внутри – детерминированное ядро CPU, типизированные внешние устройства через I/O-порты и нативный многооконный интерфейс.
Проект сделан для наблюдаемого выполнения программ: можно редактировать ОЗУ и регистры, идти по командам или тактам, видеть живое обновление панелей управления, открывать окна внешних устройств, сохранять снимки и экспортировать состояние без чтения данных из UI-виджетов.
Note
Возможности KR580:
- Детерминированное состояние КР580 / Intel 8080: регистры, флаги,
PC,SP, 64 КиБ ОЗУ, прерывания,HLT, счётчики циклов и тактовая фаза. - Выполнение документированных 8080-опкодов с тестами семейств команд, флагов, условных переходов, стека, прерываний и маршрутизации I/O.
- Пошаговое выполнение по команде, выполнение по такту, регулируемый запуск и быстрый burst-режим.
- Нативный iced-интерфейс: список ОЗУ, редактор регистров, регистр состояния, схема машинных циклов, панель управления и локализованный установщик.
- Окна внешних устройств: монитор, дисковод, жёсткий диск, сетевой адаптер и принтер.
- Версионированные
.580-снимки, загрузка сырых.krs-подпрограмм, прямой импорт/экспорт.txt/.xlsxи нативная системная печать с параметрами драйвера. - Графический установщик, деинсталлятор, терминальный launcher, опциональные ассоциации
.580и.krsи 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, буфер вывода и асинхронная системная печать. |
Операции устройств возвращают типизированные статусы и ошибки. 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 / .krs напрямую через Nix store. Standalone-установщик для этого сценария не используется.
git clone https://github.com/WhoSowSee/KR580.git
cd KR580
cargo run -p kr580cargo build --release -p kr580 --bin k580 --bin krГотовые бинарники появятся в target/release/ как k580 / kr или k580.exe / kr.exe.
Windows:
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/build_installer.ps1Unix/macOS:
bash scripts/build_installer.shГотовый установщик будет записан в dist/.
# Запуск эмулятора из исходников
cargo run -p kr580
# Открыть snapshot или подпрограмму через launcher
cargo run -p kr580 --bin kr -- path/to/program.580
# Показать справку launcher
cargo run -p kr580 --bin kr -- --helpПосле установки kr может открывать .580-снимки и .krs-подпрограммы из терминала и регистрировать или удалять их ассоциации там, где это поддерживает платформа.
| Формат | Назначение |
|---|---|
.580 |
Версионированный little-endian snapshot эмулятора с magic K580. |
.krs |
Сырые байты подпрограммы, загружаемые по указанному базовому адресу. |
.txt |
Текстовый экспорт регистров, флагов и памяти; также поддерживается импорт. |
.xlsx |
Импорт/экспорт workbook через rust_xlsxwriter и calamine. |
| 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