Thomas Harte
|
4961fda2a9
|
Ensured counter-intuitive CRTC writes get through, taking the opportunity to correct my handling of port IO in general: selecting multiple devices for input results in a logical AND (i.e. open collector mode), and both the CRTC and gate array will receive data from 'input's if applicable.
|
2017-08-10 12:39:19 -04:00 |
|
Thomas Harte
|
6a6e5ae79c
|
Forced users of the 6845 to be explicit about which type. So far with no effect.
|
2017-08-10 12:28:57 -04:00 |
|
Thomas Harte
|
02d792c003
|
Simplified logic slightly, avoiding repetition.
|
2017-08-10 11:48:37 -04:00 |
|
Thomas Harte
|
be8e7a4144
|
Eliminated false register aliasing, restricted register sizes and locked out reading and writing where appropriate.
|
2017-08-10 11:22:30 -04:00 |
|
Thomas Harte
|
b1dbd7833a
|
Merge branch 'master' into 6845Address
|
2017-08-10 11:15:08 -04:00 |
|
Thomas Harte
|
84ab05c5ef
|
Merge branch 'BetterFDC'
|
2017-08-10 11:14:53 -04:00 |
|
Thomas Harte
|
78138261c2
|
Merge pull request #182 from TomHarte/BetterFDC
Continues building up the 8272
|
2017-08-10 11:14:08 -04:00 |
|
Thomas Harte
|
a4c910f1de
|
This appears to be a more accurate take on 6845 address advancement — it is necessary that character output has finished for the line address to be updated.
|
2017-08-10 11:12:53 -04:00 |
|
Thomas Harte
|
2eed24e859
|
Made an initial attempt at [a subset of] multi-sector reads.
|
2017-08-10 11:11:26 -04:00 |
|
Thomas Harte
|
7d1023ea98
|
Added a 'ready' getter to Drive , formally to let the drive take ownership of that test.
|
2017-08-08 21:15:56 -04:00 |
|
Thomas Harte
|
b11d142cff
|
Switched to descriptive names.
|
2017-08-08 20:35:41 -04:00 |
|
Thomas Harte
|
021ff8674e
|
Added something for sense drive status.
|
2017-08-08 20:30:54 -04:00 |
|
Thomas Harte
|
1b86bc21ab
|
Might as well get official on my ongoing efforts at CPC emulation.
|
2017-08-08 17:58:54 -04:00 |
|
Thomas Harte
|
e3d1f4fe1e
|
Subjectively, this might be more correct. It definitely prevents intermediate frequencies. More research required.
|
2017-08-08 17:58:35 -04:00 |
|
Thomas Harte
|
a7452aebff
|
Merge pull request #181 from TomHarte/6128
Introduces support for 128kb CPCs.
|
2017-08-08 16:06:31 -04:00 |
|
Thomas Harte
|
484524d781
|
Implements RAM paging. The 6128 is now emulated.
|
2017-08-08 16:01:56 -04:00 |
|
Thomas Harte
|
dbf9927caf
|
Merge branch '8255Modes'
|
2017-08-08 07:44:56 -04:00 |
|
Thomas Harte
|
3bdedfd749
|
Improved comments.
|
2017-08-08 07:44:46 -04:00 |
|
Thomas Harte
|
005084af3d
|
Merge pull request #180 from TomHarte/6845FrameLength
Corrects an off-by-one error in [character] line counting within the 6845
|
2017-08-08 07:37:48 -04:00 |
|
Thomas Harte
|
46278ff297
|
Experimental: is this meant to be a compare-before-increment?
|
2017-08-07 23:02:29 -04:00 |
|
Thomas Harte
|
d73dcbb268
|
Merge pull request #179 from TomHarte/AYDirection
Makes various AY input/output fixes, and a few 8255 fixes along the way
|
2017-08-07 19:58:39 -04:00 |
|
Thomas Harte
|
390ecec3d9
|
Added: now declines to pass on output if in input mode for ports A and B.
|
2017-08-07 19:56:22 -04:00 |
|
Thomas Harte
|
41a30c147d
|
Adjusted: invalid register selection simply deselects all registers.
|
2017-08-07 19:51:36 -04:00 |
|
Thomas Harte
|
4709ae80cb
|
Added port direction tests.
|
2017-08-07 19:36:55 -04:00 |
|
Thomas Harte
|
7fbb455836
|
Per the CPC test I'm checking, 0s should be returned for non-retained bits, not 1s.
|
2017-08-07 19:07:12 -04:00 |
|
Thomas Harte
|
745afd217f
|
The port input/output flags are now honoured; reading a port that is set as an output returns the current output value.
|
2017-08-07 19:01:18 -04:00 |
|
Thomas Harte
|
4427e9a254
|
Merge pull request #178 from TomHarte/CPC664
Introduces the beginning seeds 8272 emulation, and therefore floppy emulation for the CPC
|
2017-08-07 18:39:33 -04:00 |
|
Thomas Harte
|
2b0dcf8573
|
Transcribed the status bits that I think actually need to be obeyed.
|
2017-08-07 12:37:45 -04:00 |
|
Thomas Harte
|
47732ffb98
|
Prevented the 8272 from overreading ID fields (and, by doing so, overrunning its internal buffer). Exposed the MFMController's CRC generator for inspection.
|
2017-08-07 12:37:22 -04:00 |
|
Thomas Harte
|
d07f3216ab
|
Added a broad phase on whether seeking is ongoing.
|
2017-08-07 12:12:59 -04:00 |
|
Thomas Harte
|
56d65ba6f3
|
Adapted slightly, to retain the ability to advertise an incorrect size, to adjust the confusion I've created by having two different types of thing both called new_sector, and to print a warning when ignoring error flags.
|
2017-08-07 12:12:04 -04:00 |
|
Thomas Harte
|
895a3cbf24
|
Corrected reading of the track size table for extended disks. My first extended disk has now loaded.
|
2017-08-07 11:38:19 -04:00 |
|
Thomas Harte
|
d951c8c1c2
|
Fixed search for track start position with extended disks: it's no longer an infinite loop. So that's a pretty good performance improvement.
|
2017-08-07 11:36:29 -04:00 |
|
Thomas Harte
|
a294963e98
|
Made an absolutely basic attempt to accommodate some extended disk images.
|
2017-08-07 11:26:15 -04:00 |
|
Thomas Harte
|
68c73184b1
|
Had failed to spot that by taking control of stepping at this level, the appropriate invalidate_tracks were not being sent.
|
2017-08-07 10:36:53 -04:00 |
|
Thomas Harte
|
7f824d6494
|
Ensured seeks and recalibrates end immediately if no seeking is required.
|
2017-08-07 10:31:32 -04:00 |
|
Thomas Harte
|
3219212f03
|
A closer inspection of the data sheet seems to suggest that invalid command sequences will post ST0.
|
2017-08-07 07:35:41 -04:00 |
|
Thomas Harte
|
d90e35e5bd
|
Added a bunch of comments, and ensured that the data request bit remains set for the entire period that command bytes are accepted.
|
2017-08-07 07:27:00 -04:00 |
|
Thomas Harte
|
73f8488150
|
Reaching the end of the usable part of my day, decided to tidy up a little before bed with indentation that reflects a distinction between top-level entry points and mere loops.
|
2017-08-06 22:14:18 -04:00 |
|
Thomas Harte
|
3853966a1e
|
Removed formal storage of ST3, as it just seems to be composed live. This may turn out also to be the best way to deal with ST0–2, time will tell. Also took a stab at the error in responding properly to the ROM's intended use of seek might be accepting new commands as replacements for old ones rather than rejecting them. That didn't seem to do the trick.
|
2017-08-06 22:10:12 -04:00 |
|
Thomas Harte
|
d63893a437
|
Collapsed implementations of recalibrate and seek, and decided to intend to go for an upward count on steps taken rather than a downward one. But seek continues presently to fail.
|
2017-08-06 21:52:52 -04:00 |
|
Thomas Harte
|
90c74043f5
|
Remembered to toggle off RQM between bytes. CAT now works.
|
2017-08-06 21:21:59 -04:00 |
|
Thomas Harte
|
600445d90a
|
Made a first attempt to return sector contents.
|
2017-08-06 20:40:29 -04:00 |
|
Thomas Harte
|
e4b405fd3d
|
With the ROM now using a read ID to set its expectations, implemented that and fixed FIND/READ_HEADER macros for multiple use. Execution now reaches the unimplemented section of read data.
|
2017-08-06 20:32:46 -04:00 |
|
Thomas Harte
|
3b7ecbdf0d
|
Renamed result_ to result_stack_ to emphasis the fact that it goes backwards. Switched meaning of CB so that it is set for the entire command, execution and result phases.
|
2017-08-06 20:17:12 -04:00 |
|
Thomas Harte
|
01efb645cb
|
Took a reasonable gamble that the CHRN reported is from internal registers, not from the last-found header.
|
2017-08-06 19:57:34 -04:00 |
|
Thomas Harte
|
b5ec1f42d5
|
Started resetting 'busy' when entering the result phase. AMSDOS now complains of a missing disk after failing to find sector 01. My belief is that it should end up asking for C1. So this is not even getting through a failure to find a sector correctly yet.
|
2017-08-06 19:48:17 -04:00 |
|
Thomas Harte
|
c839556a27
|
Fixed: rewind the file to check for 'EXTENDED' if 'MV - CPC' failed.
|
2017-08-06 19:47:10 -04:00 |
|
Thomas Harte
|
e9972aa0dd
|
Added respect for the index-hole limit on reading, and an error phase.
|
2017-08-06 19:25:44 -04:00 |
|
Thomas Harte
|
1c9a744b01
|
Made an effort to start inspecting ID fields, at least. Discovered that my emulation has somehow stopped proceeding beyond sense interrupt status though. Fix one in that area: adjust ST0 just in time for the sense interrupt status response, as that'll need to specify the drive number properly.
|
2017-08-06 18:06:20 -04:00 |
|