1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-07-09 21:29:53 +00:00
Commit Graph

1459 Commits

Author SHA1 Message Date
Thomas Harte
ba2adf8bb1 Normalised on std::vector rather than std::unique_ptr<uint8_t *> as (probably?) more idiomatic. Improved structure slightly. Introduced a container for line data, albeit one that isn't yet used. 2016-11-16 10:34:54 +08:00
Thomas Harte
f84a28b566 Merge pull request #76 from TomHarte/Disassembler
Introduces a first attempt at 6502 disassembly
2016-11-15 19:52:12 -05:00
Thomas Harte
97811fe590 Made minor fix to ensure that a header that appears to extend beyond the end of an Oric .TAP doesn't create an ostensibly endless tape. 2016-11-15 12:02:03 +08:00
Thomas Harte
8b40ae03ca Extended analysis to spot IRQ and NMI vector changes, for titles that simply adjust those then exit. Ensured Oric emulator can type and load quickly on an Oric 1 just as well as on an Atmos. 2016-11-15 11:05:53 +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
ab64731d51 Fixed off-by-one recording of disasssmbled addresses; added logic to the Oric static analyser to try to guess between BASIC 1.1 (the preferred option in a tie-break or if no information is found) and BASIC 1.0. 2016-11-15 10:31:47 +08:00
Thomas Harte
1bffc70494 In theory that's a full disassembler, at least as far as I want to go for now. Time to test. 2016-11-15 08:19:57 +08:00
Thomas Harte
a5fc45e66e Started fleshing this out; addressing modes are completely decoded, along with a bunch of opcodes, but appropriate address advancement isn't in yet, and neither is filling in derived metadata. 2016-11-14 12:19:09 +08:00
Thomas Harte
f08e87c6c1 Merge branch 'master' into Disassembler 2016-11-11 20:32:18 -05:00
Thomas Harte
7eeaac23e7 Reversed myself. I once again do not think the clock is divided by 256 for envelopes. 2016-11-11 20:31:48 -05:00
Thomas Harte
1b66847647 Started trying to implement something sufficient of a 6502 disassembler. 2016-11-11 20:10:58 -05:00
Thomas Harte
4ba39d13b5 Merge pull request #75 from TomHarte/AudioUpdates
Reintroduced a separate thread for audio processing and made various AY fixes
2016-11-10 20:32:57 -05:00
Thomas Harte
77987bf31e Decided to go with divide by 256 for the envelope counter after all. 2016-11-09 21:51:56 -05:00
Thomas Harte
77ce200fbb Simplified/corrected AY tone/noise mixer logic, and made a new guess at the effect of reading registers that are smaller than 8 bits. 2016-11-09 21:21:17 -05:00
Thomas Harte
9c550c594a Moved audio work back into its own thread, but this time it queues up an all happens only upon a flush. Hopefully to resolve synchronisation cost concerns. 2016-11-09 21:17:50 -05:00
Thomas Harte
f3c8c57043 Merge pull request #74 from TomHarte/WaveLengthOric
Switches to Oric tape parsing by full-cycle length only
2016-11-09 06:41:56 -05:00
Thomas Harte
fce48b9b8c I am instructed that the Oric actually catches only positive transitions, and compares the distance between those to a threshold. So here's an altered version of the tape parser that does that. 2016-11-09 06:37:10 -05:00
Thomas Harte
79dd062941 Merge pull request #73 from TomHarte/TapeClasses
Clarifies that a tape parser does not own a tape, it is merely lent one
2016-11-07 22:04:37 -05:00
Thomas Harte
64827931bf Switched the Oric implementation simply to rely upon the Storage-level tape parser. So now there's only one, authoritative one of those. 2016-11-07 21:57:58 -05:00
Thomas Harte
c257e7f58d Implemented better sync-to-zero and discovered a header counting bug plus, probably, a misleading representation of gaps in the Oric TAP decoder. 2016-11-07 20:17:06 -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
7205c3f82b Made an attempt to build in Oric slow/fast detection. 2016-11-06 21:31:10 -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
093eb55fc6 The parsers no longer own a tape, merely taking one as an argument. So they can be an adjunct. 2016-11-06 15:25:18 -05:00
Thomas Harte
bc83a8f2d0 Merge pull request #72 from TomHarte/RefactoredTyper
Attempts to clean up the Typer code, reducing duplication and improving per-platform readability
2016-11-05 15:29:26 -04:00
Thomas Harte
45b169f341 Made a few mapping fixes, clarified where the default reset code lives, ensured the Oric and Vic clear their keys when the typer ends. 2016-11-05 15:28:03 -04: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
e5de9c8607 Merge pull request #71 from TomHarte/IRQBenchTest
Introduces a one-cycle cost to setting 6522 timers
2016-11-05 13:00:35 -04:00
Thomas Harte
dda0c8af30 Fixed tests. 2016-11-05 12:58:56 -04:00
Thomas Harte
fa65cc2058 Resolved type conversion error. 2016-11-05 12:57:01 -04:00
Thomas Harte
30c670f8de Ensured programmatic setting of the timers occurs during phase 2 _instead_ of counting. 2016-11-04 21:30:18 -04:00
Thomas Harte
eccfdabeab Temporarily disabled thread hop, until I can find a way to batch these things. 2016-11-03 22:52:02 -04:00
Thomas Harte
626e719fab Added sanity checks on loading quickly. 2016-11-03 22:50:49 -04:00
Thomas Harte
c2c4e81a7d Merge pull request #70 from TomHarte/OricTyper
Implemented typer for the Oric, and I'm starting to think the code is…
2016-11-03 22:23:01 -04:00
Thomas Harte
a7e4c0c3b5 Switched to a ROM trap for typing. 2016-11-03 22:21:05 -04:00
Thomas Harte
8c70dc5891 Implemented typer for the Oric, and I'm starting to think the code is a bit too repetitious. Refactoring will be forthcoming. Added CLOAD"" as the loading command for all Oric software. 2016-11-03 22:14:40 -04:00
Thomas Harte
2d7c6ad03b Merge pull request #69 from TomHarte/FastOricTape
Introduces fast loading for Oric tapes
2016-11-03 08:03:20 -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
e9f1a6a79d This appears to be it. The secret? Don't worry about the stop bits. They're just processing time. Latch onto the next start. 2016-11-03 07:34:48 -04:00
Thomas Harte
827a919368 This is an initial attempt at reading actual tape data. It loses sync though. 2016-11-02 22:30:53 -04:00
Thomas Harte
419629ee6e Completed proof of theory for fast loading. It's just an around-the-back direct-to-file hack for now though. 2016-11-02 21:09:49 -04:00
Thomas Harte
3e67f3caa6 Merge branch 'master' into FastOricTape 2016-11-02 08:04:51 -04:00
Thomas Harte
42797111ca Merge pull request #68 from TomHarte/ProperLicences
Partitions and introduces licences for the various test suites upon which I rely
2016-11-01 22:42:32 -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