Commit Graph

  • 7eeaac23e7 Reversed myself. I once again do not think the clock is divided by 256 for envelopes. Thomas Harte 2016-11-11 20:31:48 -05:00
  • 1b66847647 Started trying to implement something sufficient of a 6502 disassembler. Thomas Harte 2016-11-11 20:10:58 -05:00
  • 4ba39d13b5 Merge pull request #75 from TomHarte/AudioUpdates Thomas Harte 2016-11-10 20:32:57 -05:00
  • 77987bf31e Decided to go with divide by 256 for the envelope counter after all. Thomas Harte 2016-11-09 21:51:56 -05:00
  • 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. Thomas Harte 2016-11-09 21:21:17 -05:00
  • 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. Thomas Harte 2016-11-09 21:17:50 -05:00
  • f3c8c57043 Merge pull request #74 from TomHarte/WaveLengthOric Thomas Harte 2016-11-09 06:41:56 -05:00
  • 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. Thomas Harte 2016-11-09 06:37:10 -05:00
  • 79dd062941 Merge pull request #73 from TomHarte/TapeClasses 2016-11-08 Thomas Harte 2016-11-07 22:04:37 -05:00
  • 64827931bf Switched the Oric implementation simply to rely upon the Storage-level tape parser. So now there's only one, authoritative one of those. Thomas Harte 2016-11-07 21:57:58 -05:00
  • c257e7f58d Implemented better sync-to-zero and discovered a header counting bug plus, probably, a misleading representation of gaps in the Oric TAP decoder. Thomas Harte 2016-11-07 20:17:06 -05:00
  • 80702616ea Had a quick go at using the Oric parser for static analysis. Found out that synchronisation is lost. Need to investigate. Thomas Harte 2016-11-06 22:56:38 -05:00
  • 7205c3f82b Made an attempt to build in Oric slow/fast detection. Thomas Harte 2016-11-06 21:31:10 -05:00
  • d1ef2f7c63 Made an attempt to consolidate what I learnt of Oric encoding while building this hastily and untidily directly into the Oric implementation. Thomas Harte 2016-11-06 19:22:09 -05:00
  • 353c1c8ea3 Shifted ownership of PETSCII -> string conversion down to the storage layer, where it's useful for tape parsing. Thomas Harte 2016-11-06 18:43:51 -05:00
  • 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). Thomas Harte 2016-11-06 16:13:13 -05:00
  • 093eb55fc6 The parsers no longer own a tape, merely taking one as an argument. So they can be an adjunct. Thomas Harte 2016-11-06 15:25:18 -05:00
  • bc83a8f2d0 Merge pull request #72 from TomHarte/RefactoredTyper Thomas Harte 2016-11-05 15:29:26 -04:00
  • 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. Thomas Harte 2016-11-05 15:28:03 -04:00
  • c21bef4283 Project cleaning. Thomas Harte 2016-11-05 15:08:22 -04:00
  • 338904fffe Made similar cleanings of the Electron and Vic. Thomas Harte 2016-11-05 15:07:57 -04:00
  • 9fb9d92437 Made the typer much more able to help out, and thereby tidied and separated the Oric's typer. Thomas Harte 2016-11-05 14:47:09 -04:00
  • e5de9c8607 Merge pull request #71 from TomHarte/IRQBenchTest Thomas Harte 2016-11-05 13:00:35 -04:00
  • dda0c8af30 Fixed tests. Thomas Harte 2016-11-05 12:58:56 -04:00
  • fa65cc2058 Resolved type conversion error. Thomas Harte 2016-11-05 12:57:01 -04:00
  • 30c670f8de Ensured programmatic setting of the timers occurs during phase 2 _instead_ of counting. Thomas Harte 2016-11-04 21:30:18 -04:00
  • eccfdabeab Temporarily disabled thread hop, until I can find a way to batch these things. Thomas Harte 2016-11-03 22:52:02 -04:00
  • 626e719fab Added sanity checks on loading quickly. Thomas Harte 2016-11-03 22:50:49 -04:00
  • c2c4e81a7d Merge pull request #70 from TomHarte/OricTyper 2016-11-03 Thomas Harte 2016-11-03 22:23:01 -04:00
  • a7e4c0c3b5 Switched to a ROM trap for typing. Thomas Harte 2016-11-03 22:21:05 -04:00
  • 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. Thomas Harte 2016-11-03 22:14:40 -04:00
  • 2d7c6ad03b Merge pull request #69 from TomHarte/FastOricTape Thomas Harte 2016-11-03 08:03:20 -04:00
  • a2e5fd2a1f Corrected layout error. Thomas Harte 2016-11-03 08:02:13 -04:00
  • 9c2df231ce Made fast loading optional. Thomas Harte 2016-11-03 07:59:30 -04:00
  • 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. Thomas Harte 2016-11-03 07:34:48 -04:00
  • 827a919368 This is an initial attempt at reading actual tape data. It loses sync though. Thomas Harte 2016-11-02 22:30:53 -04:00
  • 419629ee6e Completed proof of theory for fast loading. It's just an around-the-back direct-to-file hack for now though. Thomas Harte 2016-11-02 21:09:49 -04:00
  • 3e67f3caa6 Merge branch 'master' into FastOricTape Thomas Harte 2016-11-02 08:04:51 -04:00
  • 42797111ca Merge pull request #68 from TomHarte/ProperLicences Thomas Harte 2016-11-01 22:42:32 -04:00
  • 67f2c73205 Slightly cleaned project. Thomas Harte 2016-11-01 22:42:00 -04:00
  • 70973eb850 Fixed accreditation of BCDTest. Thomas Harte 2016-11-01 22:40:48 -04:00
  • 23376257dc Let's try this not as markup. Thomas Harte 2016-11-01 22:36:07 -04:00
  • bddc540c0d Partitioned and added text for AllSuiteA and Klaus Dormann's tests. Thomas Harte 2016-11-01 22:35:15 -04:00
  • ca3e1c3204 Added an appropriate licence and credit for Wolfgang Lorenz's suite. Thomas Harte 2016-11-01 22:26:12 -04:00
  • 7ad44f5152 Flipped order of conditional so as negligibly to improve prediction. Thomas Harte 2016-10-31 22:17:18 -04:00
  • bb58caff52 Merge branch 'master' into FastOricTape Thomas Harte 2016-10-31 22:11:03 -04:00
  • 08e8118be3 Merge pull request #67 from TomHarte/FixedOricAudio Thomas Harte 2016-10-31 22:06:04 -04:00
  • 21604376e6 Reintroduced clocking of the AY and boxed in the range of the master divider a little further. Thomas Harte 2016-10-30 22:51:08 -04:00
  • 33512988fb Added a basic cycle skipper plus some notes. Thomas Harte 2016-10-30 22:39:47 -04:00
  • 1333a42a78 Merge pull request #66 from TomHarte/CheckOnlyWhenNeeded Thomas Harte 2016-10-30 20:31:34 -04:00
  • 4b347b9993 Made a trivial XCTAssert unit test substitution. Thomas Harte 2016-10-30 20:30:32 -04:00
  • 2452a3104f Corrected test: hitting zero is sufficient. No need to cross it. Thomas Harte 2016-10-30 20:24:30 -04:00
  • 8d87a61f63 Merge branch 'master' into CheckOnlyWhenNeeded Thomas Harte 2016-10-30 20:17:57 -04:00
  • 9f66f6abfe Merge pull request #65 from TomHarte/OricVideoImprovements Thomas Harte 2016-10-30 20:17:24 -04:00
  • b04ba41951 Moved code out of header. Thomas Harte 2016-10-30 20:16:22 -04:00
  • 3b52ab0d37 Cut some dead state. Thomas Harte 2016-10-30 20:15:47 -04:00
  • 42fe9f29ac Moved code out of header. Thomas Harte 2016-10-30 20:16:22 -04:00
  • 95f54cb4b5 Cut some dead state. Thomas Harte 2016-10-30 20:15:47 -04:00
  • 9309be229c Moved cycle count test down to the only places where it may actually yield a different result. Thomas Harte 2016-10-30 20:13:44 -04:00
  • 58f888c6ad Limited CRT calls. Thomas Harte 2016-10-30 16:21:20 -04:00
  • 1ff9b474bf Made an attempt to make execution flow through this loop more straightforward for a branch predictor. Thomas Harte 2016-10-30 15:30:39 -04:00
  • 7843a244b0 Ensured emulation doesn't enter an infinite loop if the user attempts to read beyond the end of a tape. Thomas Harte 2016-10-28 22:23:25 -04:00
  • 69f0cef747 Merge pull request #64 from TomHarte/6502IRQ Thomas Harte 2016-10-28 21:30:22 -04:00
  • a106018680 Fixed initial state: interrupt flag is initially low. Thomas Harte 2016-10-28 21:22:03 -04:00
  • ad00304e8a Fixed 6522 countdown. Thomas Harte 2016-10-28 21:05:42 -04:00
  • 613b5b3f98 Switched to inverse storage of the interrupt flag so as to reduce logical burden when storing IRQ line history. Thomas Harte 2016-10-28 20:52:43 -04:00
  • b64ae904a5 Merge pull request #63 from TomHarte/OricVideoOptimisation Thomas Harte 2016-10-27 21:16:21 -04:00
  • 4fab794747 Added a direct-to-two-cycles emulation path for 6522 owners. Thomas Harte 2016-10-27 21:13:25 -04:00
  • 2eda0b3c86 Attempted to simplify the logic behind the most common 6522 usage. Thomas Harte 2016-10-27 21:06:31 -04:00
  • e5fe37f089 Fixed 'joystick' input. Thomas Harte 2016-10-27 19:44:48 -04:00
  • 5c23acdbaf Switched window style back for the Atari HUD. Thomas Harte 2016-10-27 19:40:29 -04:00
  • dbc26e7288 Merge pull request #62 from TomHarte/6502Branching Thomas Harte 2016-10-27 18:58:32 -04:00
  • 4408c60ef7 This too should continue, not break, since it doesn't schedule a memory access. Thomas Harte 2016-10-27 18:32:21 -04:00
  • 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). Thomas Harte 2016-10-27 08:41:44 -04:00
  • f84b66a5f4 Made an attempt to fix wake-from-WAIT. Thomas Harte 2016-10-25 19:06:46 -04:00
  • 4b18c76b84 Introduced a bifurcation between break and continue to signify whether a bus access takes place, necessitating a shift in the location of the bus access but allowing the conditional to be dropped. Need to test. Thomas Harte 2016-10-25 18:45:53 -04:00
  • c253a4258f Made minor restructuring changes, slightly to reduce number of conditionals per operation and to drop a big hint to the optimiser. Thomas Harte 2016-10-25 18:34:24 -04:00
  • cb1b81dbef Merge pull request #61 from TomHarte/TapImprovements Thomas Harte 2016-10-25 18:23:30 -04:00
  • 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. Thomas Harte 2016-10-24 22:08:24 -04:00
  • d3634488e6 Made an attempt better to deal with multiple-file TAPs; also started using a zero level for the header/data gap. Thomas Harte 2016-10-24 21:59:06 -04:00
  • 30d4a7c662 Fixed: blinking means ink vanishing and appearing. Nothing else. Thomas Harte 2016-10-24 21:58:15 -04:00
  • cf5685abf3 Merge pull request #60 from TomHarte/SilentAudio Thomas Harte 2016-10-23 21:27:13 -04:00
  • 91831b6a95 Introduced a reuse list for audio buffers, based on the observation that the audio queue seems to start quick rejecting them. Thomas Harte 2016-10-23 21:17:00 -04:00
  • 33b93b7098 Merge pull request #59 from TomHarte/AYFixes Thomas Harte 2016-10-23 20:44:48 -04:00
  • fd823dc222 Settled on terminology. Thomas Harte 2016-10-23 20:42:49 -04:00
  • 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. Thomas Harte 2016-10-23 20:33:59 -04:00
  • b12f2f2796 Switched to more straightforward version of two-step loop, dealing with my mistaken dealing of when _master_divider&15 == 0 upon entry without adding an extra sanity check. Am also temporarily on non-modulo logic for tone generation, for a profiling test. Thomas Harte 2016-10-23 20:32:48 -04:00
  • 583db88299 Added a dispatch queue-powered Apple implementation of the async task queue, removed any mention of skip_samples in the AY since it isn't implemented. Thomas Harte 2016-10-22 21:58:45 -04:00
  • 33e628a096 Made an attempt to eliminate what amounts to manual division. Thomas Harte 2016-10-21 22:16:44 -04:00
  • 46a3c0922f Slightly simplified code, fixed divider. Thomas Harte 2016-10-21 22:12:44 -04:00
  • d7c0c49715 Might as well be consistent with divider loads. Thomas Harte 2016-10-21 20:07:14 -04:00
  • 782ef960e1 Sought both to [start to] optimise the AY and correct divider reloads. It turns out that conditionals aren't that troubling. But I can probably eliminate the counters. Thomas Harte 2016-10-21 20:05:38 -04:00
  • 09687a2e2f Removed errant newline. Thomas Harte 2016-10-20 21:30:12 -04:00
  • 44910d90ba Adjusted aberrations in semicolons. Thomas Harte 2016-10-20 21:20:13 -04:00
  • 460f518451 Merge pull request #58 from TomHarte/CleanUp Thomas Harte 2016-10-20 21:17:42 -04:00
  • 6292ac5b26 Yet more .hpp clean(s)ing. Thomas Harte 2016-10-20 21:15:21 -04:00
  • c5948ef177 Evicted more header-resident code. Thomas Harte 2016-10-20 21:05:32 -04:00
  • d335991e60 Shifted code out of the header. Thomas Harte 2016-10-20 20:53:17 -04:00
  • cbbd31c2e0 Explained what this recently factored-out class does, and removed code from the header. Thomas Harte 2016-10-20 19:33:25 -04:00
  • 9c956f83b8 Made it slightly more clear that the correct test is conformed to. Thomas Harte 2016-10-20 19:23:36 -04:00