Thomas Harte
b5406b90cd
Introduces a new class hierarchy for disk images.
...
Increasing independence of format-specific stuff and generic caching without mangling them into a common namespace, and allowing in some cases for a decrease in read/write blocking.
2017-09-22 20:28:11 -04:00
Thomas Harte
c6e6c3fcfb
Resolves all current analyser warnings.
2017-08-24 22:18:44 -04:00
Thomas Harte
af61a7fa28
Two quick fixes: correctly set segment size, and flip bytes to match HFE's bit ordering to PCMTrack's.
2017-08-17 22:28:00 -04:00
Thomas Harte
c8c1792c3f
Made a first attempt at HFE support.
2017-08-17 22:20:02 -04:00
Thomas Harte
e6683e7f2d
Added the base skeletal stuff of HFE support.
2017-08-17 21:48:48 -04:00
Thomas Harte
2c2dd8073c
Modified to return nullptr if asked for an extended disk image track that doesn't exist.
2017-08-17 15:32:24 -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
186048a88e
Made an attempt to fix the condition for setting a broken header CRC.
2017-08-12 16:39:32 -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
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
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
Thomas Harte
2b0dcf8573
Transcribed the status bits that I think actually need to be obeyed.
2017-08-07 12:37:45 -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
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
45ec5f8eab
Eliminated implicit sign conversion.
2017-07-21 21:53:27 -04:00
Thomas Harte
e01f3f06c8
Completed curly bracket movement.
2017-03-26 14:34:47 -04:00
Thomas Harte
52b850a3f5
Quick extra: make sure parsed tracks don't overflow the 6400 byte space available in an MFM disk. Which might be better expressed as 6250?
2016-12-31 12:51:52 -05:00
Thomas Harte
12549ff412
Might as well get the file offset before entering the critical section; also moved the lock guard down more explicitly to group with the second set of actions.
2016-12-31 11:48:46 -05:00
Thomas Harte
ea4d85e1cd
The virtual disk constructed is the same across all tracks. So why not just request zero?
2016-12-31 00:10:35 -05:00
Thomas Harte
f217d508b8
Completed first attempt at write support for Oric disk images.
2016-12-30 23:12:46 -05:00
Thomas Harte
632b3c63b1
Added the infrastructure necessary for Oric disks to appear writeable to the machine and to receive changed tracks.
2016-12-30 22:51:48 -05:00
Thomas Harte
3b29e6a473
Ensured SSD and ADFs are grown if required.
2016-12-30 18:08:12 -05:00
Thomas Harte
07dacff42d
Added writing for Acorn ADF disks, plus appropriate TODOs in both similar bits of boilerplate.
2016-12-30 18:03:30 -05:00
Thomas Harte
f88f3c65e9
Removed duplicated newline.
2016-12-30 14:21:36 -05:00
Thomas Harte
6fc692cd34
Attempted to switch to an asynchronous means for continuous file updates. Testing with SSD, as usual.
2016-12-29 22:15:58 -05:00
Thomas Harte
b9fad184d7
Added just enough for a complete manual test of writing to a .ADF with the 1770 then getting the correct result parsing it back on the host side in order potentially to update a file.
...
... which means that now it's time to worry about when and how mounted files should actually update themselves. Which will make for some fun with threading, I dare say.
2016-12-28 23:00:47 -05:00
Thomas Harte
9cb902cc4f
Experimentally marked ADF as writable too, immediately discovering a mistake in the analysing MFM decoder.
2016-12-28 22:34:22 -05:00
Thomas Harte
bfe6c0a0c1
Ensured that FileHolder
gets a writeable file reference if one is possible, and records whether the file in hand is read-only. So now the SSD class can answer honestly.
2016-12-28 20:09:14 -05:00
Thomas Harte
3a9ad3fb08
Fixed Oric .DSK handling, per my latest understanding. Which creates a desire to write shorts directly to the disk surface, so exposed that in the encoder.
2016-12-28 18:50:28 -05:00
Thomas Harte
0490a47058
Worked on the all-around framework for decoding sectors back from tracks when closing down a file. Hit the wall that the parser is more observant of CRCs than the WD. No, really. So I guess I have to stop avoiding that whole issue.
2016-12-26 14:24:33 -05:00
Thomas Harte
26710c988d
Modified SSD to ensure a fully-formatted surface is represented even if no track data is in the source file. This corrects the controller's sense of write success.
2016-12-25 20:40:06 -05:00
Thomas Harte
901f19f89c
Added enough stuff that SSDs attached to a 1770 will now reach the entry point for writing.
2016-12-25 09:46:12 -05:00
Thomas Harte
f44542c18c
Improved naming: this now explains what, not the mechanics of how.
2016-11-26 23:35:11 +08:00
Thomas Harte
5c8ecd3051
It probably needs a better name, but hastily implemented track caching at the Disk level.
2016-11-26 14:27:06 +08:00
Thomas Harte
2f86b07cfa
Added a parser for Oric-format MFM disks. Causing my first disk to load!
2016-11-26 13:40:10 +08:00
Thomas Harte
b180f04c87
Okay, so this file format wasn't what I hoped it was. It's another hack. Lots of work to do.
2016-11-26 10:19:10 +08:00
Thomas Harte
7613755f94
Fixed addressing: types are 1 and 2, not 0 and 1.
2016-11-26 10:13:12 +08:00
Thomas Harte
8499783b14
Dragged multibyte primitives and signature checks up to the base class. Implemented support for Oric MFM-style .DSK, at the file format level.
2016-11-21 20:47:16 +08:00
Thomas Harte
31c2548804
Created a base class for the boilerplate fopen
stuff, switched as many classes as possible to its use, switched to postfix underscores and non-camelCase names.
2016-11-21 20:14:09 +08:00
Thomas Harte
ca53fac732
Switched to assuming a single-sided disk, moved out magic constants.
2016-09-26 21:20:30 -04:00
Thomas Harte
523dbb9678
This'll do for getting the ADF into the machine.
2016-09-25 18:32:26 -04:00
Thomas Harte
de863719d0
Made a first attempt at Acorn ADFS support plus the start of a suitable analyser.
2016-09-25 17:46:11 -04:00