1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-12-30 19:30:17 +00:00
Commit Graph

1124 Commits

Author SHA1 Message Date
Thomas Harte
9d76cd9b60 Removed dead instance storage. 2016-08-04 21:41:12 -04:00
Thomas Harte
b46355331c Merge pull request #43 from TomHarte/NonSkippingTracks
Sought to prevent a reset of angular position when changing tracks
2016-08-04 21:39:18 -04:00
Thomas Harte
3e90b85ff8 Made an attempt to insert proper conversions to/from rotational speed. The Time class is now really turning into a full-on quotient. Might need refactoring. 2016-08-04 21:36:39 -04:00
Thomas Harte
e57ab1025d Fixed location calculation, up to a point. 2016-08-03 22:33:00 -04:00
Thomas Harte
9af9b28baf Made very first attempt at closing the loop on this. But it's time for work. 2016-08-03 08:16:23 -04:00
Thomas Harte
e15241dc3c Added ability to query how long since the new interval was set to the timed event loop. Discovered that LCM will returning the net effect of the common factors only. Otherwise continued iterating towards time preservation. 2016-08-03 07:49:00 -04:00
Thomas Harte
a3a3486f54 Okay, it's becoming more apparent where the (very mild) complexity will be here. But started moving towards retaining rotation between tracks. 2016-08-03 07:33:26 -04:00
Thomas Harte
21f1fa37a4 Fixed Time addition, added accumulation of distance into track into the disk drive, added a short circuit for LCM. 2016-08-03 07:26:05 -04:00
Thomas Harte
30f8b6baa4 Made an attempt to add the necessary extension to Track, with a concrete implementation in PCMTrack, to support time-based seeking, the intended mechanism for not magically spinning the disk back to the index hole upon every head step. 2016-08-03 06:59:45 -04:00
Thomas Harte
d832e5e10d Reduced 1540 PLL to running at 4Mhz. Which is possibly correct (?) Made minor change to avoid divide if possible. 2016-08-02 21:28:50 -04:00
Thomas Harte
5d40d70c92 Fixed 6560 addressing error, added an autotyper for Vic disks (more work potentially needed), fixed semantics for testing whether a 6502 is about to reset. 2016-08-01 10:32:32 -04:00
Thomas Harte
d74c3760fb Update README.md
Added the Commodore 1540 as an emulated machine, given that it has a CPU and all.
2016-08-01 10:19:25 -04:00
Thomas Harte
95a3c42407 Merge pull request #42 from TomHarte/D64
Adds support for the .d64 file format
2016-08-01 10:13:22 -04:00
Thomas Harte
bc10b3ee9a It appears the problem is as simple as sectors being counted from zero. 2016-08-01 10:08:38 -04:00
Thomas Harte
f5e4ea3351 Some minor tidying, lots more of the caveman stuff as I try to determine what I'm doing wrong. 2016-08-01 09:43:08 -04:00
Thomas Harte
a00f9adba3 Made a first attempt at D64 support. Made an error somewhere but this should be 90% of it. 2016-08-01 08:41:16 -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
ee2a7c9415 Added slightly to exposition, to match other formats. 2016-08-01 06:54:57 -04:00
Thomas Harte
2799a87218 Reduced possibility of overflow on LCM, improved commenting widely, removed one stale piece of G64 bootstrapping caveman stuff. 2016-08-01 06:04:55 -04:00
Thomas Harte
a2ca94431e Merge pull request #41 from TomHarte/DiskDrive
Implements something of the foundation for disk drive emulation
2016-08-01 04:43:07 -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
b43a7381ae Fixed framing and first-byte-after-sync signalling. Hacked together as parts of it are, loading now appears to work! 2016-08-01 04:25:11 -04:00
Thomas Harte
41893b5ef6 Put in the absolute minimum logic for drive motor emulation. Drive appears to be attempting head steps. 2016-07-31 19:38:51 -04:00
Thomas Harte
740ea0b7e2 Added overflow-flag setting logic and ensured disk ROM gets through regardless of ROM/disk installation order. 2016-07-31 19:33:18 -04:00
Thomas Harte
0945049cd3 Made attempt to connect sync detect and then apply appropriate windowing, posting bytes to the appropriate place. 2016-07-31 18:29:44 -04:00
Thomas Harte
198fbbedc7 Reeled back all appropriate pieces of caveman debugging. 2016-07-31 13:42:34 -04:00
Thomas Harte
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.
(obiter: the 1540 now appears to discern the correct sequence of bits. Framing is off in my test printfs but that's neither here nor there).
2016-07-31 13:32:30 -04:00
Thomas Harte
6ee784a893 Increased logging; discovered I was packing events together too closely. Now getting some zeros. 2016-07-30 04:30:55 -04:00
Thomas Harte
fead524eb5 Attempted to give the PLL a litte extra leeway, and fixed PCMTrack length test. 2016-07-29 18:52:50 -04:00
Thomas Harte
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. 2016-07-29 12:08:18 -04:00
Thomas Harte
89a1881fef Started turning the 1540 into an actual disk drive. 2016-07-29 11:03:09 -04:00
Thomas Harte
6532b3a8c8 Filled in a calculation of clocks per bit that'll do. 2016-07-29 07:51:07 -04:00
Thomas Harte
f984de42a3 Took some small steps towards having a disk drive that at least can select a track and pump relevant events into a PLL. 2016-07-29 07:31:02 -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
5c1614ce7b Attempted to simplify, very slightly. 2016-07-28 14:35:39 -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
63f39608a6 Added just enough to get back to a working build. 2016-07-15 20:35:19 -04:00
Thomas Harte
165dbd9651 Started fleshing this out a bit. Hopefully. 2016-07-15 08:28:34 -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
6afd619791 Eliminated floating point arithmetic. 2016-07-14 19:47:00 -04:00
Thomas Harte
6b4fec37ff Moved down to a single divide. 2016-07-14 19:45:08 -04:00
Thomas Harte
481475a0f4 Switched to a full-on linear regression. Which causes the current tests to pass. 2016-07-14 19:42:01 -04:00
Thomas Harte
6d6b26b99f Actually made things worse. 2016-07-14 07:32:27 -04:00
Thomas Harte
d8d3464c56 Made a quick-hack attempt at PLL synchronisation. Which doesn't work. 2016-07-14 07:31:23 -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
94db45456e Started sketching out the basic form here, albeit that it doesn't yet do _the only thing it advertises itself as useful for_. 2016-07-12 20:23:56 -04:00