Thomas Harte
205518ba75
Switch to more efficient copy.
2021-04-25 16:51:07 -04:00
Thomas Harte
2510064218
Completes state object.
...
Subject to not yet dealing with last_fetches_ and last_contended_access_ correctly. Thought required.
2021-04-25 14:20:40 -04:00
Thomas Harte
0ef2806970
Adds just enough to ensure that border state gets through.
2021-04-25 14:16:35 -04:00
Thomas Harte
fd271d920b
Adds capture and forwarding of border colour.
2021-04-25 14:00:12 -04:00
Thomas Harte
2bbf8bc9fa
Ensures 16/48kb snapshots are properly copied into place.
2021-04-25 13:27:11 -04:00
Thomas Harte
a5098a60ec
Attempts to get in-SNA software to start.
2021-04-25 13:18:26 -04:00
Thomas Harte
0ebd900e40
Baby steps: apply Z80 state.
...
As far as it currently is. Since SNA is leaving the PC at the default of 0x0000, this currently has no visible effect.
2021-04-25 13:03:24 -04:00
Thomas Harte
cc78bfb229
Forwards most of the Z80 state.
2021-04-25 13:00:43 -04:00
Thomas Harte
d61f478a39
Basic sketch for state snapshots: an extra field on Target.
...
I think it doesn't make sense for states to own a target as that complicates the concept of Media. Plus they're distinct because it makes sense to have only one per Target. Let's see how this pans out.
2021-04-24 23:17:47 -04:00
Thomas Harte
9cc747b3e2
Resolves potential source of errors: specifying incorrect table size.
...
(Having made exactly this mistake with the ZX Spectrum)
2021-04-24 12:10:28 -04:00
Thomas Harte
37dcf61130
Add timing tests, fix +3 discrepancy.
2021-04-23 22:29:57 -04:00
Thomas Harte
9731fdd33b
Moves horizontal sync on the 48kb.
2021-04-21 19:46:44 -04:00
Thomas Harte
d0c789ff9a
Locks declarative form of contention closer to regular expressions.
2021-04-21 19:37:36 -04:00
Thomas Harte
9baa861742
Simplifies timing calculation expression.
2021-04-21 19:18:07 -04:00
Thomas Harte
9293bcbc88
Exclude the ROM from contention on 48kb and 128kb models.
2021-04-21 18:49:18 -04:00
Thomas Harte
ef01471e17
Ensures the DMA controller remains clocked.
2021-04-20 22:34:13 -04:00
Thomas Harte
db52f13c32
Disambiguates reset_all_keys
.
2021-04-19 21:49:06 -04:00
Thomas Harte
7bac18bd65
Address bus load time is not + 1/2.
2021-04-18 18:41:24 -04:00
Thomas Harte
704737144a
Corrects all interrupt timing for sign and off-by-one errors.
2021-04-18 18:40:44 -04:00
Thomas Harte
e87e851401
Add a redundant but idiomatic initial value.
2021-04-18 11:56:22 -04:00
Thomas Harte
80d4846a27
Respond with 0xff during an interrupt acknowledge.
2021-04-18 11:56:00 -04:00
Thomas Harte
9fd53c9c91
Adds the ZX Spectrum to ::AllMachines.
2021-04-17 23:06:37 -04:00
Thomas Harte
93422f4b1c
Brings timings into line with WoS specs.
2021-04-16 22:40:51 -04:00
Thomas Harte
7fdb1d848b
Corrects Spectrum 128kb partial decoding.
2021-04-16 21:54:52 -04:00
Thomas Harte
d7954a4cb1
Tweaks timing a little.
2021-04-15 21:51:49 -04:00
Thomas Harte
ef636da866
Attempts 48/128kb floating bus behaviour.
2021-04-15 21:19:21 -04:00
Thomas Harte
fa18b06dbf
Correct get_floating_value to be consistent in out-of-bounds behaviour.
2021-04-15 21:13:36 -04:00
Thomas Harte
349b9ce502
Don't post contended accesses other than on the +2a/+3.
...
Those machines have an actual latch for this stuff, the others don't.
2021-04-15 21:13:06 -04:00
Thomas Harte
71cf63bd35
Corrects internal cycle contention.
2021-04-15 19:17:11 -04:00
Thomas Harte
d1bb3aada4
Attempts to complete the in-machine application of contention.
2021-04-15 18:57:34 -04:00
Thomas Harte
b4214c6e08
Blocks off the AY from inputs in 48kb mode.
2021-04-15 18:04:16 -04:00
Thomas Harte
f5c7746493
Extends fast loading support to the just-introduced models.
2021-04-15 17:31:42 -04:00
Thomas Harte
f10ec80153
Gets started on different video timings.
2021-04-14 22:23:27 -04:00
Thomas Harte
0af405aa46
Starts working in the 48kb and 128kb Spectrums.
2021-04-14 21:37:10 -04:00
Thomas Harte
60e8273de2
Tweaks video timing, again.
2021-04-06 21:04:54 -04:00
Thomas Harte
dd28246f9f
Better indicate interrupt timing.
2021-04-06 12:06:13 -04:00
Thomas Harte
094d623485
Updates unit tests.
2021-04-05 21:33:04 -04:00
Thomas Harte
1266bbb224
Makes the TMS a sequence-point-generating JustInTimeActor.
2021-04-05 21:02:37 -04:00
Thomas Harte
fd88071c0a
Remove further detritus.
2021-04-05 17:21:26 -04:00
Thomas Harte
16bfe1a55c
Resolves use-after-return memory error.
2021-04-04 22:45:56 -04:00
Thomas Harte
90c3d6a1e8
Attempts a later interception of tape loading.
2021-04-04 22:39:30 -04:00
Thomas Harte
57b32d9537
Avoid adding additional threading constraints.
2021-04-04 20:48:15 -04:00
Thomas Harte
837b9499d5
Translates Oric video and Disk II into JustInTimeActors.
2021-04-04 20:43:16 -04:00
Thomas Harte
f26bf4b9e4
Splitting here isn't achieving anything.
2021-04-04 19:52:38 -04:00
Thomas Harte
1da51bee6c
14368 and six seem to be the proper numbers, per my comprehension of Patrick Rak.
2021-04-04 19:52:19 -04:00
Thomas Harte
5a66956221
Merge branch 'master' into SpeccyTiming
2021-04-04 19:12:37 -04:00
Thomas Harte
fa79589db8
Minor style improvements.
2021-04-04 18:59:46 -04:00
Thomas Harte
d77ddaf4fa
Switches the Electron to JustInTimeActor video.
...
Also reorders template parameters; I think that specifying a different time base is likely to be more common than using a divider.
2021-04-04 17:33:49 -04:00
Thomas Harte
afb4e6d37d
Merge branch 'master' into JITSleeper
2021-04-04 15:37:19 -04:00
Thomas Harte
158122fbf4
Determine TargetTimeScale
automatically.
2021-04-04 15:37:07 -04:00
Thomas Harte
14663bd06b
I think 3 is what I'm aiming for here.
...
But this probably isn't correct for IO cycles.
2021-04-02 07:36:57 -04:00
Thomas Harte
044ac949ba
Rearrange fields.
2021-04-01 12:44:00 -04:00
Thomas Harte
87317f5673
Improve documentation, pin down read/write times.
2021-04-01 12:38:58 -04:00
Thomas Harte
687c05365e
Flushes before set_last_contended_area_access
.
2021-03-31 22:52:41 -04:00
Thomas Harte
4f80523828
Tweaks contended timing.
2021-03-31 22:51:20 -04:00
Thomas Harte
acdbd88b9e
Merge pull request #896 from TomHarte/FastLoadUponInsert
...
Ensure CPC and Spectrum update fast-tape flag upon media insertion.
2021-03-28 11:44:01 -04:00
Thomas Harte
729edeac6c
Ensure CPC and Spectrum update fast-tape flag upon media insertion.
2021-03-27 18:08:46 -04:00
Thomas Harte
faaa4961ed
Attempts to rely on JustInTimeActor's built-in ClockingHint::Observer.
2021-03-26 23:54:08 -04:00
Thomas Harte
8a11a5832c
Uses GI::AY38910::Utility
far and wide.
2021-03-26 23:19:47 -04:00
Thomas Harte
465ecc4a78
Attempts to implement proper floating bus behaviour.
...
As per http://sky.relative-path.com/zx/floating_bus.html
2021-03-24 20:23:33 -04:00
Thomas Harte
03ef81b07c
Attempts to reduce initial bounce.
2021-03-23 17:12:00 -04:00
Thomas Harte
0ac11fc39e
Add floating bus.
2021-03-23 17:09:42 -04:00
Thomas Harte
3d0503a35e
Adds a genuine Spectrum mapping, tweaks timing.
2021-03-23 16:59:43 -04:00
Thomas Harte
ad8cb52f11
Improves const correctness.
2021-03-23 16:59:26 -04:00
Thomas Harte
496a294c71
Adds clocking observers for the tape and FDC.
2021-03-23 16:38:04 -04:00
Thomas Harte
465c74ab86
Adds the Spectrum side of typing.
...
The character mapper itself needs some Spectrum logic.
2021-03-23 10:44:43 -04:00
Thomas Harte
4e8f82a39c
Adds ZX Spectrum activity indicators.
2021-03-23 10:32:22 -04:00
Thomas Harte
d0776b58cf
Tweaks timing empirically.
2021-03-22 23:20:49 -04:00
Thomas Harte
6da099d7e1
Ensures the enter key is cleared before fast-loading tapes have loaded.
2021-03-22 22:42:10 -04:00
Thomas Harte
60e77785e8
Makes an attempt to provide the necessary hook for floating bus behaviour.
2021-03-22 22:34:28 -04:00
Thomas Harte
19cd6a55d3
Rejigs the way video is counted to orient it around fetch times.
2021-03-22 22:18:38 -04:00
Thomas Harte
08432dd94b
Adds automatic media starts.
2021-03-22 20:12:03 -04:00
Thomas Harte
3c1131a84b
Attempts to implement the +3.
2021-03-22 19:36:05 -04:00
Thomas Harte
c0abdf1b86
Factors out the CPC's simple FDC adaptor.
2021-03-22 19:12:10 -04:00
Thomas Harte
3ef2715eee
Implements the ROM version of fast loading.
2021-03-22 19:04:38 -04:00
Thomas Harte
4a12d7086d
Makes another guess at total colour phase.
2021-03-22 17:24:38 -04:00
Thomas Harte
a6b75b8637
Attempts improvements to video fetch timing. Alas, a lot of guess work here.
2021-03-22 15:59:03 -04:00
Thomas Harte
bdb3bce8d6
Corrects semantics on contended-timing calculation.
2021-03-22 15:48:51 -04:00
Thomas Harte
a26716919c
Switches to an is-in-video test that allows for video memory being paged twice.
...
This is trivially possible even in plain 128kb mode.
2021-03-22 15:46:02 -04:00
Thomas Harte
8dbc7649aa
Adds note-to-self re: FDC.
2021-03-22 09:15:00 -04:00
Thomas Harte
42a9dc7c2b
Minimises video flushing, moves it to the proper time.
2021-03-22 09:02:49 -04:00
Thomas Harte
7965772745
Moves contention delays up to the time of MREQ going active.
2021-03-21 23:04:20 -04:00
Thomas Harte
f37f89a7d3
Merge branch 'master' into ZXSpectrum
2021-03-21 22:44:37 -04:00
Thomas Harte
d987e5a9d7
Merge pull request #887 from TomHarte/ZX80Wait
...
Ensures no signalling to wait by a ZX80, ever.
2021-03-21 22:44:11 -04:00
Thomas Harte
c097ed348a
Ensures no signalling to wait by a ZX80, ever.
2021-03-21 22:38:50 -04:00
Thomas Harte
0f9ab53ea0
Resolves GCC warnings from dangling Apple IIgs work.
2021-03-21 22:36:18 -04:00
Thomas Harte
dd7419282d
Resolves GCC warnings from dangling Apple IIgs work.
2021-03-21 22:25:14 -04:00
Thomas Harte
7562917740
Adds the Spectrum to the macOS New... menu.
2021-03-21 21:50:50 -04:00
Thomas Harte
3925eee575
Attempts more relaxed decoding of AY accesses.
2021-03-21 21:03:35 -04:00
Thomas Harte
6482303063
Reduces code duplication slightly.
2021-03-21 20:34:58 -04:00
Thomas Harte
9ce1dbaebb
Switches to partial decoding for paging registers; permits video address changes after paging is locked.
2021-03-21 20:23:00 -04:00
Thomas Harte
064667c0c3
Corrects asymmetrical flash, ensures consistent burst phase.
2021-03-21 20:22:27 -04:00
Thomas Harte
58be770eaa
Factors out some boilerplate.
...
When I'm confident this is correct, I can fix up the other call sites.
2021-03-21 00:14:48 -04:00
Thomas Harte
1b0f45649e
Improves contended timing.
...
Still not quite on the money, but this was an overt bug.
2021-03-21 00:00:18 -04:00
Thomas Harte
42bfabbe8c
The implication seems to be of a fixed phase swing.
...
I'm enquiring further.
2021-03-20 23:46:13 -04:00
Thomas Harte
07a63d62dd
Adds some quick arithmetic on the clock speed.
2021-03-20 11:19:44 -04:00
Thomas Harte
26911a16e8
Lengthens sync, better to conform to PAL; experiments with fixed-phase colour burst.
...
I need to get hold of real documentation here.
2021-03-20 10:38:21 -04:00
Thomas Harte
cf9a5d595b
Completes piping of audio.
2021-03-19 23:33:46 -04:00
Thomas Harte
7729f1f3d0
Attempts automatic Spectrum tape control.
2021-03-19 22:43:48 -04:00
Thomas Harte
7d59ff6d8f
Builds in a colour burst, producing colour composite.
2021-03-19 22:25:37 -04:00