Thomas Harte
f4db4c3a73
Implements ROM::Request::validate.
...
It now also validates ROM sizes, so can no longer take a const Map.
2021-06-04 18:54:50 -04:00
Thomas Harte
f05cdd5e34
With large swathes of implementation missing, compiles.
2021-06-03 22:39:18 -04:00
Thomas Harte
a30eeaab6a
Starts to introduce a new grammar for ROM requests.
...
They can be optional, and chained together in AND or OR combinations. A central catalogue knows the definitions of all ROMs.
2021-06-03 21:55:59 -04:00
Thomas Harte
b4a5fa33b0
Improve SDL failed-ROM reporting.
...
Specifically to include all paths tried, and not use the plural for 'crc32' when only one is present.
2021-05-30 19:40:29 -04:00
Thomas Harte
5483f979dc
Merge branch 'master' into DragAndDropState
2021-05-16 20:42:44 -04:00
Thomas Harte
50ea56e908
Adds support for Macintosh SCSI device images.
...
This is now in addition to the single-partition images previously supported.
2021-05-13 19:06:00 -04:00
Thomas Harte
8268e8ee4c
Ensures music survives a machine switch.
2021-05-08 20:46:17 -04:00
Thomas Harte
c2ff64c1e0
Removes dangling OpenGL reference, attempts to ensure audio handover upon a machine change.
2021-05-08 14:42:43 -04:00
Thomas Harte
4db792591a
macOS: ensure activity and options panels change upon a drag-and-drop state.
2021-05-08 14:35:57 -04:00
Thomas Harte
20c814a4dd
Factors out boilerplate around full-device sector images.
2021-05-01 21:10:46 -04:00
Thomas Harte
6a052e1900
Starts working on SDL drag-and-drop support for snapshots.
2021-04-30 22:56:13 -04:00
Thomas Harte
cecdf8584a
Ensures proper propagation of will_change_owner.
2021-04-30 22:51:26 -04:00
Thomas Harte
4758bc8615
Attempts to support insertion of states into existing windows.
2021-04-30 21:37:41 -04:00
Thomas Harte
ad10d0037a
Inverts the Game Controller Framework value of the y axis.
2021-04-28 20:31:35 -04:00
C.W. Betts
2fd08789ab
Xcode maintenance.
2021-04-27 12:50:26 -06:00
Thomas Harte
b7a62e0121
Adds SZX support.
...
Tweaking exposed Spectrum state object as relevant.
2021-04-26 20:47:28 -04:00
Thomas Harte
03577de675
Adds an empty vessel for .z80 support.
2021-04-25 16:54:34 -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
37dcf61130
Add timing tests, fix +3 discrepancy.
2021-04-23 22:29:57 -04:00
Thomas Harte
db52f13c32
Disambiguates reset_all_keys
.
2021-04-19 21:49:06 -04:00
Thomas Harte
5667dcac36
Increases warnings, cleans up a touch.
2021-04-19 21:28:12 -04:00
Thomas Harte
e4d9022d37
Returns deployment target to 10.13.
2021-04-19 20:57:56 -04:00
Thomas Harte
572be48f38
Attempts to add an early exit for non-Metal Macs.
...
This will be necessary only prior to 10.14.
2021-04-19 20:55:25 -04:00
Thomas Harte
0af405aa46
Starts working in the 48kb and 128kb Spectrums.
2021-04-14 21:37:10 -04:00
Thomas Harte
a1511f9600
Establishes that the 48/128kb contention patterns can be derived from my partial machine cycles alone.
2021-04-14 20:15:40 -04:00
Thomas Harte
68a04f4e6a
Adds IN/OUT I/D [R] to complete tests.
2021-04-13 22:00:24 -04:00
Thomas Harte
0d61902b10
Adds CP[I/D/IR/DR] tests.
2021-04-13 20:03:11 -04:00
Thomas Harte
3eec210b30
Adds LDI/LDD/LDIR/LDDR tests.
2021-04-13 20:00:29 -04:00
Thomas Harte
2e70b5eb9f
Advances to EX (SP), HL, leaving only [LD/CP/IN/OT][I/D]{R}.
2021-04-13 19:45:29 -04:00
Thomas Harte
8a3bfb8672
Adds an IN/OUT test.
2021-04-13 17:55:51 -04:00
Thomas Harte
06f1e64177
Advances to IO.
2021-04-12 21:41:20 -04:00
Thomas Harte
b42780173a
Establishes that there really is no Read4 and Read4Pre distinction.
...
Will finish these unit tests, then clean up.
2021-04-12 20:54:10 -04:00
Thomas Harte
36c8821c4c
Reaches the halfway point in tests.
2021-04-12 17:29:03 -04:00
Thomas Harte
9347fe5f44
Advances to next failing test: LD (ii+n), n
.
2021-04-12 17:11:58 -04:00
Thomas Harte
e82367def3
Switches to test-conformant behaviour for (IX/IY+n) opcode fetches.
2021-04-11 23:01:00 -04:00
Thomas Harte
47c5a243aa
Restructures, the better to explore errors.
2021-04-10 21:32:42 -04:00
Thomas Harte
070e359d82
Introduces failing test for BIT b, (ii+n).
2021-04-10 18:00:23 -04:00
Thomas Harte
400f54e508
Introduces failing test for bit b, (hl).
2021-04-10 12:04:48 -04:00
Thomas Harte
e0736435f8
Makes assumption that the address bus just holds its value during an internal operation.
2021-04-10 12:00:53 -04:00
Thomas Harte
b09c5538c6
Adds failing test for simple (ii+n) tests.
2021-04-09 21:28:35 -04:00
Thomas Harte
ce3d2913bf
Advances to 9 source table rows tested out of 37.
2021-04-09 20:38:17 -04:00
Thomas Harte
87202a2a27
Add two further tests, add checking of collected data size for all tests.
2021-04-09 18:32:03 -04:00
Thomas Harte
818a4dff25
Corrects ADD HL, dd test.
...
Or, at least, likely corrects. The bus cycle breakdown in the Z80 data sheet implies these accesses should come after completion of the refresh cycle, not during its long tail, so I think +1 is correct.
2021-04-08 22:23:15 -04:00
Thomas Harte
9e506c3206
Adds failing ADD hl, dd test.
2021-04-08 22:19:22 -04:00
Thomas Harte
50f53f7d97
Adds INC/DEC rr and LD SP, HL tests.
2021-04-08 22:14:53 -04:00
Thomas Harte
73fbd89c85
Correct opcodes, ability to terminate on a single-cycle contention.
2021-04-08 22:09:33 -04:00
Thomas Harte
f74fa06f2d
Introduces failing test for LD [A/I/R], [A/I/R].
2021-04-08 20:28:55 -04:00
Thomas Harte
ee989ab762
Fills in the rest of the simple two-byte instructions.
2021-04-08 20:13:52 -04:00
Thomas Harte
818655a9b6
Starts on two-bus-cycle instructions, correcting validators.
2021-04-08 20:01:46 -04:00
Thomas Harte
57a7e0834f
Corrects sampling of MREQ.
2021-04-08 19:21:35 -04:00
Thomas Harte
cd787486d2
Tests all of the single-byte, no-access opcodes.
2021-04-07 22:07:52 -04:00
Thomas Harte
67fd6787a6
Builds what I think I need to validate Z80 address, MREQ, IOREQ and RFSH.
2021-04-07 21:57:40 -04:00
Thomas Harte
094d623485
Updates unit tests.
2021-04-05 21:33:04 -04:00
Thomas Harte
53ba0e67d1
Revert change to screenshot destination.
...
For a sandboxed app, there's a lot more to it than this.
2021-03-25 22:44:18 -04:00
Thomas Harte
e90e30e766
Enables start by double-click.
2021-03-25 17:53:07 -04:00
Thomas Harte
9f6bb325e6
Fixes longstanding issue with initial target for input.
2021-03-25 17:48:48 -04:00
Thomas Harte
6e2c65435a
Tweaks cell height slightly further.
2021-03-25 17:44:46 -04:00
Thomas Harte
052ab44f1c
Adds a title and adjusts aspect ratio.
2021-03-25 17:37:40 -04:00
Thomas Harte
daa5679241
Don't allow cell editing, lock size.
2021-03-25 16:48:11 -04:00
Thomas Harte
e055668554
With no space constraint, this can be 'ZX Spectrum'.
2021-03-25 16:27:12 -04:00
Thomas Harte
c96829c29e
Adds a table view to control tab selection.
...
This should allow the new machine dialogue to retain a sensible width from here onwards.
2021-03-25 16:25:11 -04:00
Thomas Harte
ae4ccdf5e6
Merge branch 'master' into DesktopScreenshots
2021-03-24 18:40:20 -04:00
Thomas Harte
6bdaa54aaf
Bumps copyright year.
2021-03-23 17:46:32 -04:00
Thomas Harte
a3cd953415
Fixes Spectrum machine selection.
2021-03-22 19:28:12 -04:00
Thomas Harte
c0abdf1b86
Factors out the CPC's simple FDC adaptor.
2021-03-22 19:12:10 -04:00
Thomas Harte
f37f89a7d3
Merge branch 'master' into ZXSpectrum
2021-03-21 22:44:37 -04:00
Thomas Harte
7562917740
Adds the Spectrum to the macOS New... menu.
2021-03-21 21:50:50 -04:00
Thomas Harte
2ad2b4384b
Introduces a container for ZX Spectrum-style TAPs.
2021-03-19 23:01:49 -04:00
Thomas Harte
2ee478b4c4
Goes some way towards wiring up Spectrum options.
2021-03-19 22:17:20 -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
C.W. Betts
5758693b7d
Minor pokes to the test files code.
2021-03-19 02:19:49 -06:00
Thomas Harte
69ca2e8803
Update Xcode project.
2021-03-18 23:52:35 -04:00
Thomas Harte
135134acfd
Adds a shell for video emulation.
2021-03-18 12:47:48 -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
b7d6b8efcf
Fix Xcode project.
2021-03-17 23:27:34 -04:00
Thomas Harte
b63ca16ce2
Attempts to hatch a Sinclair namespace.
2021-03-17 22:40:29 -04:00
Thomas Harte
54491b35ef
Merge branch 'master' into ZXSpectrum
2021-03-17 12:39:20 -04:00
Thomas Harte
b447f5f174
Starts adding the Spectrum to the static analyser.
2021-03-17 12:38:37 -04:00
Thomas Harte
397704a1e6
Withdraws published quick-load option for the CPC.
2021-03-15 11:37:23 -04: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
d93d380c88
Adds bit-level Spectrum-style tape parsing.
...
More to do, obviously.
2021-03-07 15:51:25 -05:00
Thomas Harte
83cbbe09c6
Adds missing constraints; eliminates magic constants.
2021-03-07 12:52:39 -05:00
Thomas Harte
2f18f40697
Ensures machine selection carries over sessions.
2021-03-06 21:32:35 -05:00
Thomas Harte
eea4c1f148
Wires up machineSelectionTabs.
2021-03-06 21:31:08 -05:00
Thomas Harte
26ad760904
Withdraws the Apple IIgs tab item.
...
Also makes some Swift style changes while I'm here: I'm pervasively assuming that all these objects exist, might as well be upfront about it.
2021-03-06 18:53:09 -05:00
Thomas Harte
2a7ea9f57c
Merge branch 'master' into AppleIIgs
2021-02-26 21:31:18 -05:00
Thomas Harte
a1df8452ce
Add the 128kb and 512kb Macintoshes as selectable options in macOS.
2021-02-26 21:22:54 -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
35be402354
Improve sanity check.
2021-02-16 19:47:25 -05:00
Thomas Harte
28bd620e7f
Adds joystick support to the IIgs.
2021-02-16 19:39:22 -05:00
Thomas Harte
96f2d802d9
Adds a safeguard against undefined behaviour in the debugger.
2021-02-16 19:17:54 -05:00
Thomas Harte
b117df3367
Factors out joystick logic.
2021-02-16 19:17:32 -05:00
Thomas Harte
17e9305282
Starts adding a keyboard.
2021-02-13 23:16:45 -05:00
Thomas Harte
2c4dcf8843
Edges towards implementing an ADB device.
2021-02-12 21:50:24 -05:00
Thomas Harte
adfdfa205f
Starts to establish the means by which I'll implement ADB devices.
2021-02-12 18:42:12 -05:00
Thomas Harte
17bac4c8cf
Starts to formalise the ADB bus.
2021-02-10 21:24:31 -05:00
Thomas Harte
6526c645a5
Merge branch 'master' into AppleIIgs
2021-02-02 21:29:38 -05:00
Thomas Harte
07df7572b3
Switch to preferred Acorn-world extension: DAT.
2021-01-31 21:03:09 -05:00