Thomas Harte
b2c1b83fcd
Consolidates Vic-20 keyboard code.
2017-10-19 22:27:30 -04:00
Thomas Harte
c2f6799f0c
Implements Vic-20 restore key.
2017-10-19 22:02:34 -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
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
a49594c6a3
Tweaks Vic20 Machine parent class order so that when turned into a CRTMachine, still successfully dynamically casts as a ConfigurationTarget.
...
More thorough thought is required.
2017-09-04 20:56:00 -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
4abd62e62b
Standardises on const [Half]Cycles
as the thing called and returned, rather than const [Half]Cycles &
as it's explicitly defined to be only one int
in size, so using a reference is overly weighty.
2017-07-27 22:05:29 -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
2ff157cf7a
Switched CRTMachine over to use Cycles
as an explicit statement of units, and followed through on the effects of that.
2017-07-22 22:17:29 -04:00
Thomas Harte
83628b285b
Experimentally turned the 6502 into a clock receiver. No problem encountered.
2017-07-22 21:52:21 -04:00
Thomas Harte
3f609e17b3
Factored out the table-lookup approach to being a typer, and adjusted so as definitely to limit myself to positive offset table lookups.
2017-07-21 21:18:51 -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
eb8a2de5d6
Settled definitively on flush
as more communicative than synchronise
(and slightly more locale neutral); culled some more duplication from the Z80.
2017-05-15 07:38:59 -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
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
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
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
142254a478
Resolved failure to open disks that arrive through analysis.
2016-09-17 18:11:58 -04:00
Thomas Harte
e54a2326a3
Made attempt to run at zero cost while processing tape input.
2016-09-11 17:34:02 -04:00
Thomas Harte
8c84f3581a
Attempted to bring some uniformity in application of configurations.
2016-09-08 05:32:17 -04:00
Thomas Harte
50175a9aed
Added logic to try to spot when the first program is BASIC and, if so, what the correct memory model is, then to get that information to the Vic. Though it currently then gets overwritten by the view controller. Grrrr.
2016-09-07 22:17:19 -04:00
Thomas Harte
56c0d70c1f
Gave disks their own namespace.
2016-08-27 17:15:09 -04:00
Thomas Harte
c0402d0c2b
Gave tapes their own namespace.
2016-08-27 17:09:45 -04:00
Thomas Harte
38aec44d85
Made sufficient changes for the Vic itself to believe it can recast a PRG as a tape and insert it that way. So now the ball is in the court of: how the heck are Commodore tapes encoded?
2016-08-15 19:44:41 -04:00
Thomas Harte
d9016909ed
Added some wiring for PAL/NTSC mode switching on the Vic, making an attempt to simplify the whole loop of having different clock rates.
2016-08-14 13:33:20 -04:00
Thomas Harte
a547b7e1d8
Took basic steps towards supporting memory expansions.
2016-08-13 17:21:25 -04:00
Thomas Harte
142774be37
Collapsed 6560 template to a more direct loop, albeit with quite a bit still left to fix.
2016-08-09 21:10:53 -04:00
Thomas Harte
12bad8f23f
Turned the 6560 into an ordinary template, similar to the rest of the project, albeit right now with a fairly shonky internal implementation. Fixed a Mac-specific interface sizing issue.
2016-08-09 20:41:05 -04:00
Thomas Harte
285a288c80
Switched to two cycles of options loading, meaning that they get set before files are inserted. Might need some further work?
2016-08-07 21:48:09 -04:00
Thomas Harte
be54d8040e
Made a first stab at having automatic loading be optional. But things are currently arranged such that the machine options are communicated too late to have an effect. So work to do.
2016-08-06 17:39:27 -04:00
Thomas Harte
3e65450a54
Converted the 6560 fully into a template; worked on allowing the typer to run at a much faster rate where hardware has some trigger by which it can request the next key.
2016-08-06 14:33:24 -04:00
Thomas Harte
740ea0b7e2
Added overflow-flag setting logic and ensured disk ROM gets through regardless of ROM/disk installation order.
2016-07-31 19:33:18 -04:00
Thomas Harte
6cfc514c2d
Made the rote changes necessary to attempt to open and to supply a G64 to the Vic.
2016-07-10 12:57:17 -04:00
Thomas Harte
d8334edf4a
Started trying to clean up, including commuting the C1540 source file name to match its class name but mainly by adding documentation.
2016-07-10 07:46:20 -04:00
Thomas Harte
c0ab45a73d
Disabled a bunch of the caveman debug logging.
2016-07-09 22:29:11 -04:00
Thomas Harte
f589d639db
Okay, so it seems that sync also works the other way around.
2016-07-09 22:25:44 -04:00
Thomas Harte
693c8b2438
After all that, it seems likely that inputs just aren't inverted for the Vic.
2016-07-09 20:03:38 -04:00
Thomas Harte
81e6cc34e5
Per the ROM disassembly, the Vic's VIA outputs are inverted for the benefit of the serial bus.
2016-07-07 06:57:21 -04:00
Thomas Harte
c9479f923b
The inversion of truth was clearly just a problematic API. Got explicit. LineLevel might need to become more pervasive.
2016-07-07 06:44:13 -04:00
Thomas Harte
dcb86a027a
Okay, so the 1540 doesn't toggle the actual attention line. I don't know what it does yet but this helps.
2016-07-06 22:31:14 -04:00
Thomas Harte
428fcdb978
Centralised and improved serial logging.
2016-07-06 07:46:21 -04:00