Thomas Harte
0526ac2ee2
Slightly increases const correctness.
...
The converters from source data to output pixels do not modify the source data. It's a shame there's no `restrict` in C++.
2018-09-05 11:36:40 -04:00
Thomas Harte
8b661fb90f
Introduces an extra level of indirection for text mapping.
2018-09-05 10:26:08 -04:00
Thomas Harte
dab7d3db1b
Merge branch 'master' into 40ColumnTextCorruption
2018-08-30 20:24:47 -04:00
Thomas Harte
d53b38ec7e
Correction: 0xc011 et al get the keyboard value in bits 0 to 6 and the switch value in bit 7.
2018-08-30 20:18:36 -04:00
Thomas Harte
2e04c4442c
Adds mirrors for keyboard input and the audio toggle.
2018-08-27 21:14:21 -04:00
Thomas Harte
0599d9602e
Ensures no out-of-bounds accesses to inverses on a IIe.
2018-08-26 23:02:31 -04:00
Thomas Harte
234bef2a88
Adds default
to make it explicit that fetch_address
is initialised.
2018-08-24 22:26:03 -04:00
Thomas Harte
1f491e764e
Nudges visible area slightly to the right.
2018-08-24 22:08:11 -04:00
Thomas Harte
114a43a662
Corrects improper indexing for byte shift.
2018-08-24 21:58:43 -04:00
Thomas Harte
97a89aaf4d
Factors out the stuff of deferred action interleaving, as I suspect it'll come in handy.
2018-08-24 20:04:26 -04:00
Thomas Harte
61e46399dc
About face! There should be no delay on serialisation, but a delay on interpretation-affecting soft switches.
2018-08-22 21:56:45 -04:00
Thomas Harte
e802f6ecc2
Rearranges draw loop around a fixed-size 568-sample line buffer.
2018-08-19 22:31:04 -04:00
Thomas Harte
4209f0e044
Moves memory collection into a separate loop.
2018-08-18 21:54:24 -04:00
Thomas Harte
33576aa2c4
Uses const
to ensure output_* are properly constrained.
2018-08-18 21:36:48 -04:00
Thomas Harte
17bf1a64bf
Moves the stuff of generating pixels out of the main loop.
2018-08-18 18:44:31 -04:00
Thomas Harte
f8d46f8f3d
Merge branch 'master' into AppleDelay
2018-08-18 14:11:21 -04:00
Thomas Harte
be01203cc1
Starts to expand the range of supported 6502s.
...
This fully implements the NES 6502 because, well, it's virtually no extra work, and ensures that RDY takes effect on write cycles on 65C02s.
2018-08-13 22:17:22 -04:00
Thomas Harte
4d1d19a464
Introduces an intermediate buffer for Apple II video data.
2018-08-12 20:36:08 -04:00
Thomas Harte
cb47575860
Eliminates stdout chatter.
2018-08-11 22:57:54 -04:00
Thomas Harte
434d184503
Corrects deserialisation order in double low res mode.
2018-08-11 22:53:06 -04:00
Thomas Harte
7374c665e8
Corrects regression in video flushing.
2018-08-11 19:57:39 -04:00
Thomas Harte
60ab6f0c2a
Entrusts IIe-esque character logic fully to the ROM.
2018-08-11 18:45:39 -04:00
Thomas Harte
a13eb351da
Implements the Enhanced IIe, other than some text selection errors.
2018-08-11 10:26:30 -04:00
Thomas Harte
76a73c835c
Forces 6502 consumers to declare which model — the original, 65C02 or 65SC02.
...
All present machines use a regular 6502.
2018-08-06 20:06:07 -04:00
Thomas Harte
de68e70246
Fixes various IIe video deficiencies.
...
Specifically:
* the double-high resolution switches should be read/write; and
* the other IIe-specific switches should cause a video update for real-time effect.
2018-08-05 17:47:23 -04:00
Thomas Harte
ce14cc8677
Flips meaning of analogue input bits, correcting most joystick titles.
...
Mysteriously, some functioned correctly before this. But they continue to do so.
2018-08-05 17:36:01 -04:00
Thomas Harte
55f2fccf5e
Extends correct text handling to 80-column mode.
2018-08-04 22:25:29 -04:00
Thomas Harte
26624d7652
Fixes vertical blank signal; it should be the other way around.
2018-08-04 20:57:02 -04:00
Thomas Harte
85fb4773b0
Tweaks Apple key mapping and implements reset_all_keys
.
2018-08-04 20:31:37 -04:00
Thomas Harte
099d66804e
Makes colour burst phase explicit.
2018-08-04 19:29:34 -04:00
Thomas Harte
086596c28e
Adds reading of vertical blank and implements the full IIe keyboard logic.
...
i.e. there are now two Apple keys, and shift isn't assumed.
2018-08-04 19:17:04 -04:00
Thomas Harte
3aeb4213fe
Implements the C010 read value.
2018-08-04 17:57:02 -04:00
Thomas Harte
558b96bc05
Corrects IIe text display.
2018-08-04 16:52:29 -04:00
Thomas Harte
e97cc40a2c
Corrects typo in Cx-page ROM paging.
2018-08-04 12:44:58 -04:00
Thomas Harte
c4f86cc324
The Disk II now being its proper speed, withdraws the quickload option.
2018-08-03 21:20:21 -04:00
Thomas Harte
74a2f717b3
Turns down the composite signal amplitude a little, to help colour distinctness.
2018-08-01 18:52:42 -04:00
Thomas Harte
c91eaaf8da
Takes a stab at double low-res graphics.
2018-07-31 21:45:09 -04:00
Thomas Harte
a36f37d240
Introduces a 1/14th delay in output of double high res.
2018-07-31 21:29:51 -04:00
Thomas Harte
c773d3501a
Implements the INTC8ROM switch.
...
Finally causing the Zellyn tests to pass! Is this nightmare behind me?
2018-07-31 19:00:46 -04:00
Thomas Harte
5810f9b3f9
Fixes high resolution address range and switching logic.
2018-07-30 23:23:18 -04:00
Thomas Harte
3f56683342
Fixes order of deserialisation between auxiliary and base RAM.
2018-07-30 23:08:45 -04:00
Thomas Harte
16ccbdefd6
Of course, | has higher precedence than ?. Classic!
2018-07-30 23:08:22 -04:00
Thomas Harte
e9aaa5bbdf
Factors out the page-mapping function.
...
For one less potential source of failure.
2018-07-30 22:23:48 -04:00
Thomas Harte
ecb26e3281
Corrections: slot_C3_rom_ works the other way around; 80STORE doesn't affect most of RAM but does always affect the text screen.
...
Also factored out `set_zero_page_paging` for consistency.
2018-07-30 19:54:25 -04:00
Thomas Harte
5aa0b17720
Improves IIe paging further.
2018-07-29 23:02:27 -04:00
Thomas Harte
632b37ecec
Attempts an implementation of auxiliary memory.
2018-07-29 10:41:12 -04:00
Thomas Harte
c905de2e40
Restores IIe ROM-over-card paging.
2018-07-28 13:31:25 -04:00
Thomas Harte
bc2afe69e1
Accepting that memory mapping on a IIe is more complicated than I anticiapted, introduces mapping for all pages.
...
Also picks a name for the Unenhanced Apple IIe ROM.
2018-07-28 13:02:49 -04:00
Thomas Harte
894998b163
Merge branch 'master' into IIe
2018-07-28 10:54:04 -04:00
Thomas Harte
3c33ccd730
Eliminates various blank lines.
2018-07-28 10:52:34 -04:00