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
|
7af3de010e
|
Suspected my mode 1 interrupt timing might be off. Reminded myself of the sources. Persuaded myself that it wasn't. Added appropriate comments.
|
2017-08-23 22:25:31 -04:00 |
|
Thomas Harte
|
ee71be0e7e
|
Added the option not to include ready line support in the 6502 core, and took advantage of it in the Electron, Oric and Vic-20 implementations. Also tagged those as forceinline and/or override final where applicable.
|
2017-08-21 21:56:42 -04:00 |
|
Thomas Harte
|
49285e9caa
|
Attempted to implement Sleeper in Drive and therefore in DiskController. Also corrected a couple of nonconformant file names.
|
2017-08-20 11:54:54 -04:00 |
|
Thomas Harte
|
cedb809c21
|
Sketched out a protocol designed to save processing time on anything that may sleep — probably just disk controllers for now but one can easily imagine it being applicable to printers, and possibly sound chips with suitable changes in guarantee for sound packet receivers.
|
2017-08-20 10:53:25 -04:00 |
|
Thomas Harte
|
e6683e7f2d
|
Added the base skeletal stuff of HFE support.
|
2017-08-17 21:48:48 -04:00 |
|
Thomas Harte
|
378f231499
|
Fully wired in drag-and-drop for media insertion.
|
2017-08-17 11:00:08 -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
|
4c15e46fd1
|
Performed the normative removal from public view of Vic-20 implementation details. Which were hefty.
|
2017-08-16 16:05:30 -04:00 |
|
Thomas Harte
|
75208b0762
|
Moves the Electron implementation behind a more opaque interface, in line with changes elsewhere.
|
2017-08-16 15:33:40 -04:00 |
|
Thomas Harte
|
de1c526789
|
Cut the amount disclosed by the Atari 2600 for public inspection down to the minimum, relocating implementation into the .cpp.
|
2017-08-16 14:52:40 -04:00 |
|
Thomas Harte
|
148591b7f2
|
Hid most of the Oric innards, and corrected a potential multi-thread access error emanating from the Mac side of the world.
|
2017-08-16 14:35:53 -04:00 |
|
Thomas Harte
|
06e31f5102
|
Consequential to the 6502 change, severs the Atari 2600's cartridge container from its former attempt at runtime polymorphism, in favour of each cartridge's specific hardware being defined as a 'bus extender'.
|
2017-08-16 12:39:15 -04:00 |
|
Thomas Harte
|
3947347d88
|
Introduces active input handling for the AY and uses it in the CPC to give proper, active keyboard input, rather than push-on-select, which was only ever a temporary hack. Also maps a few more keys for the Amstrad.
|
2017-08-15 22:47:17 -04:00 |
|
Thomas Harte
|
6cfc3daacb
|
Introduced a test within the disk controller so as not to request illegal tracks from disks, instead automatically substituting an 'unformatted' track. Which is just empty.
|
2017-08-15 21:52:12 -04:00 |
|
Thomas Harte
|
2d81acb82e
|
Upped C++ standard to C++14 and added an #if that's intended to use the built-in std::gcd when compiled on C++17 or better. Fixed for new signedness warnings resulting for taking the step to C++14.
|
2017-08-11 19:18:45 -04:00 |
|
Thomas Harte
|
570d25214e
|
Made an initial attempt at typer support for the CPC.
|
2017-08-11 11:21:07 -04:00 |
|
Thomas Harte
|
6a65c7a52a
|
Started working on a CPC-oriented analyser; for now I just want to be able to make a good guess at the appropriate file to load from a disk. As it turns out, the CPC simply adopts the CP/M format, so a generic parser is appropriate. This is its beginning.
|
2017-08-10 17:10:21 -04:00 |
|
Thomas Harte
|
ad8c8166bc
|
Built in gamma conversion for all machines, assuming an output of 2.8 for PAL, 2.2 for NTSC.
|
2017-08-10 15:17:08 -04:00 |
|
Thomas Harte
|
4d60b8801c
|
Started trying to factor out just the PLL stream -> FM/MFM events part that is presently in the WD1770.
|
2017-08-05 22:26:15 -04:00 |
|
Thomas Harte
|
3e984e75b6
|
Strung up an empty shell that eventually should contain the 8272, and added appropriate IO decoding to the Amstrad.
|
2017-08-05 19:45:52 -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
|
bbb17acf3a
|
Expanded interface so that an external machine caller can request a string be typed without any knowledge of whatever it intends to do re: CharacterMappers. Which is immediately useful in paste functionality.
|
2017-08-03 11:50:50 -04:00 |
|
Thomas Harte
|
ad3a98387f
|
Within the Typer framework: hatched out CharacterMapper as a distinct thing from the target for keypresses, better to formalise responsibility but also to make it easy cleanly to sever that stuff into its own little part.
|
2017-08-03 11:42:31 -04:00 |
|
Thomas Harte
|
681d1e2f8d
|
Breaking its typer for now, adapted the ZX80/81 to having a Z80, not being one.
|
2017-08-02 22:12:59 -04:00 |
|
Thomas Harte
|
6ca07f1e28
|
I guess it might end up living somewhere else, but introduced a header with the compiler-specific stuff to allow me to force things inline.
|
2017-08-01 22:04:58 -04:00 |
|
Thomas Harte
|
9d43784c65
|
Significantly increased quantity of keys forwarded.
|
2017-08-01 20:37:55 -04:00 |
|
Thomas Harte
|
f5b278d683
|
Added enough stuff to put the emulated Amstrad CPC in a state of knowing whether its '0' key is pressed.
|
2017-08-01 17:31:56 -04:00 |
|
Thomas Harte
|
08ad35efd9
|
It's barely an implementation of the 8255, but ensured that data is bounced into the PortHandler, conveniently assuming the interaction mode used by the CPC.
|
2017-08-01 16:34:13 -04:00 |
|
Thomas Harte
|
58b98267fc
|
Formally transferred ownership of PIO accesses to an incoming template, and decided to start being explicit about how to specify the interfaces and provide fallbacks for optional behaviour for the new, clean generation of interfaces. A full-project sweep will inevitably occur but I'll try to tie off this branch first.
|
2017-08-01 16:15:19 -04:00 |
|
Thomas Harte
|
ace71280a0
|
Removed implementation file; this is only ever going to be a template.
|
2017-08-01 16:00:17 -04:00 |
|
Thomas Harte
|
2b168f7383
|
Disabled the address sanitiser as an every-time run again, as it just pushes my computer a bit too far.
|
2017-07-31 22:32:56 -04:00 |
|
Thomas Harte
|
0536f089e1
|
Eliminated old-[personal-]fashioned line break.
|
2017-07-31 22:32:26 -04:00 |
|
Thomas Harte
|
3df13cddd4
|
As per my keenness for cleanliness improvements corresponding to my ever-increasing C++ ability: turned the Amstrad into something that a factory produces, allowing me completely to hide a bunch of implementation details.
|
2017-07-31 22:32:04 -04:00 |
|
Thomas Harte
|
68ceeab610
|
Created a 6845 class and started pushing data at it and clocking it. It doesn't currently have the concept of a bus but will do, hence the in-header implementation.
|
2017-07-31 19:56:59 -04:00 |
|
Thomas Harte
|
afd409c883
|
Ensured that ROM images are loaded and passed to the Amstrad CPC.
|
2017-07-31 18:44:49 -04:00 |
|
Thomas Harte
|
26b6c03a2a
|
Re-enabled the address sanitiser as a development tool.
|
2017-07-31 07:30:07 -04:00 |
|
Thomas Harte
|
c0f1313830
|
Performed sufficient wiring to get to the point where attempting to load a CDT creates an instance of the Amstrad CPC and then fails only because the thing vends a nullptr CRT.
|
2017-07-30 22:05:29 -04:00 |
|
Thomas Harte
|
5b5720fac0
|
Added to the static analyser the most basic through-path for Amstrad CPC content.
|
2017-07-30 21:15:20 -04:00 |
|
Thomas Harte
|
d25d7d7d40
|
Added the Amstrad CPC as a named target and declared support for its CDT file format.
|
2017-07-29 21:56:33 -04:00 |
|
Thomas Harte
|
761afad118
|
Corrected timestamp return, and its testing by the 6502 timing tests.
|
2017-07-27 21:19:16 -04:00 |
|
Thomas Harte
|
37950143fc
|
Attempted to nudge wait timing onto half-cycle boundaries, which expands the number of partial machine cycles the Z80 can post but pleasingly also regularises them. Switched the AllRAMProcessor to reporting half cycles by default and corrected all Z80 tests.
|
2017-07-27 20:17:13 -04:00 |
|
Thomas Harte
|
9257a3f6d7
|
Added test for 16-bit arithmetic, and fixed implementation.
|
2017-07-26 19:04:52 -04:00 |
|
Thomas Harte
|
728143247d
|
Added a test for RLD and RRD. Which already passes.
|
2017-07-26 18:56:35 -04:00 |
|
Thomas Harte
|
6ec4e4e3d7
|
Merge branch 'master' into Memptr
|
2017-07-25 23:01:34 -04:00 |
|
Thomas Harte
|
37ccb9d3b6
|
Fixed 6502 timing tests.
|
2017-07-25 23:00:39 -04:00 |
|
Thomas Harte
|
3c254360ba
|
Completed fixture of the 6502 BCD test.
|
2017-07-25 22:55:45 -04:00 |
|
Thomas Harte
|
3ca51bedc6
|
Discovered legitimate uses of the jam opcode so reinstated it. Corrected illegitimate uses.
|
2017-07-25 22:48:44 -04:00 |
|
Thomas Harte
|
36076b7ea5
|
Eliminated final vestige of professed jam handling. This should make it clear which tests still think they can capture jams.
|
2017-07-25 22:38:26 -04:00 |
|
Thomas Harte
|
279c369a1f
|
Switched to Cycles as the result from the 6502 perform_bus_operation , helping slightly to clarify what you're intended to return and reducing type jumping within the 6502 implementation.
|
2017-07-25 22:21:09 -04:00 |
|