awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
microsoft avatar

microsoft/BASIC-M6502Archived

0
View on GitHub↗
4,490 stars·507 forks·Assembly·MIT·11 views

BASIC M6502

BASIC-M6502 is a BASIC language implementation for 8-bit microprocessors. It provides an execution environment that allows programs written in a high-level, English-like language to run on 6502 hardware, featuring support for mathematical functions and floating-point arithmetic.

The project is designed for cross-platform hardware porting, using conditional compilation and macros to adapt a single codebase across different retrocomputing systems. It utilizes hardware abstraction layers to manage character-based input and output routines.

The system includes embedded memory management with dynamic allocation and mark-and-sweep garbage collection for strings and variables. It also provides primitives for string and array manipulation and employs software emulation for floating-point operations.

Features

  • 6502 Hardware Programming - Provides a high-level language environment to write and execute programs on 6502 microprocessor hardware.
  • Conditional Compilation Directives - Uses preprocessor directives to include or exclude code blocks based on the target hardware platform configuration.
  • Hardware Porting - Adapts a single codebase to run on various 6502-based computer systems through conditional compilation and macros.
  • Dynamic Memory Allocation - Allocates storage for variables and performs garbage collection on strings to maintain efficient memory utilization.
  • Embedded Memory Management - Handles dynamic memory allocation and garbage collection for strings and variables within low-resource embedded environments.
  • BASIC Language Implementations - Implements a functional BASIC interpreter supporting mathematical functions and floating-point arithmetic on 8-bit systems.
  • Bytecode Interpreters - Implements a bytecode interpreter to reduce memory footprint and increase execution speed on 8-bit hardware.
  • Single Codebase Targets - Maintains a single codebase that can be adapted for different 6502-based computer systems through conditional compilation.
  • BASIC Runtimes - Runs programs written in an English-like BASIC language, including support for floating-point math on 8-bit microprocessors.
  • Floating Point Emulators - Implements complex mathematical operations and decimal arithmetic via software routines for processors lacking native FPU hardware.
  • Retrocomputing - Provides a development environment for building and running legacy-style software on early home computers and 8-bit hardware.
  • Hardware I/O Abstractions - Abstracts character input and output through interchangeable subroutines tailored to specific hardware communication ports.
  • Dynamic Memory Allocation - Implements mechanisms for allocating and reallocating memory dynamically and performing real-time garbage collection in constrained systems.
  • Pure Computation I/O Abstractions - Provides abstraction layers that separate the BASIC interpreter's computation from hardware-specific character I/O routines.
  • Macro-Based Generation - Generates hardware-specific machine code by expanding high-level macros into optimized assembly instructions.
  • Mark-and-Sweep Garbage Collectors - Reclaims memory by identifying unreachable string objects and consolidating fragmented free space using a mark-and-sweep algorithm.
  • Low-Level Machine Code Optimizations - Produces efficient assembly code tailored for specific hardware platforms using a macro system and conditional compilation.

Star history

Star history chart for microsoft/basic-m6502Star history chart for microsoft/basic-m6502

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to BASIC M6502

Similar open-source projects, ranked by how many features they share with BASIC M6502.
  • carp-lang/carpcarp-lang avatar

    carp-lang/Carp

    5,815View on GitHub↗

    Carp is a statically typed Lisp compiler that compiles Lisp-like syntax directly to C source code, enabling seamless integration with existing C libraries and low-level system programming. It manages memory deterministically at compile time using ownership tracking and linear types, eliminating garbage collection pauses and runtime overhead while ensuring type safety through an inferred static type system. The language distinguishes itself through compile-time macro expansion and metaprogramming capabilities, allowing code generation and transformation before final binary output. It enforces

    Haskellfunctionalfunctional-programminggame-development
    View on GitHub↗5,815
  • bellard/mquickjsbellard avatar

    bellard/mquickjs

    5,539View on GitHub↗

    mQuickjs is a compact JavaScript engine designed for memory-constrained devices, such as microcontrollers, requiring as little as 10 KB of RAM and 100 KB of ROM. It achieves this through a fixed-buffer memory allocation scheme that avoids system heap usage, a compacting tracing garbage collector that eliminates fragmentation, and a ROM-embedded standard library that reduces both memory footprint and startup time. The engine compiles JavaScript source into portable bytecode that can be stored in persistent memory and executed without reparsing, and it emulates IEEE 754 floating-point arithmetic

    C
    View on GitHub↗5,539
  • bblanchon/arduinojsonbblanchon avatar

    bblanchon/ArduinoJson

    7,176View on GitHub↗

    ArduinoJson is a C++ library for parsing and manipulating JSON data and MessagePack binary streams on microcontrollers with limited memory and processing power. It provides the core primitives necessary for embedded data serialization and parsing, enabling devices to exchange structured data over serial or network interfaces. The library is distinguished by its focus on microcontroller memory management, employing strategies such as pool-based allocation, string deduplication, and non-owning string views to minimize RAM usage. It further optimizes for constrained environments by allowing cons

    C++arduinoarduino-libraryc-plus-plus
    View on GitHub↗7,176
  • didi/mpxdidi avatar

    didi/mpx

    3,905View on GitHub↗

    MPX is a cross-platform framework designed to build applications for multiple mini-program ecosystems and the web from a single codebase. It utilizes a static transpilation pipeline to transform source code into platform-specific bundles, employing a single-file component system that encapsulates templates, logic, and styles. The framework provides a reactive state management system that automatically synchronizes application data with the user interface through computed properties and watchers. The project distinguishes itself through a robust build-time toolchain that supports sub-package p

    JavaScript
    View on GitHub↗3,905
See all 30 alternatives to BASIC M6502→

Frequently asked questions

What does microsoft/basic-m6502 do?

BASIC-M6502 is a BASIC language implementation for 8-bit microprocessors. It provides an execution environment that allows programs written in a high-level, English-like language to run on 6502 hardware, featuring support for mathematical functions and floating-point arithmetic.

What are the main features of microsoft/basic-m6502?

The main features of microsoft/basic-m6502 are: 6502 Hardware Programming, Conditional Compilation Directives, Hardware Porting, Dynamic Memory Allocation, Embedded Memory Management, BASIC Language Implementations, Bytecode Interpreters, Single Codebase Targets.

What are some open-source alternatives to microsoft/basic-m6502?

Open-source alternatives to microsoft/basic-m6502 include: carp-lang/carp — Carp is a statically typed Lisp compiler that compiles Lisp-like syntax directly to C source code, enabling seamless… freertos/freertos-kernel — FreeRTOS-Kernel is a real-time operating system kernel for microcontrollers. It provides a multitasking environment… bblanchon/arduinojson — ArduinoJson is a C++ library for parsing and manipulating JSON data and MessagePack binary streams on microcontrollers… bellard/mquickjs — mQuickjs is a compact JavaScript engine designed for memory-constrained devices, such as microcontrollers, requiring… didi/mpx — MPX is a cross-platform framework designed to build applications for multiple mini-program ecosystems and the web from… jrowberg/i2cdevlib — i2cdevlib is a collection of peripheral drivers and hardware abstraction layers designed for I2C devices. It provides…