1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-26 23:52:26 +00:00
Commit Graph

187 Commits

Author SHA1 Message Date
Thomas Harte
eb8a2de5d6 Settled definitively on flush as more communicative than synchronise (and slightly more locale neutral); culled some more duplication from the Z80. 2017-05-15 07:38:59 -04:00
Thomas Harte
0808e9b6fb Pulled the 6502 into a CPU namespace, making it an instance of something that has micro-opcodes and schedules them, and factoring out the formulation of a register pair. 2017-05-14 22:08:15 -04:00
Thomas Harte
e01f3f06c8 Completed curly bracket movement. 2017-03-26 14:34:47 -04:00
Thomas Harte
f3d9aec8fc Fixed Electron's support for automatically booting floppy disks. 2017-01-08 14:47:41 -05:00
Thomas Harte
a555c5762a Rearranged code, hopefully into a more logical grouping. 2016-12-15 19:47:04 -05:00
Thomas Harte
f61176cd7d Reinstituted something of the don't-do-pixel-work-until-an-affecting-write-occurs optimisation. 2016-12-15 19:20:14 -05:00
Thomas Harte
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. 2016-12-12 08:01:10 -05:00
Thomas Harte
be7e05e109 Started attempting to move total responsibility for display-related interrupts and RAM timing into the video. 2016-12-11 18:34:49 -05:00
Thomas Harte
c5cf8d9531 Ensured the video subsystem correctly handles requests to run over a frame boundary. 2016-12-11 16:17:51 -05:00
Thomas Harte
c43e481a33 Started factoring video out of the Electron. 2016-12-10 21:07:52 -05:00
Thomas Harte
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. 2016-12-10 13:42:34 -05:00
Thomas Harte
eb3a1fbfb7 Commuted remaining Electron underscores. It would be nice also to factor out the video, but the time hasn't come yet. 2016-12-03 13:01:01 -05:00
Thomas Harte
4fac538a57 Factored out the Electron's speaker and adjusted instance variable naming. 2016-12-03 12:41:02 -05:00
Thomas Harte
d1d93829cf Factored out the Tape and switched it to postfix underscores. 2016-12-03 12:18:08 -05:00
Thomas Harte
2003b514aa Switched the typer to postfix underscores. 2016-12-03 10:55:50 -05:00
Thomas Harte
311f8c0b47 Restored audio. 2016-11-16 11:10:07 +08:00
Thomas Harte
338904fffe Made similar cleanings of the Electron and Vic. 2016-11-05 15:07:57 -04:00
Thomas Harte
9fb9d92437 Made the typer much more able to help out, and thereby tidied and separated the Oric's typer. 2016-11-05 14:47:09 -04:00
Thomas Harte
7843a244b0 Ensured emulation doesn't enter an infinite loop if the user attempts to read beyond the end of a tape. 2016-10-28 22:23:25 -04:00
Thomas Harte
de658b70d7 That's thread safety, subject to the async task queue being made to work... 2016-10-07 17:02:36 -04:00
Thomas Harte
2d26feb073 Added mappings for the previously-missing characters @, [ and ]. 2016-10-04 22:03:53 -04:00
Thomas Harte
f9ee6803df It's likely this should be set at startup too, based on latest info. 2016-10-03 22:16:10 -04:00
Thomas Harte
97304e22f0 Adjusted per tests on StarDot; it appears the tape interrupts may fire during audio output, as if in tape output mode. 2016-10-03 20:03:14 -04:00
Thomas Harte
dae6b45464 Ensured the always-on bit of the interrupt status register is indeed on. 2016-10-03 19:15:31 -04:00
Thomas Harte
79412dc84d Upped MFM clock cycles, switched back to using the typer for the ADFS and adjusted ADFS ROM slots. 2016-09-28 21:28:34 -04:00
Thomas Harte
4db086949a Made an attempt to add MFM decoding to the 1770; ensured something is returned when reading the Plus 3 status register again. 2016-09-25 21:38:52 -04:00
Thomas Harte
572d5587d9 Made a first stab at enabling multi-disk machines and thereby obeying (some of) the Plus 3's status register. 2016-09-25 21:24:16 -04:00
Thomas Harte
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. 2016-09-25 20:05:56 -04:00
Thomas Harte
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. 2016-09-25 19:59:46 -04:00
Thomas Harte
6084020ab3 Added shift-break as a better way to boot suitable disks. Continued attempting to clean the 1770. 2016-09-25 14:11:22 -04:00
Thomas Harte
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. 2016-09-24 22:04:54 -04:00
Thomas Harte
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. 2016-09-20 22:14:33 -04:00
Thomas Harte
3b97b038b9 Corrected and sketched out state machine far enough to get to a complaint about unhandled work. 2016-09-20 15:56:31 -04:00
Thomas Harte
e358057440 Added a WD1770 run_for_cycles call. So I really can now move that as far as reporting that it has no disk? 2016-09-20 07:42:17 -04:00
Thomas Harte
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? 2016-09-20 07:36:57 -04:00
Thomas Harte
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. 2016-09-19 22:06:56 -04:00
Thomas Harte
21e5f407d8 I need to get a bit more definitive on naming but this gets all the way to setting a configuration upon an Electron. 2016-08-31 22:03:42 -04:00
Thomas Harte
c0402d0c2b Gave tapes their own namespace. 2016-08-27 17:09:45 -04:00
Thomas Harte
d9016909ed Added some wiring for PAL/NTSC mode switching on the Vic, making an attempt to simplify the whole loop of having different clock rates. 2016-08-14 13:33:20 -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
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
88964ceac0 Eliminated plain pointer passing for object types. 2016-07-04 19:33:55 -04:00
Thomas Harte
0182b0483a Added a 'power on' flag that is set automatically at construction but can be declined. Saves all that stuff of every machine having to set and then unset the RST line, and fixes an Electron bug related to that. 2016-06-29 19:13:24 -04:00
Thomas Harte
37ba42a52f Factored out the stuff of playing a tape, started basic sketch of the Vic-related classes. 2016-06-26 19:03:57 -04:00
Thomas Harte
2bd71e7e9b .reset is the more normal way to reassign a unique_ptr. 2016-06-23 20:52:44 -04:00
Thomas Harte
b6dd38dad3 Corrected type safety warning. 2016-06-19 21:41:01 -04:00
Thomas Harte
6dd8ea67c9 Tested and trimmed delay on typing if resetting. 2016-06-19 17:27:23 -04:00
Thomas Harte
05cb47709e Implemented Utility::Typer for the Electron. So that now also receives pastes. 2016-06-19 17:25:35 -04:00
Thomas Harte
5c4f35e13f Finally started on generalising the C++ stuff so as to be able to be able to get a working audio binding on the OS-specific side without further repetition by factoring an appropriate protocol out from the Electron and sketching out the correct speaker class for the Atari. Added a method to ask it what a good output frequency would be. 2016-05-31 21:23:44 -04:00
Thomas Harte
5a4262d74e Confirmed: it is inaccurate for a 6502 to self reset at power up. So that responsibility now rests in the machines. 2016-05-10 21:05:52 -04:00