Thomas Harte
|
9d953421d8
|
After a quick check, added a couple of other _delegate initialisations. I should probably find a way to template this.
|
2017-08-01 07:07:43 -04:00 |
|
Thomas Harte
|
763e3b65d1
|
Ensured a proper initial value for delegate_ .
|
2017-07-31 22:46:06 -04:00 |
|
Thomas Harte
|
42dd27c9b1
|
Shunted method bodies inline, given that there's no need for a declaration/definition distinction.
|
2017-07-31 22:39:25 -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
|
c2253c1e0f
|
Fixed multiplier: the dot clock I've used to instantiate the CRT is the pixel clock, not the character clock.
|
2017-07-31 22:17:46 -04:00 |
|
Thomas Harte
|
f742fd5d4a
|
Made basic attempt to get something on screen: white where the display is enabled, black for the border.
|
2017-07-31 22:13:20 -04:00 |
|
Thomas Harte
|
69b99fe127
|
Transferred ownership of the CRT to the CRTC bus handler, to give it easy access.
|
2017-07-31 22:04:52 -04:00 |
|
Thomas Harte
|
e28829bd1b
|
Corrected CRTC timing, gave it someone to talk to and a means with which to talk.
|
2017-07-31 20:14:46 -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
|
68dca9d047
|
Made a first attempt at ROM paging, with pretty much the same scheme that'll be needed for 128kb support.
|
2017-07-31 19:37:28 -04:00 |
|
Thomas Harte
|
d88ca151f4
|
Added a first attempt at output port decoding. Just logging for now.
|
2017-07-31 19:25:10 -04:00 |
|
Thomas Harte
|
3c90218c3d
|
With a very basic stab at something a bit like the memory map (sans paging), execution begins.
|
2017-07-31 19:15:43 -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
|
9c04d851e4
|
Added the basics necessary to get the CPU ticking over, at a nominal 4Mhz but with the wait states that I currently believe to be accurate.
|
2017-07-31 07:29:50 -04:00 |
|
Thomas Harte
|
1d6fe11906
|
Added an instance of Outputs::CRT::CRT . So progress is now: select CDT, up comes a blank window.
|
2017-07-31 07:16:51 -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
|
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
|
968d2bb8ba
|
Brought Typer into the new run_for orthodoxy, making it easier to clock consistently regardless of unit. Which necessitated adding a negative operator for WrappedInts.
|
2017-07-27 21:53:45 -04:00 |
|
Thomas Harte
|
9ef232157b
|
Revoked the operator bool() on WrappedInt as providing an indirect means for implicit but incorrect assignment to unwrapped ints. Got explicit about run_for intention and simplified HalfClockReceiver slightly by building a lossy and a flushing conversion to Cycles into HalfCycles. Adapted the all-RAM Z80 properly to return HalfCycles.
|
2017-07-27 21:38:50 -04:00 |
|
Thomas Harte
|
8848ebbd4f
|
Formalised set_interrupt_line's optional parameter as being a count of HalfCycles; corrected PartialMachineCycle.is_wait and effected the proper timing for counter reset on a ZX81.
|
2017-07-27 21:10:14 -04:00 |
|
Thomas Harte
|
8361756dc4
|
Switched definitively to the works-for-now approach of requiring an explicit opt-in where somebody wants to clock a whole-cycle receiver from a half-cycle clock.
|
2017-07-27 07:40:02 -04:00 |
|
Thomas Harte
|
81a3899381
|
Adjusted the Z80 formally to communicate in terms of half cycles rather than whole.
|
2017-07-26 19:42:00 -04:00 |
|
Thomas Harte
|
cda223ffc0
|
Added explicit signedness cast.
|
2017-07-25 22:49:03 -04:00 |
|
Thomas Harte
|
966b5e6372
|
Adapted the Z80's perform_machine_cycle to return Cycles .
|
2017-07-25 22:25:44 -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
|
d9c6b3bcf7
|
Corrected TIA's WSYNC lookahead to accept Cycles .
|
2017-07-25 22:13:41 -04:00 |
|
Thomas Harte
|
296c7cec05
|
Adopted flush widely.
|
2017-07-25 20:42:51 -04:00 |
|
Thomas Harte
|
75d67ee770
|
Relocated ClockReceiver.hpp as it's a dependency for parts of the static analyser, and therefore needs to be distinct from the actual emulation parts.
|
2017-07-25 20:20:55 -04:00 |
|
Thomas Harte
|
a1e9a54765
|
Eliminated redundant uses of ClockReceiver and sought to ensure that proper run_for s are inherited all the way down.
|
2017-07-25 20:09:13 -04:00 |
|
Thomas Harte
|
8d1dacd951
|
Clean ups along the Electron::Tape line: ensured that the ClockReceiver is opted into only once, and that its run_for propagates all the way along the chain.
|
2017-07-25 20:01:30 -04:00 |
|
Thomas Harte
|
40339a12e1
|
Formalised the use of a cycles count with a divider, bringing a few additional plain-int users into the fold.
|
2017-07-25 07:15:31 -04:00 |
|
Thomas Harte
|
90bf6565d0
|
Reduced int/Cycle conversions in the Electron and on the Atari 2600, where the current framework makes it possible to do so.
|
2017-07-24 22:53:13 -04:00 |
|
Thomas Harte
|
c1527cc9e2
|
Reduced back-and-forth between Cycles and int s within the Oric.
|
2017-07-24 22:46:31 -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
|
a6e377aa57
|
The Electron's video is now a ClockReceiver .
|
2017-07-24 22:36:42 -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
|
2912d7055b
|
The 6532 is now a ClockReceiver .
|
2017-07-24 21:57:24 -04:00 |
|
Thomas Harte
|
55ecb0c022
|
Converted the Microdisc into a ClockReceiver .
|
2017-07-24 21:51:13 -04:00 |
|
Thomas Harte
|
13f7aa4063
|
The TIA is now a ClockReceiver .
|
2017-07-24 21:48:34 -04:00 |
|
Thomas Harte
|
915f587ef1
|
Updated the Electron's tape class to be a ClockReceiver .
|
2017-07-24 21:36:30 -04:00 |
|
Thomas Harte
|
b7f88e8f61
|
Filter is now a ClockReciever , affecting all sound output devices.
|
2017-07-24 21:29:13 -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
|
b82bef95f3
|
Decided to follow through on Cycles and HalfCycles as complete integer-alikes. Which means giving them the interesting range of operators. Also killed the implicit conversion to int as likely to lead to type confusion.
|
2017-07-24 20:10:05 -04:00 |
|
Thomas Harte
|
ba088e5545
|
Adapted the Z80 into a clock receiver, which also vends Cycles rather than a raw int within its PartialMachineCycle struct. The objective is to update it to vend HalfCycles within its struct, but I think I need to do some work on cycle/half-cycle arithmetic first.
|
2017-07-23 22:15:04 -04:00 |
|
Thomas Harte
|
6369138bd1
|
Converted the Oric's video output into a ClockReceiver .
|
2017-07-22 23:11:30 -04:00 |
|
Thomas Harte
|
c2a7dffa7d
|
Converted the ZX80/81 video component into a ClockReceiver. As it happens, it's most convenient to take the half-cycle bus here.
|
2017-07-22 23:02:28 -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
|
1bbb4cb478
|
Increased documentation.
|
2017-07-22 17:39:51 -04:00 |
|