Commit Graph

3 Commits

Author SHA1 Message Date
Ian Flanigan
7e41c69366
Add a basic write test for WOZ images (#138)
* Add a basic write test for WOZ images

The new test just tries to change some random nibbles at the beginning
of the image and then verifies that the change has been recorded.
This exposed a bug where `q7` was never set to `true` when write mode
was toggled on.

Also, the assumptions and limitations of `moveHead` are more clearly
documented.

* Address comments

* Improved `moveHead` documentation a bit more.
* Removed redundant variable in `readNibble`.
* Refactored `findSector` and commented out the chatty log line.

All tests pass. No lint warnings.
2022-06-23 06:38:36 -07:00
Ian Flanigan
99ba052597
Add tests for WOZ disks (#136)
* Add a test for the dirty callback on writes

This new test just checks that a clean disk becomes dirty after a
write _and_ that the dirty callback is fired.

* Add tests for WOZ disks

The new tests verify the basic read behavior of the state sequencer on
well-behaved disks, including sync bytes and so on.  Write tests are
still to come.

There's also a change to the Woz format to return the info chunk data
as well.
2022-06-19 19:52:06 -07:00
Ian Flanigan
5b5655b70e
Add tests for the Disk II card (#133)
* Add tests for the DiskII card

This change adds basic read tests for nibble-based disks for the
DiskII card and fixes a few minor errors.

These tests are in preparation for refactoring.

* Add write tests

These are some basic tests of writing to nibble disks.  In the process,
one minor bug was found, fixed and documented.

* Fix the write tests

I misinterpreted something from Sather and thought that the high bit
had to be set on the data for writing to happen at all.  This is not
true.  Instead, there is a flux transition every time the high bit is
set as the data is left-shifted out of the data register.  The
erroneous test has been removed.

At the same time, I finally understand what `skip` does and documented
that.

* Add tests for saving and restoring Disk II state

These are not exhaustive tests, but they ensure that some basic state
is saved and restored.
2022-06-18 16:54:33 -07:00