Thomas Harte
acc82546c4
Further avoid use of null pointer.
2022-08-31 16:03:01 -04:00
Thomas Harte
d460f40b13
Improve comment.
...
Status: this now seems to be blocked at unimplemented 5380 functionality.
2022-08-30 16:44:03 -04:00
Thomas Harte
6fa4e379d2
Make a hacky and blunt offer of drive data.
2022-08-30 16:07:44 -04:00
Thomas Harte
3c954e76ed
Extend to allow vending of only portions of files.
2022-08-30 15:51:29 -04:00
Thomas Harte
e7b213604e
Add comments.
2022-08-29 11:40:18 -04:00
Thomas Harte
20d685ec5c
Permit a mass-storage device to be returned, in theory.
2022-08-26 16:38:10 -04:00
Thomas Harte
722e3a141d
Fix types, introduce Apple II mapper.
2022-08-24 12:00:03 -04:00
Thomas Harte
91e9248ecc
Allow VolumeProviders to opt out of drivers completely.
2022-08-23 20:56:27 -04:00
Thomas Harte
1346bf6fff
Add include for strlen
.
2022-08-23 19:58:48 -04:00
Thomas Harte
cf356c59aa
Switch the Macintosh mapper to use Apple::PartitionMap.
2022-08-23 19:39:47 -04:00
Thomas Harte
1555b51d99
Begin a stumbling effort to generalise my implementation of the Apple Partition Map.
2022-08-23 16:46:47 -04:00
Thomas Harte
64c5b84b8b
Acknowledge that HFS is assumed.
2022-08-23 16:19:19 -04:00
Thomas Harte
c7373a5d3e
Overtly treat .ST images as FAT12.
2022-08-13 10:09:34 -04:00
Thomas Harte
8f2e94a1d8
Switch name back to emphasise _async_.
2022-07-16 14:41:04 -04:00
Thomas Harte
bf03bda314
Generalise AsyncTaskQueue, DeferringAsyncTaskQueue and AsyncUpdater into a single template.
2022-07-14 16:39:26 -04:00
Thomas Harte
1ce07e2ee8
This reads the file, so it can't be constexpr
.
2022-07-05 17:01:38 -04:00
Thomas Harte
5ae461eb0b
Avoid warning during optimised builds.
2022-06-03 15:43:27 -04:00
Thomas Harte
e7b3705060
Merge pull request #1007 from TomHarte/IPFFileFormat
...
Adds partial support for the IPF file format.
2022-06-02 12:58:47 -04:00
Thomas Harte
866b6c6129
Eliminate off_t
.
2022-04-27 19:16:37 -04:00
Thomas Harte
61f25926b5
Eliminate usages of unistd.h.
2022-03-25 16:58:06 -04:00
Thomas Harte
18b6f17e86
With some refactoring makes some minor steps towards supporting gaps.
2022-01-06 17:24:31 -05:00
Thomas Harte
f37179d9f2
Gaps appear to contain pre-MFM data (?)
2022-01-02 15:39:26 -05:00
Thomas Harte
3e0b7d71d4
Properly handle partial bytes.
2022-01-01 19:09:19 -05:00
Thomas Harte
58d10943ed
Add asserts to validate my reserve sizes.
2022-01-01 19:08:44 -05:00
Thomas Harte
dc920a04f6
Add missing #include.
2022-01-01 19:03:07 -05:00
Thomas Harte
d031381e70
Gaps provide content, and data chunk lengths seem to be in terms of unencoded bytes.
2022-01-01 18:47:07 -05:00
Thomas Harte
ed1b0b90f7
Makes a first attempt at encoding data.
2022-01-01 18:36:44 -05:00
Thomas Harte
38dd3c5c60
On second thoughts, no need to use a vector here.
2022-01-01 17:15:12 -05:00
Thomas Harte
d3189acaa6
Add a constexpr route that explicitly calculates the simplest possible form.
2022-01-01 17:14:52 -05:00
Thomas Harte
350c98ab4d
Add those densities I've yet discovered the rules for.
2021-12-29 18:15:37 -05:00
Thomas Harte
4f3c754771
Adds exposition.
2021-12-27 19:15:46 -05:00
Thomas Harte
dc994f001d
Mention units.
2021-12-27 18:55:11 -05:00
Thomas Harte
9b6ccbcc95
Parses data and gap stream elements.
2021-12-27 18:12:44 -05:00
Thomas Harte
9d3cf9c73c
Collate descriptions of all tracks.
2021-12-26 14:49:51 -05:00
Thomas Harte
28572d4392
Enforce string-length requirement.
2021-12-26 09:12:44 -05:00
Thomas Harte
0433db0370
Eliminate macro.
2021-12-25 19:36:54 -05:00
Thomas Harte
a6b326da48
Parse the INFO record.
2021-12-25 18:17:13 -05:00
Thomas Harte
e457ce66ea
Adds sanity checks around CAPS block.
2021-12-25 17:32:29 -05:00
Thomas Harte
c118dd8afe
Adds just enough to list all the blocks in an IPF.
2021-12-25 17:27:50 -05:00
Thomas Harte
dba3a3d942
Add through route to an IPF container.
2021-12-25 17:06:47 -05:00
Thomas Harte
6c606b5506
Fix through route to TargetPlatform::TypeDistinguisher
.
2021-12-25 17:06:12 -05:00
Thomas Harte
544c137cb0
Add updated intel.
2021-10-16 13:30:56 -07:00
Thomas Harte
d9d20d9d30
Walk back slightly.
2021-10-14 18:02:58 -07:00
Thomas Harte
b12c640807
Makes drives non-copyable.
...
To avoid error in the future.
2021-10-14 12:37:55 -07:00
Thomas Harte
8960f471a0
Use unspread_bits
for FM and MFM decoding.
2021-10-12 15:18:50 -07:00
Thomas Harte
955cb6411c
Factor out bit spreading.
...
(And do a better job of it)
2021-10-12 14:49:01 -07:00
Thomas Harte
fc4ca4f8e3
I don't think there are sync words at the start of the track.
2021-10-12 10:38:15 -07:00
Thomas Harte
a1f02d0cd8
Add track padding.
2021-10-11 18:05:37 -07:00
Thomas Harte
addf9f9af4
Moves block byte writes into Storage::Encodings::MFM::Encoder
.
2021-10-10 16:06:51 -07:00
Thomas Harte
c4cfcfab8e
Checksums appear to be calculated as 32-bit quantities.
2021-10-10 12:58:10 -07:00
Thomas Harte
5e083426c5
Takes another run at checksums.
...
It turns out I'd read entirely the wrong section of the ADF FAQ. Am now trying to piece things together from various EAB threads.
2021-10-10 11:47:48 -07:00
Thomas Harte
aeaea073c6
Switch both: (i) which bits are odd/even; and (ii) nibble ordering.
2021-10-09 13:45:19 -07:00
Thomas Harte
ed303310bb
Spell out slightly more; this makes debugging a touch easier.
2021-10-06 13:40:48 -07:00
Thomas Harte
ce8f782577
Corrects meaning of IBM-style RDY.
2021-10-06 04:42:44 -07:00
Thomas Harte
6566936be9
Be overt about the intended interface.
2021-10-04 16:45:33 -07:00
Thomas Harte
9012a7f5e1
Merge branch 'master' into Amiga
2021-09-23 23:00:03 -04:00
Thomas Harte
e5a5faa417
Resolves Clang 13 implicit conversion warnings.
2021-09-23 22:53:41 -04:00
Thomas Harte
2b0a4055f7
Makes an attempt at Amiga ADF encoding.
2021-07-16 20:07:17 -04:00
Thomas Harte
7cb16a3fc5
Introduces a shell for Amiga ADF decoding.
2021-07-16 18:11:07 -04:00
Thomas Harte
0b80c1988b
Add Amiga enums.
2021-07-16 17:59:08 -04:00
Thomas Harte
6b47fb38c6
Corrects buffer placement of decoded sectors.
2021-07-03 13:36:01 -04:00
Thomas Harte
bae8bb0c00
Gives the FAT parser responsibility for right trims.
2021-07-02 19:50:27 -04:00
Thomas Harte
a5b7d819a7
Correct FAT parser.
2021-07-02 19:28:13 -04:00
Thomas Harte
fe07a0b1d8
Starts to add a FAT[12] parser.
2021-07-02 18:56:43 -04:00
Thomas Harte
83a54fd6d2
Use the FAT12 boot sector to determine geometry.
2021-06-22 06:54:17 -04:00
Thomas Harte
c1678d7be7
Corrects exposition and transmission of drive selection.
...
What a klutz I've been.
2021-06-21 22:56:25 -04:00
Thomas Harte
199621db08
Observes that the actual guess here is MS-DOS-style.
2021-06-19 23:11:51 -04:00
Thomas Harte
61c127ed2e
Adds Enterprise as a File -> New... machine.
...
And, similarly, exposes it for the route used by SDL.
2021-06-14 20:55:39 -04:00
Thomas Harte
ceae81a332
Add missing header.
2021-05-13 19:11:19 -04:00
Thomas Harte
50ea56e908
Adds support for Macintosh SCSI device images.
...
This is now in addition to the single-partition images previously supported.
2021-05-13 19:06:00 -04:00
Thomas Harte
20c814a4dd
Factors out boilerplate around full-device sector images.
2021-05-01 21:10:46 -04:00
Thomas Harte
4919786825
Relaxes Oric .tap signature check.
2021-04-29 18:00:02 -04:00
Thomas Harte
708c24cc57
This field is counted in half-cycles.
2021-04-26 21:20:32 -04:00
Thomas Harte
7fb3048257
Update AllDisk and AllTape.
2021-04-26 21:04:25 -04:00
Thomas Harte
b7a62e0121
Adds SZX support.
...
Tweaking exposed Spectrum state object as relevant.
2021-04-26 20:47:28 -04:00
Thomas Harte
3348167c46
Ensures AY registers are conveyed.
2021-04-26 17:39:11 -04:00
Thomas Harte
5e08d7db39
Carries through paging state; avoids file rereads.
2021-04-25 20:46:49 -04:00
Thomas Harte
c34cb310a8
Switches to more straightforward handler for .z80-style compression.
2021-04-25 18:07:36 -04:00
Thomas Harte
8d86aa69bc
Adds an assert to check handling of compressed data.
2021-04-25 18:02:31 -04:00
Thomas Harte
cc41ccc5f1
Adds RAM deserialisation.
2021-04-25 17:55:52 -04:00
Thomas Harte
e6252fe0ed
Sneaks up towards loading RAM.
2021-04-25 17:34:43 -04:00
Thomas Harte
03577de675
Adds an empty vessel for .z80 support.
2021-04-25 16:54:34 -04:00
Thomas Harte
d80f03e369
Corrects longstanding deviation from naming convention.
2021-04-25 14:11:36 -04:00
Thomas Harte
fd271d920b
Adds capture and forwarding of border colour.
2021-04-25 14:00:12 -04:00
Thomas Harte
9b65d56ed0
Resolves potential flaw in POPping here.
2021-04-25 13:26:53 -04:00
Thomas Harte
a5098a60ec
Attempts to get in-SNA software to start.
2021-04-25 13:18:26 -04:00
Thomas Harte
7aeb17ac92
Corrects HeaderDoc/etc directive.
2021-04-25 13:01:23 -04:00
Thomas Harte
cc78bfb229
Forwards most of the Z80 state.
2021-04-25 13:00:43 -04:00
Thomas Harte
485c2a866c
Without yet a struct for Spectrum states, at least checks general wiring.
2021-04-24 23:38:00 -04:00
Thomas Harte
14ae579fca
Add further note to future self.
2021-04-24 23:19:41 -04:00
Thomas Harte
d61f478a39
Basic sketch for state snapshots: an extra field on Target.
...
I think it doesn't make sense for states to own a target as that complicates the concept of Media. Plus they're distinct because it makes sense to have only one per Target. Let's see how this pans out.
2021-04-24 23:17:47 -04:00
Thomas Harte
e52649f74d
Normalises logging.
2021-04-04 17:39:49 -04:00
Thomas Harte
51b8dcd011
Fixes is_at_end
— must be at end of file and have finished final block.
2021-03-28 23:25:29 -04:00
Thomas Harte
cc3c3663f6
Makes minor style improvements.
2021-03-22 19:55:03 -04:00
Thomas Harte
388b136980
Relaxes test for a valid TAP.
2021-03-21 20:31:09 -04:00
Thomas Harte
09a6a1905b
Implements TAP support.
2021-03-19 23:29:09 -04:00
Thomas Harte
2ad2b4384b
Introduces a container for ZX Spectrum-style TAPs.
2021-03-19 23:01:49 -04:00
Thomas Harte
54491b35ef
Merge branch 'master' into ZXSpectrum
2021-03-17 12:39:20 -04:00
Thomas Harte
b447f5f174
Starts adding the Spectrum to the static analyser.
2021-03-17 12:38:37 -04:00
Thomas Harte
d368dae94a
Adds tape motor LED.
2021-03-12 23:09:51 -05:00
Thomas Harte
a32a2f36be
Advances to correctly reading bytes.
...
Something is still amiss though. Maybe I'm supposed to update the checksum?
2021-03-12 19:15:35 -05:00
Thomas Harte
064fe7658c
Adds necessary interface to inherit a CPC tape-speed byte.
2021-03-12 18:43:20 -05:00
Thomas Harte
f190a1395a
Enables detection of CPC-format tape data.
...
It turns out that the Spectrum's timings are its alone; speed autodetection added.
2021-03-10 22:02:10 -05:00
Thomas Harte
4eaf3440bd
Add note to self.
2021-03-07 21:21:58 -05:00
Thomas Harte
f985248902
Add header for memcpy.
2021-03-07 21:20:35 -05:00
Thomas Harte
5c90744f0c
More minor style improvements.
2021-03-07 20:49:40 -05:00
Thomas Harte
e9177bbb2a
Makes an attempt to parse headers.
2021-03-07 20:49:09 -05:00
Thomas Harte
ab5e4ca9c7
Factors proceed_to_symbol
upwards.
2021-03-07 20:48:51 -05:00
Thomas Harte
40516c9cec
Minor style improvements: some local const
s, and override
s.
2021-03-07 15:56:58 -05:00
Thomas Harte
d93d380c88
Adds bit-level Spectrum-style tape parsing.
...
More to do, obviously.
2021-03-07 15:51:25 -05:00
Thomas Harte
772093c311
Add missing header.
2021-02-16 22:51:57 -05:00
Thomas Harte
bd54e30748
Adds workaround for Sweet 16, which can produce bad data.
2021-02-16 22:21:10 -05:00
Thomas Harte
6526c645a5
Merge branch 'master' into AppleIIgs
2021-02-02 21:29:38 -05:00
Thomas Harte
2a8e8a4982
Slightly increases logging.
2021-02-02 20:24:19 -05:00
Thomas Harte
07df7572b3
Switch to preferred Acorn-world extension: DAT.
2021-01-31 21:03:09 -05:00
Thomas Harte
906b6ccdb7
This appears to be sufficient for the Electron to _read_ SCSI.
...
So that's step one.
2021-01-31 18:36:29 -05:00
Thomas Harte
f1ba040dd8
This is probably how Acorn hard disk images look (?)
2021-01-31 16:00:52 -05:00
Thomas Harte
b5ecd5f7ef
Merge branch 'master' into AppleIIgs
2021-01-31 11:47:40 -05:00
Thomas Harte
ac95e4d758
Adds support for ADL-format disk images.
2021-01-30 18:39:29 -05:00
Thomas Harte
0bd3103949
Wires in the most common IIgs style of 2MG.
2020-11-24 18:19:34 -05:00
Thomas Harte
9a819d6ca0
Transcribes interesting 2MG fields, albeit without acting on them.
2020-11-23 22:02:32 -05:00
Thomas Harte
b4bf541eec
Adds boilerplate route into a 2MG-handling class.
2020-11-23 21:42:18 -05:00
Thomas Harte
cddd72876f
Flips meaning of ejected bit, to please the IIgs.
2020-11-18 17:20:48 -05:00
Thomas Harte
da8563733b
Adds an informal guarantee.
2020-11-16 19:53:17 -05:00
Thomas Harte
e41faeb557
Adds a quick protection against sector ID buffer overrun.
2020-11-16 19:52:42 -05:00
Thomas Harte
a2a928e262
Takes a guess at the format of IIgs .po files; wires them through to the actual machine.
...
... which still declines to boot.
2020-11-12 18:01:26 -05:00
Thomas Harte
5287c57ee0
Adds the IIgs as a user-selectable machine.
...
Albeit that there is no underlying machine yet.
2020-10-20 22:18:11 -04:00
Thomas Harte
82d6a5387f
Gives Qt disk controllers independent ROM/RAM selection logic.
...
In particular, this fixes the Microdisc.
2020-07-29 21:06:41 -04:00
Thomas Harte
b961665985
Ensures WOZ2 behaviour even if type_
has an invalid value.
...
This pleases GCC 7.
2020-07-24 21:56:20 -04:00
Thomas Harte
8af35bc6bb
Resolves signed comparison mismatches.
2020-07-24 21:55:33 -04:00
Thomas Harte
5ebbab6f35
Further relax Apple GCR static analysis requirements.
2020-07-20 19:50:33 -04:00
Thomas Harte
84dd194afd
Corrects test for ::tracks_differ.
2020-07-20 19:48:20 -04:00
Thomas Harte
47f121ee4c
Mark WOZs as read-only, with exposition as to why.
2020-07-19 00:08:49 -04:00
Thomas Harte
d8b699c869
Corrects index pulse signalling.
2020-07-19 00:06:27 -04:00
Thomas Harte
a7855e8c98
Ensure float literals are floats.
2020-07-17 23:18:41 -04:00
Thomas Harte
8dcb48254a
Simplifies calculations very slightly.
2020-07-17 23:18:08 -04:00
Thomas Harte
f6b7467d75
Implement custom tracks_differ
; support WOZ 2 3.5" drive geometry properly.
2020-07-17 22:09:55 -04:00
Thomas Harte
9d1d162cc8
Add an ability to avoid track flushing when file formats have sub-track precision.
2020-07-17 22:09:21 -04:00
Thomas Harte
4ee29b3266
Switches disk seeking logic fully to floating point.
2020-07-17 22:08:58 -04:00
Thomas Harte
c7ef258494
Ensures that five-and-three sectors pass static analysis.
2020-07-16 21:44:14 -04:00
Thomas Harte
4fec7c82ab
Very minor grammar improvement.
2020-07-16 21:43:03 -04:00
Thomas Harte
9a952c889f
Fixes exit from random gain noise.
2020-07-15 22:44:54 -04:00
Thomas Harte
8da7806ee9
Liberalises segment parser not necessarily to require a standard epilogue.
...
It seems that real disks don't always have them; I guess the boot ROM doesn't require one.
2020-07-15 22:27:04 -04:00
Thomas Harte
aed61f6251
Implements latest advocated MC3470 behaviour.
2020-07-15 19:34:05 -04:00
Thomas Harte
d065d6d98f
Adds read-only WOZ 2 support.
2020-07-15 19:15:03 -04:00
Thomas Harte
68645742f7
This is a deliberate fallthrough.
2020-06-20 00:12:08 -04:00
Thomas Harte
59458f6444
Resolves errant spaces.
2020-06-16 23:15:38 -04:00
Thomas Harte
495024d6fe
Cleans up all redundant lock/unique_guard declarations.
2020-06-15 00:24:10 -04:00
Thomas Harte
73131735fa
Further qmake warning corrections.
2020-05-30 19:31:17 -04:00
Thomas Harte
48afc54af6
Cuts down unused parameter warnings to just a few that may well indicate implementation errors.
2020-05-30 01:06:43 -04:00