Thomas Harte
|
aed2827e7b
|
Implemented a rudimentary way to test that instructions take as long as the FUSE tests think they should. Hence discovered that the (HL)-accessing BIT, RES and SET weren't. Corrected.
|
2017-06-12 22:22:00 -04:00 |
|
Thomas Harte
|
a48616a138
|
Fixed reference to Swift-world MachineDocument for the ZX81 file type.
|
2017-06-12 18:51:11 -04:00 |
|
Thomas Harte
|
8222aac9e3
|
Added an official declaration of support for ZX81 files.
|
2017-06-11 21:40:41 -04:00 |
|
Thomas Harte
|
77aa3c187e
|
Rebranded ZX80O as ZX80O81P, with an eye to making it accept ZX81 .p files. Adjusted the initial selection part of the static analyser appropriately.
|
2017-06-11 21:38:32 -04:00 |
|
Thomas Harte
|
8116f85479
|
Allowed the static analyser to specify a ZX80 or 81, and a memory model. Neither is respected yet in the machine.
|
2017-06-11 19:12:20 -04:00 |
|
Thomas Harte
|
50be3a24fe
|
Sought to ensure that Mode 1 interrupts aren't happening early. Which they seem not to be.
|
2017-06-11 13:30:08 -04:00 |
|
Thomas Harte
|
7e10c7f9d8
|
Relocated the ZX80/81 concept of a 'file' out from Tape into Data, given that it's an exact duplicate of memory.
|
2017-06-08 19:09:51 -04:00 |
|
Thomas Harte
|
60300851ea
|
Started sketching out a tape parser for ZX80 and '81 files. I think this'll help me to verify whether the .O input is working.
|
2017-06-07 10:12:13 -04:00 |
|
Thomas Harte
|
8c66e1d99d
|
Factored out ZX80/81 video and rejigged to ensure it will keep ticking over irrespective of whether the machine is supplying data.
|
2017-06-06 17:53:23 -04:00 |
|
Thomas Harte
|
cc4cb45e9d
|
Implemented keyboard input and ensured that the signal generated is marked as composite, putting the colour-suppression ball into the CRT's court.
|
2017-06-06 09:25:18 -04:00 |
|
Thomas Harte
|
c485c460f7
|
Imported the ZX80 and 81 system ROMs (though not publicly), added enough code to post their contents into C++ world.
|
2017-06-04 18:08:35 -04:00 |
|
Thomas Harte
|
b0a7c58287
|
Fixed project to point to the XIB I actually want to keep; fixed that XIB to have the correct contents.
|
2017-06-04 17:57:37 -04:00 |
|
Thomas Harte
|
d2637123c4
|
Added necessary support to get as far as an empty window when attempting to load a piece of ZX80 software.
|
2017-06-04 17:55:19 -04:00 |
|
Thomas Harte
|
02b7c3d1b0
|
Added the necessary wiring to get into a ZX80/81-oriented part of the static analyser, which could in principle post a ZX80 target.
|
2017-06-04 17:04:06 -04:00 |
|
Thomas Harte
|
8c1769f157
|
Made a quick attempt at serialising from ZX80 .O to waves.
|
2017-06-04 16:59:26 -04:00 |
|
Thomas Harte
|
655809517c
|
Ensured that there is a subclass of file that is entrusted to load .O/.80 files, and that the code routes such files to it, noting that it should consider whether a ZX80 is required.
|
2017-06-04 16:37:03 -04:00 |
|
Thomas Harte
|
2190f60a89
|
Reinstated manual-by-stealth secondary usage of the Zexall test as a benchmarking tool.
|
2017-06-04 15:46:35 -04:00 |
|
Thomas Harte
|
0eebfdb4cc
|
Expanded emulation of memptr, though still incomplete. Reverted zexall tests to zexdoc. Will probably leave memptr until I've an emulated machine as test suites seem to exist, but they're machine-dependant, so figuring out how to isolate them from an architecture will be a lot easier if and when I have functioning machines.
|
2017-06-04 15:39:37 -04:00 |
|
Thomas Harte
|
7811374b0f
|
Started sneaking in memptr emulation, hopefully to get to a working BIT (hl).
|
2017-06-04 15:07:07 -04:00 |
|
Thomas Harte
|
87095b0578
|
Undid consciously discard for bits 3 and 5 in the FUSE tests. Back to 100 failures.
|
2017-06-04 14:04:26 -04:00 |
|
Thomas Harte
|
b642d9f712
|
Eliminates the 6502's specialised jam handler in favour of the generic trap handler, and simplifies the lookup costs of that as it's otherwise doubling execution costs.
|
2017-06-03 21:54:42 -04:00 |
|
Thomas Harte
|
fd6623b5a5
|
Attempted to bring a common hierarchy to the Z80 and 6502 test machines, particularly with a view to eliminating the special-case Jam stuff on the 6502.
|
2017-06-03 21:22:16 -04:00 |
|
Thomas Harte
|
b304c3a4b9
|
Eliminated the 6502's reliance on the micro-op scheduler.
|
2017-06-03 20:30:07 -04:00 |
|
Thomas Harte
|
b3da16911f
|
Tweaked timing of mode 0, per contradictory information. Wrote a failing test of mode 2.
|
2017-06-03 18:42:54 -04:00 |
|
Thomas Harte
|
e52892f75b
|
Added a test of interrupt mode 1.
|
2017-06-03 18:16:13 -04:00 |
|
Thomas Harte
|
8c41a0f0ed
|
Added a test to confirm interrupts are disabled, and a response to the interrupt cycle within the all-RAM machine.
|
2017-06-03 17:53:44 -04:00 |
|
Thomas Harte
|
3e9212aaff
|
Plumbed through to allow interrupt tests, wrote an NMI test, corrected the error revealed.
|
2017-06-03 17:41:45 -04:00 |
|
Thomas Harte
|
d14902700a
|
Minor syntax and wiring fixes.
|
2017-06-01 22:33:05 -04:00 |
|
Thomas Harte
|
c95c32a9fe
|
Implemented the reset line program and disabled fictitious automatic power-on reset for the Z80 test machine.
|
2017-06-01 22:31:04 -04:00 |
|
Thomas Harte
|
494ce073b5
|
Tests having been fixed by instating proper Z80 cycle counting, removed caveman logging.
|
2017-05-31 19:58:57 -04:00 |
|
Thomas Harte
|
5ff73faf48
|
Ensured Zexall can pass.
|
2017-05-31 19:55:06 -04:00 |
|
Thomas Harte
|
2f7f11e2e5
|
Added diagnosis props.
|
2017-05-31 06:54:25 -04:00 |
|
Thomas Harte
|
5119997122
|
Made an attempt, flawed so far, to find a neat way for processor subclasses to offer bus management as an inline function.
|
2017-05-30 22:41:23 -04:00 |
|
Thomas Harte
|
7bddd294c9
|
Resolved an unpredictable conditional and temporarily disabled the Zexalltest as part of the default suite, since it takes so long to run.
|
2017-05-30 21:03:02 -04:00 |
|
Thomas Harte
|
244b5ba3c2
|
Added a proper termination condition for Zexall and, for now, a Mhz counter.
|
2017-05-30 18:32:38 -04:00 |
|
Thomas Harte
|
960de7bd7b
|
Marginally reduced test machine costs based on usage.
|
2017-05-30 11:59:07 -04:00 |
|
Thomas Harte
|
c6185baa99
|
Fixed R incrementation and attempted to make the status flags cheaper to write to.
|
2017-05-29 22:23:19 -04:00 |
|
Thomas Harte
|
4d4695032c
|
Discovered that Zexall is just really slow. Disabled the address sanitiser, and started working towards a verifiable end.
|
2017-05-29 21:46:00 -04:00 |
|
Thomas Harte
|
6d22f6fcd5
|
Having decided the bus operation error on 10 is probably in the test cases, decided to allow myself to skip that one comparison. Back to zero failing cases, and with no more useful information to derive from the FUSE test set for the time being.
|
2017-05-29 17:17:17 -04:00 |
|
Thomas Harte
|
8bfaa487ce
|
Improved logging of bus operations and corrected placement of the OUT step in that repetition group; was otherwise outputting the wrong side of the B adjustment and therefore to the wrong port (if interpreted as 16 bit).
|
2017-05-29 17:13:24 -04:00 |
|
Thomas Harte
|
267b2add9a
|
Adjusted for where FUSE nominally places timestamps. Down to 92 failures.
|
2017-05-29 16:44:07 -04:00 |
|
Thomas Harte
|
d290e3d99e
|
Corrected simple logging error. Which mysteriously moves me all the way up to 117 failures (!)
|
2017-05-29 16:35:00 -04:00 |
|
Thomas Harte
|
a6a4c5a936
|
Made an attempt to introduce checking of bus activity against the FUSE tests. Appears to suggest 54 new failures.
|
2017-05-29 15:57:27 -04:00 |
|
Thomas Harte
|
ed7b07c8b1
|
Made an attempt to implement HALT as an operation that merely leaves the PC in place, adding the Z80's output line. Included that flag in FUSE tests. Discovered that it does not think that HALT acts that way. Which is probably correct.
|
2017-05-29 11:54:27 -04:00 |
|
Thomas Harte
|
d83dd17738
|
[DD/FD]36 turns out to be a timing error: offset calculation overlaps with value fetch. So the FUSE test was cutting off my implementation early. Fixed.
|
2017-05-29 11:40:56 -04:00 |
|
Thomas Harte
|
9ade0dcae3
|
One failure was just PUSH AF due to throwing away the 5 & 3 flags at the start. Switched to throwing them away at comparison.
|
2017-05-29 11:06:23 -04:00 |
|
Thomas Harte
|
a329d85697
|
Instituted memory value checks, flushing out seven new failures.
|
2017-05-29 11:01:45 -04:00 |
|
Thomas Harte
|
c322410783
|
Corrected CP[I/D]R termination logic; all tests now passing to the extent of interrogation.
|
2017-05-29 10:52:54 -04:00 |
|
Thomas Harte
|
b67331e018
|
Fixing the OUT repetition group reduces the code to one failing test.
|
2017-05-29 10:48:53 -04:00 |
|
Thomas Harte
|
ad56a9215c
|
Implemented IN[I/D]x. 18 failures remaining.
|
2017-05-29 10:12:33 -04:00 |
|
Thomas Harte
|
c56a5344b9
|
Implemented CP[I/D]x.
|
2017-05-29 08:54:00 -04:00 |
|
Thomas Harte
|
409c82ce73
|
Implemented RLD and RRD. 34 failures remaining.
|
2017-05-28 16:46:27 -04:00 |
|
Thomas Harte
|
6e83b7d6df
|
Attempted to add a proper exit condition for Zexall.
|
2017-05-28 15:13:47 -04:00 |
|
Thomas Harte
|
5a4d448cc1
|
Corrected logical flags; now down to 68 failures, all of them on the ED page.
|
2017-05-28 15:09:58 -04:00 |
|
Thomas Harte
|
6b66c8f304
|
Implemented inputs and outputs, determined how to answer port requests to please FUSE and hence reduced failures to 84.
|
2017-05-28 14:50:51 -04:00 |
|
Thomas Harte
|
035df316aa
|
FUSE seems to have inconsistent ideas about where b3 and b5 come from in more-complicated BIT instructions. So I'm not testing them for now. Within that reality, reduced to 102 failures.
|
2017-05-27 23:54:53 -04:00 |
|
Thomas Harte
|
c7cb47a1d8
|
Readded and then disabled my temporary one-test-only patch. Failures are currently at 237.
|
2017-05-27 21:10:25 -04:00 |
|
Thomas Harte
|
98423c6e41
|
Accepted FUSE's view of bits 3 & 5 from BIT and RES, reducing to 623 issues.
|
2017-05-27 16:19:15 -04:00 |
|
Thomas Harte
|
33c3fa21e3
|
Fixed (HL)/(In + d) CB page modify instructions. Reducing failures to 672.
|
2017-05-27 15:54:24 -04:00 |
|
Thomas Harte
|
9bc2b48d9b
|
Found a form I like for indexed addressing, applying it only where obvious for now. Which eliminates more than a couple of hundred of remaining failures.
|
2017-05-26 23:23:33 -04:00 |
|
Thomas Harte
|
e4e71a1e5f
|
Switched back to descriptive failures, but put a cap on them.
|
2017-05-25 21:08:24 -04:00 |
|
Thomas Harte
|
fba5af280e
|
Shortened failure message, at least for now.
|
2017-05-25 21:05:47 -04:00 |
|
Thomas Harte
|
2cadc706e2
|
Now runs FUSE tests, albeit testing only a subset of the results. But enough to get started.
|
2017-05-25 21:00:33 -04:00 |
|
Thomas Harte
|
3c6f63abcc
|
Started towards running the FUSE tests. Just need to deal with the memory segments.
|
2017-05-25 19:12:59 -04:00 |
|
Thomas Harte
|
00cd7e7e9c
|
After hitting my head against the wall of trying to use [NS]Scanner as a parser some more, have given up and transcoded the two tests files to JSON.
|
2017-05-25 18:20:13 -04:00 |
|
Thomas Harte
|
055c860b43
|
Sealed off RegisterState as immutable, and started trying to parse the .expected file.
|
2017-05-23 22:32:36 -04:00 |
|
Thomas Harte
|
454c8628c3
|
Implemented an additional constructor for RegisterStates, pulling it out into file-level scope and implementing Equatable.
|
2017-05-23 22:05:33 -04:00 |
|
Thomas Harte
|
a23a6db4d6
|
Tidied up, creating a holder for RegisterState and giving it deserialisation logic. This makes sense because a register state will also need to be taken from the outputScanner, and from the machine.
|
2017-05-23 08:13:24 -04:00 |
|
Thomas Harte
|
6575091a78
|
Fixed Z80's ownership of its fetch-decode-execute program, its habit of scheduling invalidly when hitting an unrecognised operation and the test machine's habit of dereferencing invalidly.
|
2017-05-22 21:50:34 -04:00 |
|
Thomas Harte
|
9e25d014d2
|
Made an attempt to log bus activity for comparison with FUSE results.
|
2017-05-22 19:49:38 -04:00 |
|
Thomas Harte
|
41d5dd8679
|
Added a memory access delegate to the Z80 all-ram processor, to allow access patterns to be captured.
|
2017-05-22 19:24:11 -04:00 |
|
Thomas Harte
|
22afa509ca
|
Got to a parsing and towards an attempt to run FUSE tests.
|
2017-05-22 19:14:46 -04:00 |
|
Thomas Harte
|
3fb3cc8269
|
Got explicit about encodings.
|
2017-05-21 22:53:06 -04:00 |
|
Thomas Harte
|
e3e461d7cb
|
Added a test class for running the FUSE tests. With nothing much in it.
|
2017-05-21 22:49:24 -04:00 |
|
Thomas Harte
|
c16fccb317
|
Fixed file names.
|
2017-05-21 22:43:07 -04:00 |
|
Thomas Harte
|
b9cffdf2bd
|
Imported the FUSE tests.
|
2017-05-21 22:42:20 -04:00 |
|
Thomas Harte
|
01a064dd63
|
Added an empty ED page.
|
2017-05-20 17:29:30 -04:00 |
|
Thomas Harte
|
d910405648
|
Added enough infrastructure to be able to react to the two CP/M calls this cares about.
|
2017-05-19 21:53:39 -04:00 |
|
Thomas Harte
|
62b432c046
|
Added the concept of a trap handler to the all-RAM processor and exposed it via the test Z80 classes.
|
2017-05-19 21:20:28 -04:00 |
|
Thomas Harte
|
11d05fb3b8
|
Expanded a little on operations, added an implementation or two.
|
2017-05-19 19:18:35 -04:00 |
|
Thomas Harte
|
58efca835f
|
Sought to add a further opcode.
|
2017-05-18 22:53:43 -04:00 |
|
Thomas Harte
|
da6e520b91
|
Merge branch 'master' into Z80
|
2017-05-18 22:30:51 -04:00 |
|
Thomas Harte
|
9398b6c2c8
|
Unable to differentiate, decided to map a Mac shift key to both Oric shifts.
|
2017-05-18 22:25:59 -04:00 |
|
Thomas Harte
|
a3dafa9056
|
Abbreviated uses of enumerations.
|
2017-05-17 21:44:08 -04:00 |
|
Thomas Harte
|
64d6ee1be5
|
Adjusted slightly to adapt to latest Swift warnings.
|
2017-05-17 07:49:48 -04:00 |
|
Thomas Harte
|
1378ab7278
|
Ensured initial program counter and stack pointer are correct for Zexall, fixed the Z80 to use a compile-time polymorphic call for bus access.
|
2017-05-17 07:36:06 -04:00 |
|
Thomas Harte
|
87a021ec2d
|
Made further attempt to get as fas as having the Z80 attempt to do something.
|
2017-05-16 22:19:40 -04:00 |
|
Thomas Harte
|
189317b80c
|
Added enough of a Z80 test machine to bridge up into Swift.
|
2017-05-16 22:05:42 -04:00 |
|
Thomas Harte
|
4f0775cc7c
|
Imported the Zexall.com tester, as a first thing to throw at the Z80 to be.
|
2017-05-16 21:37:09 -04:00 |
|
Thomas Harte
|
7190f927b7
|
Factored out the stuff that both all-RAM processors would share, rather than duplicating it.
|
2017-05-16 21:28:17 -04:00 |
|
Thomas Harte
|
d559d8b901
|
Continued edging towards getting the absolute basics of a testable Z80, for test-driven development. Corrected old-fashioned instance naming issues with the corresponding 6502 class and removed an unnecessary source file while at it.
|
2017-05-16 21:19:17 -04:00 |
|
Thomas Harte
|
df80c37adb
|
Renamed TestMachine to TestMachine6502 since there's going to be multiple of them.
|
2017-05-15 08:18:57 -04:00 |
|
Thomas Harte
|
0808e9b6fb
|
Pulled the 6502 into a CPU namespace, making it an instance of something that has micro-opcodes and schedules them, and factoring out the formulation of a register pair.
|
2017-05-14 22:08:15 -04:00 |
|
Thomas Harte
|
b81a2cc273
|
First tentative steps towards adding a Z80 implementation.
|
2017-05-14 17:46:41 -04:00 |
|
Thomas Harte
|
8e35e913bb
|
Formally withdrew the 'load automatically' option for the Vic, having removed that option elsewhere.
|
2017-05-14 16:59:24 -04:00 |
|
Thomas Harte
|
2edf73908c
|
Temporarily disabled the existing fast loading implementation in pursuit of another, and started trying to correct the lack of connection between the userport VIA and the tape drive.
|
2017-05-06 22:00:12 -04:00 |
|
Thomas Harte
|
92a8b68859
|
Dumped Mach-specific test-and-set in favour of ordinary C11.
|
2017-04-15 21:41:59 -04:00 |
|
Thomas Harte
|
bdd432fe1d
|
Added an ugly workaround for the empirical sound shutdown issues.
|
2017-03-26 20:28:04 -04:00 |
|
Thomas Harte
|
e01f3f06c8
|
Completed curly bracket movement.
|
2017-03-26 14:34:47 -04:00 |
|
Thomas Harte
|
031a68000a
|
Added a class to contain the Pitfall 2 pager and a skeleton of initial work.
|
2017-03-18 22:08:47 -04:00 |
|
Thomas Harte
|
c3d82f88a5
|
Tidied up and commented on the Activision stack implementation.
|
2017-03-18 21:01:58 -04:00 |
|
Thomas Harte
|
c033bad0b9
|
Here's MNetwork!
|
2017-03-18 20:51:49 -04:00 |
|
Thomas Harte
|
c31d85f820
|
Re-emplaced the MegaBoy. Also cut detritus from the main Atari header.
|
2017-03-18 19:02:34 -04:00 |
|
Thomas Harte
|
217fbf257e
|
CBS RAM Plus returns.
|
2017-03-18 18:56:20 -04:00 |
|
Thomas Harte
|
0b611a14b9
|
Tigervision paging returns.
|
2017-03-18 18:50:13 -04:00 |
|
Thomas Harte
|
df6861c9dc
|
Parker Bros paging is back.
|
2017-03-18 18:21:01 -04:00 |
|
Thomas Harte
|
a4cd12394e
|
Reinstated the Activision stack pager.
|
2017-03-18 18:03:48 -04:00 |
|
Thomas Harte
|
bb3daaa99b
|
Sought to reintroduce the Atari 8k paging scheme, at the same time deciding to do away with the copy and paste of holding on to ROM data.
|
2017-03-18 15:04:01 -04:00 |
|
Thomas Harte
|
14a76af0d3
|
Started trying to float out bus control to cartridges.
|
2017-03-17 20:28:07 -04:00 |
|
Thomas Harte
|
a6897ebde0
|
Added an attempt to distinguish the MegaBoy (now with proper capitalisation) and a test for it.
|
2017-03-13 20:43:12 -04:00 |
|
Thomas Harte
|
582da14a14
|
Added an enumerated type and detection of Pitfall 2.
|
2017-03-13 08:15:36 -04:00 |
|
Thomas Harte
|
8e147444d5
|
Added a readme, as is traditional for folders I'm excluding from Git.
|
2017-03-12 22:16:12 -04:00 |
|
Thomas Harte
|
2c07cce282
|
Had the wrong paging scheme listed for Robot Tank and Thwocker. Better to get this right before trying to come up with a test for the Activision stack scheme.
|
2017-03-12 21:03:10 -04:00 |
|
Thomas Harte
|
597bd97b01
|
Corrected two more table errors.
|
2017-03-12 15:46:25 -04:00 |
|
Thomas Harte
|
38de5300e5
|
Elevator Action seemingly uses a Super Chip.
|
2017-03-12 15:43:42 -04:00 |
|
Thomas Harte
|
146f3ea0f5
|
Fixed: Crystal Castles is 16kb.
|
2017-03-12 15:39:07 -04:00 |
|
Thomas Harte
|
78213f1e95
|
Fixed a couple more table entries, introduced per-size tests (plus a catch-all), to speed up the development/testing cycle.
|
2017-03-12 15:35:36 -04:00 |
|
Thomas Harte
|
de347ad7c8
|
Improved CBS RAM Plus and Super Chip detection exclusion, reducing error count to 15.
|
2017-03-12 14:03:17 -04:00 |
|
Thomas Harte
|
a4bba8a92e
|
Made a couple of lookup table fixes and corrected RAM region detection windows; failures now down to 19.
|
2017-03-11 23:18:30 -05:00 |
|
Thomas Harte
|
fcacfc2726
|
Tidied up spacing, slightly.
|
2017-03-11 23:01:42 -05:00 |
|
Thomas Harte
|
bab464e765
|
I'm far from confident, but this should reduce the deviations close to those that result from mistakes by the static analyser, rather than table errors.
|
2017-03-11 22:58:11 -05:00 |
|
Thomas Harte
|
2879763c34
|
Reduced to 84 failures through more accurate tabulation.
|
2017-03-11 21:52:52 -05:00 |
|
Thomas Harte
|
ea2ea30193
|
Fleshed entire table out with most common values. Exceptions now to fix.
|
2017-03-11 21:11:25 -05:00 |
|
Thomas Harte
|
608569cc48
|
Typed out all the 'A's that I am aware of. So about 5% done.
|
2017-03-11 20:58:38 -05:00 |
|
Thomas Harte
|
c7e973aab4
|
Extended test set a little, corrected current failures.
|
2017-03-11 20:51:25 -05:00 |
|
Thomas Harte
|
443d57bc32
|
Slimmed output and added first six tests. Acid Drop fails since I'm not yet declaring Atari 16k and Atari 32k.
|
2017-03-11 20:43:19 -05:00 |
|
Thomas Harte
|
57ec756f5b
|
Started speccing out a unit test for Atari ROM analysis.
|
2017-03-11 20:33:58 -05:00 |
|
Thomas Harte
|
b193248056
|
Ensured that queue is not touched at all outside of the critical section.
|
2017-03-11 18:17:09 -05:00 |
|
Thomas Harte
|
a72d70e707
|
Enabled code coverage calculation for unit tests.
|
2017-03-11 17:44:56 -05:00 |
|
Thomas Harte
|
38ce4dc56c
|
Fixed potential deadlock, if a delegate decided to dealloc the queue as a result of its prompting.
|
2017-03-11 17:44:02 -05:00 |
|
Thomas Harte
|
d3257c345a
|
Tested against public ROMs and corrected. Also moved the deferred adjustment into a more canonical place.
|
2017-03-04 17:00:28 -05:00 |
|
Thomas Harte
|
e09b76bf32
|
Fixed 'same value, then immediate increment, then proper counting increments' behaviour and ensured it takes one cycle to commit a value. Adjusted tests to match.
|
2017-03-04 15:57:54 -05:00 |
|
Thomas Harte
|
dcd0c90283
|
Switched time of best-effort updater delegate setting, to avoid a callback before setupClockRate has happened, and therefore before it's clear what should be going on with audio.
|
2017-02-26 21:58:59 -05:00 |
|
Thomas Harte
|
2f0c923c29
|
Switched away from @synchronized as it appears possibly to be the lock used during -dealloc, creating deadlock with the CSAudioQueueDeallocLock.
|
2017-02-22 21:42:10 -05:00 |
|
Thomas Harte
|
4c947ad553
|
Attempted to resolve risk of an audio callback being in progress when -dealloc is received.
|
2017-02-22 21:12:59 -05:00 |
|
Thomas Harte
|
1d03793f22
|
Fixed potential race condition: ensure the queue is disposed of synchronously because otherwise there'll be a potential dangling reference to self.
|
2017-02-22 07:35:09 -05:00 |
|
Thomas Harte
|
99a35266e1
|
Attempted to bring frequency-switching logic into the cross-platform realm. Which for now creates an issue with the OpenGL context.
|
2017-02-19 21:20:37 -05:00 |
|
Thomas Harte
|
dd17459687
|
Added my first failing test: delay is incorrect when resetting outside of the play area.
|
2017-02-12 20:42:49 -05:00 |
|
Thomas Harte
|
cd90118a0f
|
Added two, extraordinarily simple tests.
|
2017-02-12 20:32:53 -05:00 |
|
Thomas Harte
|
327c19a222
|
Slightly shuffled to avoid a race condition on the best-effort updater.
|
2017-02-11 12:58:47 -05:00 |
|
Thomas Harte
|
92754ace7a
|
Some mild fixes get me up to having a rolling screen of vertical lines. Which is what I was hoping for right now!
|
2017-01-29 22:16:23 -05:00 |
|
Thomas Harte
|
d51f185dc7
|
Made an attempt to reintroduce the basic horizontal loop.
|
2017-01-29 15:43:57 -05:00 |
|
Thomas Harte
|
fba6baaa9c
|
Stubbed and disabled to get back to building.
|
2017-01-28 21:56:01 -05:00 |
|
Thomas Harte
|
0ffded72a6
|
Created a placeholder class for a factored-out TIA. There's a bit more it'll need to do, like vending (or receiving) a CRT but this is the full hardware stuff, I think.
|
2017-01-28 16:19:08 -05:00 |
|
Thomas Harte
|
9001cc3fc2
|
Added a cartridge image.
|
2017-01-27 21:26:11 -05:00 |
|
Thomas Harte
|
015b2b49f9
|
Introduced an incomplete set of file association icons.
|
2017-01-26 22:21:55 -05:00 |
|
Thomas Harte
|
7b696b0962
|
Switched scheme to shared.
|
2016-12-31 13:11:07 -05:00 |
|
Thomas Harte
|
a568172758
|
Made steps towards proper CRC generation. Am currently comparing against Oric disk images, as — amongst other things — they include precomputed CRCs.
|
2016-12-28 18:29:37 -05:00 |
|
Thomas Harte
|
99993a1b24
|
Since it's about to become important that objective results match, added a couple of objective-result tests for the CRC generator.
|
2016-12-27 19:03:46 -05:00 |
|
Thomas Harte
|
d606bd7ce5
|
Added saturation test, fixed code as indicated.
|
2016-12-24 23:29:37 -05:00 |
|
Thomas Harte
|
09ff9d6a26
|
Introduced a couple more floating-point conversion tests, fixed errors uncovered.
|
2016-12-24 23:21:19 -05:00 |
|
Thomas Harte
|
e25195a718
|
Added a single test for Storage::Time , discovering that I had the wrong sign on float conversions.
|
2016-12-24 22:59:01 -05:00 |
|
Thomas Harte
|
7028f57336
|
Simplified a little further.
|
2016-12-22 18:13:10 -05:00 |
|
Thomas Harte
|
e4e0347638
|
Attempted to consolidate some of the repetition.
|
2016-12-21 22:17:00 -05:00 |
|
Thomas Harte
|
72ca06cf8d
|
Added some extra tests, performed some basic tidying. Probably should do more.
|
2016-12-21 19:54:19 -05:00 |
|
Thomas Harte
|
6a0c7f22ee
|
Added a few more tests. All passing.
|
2016-12-20 21:46:34 -05:00 |
|
Thomas Harte
|
03579f33f1
|
Fixed multi-coverage insertion, via an appropriate test.
|
2016-12-20 21:38:32 -05:00 |
|
Thomas Harte
|
7eca910cc5
|
Fixed insertion location finding logic, working on the relevant test.
|
2016-12-20 21:14:05 -05:00 |
|
Thomas Harte
|
c180340474
|
Added two more passing tests and one that crashes.
|
2016-12-20 19:25:58 -05:00 |
|
Thomas Harte
|
823ab9bc34
|
Completed initial non-trivial test, fixing revealed errors.
|
2016-12-20 19:15:36 -05:00 |
|
Thomas Harte
|
6bdde542c5
|
Edging towards functioning automatic tests, fixed right-period adjustment and slightly decreased searching cost while in the process of adding a test.
|
2016-12-20 07:52:14 -05:00 |
|
Thomas Harte
|
1df478d250
|
Removed dead header file.
|
2016-12-18 23:04:16 -05:00 |
|
Thomas Harte
|
e081f224b6
|
Implemented a very basic PCMTrack test, nevertheless revealing an oversight in PCMSegmentEventSource related to improperly counting to the index hole if the final bit is set. Took that as a message that I should comment and document the event source.
|
2016-12-18 22:53:24 -05:00 |
|
Thomas Harte
|
a6354ebb01
|
Reimplemented PCMTrack to use PCMSegmentEventSource , eliminating code duplication.
|
2016-12-18 21:37:05 -05:00 |
|
Thomas Harte
|
f9a5595dad
|
Added seeking tests, correcting such errors as uncovered.
|
2016-12-18 10:19:24 -05:00 |
|
Thomas Harte
|
3116a2cf4c
|
Realised I was actually testing PCMSegmentEventSource , not PCMSegment ; implemented a spread of tests; hence fixed PCMSegmentEventSource.
|
2016-12-17 21:47:13 -05:00 |
|
Thomas Harte
|
254cc41fd6
|
Made an attempt to separate and isolate the stuff of creating flux events from a PCMSegment , eventually to factor that out of PCMTrack and make it available also to PCMPatchedTrack .
|
2016-12-17 21:13:57 -05:00 |
|
Thomas Harte
|
313db75303
|
Ensured the patchable track owns its underlying track.
|
2016-12-17 18:17:22 -05:00 |
|
Thomas Harte
|
3017062e89
|
Maybe TDD is the way to get over my activity block on this thing? Fixed the existing ArrayBuilder tests so that the tests target builds again, added an extremely trivial PCMTrack test, heading towards PCMPatchedTrack tests.
|
2016-12-17 17:05:49 -05:00 |
|
Thomas Harte
|
dc08a23ceb
|
This is going to be a slow walk, I think. This class attempts to be the scratchpad which will hold in-memory track modifications.
|
2016-12-16 19:20:38 -05:00 |
|
Thomas Harte
|
c43e481a33
|
Started factoring video out of the Electron.
|
2016-12-10 21:07:52 -05:00 |
|
Thomas Harte
|
580f347727
|
Fixed Oric SCART mode by having it change what it's giving to the CRT based on which shader it knows will be active.
|
2016-12-10 13:55:56 -05:00 |
|
Thomas Harte
|
6cdd41e5a9
|
Added direct use of the colour ROM, uploading 16 bits per pixel to contain the entire ROM composite wave.
|
2016-12-09 22:17:10 -05:00 |
|
Thomas Harte
|
d17751787a
|
The remainder of this test isn't necessarily safe to perform if the array length isn't as expected. But in that case the test has already failed, so it's not worth worrying about a partial validation.
|
2016-12-03 16:06:15 -05:00 |
|
Thomas Harte
|
b81c058c0a
|
Factored out the Atari 2600's 6532 connection, as a low-hanging fruit.
|
2016-12-03 13:41:55 -05:00 |
|
Thomas Harte
|
3361d6b93a
|
Factored out the Atari 2600 speaker and adjusted it to postfix underscores.
|
2016-12-03 13:39:46 -05:00 |
|
Thomas Harte
|
4fac538a57
|
Factored out the Electron's speaker and adjusted instance variable naming.
|
2016-12-03 12:41:02 -05:00 |
|
Thomas Harte
|
d1d93829cf
|
Factored out the Tape and switched it to postfix underscores.
|
2016-12-03 12:18:08 -05:00 |
|
Thomas Harte
|
363db695e8
|
Started implementation of the Microdisc selection logic.
|
2016-11-22 08:12:53 +08:00 |
|
Thomas Harte
|
ea33a28695
|
Any Oric-format disks that are inserted now make it all the way to the Oric, along with a request to emulate the Microdisc. It has received a copy of the ROM. The ball is entirely in its court now.
|
2016-11-21 20:59:25 +08:00 |
|
Thomas Harte
|
8499783b14
|
Dragged multibyte primitives and signature checks up to the base class. Implemented support for Oric MFM-style .DSK, at the file format level.
|
2016-11-21 20:47:16 +08:00 |
|
Thomas Harte
|
31c2548804
|
Created a base class for the boilerplate fopen stuff, switched as many classes as possible to its use, switched to postfix underscores and non-camelCase names.
|
2016-11-21 20:14:09 +08:00 |
|
Thomas Harte
|
be60eaa120
|
Added a test for pointer continuity over a submit. Which fails.
|
2016-11-19 19:48:16 +08:00 |
|
Thomas Harte
|
274ec9efb8
|
Added a test for interceding submit.
|
2016-11-19 08:59:21 +08:00 |
|
Thomas Harte
|
22cb8ecd75
|
Started building some tests of the array builder.
|
2016-11-19 08:27:08 +08:00 |
|
Thomas Harte
|
324a1de43d
|
Started pulling out array construction as a separate task.
|
2016-11-17 09:20:49 +08:00 |
|
Thomas Harte
|
5c5e44874f
|
Even better: why include the 'Input' prefix when there's only one?
|
2016-11-16 22:57:17 +08:00 |
|
Thomas Harte
|
4d0d5eb919
|
Renamed the 'input buffer builder' to the 'input texture builder' to be explicit about what sort of buffer, and killed the prefix since it's namespaced. Also switched to std::vector .
|
2016-11-16 12:31:32 +08:00 |
|
Thomas Harte
|
e2cdfae8a7
|
The emulated Oric now has access to both versions of the BASIC ROM and picks between them based on the static analyser's recommendation.
|
2016-11-15 10:39:16 +08:00 |
|
Thomas Harte
|
1b66847647
|
Started trying to implement something sufficient of a 6502 disassembler.
|
2016-11-11 20:10:58 -05:00 |
|
Thomas Harte
|
80702616ea
|
Had a quick go at using the Oric parser for static analysis. Found out that synchronisation is lost. Need to investigate.
|
2016-11-06 22:56:38 -05:00 |
|
Thomas Harte
|
d1ef2f7c63
|
Made an attempt to consolidate what I learnt of Oric encoding while building this hastily and untidily directly into the Oric implementation.
(while adding support for the slow tape encoding mode)
|
2016-11-06 19:22:09 -05:00 |
|
Thomas Harte
|
353c1c8ea3
|
Shifted ownership of PETSCII -> string conversion down to the storage layer, where it's useful for tape parsing.
|
2016-11-06 18:43:51 -05:00 |
|
Thomas Harte
|
1b15bc3a6c
|
Started relocating the tape parsers down from static analyser to storage, to signify that they may be used by the emulation (if fast loading is supported on that machine).
|
2016-11-06 16:13:13 -05:00 |
|
Thomas Harte
|
c21bef4283
|
Project cleaning.
|
2016-11-05 15:08:22 -04:00 |
|
Thomas Harte
|
338904fffe
|
Made similar cleanings of the Electron and Vic.
|
2016-11-05 15:07:57 -04:00 |
|
Thomas Harte
|
9fb9d92437
|
Made the typer much more able to help out, and thereby tidied and separated the Oric's typer.
|
2016-11-05 14:47:09 -04:00 |
|
Thomas Harte
|
dda0c8af30
|
Fixed tests.
|
2016-11-05 12:58:56 -04:00 |
|
Thomas Harte
|
a2e5fd2a1f
|
Corrected layout error.
|
2016-11-03 08:02:13 -04:00 |
|
Thomas Harte
|
9c2df231ce
|
Made fast loading optional.
|
2016-11-03 07:59:30 -04:00 |
|
Thomas Harte
|
67f2c73205
|
Slightly cleaned project.
|
2016-11-01 22:42:00 -04:00 |
|
Thomas Harte
|
70973eb850
|
Fixed accreditation of BCDTest.
|
2016-11-01 22:40:48 -04:00 |
|
Thomas Harte
|
23376257dc
|
Let's try this not as markup.
|
2016-11-01 22:36:07 -04:00 |
|
Thomas Harte
|
bddc540c0d
|
Partitioned and added text for AllSuiteA and Klaus Dormann's tests.
|
2016-11-01 22:35:15 -04:00 |
|
Thomas Harte
|
ca3e1c3204
|
Added an appropriate licence and credit for Wolfgang Lorenz's suite.
|
2016-11-01 22:26:12 -04:00 |
|
Thomas Harte
|
4b347b9993
|
Made a trivial XCTAssert unit test substitution.
|
2016-10-30 20:30:32 -04:00 |
|
Thomas Harte
|
e5fe37f089
|
Fixed 'joystick' input.
|
2016-10-27 19:44:48 -04:00 |
|
Thomas Harte
|
5c23acdbaf
|
Switched window style back for the Atari HUD.
|
2016-10-27 19:40:29 -04:00 |
|
Thomas Harte
|
534b3d085d
|
Improved test reporting, attempted to resolve timing errors just introduced (i.e. to differentiate break/continue where a cycle may or may not be spent).
|
2016-10-27 08:41:44 -04:00 |
|
Thomas Harte
|
013f0c5317
|
Finally forced emulation window to front. Also removed min/max heights where they'd crept in and got explicit about the OpenGL view being first responder.
|
2016-10-24 22:08:24 -04:00 |
|
Thomas Harte
|
91831b6a95
|
Introduced a reuse list for audio buffers, based on the observation that the audio queue seems to start quick rejecting them.
|
2016-10-23 21:17:00 -04:00 |
|
Thomas Harte
|
7c33c34b0c
|
Have withdrawn attempt to be clever with client notification here, as it was having no effect in the current environment, making it hard to build up any confidence.
|
2016-10-23 20:33:59 -04:00 |
|
Thomas Harte
|
f13d7ed6f4
|
Added an extra safety rail.
|
2016-10-20 07:36:53 -04:00 |
|
Thomas Harte
|
73365e1877
|
Resolved sizing error.
|
2016-10-19 23:09:05 -04:00 |
|
Thomas Harte
|
c24c1bf3b1
|
Created an options panel for the Oric. Which involved far too much copy and paste from the Electron. Time to figure out how to generalise this stuff, probably.
|
2016-10-19 22:56:14 -04:00 |
|
Thomas Harte
|
5e2b0aa901
|
Quick project clean up.
|
2016-10-19 21:32:12 -04:00 |
|
Thomas Harte
|
5c69728625
|
Introduced a memory fuzzer, and ensured the Oric uses it.
|
2016-10-19 21:31:50 -04:00 |
|
Thomas Harte
|
5a808d789a
|
Added an upper threshold that must be crossed before a lower threshold warning is communicated.
|
2016-10-18 22:21:34 -04:00 |
|
Thomas Harte
|
f6b6ec7009
|
Cemented new meaningof the audio queue delegate callout.
|
2016-10-17 08:18:32 -04:00 |
|
Thomas Harte
|
c105f2acd9
|
Sought to reduce chattiness.
|
2016-10-17 08:04:36 -04:00 |
|
Thomas Harte
|
b274d7008c
|
Added precaution to make sure best-effort updaters aren't mid-update during document destruction.
|
2016-10-16 22:14:47 -04:00 |
|
Thomas Harte
|
da9c9ad51a
|
Added in the missing keys; added variable phase to the video.
|
2016-10-14 22:39:27 -04:00 |
|
Thomas Harte
|
138eabcff4
|
Continued in my effort to wire up a keyboard. Will need further to continue.
|
2016-10-14 21:35:15 -04:00 |
|
Thomas Harte
|
d8e4c488c2
|
Started iterating towards having an AY and a fully-working keyboard.
|
2016-10-14 21:18:03 -04:00 |
|
Thomas Harte
|
0ca383ecd1
|
Set every single key to be NMI, in order to be able to progress with the diagnostics cartridge.
|
2016-10-13 18:56:55 -04:00 |
|
Thomas Harte
|
120b2d9e33
|
Switched to using a diagnostic ROM for now, as it'll definitely boot without initially requiring either a 6522 or AY. Have some forms appearing which imply I'm not doing badly, at least up to not knowing where I'm supposed to get character pixels from.
|
2016-10-12 21:52:47 -04:00 |
|
Thomas Harte
|
8c8a71107e
|
Added just enough wiring to add something that will generate the video, one day.
|
2016-10-12 19:20:23 -04:00 |
|
Thomas Harte
|
e6937d8003
|
Ensured that the ROM gets installed. So next for some video action?
|
2016-10-12 18:51:02 -04:00 |
|
Thomas Harte
|
f7d2e988b6
|
Mildly enhanced unit test, while I'm curious.
|
2016-10-11 22:22:53 -04:00 |
|
Thomas Harte
|
4a062c616f
|
Added enough wiring to get Oric TAPs through to a completely unimplemented Oric emulation.
|
2016-10-11 22:20:13 -04:00 |
|
Thomas Harte
|
cbc3d28217
|
Ensured an exception is thrown if no machine to run a file is found. E.g. right now if you tried to open a ZX Spectrum .tap.
|
2016-10-11 21:03:01 -04:00 |
|
Thomas Harte
|
df01c78039
|
It's a bit of a mess but this is probably close to appropriate for Oric TAP files.
|
2016-10-11 07:39:48 -04:00 |
|
Thomas Harte
|
02bfa8b8de
|
This should just trust.
|
2016-10-10 07:45:09 -04:00 |
|
Thomas Harte
|
f4b39c4435
|
Added documentation and experimentally reduced packet size. We'll see.
|
2016-10-10 07:42:24 -04:00 |
|
Thomas Harte
|
de397799ed
|
Pulled away my crazy rationalisation of an audio queue into a circular buffer and decided just to trust the OS. This should reduce latency.
|
2016-10-10 07:30:00 -04:00 |
|
Thomas Harte
|
c284818af5
|
Fixed alphabetisation of project.
|
2016-10-07 17:21:02 -04:00 |
|
Thomas Harte
|
e53455a936
|
Not having read the C++ synchronisation primitives before, this async task queue is probably incorrect. But nevertheless, let's have a quick go at employing it — in a hideously thread unsafe fashion — for audio generation. What can possibly go wrong?
|
2016-10-07 16:56:34 -04:00 |
|
Thomas Harte
|
c097886d00
|
Installed hoglet's BCDTest as a formal part of the test suite; removed some redundant semicolons in the Wolfgang Lorenz tests while I was here.
|
2016-10-04 07:52:44 -04:00 |
|
Thomas Harte
|
fa7c64bb5d
|
Eventually reached an implementation of ADC that continues to satisfy all the formalised unit tests while also satisfying the manual BCDTest, that I need to find a way to formalise. I fixed the unit tests for Swift 3 while here, and attempted to do some unrelated NIB stuff with no real success.
|
2016-10-03 22:03:39 -04:00 |
|
Thomas Harte
|
cfdd5fb686
|
By removing its status as a special case, eliminated the Atari 2600 document. It's fairly clear that my date with doing joysticks properly can be deferred only so much longer but this is no worse than previously things were.
|
2016-10-03 08:01:04 -04:00 |
|
Thomas Harte
|
bf468db73d
|
Migrated the Vic document to a mere options panel.
|
2016-10-03 07:42:05 -04:00 |
|
Thomas Harte
|
9e6e84647e
|
Quick formatting fix.
|
2016-10-02 22:06:28 -04:00 |
|
Thomas Harte
|
f28881ec6b
|
... and with the return of stored options and the shift of the aspect ratio to somewhere else (to sit, temporarily), the Electron document is the first of the gang to die.
|
2016-10-02 22:04:47 -04:00 |
|
Thomas Harte
|
19457621d8
|
Redistributed ownership of the user defaults key prefix, the Electron now works other than that settings aren't retained.
|
2016-10-02 21:56:50 -04:00 |
|
Thomas Harte
|
f1b99263e0
|
Relocated responsibility for loading ROMs, giving an Electron that 'works' (i.e. options aside) again.
|
2016-10-02 20:39:06 -04:00 |
|
Thomas Harte
|
989a1581da
|
Migrated analysis logic from the document controller to the document.
|
2016-10-02 17:04:14 -04:00 |
|
Thomas Harte
|
0c75c2fc41
|
Disabled all machine-specific document code, to force the migration of functionality. The 2600 works other than the little matter of input.
|
2016-10-02 16:57:57 -04:00 |
|
Thomas Harte
|
6c6e9830dd
|
Started factoring the options panels out, in the hope that they'll become the only machine-specific thing. At least in the short term.
|
2016-10-02 16:31:50 -04:00 |
|
Thomas Harte
|
abf47efd40
|
Factored out Commodore is-a-ROM test, allowing it to be used from the Commodore analyser and thereby allowing ROMs to get as far as the machine again.
|
2016-09-29 19:39:13 -04:00 |
|
Thomas Harte
|
572d5587d9
|
Made a first stab at enabling multi-disk machines and thereby obeying (some of) the Plus 3's status register.
|
2016-09-25 21:24:16 -04:00 |
|
Thomas Harte
|
9bbcbd1001
|
Renamed class, intending to turn a Disk::Drive into literally just that, and have a thing with a PLL that consumes events be a Controller .
|
2016-09-25 20:05:56 -04:00 |
|
Thomas Harte
|
de863719d0
|
Made a first attempt at Acorn ADFS support plus the start of a suitable analyser.
|
2016-09-25 17:46:11 -04:00 |
|
Thomas Harte
|
ce4100e5b9
|
Fixed slots for DFS and ADFS to sideways RAM; continued working on the 1770 to get as far as trying to get the body of a sector.
|
2016-09-24 22:04:54 -04:00 |
|
Thomas Harte
|
cd5939501f
|
Treading water some more, ensured the DFS and ADFS ROMs get to the Electron. It now even inserts the DFS ROM if it has a DFS disk image. Might need to make it a sideways RAM though? Regardless, the next job surely — surely! — has to be to stop avoiding the 1770?
|
2016-09-20 07:36:57 -04:00 |
|
Thomas Harte
|
c9dd07cecd
|
DFS disks are now delivered right up to the emulator's front door. So everything's in place to get started on that WD1770 nonsense.
|
2016-09-19 08:29:23 -04:00 |
|
Thomas Harte
|
fbcb59d47a
|
A policy change trial: let the person above deal with any error.
|
2016-09-18 21:18:41 -04:00 |
|
Thomas Harte
|
0ce901bd48
|
Added necessary wiring to get as far as asking an arm of the analyser to check out an Acorn disk image.
|
2016-09-18 21:18:11 -04:00 |
|
Thomas Harte
|
91cd7e143b
|
Started on the SSD/DSD support. Realised I had ommitted multiple head support from my disk class. Fixed that.
|
2016-09-18 19:21:02 -04:00 |
|
Thomas Harte
|
180c3df2d4
|
Calling it 'number theory' probably isn't accurate but extracted the CRC stuff and started using it for [M]FM encoding.
|
2016-09-18 18:33:26 -04:00 |
|
Thomas Harte
|
bcf91de7e9
|
Declared support for the Acorn disk files, started hammering out an encoder.
|
2016-09-18 13:35:54 -04:00 |
|
Thomas Harte
|
0e44cfa8a1
|
Merge branch 'master' into WD1770
|
2016-09-18 10:34:11 -04:00 |
|
Thomas Harte
|
6f0b9adc3d
|
Factors.cpp is dead.
|
2016-09-18 10:23:34 -04:00 |
|
Thomas Harte
|
a98374995e
|
Cleaned up pre-analysis code.
|
2016-09-17 18:19:32 -04:00 |
|
Thomas Harte
|
e3daf80564
|
Added a file for the 1770, at least.
|
2016-09-17 18:01:00 -04:00 |
|
Thomas Harte
|
7c65c69e0f
|
Migrated to Swift 3.
|
2016-09-15 22:12:12 -04:00 |
|
Thomas Harte
|
ee8510984f
|
Added just enough wiring to restore the 2600 to functionality.
|
2016-09-15 19:34:45 -04:00 |
|
Thomas Harte
|
92af19098c
|
Improved file naming.
|
2016-09-15 19:24:59 -04:00 |
|
Thomas Harte
|
df7aed7e8b
|
The Commodore analyser now at least hands off to somebody else a chance to parse disks.
|
2016-09-13 07:26:51 -04:00 |
|
Thomas Harte
|
c3a795328d
|
Windows have titles again. Also I've owned up to not knowing how to edit UEFs right now.
|
2016-09-12 22:15:38 -04:00 |
|
Thomas Harte
|
40660fe680
|
Made yet another guess at Commodore analysis. Elevated fast tape-related unnatural speed up to the OS-side mechanisms.
|
2016-09-12 22:06:03 -04:00 |
|
Thomas Harte
|
eeec516fa6
|
Implemented seeking on tapes, mucked about a bit more with the Commodore analyser, at least temporarily removed cropping from the Vic emulator.
|
2016-09-11 17:09:00 -04:00 |
|
Thomas Harte
|
908dc40569
|
If loading automatically, assume that whatever was in the machine target set up the machine and don't override it. Too dodgy? More thought required.
|
2016-09-08 07:38:34 -04:00 |
|
Thomas Harte
|
8c84f3581a
|
Attempted to bring some uniformity in application of configurations.
|
2016-09-08 05:32:17 -04:00 |
|
Thomas Harte
|
50175a9aed
|
Added logic to try to spot when the first program is BASIC and, if so, what the correct memory model is, then to get that information to the Vic. Though it currently then gets overwritten by the view controller. Grrrr.
|
2016-09-07 22:17:19 -04:00 |
|
Thomas Harte
|
bdebc18e0a
|
Added a header parser for Commodore tapes. No time to grab file bodies now; time to go to work.
|
2016-09-06 08:49:32 -04:00 |
|
Thomas Harte
|
8b933182af
|
Added enough wiring (hopefully) that the Commodore tape's GetFiles should be called when appropriate.
|
2016-09-06 06:39:40 -04:00 |
|
Thomas Harte
|
963e307d0c
|
Increased documentation.
|
2016-09-05 22:06:39 -04:00 |
|
Thomas Harte
|
05c24222d8
|
Liberated the tape parser template.
|
2016-09-05 20:02:35 -04:00 |
|
Thomas Harte
|
21e5f407d8
|
I need to get a bit more definitive on naming but this gets all the way to setting a configuration upon an Electron.
|
2016-08-31 22:03:42 -04:00 |
|
Thomas Harte
|
a9b67dfba0
|
Introduced an NSDocumentController subclass.
|
2016-08-31 21:21:07 -04:00 |
|
Thomas Harte
|
7bc2b6b161
|
Added the minor piece that will allow analysis results to be obtained from Objective-C, and exposed to Swift in sufficient detail for it to be able to pass on to the machine.
|
2016-08-31 20:43:29 -04:00 |
|
Thomas Harte
|
0032ad2634
|
Edging ever onwards; killed forced attempt at uniformity in targets, sketched out the interface for a next-file-from call to Acorn tapes.
|
2016-08-29 21:10:38 -04:00 |
|
Thomas Harte
|
d1abfc040c
|
Addressed my dithering here: the file format containers themselves should do nothing but inspect the data to find out whether it is of the correct format. The machine steps are there for machine-specific validation. So it's probably easier to treat a binary ROM image just as a binary ROM image. Therefore, the Acorn-specific .rom detection is now in an Acorn-specific area.
|
2016-08-29 08:48:49 -04:00 |
|
Thomas Harte
|
29c972f4b8
|
Added hacky segue into analysis for all Electron formats. Added analyser to try to differentiate Acorn-format ROMs from other things called .rom, which are likely to be numerous.
|
2016-08-28 12:43:17 -04:00 |
|
Thomas Harte
|
d9f0065154
|
Sketched out just enough classes to get through the get-contents-into-memory step of static analysis.
|
2016-08-28 12:20:40 -04:00 |
|
Thomas Harte
|
24938326ac
|
ROMs definitely have no behaviour other than responding to memory accesses. Cartridges might. So picked the more general term. Sketched out a class at least to parse PRG as though it were a cartridge. Hence the static analyser can guess at whether a PRG is a cartridge or an ordinary program.
|
2016-08-27 18:26:51 -04:00 |
|
Thomas Harte
|
a1b3a18d11
|
Started forcing a resolution on ROMs by doing. But have immediately misstepped. Rename coming momentarily...
|
2016-08-27 18:17:40 -04:00 |
|
Thomas Harte
|
56c0d70c1f
|
Gave disks their own namespace.
|
2016-08-27 17:15:09 -04:00 |
|
Thomas Harte
|
c0402d0c2b
|
Gave tapes their own namespace.
|
2016-08-27 17:09:45 -04:00 |
|
Thomas Harte
|
8c333059a8
|
Turning this into a slog: gave UEF a more appropriate name, got as far as now having to decide what to do about ROMs as to structure. I guess they're machine specific, so specific classes?
|
2016-08-27 16:40:21 -04:00 |
|
Thomas Harte
|
e68ff64045
|
Actually, this is less prescriptive.
|
2016-08-27 13:42:51 -04:00 |
|
Thomas Harte
|
5ffd9e4f0d
|
This is probably how the static analyser interface will look?
|
2016-08-23 21:35:59 -04:00 |
|
Thomas Harte
|
0d077691b0
|
Resolved warning.
|
2016-08-23 21:10:22 -04:00 |
|
Thomas Harte
|
38aec44d85
|
Made sufficient changes for the Vic itself to believe it can recast a PRG as a tape and insert it that way. So now the ball is in the court of: how the heck are Commodore tapes encoded?
|
2016-08-15 19:44:41 -04:00 |
|
Thomas Harte
|
6079d30e58
|
Eliminated waiting here — either the buffer can be enqueued now or it is dropped.
|
2016-08-14 16:20:24 -04:00 |
|
Thomas Harte
|
5373f6cc57
|
Completed setting of options, including mapping from country to ROM + television standard.
|
2016-08-14 14:23:08 -04:00 |
|
Thomas Harte
|
b5af1746d5
|
Added a through path to the Objective-C for setting region and memory size.
|
2016-08-14 14:14:59 -04:00 |
|
Thomas Harte
|
f15d89239f
|
Made a stab at storage and restoration of country and memory size.
|
2016-08-14 14:00:08 -04:00 |
|
Thomas Harte
|
df77c2a20a
|
Added the XIB side of wiring for region and memory size options.
|
2016-08-14 13:53:14 -04:00 |
|
Thomas Harte
|
12bad8f23f
|
Turned the 6560 into an ordinary template, similar to the rest of the project, albeit right now with a fairly shonky internal implementation. Fixed a Mac-specific interface sizing issue.
|
2016-08-09 20:41:05 -04:00 |
|
Thomas Harte
|
285a288c80
|
Switched to two cycles of options loading, meaning that they get set before files are inserted. Might need some further work?
|
2016-08-07 21:48:09 -04:00 |
|
Thomas Harte
|
be54d8040e
|
Made a first stab at having automatic loading be optional. But things are currently arranged such that the machine options are communicated too late to have an effect. So work to do.
|
2016-08-06 17:39:27 -04:00 |
|
Thomas Harte
|
58297f1baf
|
Performed the basic metadata and routing for opening D64 files. Realised that I wasn't actually necessarily catching exceptions properly for all file opens, and fixed.
|
2016-08-01 07:09:15 -04:00 |
|
Thomas Harte
|
18744cd98b
|
Slightly updated comments, switched to 1540 ROM so as very slightly to improve loading time.
|
2016-08-01 04:37:30 -04:00 |
|
Thomas Harte
|
89a1881fef
|
Started turning the 1540 into an actual disk drive.
|
2016-07-29 11:03:09 -04:00 |
|
Thomas Harte
|
0e581c7607
|
Factored out the stuff of running a timed event loop from the TapePlayer.
|
2016-07-29 07:15:46 -04:00 |
|
Thomas Harte
|
e55db0cfe8
|
Made an attempt to eliminate creeping tape processing accuracy misses, which implied factoring out the GCM and LCD functions, which I then felt didn't really amount to signal processing.
|
2016-07-29 05:19:01 -04:00 |
|
Thomas Harte
|
015cea494d
|
Switched to a much-more straightforward PLL. I think I'm just fiddling now rather than moving forwards. Probably time to move on?
|
2016-07-28 11:32:14 -04:00 |
|
Thomas Harte
|
e061e849d4
|
Had a second bash at the PLL. Probably I should read some of the literature.
|
2016-07-27 16:24:24 -04:00 |
|
Thomas Harte
|
0aa90b943b
|
Switched to specifying bit length as a quotient for the purposes of a PCMSegment and verified that I had the logic for picking a Commodore time zone backwards: bigger numbers are faster, not slower.
Started sketching out a DiskDrive class.
|
2016-07-15 06:51:11 -04:00 |
|
Thomas Harte
|
74817f6664
|
With a history of three pulses, this can track up a 10% sine variation in a 1010101 stream. So I guess this'll do for now?
|
2016-07-14 19:54:48 -04:00 |
|
Thomas Harte
|
ac1bc588dd
|
Improved factoring and increased window of testing, causing both the fast and slow tests to show framing errors.
|
2016-07-14 07:12:02 -04:00 |
|
Thomas Harte
|
d1fe07f14d
|
Added test of perfect DPLL input timing.
|
2016-07-12 21:42:23 -04:00 |
|
Thomas Harte
|
75d95c0bc0
|
Sketched out an interface for a digial PLL. Not persuaded yet. Baby steps.
|
2016-07-11 22:12:58 -04:00 |
|
Thomas Harte
|
1e9eedc314
|
Factored out the PCM track since it's going to be a useful construct for almost every file format. Documented it a little better.
|
2016-07-10 18:36:52 -04:00 |
|
Thomas Harte
|
6cfc514c2d
|
Made the rote changes necessary to attempt to open and to supply a G64 to the Vic.
|
2016-07-10 12:57:17 -04:00 |
|
Thomas Harte
|
ff49857f5c
|
Started sketching out support for the G64 file format.
|
2016-07-10 10:17:53 -04:00 |
|
Thomas Harte
|
9e3d6b762b
|
Sketched out the generic interface for a disk, documenting it and the tape interface while I'm here.
|
2016-07-10 08:54:39 -04:00 |
|
Thomas Harte
|
d8334edf4a
|
Started trying to clean up, including commuting the C1540 source file name to match its class name but mainly by adding documentation.
|
2016-07-10 07:46:20 -04:00 |
|
Thomas Harte
|
656cd211d7
|
Was transmitting bit levels backwards (probably?); 1540 now acknowledges byte received.
|
2016-07-09 18:06:49 -04:00 |
|
Thomas Harte
|
01746f0512
|
This is probably a valid test. But I'm not completely sure. Time to figure out what's happening on the 1540 end.
|
2016-07-09 18:01:04 -04:00 |
|
Thomas Harte
|
cd84c35552
|
Whoops, one bit too short.
|
2016-07-09 17:51:46 -04:00 |
|
Thomas Harte
|
cd362b46b3
|
This is a valid attempt to send a whole byte, I think.
|
2016-07-09 17:51:04 -04:00 |
|
Thomas Harte
|
3560babd7e
|
Got back to a failing test, now while trying to transmit a whole byte. Good stuff!
|
2016-07-09 17:39:51 -04:00 |
|
Thomas Harte
|
66caa3c6dc
|
Fixed setup of bridge class.
|
2016-07-09 17:23:43 -04:00 |
|
Thomas Harte
|
bf03985ea4
|
Here's an instantly failing test...
|
2016-07-09 17:22:10 -04:00 |
|
Thomas Harte
|
da6fe2e983
|
This should be enough of a shell to write some actual tests.
|
2016-07-09 15:47:53 -04:00 |
|
Thomas Harte
|
865eb421cd
|
Quick on-disk tidy up.
|
2016-07-09 15:44:55 -04:00 |
|
Thomas Harte
|
7cc4bf3fe7
|
Hit and hope is getting me nowhere. Time to unit test this thing.
|
2016-07-09 15:40:25 -04:00 |
|
Thomas Harte
|
81e6cc34e5
|
Per the ROM disassembly, the Vic's VIA outputs are inverted for the benefit of the serial bus.
|
2016-07-07 06:57:21 -04:00 |
|
Thomas Harte
|
1baf21827c
|
Since the ROM is well disassembled, let's actually try to be a 1541 first.
|
2016-07-06 22:17:32 -04:00 |
|
Thomas Harte
|
d1eea6943d
|
Ensured the 1540 ROM gets installed, at least.
|
2016-07-05 16:54:25 -04:00 |
|
Thomas Harte
|
47548dcedc
|
Fixed an erroneous #import.
|
2016-07-05 16:39:31 -04:00 |
|
Thomas Harte
|
86dabd007b
|
Furthered fleshing out of the 1540. Though it doesn't yet receive a ROM so won't even attempt to do anything meaningful.
|
2016-07-05 16:39:18 -04:00 |
|
Thomas Harte
|
d2cded7b59
|
Attempted to separate out the concept of a serial port and a serial bus, since the bus may be shared, and to establish half duplex communications from the Vic.
|
2016-07-05 14:55:20 -04:00 |
|
Thomas Harte
|
0d3d0fbe4d
|
Created a namespace for Commodore and an empty container file for the 1540[/1] implementation.
|
2016-07-05 13:28:27 -04:00 |
|
Thomas Harte
|
df4724eb3e
|
Added a modal toggle allowing the keyboard to be switched between being a keyboard and being a joystick for the Vic.
|
2016-07-04 22:01:07 -04:00 |
|
Thomas Harte
|
88964ceac0
|
Eliminated plain pointer passing for object types.
|
2016-07-04 19:33:55 -04:00 |
|
Thomas Harte
|
6dbf16210b
|
Switched protocol to meaningful name and corrected its omission from the repository.
|
2016-07-04 19:19:07 -04:00 |
|
Thomas Harte
|
b322baff2f
|
Added CLI/SEI pair test.
|
2016-06-29 19:42:39 -04:00 |
|
Thomas Harte
|
db7c6430b5
|
Fixed Klaus Dormann termination condition.
|
2016-06-29 19:16:34 -04:00 |
|
Thomas Harte
|
6419d9c485
|
Added a single IRQ test case, discovering that I'm two cycles short. Whoops!
|
2016-06-28 21:29:43 -04:00 |
|
Thomas Harte
|
6027cba95f
|
Factored out the stuff of pushing a fast-loading option onwards and storing it within the user defaults.
|
2016-06-27 21:38:14 -04:00 |
|
Thomas Harte
|
9134e4de1f
|
Added a partially-wired options menu for the VIC.
|
2016-06-27 18:49:53 -04:00 |
|
Thomas Harte
|
d5e50f5ea0
|
Got a bit more explicit about how ports are identified on the 6522.
|
2016-06-26 12:30:01 -04:00 |
|
Thomas Harte
|
8741be5c84
|
Made the slightest possible effort to get TAPs opened and passed to the VIC.
|
2016-06-25 16:24:52 -04:00 |
|
Thomas Harte
|
ee19417ded
|
Made an attempt quickly to implement parsing of the Commodore .TAP file format.
|
2016-06-25 16:09:32 -04:00 |
|
Thomas Harte
|
b8728285e7
|
An overridden getter looks more like this in Swift.
|
2016-06-23 21:09:34 -04:00 |
|
Thomas Harte
|
097a9caa95
|
Delegates are all nullable, naturally.
|
2016-06-23 09:37:49 -04:00 |
|
Thomas Harte
|
454e98302d
|
Slight rearrangement plus a setting of the CSMachine delegate corrects audio after a clock rate change.
|
2016-06-20 22:18:41 -04:00 |
|