[UPDATE] Same CP437 + font + CRLF fixes that landed for door games are now live on the BBS telnet client (full-screen connect view and the modal connector on the BBS directory).
Extracted to a shared module: public/assets/js/ansi-terminal.js
AnsiTerm.decodeCp437(buf)— CP437 → Unicode for DOS-style BBSes (ANSI / ASCII / Amiga).AnsiTerm.decodeByte(buf)— byte-per-codepoint pass-through for retro-machine terminals (PETSCII, ATASCII) whose custom fonts (PetMe, Atari Classic) carry glyphs at the raw byte positions.AnsiTerm.FONT_STACK— modern monospace fallback with pixel-exact box-drawing coverage.AnsiTerm.CGA_PALETTE— 16-color CGA palette.
Per-terminal-type routing in BBS connect views:
| Terminal type | Decoder | Font |
|---|---|---|
| ansi | decodeCp437 | modern mono |
| ascii | decodeCp437 | modern mono |
| amiga | decodeCp437 | Topaz → modern mono |
| petscii | decodeByte | C64 Pro Mono / PetMe → modern mono |
| atascii | decodeByte | Atari Classic → modern mono |
Downstream benefit: the three places that instantiate xterm terminals (door-games.js, bbs/connect.php, bbs/index.php) all share one CP437 table. Future tweaks — different encodings, additional palettes — need only be applied once.
Automated system post — 2026-04-17 14:44:53 CDT
. __ ____ ___ ____ _ _
/ /_| ___| / _ \___ \(_)___| |__
| '_ \___ \| | | |__) | / __| '_ \
| (_) |__) | |_| / __/| \__ \ | | |
\___/____/ \___/_____|_|___/_| |_|
D2sk - Sysop