ultimate64
Rust library for interfacing with Ultimate-64 and Ultimate-II+
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.1%) to scientific vocabulary
Keywords
Repository
Rust library for interfacing with Ultimate-64 and Ultimate-II+
Basic Info
Statistics
- Stars: 22
- Watchers: 5
- Forks: 1
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Ultimate64
Rust library and command line interface for communicating with Ultimate-64 and Ultimate-II+ devices using the REST API. The library is used in the Ultimate Manager GUI application.
Installation
Works with Linux, macOS, Windows.
Either download a pre-compiled binary,
or compile and install using cargo, provided that you have a working
Rust installation:
~~~ bash cargo install ultimate64 ~~~
Usage
~~~ bash
ru64 HOST COMMAND
Where HOST is the IP address or hostname of the Ultimate device on your local network.
Alternatively specify this in the environmental variable ULTIMATE_HOST as
assumed in the following examples.
ULTIMATE_PASSWORD may be used to specify a network password for your Ultimate device.
Examples
~~~ bash ru64 --help # show available commands ru64 info # Show device info (type, core version etc.) ru64 run skateordie.prg # load and run external PRG file ru64 mount desertdream.d64 --run # mount external image and run ru64 play yiearkungfu.sid -n 2 # play SID tune ru64 play enigma.mod # play Amiga MOD tune ru64 load sprites.dat --address 0x2000 # load data to memory ru64 peek 0xA7AE --dasm -n 32 # disassemble memory ru64 poke 0xd020 3 # write single byte ru64 poke 4096 --xor 0b0000_1100 # bitwise manipulation ru64 poke 0x0400 0x20 --fill 1000 # fill memory ru64 type $'print "hello"\n' # Emulate keyboard typing ru64 pause # pause machine ru64 reset # reset machine ru64 screenshot -o screen.png # take screenshot via VIC stream ~~~
Addresses can be hexadecimal (0x1000) or decimal (4096).
Experimental GUI
An experimental, cross-platform GUI is available with cargo run --release --example egui. Requires a Rust installation, see above. Currently only a VIC stream viewer is implemented.
Features
- [x] Compiled, small, and cross platform with no external dependencies
- [x] Mount and run external disk images
- [x] Play SID and MOD files
- [x] Remote screenshots to disk or, if support by terminal, the console
- [x] Emulate keyboard typing w. unicode to PETSCII conversion
- [x] Convenient decimal, hexadecimal, and binary input
- [x] Bitwise operations for memory manipulation
- [x] 6502 disassembly
- [x] Load address detection
- [x] Network password support
- [x] First class memory safety due to Rust
- [x] Modern CLI with subcommands
- [x] Excellent error handling; error messages; and input validation
- [x] Can be used either as a CLI tool or as a library
- [x] Precompiled binaries for Linux and Windows (mac users should use
cargo, see above)
Todo
- [ ] Disk image manipulation
- [ ] Memory bank switching for RAM access
- [ ] Ultimate configuration handling
Owner
- Name: Mikael Lund
- Login: mlund
- Kind: user
- Location: Lund, Sweden
- Company: Lund University
- Website: www.teokem.lu.se/~mikael
- Repositories: 32
- Profile: https://github.com/mlund
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: >-
Ultimate64 - Rust library and CLI for communicating with
Ultimate-64 and Ultimate-II+ devices
message: >-
This software can be cited as below.
type: software
authors:
- given-names: Mikael
family-names: Lund
orcid: 'https://orcid.org/0000-0001-8178-8175'
repository-code: 'https://github.com/mlund/ultimate64'
keywords:
- commodore-64
- rust
- 8-bit
license: Apache-2.0
version: 0.4.0
GitHub Events
Total
- Create event: 3
- Issues event: 2
- Release event: 5
- Watch event: 6
- Delete event: 1
- Member event: 1
- Issue comment event: 3
- Push event: 16
- Pull request event: 1
Last Year
- Create event: 3
- Issues event: 2
- Release event: 5
- Watch event: 6
- Delete event: 1
- Member event: 1
- Issue comment event: 3
- Push event: 16
- Pull request event: 1
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Mikael Lund | M****d@m****m | 56 |
| mlund | m****d@l****t | 18 |
| Andreas Neukoetter | a****s@o****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 5 months ago
Packages
- Total packages: 1
-
Total downloads:
- cargo 4,901 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 7
- Total maintainers: 1
crates.io: ultimate64
Rust library and command line interface for networking with Ultimate-64 and Ultimate-II+ devices using the REST API
- Homepage: https://github.com/mlund/ultimate64
- Documentation: https://docs.rs/ultimate64/
- License: MIT OR Apache-2.0
-
Latest release: 0.5.5
published 5 months ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout master composite
- rust-build/rust-build.action v1.4.4 composite
- actions-rs/toolchain 16499b5e05bf2e26879000db0c1d13f7e13fa3af composite
- actions/checkout v2 composite
- github/codeql-action/upload-sarif v1 composite
- actions/checkout v3 composite