Skip to main content

ASMX - A macro assembler and virtual machine platform running on Scratch

Project description

ASMX

ASMX is a development platform, comprised of a modular assembler, and a VM which runs on Scratch. It allows you to write simple programs in a custom assembly-like language, and then execute them in an educational and visual environment. ASMX is perfect for people who want to learn how computers work with low-level programming, people looking to contribute to a project for the first time, or people who want to create interesting projects whilst still using Scratch.


Features

  • ⚙️ Macro-based Assembler - Powerful macro system with modular namespaces and grammar extensions
  • 🧱 Scratch VM - The virtual machine is implemented in Scratch, making it visual, easy to experiment with, and beginner-friendly
  • 📦 Package System - Create and load your own macro packages, allowing you to extend the instruction set
  • 🕹️ Demo Projects Included - Demo projects like Rock Paper Scissors are included to help you learn and experiment
  • 💡 Made For Learning - Built with simplicity and education in mind, perfect for exploring how computers work

Getting Started

🧰 Requirements

  • Python 3.8 or above
  • A local clone/copy of this repo

🚀 Quick Start

To download ASMX, run:

pip install asmx

Congrats, you just installed ASMX! Open up the guide, by running:

asmx --docs

Then click on the Guide section.

Project Structure

asmx/
├── asmx_core/           # Core Python package (assembler logic, macro dispatcher, parser, etc.)
│   ├── macros.py
│   ├── parser.py
│   └── packages/        # User-defined + Standard library packages
├── docs/                # Documentation for ASMX
├── asmx.py              # Entry point, run this file
README.md
setup.py
setup.cfg
...

Documentation

Documentation is built with MkDocs. To open the documentation, run:

asmx --docs

If you are looking to contribute to the documentation, go to the asmx-docs repo.

Contributing

All contributions are welcome! You could:

  • Fix bugs
  • Write documentation
  • Create new packages
  • Submit new demo programs or games
  • Help add new features
  • Simplify code
  • Write tests
  • Expand the VM's capabilities

If you're interested, just open an issue or pull request. Make sure your code is clean and commented where necessary.

License

This project is licensed under the MIT License. See the LICENSE file for details.

⚠️ Important Note

The ASMX project is still in early development - expect changes and bugs!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asmx-0.1.2.tar.gz (3.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asmx-0.1.2-py3-none-any.whl (3.0 MB view details)

Uploaded Python 3

File details

Details for the file asmx-0.1.2.tar.gz.

File metadata

  • Download URL: asmx-0.1.2.tar.gz
  • Upload date:
  • Size: 3.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for asmx-0.1.2.tar.gz
Algorithm Hash digest
SHA256 1c5e1ec5d7b2b6e6cc85c75c40d4911b247f84ec55f9cde6a38998bff2ffcb1d
MD5 aa0f12181eb73cfe37ffcc6796816384
BLAKE2b-256 00e5fb73fd8c10e03e8fb1278636212e969c247f43f72a61a6392ba14ea34722

See more details on using hashes here.

Provenance

The following attestation bundles were made for asmx-0.1.2.tar.gz:

Publisher: pypi-publish.yml on cousdev/asmx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file asmx-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: asmx-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for asmx-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dd38cd628aba3bbd37d15d0c69ee1dea1bee2b54f55e0937b20bcaa1d167531f
MD5 5868c3afb59c518c96aeb889867c14dc
BLAKE2b-256 fb7d7661bc84ac7223f1b7f09e299544a7a93f4d9ea308ba7534998e8bb9ca65

See more details on using hashes here.

Provenance

The following attestation bundles were made for asmx-0.1.2-py3-none-any.whl:

Publisher: pypi-publish.yml on cousdev/asmx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page