Thomas Harte
df29a50738
Attempt to support the DMA interface.
2022-08-31 15:33:48 -04:00
Thomas Harte
7996fe6dab
'Clock' the SCSI bus (i.e. make it aware of passing time).
2022-08-30 16:40:25 -04:00
Thomas Harte
4df2a29a1f
Add storage to the bus.
2022-08-24 15:23:50 -04:00
Thomas Harte
6010c971a1
Provide a volume to the SCSI card if one is received.
2022-08-23 15:11:56 -04:00
Thomas Harte
ea4bf5f31a
Provide card's SCSI ID.
2022-08-23 15:05:36 -04:00
Thomas Harte
f4c242d5e9
Attempt to offer centralised C8 region decoding.
2022-08-23 14:50:44 -04:00
Thomas Harte
0595773355
Invents a new virtual select line for extended handling card ROM areas.
2022-08-23 14:41:45 -04:00
Thomas Harte
f89ca84902
Add missing include.
2022-08-22 21:44:33 -04:00
Thomas Harte
3c2d01451a
Remove dead comment.
2022-08-22 17:01:52 -04:00
Thomas Harte
c2c81162a1
Sketch out some of the easy stuff.
2022-08-22 16:48:51 -04:00
Thomas Harte
3d234147a6
Add in collected specs.
2022-08-22 10:22:19 -04:00
Thomas Harte
8f2e94a1d8
Switch name back to emphasise _async_.
2022-07-16 14:41:04 -04:00
Thomas Harte
bf03bda314
Generalise AsyncTaskQueue, DeferringAsyncTaskQueue and AsyncUpdater into a single template.
2022-07-14 16:39:26 -04:00
Thomas Harte
6dabdaca45
Switch to int
; attempt to do a better job of initial audio filling.
2022-07-09 13:33:46 -04:00
Thomas Harte
b097b1296b
Adopt granular flushing widely.
2022-07-08 16:04:32 -04:00
Thomas Harte
7aeaa4a485
Tweak paging semantics, to allow simple multiple dependencies.
2022-06-27 21:38:45 -04:00
Thomas Harte
866b6c6129
Eliminate off_t
.
2022-04-27 19:16:37 -04:00
Thomas Harte
efff91ea3d
Undo bad guess at initial switch state.
2022-04-17 17:03:05 -04:00
Thomas Harte
f5d3d6bcea
Splits the lowpass filter into push and pull variants.
2021-11-21 15:37:29 -05:00
Thomas Harte
d8e42c4379
Tweak guess at initial state.
2021-09-09 22:06:36 -04:00
Adam Smith
fdb676da4e
.
2021-08-01 00:26:14 -07:00
Thomas Harte
1ea4130035
Avoid OpenGL restretching bug.
2021-06-13 19:46:47 -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
778b9ef683
Ensures set_square_pixels is exposed, works around OpenGL aspect ratio bug.
2021-06-07 20:41:02 -04:00
Thomas Harte
96e7eb1bed
Adds a use-square-pixels option for the Apple II.
2021-06-07 20:16:01 -04:00
Thomas Harte
b6b3d845a3
Correct Apple IIe and Enhanced IIe startup.
2021-06-04 22:48:08 -04:00
Thomas Harte
0aa8c3c40d
For SDL at least, advances to failed linking.
...
... and with error reporting currently AWOL.
2021-06-03 22:22:56 -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
db52f13c32
Disambiguates reset_all_keys
.
2021-04-19 21:49:06 -04:00
Thomas Harte
0f9ab53ea0
Resolves GCC warnings from dangling Apple IIgs work.
2021-03-21 22:36:18 -04: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
6e9d517c26
Minor cleanliness improvement.
2020-12-11 21:43:13 -05:00
Thomas Harte
159924dcc0
More clarity tweaks.
2020-12-10 22:47:11 -05:00
Thomas Harte
5d8f284757
Makes minor style improvements.
2020-12-10 22:11:53 -05:00
Thomas Harte
1422d43c35
Corrects documentation errors and ambiguities.
2020-12-05 19:07:38 -05:00
Thomas Harte
187f507532
The soft switch is LCBANK2, not LCBANK1.
...
[This also jimmys the IIgs into always entering its extended self test, for now]
2020-11-30 22:35:51 -05:00
Thomas Harte
091bce9350
Merge branch 'master' into AppleIIgs
2020-11-29 00:09:20 -05:00
Thomas Harte
a965c8de9f
Resolves intended reset_all_keys.
2020-11-27 21:53:34 -05:00
Thomas Harte
79ef026b93
Allows machines to declare a preference for logical input.
...
It's only a preference, and the Apple II does prefer it.
2020-11-27 21:00:48 -05:00
Thomas Harte
a4ab5b0b49
Does a better job of ensuring sensible key mappings.
2020-11-27 20:49:38 -05:00
Thomas Harte
e7160fe3c3
Rounds out the IIgs video hardware, bugs aside.
2020-11-23 20:58:32 -05:00
Thomas Harte
a34f294ba8
Pulls out commonalities re: NTSC colour, ensures mixed modes on a line works.
2020-11-22 21:29:40 -05:00
Thomas Harte
2c9ce116a2
Resolves various GCC-reported issues.
2020-11-19 22:21:20 -05:00
Thomas Harte
62f936128d
It seems possibly there is a distinct IIgs character ROM?
2020-11-16 22:22:26 -05:00
Thomas Harte
dc8d4d49f5
Gives the two sets of switches responsibility for supplying 'state'.
...
(And fixes language-card state value.)
2020-11-09 22:11:20 -05:00
Thomas Harte
81c38c7200
Per the IIgs tech note, this value works the other way around.
2020-11-07 23:15:07 -05:00
Thomas Harte
613d4b7c8b
Migrates character ROM handling; supplies one for the IIgs.
2020-11-07 17:45:03 -05:00
Thomas Harte
9e2a6526d1
Corrects interpretation of bit 3 of the state register.
...
And attempts to be a bit more careful with the language card in general.
2020-11-04 21:15:10 -05: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
94a6da6b7d
Exposes much of the auxiliary and language card stuff to the IIgs bus.
2020-10-28 21:58:20 -04:00
Thomas Harte
7631b11c55
Corrects double low-res colour serialisation.
2020-10-24 19:26:32 -04:00
Thomas Harte
726b5f62bb
Corrects read/write access to auxiliary soft switches.
2020-10-24 19:00:03 -04:00
Thomas Harte
966241b4cc
Adds documentation, ensures the language card signals less noisily.
2020-10-23 18:44:47 -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
62231708d7
read_pages_
can be const
.
2020-10-21 21:17:15 -04:00
Thomas Harte
e32ae6c191
Adds UGLY HACKs to workaround uncovered issues in the OpenGL scan target.
2020-09-10 22:10:24 -04:00
Thomas Harte
cbb0594e6b
Use 16-sector state machine even with the 13-sector boot ROM.
...
I think I've proven that the Disk II doesn't decode the 13-sector state machine correctly. Work to do there.
2020-07-16 23:27:27 -04:00
Thomas Harte
73131735fa
Further qmake warning corrections.
2020-05-30 19:31:17 -04:00
Thomas Harte
48afc54af6
Cuts down unused parameter warnings to just a few that may well indicate implementation errors.
2020-05-30 01:06:43 -04:00
Thomas Harte
267006782f
Starts to add Qt target; resolves many build warnings.
2020-05-30 00:37:06 -04:00
Thomas Harte
512a52e88d
Increases const correctness, marks some additional constructors as constexpr, switches std::atomic construction style.
2020-05-20 23:34:26 -04:00
Thomas Harte
25996ce180
Further doubles down on construction syntax for type conversions.
2020-05-09 23:00:39 -04:00
Thomas Harte
f417fa82a4
Splits 'CRTMachine' into three parts: ScanProducer, AudioProducer, TimedMachine.
...
Simultaneously cleans up some of the naming conventions and tries to make things a bit more template-compatible.
2020-04-01 23:19:34 -04:00
Thomas Harte
ec6664f590
Takes steps to guarantee property naming; reintroduces Electron runtime options.
2020-03-17 23:52:55 -04:00
Thomas Harte
b6e81242e7
Reintroduces Apple II runtime options.
2020-03-17 21:53:26 -04:00
Thomas Harte
394ee61c78
Starts a switch to reflectable-style runtime options.
...
The Amstrad CPC and ZX80/81 have made the jump so far, subject to caveats. The macOS build is unlikely currently to work properly.
2020-03-16 23:25:05 -04:00
Thomas Harte
8e3bf0dbca
Starts moving towards a Deflectable-based system of runtime options.
2020-03-15 23:48:53 -04:00
Thomas Harte
1f41d9c5f5
Further improvement: if in physical mode, but pressing an unrecognised key, attempt to 'type' it.
2020-03-02 22:08:54 -05:00
Thomas Harte
ed18092088
Extends logic for when to fall back on standard keypress logic even in logical mode.
2020-03-01 20:25:12 -05:00
Thomas Harte
9ca2d8f9f2
Tried to be less lazy with lambda captures.
...
This is primarily defensive.
2020-02-14 23:39:08 -05:00
Thomas Harte
f0a6e0f3d5
Splits out the queue management stuff from queue+action.
...
Temporarily breaks ST video in the endeavour.
2020-01-29 22:18:41 -05:00
Thomas Harte
294e09f275
All these 'override's can be 'final's.
...
At least for the purpose of being communicative. I doubt there's much to gain in terms of compiler output — the DiskImageHolder can avoid some virtual lookups but nothing else leaps out.
2020-01-23 22:57:51 -05:00
Thomas Harte
a71c5946f0
Ensures proper manipulation of scan_statuses, leading to the correct result out of a CRTMachine.
...
Possibly with the exception of the TMS, as I appear to have uncovered an unrelated issue there.
2020-01-21 22:28:25 -05:00
Thomas Harte
d97a073d1b
Adds the necessary routine for all machines to be able to respond to get_scan_status.
...
They all just as the CRT, as all are currently based on the CRT. Which doesn't currently know the total clock rate it would need to in order properly to scale the answer to the question. Further thought coming.
2020-01-20 21:45:10 -05:00
Thomas Harte
0dae608da5
Embraces std::make_[unique/shared] in place of .reset(new .
2019-12-23 21:31:46 -05:00
Thomas Harte
274867579b
Deploys constexpr
as a stricter const
.
2019-12-22 00:22:17 -05:00
Thomas Harte
2c25135d8a
Fixes const correctness for joystick machines; the ST is now one such.
2019-11-09 18:19:05 -05:00
Thomas Harte
1c154131f9
Expands size of storage in Cycles/HalfCycles; adjusts widely to compensate.
2019-10-29 22:36:29 -04:00
Thomas Harte
4ac3839185
Seeks to ensure that card transitions between real-time and just-in-time don't break timing.
2019-09-28 18:34:04 -04:00
Thomas Harte
97eff5b16d
Formally distinguishes Macintosh keys from virtual keys.
...
Also: adds mappings for keypad keys, and corrects a couple of
long-standing capitalisation errors in my virtual key set.
2019-08-02 16:15:34 -04:00
Thomas Harte
5149f290d0
Starts trying to formalise just-in-time execution.
...
Which, at least, simplifies Cycle/HalfCycle to Cycle run_for usage via template.
2019-07-28 21:49:54 -04:00
Thomas Harte
b4191b6225
Corrects DiskII boot ROM CRCs and improves corresponding declarations.
2019-07-22 23:07:23 -04:00
Thomas Harte
dbee37ab34
Provides extended ROM details for the VIC-20 and Oric.
2019-07-22 22:15:44 -04:00
Thomas Harte
2432151bf8
Puts machine name into ROMMachine::ROM.
...
Also switches to idiomatic exit codes.
2019-07-22 21:14:21 -04:00
Thomas Harte
3c68a5ca65
Enhances the amount of ROM information posted by the Apple machines.
2019-07-20 16:08:40 -04:00
Thomas Harte
20670bab2f
Expands information included in ROM load requests.
2019-07-19 22:35:22 -04:00
Thomas Harte
8c5d37b6ee
Refactors the AppleII into a sub-namespace to make room for other Apple machines.
2019-05-03 18:14:10 -04:00