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
Thomas Harte
fa8236741d
Takes a shot at an ADB mouse.
2021-02-15 20:49:16 -05:00
Thomas Harte
e16d5f33d1
Adds service requests. The microcontroller now appears to consume keyboard events.
2021-02-15 20:33:10 -05:00
Thomas Harte
e773b331cd
Implements register 2 listen.
2021-02-15 15:05:46 -05:00
Thomas Harte
99c21925f4
Makes attempt at keyboard mapping.
2021-02-15 15:00:12 -05:00
Thomas Harte
eccf5ca043
Makes first effort to wire up the ADB vertical blank input.
...
However: looking at the disassembly, I'm not sure it really is wired to INTR. So work to do.
2021-02-14 22:20:58 -05:00
Thomas Harte
24af62a3e5
Sets a default handler of 1.
2021-02-14 22:20:07 -05:00
Thomas Harte
52cf15c3e6
Attempts to route out modifier state.
2021-02-14 21:15:31 -05:00
Thomas Harte
a791680e6f
Implements set_status as per advice.
2021-02-14 21:04:20 -05:00
Thomas Harte
6e53b4c507
Corrects centralised ADB decoder.
...
I still think it's appropriate to do this in only a single place, given that using it is optional.
2021-02-14 20:41:05 -05:00
Thomas Harte
52c38e72f6
Starts seeking to automate register 3 handling.
...
Immediate pitfall: byte capture on the bus side isn't working correctly.
2021-02-14 20:37:33 -05:00
Thomas Harte
a51d143c35
Corrects reactive-device transmission logic.
...
Albeit that I'm still not properly responding to register 3 stuff, so the ADB bus needn't believe anything is out there. Also, without VSYNC being piped to the microcontroller it may well just not be polling anyway.
2021-02-14 18:54:22 -05:00
Thomas Harte
17e9305282
Starts adding a keyboard.
2021-02-13 23:16:45 -05:00
Thomas Harte
c284b34003
Resolves inability of ADB microcontroller to read its own ROM (!)
2021-02-13 17:53:40 -05:00
Thomas Harte
2ab3bba695
Attempts GLU register latching, restoring expected startup sequence.
2021-02-13 17:38:42 -05:00
Thomas Harte
2c4dcf8843
Edges towards implementing an ADB device.
2021-02-12 21:50:24 -05:00
Thomas Harte
ea40b2c982
Takes a stab at implementing device response.
2021-02-12 18:56:43 -05:00