Thomas Harte
a71c5946f0
Ensures proper manipulation of scan_statuses, leading to the correct result out of a CRTMachine.
...
Possibly with the exception of the TMS, as I appear to have uncovered an unrelated issue there.
2020-01-21 22:28:25 -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
c1bae49a92
Standardises on read
and write
for bus accesses.
...
Logic being: name these things for the bus action they model, not the effect they have.
2020-01-05 13:40:02 -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
5456a4a39d
Eliminates static
where constexpr
a aren't class members; adds some if constexpr
s for clarity.
2019-12-22 13:42:24 -05:00
Thomas Harte
274867579b
Deploys constexpr
as a stricter const
.
2019-12-22 00:22:17 -05:00
Thomas Harte
05d77d3297
Also deploys make_unique/shared to avoid type repetition.
2019-12-21 23:52:04 -05:00
Thomas Harte
860837d894
Corrects: KeyPad -> Keypad. Also fleshes out Atari ST keyboard mapping.
2019-11-09 18:02:14 -05:00
Thomas Harte
1c154131f9
Expands size of storage in Cycles/HalfCycles; adjusts widely to compensate.
2019-10-29 22:36:29 -04:00
Thomas Harte
97eff5b16d
Formally distinguishes Macintosh keys from virtual keys.
...
Also: adds mappings for keypad keys, and corrects a couple of
long-standing capitalisation errors in my virtual key set.
2019-08-02 16:15:34 -04:00
Thomas Harte
5149f290d0
Starts trying to formalise just-in-time execution.
...
Which, at least, simplifies Cycle/HalfCycle to Cycle run_for usage via template.
2019-07-28 21:49:54 -04:00
Thomas Harte
2432151bf8
Puts machine name into ROMMachine::ROM.
...
Also switches to idiomatic exit codes.
2019-07-22 21:14:21 -04:00
Thomas Harte
f3aac603f8
Adds extended Introduces extended ROM details for the C1540, Electron, Master System and MSX.
2019-07-20 21:30:37 -04:00
Thomas Harte
20670bab2f
Expands information included in ROM load requests.
2019-07-19 22:35:22 -04:00
Thomas Harte
96c0253ee2
Fixes mouse input when a button is pressed; attempts keyboard input.
...
I think the VIA is somehow sending spurious commands.
2019-07-02 21:14:33 -04:00
Thomas Harte
3cb042a49d
Corrects the carry and extend flags for various long-word operations.
2019-04-21 22:08:18 -04:00
Thomas Harte
3862a93ff9
Removes mapping of the equals key to break.
...
... because I keep pressing it by accident.
2019-02-28 21:47:12 -05:00
Thomas Harte
601961deeb
Wires through set_display_type
.
2018-11-29 20:44:21 -08:00
Thomas Harte
64465f97b6
Starts towards reintroducing the proper mechanisms for selecting a display type at runtime.
2018-11-28 17:53:33 -08:00
Thomas Harte
a6383247fc
Attempts further to ensure proper CRT signalling.
2018-11-26 22:36:22 -05:00
Thomas Harte
b69ac4ec2f
Ensures video stability is no longer affected by transient allocation failures.
2018-11-25 22:04:04 -05:00
Thomas Harte
8f6664f0d7
Starts towards picking an input shader based on data type and pipeline.
2018-11-15 21:02:46 -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
6d277fecd5
Makes ScanTarget
a little more communicative and orthogonal.
2018-11-10 19:52:57 -05:00
Thomas Harte
55da1e9c0f
Simplifies semantics a little and starts accepting a single buffer of pixel data.
2018-11-06 22:23:38 -05:00
Thomas Harte
014da41471
Ensures scan positions are communicated with a specified range, and switches manner of pixel clock communication.
2018-11-04 21:06:25 -05:00
Thomas Harte
f6562de325
Possibly adds enough for the Electron and ZX80 to start outputting dummy lines.
...
Let's see!
2018-11-03 23:40:39 -04: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
da4d883321
Adds first, incomplete attempts to talk to a ScanTarget from the CRT.
...
Does away with the hassle of `unsigned` while I'm here; that was a schoolboy error.
2018-11-03 19:58:44 -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
868cd5cb09
Improves alignment request.
2018-09-12 20:27:02 -04:00
Thomas Harte
dec18d9acc
Restores full pixel output to the Electron.
2018-09-12 20:25:30 -04:00
Thomas Harte
a7508bc2ae
Switching explicitly to one pixel per sample eliminates the need for a bookender.
2018-09-12 20:11:17 -04:00
Thomas Harte
a38639d099
Eliminates the concept of an iCoordinate.
...
Real-life precision appears not to support the idea of sub-sample pixel storage.
2018-09-12 20:05:39 -04:00
Thomas Harte
be01203cc1
Starts to expand the range of supported 6502s.
...
This fully implements the NES 6502 because, well, it's virtually no extra work, and ensures that RDY takes effect on write cycles on 65C02s.
2018-08-13 22:17:22 -04:00
Thomas Harte
76a73c835c
Forces 6502 consumers to declare which model — the original, 65C02 or 65SC02.
...
All present machines use a regular 6502.
2018-08-06 20:06:07 -04:00
Thomas Harte
3c33ccd730
Eliminates various blank lines.
2018-07-28 10:52:34 -04:00
Thomas Harte
8503589828
Corrects failure to retain OS.
2018-07-10 22:05:50 -04:00
Thomas Harte
efd812cf22
Ensures no buffer overrun when installing the OS ROM.
2018-07-10 21:54:36 -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
c97c5fa03a
[Re-]recalibrates CRT retrace period and affected view windows.
...
In the hope of moving the CPC closer to the real CTM visible area.
2018-07-05 22:07:18 -04:00
Thomas Harte
154c89e041
Introduces a missing separator.
2018-06-21 20:01:04 -04:00
Thomas Harte
685a80f95b
Ensures the Electron Plus 3 properly announces drives to an activity observer.
...
Does away with lazy allocation as not all that helpful, and liable to cause complexity.
2018-06-18 21:49:57 -04:00
Thomas Harte
d576ff1172
Exposes DOS 3.3 acceleration as an option.
...
Albeit with an unhelpful label in the macOS GUI for now.
2018-06-10 18:28:29 -04:00
Thomas Harte
ad9b0cd4e3
Eliminates all endashes.
2018-05-13 15:43:03 -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
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