Commit Graph

  • 063a62372f The Commodore serial bus and C1540 are now postfix underscorers. Thomas Harte 2016-12-03 13:14:03 -05:00
  • eb3a1fbfb7 Commuted remaining Electron underscores. It would be nice also to factor out the video, but the time hasn't come yet. Thomas Harte 2016-12-03 13:01:01 -05:00
  • 4fac538a57 Factored out the Electron's speaker and adjusted instance variable naming. Thomas Harte 2016-12-03 12:41:02 -05:00
  • d1d93829cf Factored out the Tape and switched it to postfix underscores. Thomas Harte 2016-12-03 12:18:08 -05:00
  • 3f7f2c6117 'Tape' has joined the new underscore orthodoxy. Thomas Harte 2016-12-03 12:05:19 -05:00
  • 0dc2aa6454 Commuted all of 'Storage' other than 'Tape' to postfix underscores. Thomas Harte 2016-12-03 11:59:28 -05:00
  • 5be22e2f8d Switched to suffix underscores and underscores in general for instance variables. Thomas Harte 2016-12-03 11:38:53 -05:00
  • c5016a3eaa Completed flight of 'Outputs' to postfix underscores. Thomas Harte 2016-12-03 11:02:34 -05:00
  • 2003b514aa Switched the typer to postfix underscores. Thomas Harte 2016-12-03 10:55:50 -05:00
  • 36bc558798 Converted all 'Components' to postfix underscores. Thomas Harte 2016-12-03 10:51:09 -05:00
  • a0043ec336 Merge pull request #80 from TomHarte/Microdisc Thomas Harte 2016-12-03 23:25:44 +08:00
  • 81ee834530 As well as a bunch of logging, reinstated rotation position preservation across tracks. Thomas Harte 2016-12-02 18:36:47 -05:00
  • 93c573bfa9 Implemented missing status bits (other than the index hole), and a head loading delay for the Microdisc. Thomas Harte 2016-12-01 21:13:16 -05:00
  • 0a0775c3bd Removed earlier hacky solution. Thomas Harte 2016-12-01 20:16:11 -05:00
  • 442986ee2c Introduced a head loading path for 1793 machines. Thomas Harte 2016-12-01 20:12:22 -05:00
  • 82899f2f47 Ensured flag setting is atomic, removed duplication of interrupt request versus busy, found better names for the personality testers, unified delegate protocol. Thomas Harte 2016-12-01 07:41:52 -05:00
  • b31fd11470 Fixed reporting of data request line, initial status values. Thomas Harte 2016-11-30 22:39:55 -05:00
  • 2222cb65d6 Split the status up into flags, assembled into a register upon demand. Attempted to implement some of the differences between the 1770/1772 and 1773/1793. Albeit with a motor fix still in place. Thomas Harte 2016-11-30 22:26:02 -05:00
  • 9b6c5e814a Now that it can be more explicit, this should admit that it's '93-based, not '73. Thomas Harte 2016-11-28 16:22:35 -05:00
  • 84cb07613d Checked some documentation more thoroughly; the 1793 has quite different spin-up (/head load) semantics. So it's another distinct personality. Grrr. Thomas Harte 2016-11-27 20:39:08 -08:00
  • 02ba1f220f The '72 seems to be a '70 with altered timing. So worth differentiating. Thomas Harte 2016-11-27 21:06:17 +08:00
  • 2c01f9dbed Added meaningful TODOs. Thomas Harte 2016-11-27 08:42:39 +08:00
  • f44542c18c Improved naming: this now explains what, not the mechanics of how. Thomas Harte 2016-11-26 23:35:11 +08:00
  • 2f459690d4 It would appear the 1770 and 1773 actually differ in relation to the (non-sensical) ability not to spin-up for a Type 2, and whether a side compare can occur. So the WD1770 class now requires a personality to be specified. Which it singly fails to honour. Thomas Harte 2016-11-26 23:29:30 +08:00
  • d8ecc52de8 Temporarily disabled spin-down as harmful to the status register if following anything other than a Type 1 command. Thomas Harte 2016-11-26 22:27:20 +08:00
  • 5c8ecd3051 It probably needs a better name, but hastily implemented track caching at the Disk level. Thomas Harte 2016-11-26 14:27:06 +08:00
  • 2f86b07cfa Added a parser for Oric-format MFM disks. Causing my first disk to load! Thomas Harte 2016-11-26 13:40:10 +08:00
  • dcfdd73077 Switched to more conventional runtime polymorphism, also now allowing encoders (shifters as were) to be obtained, as a slightly lower-level interface than vector-of-sectors. Thomas Harte 2016-11-26 13:39:20 +08:00
  • b180f04c87 Okay, so this file format wasn't what I hoped it was. It's another hack. Lots of work to do. Thomas Harte 2016-11-26 10:19:10 +08:00
  • 7613755f94 Fixed addressing: types are 1 and 2, not 0 and 1. Thomas Harte 2016-11-26 10:13:12 +08:00
  • b9677c9927 Consolidated interrupt request setting. Thomas Harte 2016-11-26 09:41:53 +08:00
  • e9d6566e9c Of course, changing the IRQ enable may immediately change the IRQ line. Signal if so. Thomas Harte 2016-11-26 09:35:44 +08:00
  • 73d30b9c00 Corrected typo. Thomas Harte 2016-11-25 21:30:45 +08:00
  • 12956901d6 Filled in some register mirrors. Thomas Harte 2016-11-25 21:28:11 +08:00
  • 54246c8f1a Interrupt enabling works the other way around I think, and both registers with only one bit defined should probably return '1' in all other places? Thomas Harte 2016-11-25 21:24:59 +08:00
  • d5f9e0aa3b Ensured there's no such thing as a zero-cycle operation, even if i don't yet know exactly what I should be doing. Thomas Harte 2016-11-25 21:24:25 +08:00
  • 8be81f6ebd Supplied disks are given to the Microdisc. Thomas Harte 2016-11-25 20:53:38 +08:00
  • 4af678d2ed Gave the Microdisc a clock signal, added just enough of force interrupt to avoid a spurious belief that a type 3 command has started. Thomas Harte 2016-11-25 20:51:39 +08:00
  • 5c019ad1c0 Okay, so it looks like both ROM paging flags are the opposite of what I previously had. Thomas Harte 2016-11-25 20:42:40 +08:00
  • 5be45c6c50 Ensured proper default behaviour. Thomas Harte 2016-11-25 20:30:27 +08:00
  • d33f3b9224 This is the broad strokes effort at enabling Microdisc emulation. Thomas Harte 2016-11-25 20:15:48 +08:00
  • 7c2d9f3752 This seems to be right, per http://wiki.defence-force.org/doku.php?id=oric:hardware:floppy_disk_controller_wd1793 Thomas Harte 2016-11-22 22:35:43 +08:00
  • 5ebc1c63ff Switched video to postfix underscores, for consistency. Thomas Harte 2016-11-22 22:28:45 +08:00
  • 707763f80b Added Microdisc storage to the Oric class, switching all instance storage to postfix underscore while I'm here. Thomas Harte 2016-11-22 22:22:00 +08:00
  • 0c3644f350 Made a second parse at logic. We'll see. Thomas Harte 2016-11-22 22:12:32 +08:00
  • 03843bf934 Unified delegates. Let's keep it easy for the caller. Thomas Harte 2016-11-22 22:11:11 +08:00
  • 13a608a8c2 Added what may be correct paging logic. Thomas Harte 2016-11-22 22:09:52 +08:00
  • 363db695e8 Started implementation of the Microdisc selection logic. Thomas Harte 2016-11-22 08:12:53 +08:00
  • 59e2a09107 Added assumption that Microdisc => BASIC 1.1. Thomas Harte 2016-11-22 08:12:24 +08:00
  • 09f965e6a9 Fixed potential bug whereby inserting a disk into a drive that hadn't been lazily allocated yet but had already been selected wouldn't take effect. Thomas Harte 2016-11-22 08:11:57 +08:00
  • ea33a28695 Any Oric-format disks that are inserted now make it all the way to the Oric, along with a request to emulate the Microdisc. It has received a copy of the ROM. The ball is entirely in its court now. Thomas Harte 2016-11-21 20:59:25 +08:00
  • fc1afe9351 Merge pull request #79 from TomHarte/OricDSK Thomas Harte 2016-11-21 20:51:48 +08:00
  • 8499783b14 Dragged multibyte primitives and signature checks up to the base class. Implemented support for Oric MFM-style .DSK, at the file format level. Thomas Harte 2016-11-21 20:47:16 +08:00
  • 31c2548804 Created a base class for the boilerplate fopen stuff, switched as many classes as possible to its use, switched to postfix underscores and non-camelCase names. Thomas Harte 2016-11-21 20:14:09 +08:00
  • efb53c292c Merge pull request #78 from TomHarte/WD1772Pins Thomas Harte 2016-11-21 13:25:49 +08:00
  • d4a1961378 Added getters for the IRQ and DRQ lines plus a delegate to receive changes; adjusted code so that the two lines signal. Thomas Harte 2016-11-21 13:21:49 +08:00
  • 4ec042fad1 Merge pull request #77 from TomHarte/LineBuffer Thomas Harte 2016-11-21 12:24:43 +08:00
  • 7c85cb62e4 Moved underscores, removed indirections where they're not necessary, converted those names that were still looking very Objective-C and moved the GL fence variable into the private area, where it should always have been. Thomas Harte 2016-11-21 12:14:52 +08:00
  • bc03e12dc5 Switched to suffix underscores. Thomas Harte 2016-11-21 11:57:45 +08:00
  • 340607e13e Switched the flywheel to suffix underscores. Thomas Harte 2016-11-21 11:48:31 +08:00
  • e1285028aa Removed a redundant clear and some dead code. Thomas Harte 2016-11-21 11:42:45 +08:00
  • 7b38247ab3 Updated outdated comments. Thomas Harte 2016-11-21 11:40:13 +08:00
  • d7d0ed378a Only the final intermediate buffer needs clearing, on reflection. Thomas Harte 2016-11-21 11:26:07 +08:00
  • c89345c639 Reduced buffer size. Thomas Harte 2016-11-21 11:21:14 +08:00
  • 32dbfe947d With hindsight, the elimination of this might have been overzealous. Thomas Harte 2016-11-20 10:53:35 +08:00
  • ef0367d4a4 Corrected typo. Thomas Harte 2016-11-20 09:12:43 +08:00
  • 5bc165960a Completed refactoring. Thomas Harte 2016-11-20 09:12:06 +08:00
  • fda90c5aef Documented. Thomas Harte 2016-11-20 09:11:24 +08:00
  • c2349ee3f4 This thing has clearly becoma a real class. Thomas Harte 2016-11-19 20:12:40 +08:00
  • 7857ef774f Ensured resets genuinely kill outstanding data. Thomas Harte 2016-11-19 20:09:38 +08:00
  • a4c7b00ecd Fixed code that was causing the failing test. Thomas Harte 2016-11-19 19:55:30 +08:00
  • be60eaa120 Added a test for pointer continuity over a submit. Which fails. Thomas Harte 2016-11-19 19:48:16 +08:00
  • 274ec9efb8 Added a test for interceding submit. Thomas Harte 2016-11-19 08:59:21 +08:00
  • 22cb8ecd75 Started building some tests of the array builder. Thomas Harte 2016-11-19 08:27:08 +08:00
  • f59537bce9 Added a testing hook, but as of yet no tests. Thomas Harte 2016-11-17 14:06:16 +08:00
  • aca1fa0577 Returned some video output. Enough significantly to reduce my paranoia. Thomas Harte 2016-11-17 13:37:53 +08:00
  • 1f91d29434 Progressed to usage of an array builder and a texture builder up to the point of a successful build. Thomas Harte 2016-11-17 12:26:04 +08:00
  • 0f3b02edb7 Switched to postfix underscores and gave this class ownership of a texture builder and an array builder, though it presently uses neither. Thomas Harte 2016-11-17 11:00:11 +08:00
  • 57f0648742 Fleshed out first implementation of ArrayBuilder, albeit that I need to implement exhaustion properly, as soon as I think of a sensible way to handle synchronisation. Thomas Harte 2016-11-17 10:39:30 +08:00
  • 324a1de43d Started pulling out array construction as a separate task. Thomas Harte 2016-11-17 09:20:49 +08:00
  • c04a116a05 Fixed comment. Thomas Harte 2016-11-16 23:14:56 +08:00
  • edeafd4d94 Wait, OpenGL textures go the other way. Thomas Harte 2016-11-16 23:14:15 +08:00
  • 6ac20e0066 Pushed responsibility for submitting texture contents up to the texture builder, simplifying the interface. Thomas Harte 2016-11-16 23:13:06 +08:00
  • 5c5e44874f Even better: why include the 'Input' prefix when there's only one? Thomas Harte 2016-11-16 22:57:17 +08:00
  • 04b2688683 Attempted to reduce allocations. Thomas Harte 2016-11-16 13:25:50 +08:00
  • c1a509910d Documented this interface, albeit that the English could do with a second pass, and very sightly simplified inline with current usage. Thomas Harte 2016-11-16 13:15:50 +08:00
  • 4d0d5eb919 Renamed the 'input buffer builder' to the 'input texture builder' to be explicit about what sort of buffer, and killed the prefix since it's namespaced. Also switched to std::vector. Thomas Harte 2016-11-16 12:31:32 +08:00
  • 4ee4400801 Removed dead code. Thomas Harte 2016-11-16 11:57:22 +08:00
  • 6cb4950db4 Improved run-off area. Thomas Harte 2016-11-16 11:53:15 +08:00
  • 9ee11d7765 At the expense of API simplicity, at least for now, resolved the most glaring cause of dirty lines. Thomas Harte 2016-11-16 11:34:05 +08:00
  • 44d3fd6d5b Fixed mistimed reset of the target output line. Now all that's left is occasional noise. Thomas Harte 2016-11-16 11:22:12 +08:00
  • 7a737e0790 Both pathways start with a buffer that clears to black. So no need to keep going on about it. Thomas Harte 2016-11-16 11:12:08 +08:00
  • f63e849092 Sought completely to eliminate the outgoing concept of 'clearing zones'. Thomas Harte 2016-11-16 11:10:34 +08:00
  • 311f8c0b47 Restored audio. Thomas Harte 2016-11-16 11:10:07 +08:00
  • 294adde344 Eliminated zoned clearing, in favour of a complete buffer clear on each load and attempted to reduce locking. But imperfectly. Thomas Harte 2016-11-16 10:59:12 +08:00
  • ccedb6bea6 Introduced an intermediate buffer that collects lines before flushing them to the output buffer. Thomas Harte 2016-11-16 10:49:18 +08:00
  • ba2adf8bb1 Normalised on std::vector rather than std::unique_ptr<uint8_t *> as (probably?) more idiomatic. Improved structure slightly. Introduced a container for line data, albeit one that isn't yet used. Thomas Harte 2016-11-16 10:34:54 +08:00
  • f84a28b566 Merge pull request #76 from TomHarte/Disassembler Thomas Harte 2016-11-15 19:52:12 -05:00
  • 97811fe590 Made minor fix to ensure that a header that appears to extend beyond the end of an Oric .TAP doesn't create an ostensibly endless tape. Thomas Harte 2016-11-15 12:02:03 +08:00
  • 8b40ae03ca Extended analysis to spot IRQ and NMI vector changes, for titles that simply adjust those then exit. Ensured Oric emulator can type and load quickly on an Oric 1 just as well as on an Atmos. Thomas Harte 2016-11-15 11:05:53 +08:00