File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change 77
88` matrix65 ` is a CLI tool, for communicating with the [ MEGA65] ( https://mega65.org/ )
998-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
Original file line number Diff line number Diff line change 11use crate :: commands;
2+ use crate :: serial;
23use reedline_repl_rs:: clap:: { ArgMatches , Command } ;
34use reedline_repl_rs:: { Repl , Result } ;
45use 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
3850fn filehost ( _args : ArgMatches , context : & mut Context ) -> Result < Option < String > > {
3951 match commands:: filehost ( context. port ) {
You can’t perform that action at this time.
0 commit comments