Thomas Harte
b514756272
Adds the option to run machines at a multiple of their real speeds.
...
Exposed to SDL users only, for now.
2020-01-26 13:25:23 -05:00
Thomas Harte
294e09f275
All these 'override's can be 'final's.
...
At least for the purpose of being communicative. I doubt there's much to gain in terms of compiler output — the DiskImageHolder can avoid some virtual lookups but nothing else leaps out.
2020-01-23 22:57:51 -05:00
Thomas Harte
d97a073d1b
Adds the necessary routine for all machines to be able to respond to get_scan_status.
...
They all just as the CRT, as all are currently based on the CRT. Which doesn't currently know the total clock rate it would need to in order properly to scale the answer to the question. Further thought coming.
2020-01-20 21:45:10 -05:00
Thomas Harte
cb61e84868
Starts building out higher-level run_until
functionality.
...
Specifically: you can now run until the next set of speaker samples has been delivered.
2020-01-20 12:12:23 -05:00
Thomas Harte
1b4b6b0aee
Renames: NumberTheory -> Numeric.
2020-01-19 23:14:35 -05:00
Thomas Harte
98f7662185
Force BASIC 1.0 for the BD-500.
2020-01-14 23:33:52 -05:00
Thomas Harte
1cbcd5355f
Adds a detector and enumerated Byte Drive 500 disk interface type.
2020-01-14 21:55:04 -05:00
Thomas Harte
985b36da73
Starts towards STX support.
2020-01-07 23:21:32 -05:00
Thomas Harte
3ced31043a
Makes Jasmin autoboot optional, adds a Jasmin reset key, adds the Jasmin to File -> New... .
...
Also finally implements KeyNMI.
2020-01-05 21:57:33 -05:00
Thomas Harte
09289f383d
Makes an effort to detect Jasmin disks, and flags the target if found.
...
It'll try the Jasmin only if the Microdisc check fails; this is because the latter is preferable — it automatically boots, and is much better tested in Clock Signal terms.
2020-01-05 18:44:58 -05:00
Thomas Harte
f8dd33b645
Adds necessary header for strcmp
.
2019-12-26 22:53:09 -05:00
Thomas Harte
de43e86310
Permits Vic-20 memory to be specified in banks; adds recognition of TheC64-style file tags to specify them.
2019-12-26 22:49:48 -05:00
Thomas Harte
0dae608da5
Embraces std::make_[unique/shared] in place of .reset(new .
2019-12-23 21:31:46 -05:00
Thomas Harte
05d77d3297
Also deploys make_unique/shared to avoid type repetition.
2019-12-21 23:52:04 -05:00
Thomas Harte
e9318efeb6
Switches to std::make_shared/make_unique in a bunch of applicable places.
...
No doubt many more similar improvements are available, these are just the ones that were easy to find.
2019-12-21 23:34:25 -05:00
Thomas Harte
2c4f372872
Adds support for the .ST file format.
2019-11-12 23:23:14 -05:00
Thomas Harte
2c25135d8a
Fixes const correctness for joystick machines; the ST is now one such.
2019-11-09 18:19:05 -05:00
Thomas Harte
8b397626bf
Adds a route through the static analyser to the Atari ST.
2019-10-20 20:38:54 -04:00
Thomas Harte
0da1881a07
Adds an Atari ST enumeration and factory method.
2019-10-20 20:38:54 -04:00
Thomas Harte
5598802439
Makes the static analyser aware of mass-storage devices.
2019-08-25 15:10:09 -04:00
Thomas Harte
2d82855f26
Attempts to provide a data out phase.
2019-08-22 23:16:58 -04:00
Thomas Harte
b1f04ed96d
Eliminates the crutch of PlusToo BIN files.
...
Thereby returning the .bin extension to the various consoles.
2019-07-28 16:07:16 -04:00
Thomas Harte
bcbda4d855
Adds .image as a synonym of .img.
2019-07-16 21:44:59 -04:00
Thomas Harte
4860d8a7df
Adds ask as a synonym of img.
2019-07-11 22:56:29 -04:00
Thomas Harte
68a3e5a739
Renamed DiskCopy42 to MacintoshIMG, now that it's not just DiskCopy 4.2 files.
2019-06-18 14:32:58 -04:00
Thomas Harte
124c7bcbb0
Makes the Macintosh a mouse machine, and makes mouse machines detectable.
2019-06-11 18:21:56 -04:00
Thomas Harte
7591906777
Numerous IWM fixes: the machine now seems to be trying to measure the tachometer.
2019-06-06 18:32:11 -04:00
Thomas Harte
b8a1553368
Adds putative support for PlusToo-style BIN files.
...
Albeit a bit of a guess, since it's not intended to be an emulator file format.
2019-06-04 21:41:09 -04:00
Thomas Harte
1328708a70
Switches to testing against the Mac Plus ROM.
...
Immediately uncovering an issue with JMP.
2019-06-03 14:54:18 -04:00
Thomas Harte
85298319fa
Expands towards supporting multiple Macintosh models.
...
To provide another variable to help with bug isolation.
2019-06-03 14:50:36 -04:00
Thomas Harte
881feb1bd3
Adds preliminary parsing of the Disk Copy 4.2 format.
2019-06-02 13:39:25 -04:00
Thomas Harte
5f385e15f6
Adds the bare bones necessary to be able to create a Macintosh from File -> New... .
2019-05-03 22:16:07 -04:00
Thomas Harte
d97348dd38
Eliminates dangling uses of printf
.
2019-03-02 18:07:05 -05:00
Thomas Harte
903f9b5240
Gives the static analyser an opinion, at least.
2019-02-28 20:59:07 -05:00
Thomas Harte
816ad0a94c
Introduces region support to the MSX.
2019-02-28 20:54:43 -05:00
Thomas Harte
b0503efa3d
Resolves a potential deadlock on multi machine handover.
2019-02-27 22:39:33 -05:00
Thomas Harte
b75ad3def2
Updates the multimachine for the ScanTarget world.
2019-02-03 15:07:22 -05:00
Thomas Harte
ee89be6730
Removes many stray spaces.
2018-11-23 22:32:32 -05:00
Thomas Harte
8a699b6072
Kills setup_output
definitively, saving some indirection. set_scan_target
takes its place.
2018-11-14 21:52:57 -05:00
Thomas Harte
b40211d2c0
Starts to bend 'CRTMachine' to a world farther from owning the GPU relationship.
2018-11-03 21:54:25 -04:00
Thomas Harte
8730ffb4e2
Restores multi-machine keyboard propagation.
2018-10-24 22:20:58 -04:00
Thomas Harte
a8645f80bf
Introduces 'non-exclusive' emulator-space keyboards.
...
i.e. sets of keys that don't amount to an entire keyboard in the modern sense. Experimentally used by the Master System for its reset key.
2018-10-24 21:59:30 -04:00
Thomas Harte
00e7958a97
Separates request for an SMS2 VDP from current graphics mode.
...
Thereby fixes various minor segments of Codemasters games.
2018-10-23 22:19:45 -04:00
Thomas Harte
3b164e5ffe
Adds missing #includes.
2018-10-19 22:20:23 -04:00
Thomas Harte
fa77d81813
Corrects test for whether to consider a European or American region.
2018-10-19 21:35:52 -04:00
Thomas Harte
f0b6c406ff
The Sega static analyser now attempts to differentiate region and paging scheme.
2018-10-19 20:32:09 -04:00
Thomas Harte
00b2db4fb9
Ensures the Master System is informed when it should pretend to be an SG1000.
2018-09-23 16:34:47 -04:00
Thomas Harte
9683c8f664
Advances towards the Master System actually receiving interrupts.
2018-09-23 15:58:23 -04:00
Thomas Harte
0d01346ad4
Advertises SMS support and goes as far as realising it needs to spawn a Master System.
2018-09-20 22:04:28 -04:00
Thomas Harte
a13eb351da
Implements the Enhanced IIe, other than some text selection errors.
2018-08-11 10:26:30 -04:00
Thomas Harte
33ea90678c
Relaxes ColecoVision cartridge size test.
2018-08-04 21:40:02 -04:00
Thomas Harte
a533d09fe7
Sets the IIe as the default model.
2018-07-30 23:07:34 -04:00
Thomas Harte
ede2696a77
Edges further towards implementing the IIe video subsystem.
...
All video-specific switches are in place, and mostly honoured, and a IIe machine configuration is advertised at least.
2018-07-24 22:15:42 -04:00
Thomas Harte
57f161e64c
Corrects documentation of the media target.
2018-07-10 21:42:09 -04:00
Thomas Harte
7e58a44771
Renames ConfigurationTarget
to MediaTarget
as per its newly-reduced interface.
2018-07-10 21:32:28 -04:00
Thomas Harte
3862fdb44c
Simplifies initialisation procedure for all machines.
...
With the side effect of allowing every machine to try to load only the ROMs that it needs.
2018-07-10 20:00:46 -04:00
Thomas Harte
2954373115
Introduces an intermediary for digital <-> analogue conversion.
2018-06-11 21:35:03 -04:00
Thomas Harte
3ea2a4ccb8
Moves the joystick class towards accepting analogue inputs.
2018-06-10 20:45:52 -04:00
Thomas Harte
dfa5eef20d
Switches the command to issue to capitals; the Pravetz redefines lowercase as non-Latin.
2018-05-13 19:30:44 -04:00
Thomas Harte
484e640d43
Removes stray non-ASCII typo.
2018-05-13 15:37:35 -04:00
Thomas Harte
5d6b5d9f10
Eliminates all emdashes in cross-platform code.
2018-05-13 15:34:31 -04:00
Thomas Harte
0b771ce61a
Removes all instances of the copyright symbol.
2018-05-13 15:19:52 -04:00
Thomas Harte
ef19a03efc
Drives can now deliver activity events.
2018-05-10 21:54:10 -04:00
Thomas Harte
95f859cf5c
Merge branch 'master' into ActivityReceiver
2018-05-10 20:26:50 -04:00
Thomas Harte
c3a2f7717b
Makes attempt to implement support for the Pravetz 8D + 8DOS.
...
i.e. the Disk II wired up to the Oric, with some ROM swaps.
2018-05-08 22:05:43 -04:00
Thomas Harte
70e6c3b2f6
Introduces the ActivityObserver
protocol for LEDs, drive events, etc.
...
The Electron's caps lock LED is the test case.
2018-05-07 21:57:54 -04:00
Thomas Harte
f65c65569a
Makes disk head position explicitly something with sub-integral precision.
...
Also as a drive-by fix, corrects accidental assumption of 10 sectors for all MFMSectorDump descendants.
2018-05-06 23:17:36 -04:00
Thomas Harte
d6e8b34942
Ensures media is passed on from the Disk II analyser.
2018-05-05 20:32:47 -04:00
Thomas Harte
1293d8b69e
Corrects various indentation errors.
2018-05-05 19:32:20 -04:00
Thomas Harte
3e0055737e
Adds a genuine attempt to discern Pravetz disks from Apple.
2018-05-05 19:32:08 -04:00
Thomas Harte
ba7fbc4032
Reroutes all Disk II types through the Disk II analyser and returns actual sector from the Apple GCR parser results.
2018-05-05 16:37:33 -04:00
Thomas Harte
c36d7b4972
Makes first attempt at 6 and 2 decoder.
2018-05-04 23:11:12 -04:00
Thomas Harte
e3b4aebf1a
Introduces the Disk II as a unique media target platform.
...
As it makes a little more sense to analyse Apple GCR images to determine target platform than it does to have the potential platforms vote over them.
Also starts on the parser that'll be necessary for making a decision.
2018-05-04 18:02:36 -04:00
Thomas Harte
723ee88043
Introduces configuration options for the Apple II.
...
Specifically: II or II+? Disk II 13- or 16-sector? Or not at all?
2018-05-03 19:37:32 -04:00
Thomas Harte
f4097290c2
Made various corrections following a quick for-loop constness audit.
2018-04-30 22:23:57 -04:00
Thomas Harte
a9d4fe0b41
Introduces filetype wiring for DO and PO files.
...
Also corrects sector numbering logic to ensure there is a sector 15.
2018-04-29 16:34:10 -04:00
Thomas Harte
b98d5b790a
Finally unifies disk image file exceptions, and adds a placeholder for Apple DSK.
2018-04-27 23:18:45 -04:00
Thomas Harte
7463edaa1b
Attempts to bring card support to the Apple II, and adds a 'has disk' flag.
2018-04-23 21:14:45 -07:00
Thomas Harte
e92e06a5f4
Doubled down on the ROMMachine::ROMFetcher typedef.
2018-04-23 20:20:14 -07:00
Thomas Harte
d447e81abd
Adds provisional support for WOZ files.
2018-04-23 19:57:45 -07:00
Thomas Harte
6592745e53
Adds the bare minimum to respond to attempts to open NIB files with an Apple II.
2018-04-21 21:21:57 -07:00
Thomas Harte
e599e65087
Switches to use of the TargetList
typedef wherever possible.
2018-04-14 19:46:38 -04:00
Thomas Harte
7efee9b52b
Does the bare minimum to create a class skeleton for Apple II implementation.
2018-04-14 19:46:15 -04:00
Thomas Harte
079dc671e1
Rationalises per-machine static analyser call pattern, and adds Apple II as an option.
2018-04-14 12:12:12 -04:00
Thomas Harte
44513d6912
Ensures a 1540 is requested if any disks are present.
2018-04-08 17:37:39 -04:00
Thomas Harte
78c612ca17
Adds a missing import, removes a redundant conversion.
2018-04-06 20:07:10 -04:00
Thomas Harte
e1c4035812
Switches away from C strings and allows Vic-20 region inference from filenames.
2018-04-06 17:42:24 -04:00
Thomas Harte
69f520428d
Makes a first, ugly attempt at a 'new machine' dialogue for the Mac.
...
Which has implied getting much more specific about MSX disk drive attachment, and has prompted an excuse to offer the ZX80 with the ZX81 ROM.
2018-04-02 22:42:41 -04:00
Thomas Harte
9c75689a8d
Increased verbosity.
2018-03-31 20:58:16 -04:00
Thomas Harte
a2da51c30b
Commutes Vic-20 machine configuration options to its Target.
2018-03-26 19:01:57 -04:00
Thomas Harte
e15d6717a1
Strips back Vic-20 static analysis to the bare minimum.
...
Also corrects an unsafe assumption in fast loading.
2018-03-25 13:37:33 -04:00
Thomas Harte
d0c53de250
Corrects nullptr references in the CPC static analyser.
2018-03-23 18:39:37 -04:00
Thomas Harte
6656a08c60
Introduces missing #includes.
2018-03-23 18:05:51 -04:00
Thomas Harte
eea6858121
Resolves undefined behaviour from uninitialised limited-range values.
2018-03-22 21:58:42 -04:00
Thomas Harte
4695296ef2
Corrects bit mask for offering HFE around.
2018-03-22 20:23:39 -04:00
Thomas Harte
0fdbbeca1d
Ensures the Commodore parser properly rejects non-GCR disks.
2018-03-22 20:23:21 -04:00
Thomas Harte
1acdab9448
Expanded potential HFE targets to everything other than the MSX.
...
The MSX does not yet perform any sanity checks on disks. That's TODO.
2018-03-22 18:55:52 -04:00
Thomas Harte
93e85c5c4a
The CPC now accepts disks only if it can make sense of them.
2018-03-22 18:52:43 -04:00
Thomas Harte
cd0fb7624b
Pulls delegate messages out of the critical sections.
2018-03-22 11:08:07 -04:00
Thomas Harte
bae38497bb
Implements multitarget joysticks.
2018-03-22 11:07:52 -04:00