Thomas Harte
|
11d0c37506
|
Attempted to find a more expressive way for maintaining state — macros for all conditions, to bind both values and destinations.
|
2017-08-12 17:33:52 -04:00 |
|
Thomas Harte
|
58bad1e2a3
|
Merge branch 'PerDriveStatus'
|
2017-08-12 16:49:38 -04:00 |
|
Thomas Harte
|
27d1dc5c37
|
Removed some old printf s.
|
2017-08-12 16:49:20 -04:00 |
|
Thomas Harte
|
e7345c7a20
|
Merge pull request #192 from TomHarte/PerDriveStatus
Expands 8272 emulation further
|
2017-08-12 16:49:06 -04:00 |
|
Thomas Harte
|
186048a88e
|
Made an attempt to fix the condition for setting a broken header CRC.
|
2017-08-12 16:39:32 -04:00 |
|
Thomas Harte
|
7135259cc1
|
Sought to flesh out error conditions.
|
2017-08-12 16:36:37 -04:00 |
|
Thomas Harte
|
4909325e79
|
Implemented read deleted data.
|
2017-08-12 13:01:17 -04:00 |
|
Thomas Harte
|
a4ee697ed1
|
Quickie: head unload is scheduled only if the head is presently loaded.
|
2017-08-12 12:53:45 -04:00 |
|
Thomas Harte
|
0f15a2f97f
|
Relented: it actually looks like status bytes aren't per-drive. But each drive may fail at seeking individually. So that piece of state accumulates at the 8272 drive.
|
2017-08-12 12:52:36 -04:00 |
|
Thomas Harte
|
89ace671a4
|
Corrected unload time. Was 8000 times too short.
|
2017-08-12 09:44:01 -04:00 |
|
Thomas Harte
|
e7db2a2f6d
|
Sought to introduce head loading and unloading delays.
|
2017-08-12 09:36:21 -04:00 |
|
Thomas Harte
|
8c33ac71ee
|
Merge pull request #191 from TomHarte/Precache
Introduces more aggressive caching of sectors in the MFM decoder, improves CPC static analysis further
|
2017-08-12 09:10:29 -04:00 |
|
Thomas Harte
|
69914faf02
|
Fixed comments.
|
2017-08-11 20:22:14 -04:00 |
|
Thomas Harte
|
daafebe7ac
|
Moved curly bracket.
|
2017-08-11 19:19:04 -04:00 |
|
Thomas Harte
|
2d81acb82e
|
Upped C++ standard to C++14 and added an #if that's intended to use the built-in std::gcd when compiled on C++17 or better. Fixed for new signedness warnings resulting for taking the step to C++14.
|
2017-08-11 19:18:45 -04:00 |
|
Thomas Harte
|
82ca49c840
|
Adjusted to avoid calls to ::greatest_common_divisor(numerator % denominator, denominator) unless necessary.
|
2017-08-11 19:05:46 -04:00 |
|
Thomas Harte
|
bfe297052d
|
Picked up another subtlety: disk names may be outside of the ones a user could type, in which case they definitely don't affect the decision.
|
2017-08-11 18:59:38 -04:00 |
|
Thomas Harte
|
ffb1a14ace
|
Minor: clear status registers before a read data.
|
2017-08-11 18:56:33 -04:00 |
|
Thomas Harte
|
7e35e44934
|
Added an extra sanity check on treating system disks as system disks.
|
2017-08-11 18:46:39 -04:00 |
|
Thomas Harte
|
0c8769e335
|
Just to be safe.
|
2017-08-11 18:41:08 -04:00 |
|
Thomas Harte
|
83c7d34df2
|
Switched to populating the sector cache with everything in a track the first time anything on that track is requested. That avoids the problem whereby each request of a non-existent sector costs two spins.
|
2017-08-11 18:40:16 -04:00 |
|
Thomas Harte
|
ad3c9842d7
|
Merge pull request #190 from TomHarte/SingleImplicit
Corrects a couple of CPC static analysis pitfalls
|
2017-08-11 16:41:03 -04:00 |
|
Thomas Harte
|
44dace2eef
|
Made an attempt not to interrogate files that definitely don't have the normal header.
|
2017-08-11 16:34:29 -04:00 |
|
Thomas Harte
|
a12671010a
|
Sector size is now reported, and CRC failures are merely indicated, not cause for a sector to be thrown away.
|
2017-08-11 16:23:33 -04:00 |
|
Thomas Harte
|
23c149368b
|
Broadened CPC data disk analysis to spot when there is only one implicitly-runnable file, rather than only one without suffix.
|
2017-08-11 16:23:00 -04:00 |
|
Thomas Harte
|
09716d4716
|
Merge pull request #189 from TomHarte/CPCSystemDisks
Corrects analysis of CPC system disks
|
2017-08-11 15:56:35 -04:00 |
|
Thomas Harte
|
4b7c504d22
|
Corrects analysis of system disks — they have a catalogue that is correct read, but can be launched without reference to it.
|
2017-08-11 15:55:33 -04:00 |
|
Thomas Harte
|
1e4f9d4eda
|
Merge pull request #188 from TomHarte/AYFidelity
Switches to guessing that the AY doesn't reset its dividers upon frequency changes
|
2017-08-11 14:50:11 -04:00 |
|
Thomas Harte
|
e4f04d0977
|
Merge branch 'master' into AYFidelity
|
2017-08-11 14:41:08 -04:00 |
|
Thomas Harte
|
0f75525640
|
Merge pull request #187 from TomHarte/CRCErrors
Extends the built-in [M]FM encoder to be able to produce incorrect CRC values, and adjusts the CPC .DSK handler to request them when appropriate
|
2017-08-11 14:34:31 -04:00 |
|
Thomas Harte
|
edb088526f
|
Simplified slightly, and updated TODO as to still-missing functionality.
|
2017-08-11 14:33:34 -04:00 |
|
Thomas Harte
|
80ebc63101
|
Updated the SSD file format container to specify sector sizes, now that it's no longer implicit.
|
2017-08-11 14:30:35 -04:00 |
|
Thomas Harte
|
cf1403bc79
|
Increased documentation.
|
2017-08-11 14:27:07 -04:00 |
|
Thomas Harte
|
fcf63a7547
|
Expands the [M]FM encoder to respect some new Sector flags: it will now wilfully make CRC errors, omit data, include data that is different than the ID's declared length, write deleted data, and can be commanded as to header/data gaps and what should be within them. All based around expanding towards the needs for reproduction of the CPC's .DSK file format.
|
2017-08-11 14:24:50 -04:00 |
|
Thomas Harte
|
9c0b75faba
|
Merge pull request #186 from TomHarte/CPCTyper
Introduces typer support for the Amstrad CPC.
|
2017-08-11 12:35:43 -04:00 |
|
Thomas Harte
|
1f2bfc9581
|
Ensured tape loading really begins.
|
2017-08-11 12:30:36 -04:00 |
|
Thomas Harte
|
14ab03d1e0
|
Added a further fallback: if all files have an extension but one doesn't, take that one.
|
2017-08-11 12:27:50 -04:00 |
|
Thomas Harte
|
3831fbaca2
|
Ensured the ZX80 and '81 also provide the necessary hook for destruction.
|
2017-08-11 12:11:01 -04:00 |
|
Thomas Harte
|
1d8edf58dd
|
Ensured that a virtual destructor is declared, so that the various automatically-generated real constructors get in on the action.
|
2017-08-11 12:07:48 -04:00 |
|
Thomas Harte
|
4785e316ff
|
Now with exposition.
|
2017-08-11 11:36:03 -04:00 |
|
Thomas Harte
|
44da9de5b0
|
Tweaked typing timing expectations.
|
2017-08-11 11:35:28 -04:00 |
|
Thomas Harte
|
4ecd093891
|
Fixed test for termination of a key sequence; the previous error will have seen this reduce all multi-key sequences to just the one, and expand single-key sequences to "probably" two, posting an out-of-bounds code to the machine at completion.
|
2017-08-11 11:35:14 -04:00 |
|
Thomas Harte
|
dd4bc87d52
|
Fixed: should be a full-path #ifdef guard, given that this is one of the classes named relative to its namespace.
|
2017-08-11 11:21:33 -04:00 |
|
Thomas Harte
|
570d25214e
|
Made an initial attempt at typer support for the CPC.
|
2017-08-11 11:21:07 -04:00 |
|
Thomas Harte
|
f0b7e58968
|
Merge pull request #185 from TomHarte/CPMCatalogue
Introduces a CP/M catalogue parser, as a basic for the CPC's static analyser
|
2017-08-11 11:00:49 -04:00 |
|
Thomas Harte
|
0411b51582
|
Added an attempt to deal with 16-bit allocation units, and to ensure middle-of-file holes are respected.
|
2017-08-11 10:59:37 -04:00 |
|
Thomas Harte
|
dea782cff9
|
Added a "yeah, I don't know" fallback.
|
2017-08-11 10:47:45 -04:00 |
|
Thomas Harte
|
388dd99762
|
Advanced this just enough to suggest a loading command for most things.
|
2017-08-11 10:47:12 -04:00 |
|
Thomas Harte
|
026101a268
|
Killed logic_extents_per_physical, since I don't know how to handle it, and instituted tracks, to allow a decision about short versus long allocation units.
|
2017-08-11 10:46:50 -04:00 |
|
Thomas Harte
|
734099a956
|
Threw a sector cache into my MFM parser, in an attempt to cut down analysis costs. Also made it aware of multiple heads.
|
2017-08-11 10:29:13 -04:00 |
|