Commit Graph

  • 0945049cd3 Made attempt to connect sync detect and then apply appropriate windowing, posting bytes to the appropriate place. Thomas Harte 2016-07-31 18:29:44 -04:00
  • 198fbbedc7 Reeled back all appropriate pieces of caveman debugging. Thomas Harte 2016-07-31 13:42:34 -04:00
  • 2332f72875 Formalised clock-rate multiplication within disk drives, discovered that the stepper didn't have ideal behaviour for my timed event loop and hence nailed down the semantics a ilttle more. Thomas Harte 2016-07-31 13:32:30 -04:00
  • 6ee784a893 Increased logging; discovered I was packing events together too closely. Now getting some zeros. Thomas Harte 2016-07-30 04:30:55 -04:00
  • fead524eb5 Attempted to give the PLL a litte extra leeway, and fixed PCMTrack length test. Thomas Harte 2016-07-29 18:52:50 -04:00
  • 8f62211f5e Wired up the 1540 as a PLL delegate. Which prima facie means it should start receiving a bit stream. Except that I clearly have something in the timing way off — either my flux transitions are far too short or I need to significantly increase the clock rate on the PLL. Thomas Harte 2016-07-29 12:08:18 -04:00
  • 89a1881fef Started turning the 1540 into an actual disk drive. Thomas Harte 2016-07-29 11:03:09 -04:00
  • 6532b3a8c8 Filled in a calculation of clocks per bit that'll do. Thomas Harte 2016-07-29 07:51:07 -04:00
  • f984de42a3 Took some small steps towards having a disk drive that at least can select a track and pump relevant events into a PLL. Thomas Harte 2016-07-29 07:31:02 -04:00
  • 0e581c7607 Factored out the stuff of running a timed event loop from the TapePlayer. Thomas Harte 2016-07-29 07:15:46 -04:00
  • 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. Thomas Harte 2016-07-29 05:19:01 -04:00
  • 5c1614ce7b Attempted to simplify, very slightly. Thomas Harte 2016-07-28 14:35:39 -04:00
  • 015cea494d Switched to a much-more straightforward PLL. I think I'm just fiddling now rather than moving forwards. Probably time to move on? Thomas Harte 2016-07-28 11:32:14 -04:00
  • e061e849d4 Had a second bash at the PLL. Probably I should read some of the literature. Thomas Harte 2016-07-27 16:24:24 -04:00
  • 63f39608a6 Added just enough to get back to a working build. Thomas Harte 2016-07-15 20:35:19 -04:00
  • 165dbd9651 Started fleshing this out a bit. Hopefully. Thomas Harte 2016-07-15 08:28:34 -04:00
  • 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. Thomas Harte 2016-07-15 06:51:11 -04:00
  • 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? Thomas Harte 2016-07-14 19:54:48 -04:00
  • 6afd619791 Eliminated floating point arithmetic. Thomas Harte 2016-07-14 19:47:00 -04:00
  • 6b4fec37ff Moved down to a single divide. Thomas Harte 2016-07-14 19:45:08 -04:00
  • 481475a0f4 Switched to a full-on linear regression. Which causes the current tests to pass. Thomas Harte 2016-07-14 19:42:01 -04:00
  • 6d6b26b99f Actually made things worse. Thomas Harte 2016-07-14 07:32:27 -04:00
  • d8d3464c56 Made a quick-hack attempt at PLL synchronisation. Which doesn't work. Thomas Harte 2016-07-14 07:31:23 -04:00
  • ac1bc588dd Improved factoring and increased window of testing, causing both the fast and slow tests to show framing errors. Thomas Harte 2016-07-14 07:12:02 -04:00
  • d1fe07f14d Added test of perfect DPLL input timing. Thomas Harte 2016-07-12 21:42:23 -04:00
  • 94db45456e Started sketching out the basic form here, albeit that it doesn't yet do _the only thing it advertises itself as useful for_. Thomas Harte 2016-07-12 20:23:56 -04:00
  • 75d95c0bc0 Sketched out an interface for a digial PLL. Not persuaded yet. Baby steps. Thomas Harte 2016-07-11 22:12:58 -04:00
  • d0200b6fd9 Merge pull request #40 from TomHarte/DiskFileFormats Thomas Harte 2016-07-10 18:37:44 -04:00
  • 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. Thomas Harte 2016-07-10 18:36:52 -04:00
  • 66895d3ac7 Actually, I think this is the correct conversion from received speed to clock rate. It'll become obvious if it's not when I get back to working on the 1541 itself. Thomas Harte 2016-07-10 18:24:12 -04:00
  • 19ee430d4a Made an effort to support zoned tracks, at least. Thomas Harte 2016-07-10 18:07:53 -04:00
  • ada2f073e0 Completed handing of the disk all the way to the 1540. Thomas Harte 2016-07-10 16:24:46 -04:00
  • 6593caca93 Switched to a probably more helpful way around of expecting bits in bytes. Thomas Harte 2016-07-10 16:21:52 -04:00
  • 845a00ccef Attempted via linear search to implement PCMTrack::get_next_event. Thomas Harte 2016-07-10 16:17:25 -04:00
  • f9510c1b67 Put sufficiently much of PCMTrack into place to get to a stored list of segments, having determined a common clock rate between them and therefore a complete track length. Thomas Harte 2016-07-10 16:10:05 -04:00
  • 4ae9f5ad5d Added preliminaries of reading the speed zone information. Thomas Harte 2016-07-10 13:42:45 -04:00
  • 8ae78ba4e0 Fixed signature check and fseek parameter order. Thomas Harte 2016-07-10 13:32:59 -04:00
  • 6cfc514c2d Made the rote changes necessary to attempt to open and to supply a G64 to the Vic. Thomas Harte 2016-07-10 12:57:17 -04:00
  • ff49857f5c Started sketching out support for the G64 file format. Thomas Harte 2016-07-10 10:17:53 -04:00
  • 9e3d6b762b Sketched out the generic interface for a disk, documenting it and the tape interface while I'm here. Thomas Harte 2016-07-10 08:54:39 -04:00
  • cf83258eaf Merge pull request #39 from TomHarte/1540 Thomas Harte 2016-07-10 08:06:04 -04:00
  • 11cd541786 Fixed accidental indentation. Thomas Harte 2016-07-10 08:05:05 -04:00
  • 4ca6883f7c Disabled attachment of a 1540 again, as I probably need to move to opening an actual disk image next. Thomas Harte 2016-07-10 08:03:36 -04:00
  • 824d9ea92b Added further comments. Thomas Harte 2016-07-10 08:01:16 -04:00
  • d8334edf4a Started trying to clean up, including commuting the C1540 source file name to match its class name but mainly by adding documentation. Thomas Harte 2016-07-10 07:46:20 -04:00
  • c0ab45a73d Disabled a bunch of the caveman debug logging. Thomas Harte 2016-07-09 22:29:11 -04:00
  • f589d639db Okay, so it seems that sync also works the other way around. Thomas Harte 2016-07-09 22:25:44 -04:00
  • 693c8b2438 After all that, it seems likely that inputs just aren't inverted for the Vic. Thomas Harte 2016-07-09 20:03:38 -04:00
  • 656cd211d7 Was transmitting bit levels backwards (probably?); 1540 now acknowledges byte received. Thomas Harte 2016-07-09 18:06:49 -04:00
  • 01746f0512 This is probably a valid test. But I'm not completely sure. Time to figure out what's happening on the 1540 end. Thomas Harte 2016-07-09 18:01:04 -04:00
  • cd84c35552 Whoops, one bit too short. Thomas Harte 2016-07-09 17:51:46 -04:00
  • cd362b46b3 This is a valid attempt to send a whole byte, I think. Thomas Harte 2016-07-09 17:51:04 -04:00
  • 3560babd7e Got back to a failing test, now while trying to transmit a whole byte. Good stuff! Thomas Harte 2016-07-09 17:39:51 -04:00
  • 66caa3c6dc Fixed setup of bridge class. Thomas Harte 2016-07-09 17:23:43 -04:00
  • bf03985ea4 Here's an instantly failing test... Thomas Harte 2016-07-09 17:22:10 -04:00
  • da6fe2e983 This should be enough of a shell to write some actual tests. Thomas Harte 2016-07-09 15:47:53 -04:00
  • 865eb421cd Quick on-disk tidy up. Thomas Harte 2016-07-09 15:44:55 -04:00
  • 7cc4bf3fe7 Hit and hope is getting me nowhere. Time to unit test this thing. Thomas Harte 2016-07-09 15:40:25 -04:00
  • 8827597363 Messier and messier, but I've at least attempted to implement hardware attention acknowledge. Thomas Harte 2016-07-08 19:00:39 -04:00
  • 9a08ef61cb Still fumbling in the margins: made an effort not to imply that the 1540 is forever reading syncs. Thomas Harte 2016-07-07 22:13:18 -04:00
  • 199c0e27e0 Mostly just random guesses now, to be honest. It's approaching the end of my window for the morning. Thomas Harte 2016-07-07 07:16:36 -04:00
  • 81e6cc34e5 Per the ROM disassembly, the Vic's VIA outputs are inverted for the benefit of the serial bus. Thomas Harte 2016-07-07 06:57:21 -04:00
  • c9479f923b The inversion of truth was clearly just a problematic API. Got explicit. LineLevel might need to become more pervasive. Thomas Harte 2016-07-07 06:44:13 -04:00
  • dcb86a027a Okay, so the 1540 doesn't toggle the actual attention line. I don't know what it does yet but this helps. Thomas Harte 2016-07-06 22:31:14 -04:00
  • 1baf21827c Since the ROM is well disassembled, let's actually try to be a 1541 first. Thomas Harte 2016-07-06 22:17:32 -04:00
  • 4f174786b5 Fixed potential buffer overrun. Thomas Harte 2016-07-06 21:39:09 -04:00
  • f64cd8cfcb Quick fixes properly to declare the DriveVIA, to ensure its interrupts take effect, and to wire ATN IN to CA1 rather than CB2. Thomas Harte 2016-07-06 20:22:46 -04:00
  • 428fcdb978 Centralised and improved serial logging. Thomas Harte 2016-07-06 07:46:21 -04:00
  • 8819711bc8 Threw in the second VIA as a currently clearly incorrect thing. Thomas Harte 2016-07-05 22:22:09 -04:00
  • 602e7f01c7 Control lines seem to have evolved to pure push. Thomas Harte 2016-07-05 21:15:29 -04:00
  • 93c2bb80a2 Improved a comment, added independent C[A/B]2 input mode. Thomas Harte 2016-07-05 21:11:51 -04:00
  • 6c4fa4ec5d Improved commenting and initial state communication. Thomas Harte 2016-07-05 20:57:31 -04:00
  • 1e6d90de17 Made an attempt properly to deal with initial bus state. Thomas Harte 2016-07-05 20:52:33 -04:00
  • 1bb109a23b Made a quick attempt at basic C[A/B]2 interrupts. Thomas Harte 2016-07-05 20:39:15 -04:00
  • c3b7d24293 It appears that the attention line is also wired to CB2. So the ball is back in the 6522's court. Thomas Harte 2016-07-05 19:19:46 -04:00
  • 11fc43aa04 Made an attempt to allow the 1540 to talk back to the Vic, and to receive interrupts. Also slightly disambiguated debugging logging. Thomas Harte 2016-07-05 19:12:43 -04:00
  • d16b79073e Further fleshing out: added a serial port for the serial bus. Thomas Harte 2016-07-05 17:27:02 -04:00
  • d1eea6943d Ensured the 1540 ROM gets installed, at least. Thomas Harte 2016-07-05 16:54:25 -04:00
  • 47548dcedc Fixed an erroneous #import. Thomas Harte 2016-07-05 16:39:31 -04:00
  • 86dabd007b Furthered fleshing out of the 1540. Though it doesn't yet receive a ROM so won't even attempt to do anything meaningful. Thomas Harte 2016-07-05 16:39:18 -04:00
  • a25fcc7190 Made a first attempt at wiring back serial port input. Thomas Harte 2016-07-05 16:10:54 -04:00
  • 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. Thomas Harte 2016-07-05 14:55:20 -04:00
  • 0d3d0fbe4d Created a namespace for Commodore and an empty container file for the 1540[/1] implementation. Thomas Harte 2016-07-05 13:28:27 -04:00
  • 1cc83dc0a0 Merge pull request #38 from TomHarte/VicJoystick Thomas Harte 2016-07-05 11:05:55 -04:00
  • 97751a9d86 Took the preliminary steps necessary to wire up a serial port. Thomas Harte 2016-07-05 10:55:47 -04:00
  • df4724eb3e Added a modal toggle allowing the keyboard to be switched between being a keyboard and being a joystick for the Vic. Thomas Harte 2016-07-04 22:01:07 -04:00
  • a49f2b41cc Added C++ side of things. I think. Thomas Harte 2016-07-04 21:48:25 -04:00
  • fef316932f Moved opening bracket appropriately. Thomas Harte 2016-07-04 21:14:28 -04:00
  • 8db44eed3e Added a default implementation of Speaker::skip_samples. Thomas Harte 2016-07-04 20:48:27 -04:00
  • bfa237397d Settled on assigning to nullptr as the appropriate style for emptying shared_ptrs; fixed the Vic properly to release its output resources. Thomas Harte 2016-07-04 20:34:11 -04:00
  • 6851a1b63b Merge pull request #37 from TomHarte/C++Style Thomas Harte 2016-07-04 19:36:42 -04:00
  • 88964ceac0 Eliminated plain pointer passing for object types. Thomas Harte 2016-07-04 19:33:55 -04:00
  • 6dbf16210b Switched protocol to meaningful name and corrected its omission from the repository. Thomas Harte 2016-07-04 19:19:07 -04:00
  • 82b0bc9b58 Discovered that this is another meaningful usage of using. Thomas Harte 2016-07-04 19:10:10 -04:00
  • df533874f0 Merge pull request #36 from TomHarte/Better6522 Thomas Harte 2016-07-02 19:07:35 -04:00
  • 7e5b631e30 Cut some dead code. Thomas Harte 2016-07-01 19:02:29 -04:00
  • 7fa010a463 Attempted to add support for the most basic of control line output, and slightly to optimise the Vic. Thomas Harte 2016-07-01 19:01:22 -04:00
  • 2bc87ee095 Merge branch 'master' of github.com:TomHarte/CLK Thomas Harte 2016-07-01 16:28:18 -04:00
  • eefd0c17b6 Actually, I guess that to fulfil the contract I can't silently decide not to draw if I'm being told I definitely need to draw. Thomas Harte 2016-07-01 16:27:45 -04:00
  • ed8f4d0476 Added some minor additional bits of documentation. Thomas Harte 2016-06-30 08:46:29 -04:00