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
82ad0354c4
Adds configuration options to the Vic-20, Oric and ZX80/81.
2017-11-18 19:48:10 -05:00
Thomas Harte
5408efe9b5
Flags obvious default options within the 6560, Vic-20 and DynamicMachine.
2017-11-12 16:41:09 -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
916eb96b47
Makes buffer size restriction explicit in the Vic-20.
2017-11-10 22:59:11 -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
6e1d69581c
Eliminates a variety of end-of-line spaces.
2017-11-07 22:54:22 -05:00
Thomas Harte
ddcdd07dd0
Modifies the Vic-20 and C1540 to bring them into the realm of self-ROM fetching.
...
Hence enables Vic-20 support within kiosk mode as currently drafted.
2017-11-07 21:19:51 -05: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
b2c1b83fcd
Consolidates Vic-20 keyboard code.
2017-10-19 22:27:30 -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
18798c9886
Corrects joystick memory leaks.
2017-10-15 20:49:47 -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
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
24b3faa427
Deconstitutes the 6522 into component parts, templated and non-templated.
...
Adjusts the Oric, Vic-20 and C-1540 accordingly, albeit with the quickest possible solutions.
2017-09-04 14:26:04 -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
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
925e774015
Added a decent portion of documentation. But started feeling like I should address my various ownership decisions. Which would justify a separate pull request.
2017-08-16 16:23:33 -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
42b5b66305
Remove the 6502's use of runtime polymorphism in favour of ordinary templating.
2017-08-16 11:56:52 -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
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
Thomas Harte
c77a83d86f
The 6560 is now a ClockReceiver
. This reduces to zero the number of remaining instances of the text run_for_cycles in this codebase.
2017-07-24 22:38:35 -04:00
Thomas Harte
9435c1e12a
The 1540 is now a ClockReceiver
.
2017-07-24 22:32:41 -04:00
Thomas Harte
efdac2ce8c
The 6522 is now a ClockReceiver
.
2017-07-24 22:29:09 -04:00
Thomas Harte
8a2bdb8d22
Converted the TimedEventLoop and the things that sit atop it into ClockReceiver
s.
2017-07-24 21:19:05 -04:00
Thomas Harte
f931cd582d
Switched to use of std::vector
in those few remaining places where I was still using a unique_ptr
to a native type and new
ing for myself. So, some of my earliest bits of code.
2017-07-16 13:54:07 -04:00
Thomas Harte
52d9ddf9e5
Gave the binary tape player a more logical assignment of wave level to output level. Which miraculously appears to have been the issue with the ZX80/81 tape loading — the inconsistency of silences seems to have been the issue.
2017-06-21 22:13:24 -04:00
Thomas Harte
0808e9b6fb
Pulled the 6502 into a CPU namespace, making it an instance of something that has micro-opcodes and schedules them, and factoring out the formulation of a register pair.
2017-05-14 22:08:15 -04:00
Thomas Harte
8e35e913bb
Formally withdrew the 'load automatically' option for the Vic, having removed that option elsewhere.
2017-05-14 16:59:24 -04:00
Thomas Harte
5d91a2600d
Permitted ROM-style PRGs that are not a power-of-two in size, and added extra safety checks on loading data from a tape.
2017-05-08 22:15:35 -04:00
Thomas Harte
cb66c7e2dc
Performed some minor tidying.
2017-05-08 21:05:35 -04:00
Thomas Harte
61f8f2f18c
Switched to a more straightforward way of exiting from tape data loading.
2017-05-08 20:58:55 -04:00
Thomas Harte
7b43ae0a92
Implemented a catch for loading the data portion of files.
2017-05-07 22:22:59 -04:00
Thomas Harte
2807e3134f
Implemented speedy header finding. So that's half of it.
2017-05-07 20:32:48 -04:00
Thomas Harte
0771363f3b
Removed one piece of unnecessary logging.
2017-05-06 22:22:03 -04:00
Thomas Harte
2edf73908c
Temporarily disabled the existing fast loading implementation in pursuit of another, and started trying to correct the lack of connection between the userport VIA and the tape drive.
2017-05-06 22:00:12 -04:00
Thomas Harte
e01f3f06c8
Completed curly bracket movement.
2017-03-26 14:34:47 -04:00
Thomas Harte
1b1a8d3e52
Brought the Vic-20 into suffix naming.
2016-12-03 13:30:27 -05:00
Thomas Harte
2003b514aa
Switched the typer to postfix underscores.
2016-12-03 10:55:50 -05:00
Thomas Harte
45b169f341
Made a few mapping fixes, clarified where the default reset code lives, ensured the Oric and Vic clear their keys when the typer ends.
2016-11-05 15:28:03 -04:00
Thomas Harte
338904fffe
Made similar cleanings of the Electron and Vic.
2016-11-05 15:07:57 -04:00
Thomas Harte
9fb9d92437
Made the typer much more able to help out, and thereby tidied and separated the Oric's typer.
2016-11-05 14:47:09 -04:00
Thomas Harte
4fab794747
Added a direct-to-two-cycles emulation path for 6522 owners.
2016-10-27 21:13:25 -04:00
Thomas Harte
c5948ef177
Evicted more header-resident code.
2016-10-20 21:05:32 -04:00
Thomas Harte
6d7c3f6ac2
Factored out the now-sampling binary-level tape player from the Vic and connected it up to the Oric.
2016-10-15 21:21:18 -04:00
Thomas Harte
cd1ab09701
The Vic-20 now inserts ROMs again.
2016-09-29 20:15:25 -04:00