Skip to content

Altair tools version 0.10.0

Latest

Choose a tag to compare

@phatchman phatchman released this 24 Jul 06:21
· 3 commits to main since this release
6e4f097
  1. Support for new operating systems:

    • Cromemco DOS (CDOS)
    • Altair DOS / Altair BASIC
    • Altair Hard Disk Basic (HD BASIC)
    • Timeshare BASIC (read-only)
  2. Support for new disk formats:

    • MITS 5.25" Disks (Mini Disks)
    • CDOS 8" SS SD, SS DD, DS SD, DS DD Disks
    • CDOS 5.25" SS SD, SS DD, DS SD, DS DD Disks
  3. Disk Labelling

    • Support CDOS and HD BASIC disk labels
    • -l --label to read a disk label
    • -L / --label-set to change a disk label
  4. BASIC file decoder

    • Converts encoded Altair / Microsoft BASIC files into ascii text files
  5. Windows wildcard expansion

    • Expand * and ? on windows for --put-multiple
  6. Illegal filename encoding

    • Formats like Altair DOS / Basic and HD Basic allows almost any character in the filename
    • Windows does not handle a lot of special characters and so these filenames cannot be represented
    • If an unrepresentable character is found, url-encode that character when creating the filename,
    • Also encodes the first character of reserved names on Windows, e.g. "CON"
  7. Updated GUI (adgui)

    • Support for all new formats and features
    • Upgraded to newer DVUI library
    • Include file details as well as file name when copying from grid
  8. Expanded Testing

    More comparisons against emulator-produced disks for:

    • Freshly formatted disks
    • One file filling entire disk
    • Filling all directories
    • Many more individual format tests

    All formats now test:

    • Overfilled disks
    • Overfilled directories
    • Empty files
    • File erasure

    Introduction of fuzz testing:

    • Zig provides a fuzz testing framework that mutates random data in a way that tries to maximize code coverage.
    • Each format has its own fuzz test which performs various disk operations on the randomly created image.
    • Fuzz testing helps ensure that all code paths, including error paths, are tested.
    • It also helps make sure the program won't crash on unexpected data.
    • One example of an issue found: a CP/M directory entry whose first filename character happened to match the CDOS label marker triggered a panic, because a CDOS-specific code path got invoked for a CP/M disk.