1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-12-27 01:31:42 +00:00
Commit Graph

1164 Commits

Author SHA1 Message Date
Thomas Harte
02c9a82cb5 Edging towards SSD/DSD support. Hold on! 2016-09-18 19:32:08 -04:00
Thomas Harte
91cd7e143b Started on the SSD/DSD support. Realised I had ommitted multiple head support from my disk class. Fixed that. 2016-09-18 19:21:02 -04:00
Thomas Harte
5409c8ec54 Switched PCMSegments to std::vector; ensured generated [M]FM tracks are correctly sized, thereby making sure the individual flux windows will be correctly sized. 2016-09-18 18:56:35 -04:00
Thomas Harte
d9aaf456f0 Adapted pervasively to MSB-first output. Which seems to be correct. 2016-09-18 18:46:58 -04:00
Thomas Harte
5ebca62bba Now the CRC is a factoring out. 2016-09-18 18:35:50 -04:00
Thomas Harte
180c3df2d4 Calling it 'number theory' probably isn't accurate but extracted the CRC stuff and started using it for [M]FM encoding. 2016-09-18 18:33:26 -04:00
Thomas Harte
55a7418cbf Parameterised to perform FM and MFM encodings, at least subject to CRCs still being missing. 2016-09-18 17:16:20 -04:00
Thomas Harte
22eed60d2b Started sketching out basic MFM track encoding. Which possibly even means that the shifters don't need to be public? 2016-09-18 16:53:21 -04:00
Thomas Harte
0089c830c6 This possibly correctly encapsultes the lowest level of FM and MFM rules. 2016-09-18 14:17:06 -04:00
Thomas Harte
bcf91de7e9 Declared support for the Acorn disk files, started hammering out an encoder. 2016-09-18 13:35:54 -04:00
Thomas Harte
0e44cfa8a1 Merge branch 'master' into WD1770 2016-09-18 10:34:11 -04:00
Thomas Harte
656d0c7a69 Merge pull request #50 from TomHarte/FasterDisk
Introduces a slightly less expensive timed event loop
2016-09-18 10:33:16 -04:00
Thomas Harte
6454508db8 Added a quick bit of documentation. 2016-09-18 10:30:52 -04:00
Thomas Harte
65b568003d Clarified TODO. 2016-09-18 10:29:45 -04:00
Thomas Harte
8c2bf099ad Cut down to one GCD and clarified variable names, getting more explicit about what's going on. 2016-09-18 10:24:09 -04:00
Thomas Harte
6f0b9adc3d Factors.cpp is dead. 2016-09-18 10:23:34 -04:00
Thomas Harte
48317f3b77 Templated these two methods, so as no longer to put a constraint on precision. 2016-09-18 10:23:15 -04:00
Thomas Harte
79ef38b123 Attempted to use the new get_cycles_until_next_event method to take some repetition outside of the PLL and drive event loops. 2016-09-17 22:02:38 -04:00
Thomas Harte
bfed9585b8 Added a sector cache to avoid having to re-decode things five times over. 2016-09-17 22:01:54 -04:00
Thomas Harte
dbb758aaf1 Workaround for a weird bug that suddenly appears to manifest: gzgetc is returning the file name, not bytes from the file. Seems to be related to improper initialisation of the next field within the gzFile header. I can't immediately see where ZLib intends to do that so it's a bit mysterious. But the larger-than-8 readers could probably save time by reading in blocks anyway. 2016-09-17 22:01:25 -04:00
Thomas Harte
14a9edcf5d Made an attempt to do the time base conversion upfront, saving a lot of hassle and allowing greater prediction. 2016-09-17 19:52:27 -04:00
Thomas Harte
a98374995e Cleaned up pre-analysis code. 2016-09-17 18:19:32 -04:00
Thomas Harte
b7e353cad5 Merge branch 'master' of github.com:TomHarte/CLK 2016-09-17 18:13:06 -04:00
Thomas Harte
142254a478 Resolved failure to open disks that arrive through analysis. 2016-09-17 18:11:58 -04:00
Thomas Harte
788df09f71 Merge pull request #49 from TomHarte/Xcode8
Migrated to Swift 3.
2016-09-17 18:10:43 -04:00
Thomas Harte
e3daf80564 Added a file for the 1770, at least. 2016-09-17 18:01:00 -04:00
Thomas Harte
7c65c69e0f Migrated to Swift 3. 2016-09-15 22:12:12 -04:00
Thomas Harte
cc66e1973f Merge pull request #48 from TomHarte/FasterLoading
Introduces an initial attempt at static analysis of emulator programs
2016-09-15 19:38:23 -04:00
Thomas Harte
ee8510984f Added just enough wiring to restore the 2600 to functionality. 2016-09-15 19:34:45 -04:00
Thomas Harte
92af19098c Improved file naming. 2016-09-15 19:24:59 -04:00
Thomas Harte
1d8fbe9068 With minor cleaning, this should now do Commodore disks correctly (?) 2016-09-15 19:21:09 -04:00
Thomas Harte
9827466297 Minor post-haste cleaning. 2016-09-15 07:58:32 -04:00
Thomas Harte
8992feb8cd Completed a first parse at the GCR parser, proving how incredibly slow my drive is. 2016-09-15 07:54:42 -04:00
Thomas Harte
9d6dcb80a7 Started work on a GCR parser and the helper functions that lie behind that. 2016-09-13 21:53:36 -04:00
Thomas Harte
df7aed7e8b The Commodore analyser now at least hands off to somebody else a chance to parse disks. 2016-09-13 07:26:51 -04:00
Thomas Harte
e3571e8b9e Added insurance against an infinite loop should the tape be exhausted. 2016-09-12 22:22:23 -04:00
Thomas Harte
c3a795328d Windows have titles again. Also I've owned up to not knowing how to edit UEFs right now. 2016-09-12 22:15:38 -04:00
Thomas Harte
40660fe680 Made yet another guess at Commodore analysis. Elevated fast tape-related unnatural speed up to the OS-side mechanisms. 2016-09-12 22:06:03 -04:00
Thomas Harte
e54a2326a3 Made attempt to run at zero cost while processing tape input. 2016-09-11 17:34:02 -04:00
Thomas Harte
eeec516fa6 Implemented seeking on tapes, mucked about a bit more with the Commodore analyser, at least temporarily removed cropping from the Vic emulator. 2016-09-11 17:09:00 -04:00
Thomas Harte
1ca4a2a012 Sought to be more intelligent in handling cases where the two parts of a header or data field don't match — if either looks good then use it in isolation. 2016-09-10 17:01:17 -04:00
Thomas Harte
a5b17932ca Attempted further to improve memory model guesswork. With many further improvements to make... 2016-09-08 21:09:37 -04:00
Thomas Harte
27fedaf892 The error flag is no longer directly exposed. I also tweaked the Commodore import numbers just a touch. But I think I need proper calibration. 2016-09-08 21:09:05 -04:00
Thomas Harte
1de6097f06 Shuffled C stuff out on top. 2016-09-08 21:08:03 -04:00
Thomas Harte
24251a2768 Negligible indentation fix. 2016-09-08 07:49:43 -04:00
Thomas Harte
01e5dae512 Threw in 300-baud support. Why not? 2016-09-08 07:48:20 -04:00
Thomas Harte
3e925e80a3 Added a field-filling constructor for pulses. 2016-09-08 07:41:44 -04:00
Thomas Harte
1e7b5330f5 More or less rewrote, to use a filled-per-chunk buffer of upcoming pulses rather than working them out as requests come. Which is more straightforward — all the code for a particular chunk goes in exactly one place — and much easier to extend. So threw in a provisional 0104 implementation. 2016-09-08 07:41:26 -04:00
Thomas Harte
2b053436e5 Missed from previous commit; removed assumption that get_next_data always succeeds. 2016-09-08 07:39:43 -04:00
Thomas Harte
54557d7f13 Added reminder, ensured the couldn't-find-data case doesn't cause a crash. Though it should imply some manual investigation. 2016-09-08 07:39:17 -04:00