Thomas Harte
|
f075fea78c
|
Introduces filtering of the CRTC's vsync signal into the gate array.
|
2017-08-04 16:36:55 -04:00 |
|
Thomas Harte
|
cc8380c286
|
Merge pull request #174 from TomHarte/ProperBorder
Removes quick-hack solution for border drawing
|
2017-08-04 12:15:22 -04:00 |
|
Thomas Harte
|
c0f0c68f4f
|
Corrects quick-hack version of border drawing: the assumption that the colour must be the same over a plotted period. Also corrects my entry for colour 15.
|
2017-08-04 12:13:05 -04:00 |
|
Thomas Harte
|
c2bb019381
|
Merge pull request #173 from TomHarte/TimingFixes
Corrects two misimplementations of the CPC's interrupt counter
|
2017-08-04 09:06:42 -04:00 |
|
Thomas Harte
|
26ce6cdab2
|
Permitted register 3 to dictate vertical sync length.
|
2017-08-04 08:56:36 -04:00 |
|
Thomas Harte
|
d9097facf1
|
Found documentation that makes more sense, and in practice seems to be more correct: the test after vertical sync is for greater than 32, not less. Also I decided to chance my arm on counter reset also resetting interrupt request. The raster effects of Ghouls 'n' Ghosts is now pretty much correct but one line off. I think probably either something is off in my wait-two logic on the post-vsync timer event, or possibly the vsync bit exposed via the PPI doesn't mean exactly what I think it means.
|
2017-08-04 08:56:09 -04:00 |
|
Thomas Harte
|
b927500487
|
Clarified code a little, but this is mostly fiddling in the margins.
|
2017-08-03 22:00:30 -04:00 |
|
Thomas Harte
|
e71eabedf9
|
Fixed timer clearing tet.
|
2017-08-03 21:30:04 -04:00 |
|
Thomas Harte
|
33ed27c3ad
|
Minor tidiness: included missing headers, and spaced out the ROM type and key lists for readability.
|
2017-08-03 12:45:42 -04:00 |
|
Thomas Harte
|
45cbab6751
|
Merge pull request #172 from TomHarte/KeyboardMachines
Publicly declares the ZX80/81 and Amstrad CPC as keyboard machines
|
2017-08-03 12:39:22 -04:00 |
|
Thomas Harte
|
a7b74d6164
|
Merge pull request #171 from TomHarte/EverMoreTZX
Further expands the implemented subset of the TZX file format
|
2017-08-03 12:38:44 -04:00 |
|
Thomas Harte
|
575b1dba75
|
Formally declared the ZX80/81 and Amstrad CPC as keyboard machines in their public interface. Which means not having to repeat the meaning of set_key_state and clear_all_keys. So: a minor DRY improvement.
|
2017-08-03 12:38:22 -04:00 |
|
Thomas Harte
|
a3b16b6dfa
|
Further beefs up the list of chunks that this TZX parser can either comprehend or skip.
|
2017-08-03 12:13:41 -04:00 |
|
Thomas Harte
|
c8f4de6f11
|
Merge pull request #170 from TomHarte/KeyboardCraziness
Separates knowing the mapping from ASCII to machine keys from the act of typing them
|
2017-08-03 11:53:42 -04:00 |
|
Thomas Harte
|
bbb17acf3a
|
Expanded interface so that an external machine caller can request a string be typed without any knowledge of whatever it intends to do re: CharacterMappers. Which is immediately useful in paste functionality.
|
2017-08-03 11:50:50 -04:00 |
|
Thomas Harte
|
ad3a98387f
|
Within the Typer framework: hatched out CharacterMapper as a distinct thing from the target for keypresses, better to formalise responsibility but also to make it easy cleanly to sever that stuff into its own little part.
|
2017-08-03 11:42:31 -04:00 |
|
Thomas Harte
|
985fbf59c2
|
Merge pull request #169 from TomHarte/Z80HasA
Converts the Z80 into a BusAdaptor-type component
|
2017-08-02 22:42:49 -04:00 |
|
Thomas Harte
|
2f2071be8a
|
These should actually both be in the public header, as the types are used in an exposed method.
|
2017-08-02 22:18:30 -04:00 |
|
Thomas Harte
|
6d510e4e70
|
Made it no longer public knowledge that any sort of Typer is involved in being a ZX80/81.
|
2017-08-02 22:17:22 -04:00 |
|
Thomas Harte
|
8e0736fbe6
|
Reinstated typing ability, albeit with an ugly inline insertion. But I think I can defer dealing with typers to another pull request. The whole issue of keyboard mapping probably needs reappraisal.
|
2017-08-02 22:16:09 -04:00 |
|
Thomas Harte
|
681d1e2f8d
|
Breaking its typer for now, adapted the ZX80/81 to having a Z80, not being one.
|
2017-08-02 22:12:59 -04:00 |
|
Thomas Harte
|
42e70ef993
|
Adjusted slightly as per Z80 change, and to pull everything internally declared into the Amstrad CPC namespace.
|
2017-08-02 22:11:03 -04:00 |
|
Thomas Harte
|
039811ce6a
|
Switched the Z80 to being something a machine has, not something a machine is.
|
2017-08-02 22:09:59 -04:00 |
|
Thomas Harte
|
a54ccd1969
|
Merge pull request #168 from TomHarte/CPC
Adds an initial Amstrad CPC 464 emuation
|
2017-08-02 20:50:02 -04:00 |
|
Thomas Harte
|
707821ca55
|
Added the normal readme to explain what's omitted here.
|
2017-08-02 20:45:14 -04:00 |
|
Thomas Harte
|
d3bf8fa53b
|
Upped the documentation.
|
2017-08-02 20:37:26 -04:00 |
|
Thomas Harte
|
f5e2dd410e
|
Constrained output to the centre 90%.
|
2017-08-02 19:55:44 -04:00 |
|
Thomas Harte
|
3ca9c38777
|
Attempted to move to more accurate bus reading — if control lines are set then all subsequent data inputs should act according to the current control lines; changes to port input should be reflected live upon readings, etc.
|
2017-08-02 19:45:58 -04:00 |
|
Thomas Harte
|
2d2cefb0b0
|
Adjusted factoring to introduce support for block 10.
|
2017-08-02 14:36:47 -04:00 |
|
Thomas Harte
|
2fd071e45d
|
Made an honest attempt at outputting turbo speed data block data. The CPC now at least starts to load.
|
2017-08-02 14:24:34 -04:00 |
|
Thomas Harte
|
d7a5c3f49a
|
Added support for the ID 20 block and fixed a minor error in my skip-the-contents version of block 11: length is three bytes long, not two. This gives me enough structure properly to get to the end of my current test CDT, albeit without making any of the noises.
|
2017-08-02 14:12:34 -04:00 |
|
Thomas Harte
|
819761f9fb
|
Fixed another uninitialised pointer.
|
2017-08-02 13:56:35 -04:00 |
|
Thomas Harte
|
e50adf1cc8
|
Were my TZX support up to it, this would likely be sufficient for tape emulation.
|
2017-08-02 13:50:14 -04:00 |
|
Thomas Harte
|
dcab10f53e
|
Ensured the AY's async queue doesn't just fill and fill.
|
2017-08-02 07:38:35 -04:00 |
|
Thomas Harte
|
633d8965e2
|
Removed accidental logging commit.
|
2017-08-02 07:38:14 -04:00 |
|
Thomas Harte
|
f602f9b6ec
|
Adds an attempt to clock the AY.
|
2017-08-02 07:21:33 -04:00 |
|
Thomas Harte
|
f7e66dea61
|
Added a compound divide and convert.
|
2017-08-02 07:21:21 -04:00 |
|
Thomas Harte
|
bda9441620
|
Made an attempt to clock the AY.
|
2017-08-02 07:20:59 -04:00 |
|
Thomas Harte
|
4d5d5041df
|
Attempted to ensure a clean startup.
|
2017-08-01 22:18:42 -04:00 |
|
Thomas Harte
|
587eb3a67c
|
Factored interrupt counting out of the CRTCBusHandler.
|
2017-08-01 22:15:39 -04:00 |
|
Thomas Harte
|
6ca07f1e28
|
I guess it might end up living somewhere else, but introduced a header with the compiler-specific stuff to allow me to force things inline.
|
2017-08-01 22:04:58 -04:00 |
|
Thomas Harte
|
8d39a20088
|
Added proper output of mode 3, were anything ever to try to use it.
|
2017-08-01 21:51:41 -04:00 |
|
Thomas Harte
|
4b6370eb86
|
Realised my colour error: mapping the ROM numbers as though they were the hardware numbers. Having fixed that, spotted that I was deserialising R and B the wrong way around and dividing by too much. Colours now appear to be correct.
|
2017-08-01 21:47:52 -04:00 |
|
Thomas Harte
|
c6e340a8a2
|
Wired up the vsync signal. Pen 15 no longer flashes like crazy. Still can't figure out why the palette is so askew; was looking for perhaps some sort of detection of a green screen rather than a colour one, but there's no obvious input for that.
|
2017-08-01 21:21:59 -04:00 |
|
Thomas Harte
|
31c7153301
|
Corrected bit to colour mapping for modes 0 and 1. The total palette is still way off but there's consistency between modes now.
|
2017-08-01 20:52:42 -04:00 |
|
Thomas Harte
|
7e04d00cc1
|
Fixed key values, causing the new set of keys to work, decreased quantity of output and ensured that pixels appear in modes 0 and 2.
|
2017-08-01 20:39:10 -04:00 |
|
Thomas Harte
|
9d43784c65
|
Significantly increased quantity of keys forwarded.
|
2017-08-01 20:37:55 -04:00 |
|
Thomas Harte
|
eca9586a0f
|
Fixed: input value is no longer overwritten by 0xff. The '0' key now works.
|
2017-08-01 20:19:02 -04:00 |
|
Thomas Harte
|
0267bc237f
|
Added the ability to set a port input, and relaxed bus state testing. I think my on-demand bus reactions here are inappropriate, so more work to do here probably.
|
2017-08-01 18:04:51 -04:00 |
|
Thomas Harte
|
2e4577f741
|
Made a game attempt at implementing a (sticky) keyboard. No effect yet.
|
2017-08-01 17:52:05 -04:00 |
|