3.7 KiB
SERMO-BBS
A telnet server that drops every caller into a simulated Margittai machine
from the Neumatronic universe.
It runs a dual-architecture power-on, loads SERMO — „a Szó", the Word —
and leaves you at a green-phosphor > prompt.
SERMO is the canonical OS of the dual machine: a single prompt with two destinations. A literal, exact command goes to the digital side (the first, von Neumann architecture) and is served by built-in commands; anything typed in natural language is treated as a question and routed over the ADI-76 bus to the Lapis-ACP (the second, analog-cognitive architecture) — SERMO's conversational core. Black screen, green letters, one blinking line: exactly as the canon describes it.
Built on the rubbs gem, using its
configurable BBS::FakeOS character-mode OS simulator.
Running
Directly (Ruby 3.x):
bundle install
ruby sermo.rb
Docker Compose:
docker compose up --build # exposes telnet on host port 2324
Connect:
telnet localhost 2323 # or 2324 with docker compose
Configuration
| Variable | Default | Description |
|---|---|---|
BBS_PORT |
2323 |
TCP port to listen on |
BBS_IDLE |
900 |
Idle seconds before disconnect |
Layout
sermo.rb entry point — config, flow, BBS.start
lib/sermo/sermo_os.rb the SERMO profile (BBS::FakeOS.define): dual-architecture
boot, the digital-side command table, and the on_unknown →
ACP hook (natural language over the ADI-76 bus)
lib/sermo/oracle.rb the Lapis-ACP conversational core (canned replies for now)
Talking to SERMO / wiring an LLM
At the > prompt the digital side answers literal commands: VER,
DATUM, IDO, MOND, MEM, KAT, ADI, VOX, CLS and KILEP (English
aliases like DATE, TIME, ECHO, DIR, EXIT still work; SUGO/HELP/?
lists them). Type anything else and it crosses the ADI-76 bus to the
Lapis-ACP via Sermo::Oracle.answer, which currently returns canned,
in-character replies (its voice follows the canon — ExistentialAI and
Nokia-punk: a doubting, intimate machine, because there is no other interface).
To make SERMO actually think, replace the body of Sermo::Oracle.answer
(lib/sermo/oracle.rb) with a call to your model and return its text — that
method is the only integration point.
Adding more operating systems
A simulated OS is pure configuration: a BBS::FakeOS.define { … } block with a
prompt, colors, a boot sequence, a command table and an on_unknown
fallback. To add another character-mode OS from the universe (an earlier
Sermo line, a DOS/NT operator terminal, a ProDOS X session…), drop a
new file in lib/sermo/ and point the flow at it in sermo.rb. No changes to
the rubbs engine are needed.
Lore references
- Alternative History — Neumann's dual architecture; Sermo („a Szó"), Vox, the ADI-76 bus, the roots of terminal/BBS culture.
- Reference Tables — system software (Sermo, Solus), Lapis/Sonus hardware, ADI-76.
- ExistentialAI & Nokia-punk — the ACP's voice and the screen's mood.