e6508a39b4
It doesn't do proper spacing yet - the intbasic code listing is extremely tricky to undestand. |
||
---|---|---|
cmd | ||
lib | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
main.go | ||
README.md |
diskii
Note: diskii is not stable yet! I don't expect to remove functionality, but I'm still experimenting with the command syntax and organization, so don't get too comfy with it yet.
diskii is a commandline tool for working with Apple II disk images.
It is also a library of code that can be used by other Go programs.
Its major advantage is that it's written in Go, hence cross-platform.
Its major disadvantage is that it mostly doesn't exist yet.
It rhymes with “whiskey”.
Discussion/support is in #apple2 on the retrocomputing Slack (invites here).
Goals
Eventually, it aims to be a comprehensive disk image manipulation
tool, but for now only the applesoft decode
command works.
The library code aims (a) to support the commandline tool operations, and (b) to replace the "read and write disk images" code of the goapple2 emulator.
Current disk operations supported:
Feature | DOS 3.3 | ProDOS | NakedOS/Super-Mon |
---|---|---|---|
basic structures | ✅ | ❌ | ✅ |
ls | ✅ | ❌ | ✅ |
dump | ✅ | ❌ | ✅ |
dumptext | ❌ | ❌ | ❌ |
delete | ❌ | ❌ | ❌ |
rename | ❌ | ❌ | ❌ |
put | ❌ | ❌ | ❌ |
puttext | ❌ | ❌ | ❌ |
extract (all) | ❌ | ❌ | ❌ |
lock/unlock | ❌ | ❌ | ❌ |
init | ❌ | ❌ | ❌ |
defrag | ❌ | ❌ | ❌ |
Installing/updating
Assuming you have Go installed, run go get -u github.com/zellyn/diskii
You can also download automatically-built binaries from the latest release page. If you need binaries for a different architecture, please send a pull request or open an issue.
Short-term TODOs/roadmap/easy ways to contribute
My rough TODO list (apart from anything marked (❌) in the disk operations matrix is listed below. Anything that an actual user needs will be likely to get priority.
- Build per-platform binaries for Linux, MacOS, Windows.
- Implement
GetFile
for DOS 3.3 - Add and implement the
-l
flag forls
- Add
Delete
to thedisk.Operator
interface- Implement it for supermon
- Implement it for DOS 3.3
- Make 13-sector DOS disks work
- Read/write nybble formats
- Read/write gzipped files
- Add ProDOS support (add
lib/prodos/prodos.go
and register a ProDOS operator factory)
Related tools
- http://a2ciderpress.com/
- http://applecommander.sourceforge.net/
- https://github.com/cybernesto/dsktool.rb
- https://github.com/cmosher01/Apple-II-Disk-Tools
- https://github.com/madsen/perl-libA2
- https://github.com/markdavidlong/AppleSAWS
- https://github.com/dmolony/DiskBrowser
- https://github.com/deater/dos33fsprogs
- https://github.com/jtauber/a2disk