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 |
|
Thomas Harte
|
2ee478b4c4
|
Goes some way towards wiring up Spectrum options.
|
2021-03-19 22:17:20 -04:00 |
|
Thomas Harte
|
bb0d35e3d0
|
Minor formatting/layout fixes.
|
2021-03-19 22:17:03 -04:00 |
|
Thomas Harte
|
a482ce1546
|
Adds a tape player.
|
2021-03-19 11:12:50 -04:00 |
|
Thomas Harte
|
a35e1f4fbe
|
Starts to make formal Spectrum accommodations.
|
2021-03-19 11:06:09 -04:00 |
|
Thomas Harte
|
2371048ad1
|
Formally separates keyboard code.
With an eye to formalising the Spectrum/ZX81/ZX80 differences.
|
2021-03-19 10:36:08 -04:00 |
|
Thomas Harte
|
93b9ea67e6
|
Takes a run at contended timings.
|
2021-03-19 08:49:56 -04:00 |
|
Thomas Harte
|
f8c9ef2950
|
Add necessary header for memset.
|
2021-03-19 00:00:59 -04:00 |
|
Thomas Harte
|
87fac15cc4
|
This is going to remain purely a template; no .cpp.
|
2021-03-18 23:51:45 -04:00 |
|
Thomas Harte
|
2d51924a3c
|
Wires up Spectrum keyboard.
The machine now appears to be fully interactive and functional. Timing and media aside, that is.
|
2021-03-18 23:51:21 -04:00 |
|
Thomas Harte
|
c3d96b30d7
|
Factors out a little of the ZX81's keyboard logic.
|
2021-03-18 23:45:57 -04:00 |
|
Thomas Harte
|
44240773ef
|
Corrects address generation, ink/paper selection.
Seemingly to give a correct +2a boot. Time to add a keyboard and find out, I guess.
|
2021-03-18 23:30:48 -04:00 |
|
Thomas Harte
|
ed587a4db5
|
Provides a better no-port-here value.
|
2021-03-18 23:14:39 -04:00 |
|
Thomas Harte
|
020a04006e
|
Adds flashing, randomises initial RAM contents.
|
2021-03-18 23:07:51 -04:00 |
|
Thomas Harte
|
622a8abf7f
|
Takes a stab at pixel output.
|
2021-03-18 22:57:10 -04:00 |
|
Thomas Harte
|
871bac6c8a
|
Marks out and approximately centres a pixel region.
|
2021-03-18 22:41:20 -04:00 |
|
Thomas Harte
|
fe3e8f87e7
|
Takes a shot at an all-border output.
|
2021-03-18 22:29:24 -04:00 |
|
Thomas Harte
|
87fc7c02e8
|
Provides a base pointer for video output.
|
2021-03-18 22:04:41 -04:00 |
|
Thomas Harte
|
f2620e6afb
|
Adds a CRT. Not yet clocked.
|
2021-03-18 21:54:42 -04:00 |
|
Thomas Harte
|
ab2ad70885
|
Takes a run at interrupts.
|
2021-03-18 21:29:52 -04:00 |
|
Thomas Harte
|
135134acfd
|
Adds a shell for video emulation.
|
2021-03-18 12:47:48 -04:00 |
|
Thomas Harte
|
5664e81d48
|
It appears the +2a and +3 have a different clock rate.
|
2021-03-18 12:41:24 -04:00 |
|
Thomas Harte
|
c353923557
|
This can be constexpr.
|
2021-03-18 12:40:59 -04:00 |
|
Thomas Harte
|
b830d62850
|
Adds quick notes on port FE.
|
2021-03-18 12:32:54 -04:00 |
|
Thomas Harte
|
17f551e89d
|
Attempts a full audio wiring.
|
2021-03-18 12:23:54 -04:00 |
|
Thomas Harte
|
4a4da90d56
|
Implements some of the memory map, and instantiates audio objects.
|
2021-03-18 12:14:48 -04:00 |
|
Thomas Harte
|
404c1f06e6
|
Insert missing space.
|
2021-03-18 10:44:01 -04:00 |
|
Thomas Harte
|
730bfcd1fd
|
Stumbles towards a memory map.
|
2021-03-18 10:43:51 -04:00 |
|
Thomas Harte
|
97249b0edd
|
Slow walks further towards a functioning Spectrum.
|
2021-03-18 10:18:17 -04:00 |
|
Thomas Harte
|
5a1bda1d82
|
Performs boilerplate towards a ZX Spectrum class.
|
2021-03-17 23:38:55 -04:00 |
|
Thomas Harte
|
9bec91c2b9
|
Correct further namespace references.
|
2021-03-17 22:56:03 -04:00 |
|
Thomas Harte
|
3d1775d853
|
Correct namespace.
|
2021-03-17 22:52:23 -04:00 |
|
Thomas Harte
|
814c057570
|
Update further path references.
|
2021-03-17 22:46:25 -04:00 |
|
Thomas Harte
|
b63ca16ce2
|
Attempts to hatch a Sinclair namespace.
|
2021-03-17 22:40:29 -04:00 |
|
Thomas Harte
|
cdc19c6990
|
Adds TODO.
|
2021-03-15 11:39:15 -04:00 |
|
Thomas Harte
|
1a5dafae00
|
Slightly neatens.
|
2021-03-15 11:37:03 -04:00 |
|
Thomas Harte
|
d368dae94a
|
Adds tape motor LED.
|
2021-03-12 23:09:51 -05:00 |
|
Thomas Harte
|
7d778bc328
|
Formally introduces fast tape support as an option.
It doesn't feel that fast yet though.
|
2021-03-12 22:57:02 -05:00 |
|
Thomas Harte
|
7a8317ad81
|
It seems a full CRC is in play.
|
2021-03-12 22:45:48 -05:00 |
|
Thomas Harte
|
a32a2f36be
|
Advances to correctly reading bytes.
Something is still amiss though. Maybe I'm supposed to update the checksum?
|
2021-03-12 19:15:35 -05:00 |
|
Thomas Harte
|
cd215ef521
|
Stumbles towards supporting fast tape loading.
Right now: in a non-optional manner.
|
2021-03-12 18:42:17 -05:00 |
|
Thomas Harte
|
67408521cd
|
Makes absolutely sure not to try to use quickboot workaround for Mac 128kb/512kb.
Albeit that it should be harmless; it's just seeding RAM.
|
2021-03-06 22:34:35 -05:00 |
|
Thomas Harte
|
f05260b839
|
ZX80/1: fix initial key state, wait line when NMI disabled.
|
2021-03-06 21:59:45 -05:00 |
|
Thomas Harte
|
7b164de6fd
|
Reenables interrupts.
|
2021-03-06 18:53:39 -05:00 |
|
Thomas Harte
|
24e68166c6
|
Minor clean-ups of my temporary cruft.
|
2021-03-06 17:11:06 -05:00 |
|
Thomas Harte
|
b72474f418
|
Reduces debugging shout outs a touch.
|
2021-03-03 20:53:05 -05:00 |
|
Thomas Harte
|
38046d49aa
|
Increases debugging noise.
|
2021-03-03 20:52:14 -05:00 |
|
Thomas Harte
|
4601421aa6
|
This conditional is gone.
|
2021-03-03 20:52:01 -05:00 |
|
Thomas Harte
|
2f45e07d82
|
Further consolidates region map, now that shadowing is orthogonal.
|
2021-02-28 15:22:36 -05:00 |
|
Thomas Harte
|
496b6b5cfc
|
Introduces a further 128 bits of storage to eliminate the conditional in IsShadowed.
|
2021-02-28 15:14:32 -05:00 |
|
Thomas Harte
|
8604b1786e
|
Simplifies banks $02+ to a single region.
|
2021-02-27 23:34:51 -05:00 |
|
Thomas Harte
|
267e28e012
|
Adds various bits of debugging detritus.
|
2021-02-27 22:27:57 -05:00 |
|
Thomas Harte
|
631a8a7421
|
Adds bitset header.
|
2021-02-27 22:13:49 -05:00 |
|
Thomas Harte
|
7dcb0553e4
|
Switches to a target-centric view of shadowing.
|
2021-02-27 22:13:10 -05:00 |
|
Thomas Harte
|
2a7ea9f57c
|
Merge branch 'master' into AppleIIgs
|
2021-02-26 21:31:18 -05:00 |
|
Thomas Harte
|
9781460c41
|
Thanks to a hint from the MAME guys: finally completes Macintosh 128kb and 512kb emulation (!)
|
2021-02-26 21:22:35 -05:00 |
|
Thomas Harte
|
55c9d152e9
|
Slightly smarter: this does branchless shadowing without additional storage.
|
2021-02-24 18:46:41 -05:00 |
|
Thomas Harte
|
6cf9099ce1
|
Don't clear the mouse data full flag until both registers have been read.
|
2021-02-23 21:57:02 -05:00 |
|
Thomas Harte
|
e6dc39f6f0
|
Makes an attempt at mouse event transmission.
|
2021-02-19 22:48:15 -05:00 |
|
Thomas Harte
|
28ce675c96
|
Takes a further stab at ::CommandDataIsValid.
|
2021-02-19 22:22:14 -05:00 |
|
Thomas Harte
|
3d91b0a31b
|
Fixes keyboard data return.
Input sort of works now! Except that key repeat is way out of control.
|
2021-02-19 21:55:06 -05:00 |
|
Thomas Harte
|
5d1970d201
|
Adds a hacky different guess at how register access might work.
|
2021-02-19 21:46:18 -05:00 |
|
Thomas Harte
|
72d7901c88
|
Takes a shot at the keyboard data full flag.
Just a guess. But likely?
|
2021-02-19 20:06:12 -05:00 |
|
Thomas Harte
|
60cfec6a65
|
Amongst ever more cruft, adds a couple of extra asserts.
|
2021-02-18 22:49:48 -05:00 |
|
Thomas Harte
|
2e9065b34c
|
Increases number of fixed initial values.
|
2021-02-18 22:48:53 -05:00 |
|
Thomas Harte
|
e42843cca0
|
This may temporarily exhaust my wit for asserts.
|
2021-02-16 22:47:46 -05:00 |
|
Thomas Harte
|
3336a123f8
|
Asserts even more overtly.
|
2021-02-16 22:33:28 -05:00 |
|
Thomas Harte
|
28bd620e7f
|
Adds joystick support to the IIgs.
|
2021-02-16 19:39:22 -05:00 |
|
Thomas Harte
|
b117df3367
|
Factors out joystick logic.
|
2021-02-16 19:17:32 -05:00 |
|