matrix65 0.1.0

Matrix Mode Serial Communicator for MEGA65
matrix65-0.1.0 is not a library.
Visit the last successful build: matrix65-0.2.0

Matrix Mode Serial Communicator for MEGA65

matrix65 is a CLI tool, for communicating with the MEGA65 8-bit retro computer using a serial connection. It has a mix of features from m65, mega65ftp, and M65connect and is written entirely in Rust. Disclaimer: This tool is still under development; use it at your own risk.

Getting Started

Installing

The easiest way to get started is to install Rust, followed by:

cargo install matrix65

Using

# transfer prg file and run it (url allowed)
matrix65 --port /dev/myserial prg plasma.prg --run

# text-user-interface (TUI) for the FileHost
matrix65 --port /dev/myserial filehost 

# look for and select PRG file inside disk image (url allowed)
matrix65 --port /dev/myserial prg commando.d81 --run --reset

# type something on the mega65
matrix65 --port /dev/myserial type "dir\n"

# hexdump 16 bytes, starting at $C000
matrix65 --port /dev/myserial peek -@ 0xc000 -n 16

Features and current status

As of writing, the list of functionality is inferior to m65, but expect more features over time. Should you be interested in testing or try some Rust programming, your involvement is very welcome.

  • World-class memory safety thanks to Rust
  • Cross platform serial device detection
  • Fancy CLI interface with subcommands
  • Online Filehost access with TUI (experimental)
  • Send and run PRG files
    • Go C64/C65 dependent on detected load address
    • Extract PRG from CBM disk images (.d81)
    • Regular files and URL's are allowed
  • Send sequence of key-presses
  • Reset MEGA65
  • Peek into memory; hexdump, binary file dump
  • Logging with e.g. export RUST_LOG=info
  • Transfer and mount disk images
  • Load at arbitrary address and optionally start with SYS
  • Memory dumps in YAML format
  • Bitstream transfer
  • Transfer to SD card

Motivation

  1. I wanted to learn more about Rust and the MEGA65 hardware
  2. A Text User Inferface (TUI) for the FileHost has an inherent retro-feel
  3. Rust
    • is safe and free of undefined behavior
    • compiles to lean, efficient binaries, similar to C
    • has lot's of useful crates, e.g. for supporting CBM disk images
    • has Cargo which makes dependency handling easy-peasy
  4. In my opinion, a higher level language is more suitable than C for tasks like HTTP requests, JSON parsing, and TUI handling.

Resources