Thomas Harte
|
a0043ec336
|
Merge pull request #80 from TomHarte/Microdisc
Adds support for the Microdisc interface to the Oric emulation
|
2016-12-03 23:25:44 +08:00 |
|
Thomas Harte
|
81ee834530
|
As well as a bunch of logging, reinstated rotation position preservation across tracks.
|
2016-12-02 18:36:47 -05:00 |
|
Thomas Harte
|
93c573bfa9
|
Implemented missing status bits (other than the index hole), and a head loading delay for the Microdisc.
|
2016-12-01 21:13:16 -05:00 |
|
Thomas Harte
|
0a0775c3bd
|
Removed earlier hacky solution.
|
2016-12-01 20:16:11 -05:00 |
|
Thomas Harte
|
442986ee2c
|
Introduced a head loading path for 1793 machines.
|
2016-12-01 20:12:22 -05:00 |
|
Thomas Harte
|
82899f2f47
|
Ensured flag setting is atomic, removed duplication of interrupt request versus busy, found better names for the personality testers, unified delegate protocol.
|
2016-12-01 07:41:52 -05:00 |
|
Thomas Harte
|
b31fd11470
|
Fixed reporting of data request line, initial status values.
|
2016-11-30 22:39:55 -05:00 |
|
Thomas Harte
|
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.
|
2016-11-30 22:26:02 -05:00 |
|
Thomas Harte
|
9b6c5e814a
|
Now that it can be more explicit, this should admit that it's '93-based, not '73.
|
2016-11-28 16:22:35 -05:00 |
|
Thomas Harte
|
84cb07613d
|
Checked some documentation more thoroughly; the 1793 has quite different spin-up (/head load) semantics. So it's another distinct personality. Grrr.
|
2016-11-27 20:39:08 -08:00 |
|
Thomas Harte
|
02ba1f220f
|
The '72 seems to be a '70 with altered timing. So worth differentiating.
|
2016-11-27 21:06:17 +08:00 |
|
Thomas Harte
|
2c01f9dbed
|
Added meaningful TODOs.
|
2016-11-27 08:42:39 +08:00 |
|
Thomas Harte
|
f44542c18c
|
Improved naming: this now explains what, not the mechanics of how.
|
2016-11-26 23:35:11 +08:00 |
|
Thomas Harte
|
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.
|
2016-11-26 23:29:30 +08:00 |
|
Thomas Harte
|
d8ecc52de8
|
Temporarily disabled spin-down as harmful to the status register if following anything other than a Type 1 command.
|
2016-11-26 22:27:20 +08:00 |
|
Thomas Harte
|
5c8ecd3051
|
It probably needs a better name, but hastily implemented track caching at the Disk level.
|
2016-11-26 14:27:06 +08:00 |
|
Thomas Harte
|
2f86b07cfa
|
Added a parser for Oric-format MFM disks. Causing my first disk to load!
|
2016-11-26 13:40:10 +08:00 |
|
Thomas Harte
|
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.
|
2016-11-26 13:39:20 +08:00 |
|
Thomas Harte
|
b180f04c87
|
Okay, so this file format wasn't what I hoped it was. It's another hack. Lots of work to do.
|
2016-11-26 10:19:10 +08:00 |
|
Thomas Harte
|
7613755f94
|
Fixed addressing: types are 1 and 2, not 0 and 1.
|
2016-11-26 10:13:12 +08:00 |
|
Thomas Harte
|
b9677c9927
|
Consolidated interrupt request setting.
|
2016-11-26 09:41:53 +08:00 |
|
Thomas Harte
|
e9d6566e9c
|
Of course, changing the IRQ enable may immediately change the IRQ line. Signal if so.
|
2016-11-26 09:35:44 +08:00 |
|
Thomas Harte
|
73d30b9c00
|
Corrected typo.
|
2016-11-25 21:30:45 +08:00 |
|
Thomas Harte
|
12956901d6
|
Filled in some register mirrors.
|
2016-11-25 21:28:11 +08:00 |
|
Thomas Harte
|
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?
|
2016-11-25 21:24:59 +08:00 |
|
Thomas Harte
|
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.
|
2016-11-25 21:24:25 +08:00 |
|
Thomas Harte
|
8be81f6ebd
|
Supplied disks are given to the Microdisc.
|
2016-11-25 20:53:38 +08:00 |
|
Thomas Harte
|
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.
|
2016-11-25 20:51:39 +08:00 |
|
Thomas Harte
|
5c019ad1c0
|
Okay, so it looks like both ROM paging flags are the opposite of what I previously had.
|
2016-11-25 20:42:40 +08:00 |
|
Thomas Harte
|
5be45c6c50
|
Ensured proper default behaviour.
|
2016-11-25 20:30:27 +08:00 |
|
Thomas Harte
|
d33f3b9224
|
This is the broad strokes effort at enabling Microdisc emulation.
|
2016-11-25 20:15:48 +08:00 |
|
Thomas Harte
|
7c2d9f3752
|
This seems to be right, per http://wiki.defence-force.org/doku.php?id=oric:hardware:floppy_disk_controller_wd1793
|
2016-11-22 22:35:43 +08:00 |
|
Thomas Harte
|
5ebc1c63ff
|
Switched video to postfix underscores, for consistency.
|
2016-11-22 22:28:45 +08:00 |
|
Thomas Harte
|
707763f80b
|
Added Microdisc storage to the Oric class, switching all instance storage to postfix underscore while I'm here.
|
2016-11-22 22:22:00 +08:00 |
|
Thomas Harte
|
0c3644f350
|
Made a second parse at logic. We'll see.
|
2016-11-22 22:12:32 +08:00 |
|
Thomas Harte
|
03843bf934
|
Unified delegates. Let's keep it easy for the caller.
|
2016-11-22 22:11:11 +08:00 |
|
Thomas Harte
|
13a608a8c2
|
Added what may be correct paging logic.
|
2016-11-22 22:09:52 +08:00 |
|
Thomas Harte
|
363db695e8
|
Started implementation of the Microdisc selection logic.
|
2016-11-22 08:12:53 +08:00 |
|
Thomas Harte
|
59e2a09107
|
Added assumption that Microdisc => BASIC 1.1.
|
2016-11-22 08:12:24 +08:00 |
|
Thomas Harte
|
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.
|
2016-11-22 08:11:57 +08:00 |
|
Thomas Harte
|
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.
|
2016-11-21 20:59:25 +08:00 |
|
Thomas Harte
|
fc1afe9351
|
Merge pull request #79 from TomHarte/OricDSK
Creates a base class for file format implementations which seeks to collect boilerplate stuff
|
2016-11-21 20:51:48 +08:00 |
|
Thomas Harte
|
8499783b14
|
Dragged multibyte primitives and signature checks up to the base class. Implemented support for Oric MFM-style .DSK, at the file format level.
|
2016-11-21 20:47:16 +08:00 |
|
Thomas Harte
|
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.
|
2016-11-21 20:14:09 +08:00 |
|
Thomas Harte
|
efb53c292c
|
Merge pull request #78 from TomHarte/WD1772Pins
Attempts properly to expose the data and interrupt request lines from the WD1770
|
2016-11-21 13:25:49 +08:00 |
|
Thomas Harte
|
d4a1961378
|
Added getters for the IRQ and DRQ lines plus a delegate to receive changes; adjusted code so that the two lines signal.
|
2016-11-21 13:21:49 +08:00 |
|
Thomas Harte
|
4ec042fad1
|
Merge pull request #77 from TomHarte/LineBuffer
Makes input and output OpenGL data submission atomic, while cleaning code generally
|
2016-11-21 12:24:43 +08:00 |
|
Thomas Harte
|
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.
|
2016-11-21 12:14:52 +08:00 |
|
Thomas Harte
|
bc03e12dc5
|
Switched to suffix underscores.
|
2016-11-21 11:57:45 +08:00 |
|
Thomas Harte
|
340607e13e
|
Switched the flywheel to suffix underscores.
|
2016-11-21 11:48:31 +08:00 |
|