MBASIC Interpreter Documentation¶
Documentation for the MBASIC 5.21 interpreter implementation.
Getting Started¶
- Getting Started Guide - Installation, first steps, and quick start
- Features - Complete list of interpreter capabilities
- Compatibility Guide - MBASIC 5.21 compatibility and differences
Implementation Details¶
- Architecture - Interpreter design, compiler backend, and optimizations
- String Allocation and Garbage Collection - How CP/M MBASIC managed string memory
For Developers¶
Looking to understand or modify the MBASIC interpreter?
- Design Documents:
docs/dev/- Implementation notes and design decisions - Project Rules:
.claude/CLAUDE.md- Development guidelines - Installation Guide:
docs/dev/INSTALLATION_FOR_DEVELOPERS.md- Developer setup
Quick Links¶
By Topic¶
Installation & Setup - Getting Started → Installation instructions - Compatibility → What works, what doesn't
Using MBASIC - Features → What you can do - UI Guides → How to use the interface
Language Reference - Statements → BASIC-80 statements - Functions → Built-in functions - Operators → Arithmetic, logical, relational
Advanced Topics - Architecture → How it works - File I/O → Working with files - Error Handling → ON ERROR GOTO/RESUME
About This Implementation¶
This is a complete Python implementation of MBASIC-80 (MBASIC) version 5.21 for CP/M.
Key Features: - 100% MBASIC 5.21 language compatibility - Choice of user interfaces (CLI, Curses, Tkinter) - Advanced semantic analyzer with 18 optimizations - Cross-platform (Linux, macOS, Windows) - Zero dependencies for core functionality
Version Information: - Target compatibility: MBASIC 5.21 for CP/M - Implementation language: Python 3.8+ - License: See project repository
Documentation Structure¶
This documentation is organized in three tiers:
- 📗 MBASIC Implementation (this section)
- How to install and use the interpreter
- What features are supported
-
Compatibility information
-
📕 BASIC-80 Language Reference (Language Docs)
- Language syntax and semantics
- Statements and functions
-
Common to all MBASIC interpreters
-
📘 UI-Specific Guides
- Interface-specific help
- Keyboard shortcuts
- UI features and workflows
Contributing¶
This is an open-source project. For contributing:
- Report issues on GitHub
- Follow coding guidelines in .claude/CLAUDE.md
- See developer documentation in docs/dev/
See Also¶
- BASIC-80 Language Reference - The BASIC language itself
- Curses UI Guide - Full-screen terminal interface
- CLI Guide - Classic command-line interface
- Tk GUI Guide - Graphical interface