Files

61 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ДЛМ — «Детская логическая машина» в браузере
Эмулятор советской программируемой игрушки «Детская логическая машина» (ВНИИ «Электронстандарт», Гатчина)
и оцифрованное руководство к ней 1987 года.
**Попробовать:** https://www.lexium.ru/dlm/
**Статья на Хабре:** [«Компьютер из пластмассы и пружинок: оцифровал руководство к „Детской логической машине“ 1987 года и нашёл в нём ошибки»](https://habr.com/ru/articles/1101092/) — история машины, как устроена оцифровка и разбор двух ошибок руководства.
В машине нет ни транзистора, ни реле, ни микросхемы: три планки со штеккерами, пружинные контакты,
перемычки, четыре лампочки и батарейки. Говоря современным языком, это программируемая логическая
матрица: три входа, семь столбцов «И», четыре выхода «ИЛИ».
## Что здесь есть
| Файл | Что это |
|---|---|
| `index.html` | эмулятор: одна страница, без библиотек и сборки |
| `cards/` | карточки к игре 8 «Зоологические карточки» |
| `DLM_rukovodstvo_1987.pdf` | руководство: сканы всех страниц, набранный текст и расшифровка рисунков программ |
| `check.mjs` | проверка всех программ эмулятора по правилам игр из руководства |
| `post.md`, `BACKLOG.md` | черновик статьи и идеи на будущее |
В эмуляторе:
- пульт, на котором можно ставить штеккеры и перемычки, крутить переключатели и держать кнопку;
- вид изнутри: как едет планка, какой контакт замыкается и где течёт ток (механизм реконструирован
по руководству и по памяти владельца);
- таблица ответов на все восемь входов и разбор столбцов в логические выражения;
- все 11 игр из руководства и логические элементы из статьи
[«Криптография и другие вычисления на детских логических машинах»](https://habr.com/ru/articles/807187/);
- кубик, спички, фишки и карточки «на столе» для игр, где они нужны;
- сохранение своих программ в браузере.
## Проверка
```
node check.mjs
```
Скрипт моделирует машину независимо от кода страницы и сверяет каждую программу с правилами игры из текста
руководства: на всех восьми входах, а игры 4, 7 и 8 — полным перебором партий и раскладок.
Две найденные ошибки самого руководства (игры 4 и 8) скрипт выводит отдельно; остальное должно совпасть.
Нужен Node.js 18 или новее.
## Запуск локально
Откройте `index.html` в браузере. Сервер не нужен.
## Источники
- Руководство — экземпляр автора, проданный вместе с машиной № 005957 23 февраля 1988 года.
- Карточки вырезаны с фотографии полного набора, найденной в объявлении о продаже.
## Лицензия
Код (`index.html`, `check.mjs`) — [MIT](LICENSE). На руководство 1987 года и картинки карточек лицензия
не распространяется.
Основной репозиторий: https://git.08h.ru/alex/dlm, здесь зеркало.