Thomas Harte
7f8a13a409
Adds bare minimum to get accepted 16- and 32kb cartridges to start on the MSX.
2017-12-02 16:06:04 -05:00
Thomas Harte
ca26ce8400
Slightly corrects style errors in the Cartridge hierarchy, and introduces mapping of .ROM to the MSX when appropriate.
2017-12-02 16:01:30 -05:00
Thomas Harte
68a2895753
Adds enough static analyser to get to the MSX itself as the point of failure in SDL/kiosk mode.
2017-11-25 13:18:24 -05:00
Thomas Harte
7b25b03cd5
Formally standardises machine options and introduces a --help option for the SDL target.
2017-11-20 21:55:32 -05:00
Thomas Harte
d2ba7d7430
Corrects GCC warnings in Commodore::File and the FileHolder.
2017-11-12 17:38:21 -05:00
Thomas Harte
2e15fab651
Doubles down on <cX> over <X.h> for C includes, and usage of the namespace for those types and functions.
2017-11-11 15:28:40 -05:00
Thomas Harte
d9e56711ce
Corrects order-of-initialisation errors in the Amstrad CPC, Vic-20, Oric, Commodore File, MFM disk controller, UEF and Commodore tape parser.
2017-11-10 22:47:10 -05:00
Thomas Harte
c0055a5a5f
Further builds up SConstruct, correcting many missed imports and a couple of improper uses of C99 in C++ code.
2017-11-09 22:04:49 -05:00
Thomas Harte
f95515ae81
Eliminates a large number of instance of end-of-line tabs.
2017-11-07 22:51:06 -05:00
Thomas Harte
f807a6b608
Generalises the concept of multiple samplings of an FM/MFM sector, simplifying CPC DSK support and paving the way for generic weak/fuzzy bit support.
2017-10-31 21:32:28 -04:00
Thomas Harte
ad9df4bb90
Commutes uint8_t *
, uint16_t *
, uint32_t *
, size_t
, off_t
and long
to functional-style casts.
2017-10-21 22:30:15 -04:00
Thomas Harte
e983854e71
Converts all uint8_t
and uint16_t
casts to the functional style.
2017-10-21 21:50:53 -04:00
Thomas Harte
ec999446e8
Commutes int
and unsigned
casts to the functional style.
2017-10-21 21:00:40 -04:00
Thomas Harte
5e3e91373a
Switches all unsigned int
and double
casts to functional style.
2017-10-21 19:49:04 -04:00
Thomas Harte
698ffca51b
Recasts the [M]FM parser in terms of the new factoring.
...
Temporarily breaks SSD writing support.
2017-09-29 20:08:36 -04:00
Thomas Harte
631f630549
Severs the MFM parser from the overweight single MFM.hpp.
2017-09-24 20:31:19 -04:00
Thomas Harte
2a08bd9ecc
Factors shifting plus stateful [M]FM token recognition out of the MFMDiskController.
...
Given the proliferation of MFM-related classes, establishes a subdirectory for them.
2017-09-24 20:07:56 -04:00
Thomas Harte
698e4fe550
Tidies the Disk
file hierarchy.
2017-09-22 22:39:23 -04:00
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
5fbea625ae
Switches the CPC static analyser to maintaining a vector of pointers rather than a complete copy of files.
...
Hence saves a lot of copying and moving — around a second's worth when dealing with the selected test disk.
2017-09-16 20:15:06 -04:00
Thomas Harte
ac57b37e96
Eliminates repetition of the 'untypable character' test.
2017-09-16 19:46:41 -04:00
Thomas Harte
e071123f90
Adds a test that file extension also be typeable.
2017-09-16 19:10:17 -04:00
Thomas Harte
da082673d7
Drives now have a finite number of heads.
...
The Amstrad volunteers itself to be single sided. Everything else stays as it was.
2017-09-15 21:18:36 -04:00
Thomas Harte
96bf133924
Withdraws requirement for DiskController users to specify a PLL multiplier or to provide rotation speed.
...
In the latter case because it's no longer of any interest to the controller, and in the former because I'd rather it be picked automatically.
2017-09-10 22:56:05 -04:00
Thomas Harte
0622187ddf
Strips Controller of all capabilities now housed on the Drive.
2017-09-10 19:23:23 -04:00
Thomas Harte
90c7056d12
Started devolving timed event loop logic down to the drives, moving them closer to modelling real life.
2017-09-10 14:43:20 -04:00
Thomas Harte
3544c0f014
Switches from testing size() != 0 to empty() != true.
...
Partly as size() is O(n) but empty is O(1), but primarily for style.
2017-09-04 20:54:38 -04:00
Thomas Harte
63ee8c9d58
Uses file containers' type distinguishers where available, and supplies potential insight to the ZX80/81 analyser as now required.
2017-08-27 15:20:58 -04:00
Thomas Harte
437023bff6
Expands to take an already-accrued list of potential platforms, as that may indicate that one or the other of the ZX80 and ZX81 is already out of contention and therefore save the need to attempt analysis.
2017-08-27 15:20:22 -04:00
Thomas Harte
9aa150c338
Abstracts the target platform type out from the static analyser's ownership.
2017-08-27 15:02:13 -04:00
Thomas Harte
c6e6c3fcfb
Resolves all current analyser warnings.
2017-08-24 22:18:44 -04:00
Thomas Harte
e6683e7f2d
Added the base skeletal stuff of HFE support.
2017-08-17 21:48:48 -04:00
Thomas Harte
5b3c707959
Generalised: an acceptable boot sector is acceptable even if no valid CP/M catalogue is found anywhere.
2017-08-17 14:28:16 -04:00
Thomas Harte
da3e8655e9
Withdrew some caveman debugging nonsense.
2017-08-17 13:25:19 -04:00
Thomas Harte
41e4386164
Added another "one thing is different" test: one thing has a different file name. Also decided to right-time the type (/extension) as well as the file name.
2017-08-17 13:21:48 -04:00
Thomas Harte
b0a98bd239
Added nuance: file names with unprintables are filtered, and then system files are considered if there are no remaining non-system files.
2017-08-17 12:48:15 -04:00
Thomas Harte
f68565a33f
Split the static analyser functionality so that it's possible just to ask for the set of media implied by a particular file. Extended ConfigurationTarget so that media alone can be pushed to a machine.
2017-08-17 10:48:29 -04:00
Thomas Harte
76c6b715a2
Adjusted rules so as not to type unnecessary spaces in the name, and to include the extension if AMSDOS won't imply it.
2017-08-16 22:24:37 -04:00
Thomas Harte
48290a8bbe
Added a prefilter to catalogues to remove system files. They're not listed when you CAT
, so almost certainly aren't what a user would be expected to load.
2017-08-16 22:11:49 -04:00
Thomas Harte
9d9a1c341d
Added an extra test to try to avoid spurious |cpm launches.
2017-08-16 21:55:31 -04:00
Thomas Harte
0e083e9dc6
Factored composition of a run command out, as I think I need to worry about extensions, and can trim spaces.
2017-08-14 09:48:56 -04:00
Thomas Harte
bfe297052d
Picked up another subtlety: disk names may be outside of the ones a user could type, in which case they definitely don't affect the decision.
2017-08-11 18:59:38 -04:00
Thomas Harte
7e35e44934
Added an extra sanity check on treating system disks as system disks.
2017-08-11 18:46:39 -04:00
Thomas Harte
83c7d34df2
Switched to populating the sector cache with everything in a track the first time anything on that track is requested. That avoids the problem whereby each request of a non-existent sector costs two spins.
2017-08-11 18:40:16 -04:00
Thomas Harte
44dace2eef
Made an attempt not to interrogate files that definitely don't have the normal header.
2017-08-11 16:34:29 -04:00
Thomas Harte
23c149368b
Broadened CPC data disk analysis to spot when there is only one implicitly-runnable file, rather than only one without suffix.
2017-08-11 16:23:00 -04:00
Thomas Harte
4b7c504d22
Corrects analysis of system disks — they have a catalogue that is correct read, but can be launched without reference to it.
2017-08-11 15:55:33 -04:00
Thomas Harte
1f2bfc9581
Ensured tape loading really begins.
2017-08-11 12:30:36 -04:00
Thomas Harte
14ab03d1e0
Added a further fallback: if all files have an extension but one doesn't, take that one.
2017-08-11 12:27:50 -04:00
Thomas Harte
dea782cff9
Added a "yeah, I don't know" fallback.
2017-08-11 10:47:45 -04:00