ATARI MUTINEERBBS

Documentation

Linux Developers Guide

Reference material for Atari Mutineer BBS sysops, door authors, and runtime maintainers.

Linux Developers Guide

This guide describes a Linux host setup for developing Atari Mutineer and MMS, building ATR images, launching Altirra under Wine, and testing through the host telnet path.

For command-level references, see Build And Packaging, Altirra 850 Modem, Tools Reference, and Testing And Evidence.

Workspace

The repository is organized around these paths:

Generated files are disposable. Edit BASIC in source/text/, text assets in source/textfiles/, MMS assembler in mms/src/, and build configuration in source/config/.

Host Requirements

Install the normal build and test dependencies:

sudo apt install make python3 python3-pexpect wine xvfb telnet

The workspace also expects these Atari-oriented tools and assets:

Check the critical tools before building:

command -v mads
make franny
command -v wine
command -v xvfb-run
command -v telnet

Building

Common targets:

make mutineer-basic
make mms-com-hatabs
make mutineer-atr
make mutineer-atr-16mb-manual
make door-arena-atr
make mutineer-atr-inspect-current

make mutineer-atr increments the patch number in VERSION, tokenizes BASIC, assembles MMS with HATABS enabled, and writes a versioned ATR under source/atr/.

make mutineer-atr-16mb-manual builds a large manual-start ATR. It loads RHND850.COM and MMS.COM, writes STARUP, and does not auto-run the BBS.

make door-arena-atr builds a separate door package from source/doorgames/ARENA/ under source/atr/doors/.

Running Altirra

Launch the current ATR with:

make altirra-850-run

The launcher writes an Altirra profile under results/altirra-850/, copies it to tools/altirra/4.40/Altirra.ini, mounts the current ATR, mounts the SDX cartridge, and configures the emulated 850 modem listener. The default caller port is 6507.

Useful environment variables:

Manual caller connection:

telnet 127.0.0.1 6507

Automated Tests

Build and static checks:

make mutineer-basic
make mms-com-hatabs
make mms-abi-check
make mutineer-atr-inspect-current

Runtime tests:

make mms-hatabs-probe-api
make mms-hatabs-probe-mixed
make mms-hatabs-probe-input
make mutineer-telnet-test
make mutineer-xmodem-test
make mutineer-regression-test
make acceptance
make acceptance-hatabs

Important result paths:

Docs checks:

make docs-audit

This verifies required Markdown pages, local links, documented Make targets, and documented tool references.

Cleaning Stale Processes

If a test hangs or the modem port stays busy, stop Wine and Altirra before trying again:

pkill -f Altirra || true
pkill -f wineserver || true
wineserver -k || true

Then confirm the port is clear:

ss -ltnp | grep 6507 || true

Troubleshooting

Development Notes

Packaged runtime modules live under D1:>CORE> without .BAS extensions. Core data lives under D1:>DATA>, text assets under D1:>ASCII> and D1:>ATASCII>, and default message bases under D1:>MAIL>.

MMS HATABS is the default packaged communication layer. The D: and P: HATABS wrappers are guarded build options and should not be described as production behavior unless their probes and acceptance tests pass.

Use Troubleshooting for current operational failure symptoms and Runtime Architecture for module-switching and MMS handoff behavior.