Thomas Harte
894066984c
Moves beginning and end of vertical sync to what I now believe is its proper place.
...
At least one demo now successfully opens the top border.
2019-11-19 20:13:47 -05:00
Thomas Harte
e787c03530
Slightly shortens NTSC frame.
...
Either: (i) 263 is incorrect; or (ii) my logic as to frame height is incorrect. Given that the horizontal side of things is really well documented, I'm currently guessing (i). Research to do.
2019-11-18 23:47:27 -05:00
Thomas Harte
c04d2f6c6e
Restricts DTack delay to RAM and Shifter accesses.
2019-11-18 22:57:13 -05:00
Thomas Harte
6990abc0d3
Tweaks selected output mode when both BPP bits are set.
2019-11-18 22:56:40 -05:00
Thomas Harte
ade8df7217
Permits a delay on DE propagation back to the CPU. Plus tests.
...
Currently set at 28 cycles, but I don't know.
2019-11-18 22:12:24 -05:00
Thomas Harte
82c984afa4
Switches the joysticks around.
...
Thereby finally allowing me to control mode games.
2019-11-18 20:02:27 -05:00
Thomas Harte
1202b0a65f
Establishes a pipeline for delayed public state visibility.
2019-11-17 23:28:00 -05:00
Thomas Harte
facc0a1976
Amps up the documentation.
2019-11-17 21:28:51 -05:00
Thomas Harte
253dd84109
Corrects accidental dropping of pixel residue.
...
Specific issue: the repeated (start_column != end_column) test, which can no longer be correct if start_column has been incremented in the (x_&7) test.
The visible effect was to omit pixels from the output wave, which also affected observed sync timing.
2019-11-17 18:34:13 -05:00
Thomas Harte
2c4f372872
Adds support for the .ST file format.
2019-11-12 23:23:14 -05:00
Thomas Harte
f4cfca0451
Merge branch 'master' of github.com:TomHarte/CLK
2019-11-12 19:38:44 -05:00
Thomas Harte
eb287605f7
Switches to a default of TOS 1.04.
2019-11-12 19:38:30 -05:00
Thomas Harte
6a82c87320
Withdraws border optimisation temporarily; I think I may be onto an output bug here.
2019-11-12 19:33:13 -05:00
Thomas Harte
f0478225f0
Adjusts logic to reduce number of output spans.
2019-11-12 19:30:28 -05:00
Thomas Harte
c6f6bc68e1
Undoes non-insertion of media.
2019-11-10 21:52:06 -05:00
Thomas Harte
ab34fad8ca
Introduces a cleaner, separated shifter.
2019-11-10 21:39:40 -05:00
Thomas Harte
7ae0902103
Adds additional joystick commands to the dispatcher.
2019-11-09 20:10:54 -05:00
Thomas Harte
8e9428623e
Adds joystick events to the Atari ST.
2019-11-09 18:39:22 -05:00
Thomas Harte
2c25135d8a
Fixes const correctness for joystick machines; the ST is now one such.
2019-11-09 18:19:05 -05:00
Thomas Harte
860837d894
Corrects: KeyPad -> Keypad. Also fleshes out Atari ST keyboard mapping.
2019-11-09 18:02:14 -05:00
Thomas Harte
0204003680
Resolves GCC warnings.
2019-11-09 16:12:37 -05:00
Thomas Harte
77ef7dc8fc
Shuffles ST and 2600 into a common parent.
2019-11-09 15:31:41 -05:00
Thomas Harte
e3abbc9966
Renames what didn't end up being a whole SerialPort.
2019-11-09 15:21:51 -05:00
Thomas Harte
70c6010fe0
Expands visible area and adds a few more safety barriers.
2019-11-09 15:00:42 -05:00
Thomas Harte
45375fb5d0
Makes endian aware.
2019-11-09 09:48:59 -05:00
Thomas Harte
d2324e413d
Clarifies ownership of bpp-has-changed test.
2019-11-09 00:10:59 -05:00
Thomas Harte
e0c15f43bb
Avoids massive over-flushing of pixel buffers.
2019-11-09 00:05:02 -05:00
Thomas Harte
8b0d550b81
Attempts to move vertical sync out to cycle 30.
2019-11-08 22:18:47 -05:00
Thomas Harte
d1259f829e
Moves vertical state decisions back to cycle 502.
2019-11-08 21:42:05 -05:00
Thomas Harte
7caef46c05
Switches back to hsync for interrupts; corrects current address reads.
2019-11-08 21:25:28 -05:00
Thomas Harte
6902251d8b
Fixed: returns video address in bytes, not words.
2019-11-08 20:47:08 -05:00
Thomas Harte
0b683b0360
Adds some sanity checks.
2019-11-08 20:46:24 -05:00
Thomas Harte
5d5dc79f2c
Corrects raster race condition with CPU.
2019-11-07 23:27:05 -05:00
Thomas Harte
b7c407be10
The palette is meant to be read/write.
2019-11-07 23:11:06 -05:00
Thomas Harte
f45798faf0
Corrects initial safe value of line_length_.
2019-11-07 22:53:26 -05:00
Thomas Harte
7c66d7a13c
Corrects sync and line-length latch timings.
2019-11-07 22:53:04 -05:00
Thomas Harte
5e1570258d
I think the horizontal interrupt is blank, not sync.
2019-11-07 22:00:50 -05:00
Thomas Harte
fc8021c0b0
Adds a centre crop.
2019-11-07 20:02:45 -05:00
Thomas Harte
c9cd56915e
Corrects typo that was adding an extra line of PAL video.
2019-11-07 19:55:49 -05:00
Thomas Harte
1fd19c5786
Attempts to add proper bus timing.
2019-11-07 19:55:00 -05:00
Thomas Harte
ce66b5fd9c
Corrected member variable names.
2019-11-07 19:44:22 -05:00
Thomas Harte
8aa425c9d8
Fixes medium resolution mode.
2019-11-06 23:25:36 -05:00
Thomas Harte
ec68bc5047
Corrects output glitches: channel de sync and improper border beginnings.
2019-11-06 22:37:05 -05:00
Thomas Harte
0ce807805d
Eliminates most masks, at least for now.
2019-11-05 23:17:59 -05:00
Thomas Harte
41f3c29e30
Attempts to switch to correct video state machine.
...
Some glitches remain to be ironed out.
2019-11-05 23:02:25 -05:00
Thomas Harte
8df1eea955
Goes big on flushing.
2019-11-03 23:03:50 -05:00
Thomas Harte
eeafdf2c03
Slightly expands list of recognised Intelligent Keyboard commands.
2019-11-03 21:58:15 -05:00
Thomas Harte
befe2c2929
Adds floppy drive activity indicators.
2019-11-03 21:57:54 -05:00
Thomas Harte
e9965c2738
Obeys stated memory size.
2019-11-03 21:18:17 -05:00
Thomas Harte
48b0d8c329
Adds bus req/ack to the DMA controller; hacks support into the ST.
2019-11-03 21:11:25 -05:00
Thomas Harte
4dbd2a805a
Nudges closer to DMA support.
2019-11-03 17:24:36 -05:00
Thomas Harte
20bf425f98
Drive select lines are active low.
2019-11-02 23:37:56 -04:00
Thomas Harte
0567410bcf
Attempts to start getting the WDC working.
2019-11-02 23:26:42 -04:00
Thomas Harte
6d1e09ba55
Connects up the AY to floppy drive/side selection.
2019-11-02 23:04:08 -04:00
Thomas Harte
f40dbefa67
Implements most of keyboard input.
2019-11-02 22:30:02 -04:00
Thomas Harte
f93cdd21de
Reverses bit order.
...
So, for the first time: a green desktop.
2019-11-02 21:53:04 -04:00
Thomas Harte
e1dc3b1915
Reverses mouse buttons.
...
So I can now navigate the disk-less GEM desktop and click on things.
2019-11-02 21:38:57 -04:00
Thomas Harte
cbf25a16dc
Adds relative mouse motion input.
2019-11-02 21:25:45 -04:00
Thomas Harte
bf7e9cfd62
Pulls the intelligent keyboard into its own file.
2019-11-02 19:47:44 -04:00
Thomas Harte
a67e0014a4
Fixes video base address and mono/colour monitor value.
...
Now I see a GEM desktop. In blue.
2019-11-02 19:36:15 -04:00
Thomas Harte
c070f2100c
Attempts to regularise data bus access.
2019-11-01 23:01:06 -04:00
Thomas Harte
75e34b4215
Reacts to no acknowledgement.
2019-10-31 21:00:05 -04:00
Thomas Harte
731dc350b4
Adds sometime real-time clocking for DMA.
2019-10-30 22:59:32 -04:00
Thomas Harte
635e18a50d
Ensures the MFP requests and receives real-time clocking when needed.
2019-10-30 22:42:06 -04:00
Thomas Harte
1c154131f9
Expands size of storage in Cycles/HalfCycles; adjusts widely to compensate.
2019-10-29 22:36:29 -04:00
Thomas Harte
1135576a3a
Comments in slightly more detail.
2019-10-28 22:12:56 -04:00
Thomas Harte
1d790ec2a9
Adds the option for a clock conversion to JustInTimeActor and slows the MFP's clock rate.
2019-10-28 21:35:10 -04:00
Thomas Harte
0f2d72c436
Ensures receipt of output line changes.
2019-10-28 21:21:53 -04:00
Thomas Harte
4a1fa8fc13
Adds some const qualifiers.
2019-10-28 21:13:42 -04:00
Thomas Harte
95d3b6e79f
Adds a through route for the FDC interrupt line.
2019-10-28 21:13:21 -04:00
Thomas Harte
d44734d105
Attempts a fuller setting of GPIP inputs.
2019-10-27 22:39:21 -04:00
Thomas Harte
1aaa6331a0
Stores and returns video mode.
2019-10-27 22:39:00 -04:00
Thomas Harte
0cb19421e8
Adds prefix to mouse position response.
2019-10-27 21:46:03 -04:00
Thomas Harte
92847037b3
Merge branch 'master' into AtariST
2019-10-27 21:40:51 -04:00
Thomas Harte
0fc191c87d
Switched a few static_cast
to constructor syntax.
2019-10-27 14:21:22 -04:00
Thomas Harte
dc4a0e4e3b
Video only ever reads from RAM, so it can be const *.
...
(it can also be *const, since I set it only once)
2019-10-27 14:09:38 -04:00
Thomas Harte
36a9a5288b
Adds drives to the FDC.
2019-10-26 22:39:11 -04:00
Thomas Harte
ac39fd0235
Starts work on the DMA controller.
2019-10-26 21:33:57 -04:00
Thomas Harte
ecc0cea5a1
Added a potential branch for the newer TOS memory map.
2019-10-26 16:52:06 -04:00
Thomas Harte
eae11cbf17
Adds a dummy response for mouse interrogation.
2019-10-26 16:14:24 -04:00
Thomas Harte
2207638287
Adds hsync and vsync interrupts.
2019-10-25 22:42:13 -04:00
Thomas Harte
872897029e
Attempts a complete wiring of 68901 interrupts.
2019-10-25 22:36:01 -04:00
Thomas Harte
51b4b5551d
Actually, I think the 6850 is active low for interrupts.
2019-10-24 22:37:53 -04:00
Thomas Harte
092a61f93e
Does a better job of having just 512kb.
2019-10-21 23:10:30 -04:00
Thomas Harte
e30ba58e0d
Attempts to wire ACIA interrupt signals into the MFP.
2019-10-21 23:02:30 -04:00
Thomas Harte
83d73fb088
The keyboard now responds to a reset on its serial line.
2019-10-20 23:13:44 -04:00
Thomas Harte
75c3e2dacd
Adds basic, incomplete dispatcher for the intelligent keyboard.
2019-10-20 23:07:19 -04:00
Thomas Harte
cf07982a9b
Ensures good serial line and ACIA behaviour.
...
Next stop: having the intelligent keyboard react.
2019-10-20 22:10:05 -04:00
Thomas Harte
313aaa8f95
Silences temporarily.
2019-10-20 20:38:56 -04:00
Thomas Harte
696af5c3a6
Starts to transfer serial line decoding logic into the line itself.
2019-10-20 20:38:56 -04:00
Thomas Harte
9a8352282d
Mostly but not quite fixes serial work.
2019-10-20 20:38:55 -04:00
Thomas Harte
34075a7674
Attempts to tie an intelligent keyboard to the other end of its serial line.
2019-10-20 20:38:55 -04:00
Thomas Harte
ff62eb6dce
The ACIA actually has two clocks, though on an ST they're both 500,000 Hz.
2019-10-20 20:38:55 -04:00
Thomas Harte
374439693e
Ensures serial lines know their writer's clock rate.
2019-10-20 20:38:55 -04:00
Thomas Harte
c4ef33b23f
JustInTimeActors can now specify a clock divider.
2019-10-20 20:38:55 -04:00
Thomas Harte
4e5b440145
Attempts mostly to implement 6850 output.
2019-10-20 20:38:55 -04:00
Thomas Harte
97d44129cb
Ensures all 16 data lines reach the video.
2019-10-20 20:38:55 -04:00
Thomas Harte
b0f5f7bd37
Attempts to start producing actual video.
2019-10-20 20:38:55 -04:00
Thomas Harte
a59ec9e818
Provides a token something where DMA should be.
2019-10-20 20:38:55 -04:00
Thomas Harte
4ead905c3c
Adds an empty shell for the ACIA.
2019-10-20 20:38:55 -04:00