Commit Graph

  • 4db086949a Made an attempt to add MFM decoding to the 1770; ensured something is returned when reading the Plus 3 status register again. Thomas Harte 2016-09-25 21:38:52 -04:00
  • 572d5587d9 Made a first stab at enabling multi-disk machines and thereby obeying (some of) the Plus 3's status register. Thomas Harte 2016-09-25 21:24:16 -04:00
  • 9bbcbd1001 Renamed class, intending to turn a Disk::Drive into literally just that, and have a thing with a PLL that consumes events be a Controller. Thomas Harte 2016-09-25 20:05:56 -04:00
  • 7f4c78139c Attempted to ensure that ADFS disks get to an appropriately-configured Electron. Not immediately sure why the shift press isn't working; doesn't need to be dealt with immediately. Thomas Harte 2016-09-25 19:59:46 -04:00
  • 523dbb9678 This'll do for getting the ADF into the machine. Thomas Harte 2016-09-25 18:32:26 -04:00
  • de863719d0 Made a first attempt at Acorn ADFS support plus the start of a suitable analyser. Thomas Harte 2016-09-25 17:46:11 -04:00
  • 6084020ab3 Added shift-break as a better way to boot suitable disks. Continued attempting to clean the 1770. Thomas Harte 2016-09-25 14:11:22 -04:00
  • a538b45213 Sought to implement the verify step of type 1 commands. Thomas Harte 2016-09-25 09:54:49 -04:00
  • 67b54269c9 Added typer support for loading from DFS. It'll do for now. Thomas Harte 2016-09-24 22:52:49 -04:00
  • 0918751802 Fixed stepping out. Thomas Harte 2016-09-24 22:48:45 -04:00
  • 9e1d4c8b01 Fixed an initial setup error with seek. Thomas Harte 2016-09-24 22:43:12 -04:00
  • d50629e6aa This is clearly the winning solution. Edited down. Thomas Harte 2016-09-24 22:36:38 -04:00
  • 07ff5138b7 The catalogue now loads. Thomas Harte 2016-09-24 22:35:34 -04:00
  • 1b69ad0fd4 This attempts to implment sector reading. DFS reports an error. Thomas Harte 2016-09-24 22:29:02 -04:00
  • ce4100e5b9 Fixed slots for DFS and ADFS to sideways RAM; continued working on the 1770 to get as far as trying to get the body of a sector. Thomas Harte 2016-09-24 22:04:54 -04:00
  • 7154e8986e Fixed stepping delay. Thomas Harte 2016-09-24 20:16:23 -04:00
  • 53522e28e2 Performed an about-face on how this should probably be implemented. Now forsaking the state machine in favour of a macro'd switch-for-cooperative-event-based-messaging implementation. Let's see how this ends up looking. Thomas Harte 2016-09-24 20:12:45 -04:00
  • 88bbeedad3 Set actual bit length. Thomas Harte 2016-09-22 21:28:23 -04:00
  • 75eb62b577 One painful step at a time, this now starts the disk rotating and gets as far as deciding whether it's about to head off on a read or a write. Thomas Harte 2016-09-22 21:25:31 -04:00
  • 8db0030068 Fixed ROM loading by the Electron, turned the WD1770 into a 'disk drive' (it'll do for now), persuaded it to get all the way through a very specifically convenient type 1 command. Thomas Harte 2016-09-20 22:14:33 -04:00
  • 7a34ae0da6 This is the start of my slog through type 1 commands. I kind of need to figure out what I'm doing about drives and PLLs now though. Thomas Harte 2016-09-20 16:58:23 -04:00
  • 3b97b038b9 Corrected and sketched out state machine far enough to get to a complaint about unhandled work. Thomas Harte 2016-09-20 15:56:31 -04:00
  • e358057440 Added a WD1770 run_for_cycles call. So I really can now move that as far as reporting that it has no disk? Thomas Harte 2016-09-20 07:42:17 -04:00
  • cd5939501f Treading water some more, ensured the DFS and ADFS ROMs get to the Electron. It now even inserts the DFS ROM if it has a DFS disk image. Might need to make it a sideways RAM though? Regardless, the next job surely — surely! — has to be to stop avoiding the 1770? Thomas Harte 2016-09-20 07:36:57 -04:00
  • a9e65e9b7a Tweaked disk side density, added call-outs to a WD1770 if the Electron had one (albeit without run_for_cycles yet as I need to figure out the clock rate), added a shell of the basic functions of the WD1770. No implementation yet. Thomas Harte 2016-09-19 22:06:56 -04:00
  • c9dd07cecd DFS disks are now delivered right up to the emulator's front door. So everything's in place to get started on that WD1770 nonsense. Thomas Harte 2016-09-19 08:29:23 -04:00
  • e025768604 Two passes of the index hole => no sector found. Thomas Harte 2016-09-19 08:17:07 -04:00
  • 64f2538b1f Added CRC checking to DFS comprehension; fixed a bunch of places where I'd used Objective-C's #import rather than #include. Thomas Harte 2016-09-19 08:16:06 -04:00
  • c58cdbf151 Minor tweak to support zero-length files. Thomas Harte 2016-09-19 07:37:11 -04:00
  • ca4df5dd61 Introduced a full container for disk catalogues, so as also to capture non-file information, and 'completed' (i.e. albeit that CRC checking is still absent) DFS catalogue decoding. Thomas Harte 2016-09-19 07:35:02 -04:00
  • 8a1b805d11 Fixed file offset calculation for single-sided images. Thomas Harte 2016-09-19 07:34:10 -04:00
  • 231f3dd0f4 This is exactly as far as I'm going to get with DFS parsing today, I think. Thomas Harte 2016-09-18 22:18:01 -04:00
  • b1e7f2dfd0 There's no cache and no CRC checking yet, but this is probably a rough outline of an FM parser. Thomas Harte 2016-09-18 22:03:06 -04:00
  • fbcb59d47a A policy change trial: let the person above deal with any error. Thomas Harte 2016-09-18 21:18:41 -04:00
  • 0ce901bd48 Added necessary wiring to get as far as asking an arm of the analyser to check out an Acorn disk image. Thomas Harte 2016-09-18 21:18:11 -04:00
  • d1c861d3a5 That should be that, I hope. Thomas Harte 2016-09-18 21:09:32 -04:00
  • 02c9a82cb5 Edging towards SSD/DSD support. Hold on! Thomas Harte 2016-09-18 19:32:08 -04:00
  • 91cd7e143b Started on the SSD/DSD support. Realised I had ommitted multiple head support from my disk class. Fixed that. Thomas Harte 2016-09-18 19:21:02 -04:00
  • 5409c8ec54 Switched PCMSegments to std::vector; ensured generated [M]FM tracks are correctly sized, thereby making sure the individual flux windows will be correctly sized. Thomas Harte 2016-09-18 18:56:35 -04:00
  • d9aaf456f0 Adapted pervasively to MSB-first output. Which seems to be correct. Thomas Harte 2016-09-18 18:46:58 -04:00
  • 5ebca62bba Now the CRC is a factoring out. Thomas Harte 2016-09-18 18:35:50 -04:00
  • 180c3df2d4 Calling it 'number theory' probably isn't accurate but extracted the CRC stuff and started using it for [M]FM encoding. Thomas Harte 2016-09-18 18:33:26 -04:00
  • 55a7418cbf Parameterised to perform FM and MFM encodings, at least subject to CRCs still being missing. Thomas Harte 2016-09-18 17:16:20 -04:00
  • 22eed60d2b Started sketching out basic MFM track encoding. Which possibly even means that the shifters don't need to be public? Thomas Harte 2016-09-18 16:53:21 -04:00
  • 0089c830c6 This possibly correctly encapsultes the lowest level of FM and MFM rules. Thomas Harte 2016-09-18 14:17:06 -04:00
  • bcf91de7e9 Declared support for the Acorn disk files, started hammering out an encoder. Thomas Harte 2016-09-18 13:35:54 -04:00
  • 0e44cfa8a1 Merge branch 'master' into WD1770 Thomas Harte 2016-09-18 10:34:11 -04:00
  • 656d0c7a69 Merge pull request #50 from TomHarte/FasterDisk Thomas Harte 2016-09-18 10:33:16 -04:00
  • 6454508db8 Added a quick bit of documentation. Thomas Harte 2016-09-18 10:30:52 -04:00
  • 65b568003d Clarified TODO. Thomas Harte 2016-09-18 10:29:45 -04:00
  • 8c2bf099ad Cut down to one GCD and clarified variable names, getting more explicit about what's going on. Thomas Harte 2016-09-18 10:24:09 -04:00
  • 6f0b9adc3d Factors.cpp is dead. Thomas Harte 2016-09-18 10:23:34 -04:00
  • 48317f3b77 Templated these two methods, so as no longer to put a constraint on precision. Thomas Harte 2016-09-18 10:23:15 -04:00
  • 79ef38b123 Attempted to use the new get_cycles_until_next_event method to take some repetition outside of the PLL and drive event loops. Thomas Harte 2016-09-17 22:02:38 -04:00
  • bfed9585b8 Added a sector cache to avoid having to re-decode things five times over. Thomas Harte 2016-09-17 22:01:54 -04:00
  • dbb758aaf1 Workaround for a weird bug that suddenly appears to manifest: gzgetc is returning the file name, not bytes from the file. Seems to be related to improper initialisation of the next field within the gzFile header. I can't immediately see where ZLib intends to do that so it's a bit mysterious. But the larger-than-8 readers could probably save time by reading in blocks anyway. Thomas Harte 2016-09-17 22:01:25 -04:00
  • 14a9edcf5d Made an attempt to do the time base conversion upfront, saving a lot of hassle and allowing greater prediction. Thomas Harte 2016-09-17 19:52:27 -04:00
  • a98374995e Cleaned up pre-analysis code. Thomas Harte 2016-09-17 18:19:32 -04:00
  • b7e353cad5 Merge branch 'master' of github.com:TomHarte/CLK Thomas Harte 2016-09-17 18:13:06 -04:00
  • 142254a478 Resolved failure to open disks that arrive through analysis. Thomas Harte 2016-09-17 18:11:58 -04:00
  • 788df09f71 Merge pull request #49 from TomHarte/Xcode8 Thomas Harte 2016-09-17 18:10:43 -04:00
  • e3daf80564 Added a file for the 1770, at least. Thomas Harte 2016-09-17 18:01:00 -04:00
  • 7c65c69e0f Migrated to Swift 3. Thomas Harte 2016-09-15 22:12:12 -04:00
  • cc66e1973f Merge pull request #48 from TomHarte/FasterLoading Thomas Harte 2016-09-15 19:38:23 -04:00
  • ee8510984f Added just enough wiring to restore the 2600 to functionality. Thomas Harte 2016-09-15 19:34:45 -04:00
  • 92af19098c Improved file naming. Thomas Harte 2016-09-15 19:24:59 -04:00
  • 1d8fbe9068 With minor cleaning, this should now do Commodore disks correctly (?) Thomas Harte 2016-09-15 19:21:09 -04:00
  • 9827466297 Minor post-haste cleaning. Thomas Harte 2016-09-15 07:58:32 -04:00
  • 8992feb8cd Completed a first parse at the GCR parser, proving how incredibly slow my drive is. Thomas Harte 2016-09-15 07:54:42 -04:00
  • 9d6dcb80a7 Started work on a GCR parser and the helper functions that lie behind that. Thomas Harte 2016-09-13 21:53:36 -04:00
  • df7aed7e8b The Commodore analyser now at least hands off to somebody else a chance to parse disks. Thomas Harte 2016-09-13 07:26:51 -04:00
  • e3571e8b9e Added insurance against an infinite loop should the tape be exhausted. Thomas Harte 2016-09-12 22:22:23 -04:00
  • c3a795328d Windows have titles again. Also I've owned up to not knowing how to edit UEFs right now. Thomas Harte 2016-09-12 22:15:38 -04:00
  • 40660fe680 Made yet another guess at Commodore analysis. Elevated fast tape-related unnatural speed up to the OS-side mechanisms. Thomas Harte 2016-09-12 22:06:03 -04:00
  • e54a2326a3 Made attempt to run at zero cost while processing tape input. Thomas Harte 2016-09-11 17:34:02 -04:00
  • eeec516fa6 Implemented seeking on tapes, mucked about a bit more with the Commodore analyser, at least temporarily removed cropping from the Vic emulator. Thomas Harte 2016-09-11 17:09:00 -04:00
  • 1ca4a2a012 Sought to be more intelligent in handling cases where the two parts of a header or data field don't match — if either looks good then use it in isolation. Thomas Harte 2016-09-10 17:01:17 -04:00
  • a5b17932ca Attempted further to improve memory model guesswork. With many further improvements to make... Thomas Harte 2016-09-08 21:09:37 -04:00
  • 27fedaf892 The error flag is no longer directly exposed. I also tweaked the Commodore import numbers just a touch. But I think I need proper calibration. Thomas Harte 2016-09-08 21:09:05 -04:00
  • 1de6097f06 Shuffled C stuff out on top. Thomas Harte 2016-09-08 21:08:03 -04:00
  • 24251a2768 Negligible indentation fix. Thomas Harte 2016-09-08 07:49:43 -04:00
  • 01e5dae512 Threw in 300-baud support. Why not? Thomas Harte 2016-09-08 07:48:20 -04:00
  • 3e925e80a3 Added a field-filling constructor for pulses. Thomas Harte 2016-09-08 07:41:44 -04:00
  • 1e7b5330f5 More or less rewrote, to use a filled-per-chunk buffer of upcoming pulses rather than working them out as requests come. Which is more straightforward — all the code for a particular chunk goes in exactly one place — and much easier to extend. So threw in a provisional 0104 implementation. Thomas Harte 2016-09-08 07:41:26 -04:00
  • 2b053436e5 Missed from previous commit; removed assumption that get_next_data always succeeds. Thomas Harte 2016-09-08 07:39:43 -04:00
  • 54557d7f13 Added reminder, ensured the couldn't-find-data case doesn't cause a crash. Though it should imply some manual investigation. Thomas Harte 2016-09-08 07:39:17 -04:00
  • 908dc40569 If loading automatically, assume that whatever was in the machine target set up the machine and don't override it. Too dodgy? More thought required. Thomas Harte 2016-09-08 07:38:34 -04:00
  • 8c84f3581a Attempted to bring some uniformity in application of configurations. Thomas Harte 2016-09-08 05:32:17 -04:00
  • 50175a9aed Added logic to try to spot when the first program is BASIC and, if so, what the correct memory model is, then to get that information to the Vic. Though it currently then gets overwritten by the view controller. Grrrr. Thomas Harte 2016-09-07 22:17:19 -04:00
  • 556b77f2fd Added some TODOs, re-enabled master Acorn decision. Thomas Harte 2016-09-07 07:39:47 -04:00
  • 6522a9a6c2 Pulled the strands together provisionally to complete Commodore ROM-format tape parsing. Things are going to get complicated if or when I need to tackle turbo loaders. Thomas Harte 2016-09-07 07:34:48 -04:00
  • d66516fd62 Finished parser for data blocks. Thomas Harte 2016-09-06 22:10:33 -04:00
  • d7d5f24aab Attempted, at least, to insert a dummy byte as per the specification. Thomas Harte 2016-09-06 21:51:04 -04:00
  • bdebc18e0a Added a header parser for Commodore tapes. No time to grab file bodies now; time to go to work. Thomas Harte 2016-09-06 08:49:32 -04:00
  • 8901e94f0f Fixed: was counting between low->high transitions rather than vice versa by adding low time then checking. Thomas Harte 2016-09-06 07:06:46 -04:00
  • 149cbb327b Made something of a first attempt at a parser. Which is failing terribly. Thomas Harte 2016-09-06 06:59:51 -04:00
  • 8b933182af Added enough wiring (hopefully) that the Commodore tape's GetFiles should be called when appropriate. Thomas Harte 2016-09-06 06:39:40 -04:00
  • cfe8251166 Further documented interface, fixed a potential parsing blockage. Thomas Harte 2016-09-05 22:12:52 -04:00
  • 963e307d0c Increased documentation. Thomas Harte 2016-09-05 22:06:39 -04:00
  • 05c24222d8 Liberated the tape parser template. Thomas Harte 2016-09-05 20:02:35 -04:00