Thomas Harte
|
234f14dbbe
|
Tests were at fault; all passing now.
|
2017-06-19 21:14:40 -04:00 |
|
Thomas Harte
|
99ede3a9ef
|
BIT/SET (IX+d) were incorrectly encoded. Hence fixed BIT (IX+d).
|
2017-06-19 21:04:14 -04:00 |
|
Thomas Harte
|
378233f53d
|
Extended to BITs and SETs, accruing three new failures.
|
2017-06-19 21:01:30 -04:00 |
|
Thomas Harte
|
f903408980
|
Caught up on comments.
|
2017-06-19 20:53:22 -04:00 |
|
Thomas Harte
|
cc8f316941
|
Resolved read-modify-write (IX+d) timing, and therefore RLC (IX+d).
|
2017-06-19 20:51:28 -04:00 |
|
Thomas Harte
|
b684254908
|
Introduced further tests down to a failing attempt at RLC (IX+d). Made an initial attempt to fix, failed.
|
2017-06-19 20:33:34 -04:00 |
|
Thomas Harte
|
351d90ca55
|
Added tests down to INC IX. No additional failures yet, though I've yet to reach conditional CALL.
|
2017-06-19 20:04:55 -04:00 |
|
Thomas Harte
|
23177df26a
|
Added various tests of the basic ALU ops.
|
2017-06-19 19:53:26 -04:00 |
|
Thomas Harte
|
ba15371948
|
Introduced timing tests for LDI[R] and CPI[R], fixing a latent issue in the rejig of LD BC, nn while I'm here.
|
2017-06-19 19:47:00 -04:00 |
|
Thomas Harte
|
73dbaebbc1
|
Fixed timing of EX (SP), HL/IX.
|
2017-06-19 19:25:53 -04:00 |
|
Thomas Harte
|
8d60734737
|
Added tests for EXX, EX (SP), HL and EX (SP), IX. The latter two currently being incorrect.
|
2017-06-19 19:17:54 -04:00 |
|
Thomas Harte
|
002098d496
|
The final two tests were at fault — expecting POPs to write rather than read. Fixed, so the subset of timing tests as-yet implemented now passes. Which means it's time to slog through further tests.
|
2017-06-19 07:45:41 -04:00 |
|
Thomas Harte
|
e3244eb68e
|
Rephrased internal operation machine cycles as having only an end. So they're now easy to count. Hence the test machine spots them, and a couple more of the current timing subset passes.
|
2017-06-19 07:39:46 -04:00 |
|
Thomas Harte
|
85c6fb1430
|
Explained refresh cycles to the all-RAM Z80.
|
2017-06-19 07:36:11 -04:00 |
|
Thomas Harte
|
54e4643396
|
Corrected non-default refresh cycle lengths. Reduces failures of the currently-tested timing subset from 10 to 4.
|
2017-06-19 07:34:23 -04:00 |
|
Thomas Harte
|
85c5c4405a
|
Ensured that wait states don't appear unless requested (TODO: requesting), and made the output of my timing tests a little easier to parse.
|
2017-06-19 07:30:01 -04:00 |
|
Thomas Harte
|
d668879ba6
|
Started trying to wade back to passing tests. Working on the new timing tests first, and focussing on getting the Objective-C test machine to compile bus operations into machine cycles, which means indicating phase to all-RAM delegates.
|
2017-06-18 22:03:13 -04:00 |
|
Thomas Harte
|
cb140aa06e
|
Managed to navigate back to building.
|
2017-06-18 21:00:44 -04:00 |
|
Thomas Harte
|
6a769d3953
|
Finally dipped below the 20 error threshold that the compiler tops out at.
|
2017-06-18 20:34:46 -04:00 |
|
Thomas Harte
|
3be8ffd826
|
Some correct timings have gone out the window for now, but only the final quarter of the base page now contains compiler errors.
|
2017-06-18 20:31:12 -04:00 |
|
Thomas Harte
|
bb910e14a4
|
Dealt with the CB page.
|
2017-06-18 18:01:33 -04:00 |
|
Thomas Harte
|
69ebbe019a
|
Completed ED page conversion. Rolling onwards...
|
2017-06-18 17:56:48 -04:00 |
|
Thomas Harte
|
0d39672d32
|
Fixing typos here and there, persuaded the first half of the ED table to compile.
|
2017-06-18 17:48:54 -04:00 |
|
Thomas Harte
|
0d1231980a
|
Advanced to getting specific warnings in the ed-page table. So that's progress.
|
2017-06-18 17:25:15 -04:00 |
|
Thomas Harte
|
82a015892b
|
Started adapting to the newly-segmented world.
|
2017-06-18 17:18:01 -04:00 |
|
Thomas Harte
|
194b7f60c5
|
Rephrased to allow non-conditional waits; expanded macros to cover all permitted lengths of read and write.
|
2017-06-18 17:08:50 -04:00 |
|
Thomas Harte
|
ebc7356db5
|
Reformulated the machine cycle slightly to support posting operation plus phase, thereby exposing the segue points at which waits might be inserted. So: to stick to the rule that CPUs expose the minimum amount of information sufficient completely to reconstruct bus activity. This breaks the Z80 for now.
|
2017-06-18 12:21:27 -04:00 |
|
Thomas Harte
|
e1a2580b2a
|
Renamed BusOperation to MachineCycle::Operation.
|
2017-06-17 21:53:45 -04:00 |
|
Thomas Harte
|
b6f51474ff
|
Ensured that -description can handle the newly-captured bus actions.
|
2017-06-17 18:20:30 -04:00 |
|
Thomas Harte
|
0f18768091
|
Disabled attempts at bus activity matching within the FUSE tests, at least until I settle on exactly what I intend to do.
|
2017-06-17 18:19:25 -04:00 |
|
Thomas Harte
|
efc7f9df37
|
Combined I and R into a register pair.
|
2017-06-17 18:18:28 -04:00 |
|
Thomas Harte
|
50cd617bd9
|
Ensured test raises only the intentional failure exceptions.
|
2017-06-15 22:33:46 -04:00 |
|
Thomas Harte
|
838b818cd3
|
Finished transcribing first page of machine cycle documentation; several failures contained.
|
2017-06-15 22:19:49 -04:00 |
|
Thomas Harte
|
cf795562bf
|
Continued filling in tests, fleshing out what the test machine captures as a result.
|
2017-06-15 20:59:59 -04:00 |
|
Thomas Harte
|
ac37424878
|
Set up a test class to allow me to discover which of the machine cycle sequences I'm in error on.
|
2017-06-15 19:06:59 -04:00 |
|
Thomas Harte
|
a336048c98
|
Merge branch 'ZX80FileFormats'
|
2017-06-15 18:33:42 -04:00 |
|
Thomas Harte
|
87496f9978
|
Merge pull request #131 from TomHarte/ZX80FileFormats
Adds very preliminary emulation of the ZX80.
|
2017-06-15 18:32:38 -04:00 |
|
Thomas Harte
|
08a542a324
|
Reenabled the fast-loading hack.
|
2017-06-15 18:30:12 -04:00 |
|
Thomas Harte
|
9b3d05e05f
|
Simplified decoding logic.
|
2017-06-14 22:24:44 -04:00 |
|
Thomas Harte
|
d8e3103a2b
|
Fixes: switched ZX80 and ZX81 timing to the correct way around, ensured that my wait takes effect if HALT **isn't** set, and made sure to recover from it.
|
2017-06-13 21:48:17 -04:00 |
|
Thomas Harte
|
76a64d13a0
|
Made a first attempt at ZX81 emulation.
|
2017-06-13 21:25:55 -04:00 |
|
Thomas Harte
|
1e975859c2
|
Started splitting ZX80 and ZX81 paths. Also the '80 fires its horizontal sync a little earlier than the '81, so pulled that back a little.
|
2017-06-13 20:09:09 -04:00 |
|
Thomas Harte
|
4c5261bfa0
|
Made first attempt to use the horizontal counter for something; here for sync timing only, even though I've gone exclusively with '81-style timing for now.
|
2017-06-12 22:28:30 -04:00 |
|
Thomas Harte
|
aed2827e7b
|
Implemented a rudimentary way to test that instructions take as long as the FUSE tests think they should. Hence discovered that the (HL)-accessing BIT, RES and SET weren't. Corrected.
|
2017-06-12 22:22:00 -04:00 |
|
Thomas Harte
|
e6e6e4e62b
|
Adds an extra character for padding the ZX81 table.
|
2017-06-12 22:08:11 -04:00 |
|
Thomas Harte
|
8b09b4180b
|
This now at least remembers whether it is meant to be a ZX81 and has storage for a horizontal counter.
|
2017-06-12 21:33:16 -04:00 |
|
Thomas Harte
|
626737b9fa
|
Started mucking about with some string conversion routines. Not finished yet.
|
2017-06-12 21:32:36 -04:00 |
|
Thomas Harte
|
22de481557
|
Made an attempt to get .p/.80 checked and as far as the emulated machine.
|
2017-06-12 19:41:59 -04:00 |
|
Thomas Harte
|
b9dbb6bcf8
|
Discovered my timing error: the I/R <-> A loads should take an extra cycle. This means the ZX80 now finally takes the correct 207 cycles per line. Fixed the video output wave to be clocked at the appropriate rate.
|
2017-06-12 18:55:04 -04:00 |
|
Thomas Harte
|
a48616a138
|
Fixed reference to Swift-world MachineDocument for the ZX81 file type.
|
2017-06-12 18:51:11 -04:00 |
|