Thomas Harte
3e9ef6b8cb
Adds indicator lights for the SDL port.
...
To complete #426
2018-07-15 20:19:06 -04:00
Thomas Harte
c9451a5382
Introduces an object for drawing OpenGL rectangles.
2018-07-14 17:42:23 -04:00
Thomas Harte
7e58a44771
Renames ConfigurationTarget
to MediaTarget
as per its newly-reduced interface.
2018-07-10 21:32:28 -04:00
Thomas Harte
1fcb461c42
Ensures that segments are written in a properly-circular fashion.
2018-07-02 19:35:49 -04:00
Thomas Harte
abca38a548
Makes an initial removal of PCMPatchedTrack
. Farewell, old friend.
2018-07-01 22:49:57 -04:00
Thomas Harte
26141a59b0
Moves all default Mac window positions up by 50px.
2018-06-23 23:09:34 -04:00
Thomas Harte
4a3d7c338a
Moves the activity window down to start at approximately the same top as the options window.
2018-06-23 22:14:44 -04:00
Thomas Harte
9bb55b6b61
Ensures that 'Activity' view has minimum acceptable height.
2018-06-23 19:44:35 -04:00
Thomas Harte
c33308bdc5
Attempts to improve relative default window positions.
2018-06-23 18:59:19 -04:00
Thomas Harte
44a33941bf
Undoes Xcode's folder renaming.
2018-06-23 18:55:17 -04:00
Thomas Harte
d45f1a793d
Introduces composite/RGB selection for the Amstrad CPC.
2018-06-21 20:00:49 -04:00
Thomas Harte
adca862166
Finally makes an initial pass at logging macros.
2018-06-18 22:37:19 -04:00
Thomas Harte
6ed3a49fe1
Made failed attempt to apply height constraint.
2018-06-18 21:35:22 -04:00
Thomas Harte
17702bfb89
Causes GUI LEDs to reflect their underlying activity.
2018-06-18 21:22:51 -04:00
Thomas Harte
292e02702a
Progresses very slightly to being able to show up to four activity indicator names.
...
Blinking to come.
2018-06-17 22:52:17 -04:00
Thomas Harte
5a56d8a5d0
Exposes a list of machine LEDs to Swift.
...
Also gets explicit about nullability on the Objective-C side.
2018-06-17 18:53:56 -04:00
Thomas Harte
51da21b844
Formally introduces keyboard-as-joystick for the Mac, and fixes discovered joystick issues.
...
Specifically:
* digital to analogue conversion not returning to centre;
* Apple II axes being the wrong way around; and
* Apple II buttons using improper selection logic.
2018-06-13 19:22:34 -04:00
Thomas Harte
3ea2a4ccb8
Moves the joystick class towards accepting analogue inputs.
2018-06-10 20:45:52 -04:00
Thomas Harte
c4108efc5c
Adds a more accurate option description for the Apple II.
2018-06-10 18:32:22 -04:00
Thomas Harte
d576ff1172
Exposes DOS 3.3 acceleration as an option.
...
Albeit with an unhelpful label in the macOS GUI for now.
2018-06-10 18:28:29 -04:00
Thomas Harte
db8d8d8404
Commutes Sleeper
to ClockingHint::Source
, making state more granular.
2018-05-27 23:17:06 -04:00
Thomas Harte
853261364e
Generalised CRC generation and created specific subclasses for the CCITT CRC16 and CRC32.
2018-05-23 22:21:57 -04:00
Thomas Harte
076c0a48e9
Slightly tweaks initial size that this doesn't resize when switching to the Vic selection page.
2018-05-16 19:19:50 -04:00
Thomas Harte
fde613a5c4
Corrects various placement inconsistencies.
...
Hopefully to move into line with Apple's HID standards.
2018-05-16 19:15:49 -04:00
Thomas Harte
f7decd80b6
As an initial step, ensured latency doesn't pile up endlessly.
2018-05-15 21:12:43 -04:00
Thomas Harte
5d6b5d9f10
Eliminates all emdashes in cross-platform code.
2018-05-13 15:34:31 -04:00
Thomas Harte
0b771ce61a
Removes all instances of the copyright symbol.
2018-05-13 15:19:52 -04:00
Thomas Harte
39c0bc6c47
Factors string serialisation with \n\r conversion out of the Apple II and reuses it with the Oric.
2018-05-13 13:57:19 -04:00
Thomas Harte
3747d96b22
Corrects Mac paste pathway.
...
Also updates documentation around CSOpenGLView.
2018-05-13 11:12:03 -04:00
Thomas Harte
ef19a03efc
Drives can now deliver activity events.
2018-05-10 21:54:10 -04:00
Thomas Harte
95f859cf5c
Merge branch 'master' into ActivityReceiver
2018-05-10 20:26:50 -04:00
Thomas Harte
578a5b3e69
Ensures NDEBUG is set for release builds.
2018-05-09 22:27:57 -04:00
Thomas Harte
45bd24ada0
Corrects tags for Oric machine selection.
2018-05-08 22:53:27 -04:00
Thomas Harte
c3a2f7717b
Makes attempt to implement support for the Pravetz 8D + 8DOS.
...
i.e. the Disk II wired up to the Oric, with some ROM swaps.
2018-05-08 22:05:43 -04:00
Thomas Harte
70e6c3b2f6
Introduces the ActivityObserver
protocol for LEDs, drive events, etc.
...
The Electron's caps lock LED is the test case.
2018-05-07 21:57:54 -04:00
Thomas Harte
c36d7b4972
Makes first attempt at 6 and 2 decoder.
2018-05-04 23:11:12 -04:00
Thomas Harte
1c0b5bb02b
Corrects phoney switch of 'run' build to release.
2018-05-04 18:04:23 -04:00
Thomas Harte
e3b4aebf1a
Introduces the Disk II as a unique media target platform.
...
As it makes a little more sense to analyse Apple GCR images to determine target platform than it does to have the potential platforms vote over them.
Also starts on the parser that'll be necessary for making a decision.
2018-05-04 18:02:36 -04:00
Thomas Harte
59718e132b
Fixes macOS 10.10 warning.
2018-05-03 22:39:34 -04:00
Thomas Harte
723ee88043
Introduces configuration options for the Apple II.
...
Specifically: II or II+? Disk II 13- or 16-sector? Or not at all?
2018-05-03 19:37:32 -04:00
Thomas Harte
05e31d7594
Mutates testComplicatedTrackSeek
into an actual test.
...
Which frustratingly passes.
2018-05-01 19:52:12 -04:00
Thomas Harte
f4097290c2
Made various corrections following a quick for-loop constness audit.
2018-04-30 22:23:57 -04:00
Thomas Harte
b32538f3c8
Adds an additional test.
2018-04-30 22:05:44 -04:00
Thomas Harte
e7618bb32e
Corrects types (/chickens out).
2018-04-30 22:04:05 -04:00
Thomas Harte
a9d4fe0b41
Introduces filetype wiring for DO and PO files.
...
Also corrects sector numbering logic to ensure there is a sector 15.
2018-04-29 16:34:10 -04:00
Thomas Harte
b98d5b790a
Finally unifies disk image file exceptions, and adds a placeholder for Apple DSK.
2018-04-27 23:18:45 -04:00
Thomas Harte
4bff44377a
Attempts to route Disk II requests to the thing itself.
2018-04-23 22:11:31 -07:00
Thomas Harte
7463edaa1b
Attempts to bring card support to the Apple II, and adds a 'has disk' flag.
2018-04-23 21:14:45 -07:00
Thomas Harte
d447e81abd
Adds provisional support for WOZ files.
2018-04-23 19:57:45 -07:00
Thomas Harte
6592745e53
Adds the bare minimum to respond to attempts to open NIB files with an Apple II.
2018-04-21 21:21:57 -07:00
Thomas Harte
72bc5f8d7b
Adds a class to contain the Disk II and begins Apple GCR conversion routines.
2018-04-21 14:33:42 -07:00
Thomas Harte
6621e54952
Shortens the name for the Electron tab, owing to limited space.
2018-04-19 20:54:16 -04:00
Thomas Harte
f22c23cb4c
Attempts to bring audio to the Apple II.
...
By factoring the audio toggle out from the MSX.
2018-04-17 22:28:13 -04:00
Thomas Harte
465c38f03c
Extends the keyboard protocol and adds keyboard input to the Apple II.
2018-04-15 21:11:30 -04:00
Thomas Harte
e599e65087
Switches to use of the TargetList
typedef wherever possible.
2018-04-14 19:46:38 -04:00
Thomas Harte
7efee9b52b
Does the bare minimum to create a class skeleton for Apple II implementation.
2018-04-14 19:46:15 -04:00
Thomas Harte
079dc671e1
Rationalises per-machine static analyser call pattern, and adds Apple II as an option.
2018-04-14 12:12:12 -04:00
Thomas Harte
bb4db6b382
Ensures that 'choose' responds to enter.
2018-04-08 18:52:46 -04:00
Thomas Harte
7bf88565ce
Resizes to fit all options.
2018-04-05 21:59:19 -04:00
Thomas Harte
ee10155296
Adds advice and withdraws the ZX 64kb option.
2018-04-05 21:57:26 -04:00
Thomas Harte
5044aac337
Sizes up default window size better to fit machine selector.
2018-04-04 19:18:22 -04:00
Thomas Harte
46b1c57bf4
Enables the titlebar, inexplicably allowing the sheet to obtain focus.
2018-04-03 23:22:26 -04:00
Thomas Harte
eaf1482182
Reverts the once-again-unused document controller.
2018-04-03 23:11:19 -04:00
Thomas Harte
d3418550eb
Attempts explicitly to disable promise of saving.
2018-04-03 23:06:48 -04:00
Thomas Harte
3ffa9e2751
Ensures complete machine picker state is preserved.
2018-04-03 23:01:12 -04:00
Thomas Harte
c697dd78f0
Ensures a new machine starts as first responder.
2018-04-03 22:22:39 -04:00
Thomas Harte
7dac791290
Causes the machine picker to show as a sheet.
...
Albeit with some user experience issues lingering.
2018-04-03 18:47:07 -04:00
Thomas Harte
cde2faeda6
Makes an unsuccessful attempt to show the new machine dialogue as a sheet.
...
Also corrects the 'open' case versus recent changes.
2018-04-02 23:31:36 -04:00
Thomas Harte
69f520428d
Makes a first, ugly attempt at a 'new machine' dialogue for the Mac.
...
Which has implied getting much more specific about MSX disk drive attachment, and has prompted an excuse to offer the ZX80 with the ZX81 ROM.
2018-04-02 22:42:41 -04:00
Thomas Harte
fca8a58b36
Exposes S-Video option in the Mac UI.
2018-04-01 13:29:04 -04:00
Thomas Harte
389979923e
Performs update to and satisfaction of Xcode 9.3's preferred warnings.
2018-03-30 10:25:01 -04:00
Thomas Harte
0869213c55
Cuts detritus.
2018-03-27 22:00:13 -04:00
Thomas Harte
f3fe16215a
Reintroduces options for the Vic-20, now tape loading speed only.
2018-03-27 21:55:43 -04:00
Thomas Harte
62b0645ed0
Ensures the Vic-20 doesn't show the ZX80/81 options panel on macOS.
2018-03-25 16:04:44 -04:00
Thomas Harte
760c75103e
Fills out the application icon set.
2018-03-23 18:29:18 -04:00
Thomas Harte
a3fa9440d1
Renames method better to communicate purpose.
2018-03-22 09:49:36 -04:00
Thomas Harte
6419b0e619
Reintroduces CSMachineDelegate
, allowing the Mac port to switch output audio rate dynamically.
2018-03-22 09:48:19 -04:00
Thomas Harte
682c3d8079
Adds new hook for watching audio output rate changes.
2018-03-22 09:23:01 -04:00
Thomas Harte
da3d65c18f
Devolves time to cycle conversion to machines.
...
Thereby avoids a whole bunch of complicated machinations that would otherwise have been required of the multimachine.
2018-03-21 22:18:13 -04:00
Thomas Harte
89bec2919f
Encapsulates machine configuration properties for all remaining platforms.
2018-03-09 16:07:29 -05:00
Thomas Harte
78eaecb29e
Provides the proper framework for encapsulation of analyser target specifics.
...
... while making them a safe container for objects too. Uses the ZX80/81 as the pilot platform.
2018-03-09 15:36:11 -05:00
Thomas Harte
f0f9d5a6af
Corrects memptr leakage via BIT, and ld (de/bc/nn), A behaviour.
2018-03-08 20:30:22 -05:00
Thomas Harte
fdef914137
Corrects test target regression.
2018-03-06 18:32:21 -05:00
Thomas Harte
83f73c3f02
Installs additional safeguards against unsafe deconstruction.
2018-02-28 22:15:22 -05:00
Thomas Harte
0ad2676640
Adds a class for the SN76489 and wires it into the ColecoVision.
2018-02-26 22:04:34 -05:00
Thomas Harte
a074ee2071
Possibly fixes ColecoVision input mapping.
...
Also provides symbolic input from the Mac.
2018-02-25 22:47:47 -05:00
Thomas Harte
5530b96446
Wired up a class and analyser for a ColecoVision.
2018-02-23 22:47:15 -05:00
Thomas Harte
b215cf83d5
Eliminates implicit update queue flush, as unnecessary.
2018-02-19 19:54:18 -05:00
Thomas Harte
f237dcf904
Avoids deadlock when one bestEffortUpdate action implies another.
2018-02-19 18:44:12 -05:00
Thomas Harte
6aaef97158
Breaks Mac machine shutdown deadlock.
2018-02-19 16:48:03 -05:00
Thomas Harte
6780b0bf11
Corrects error preventing fast loading preference from making it to machines on the Mac.
2018-02-19 16:24:28 -05:00
Thomas Harte
7d75e864b1
Ensures thread safety of usages of bestEffortLock
.
2018-02-18 22:09:03 -05:00
Thomas Harte
c8a4432c63
Makes an attempt to transfer audio outputs during dynamic analysis.
2018-02-18 15:23:15 -05:00
Thomas Harte
7b420d56e3
Removed state mirroring in the machine-specific Mac UI classes.
2018-02-14 21:46:50 -05:00
Thomas Harte
ddf1bf3cbf
Reintroduces options selection for the Mac.
...
For everything except the Vic-20, anyway. That has a somewhat outdated notion of what an options panel should be, corresponding to the work yet to do on its analyser.
2018-02-12 21:46:21 -05:00
Thomas Harte
d751b7e2cb
Marginally reformats for current style.
2018-02-11 20:32:59 -05:00
Thomas Harte
e1cab52c84
Ensures thread safety of access to machines array.
2018-02-10 19:38:26 -05:00
Thomas Harte
eb39617ad0
Allows cartridges to filter based on the actor talking to them; corrects outstanding_machines access error.
2018-02-10 17:11:16 -05:00
Thomas Harte
43b682a5af
Adds multiple target versions of all the DynamicMachine-vended types.
2018-02-09 16:31:05 -05:00
Thomas Harte
c12aaea747
Attempts to get as far as running the MultiMachine.
...
In doing so, fixes the long-standing bug that machines that output audio but don't have a listener produce a divide by zero.
2018-01-30 22:23:06 -05:00
Thomas Harte
ca48497e87
Pulls DynamicMachine
out of MachineForTarget
and adds MultiConfigurationTarget
as a first multiplexer.
2018-01-29 21:49:49 -05:00
Thomas Harte
d493ea4bca
Introduces a multimachine to handle multi-target static analyser outputs.
...
Non-functional as of yet.
2018-01-28 22:22:21 -05:00
Thomas Harte
e025674eb2
The MSX analyser is now smart enough not to be definitive when it's uncertain.
...
The cartridge type has also migrated to being a property of the cartridge, prefiguring my intention to discard the static analyser union.
2018-01-25 22:16:46 -05:00
Thomas Harte
66faed4008
Gives MachineForTargets
complete responsibility for initial machine state.
2018-01-25 18:28:19 -05:00
Thomas Harte
11abc99ef8
Introduces the extra level of indirection necessary to make Analyser::Static::Target polymorphic.
2018-01-24 22:35:54 -05:00
Thomas Harte
21efb32b6f
Integrates the static and nascent dynamic analyser namespaces.
2018-01-24 21:48:44 -05:00
Thomas Harte
622a04aec8
Starts stripping the Mac port of its special machine knowledge.
...
Partly to force myself into moving that stuff into the cross-platform area, but mainly so that dynamic analysis can work equally from day one.
2018-01-24 20:14:15 -05:00
Thomas Harte
d360b2c62d
Standardises the static analyser on std::vector and slightly widens passageway to a machine.
...
The SDL target would now be fooled by a hypothetical multi-target, the Mac not yet.
2018-01-23 22:18:16 -05:00
Thomas Harte
d213341d9c
Introduces the counters upon which I expect dynamic analysis to rest.
2018-01-22 21:39:23 -05:00
Thomas Harte
c2f1306d85
Updates copyright year.
2018-01-18 21:11:30 -05:00
Thomas Harte
edb30b3c6c
Introduces an icon for the Mac.
...
About which I have yet to decide my full feelings.
2018-01-18 21:01:30 -05:00
Thomas Harte
46c76b9c07
Switches to using the boilerplate public.item for all macOS UTIs.
2018-01-17 22:01:38 -05:00
Thomas Harte
e13312dcc5
Removed stray new line.
2018-01-16 21:46:31 -05:00
Thomas Harte
0202c7afb2
Consolidates Mac presentation of composite video selection.
...
Moves handling of an RGB/composite into `MachinePanel`, eliminating the need for `ElectronOptionsPanel` and `OricOptionsPanel`; similarly merges the MSX and Electron options panels so as to provide television/monitor selection for the MSX.
2018-01-15 18:36:22 -05:00
Thomas Harte
def82cba49
Makes MSX tape parsing more tolerant to phase.
...
Also reintroduces proper file type association for TSX on the Mac.
2018-01-10 21:54:15 -05:00
Thomas Harte
4e124047c6
Introduces enough DMK support to progress to failure to parse a track.
2018-01-08 21:57:11 -05:00
Thomas Harte
513c067f94
Makes an attempt to rope in the WD1770 for MSX disk ROM emulation.
2018-01-07 19:12:52 -05:00
Thomas Harte
999a0c22d4
Adds superficial support for MSX .DSK.
...
In the sense that the file format itself is properly parsed, but the MSX doesn't actually yet have disk hardware.
2018-01-07 16:35:57 -05:00
Thomas Harte
2ffde4c3c2
Corrects SCC volume errors.
...
Which were leading to substantial overflow.
2018-01-07 09:59:00 -05:00
Thomas Harte
655b971976
Establishes that there is such as a thing as a Konami SCC.
...
Creates one, ensures it appears in memory when intended to, lets it handle reads and writes. It currently does nothing.
2018-01-06 20:15:55 -05:00
Thomas Harte
ed564cb810
Implements the main four cartridge banking schemes.
...
Slightly proof of concept for now.
2018-01-04 22:18:18 -05:00
Thomas Harte
c8367a017f
Cleans up test and makes attempt to factor in cartridge type popularity.
2018-01-01 21:21:05 -05:00
Thomas Harte
344a12566b
Tweaks a couple of expected cartridge types.
2018-01-01 20:14:56 -05:00
Thomas Harte
c07113ea95
Ensures no illegal accesses while testing MSX ROM type detection.
...
Specifically: the static analyser doesn't even correctly identify everything that is an MSX ROM yet, let alone then properly determine type.
2018-01-01 17:38:26 -05:00
Thomas Harte
bc2879c412
Corrects the MSX ROM unit test.
...
I.e. the test is correct now, for those SHAs I could find. The static analyser is still wrong just slightly less than half the time.
2018-01-01 17:35:13 -05:00
Thomas Harte
db25b4554b
Introduces failing tests of the MSX static analyser.
2018-01-01 16:38:26 -05:00
Thomas Harte
05b95ea2e0
Corrects Xcode tests.
2018-01-01 16:04:13 -05:00
Thomas Harte
1c255b9e7d
Generalises some of the disassembler, and provides Z80 logic to create a [first attempt at a] Z80 disassembler.
2017-12-31 18:49:35 -05:00
Thomas Harte
bf0601123b
Adds some document type UTIs.
...
Will need to survey all the other Mac emulators to get a complete list, I guess.
2017-12-30 13:36:29 -05:00
Thomas Harte
c18517be4b
Ensures that the fast loading option successfully flows from the Mac interface.
2017-12-29 19:07:22 -05:00
Thomas Harte
6a0bb83716
Corrects typos in the SDL main.
2017-12-29 18:40:32 -05:00
Thomas Harte
e349161a53
Rejigs the typing relationship so that use of a typer is not strongly implied by the interface.
...
Simultaneously implements typing on the MSX by direct insertion into the key buffer.
2017-12-29 18:30:46 -05:00
Thomas Harte
d5b1a9d918
Moves the typer functionality behind a functionality-based naming scheme, eliminates its C-style memory management.
2017-12-29 15:26:03 -05:00
Thomas Harte
c4950574ea
Introduces an attempted reimplementation of the MSX BIOS's two main tape reading entry points.
2017-12-26 22:19:37 -05:00
Thomas Harte
db6d9b59d0
Attempts to implement TSX support for the MSX.
2017-12-19 21:53:04 -05:00
Thomas Harte
2d892da225
Introduces the MSX keyboard toggle sample source.
...
In support of which, it also introduces a means of sample source composition.
2017-12-19 21:08:10 -05:00
Thomas Harte
2dc1d4443e
Separates LowpassFilter and SampleSource.
2017-12-18 21:39:23 -05:00
Thomas Harte
ac80d10cd8
Separates the component parts of running an audio stream: task deferral, filtering and generation.
...
Walking towards improving opportunities for composition.
2017-12-17 21:26:06 -05:00
Thomas Harte
ec4c259695
Removes unused file.
2017-12-14 21:19:09 -05:00
Thomas Harte
aca7842ca4
Better documents and tidies the TMS9918.
2017-12-14 20:27:26 -05:00
Thomas Harte
ee44d671e7
Steps towards exposing the MSX in Cocoa builds.
2017-12-03 15:42:54 -05:00
Thomas Harte
54c845b6e2
Adds just enough logic to make every host key look like '0' to the MSX.
2017-11-29 22:07:30 -05:00
Thomas Harte
a14b53a9ab
Adds a TMS9918 skeleton plus enough in the MSX to get to a blank screen in SDL/kiosk mode.
2017-11-26 13:28:26 -05:00
Thomas Harte
68a2895753
Adds enough static analyser to get to the MSX itself as the point of failure in SDL/kiosk mode.
2017-11-25 13:18:24 -05:00
Thomas Harte
ae50ca9ab2
Moves the MSX class to the appropriate place and gives it a Z80.
2017-11-24 21:59:54 -05:00
Thomas Harte
6e4bde00d3
Merge branch 'master' into MSX
2017-11-24 21:50:38 -05:00
Thomas Harte
221c05ca76
Adapts the Mac port to use a Machine::DynamicMachine, thereby eliminating plenty of duplication.
2017-11-24 21:36:22 -05:00
Thomas Harte
ff21ff90eb
Introduces MSX ROMs and an MSX class.
2017-11-24 20:43:26 -05:00
Thomas Harte
c83b3cefbc
Eliminates the generalised special case selectors and ROM suppliers from the CPC, Vic-20, Electron and ZX80/81.
2017-11-24 17:55:28 -05:00
Thomas Harte
a8ac51da73
Eliminates the Oric's non-reflective inputs for selections, and the Oric-specific ROM setter.
2017-11-24 16:59:00 -05:00