Skip to content

Commit 9a734e0

Browse files
committed
Update readme and repl
1 parent 909a92b commit 9a734e0

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77

88
`matrix65` is a CLI tool, for communicating with the [MEGA65](https://mega65.org/)
99
8-bit retro computer using a serial connection.
10-
It has a mix of features from `m65`, `mega65ftp`, and `M65connect` and is written entirely in **Rust**.
10+
It has a mix of features from `m65`, `mega65_ftp`, and `M65connect` and is written entirely in **Rust**.
11+
Here is a short [demonstration video](https://www.youtube.com/watch?v=dUvXLtUUC-Y).
1112

1213
_Disclaimer: This tool is still under development; use it at your own risk._
1314

@@ -62,7 +63,10 @@ your involvement is very welcome.
6263
- [x] Send sequence of key-presses
6364
- [x] Reset MEGA65
6465
- [x] Peek into memory; hexdump, binary file dump
66+
- [x] Poke into memory; single value or from file
6567
- [x] Logging with e.g. `export RUST_LOG=info`
68+
- [x] REPL command interface (experimental)
69+
- [ ] Disassembly
6670
- [ ] Transfer and mount disk images
6771
- [ ] Load at arbitrary address and optionally start with `SYS`
6872
- [ ] Memory dumps in YAML format

src/repl.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use crate::commands;
2+
use crate::serial;
23
use reedline_repl_rs::clap::{ArgMatches, Command};
34
use reedline_repl_rs::{Repl, Result};
45
use serialport::SerialPort;
@@ -17,6 +18,7 @@ pub fn start_repl(port: &mut Box<dyn SerialPort>) -> Result<()> {
1718
.with_description(env!("CARGO_PKG_DESCRIPTION"))
1819
.with_banner("Welcome to matrix65!")
1920
.with_command(Command::new("reset").about("Reset MEGA65"), reset)
21+
.with_command(Command::new("go64").about("Go to C64 mode"), go64)
2022
.with_command(
2123
Command::new("filehost").about("Start the filehost"),
2224
filehost,
@@ -34,6 +36,16 @@ fn reset(_args: ArgMatches, context: &mut Context) -> Result<Option<String>> {
3436
}
3537
}
3638

39+
/// Wrap go64 command
40+
fn go64(_args: ArgMatches, context: &mut Context) -> Result<Option<String>> {
41+
match serial::go64(context.port) {
42+
Err(err) => Err(reedline_repl_rs::Error::IllegalDefaultError(
43+
err.to_string(),
44+
)),
45+
Ok(()) => Ok(None),
46+
}
47+
}
48+
3749
/// Wrap filehost command
3850
fn filehost(_args: ArgMatches, context: &mut Context) -> Result<Option<String>> {
3951
match commands::filehost(context.port) {

0 commit comments

Comments
 (0)