Thomas Harte
bea6cf2038
Move mouse and joystick into a separate file, give a common parent.
2021-11-26 17:50:47 -05:00
Thomas Harte
1c0962e53c
Move sprites into their own source file.
2021-11-26 15:30:31 -05:00
Thomas Harte
0ab5177637
Allow DMAState::FetchStopAndControl on y == v_stop_.
2021-11-25 14:29:12 -05:00
Thomas Harte
276cbfa505
Simplify sprite state machine.
...
This now better matches the explanation given on Page 133 of the Amiga System Programmer's Guide.
2021-11-25 14:08:55 -05:00
Thomas Harte
610c85a354
Correct test logic.
...
All tests now pass.
2021-11-25 04:11:20 -05:00
Thomas Harte
012084b37b
Fix exclusive fill, sizing, eliminate ECS call-ins.
...
The clock test now proceeds further, but still doesn't seem to pass.
2021-11-24 17:25:32 -05:00
Thomas Harte
0df8173536
Merge branch 'master' into Amiga
2021-11-24 08:58:03 -05:00
Thomas Harte
7be3578497
Adds a target for audio writes.
2021-11-09 07:11:23 -05:00
Thomas Harte
8ef9a932aa
Adds inclusive fill test; fixes inclusive fills.
2021-11-07 14:26:13 -08:00
Thomas Harte
b827b9e33e
Add necessary shift storage.
2021-11-03 19:26:45 -07:00
Thomas Harte
2c1f2edcf2
Introduce failing 'clock' test case.
...
i.e. a few seconds of the Workbench 1.0 clock application.
2021-10-31 16:12:51 -07:00
Thomas Harte
9e6ffaad7d
Introduce test case for fill mode.
2021-10-31 14:12:26 -07:00
Thomas Harte
edb75e69cb
Implement bitplane modulos.
2021-10-29 11:29:22 -07:00
Thomas Harte
5ebc59dd1f
Introduce additional test cases.
2021-10-26 20:58:38 -07:00
Thomas Harte
4d7ce3792f
Use additional test cases.
2021-10-25 21:48:43 -07:00
Thomas Harte
dc8701a929
Introduce some additional Blitter test cases.
2021-10-25 21:40:20 -07:00
Thomas Harte
15ed4a0d09
Introduce failing test case for sector decoding.
2021-10-16 10:48:32 -07:00
Thomas Harte
aa6b0f07b7
Correct filename.
2021-10-16 05:37:46 -07:00
Thomas Harte
9be23ecc34
Add end-of-Blit interrupt.
...
Along with a slightly easier path for posting interrupts, in C++ compilation unit terms.
2021-10-13 15:09:19 -07:00
Thomas Harte
955cb6411c
Factor out bit spreading.
...
(And do a better job of it)
2021-10-12 14:49:01 -07:00
Thomas Harte
ec3d5c0b32
Increase maximum number of activity LEDs to eight.
2021-10-10 18:37:33 -07:00
Thomas Harte
6b0dd19442
Name file appropriately: the logo comes from Kickstart.
2021-10-09 08:02:15 -07:00
Thomas Harte
5ccb512883
Moves the CIAs into the Chipset class.
...
This reflects the routing of interrupt signals for now, but also prepares for the addition of disk drives.
2021-10-04 06:44:54 -07:00
Thomas Harte
da286d5ae8
Switch spaces to tabs.
2021-10-04 05:27:25 -07:00
Thomas Harte
ad90c6b6ce
Now that this is getting close, don't stop at the first error.
2021-09-29 22:19:34 -04:00
Thomas Harte
0c998d60cb
Correct test logic for line draws that repeatedly write to the same address.
2021-09-28 21:45:55 -04:00
Thomas Harte
1dfc36f311
Flip loop, add modulo mappings.
2021-09-26 18:15:32 -04:00
Thomas Harte
1c03ff1d37
Fix bltdptl to bltbptl misstatement; remove pre-DMA writes.
2021-09-26 18:14:50 -04:00
Thomas Harte
19dd2f92bd
Implements test case. Failing at present, naturally.
2021-09-25 21:52:41 -04:00
Thomas Harte
acfaa016a0
Adds a capture of traffic leading up to the Workbench boot logo.
...
Around which to construct a test case.
2021-09-25 18:10:07 -04:00
Thomas Harte
adf7124e2c
Eliminate 6502Base.cpp.
2021-09-23 22:33:33 -04:00
Thomas Harte
fa800bb809
Introduces code for minterm application.
2021-09-20 19:13:23 -04:00
Thomas Harte
3d85f820f4
Add missing file to kiosk project.
2021-09-16 21:29:11 -04:00
Thomas Harte
245b7baa61
Moves the Copper into its own file.
2021-09-16 21:17:23 -04:00
Thomas Harte
add11db369
Factors out DMADevice, which is now a parent of Blitter.
2021-09-14 20:51:32 -04:00
Thomas Harte
fd70f7ad43
Attempts to make pixel content observeable.
2021-09-08 20:57:26 -04:00
Thomas Harte
635c1eacd5
Merge branch 'master' into Amiga
2021-08-11 17:31:17 -04:00
Thomas Harte
6dbce96781
Switch to non-breaking space, to avoid orphan word.
2021-08-11 17:28:37 -04:00
Thomas Harte
9ec42f0f8f
Cleans up bottom constraints.
2021-08-11 17:12:01 -04:00
Thomas Harte
10a5e7313f
Makes a buggy first attempt at bitplane data collection.
2021-08-10 21:28:48 -04:00
Thomas Harte
27726fd2d1
Merge branch 'master' into Amiga
2021-08-09 17:24:06 -04:00
Thomas Harte
77befb7f8e
Correct Atari ST text placement; add missing Enteprise constraint.
2021-08-09 17:14:37 -04:00
Thomas Harte
86c6248b48
Merge branch 'master' into Amiga
2021-08-09 17:09:04 -04:00
Thomas Harte
7d8894415c
Increase precision of phase interpolation.
2021-08-09 15:48:27 -04:00
Thomas Harte
e402e690b0
Assume and test that divide-by-zero posts the PC of the offending instruction.
2021-08-07 17:51:00 -04:00
Thomas Harte
6a15bb15ca
Adds a simpler way of deferring single values.
2021-08-07 17:29:21 -04:00
Thomas Harte
8be053fd35
Fixes top constraint for Atari ST.
2021-08-06 22:57:45 -04:00
Thomas Harte
99fee22a9f
Adjusts defaults.
2021-08-06 22:13:21 -04:00
Thomas Harte
084d002353
Adds the Amiga to macOS File -> New...
2021-08-06 21:58:31 -04:00
Thomas Harte
b4ec9d70da
Adds the CNT input.
2021-08-03 22:19:41 -04:00
Thomas Harte
738999a8b7
Further expands list of applied tests.
2021-08-03 22:08:50 -04:00
Thomas Harte
34c1cc5693
Adds entry points for all remaining tests.
...
Failing now: the TB123s, which are TOD related, both CIA2 tests, and CIA1TAB (which I think needs me to implement Port B output toggling).
2021-08-03 17:19:35 -04:00
Thomas Harte
f0ef45f0ca
Introduces two further tests.
2021-08-03 16:58:51 -04:00
Thomas Harte
38848ca2db
Rationalises reload logic and cuts storage.
...
Failure point is now chaining, I think.
2021-08-02 20:14:01 -04:00
Thomas Harte
26aaddaa33
Adds further documentation.
2021-07-30 21:34:22 -04:00
Thomas Harte
f576baf214
I'm not yet sure this is the best approach, but starts trying to make use of Lorenz's 6526 tests.
2021-07-30 21:21:16 -04:00
Thomas Harte
5c1ac05170
Add documentation.
2021-07-30 21:20:45 -04:00
Thomas Harte
3d9f86c584
Begins keyboard sketches and notes.
2021-07-30 18:23:15 -04:00
Thomas Harte
2bc9af09e1
Factors out the chipset.
2021-07-22 21:16:23 -04:00
Thomas Harte
e85db40b0f
Sketches out a blitter class.
2021-07-22 18:43:07 -04:00
Thomas Harte
67d53601d5
Latch and return data direction.
...
Albeit with no port-handling effect yet.
2021-07-18 12:23:47 -04:00
Thomas Harte
377cc7bdcd
Start to introduce a 6526/8250.
2021-07-18 11:36:13 -04:00
Thomas Harte
6ade36bf09
Adds an empty shell of a machine.
2021-07-16 20:30:48 -04:00
Thomas Harte
c52945aab5
Adds passthrough for Amiga media.
2021-07-16 20:15:36 -04:00
Thomas Harte
7cb16a3fc5
Introduces a shell for Amiga ADF decoding.
2021-07-16 18:11:07 -04:00
Thomas Harte
eab9bc1503
Make implicit conversion explicit.
2021-07-16 17:45:14 -04:00
Thomas Harte
c226be612f
Slightly adjusts mouse hiding semantics.
...
This allows the Macintosh and ST to fade out volume and settings even without having captured the mouse.
2021-07-16 17:21:25 -04:00
Thomas Harte
d35c7ad127
Take advantage of persistence flag for more intelligent LED presentation.
2021-07-15 21:49:11 -04:00
Thomas Harte
ea63415d0e
Exposes persistent LED flag to Swift.
2021-07-15 21:34:14 -04:00
Thomas Harte
52ea3b741c
Introduces a presentation flag for LEDs.
...
All existing receivers ignore it.
2021-07-15 21:26:02 -04:00
Thomas Harte
84547ee1c1
Reduce spurious in-window appearances.
2021-07-15 19:53:40 -04:00
Thomas Harte
a42848c62f
Add windowed LED reappearance upon blink.
...
Also fix crash-at-startup for fullscreen.
2021-07-15 19:51:23 -04:00
Thomas Harte
81374b70b5
Switch to transient LED presentation in windowed mode.
2021-07-15 19:22:23 -04:00
Thomas Harte
47a530fd5c
Fixes LED ordering.
...
Still work to do on capturing the proper window title.
2021-07-14 22:01:42 -04:00
Thomas Harte
58451d7c0c
Attempts to incorporate LEDs into the window title when in windowed mode.
2021-07-14 21:43:58 -04:00
Thomas Harte
5c8f8c76fe
Thus ends the View menu.
2021-07-14 21:02:58 -04:00
Thomas Harte
ae1d1bdb5b
Wires up controller for QuickLoadOptions.
2021-07-14 21:02:04 -04:00
Thomas Harte
33cc1154a2
Simplify ViewFader
and avoid second-guessing when to hard-set opacity.
2021-07-14 20:50:41 -04:00
Thomas Harte
4bc0b75c30
Ensure Macintosh controller is effective.
2021-07-14 20:50:12 -04:00
Thomas Harte
eb8ec1efb1
Makes ViewFader
the full master of fading.
2021-07-14 19:03:44 -04:00
Thomas Harte
616f8efc47
Improves optional hysteresis.
2021-07-13 23:40:15 -04:00
Thomas Harte
29e4369420
Attempts to switch activity indicators to smart in-window presentation.
2021-07-13 23:32:00 -04:00
Thomas Harte
bd7f7bc8d7
Remove dead 'show options'.
2021-07-13 22:28:03 -04:00
Thomas Harte
e689ca92c4
Minor rearrangements, for cleanliness.
2021-07-13 22:26:50 -04:00
Thomas Harte
174c837767
Switches to a logarithmic volume dial.
2021-07-13 21:45:07 -04:00
Thomas Harte
486bb911a9
Adapts ZX80/81 options.
2021-07-13 21:26:20 -04:00
Thomas Harte
754221d697
Adapts QuickLoadOptions.
...
Not that it currently seems to be used.
2021-07-13 21:21:02 -04:00
Thomas Harte
3c36c90729
Adapts QuickLoadCompositeOptions.
2021-07-13 21:17:52 -04:00
Thomas Harte
3d1d15a25b
Updates the Oric options.
2021-07-13 19:32:23 -04:00
Thomas Harte
000d99f26c
Adapts the Macintosh options.
2021-07-13 19:26:29 -04:00
Thomas Harte
524e2abc8c
Adapts composite options.
2021-07-13 19:19:47 -04:00
Thomas Harte
00bab98e09
Converts the Apple II options into an in-window view.
2021-07-13 19:14:54 -04:00
Thomas Harte
6d98349be1
Fully invests in options controllers, distinct from the views.
...
Per MVC, I should have been doing something closer to this from day one.
2021-07-13 19:04:24 -04:00
Thomas Harte
d24d153c08
Use modern constraint specification, add layers to XIBs.
2021-07-12 22:55:53 -04:00
Thomas Harte
b01561712c
Tightens spacing slightly.
2021-07-12 22:49:42 -04:00
Thomas Harte
324edcb391
Starts towards using an in-window options panel.
...
With the same fade in/out behaviour as the volume control.
2021-07-12 22:38:08 -04:00
Thomas Harte
f81ecbf4a0
Force icons back to white.
2021-07-12 22:01:19 -04:00
Thomas Harte
4370456323
Switch to an NSVisualEffectView for volume controls.
...
It provides a background that better contrasts with arbitrary content.
2021-07-12 21:28:04 -04:00
Thomas Harte
a424ed7c00
Makes for slightly more straightforward constraints.
2021-07-12 19:25:06 -04:00
Thomas Harte
a2065f59a1
Adds a 0.1 second pause before exit-related menu fadeout.
...
This is because the system may post a quick succession of exits and enters if the view hierarchy changes.
2021-07-12 19:12:04 -04:00
Thomas Harte
9bc94f4536
Be consisted on .selectedTag()
.
2021-07-08 22:38:54 -04:00
Thomas Harte
1b29cc34c4
Correct input list.
2021-07-08 22:22:48 -04:00
Thomas Harte
53c3c1f5ab
Allows macOS users to select the 6MHz Enterprise.
2021-07-08 18:50:37 -04:00
Thomas Harte
94907b51aa
Remove redundant parameter.
2021-07-06 20:47:49 -04:00
Thomas Harte
0085265d13
Test for a longer period; fix expected tone 1 count.
2021-07-06 20:46:22 -04:00
Thomas Harte
8e0893bd42
Clarifies control flow.
2021-07-06 20:28:32 -04:00
Thomas Harte
704dc9bdcb
Improves test, to assert that state toggles happen at interrupts.
2021-07-06 20:25:32 -04:00
Thomas Harte
3e6b804896
Switches to linked 1/50/1000 Hz timers, and per-interrupt state toggling.
2021-07-06 20:12:44 -04:00
Thomas Harte
ceb62ac7f9
Reenable the hardened runtime for macOS.
2021-07-03 13:41:32 -04:00
Thomas Harte
f371221dba
Add a quick test of tone generator 1.
2021-07-02 23:57:11 -04:00
Thomas Harte
27b0579ec6
Avoid stack-error test case.
...
Also test that the interrupt is generated on the downward stroke.
2021-07-02 23:55:43 -04:00
Thomas Harte
283092cfbc
With a unit test in aid, corrects some lingering TimedInterruptSource
issues.
2021-07-02 23:41:19 -04:00
Thomas Harte
7826a26c7b
Adds Enterprise composite video option.
...
While enabling more pixels on the left for RGB mode.
2021-07-02 21:42:09 -04:00
Thomas Harte
fe07a0b1d8
Starts to add a FAT[12] parser.
2021-07-02 18:56:43 -04:00
Thomas Harte
f2336d2efc
I think reloads occur after overflow, not before.
2021-06-26 23:16:00 -04:00
Thomas Harte
2c2bb3765f
Withdraws the EPDOS option.
...
At least for now; it's something to worry about later.
2021-06-23 19:32:34 -04:00
Thomas Harte
88f0f2b623
Adds to the macOS UI and wires through all Enterprise options.
2021-06-22 21:39:07 -04:00
Thomas Harte
a66734883a
Starts sketching out Dave.
2021-06-22 19:33:41 -04:00
Thomas Harte
83a54fd6d2
Use the FAT12 boot sector to determine geometry.
2021-06-22 06:54:17 -04:00
Thomas Harte
b49cc407c6
Adds some guesses as to the EXDos expansion.
...
... with plenty left to do.
2021-06-20 22:30:27 -04:00
Thomas Harte
07dc26f8fa
Adds TODO to resolve screen jumping.
2021-06-19 23:41:29 -04:00
Thomas Harte
fbf1adef05
Introduces unit test and thereby seemingly fixes get_next_sequence_point.
...
There's still improper output in the actual machine though, so maybe something else is afoot?
2021-06-18 17:44:17 -04:00
Thomas Harte
0c3e9dca28
Adds some basic keyboard inputs.
...
I think the next thing required is interrupts though.
2021-06-17 20:47:56 -04:00
Thomas Harte
1d1e6d1820
Adds a shell of a Nick.
2021-06-14 22:19:25 -04:00
Thomas Harte
fe04410681
Merge branch 'master' into Enterprise
2021-06-14 21:30:49 -04:00
Thomas Harte
1f686c4e6b
Add missing AppleIIOptionsPanel class.
2021-06-14 21:30:30 -04:00
Thomas Harte
61c127ed2e
Adds Enterprise as a File -> New... machine.
...
And, similarly, exposes it for the route used by SDL.
2021-06-14 20:55:39 -04:00
Thomas Harte
d18a537509
Fiddles with the preprocessor to make kiosk mode match other OSes even on macOS.
2021-06-13 19:28:05 -04:00
Thomas Harte
de3b37799c
Switches to a static_cast
. No need for reflection here.
2021-06-08 17:37:28 -04:00
Thomas Harte
70851f3b2d
Resolve misplacement.
2021-06-07 21:43:26 -04:00
Thomas Harte
462bbf2e40
Exposes square pixels option on macOS.
2021-06-07 21:21:45 -04:00
Thomas Harte
778b9ef683
Ensures set_square_pixels is exposed, works around OpenGL aspect ratio bug.
2021-06-07 20:41:02 -04:00
Thomas Harte
f27e331462
Updates autotests to new RomFetcher world.
2021-06-06 20:34:55 -04:00
Thomas Harte
dd64aef910
Improves request construction and improves descriptions.
2021-06-06 20:25:26 -04:00
Thomas Harte
95971f39f1
Reintroduces full messaging to macOS.
2021-06-06 20:02:13 -04:00
Thomas Harte
83beb3c0e6
Introduces slightly-less manual ROM::Request::visit
.
2021-06-06 18:28:02 -04:00
Thomas Harte
76335e5cf2
Factors out and slightly generalises textual descriptions of ROM::Descriptions.
2021-06-06 18:15:00 -04:00
Thomas Harte
4494320238
Corrects the macOS Swift side of things.
2021-06-06 14:56:43 -04:00
Thomas Harte
5acd97c860
Puts enough in place for a GUI-led installation process.
...
... and provides a lot of the Objective-C wiring necessary to expose that to Swift.
2021-06-06 14:24:38 -04:00
Thomas Harte
afd8dc0915
Nudge just far enough to be able to launch again under macOS.
2021-06-04 22:24:31 -04:00
Thomas Harte
fbee74e1fe
Avoids storing or printing a CRC if none is known.
2021-06-04 22:03:08 -04:00
Thomas Harte
ccd82591aa
Reinstates SDL error message; adds expansion of ~
.
2021-06-04 21:53:56 -04:00
Thomas Harte
e36cc9e777
Transcribes the Apple II ROM descriptions.
2021-06-04 19:19:55 -04:00
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
Thomas Harte
f1ba040dd8
This is probably how Acorn hard disk images look (?)
2021-01-31 16:00:52 -05:00
Thomas Harte
8db289e229
Adds some notes-to-self on SCSI and a route to using Acorn's ADFS.
2021-01-31 13:12:59 -05:00
Thomas Harte
b5ecd5f7ef
Merge branch 'master' into AppleIIgs
2021-01-31 11:47:40 -05:00
Thomas Harte
3d85e6bb97
Adds Mac UI for new Electron configuration options.
2021-01-31 09:49:51 -05:00
Thomas Harte
56111c75ae
Makes first efforts towards disassembly.
2021-01-26 19:52:30 -05:00
Thomas Harte
7f62732476
Fixes kiosk target, accepts that I'll probably never add UI tests.
2021-01-23 21:59:21 -05:00
Thomas Harte
e5076b295b
Corrects namespace.
2021-01-21 18:58:11 -05:00
Thomas Harte
ec0018df79
Routes in the ADB keyboard ROM. This should get as far as parsing.
2021-01-18 16:59:49 -05:00
Thomas Harte
5ace61f9b9
Continues walking very slowly towards cached execution.
2021-01-18 11:20:45 -05:00
Thomas Harte
54b26c7991
Bends to using 8-bit lookups for M50740 instructions.
2021-01-17 20:03:36 -05:00
Thomas Harte
8860d0ff51
Starts to establish the CachingExecutor.
2021-01-16 22:06:16 -05:00
Thomas Harte
10caa1a1fb
Steps gingerly towards execution.
2021-01-16 20:51:02 -05:00
Thomas Harte
3b2d65fa16
Adds access type declaration.
2021-01-16 20:04:01 -05:00
Thomas Harte
3dc36b704a
Starts on the next piece: parsers.
2021-01-16 19:54:40 -05:00
Thomas Harte
3c20e1f037
Adds files for the M50740 and corrects namespace errors elsewhere.
2021-01-15 21:30:30 -05:00
Thomas Harte
15bedc74d4
Merge branch 'master' into AppleIIgs
2021-01-15 21:15:10 -05:00
Thomas Harte
ddb4bb1421
Better plans project layout.
2021-01-15 18:16:01 -05:00
Thomas Harte
ca94e9038e
Introduces 'far' test, fixes parsing.
2021-01-14 22:15:38 -05:00
Thomas Harte
2c72a77a25
Adds byte-by-byte decoder test; corrects divergences.
2021-01-13 21:51:18 -05:00
Thomas Harte
8c0e06e645
Adds a test for 0x83 and fixes sign extension.
...
ODA doesn't seem to accept 0x82, but testing 0x83 adds some confidence.
2021-01-13 20:42:21 -05:00
Thomas Harte
5058a8b96a
Completes the first test stream.
...
... and improves decoding consistency in conjunction.
2021-01-12 21:49:22 -05:00
Thomas Harte
762ecab3aa
Adds operand/displacement capture.
...
This gets unit test as far as a disagreement over how to handle bad 0xc4 suffixes.
2021-01-10 22:55:25 -05:00
Thomas Harte
9ba5b7c1d4
Adds a few more asserts.
...
It's still just operands and displacements failing, which is nice.
2021-01-08 23:21:01 -05:00
Thomas Harte
5f807b6e47
Ensures that the operand is the only thing failing in decoding of the first instruction.
2021-01-08 23:02:06 -05:00
Thomas Harte
86577b772b
Rethinks size
; packs all captured information into an x86 Instruction.
...
Albeit that operand and displacement are't yet captured. Or extractable.
2021-01-08 22:22:07 -05:00
Thomas Harte
3b55d3f158
Nudges up to a need to decode operation from the ModRegRM byte.
2021-01-05 21:25:12 -05:00
Thomas Harte
da814c62bc
Merge branch 'master' into AppleIIgs
2021-01-03 20:57:08 -05:00
Thomas Harte
d4095b1b3b
Merge branch 'master' into DecodersAhoy
2021-01-03 20:56:47 -05:00
Thomas Harte
a8738b533a
Switch for now to block-level decoding.
...
It's easier to step debug.
2021-01-03 20:07:46 -05:00
Thomas Harte
11b6c1d4b5
Proceeds to three instructions correctly decoded. 'Wow'.
2021-01-03 17:03:50 -05:00
Thomas Harte
367cb1789d
Starts building an x86 test.
2021-01-03 16:37:35 -05:00
Thomas Harte
adf1484ecc
Introduces third test sequence, uneventfully.
2021-01-03 16:21:23 -05:00
Thomas Harte
eb8d0eefd5
Factors out some boilerplate and introduces second sequence.
2021-01-03 11:14:30 -05:00
Thomas Harte
c934e22cee
Introduces a first test of PowerPC decoding.
...
Corrected as a result: the bcx conditional, that stdu is 64-bit only, extraction of the li field.
2021-01-02 22:47:42 -05:00
Thomas Harte
dc9d370952
Does the easier part of the easier half of 8086 decoding.
2021-01-02 19:16:07 -05:00
Thomas Harte
3d1783ddae
Add exposition as to the purpose of decoders.
2021-01-01 17:32:57 -05:00
C.W. Betts
3749b7b776
My improvements:
...
Use synthesized properties for CSMissingROM.
Remove openGLView from the xib: that will quiet a warning.
Add nullability metadata to CSStaticAnalyser.
2020-12-31 13:23:46 -07:00
Thomas Harte
ed63e7ea75
Starts building out a PowerPC decoder.
2020-12-30 22:55:59 -05:00
Thomas Harte
31d68622c8
Better ensures frame buffer can be cleared.
2020-12-29 22:26:19 -05:00
Thomas Harte
ee5f45c979
Merge branch 'master' into AppleIIgs
2020-12-29 22:16:23 -05:00
C.W. Betts
5a48e50355
Use isEqual: to compare GCController when connecting/disconnecting.
...
Only remove observers for GCController notifications.
2020-12-14 15:41:11 -07:00
C.W. Betts
86283b1815
Actually write the setup code.
2020-12-14 01:14:40 -07:00
C.W. Betts
a38d964f62
Initial GameController joystick support.
2020-12-13 11:23:33 -07:00
Thomas Harte
3b2e97e77c
Introduces basic auxiliary switch tests.
...
All of which pass. Grrr.
2020-12-11 21:30:03 -05:00
Thomas Harte
c978a95463
Increases asserts and adds a test.
...
Thereby discovers and fixes a problem with set_main_paging().
2020-12-10 21:49:23 -05:00
Thomas Harte
fe4caf7a41
Nudges tick frequency up to match the other platforms.
2020-12-10 21:02:13 -05:00
Thomas Harte
4bf85abf30
Ensure defined initial state for the frame buffer.
2020-12-10 18:15:07 -05:00
Thomas Harte
49cee90b4d
Ensures no retraces are missed.
2020-12-09 20:32:26 -05:00
Thomas Harte
394f6b58d8
Ensure _finalisedLineTexture
really is cleared.
2020-12-09 20:18:53 -05:00
Thomas Harte
a91a13b46b
Merge branch 'master' into AppleIIgs
2020-12-09 19:33:23 -05:00
Thomas Harte
b589d6e3ef
Fixes retina-display buffer size.
2020-12-09 18:51:10 -05:00
Thomas Harte
db8b265e80
Enable M1 release builds.
2020-12-09 18:38:14 -05:00
Thomas Harte
d35def4bbc
Ensures a consistent initial state.
2020-12-06 22:01:59 -05:00
Thomas Harte
d5f209366a
Extends testing to disabling IO space.
2020-12-06 21:53:53 -05:00
Thomas Harte
9062e80e9d
Adds anti-IO protection.
2020-12-06 21:46:04 -05:00
Thomas Harte
fd3760cedc
Adds passing test of basic $00 -> $01 -> $e1 shadowing.
2020-12-06 21:19:38 -05:00
Thomas Harte
9b73331ee9
Resolves deprecated use of scanHexInt32
.
2020-12-06 20:49:12 -05:00
Thomas Harte
65ca931e83
Throws in a new assert, against the unimplemented bit 0 of new video.
2020-12-06 20:26:24 -05:00
Thomas Harte
3da6b4709c
Fixes sign of arithmetic.
2020-11-29 20:23:33 -05:00
Thomas Harte
091bce9350
Merge branch 'master' into AppleIIgs
2020-11-29 00:09:20 -05:00
Thomas Harte
5fc6dd1a4d
Regresses macOS deployment target for kiosk mode to avoid OpenGL warning.
2020-11-27 21:02:04 -05:00
Thomas Harte
f54a3f8619
Limit test target to latest macOS, current architecture.
2020-11-26 19:50:38 -05:00
Thomas Harte
b0efc647f1
An OpenGL context is neither still necessary nor desirable.
2020-11-26 13:49:41 -05:00
Thomas Harte
b4bf541eec
Adds boilerplate route into a 2MG-handling class.
2020-11-23 21:42:18 -05:00
Thomas Harte
4359fb1746
Enables undefined-behaviour sanitiser.
2020-11-22 21:30:00 -05:00
Thomas Harte
4a42de4f18
Attempts to add 5.25" drive support to the IIgs.
...
I want to try some classic software.
2020-11-20 21:37:17 -05:00
Thomas Harte
bd8af25294
Merge branch 'master' into AppleIIgs
2020-11-13 21:27:47 -05:00
Thomas Harte
e803f993b7
Increases minimum macOS version to 10.14.
...
This is lazy, but it means I definitely don't need non-Metal fallback code.
2020-11-13 19:48:45 -05:00
Thomas Harte
5dbc87caf0
Smarter: just ensures any attached panels are closed at close().
2020-11-13 19:09:30 -05:00
Thomas Harte
4862ccc947
Dismisses ROM requester upon that cancel too.
2020-11-13 19:01:53 -05:00
Thomas Harte
e1ecf66485
Dismisses sheet before closing document.
2020-11-13 19:00:37 -05:00
Thomas Harte
2c71ba0744
Ameliorates against a potential NSRangeException.
2020-11-13 18:29:48 -05:00
Thomas Harte
a7aeb779e9
Disables Apple Silicon binaries until I have some means to test.
2020-11-13 18:07:45 -05:00
Thomas Harte
e72cfbf447
Stop assuming that NSNotification => window.isVisible.
2020-11-13 18:04:31 -05:00
Thomas Harte
0c04a376c4
Stop assuming that NSNotification => window.isVisible.
2020-11-13 18:03:46 -05:00
Thomas Harte
3c6dc4c448
Merge branch 'master' into AppleIIgs
2020-11-13 12:51:53 -05:00
Thomas Harte
86a24cc928
Allows Xcode to bump its versioning on the ROM requester too.
2020-11-13 12:23:48 -05:00
Thomas Harte
e8b52d20e9
Slightly tweaks machine picker for macOS Big Sur.
2020-11-13 12:14:35 -05:00
Thomas Harte
a15af1df5e
Attempts to use the other bit of disk drive control, the 5.25"/3.5" select.
...
For the record, the ROM thinks it finds some Smartport devices and then attempts to talk to them. Since none is present, it blocks forever.
2020-11-11 17:55:50 -05:00
Thomas Harte
6d3d7c6006
It seems like this fix is no longer needed.
2020-11-11 17:30:22 -05:00
Thomas Harte
7aea3dc124
Corrects R4G4B4 and R2G2B2 output.
2020-11-07 23:15:48 -05:00
Thomas Harte
93968d267d
Corrects R4G4B4 and R2G2B2 output.
2020-11-07 22:19:27 -05:00
Thomas Harte
4f9d06d8c7
Merge pull request #846 from MaddTheSane/maddsIIgs
...
Use url(forResource:... instead of path(forResource:…
2020-11-06 09:39:27 -05:00
C.W. Betts
189a468ad4
Use url(forResource:... instead of path(forResource:… as it cuts down on creating a URL struct.
2020-11-05 14:42:39 -07:00
C.W. Betts
a3414c2673
Update 65816kromTests.swift
...
Only have one runTest method.
2020-11-05 14:36:34 -07:00
Thomas Harte
5126163c5d
Attempts to reduce pull request heft.
...
Given that the licensing of krom's tests is uncertain, and I've given credit and an appropriate link, I needn't include the original code.
2020-11-04 21:49:45 -05:00
Thomas Harte
cc6c0d535c
Stubs in some of the sound GLU registers.
2020-11-04 21:29:44 -05:00
Thomas Harte
e3147b6b45
Introduces a pre-STP/WAI limit for the MSC test.
...
This way I retain testing of NOP, BRK, COP and WDM.
2020-11-03 20:59:07 -05:00
Thomas Harte
cc5ec78156
Provides something on WAI/STP; sizes STY by the x flag; disables MSC test.
2020-11-03 20:17:44 -05:00
Thomas Harte
5cbb91f352
Fixes COP
vector, ensures WDM
skips a byte.
2020-11-03 20:01:02 -05:00
Thomas Harte
bf85d71674
Brings ADC into conformance. Fixes JML
.
2020-11-03 18:12:10 -05:00
Thomas Harte
426e90eebf
Adds logic to work around Nintendo dependence in the krom tests.
...
Let the real work begin!
2020-11-03 14:18:40 -05:00
Thomas Harte
3889646d6b
Takes a swing at incorporating krom's 65816 test suite. At least as far as ADC.
2020-11-02 21:09:32 -05:00
Thomas Harte
2da71acefd
Stubs in the ADB GLU.
2020-10-31 21:00:15 -04:00
Thomas Harte
45f5896b76
Stubs video switches into the IIgs.
2020-10-31 20:39:32 -04:00
Thomas Harte
1b28d929e4
Factors out the Apple II/IIe video switches and mode selection logic.
2020-10-31 20:02:50 -04:00
Thomas Harte
1249fb598b
Factors Apple's RTC out of the Macintosh.
2020-10-29 21:03:02 -04:00
Thomas Harte
bdda84dfde
Adds a very basic shadowing test.
...
For the record, I'm aware that there's a lot here that I'm not testing. I think the smart move is to get towards a running machine and see which configurations it actually tries to set up, then follow along with appropriate testing; it might cause me to discover a flaw in my comprehension before I've made the same mistake in both the code and a test.
2020-10-27 19:59:41 -04:00
Thomas Harte
74f9f6ad3b
Tests and corrects ROM access beyond bank $00.
2020-10-27 19:02:15 -04:00
Thomas Harte
f830f6a57a
Adds failing test of initial ROM mirroring.
...
It's the end of the evening, so this is it for today.
2020-10-25 22:13:54 -04:00
Thomas Harte
82c733c68c
Adds some very basic actual tests.
2020-10-25 21:40:50 -04:00
Thomas Harte
ed510409c4
Starts memory map test class, already finding a typo.
2020-10-25 21:31:21 -04:00
Thomas Harte
7614eba4bf
Factors out the IIgs memory map logic.
...
As testing would be rational.
2020-10-25 21:10:04 -04:00
Thomas Harte
9371a8993f
Factors out auxiliary memory switches and related decisions.
2020-10-22 22:33:31 -04:00
Thomas Harte
410c99de54
Factors out the language card memory selection logic.
2020-10-22 21:01:12 -04:00
Thomas Harte
a5dcab4092
Ensures machines with no audio output are handled correctly.
2020-10-21 21:16:00 -04:00
Thomas Harte
8bde2e5f4c
Slightly neatens Cocoa machine picker.
2020-10-20 22:25:39 -04:00