Commit Graph

  • 98be6ede45 Shuffled a little to reduce risk of overflow, ensured writing is a loop, still seem to be writing too quickly for some reason. Thomas Harte 2016-12-25 16:13:05 -05:00
  • d2ad2c756e Added enough shovelling to write rubbish for an entire sector. Thomas Harte 2016-12-25 15:46:49 -05:00
  • ec55a25620 It makes sense to simplify these ahead of time. Thomas Harte 2016-12-25 12:32:25 -05:00
  • aceb7e3b6b Started implementing write sector on the 1770, immediately deciding it would be useful to have a callback for end-of-queued-data-written from disk controller. So had a go at implementing that, naively. More investigation required. Thomas Harte 2016-12-25 12:31:38 -05:00
  • 901f19f89c Added enough stuff that SSDs attached to a 1770 will now reach the entry point for writing. Thomas Harte 2016-12-25 09:46:12 -05:00
  • e56beb3e9c Merge pull request #86 from TomHarte/DiskWrites Thomas Harte 2016-12-25 09:37:20 -05:00
  • 9d555c4a02 Let's try just declining to pump the PLL while in write mode. Added documentation to explain. Thomas Harte 2016-12-25 09:19:18 -05:00
  • b57038edc5 Actually, at least index holes will still be receivable while writing, so this wasn't entirely correct. Probably best to leave it in. Thomas Harte 2016-12-25 09:16:09 -05:00
  • d606bd7ce5 Added saturation test, fixed code as indicated. Thomas Harte 2016-12-24 23:29:37 -05:00
  • 09ff9d6a26 Introduced a couple more floating-point conversion tests, fixed errors uncovered. Thomas Harte 2016-12-24 23:21:19 -05:00
  • e25195a718 Added a single test for Storage::Time, discovering that I had the wrong sign on float conversions. Thomas Harte 2016-12-24 22:59:01 -05:00
  • af69b21033 This is almost complete, except that it doesn't act appropriately if some bits are written but not enough to cover the entire writing period. Thomas Harte 2016-12-24 22:51:26 -05:00
  • f601d796f5 Added documentation. Thomas Harte 2016-12-24 22:37:20 -05:00
  • 6e94d0c19f Extended Storage::Disk::Disk to permit write-back of modified tracks, exposed some interface via Storage::Disk::Drive. Thomas Harte 2016-12-24 22:11:31 -05:00
  • 7f303cfceb Continued the baby steps. Thomas Harte 2016-12-24 21:54:43 -05:00
  • afc6f4129c Withdrew unused tally. Thomas Harte 2016-12-24 21:47:57 -05:00
  • 1e416d4af0 Withdrew now-unused and never-implemented API from TimedEventLoop, and the redundant track time count from DiskController. Thomas Harte 2016-12-24 21:02:10 -05:00
  • bedea48d03 This is a much better way of dealing with being partway into an incoming event. Subject to eliminating overruns, of course. Thomas Harte 2016-12-24 20:54:27 -05:00
  • 4cb17143ef Messing around trying to lock down timing precisely. Which includes formal initial conditions. Thomas Harte 2016-12-24 15:18:46 -05:00
  • 4d4852bb78 Ensured that Times start life in their simplest form. Thomas Harte 2016-12-24 15:18:03 -05:00
  • 4728bda0a2 Added an additional constructor to make sure that regular ints go to the correct place. Thomas Harte 2016-12-24 13:27:57 -05:00
  • 1e970a9772 Started stepping slowly towards allowing writing on the disk controller, taking the opportunity to introduce self-simplifying behaviour to Storage::Time. Thomas Harte 2016-12-24 13:07:23 -05:00
  • 42f25cdffc Merge branch 'master' into DiskWrites Thomas Harte 2016-12-22 22:47:19 -05:00
  • 393dc5c64f Merge pull request #87 from TomHarte/ElectronVideoFix Thomas Harte 2016-12-22 22:46:55 -05:00
  • 3805e3d17d Ensured base address is set properly at construction. Thomas Harte 2016-12-22 22:46:02 -05:00
  • 7028f57336 Simplified a little further. Thomas Harte 2016-12-22 18:13:10 -05:00
  • e4e0347638 Attempted to consolidate some of the repetition. Thomas Harte 2016-12-21 22:17:00 -05:00
  • 72ca06cf8d Added some extra tests, performed some basic tidying. Probably should do more. Thomas Harte 2016-12-21 19:54:19 -05:00
  • 6a0c7f22ee Added a few more tests. All passing. Thomas Harte 2016-12-20 21:46:34 -05:00
  • 03579f33f1 Fixed multi-coverage insertion, via an appropriate test. Thomas Harte 2016-12-20 21:38:32 -05:00
  • 7eca910cc5 Fixed insertion location finding logic, working on the relevant test. Thomas Harte 2016-12-20 21:14:05 -05:00
  • c180340474 Added two more passing tests and one that crashes. Thomas Harte 2016-12-20 19:25:58 -05:00
  • 823ab9bc34 Completed initial non-trivial test, fixing revealed errors. Thomas Harte 2016-12-20 19:15:36 -05:00
  • 5a508ea0df Attempted properly to cover the exactly-equal starts and ends cases, and to improve meaning. Thomas Harte 2016-12-20 18:32:49 -05:00
  • 63d861a2f3 Switched from C-in-the-brain manual offset counting to using iterators like an ordinary C++ person. Thomas Harte 2016-12-20 18:17:54 -05:00
  • 6f17076003 Switched to much more logical shared_ptr ownership of PCMSegmentEventSources by Periods. Thomas Harte 2016-12-20 18:13:10 -05:00
  • 497b2ae4dd Still by manual inspection: the time for the next event should be provisional until proven acceptable, allowing a proper measurement of time until exiting the period to be taken; also fixed the accumulated period error when seeking back onto the underlying track. Thomas Harte 2016-12-20 08:14:16 -05:00
  • 6bdde542c5 Edging towards functioning automatic tests, fixed right-period adjustment and slightly decreased searching cost while in the process of adding a test. Thomas Harte 2016-12-20 07:52:14 -05:00
  • ec624eaab1 Made an attempt fully to implement PCMPatchedTrack. Which now requires tests. Thomas Harte 2016-12-20 07:30:57 -05:00
  • 1ef1f6ec69 Attempted to implemnt seek_to and to finish add_segment. Started doing a little of get_next_event but ran out of time for the day. Thomas Harte 2016-12-19 21:46:02 -05:00
  • 8f937ceac8 Made an attempt to come up with a data structure that actually makes sense (though perhaps this is textbook list rather than vector stuff? I guess it depends on the frequency I expect inserts to occur versus reads) and to implement inserts. Though the Periods aren't yet honoured. Thomas Harte 2016-12-19 07:42:43 -05:00
  • 1df478d250 Removed dead header file. Thomas Harte 2016-12-18 23:04:16 -05:00
  • 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. Thomas Harte 2016-12-18 22:53:24 -05:00
  • a6354ebb01 Reimplemented PCMTrack to use PCMSegmentEventSource, eliminating code duplication. Thomas Harte 2016-12-18 21:37:05 -05:00
  • f9a5595dad Added seeking tests, correcting such errors as uncovered. Thomas Harte 2016-12-18 10:19:24 -05:00
  • 3297f6d545 Made an attempt to implement seek_to on PCMSegmentEventSource, taking account of off-by-half counting. Thomas Harte 2016-12-17 22:44:33 -05:00
  • 3116a2cf4c Realised I was actually testing PCMSegmentEventSource, not PCMSegment; implemented a spread of tests; hence fixed PCMSegmentEventSource. Thomas Harte 2016-12-17 21:47:13 -05:00
  • 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. Thomas Harte 2016-12-17 21:13:57 -05:00
  • 313db75303 Ensured the patchable track owns its underlying track. Thomas Harte 2016-12-17 18:17:22 -05:00
  • 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. Thomas Harte 2016-12-17 17:05:49 -05:00
  • f1a08b7ab5 Opted to pass times by reference and added enough to PCMPatchedTrack that it could start being used by the disk controller, albeit that it doesn't work. Thomas Harte 2016-12-17 16:26:45 -05:00
  • 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. Thomas Harte 2016-12-16 19:20:38 -05:00
  • 1e757d1039 Merge branch 'master' into DiskWrites Thomas Harte 2016-12-15 19:53:39 -05:00
  • ea1b3d447b Merge pull request #85 from TomHarte/ElectronRefactor Thomas Harte 2016-12-15 19:53:07 -05:00
  • 63107cd492 Tidied, very slightly. Thomas Harte 2016-12-15 19:49:25 -05:00
  • a555c5762a Rearranged code, hopefully into a more logical grouping. Thomas Harte 2016-12-15 19:47:04 -05:00
  • 4a7ddaf2e9 Added documentation and a quick note to self. Thomas Harte 2016-12-15 19:43:04 -05:00
  • f61176cd7d Reinstituted something of the don't-do-pixel-work-until-an-affecting-write-occurs optimisation. Thomas Harte 2016-12-15 19:20:14 -05:00
  • c1c70a767a Attempted fully to reinstate proper timing. Thomas Harte 2016-12-15 18:52:16 -05:00
  • 0326316bb8 Reinstated whole-frame counting. Thereby to reinstate proper interrupts. Thomas Harte 2016-12-15 18:09:49 -05:00
  • b58b11fc93 Switched to a table-based dispatch of line-by-line actions, primarily to simplify. Thomas Harte 2016-12-15 18:07:46 -05:00
  • fd541e1142 An early draft; dealing with the issue that not all cycles are necessarily consumed in a single call. Incomplete; broken. Committing for cross-machine visibility. Thomas Harte 2016-12-12 08:01:10 -05:00
  • be7e05e109 Started attempting to move total responsibility for display-related interrupts and RAM timing into the video. Thomas Harte 2016-12-11 18:34:49 -05:00
  • c5cf8d9531 Ensured the video subsystem correctly handles requests to run over a frame boundary. Thomas Harte 2016-12-11 16:17:51 -05:00
  • 52028432e1 Restored some semblance of output. Thomas Harte 2016-12-10 22:19:10 -05:00
  • 0aae1bd1ef Fixed calculation of termination cycle. Thomas Harte 2016-12-10 21:35:41 -05:00
  • c43e481a33 Started factoring video out of the Electron. Thomas Harte 2016-12-10 21:07:52 -05:00
  • 54b5056c74 Merge branch 'master' into DiskWrites Thomas Harte 2016-12-10 19:37:48 -05:00
  • 0653770c63 Merge pull request #84 from TomHarte/OricColour Thomas Harte 2016-12-10 19:37:17 -05:00
  • e62be03673 Removed endianness assumption. Thomas Harte 2016-12-10 19:10:33 -05:00
  • 34d213dec4 Decreased Y resolution, again also hopefully temporarily. Thomas Harte 2016-12-10 15:35:38 -05:00
  • 81a102d951 Upped intermediate buffer size, at least temporarily, while I look for the source of the interference patterns I'm seeing. Thomas Harte 2016-12-10 15:20:10 -05:00
  • a5683dfb21 Removed now untrue comment. Thomas Harte 2016-12-10 15:19:48 -05:00
  • 0e71802b92 Reduced Oric video to single nibble constants. Removed attempt at asynchronous flush as no longer required. Thomas Harte 2016-12-10 14:17:46 -05:00
  • 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. Thomas Harte 2016-12-10 13:55:56 -05:00
  • a549fd1ecc Introduced the ability simply to piggy-back off the CRT's natural phase for the colour burst, thereby eliminating a couple of redundant independent attempts in the Oric and Electron. Thomas Harte 2016-12-10 13:42:34 -05:00
  • e359441e2f Added a readme.txt for the omitted Oric ROMs. Thomas Harte 2016-12-09 22:18:11 -05:00
  • 6cdd41e5a9 Added direct use of the colour ROM, uploading 16 bits per pixel to contain the entire ROM composite wave. Thomas Harte 2016-12-09 22:17:10 -05:00
  • 3b5962b171 This is an initial attempt at using the actual Oric colour ROM values for composite video generation. Thomas Harte 2016-12-09 20:01:27 -05:00
  • c4041b06a8 This'll do as a write interface, won't it? Thomas Harte 2016-12-07 22:19:20 -05:00
  • 46ebae7e4b Merge pull request #83 from TomHarte/InterruptLine Thomas Harte 2016-12-06 21:21:35 -05:00
  • c304db0f5a Deintegrated the busy flag and the interrupt request line, as the latter is reset by status reads. Which also means I can start reporting the WD INTRQ line status directly from the Microdisc. That appears to be correct, rather than honouring the Microdisc IRQ select there. Thomas Harte 2016-12-06 21:16:29 -05:00
  • 4d3bdf8c7c Fixed failure to initialise the Microdisc flag if loading a tape. Thomas Harte 2016-12-06 20:29:05 -05:00
  • 0300ae4ec0 Merge pull request #82 from TomHarte/VideoRacing 2016-12-06 Thomas Harte 2016-12-06 19:13:05 -05:00
  • 5216dda675 Added some brief extra exposition to the texture builder, cut all internal tex_x/y and source_divider stuff from the CRT. Thomas Harte 2016-12-06 19:08:55 -05:00
  • 33d52bb573 Ensured no over-moving. Thomas Harte 2016-12-06 19:02:18 -05:00
  • 4ff33254e1 Sought to shift locking back up to the CRT. And to be a bit more RAII-ish. Thomas Harte 2016-12-06 18:48:30 -05:00
  • 60f9ddfde8 Fixed start test and added incrementation of start locations. Thomas Harte 2016-12-06 08:08:57 -05:00
  • f388ba11cc Missed an initialisation. Fixed! Thomas Harte 2016-12-06 07:26:23 -05:00
  • 0fee8096c1 Made an attempt to shuffle the texture builder to a similar flush/submit pattern as the input builder. Don't care about thread safety yet, as it's obvious I'm going to need to move that back up to the CRT. Thomas Harte 2016-12-06 07:24:07 -05:00
  • 0edc043378 Started introducing an extra layer of indirection so as to be able to bind the texture builder to the same flush and submit patern as the array builder. Thomas Harte 2016-12-03 20:47:19 -05:00
  • cb3c837e30 Simplified interface by baking in last-minute-only updates. Thomas Harte 2016-12-03 18:19:12 -05:00
  • ca50606e1d Restored Vic audio. Thomas Harte 2016-12-03 17:10:47 -05:00
  • 0220d33562 Resolved failure of initial state setting, which was causing tests sometimes to fail. Thomas Harte 2016-12-03 16:42:10 -05:00
  • 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. Thomas Harte 2016-12-03 16:06:15 -05:00
  • 875e6619cc Merge pull request #81 from TomHarte/Underscores Thomas Harte 2016-12-03 14:19:47 -05:00
  • ebb62a2d78 Switched the 2600 to postfix and non-camel-case instance variable names. Thomas Harte 2016-12-03 14:07:38 -05:00
  • b81c058c0a Factored out the Atari 2600's 6532 connection, as a low-hanging fruit. Thomas Harte 2016-12-03 13:41:55 -05:00
  • 3361d6b93a Factored out the Atari 2600 speaker and adjusted it to postfix underscores. Thomas Harte 2016-12-03 13:39:46 -05:00
  • 1b1a8d3e52 Brought the Vic-20 into suffix naming. Thomas Harte 2016-12-03 13:30:27 -05:00