Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vschwaberow/dtools
A Rust-based command-line utility for manipulating Commodore 64 D64 disk images, offering a Rust library to use in other projects.
https://github.com/vschwaberow/dtools
Last synced: about 1 month ago
JSON representation
A Rust-based command-line utility for manipulating Commodore 64 D64 disk images, offering a Rust library to use in other projects.
- Host: GitHub
- URL: https://github.com/vschwaberow/dtools
- Owner: vschwaberow
- License: mit
- Created: 2024-07-03T05:33:39.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-08-11T16:11:48.000Z (5 months ago)
- Last Synced: 2024-11-17T12:19:25.739Z (about 2 months ago)
- Language: Rust
- Homepage:
- Size: 15.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dtools
A Rust-based command-line utility for manipulating Commodore 64 D64 disk images, offering a Rust library to use in other projects.
## Features
- Create and format D64 images (35 or 40 tracks)
- List, extract, and insert files
- Read and write individual sectors
- Manage Block Availability Map (BAM)
- PETSCII/ASCII conversion## Building
Requires Rust 1.54 or later.
```bash
cargo build --release
```The binary will be in `target/release/dtools`.
## Usage
### Create a new D64 image
```bash
dtools create -f newdisk.d64 -t 35
```### Format a D64 image
```bash
dtools format -f mydisk.d64 -n "MY DISK" -i "01"
```### List files on a D64 image
```bash
dtools list -f mydisk.d64
```### Insert a file
```bash
dtools insert -f mydisk.d64 -n "MYFILE" -i /path/to/input/file
```### Extract a file
```bash
dtools extract -f mydisk.d64 -n "MYFILE" -o /path/to/output/file
```### Read a sector
```bash
dtools read -f mydisk.d64 -t 18 -s 0
```### Write to a sector
```bash
dtools write -f mydisk.d64 -t 18 -s 0 -d "0123456789ABCDEF"
```### Show BAM
```bash
dtools show-bam -f mydisk.d64
```### Find a free sector
```bash
dtools find-free-sector -f mydisk.d64
```## Library Usage
`dtools` can also be used as a library in other Rust projects:
```rust
use d64lib::{D64, D64Error};fn main() -> Result {
let mut d64 = D64::from_file("mydisk.d64")?;
let files = d64.list_files()?;
println!("Files on disk: {:?}", files);
Ok(())
}
```## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
## License
[MIT](https://choosealicense.com/licenses/mit/)