Thomas Harte
9e0907ee76
Completes clean-up of post-formalisation per-machine keyboard code.
...
At least for now. Standardising on how column + row is encoded might be helpful.
2017-10-21 10:52:35 -04:00
Thomas Harte
9ad4025138
Relocates things that were in Machines/ for machine usage.
...
Leaving only those things intended to be visible interface.
2017-10-21 10:30:02 -04:00
Thomas Harte
405f58d6a3
Corrects write guard names.
2017-10-21 10:21:40 -04:00
Thomas Harte
afbd1c425c
Merge pull request #259 from TomHarte/Vic20Keyboard
...
Consolidates Vic-20 keyboard code.
2017-10-19 22:28:11 -04:00
Thomas Harte
b2c1b83fcd
Consolidates Vic-20 keyboard code.
2017-10-19 22:27:30 -04:00
Thomas Harte
8d2b9a581a
Merge pull request #256 from TomHarte/UniversalInput
...
Standardises the host-side interface for joystick and keyboard input
2017-10-19 22:15:47 -04:00
Thomas Harte
1825af0dd3
Eliminates dead code in the Vic-20 and Inputs::Joystick.
2017-10-19 22:15:21 -04:00
Thomas Harte
c2f6799f0c
Implements Vic-20 restore key.
2017-10-19 22:02:34 -04:00
Thomas Harte
b5b6219cb7
Slightly simplifies TextureBuilder arithmetic.
2017-10-19 22:02:00 -04:00
Thomas Harte
185a699279
Fixes off-by-one keyboard state accumulation error.
2017-10-19 22:01:24 -04:00
Thomas Harte
96b8f9ae9f
Merge branch 'master' into UniversalInput
2017-10-17 22:54:17 -04:00
Thomas Harte
88e2350b8f
Prevents undefined behaviour from the CPC's timer.
2017-10-17 22:53:52 -04:00
Thomas Harte
5c141af734
Prevents undefined behaviour from the CPC's timer.
2017-10-17 22:40:32 -04:00
Thomas Harte
da580e4186
Merge branch 'master' into UniversalInput
2017-10-17 22:36:22 -04:00
Thomas Harte
57ee09dffb
Merge pull request #258 from TomHarte/UndefinedBehaviour
...
Corrects large swathes of undefined behaviour
2017-10-17 22:35:59 -04:00
Thomas Harte
7c8e830b90
Adjusted the Acorn tape parser to avoid signed left shifts.
2017-10-17 22:34:49 -04:00
Thomas Harte
ba5f668338
Ensured full CRT instance initialisation.
2017-10-17 22:34:10 -04:00
Thomas Harte
2c1e99858b
Fixed HalfCycles to allow conversion from Cycles without relying on undefined behaviour.
...
Specifically: left shifting a negative number.
2017-10-17 22:22:51 -04:00
Thomas Harte
7f2febeec9
Ensures complete DPLL initial state assignment.
2017-10-17 22:13:37 -04:00
Thomas Harte
2d7a4fe5f0
Switches the MFM shifter to unsigned accumulation.
...
Since left shifting signed numbers is undefined behaviour.
2017-10-17 22:12:04 -04:00
Thomas Harte
91b867a7b3
Ensures full 8272 instance state initialisation.
2017-10-17 22:11:01 -04:00
Thomas Harte
3944e734d3
Ensures full 6845 instance state initialisation and uses an unsigned shifter.
2017-10-17 22:10:28 -04:00
Thomas Harte
ce78d9d12c
Introduces buffer alignment when writing to textures.
...
To avoid cross-boundary writes and hopefully to eke out a little better performance.
2017-10-17 22:09:48 -04:00
Thomas Harte
edbc60a3fb
Various undefined behaviour fixes.
...
Primarily around uninitialised variables, but also with an attempted use of a negative pointer.
2017-10-17 21:29:19 -04:00
Thomas Harte
6ea3ff62df
Merge branch 'master' into UniversalInput
2017-10-17 21:28:40 -04:00
Thomas Harte
88959571f1
Merge pull request #257 from TomHarte/CPMReading
...
Corrects CPM reader buffer overwrites
2017-10-17 20:54:02 -04:00
Thomas Harte
b4583e976e
Corrects buffer overwrites resulting from failure to treat a number of records of 0x80 as a special case.
2017-10-17 20:52:16 -04:00
Thomas Harte
92d9805f09
Removes dead Objective-C protocol references.
2017-10-17 20:51:40 -04:00
Thomas Harte
0c2dd62328
Various undefined behaviour fixes.
...
Primarily around uninitialised variables, but also with an attempted use of a negative pointer.
2017-10-17 20:50:46 -04:00
Thomas Harte
3f4d90d775
Corrects buffer overwrites resulting from failure to treat a number of records of 0x80 as a special case.
2017-10-17 20:49:12 -04:00
Thomas Harte
542ec4312f
Switched the Objective-C code to using dynamic_cast alone to decide whether to post keyboard or joystick events.
2017-10-15 21:25:56 -04:00
Thomas Harte
18798c9886
Corrects joystick memory leaks.
2017-10-15 20:49:47 -04:00
Thomas Harte
7aaf27389c
Commutes the Atari 2600 to the JoystickMachine interface.
2017-10-15 20:44:59 -04:00
Thomas Harte
ee179aa7bd
Introduces a joystick analogue to the shared keyboard interface, and implements it for the Vic-20.
2017-10-14 22:36:31 -04:00
Thomas Harte
3a05ce36de
Adds a reference to the calling keyboard in reset_all_keys
.
2017-10-14 22:07:11 -04:00
Thomas Harte
4f289ab10b
Corrects some deficiencies in Vic-20 keyboard mapping.
...
... albeit without yet being clear on the wiring behind restore.
2017-10-12 22:33:00 -04:00
Thomas Harte
78ee46270b
Transfers possession of keyboard mappings from the Mac side over to individual machines.
...
Specifically by establishing an intermediate representation of a useful mix between the American and British IBM and Mac keyboard layouts, and routing through that.
2017-10-12 22:25:02 -04:00
Thomas Harte
edb632af52
Sketches first design for generalising keyboard input.
2017-10-09 22:26:39 -04:00
Thomas Harte
19c03a08a6
Merge pull request #255 from TomHarte/BatchDriveUpdates
...
Rewires so as to give disk images visibility of large change sets rather than per-sector track rewrites.
2017-10-07 19:42:14 -04:00
Thomas Harte
44cdc124af
Switches to providing a full record of changes to disk images, rather than feeding them a track at a time.
...
Gets explicit about `override`s while doing so, to ensure full adaptation.
2017-10-07 19:37:36 -04:00
Thomas Harte
b37787a414
Ensures lifetime-linked track flushing without relying on virtual calls within a destructor.
2017-10-07 19:14:18 -04:00
Thomas Harte
53b99ea248
Uses Disk::flush_tracks to elide replacement of dirty tracks.
2017-10-06 22:07:42 -04:00
Thomas Harte
97a2be71e3
Introduces flush_tracks to Drive, while switching its interface to using Track::Address and adjusting associated integer types.
2017-10-06 21:45:12 -04:00
Thomas Harte
f623bff5c3
Removes unnecessary call.
2017-10-06 18:48:51 -04:00
Thomas Harte
2511fc8401
Merge pull request #254 from TomHarte/C++BestEffortUpdater
...
Commutes the best-effort updater into C++11.
2017-10-05 18:28:46 -04:00
Thomas Harte
d37ec9e5b0
Attempts to ensure good behaviour if dealt an adjustable clock, and const
s where possible.
2017-10-05 18:23:56 -04:00
Thomas Harte
95c82f5b36
Merge branch 'C++BestEffortUpdater' of github.com:TomHarte/CLK into C++BestEffortUpdater
2017-10-05 18:17:52 -04:00
Thomas Harte
ec202ed8be
Merge branch 'master' into C++BestEffortUpdater
2017-10-05 18:17:35 -04:00
Thomas Harte
7190225603
Merge branch 'master' into C++BestEffortUpdater
2017-10-05 18:12:33 -04:00
Thomas Harte
52e7cabd4e
Merge pull request #253 from TomHarte/Swift4UnitTests
...
Removes usages of deprecated Swift initialiser within unit tests.
2017-10-05 18:12:12 -04:00