Thomas Harte
|
53522e28e2
|
Performed an about-face on how this should probably be implemented. Now forsaking the state machine in favour of a macro'd switch-for-cooperative-event-based-messaging implementation. Let's see how this ends up looking.
|
2016-09-24 20:12:45 -04:00 |
|
Thomas Harte
|
88bbeedad3
|
Set actual bit length.
|
2016-09-22 21:28:23 -04:00 |
|
Thomas Harte
|
75eb62b577
|
One painful step at a time, this now starts the disk rotating and gets as far as deciding whether it's about to head off on a read or a write.
|
2016-09-22 21:25:31 -04:00 |
|
Thomas Harte
|
8db0030068
|
Fixed ROM loading by the Electron, turned the WD1770 into a 'disk drive' (it'll do for now), persuaded it to get all the way through a very specifically convenient type 1 command.
|
2016-09-20 22:14:33 -04:00 |
|
Thomas Harte
|
7a34ae0da6
|
This is the start of my slog through type 1 commands. I kind of need to figure out what I'm doing about drives and PLLs now though.
|
2016-09-20 16:58:23 -04:00 |
|
Thomas Harte
|
3b97b038b9
|
Corrected and sketched out state machine far enough to get to a complaint about unhandled work.
|
2016-09-20 15:56:31 -04:00 |
|
Thomas Harte
|
e358057440
|
Added a WD1770 run_for_cycles call. So I really can now move that as far as reporting that it has no disk?
|
2016-09-20 07:42:17 -04:00 |
|
Thomas Harte
|
cd5939501f
|
Treading water some more, ensured the DFS and ADFS ROMs get to the Electron. It now even inserts the DFS ROM if it has a DFS disk image. Might need to make it a sideways RAM though? Regardless, the next job surely — surely! — has to be to stop avoiding the 1770?
|
2016-09-20 07:36:57 -04:00 |
|
Thomas Harte
|
a9e65e9b7a
|
Tweaked disk side density, added call-outs to a WD1770 if the Electron had one (albeit without run_for_cycles yet as I need to figure out the clock rate), added a shell of the basic functions of the WD1770. No implementation yet.
|
2016-09-19 22:06:56 -04:00 |
|
Thomas Harte
|
c9dd07cecd
|
DFS disks are now delivered right up to the emulator's front door. So everything's in place to get started on that WD1770 nonsense.
|
2016-09-19 08:29:23 -04:00 |
|
Thomas Harte
|
e025768604
|
Two passes of the index hole => no sector found.
|
2016-09-19 08:17:07 -04:00 |
|
Thomas Harte
|
64f2538b1f
|
Added CRC checking to DFS comprehension; fixed a bunch of places where I'd used Objective-C's #import rather than #include .
|
2016-09-19 08:16:06 -04:00 |
|
Thomas Harte
|
c58cdbf151
|
Minor tweak to support zero-length files.
|
2016-09-19 07:37:11 -04:00 |
|
Thomas Harte
|
ca4df5dd61
|
Introduced a full container for disk catalogues, so as also to capture non-file information, and 'completed' (i.e. albeit that CRC checking is still absent) DFS catalogue decoding.
|
2016-09-19 07:35:02 -04:00 |
|
Thomas Harte
|
8a1b805d11
|
Fixed file offset calculation for single-sided images.
|
2016-09-19 07:34:10 -04:00 |
|
Thomas Harte
|
231f3dd0f4
|
This is exactly as far as I'm going to get with DFS parsing today, I think.
|
2016-09-18 22:18:01 -04:00 |
|
Thomas Harte
|
b1e7f2dfd0
|
There's no cache and no CRC checking yet, but this is probably a rough outline of an FM parser.
|
2016-09-18 22:03:06 -04:00 |
|
Thomas Harte
|
fbcb59d47a
|
A policy change trial: let the person above deal with any error.
|
2016-09-18 21:18:41 -04:00 |
|
Thomas Harte
|
0ce901bd48
|
Added necessary wiring to get as far as asking an arm of the analyser to check out an Acorn disk image.
|
2016-09-18 21:18:11 -04:00 |
|
Thomas Harte
|
d1c861d3a5
|
That should be that, I hope.
|
2016-09-18 21:09:32 -04:00 |
|
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 PCMSegment s 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 |
|