Thomas Harte
|
8a7b23dc9e
|
Ensured data-accessing commands cancel seeks on their drives. Also introduced a count of drives currently seeking in order to make for a slightly better broad-phase test in run_for.
|
2017-08-14 09:45:39 -04:00 |
|
Thomas Harte
|
b7065575f3
|
Added (empty) call-ins for DMA usage; switched to having the 'is seeking' bit in the status register stay high until sense interrupt status, but now it goes high even for seeks that don't actually go anywhere, and corrected interpretation of the specify command, with a positive result: the received step rate time, now that it's being interpreted correctly, is much shorter.
|
2017-08-14 09:04:22 -04:00 |
|
Thomas Harte
|
7ea703f150
|
Started making provisions for a DMA-compatible implementation. Re: the CPC, it sounds like DMA acknowledge might be permanently wired, causing DMA mode seemingly to work from the 8272's point of view.
|
2017-08-14 08:38:00 -04:00 |
|
Thomas Harte
|
ea64125124
|
Added an explicit nilling, to help with debugging.
|
2017-08-13 22:15:25 -04:00 |
|
Thomas Harte
|
1011143dbe
|
Sought to correct my interpretation of 'gap 3'.
|
2017-08-13 21:52:48 -04:00 |
|
Thomas Harte
|
9ace6e1f71
|
Applied minimum constraints for specified parameters.
|
2017-08-13 19:25:57 -04:00 |
|
Thomas Harte
|
750f2cb883
|
Flagged as not read-only, at least for now, to allow 8272 writing tests definitively to function.
|
2017-08-13 18:54:39 -04:00 |
|
Thomas Harte
|
5221837be8
|
Fixed Non-DMA flag for the format track execution phase. The emulated machine now provides sector details.
|
2017-08-13 18:51:06 -04:00 |
|
Thomas Harte
|
1576b4500b
|
Added documentation.
|
2017-08-13 18:27:00 -04:00 |
|
Thomas Harte
|
e1e9a06712
|
Made an attempt at format a track.
|
2017-08-13 18:05:19 -04:00 |
|
Thomas Harte
|
6e36f8ffa4
|
Removed index-hole announcement.
|
2017-08-13 12:50:24 -04:00 |
|
Thomas Harte
|
b0a7208cc7
|
Strung together a very basic version of 8272 write [/deleted] data. Lots of cases as-yet unhandled.
|
2017-08-13 12:50:07 -04:00 |
|
Thomas Harte
|
eec42aa7ae
|
Entrusted further status to drives; also adjusted them to report read only if diskless, which I now believe to be correct.
|
2017-08-13 11:50:49 -04:00 |
|
Thomas Harte
|
6d2e969e7d
|
Merge pull request #193 from TomHarte/8272Style
Improves 8272 implementation style
|
2017-08-12 18:05:27 -04:00 |
|
Thomas Harte
|
5f42022c1d
|
Added a tester for the control mark.
|
2017-08-12 17:35:14 -04:00 |
|
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 |
|