Thomas Harte
|
47732ffb98
|
Prevented the 8272 from overreading ID fields (and, by doing so, overrunning its internal buffer). Exposed the MFMController's CRC generator for inspection.
|
2017-08-07 12:37:22 -04:00 |
|
Thomas Harte
|
56d65ba6f3
|
Adapted slightly, to retain the ability to advertise an incorrect size, to adjust the confusion I've created by having two different types of thing both called new_sector, and to print a warning when ignoring error flags.
|
2017-08-07 12:12:04 -04:00 |
|
Thomas Harte
|
895a3cbf24
|
Corrected reading of the track size table for extended disks. My first extended disk has now loaded.
|
2017-08-07 11:38:19 -04:00 |
|
Thomas Harte
|
d951c8c1c2
|
Fixed search for track start position with extended disks: it's no longer an infinite loop. So that's a pretty good performance improvement.
|
2017-08-07 11:36:29 -04:00 |
|
Thomas Harte
|
a294963e98
|
Made an absolutely basic attempt to accommodate some extended disk images.
|
2017-08-07 11:26:15 -04:00 |
|
Thomas Harte
|
c839556a27
|
Fixed: rewind the file to check for 'EXTENDED' if 'MV - CPC' failed.
|
2017-08-06 19:47:10 -04:00 |
|
Thomas Harte
|
77da582e88
|
Switched the container in which events are passed to int , with the intention of subclasses extending the receivable range.
|
2017-08-06 12:35:20 -04:00 |
|
Thomas Harte
|
ffadb04761
|
Documented, and removed a couple of Event types that are WD-specific but had accidentally flown into here. Will need to figure out how best to expose the CRC result too, but I'm willing to let that one drop out naturally as I implement the 8272.
|
2017-08-06 11:36:36 -04:00 |
|
Thomas Harte
|
29288b690e
|
Switched disk controllers to be instantiated explicitly in terms of cycles, created an Amstrad-specific subclass of the 8272 to record the direct programmatic availability of all disk motors bundled together, and otherwise adjusted to ensure the thing is clocked and that the motor is enabled and disabled appropriately. The 8272 is also now formally a subclass of the incoming MDM controller.
|
2017-08-06 09:45:16 -04:00 |
|
Thomas Harte
|
4d60b8801c
|
Started trying to factor out just the PLL stream -> FM/MFM events part that is presently in the WD1770.
|
2017-08-05 22:26:15 -04:00 |
|
Thomas Harte
|
192f232d3f
|
Silenced warnings.
|
2017-08-05 11:53:29 -04:00 |
|
Thomas Harte
|
6e4d3b8a77
|
Added enough logic to produce some sort of version of a completely unprotected DSK. So enough to start bootstrapping an FDC emulation, at least.
|
2017-08-05 11:44:53 -04:00 |
|
Thomas Harte
|
8eda24261c
|
Removed unnecessary header — it's implied by being a child of FileHolder.
|
2017-08-05 11:44:06 -04:00 |
|
Thomas Harte
|
75c59fefab
|
Added an empty husk to begin support for Amstrad CPC disk image formats.
|
2017-08-05 10:02:10 -04:00 |
|
Thomas Harte
|
a3b16b6dfa
|
Further beefs up the list of chunks that this TZX parser can either comprehend or skip.
|
2017-08-03 12:13:41 -04:00 |
|
Thomas Harte
|
2d2cefb0b0
|
Adjusted factoring to introduce support for block 10.
|
2017-08-02 14:36:47 -04:00 |
|
Thomas Harte
|
2fd071e45d
|
Made an honest attempt at outputting turbo speed data block data. The CPC now at least starts to load.
|
2017-08-02 14:24:34 -04:00 |
|
Thomas Harte
|
d7a5c3f49a
|
Added support for the ID 20 block and fixed a minor error in my skip-the-contents version of block 11: length is three bytes long, not two. This gives me enough structure properly to get to the end of my current test CDT, albeit without making any of the noises.
|
2017-08-02 14:12:34 -04:00 |
|
Thomas Harte
|
819761f9fb
|
Fixed another uninitialised pointer.
|
2017-08-02 13:56:35 -04:00 |
|
Thomas Harte
|
9d953421d8
|
After a quick check, added a couple of other _delegate initialisations. I should probably find a way to template this.
|
2017-08-01 07:07:43 -04:00 |
|
Thomas Harte
|
4b5e9ffb83
|
Ensured is_at_end_ is initially cleared by default.
|
2017-07-27 22:22:43 -04:00 |
|
Thomas Harte
|
4abd62e62b
|
Standardises on const [Half]Cycles as the thing called and returned, rather than const [Half]Cycles & as it's explicitly defined to be only one int in size, so using a reference is overly weighty.
|
2017-07-27 22:05:29 -04:00 |
|
Thomas Harte
|
8361756dc4
|
Switched definitively to the works-for-now approach of requiring an explicit opt-in where somebody wants to clock a whole-cycle receiver from a half-cycle clock.
|
2017-07-27 07:40:02 -04:00 |
|
Thomas Harte
|
75d67ee770
|
Relocated ClockReceiver.hpp as it's a dependency for parts of the static analyser, and therefore needs to be distinct from the actual emulation parts.
|
2017-07-25 20:20:55 -04:00 |
|
Thomas Harte
|
a1e9a54765
|
Eliminated redundant uses of ClockReceiver and sought to ensure that proper run_for s are inherited all the way down.
|
2017-07-25 20:09:13 -04:00 |
|
Thomas Harte
|
8d1dacd951
|
Clean ups along the Electron::Tape line: ensured that the ClockReceiver is opted into only once, and that its run_for propagates all the way along the chain.
|
2017-07-25 20:01:30 -04:00 |
|
Thomas Harte
|
d056f2e246
|
Updated comment.
|
2017-07-24 21:51:22 -04:00 |
|
Thomas Harte
|
8a2bdb8d22
|
Converted the TimedEventLoop and the things that sit atop it into ClockReceiver s.
|
2017-07-24 21:19:05 -04:00 |
|
Thomas Harte
|
b3ae920746
|
Converted the DPLL and disk controller classes to be ClockReceiver s.
|
2017-07-24 21:04:47 -04:00 |
|
Thomas Harte
|
6633537fb8
|
Discovering that there is such a thing as P81 — a ZX81 file without the name omitted — added support for it. Extended FileHolder while I was here to retain the file name and be able to supply its extension, as my quick-fix test-the-last-character approach to o/p/80/81 discrimination stops working with p81 thrown into the mix and this feels like the correct factoring.
|
2017-07-22 16:02:25 -04:00 |
|
Thomas Harte
|
313b36944f
|
Ensured that the final bit of a tape isn't dropped even if the tape ends exactly after it, by not posting a false pulse, being less restrictive about what can cap a bit, and in any case using a long gap as the end-of-file bookend.
|
2017-07-22 15:41:33 -04:00 |
|
Thomas Harte
|
456fdda6c2
|
Ensured that the mark_end step can't overwrite another recognised symbol.
|
2017-07-22 15:40:22 -04:00 |
|
Thomas Harte
|
45ec5f8eab
|
Eliminated implicit sign conversion.
|
2017-07-21 21:53:27 -04:00 |
|
Thomas Harte
|
1d01acce06
|
Fixed differing types of loop variables and targets.
|
2017-07-21 21:53:05 -04:00 |
|
Thomas Harte
|
6d5807ec4b
|
Fixed sign and ensured that the DataFromString implementation is of the thing declared in the header.
|
2017-07-21 21:24:28 -04:00 |
|
Thomas Harte
|
64865b3f41
|
Signedness fixes.
|
2017-07-21 21:23:34 -04:00 |
|
Thomas Harte
|
163c0f1b44
|
Ensured offset means exactly one thing.
|
2017-07-21 20:58:17 -04:00 |
|
Thomas Harte
|
2d8e7e9f8b
|
Removed reference to a parameter long-since dead.
|
2017-07-21 20:46:25 -04:00 |
|
Thomas Harte
|
a026998682
|
Marginally optimised set_offset to avoid reset s when possible.
|
2017-07-21 20:43:20 -04:00 |
|
Thomas Harte
|
06ea81fdb2
|
Made sure that unrecognised waves don't block the symbol queue, and allowed any type of nonsense to be skipped before finding a byte.
|
2017-07-21 20:23:26 -04:00 |
|
Thomas Harte
|
d69b1e2d11
|
Switched parsing logic to looking only for upward zero crossings, that being my new understanding of the ROM.
|
2017-07-21 19:39:38 -04:00 |
|
Thomas Harte
|
a3e0024980
|
Chopped time accumulation out of the default Tape process because it's proving to be sufficiently expensive for a TZX as not to be worthwhile. Introduced a cheaper position capturing/restoring method.
|
2017-07-21 18:55:03 -04:00 |
|
Thomas Harte
|
d9a2c32aca
|
Made an attempt to obey the proper TZX rules on gaps, and to hit the common-clock-rate Time optimisation.
|
2017-07-21 18:21:12 -04:00 |
|
Thomas Harte
|
e152ed2e61
|
Made an attempt to avoid GCD costs when accumulating Time s with a common clock rate (/divisor).
|
2017-07-21 18:20:27 -04:00 |
|
Thomas Harte
|
70af075012
|
Determined what appears to be an appropriate workaround for the ZX81 TZX that I've managed to obtain.
|
2017-07-19 21:28:33 -04:00 |
|
Thomas Harte
|
c8cee88e33
|
Ensured that a stopped tape outputs a false level and took an extra safety check in instantiation.
|
2017-07-18 22:49:11 -04:00 |
|
Thomas Harte
|
35296017b5
|
Clarified meaning of is_high_ flag and ensured it is honoured properly.
|
2017-07-17 21:36:05 -04:00 |
|
Thomas Harte
|
130d598ec9
|
Corrected some minor out-of-style breaks, and ensured that the name of ZX81 files is returned.
|
2017-07-17 19:52:54 -04:00 |
|
Thomas Harte
|
0350925c1e
|
Started sketching out greater support. Mostly TODOs right now, but pulse sequence and pure tone are implemented. I probably also need at least the CSW block to hit everything you might see in a ZX80 or ZX81 tape. Then I can worry about the rest when I have a way to test them.
|
2017-07-17 19:38:15 -04:00 |
|
Thomas Harte
|
94e3dd0d4f
|
Merge branch 'master' into TZX
|
2017-07-17 19:07:05 -04:00 |
|