Thomas Harte
|
130d598ec9
|
Corrected some minor out-of-style breaks, and ensured that the name of ZX81 files is returned.
|
2017-07-17 19:52:54 -04:00 |
|
Thomas Harte
|
0350925c1e
|
Started sketching out greater support. Mostly TODOs right now, but pulse sequence and pure tone are implemented. I probably also need at least the CSW block to hit everything you might see in a ZX80 or ZX81 tape. Then I can worry about the rest when I have a way to test them.
|
2017-07-17 19:38:15 -04:00 |
|
Thomas Harte
|
94e3dd0d4f
|
Merge branch 'master' into TZX
|
2017-07-17 19:07:05 -04:00 |
|
Thomas Harte
|
5d44422230
|
Merge pull request #152 from TomHarte/CSWLength
Corrects a false assumption about decompressed CSW size
|
2017-07-17 19:06:43 -04:00 |
|
Thomas Harte
|
eafdd7dbd7
|
Corrected decompressed size expectations: it may be up to five times the size of the number of waves, as waves are up to five bytes in length.
|
2017-07-17 19:04:25 -04:00 |
|
Thomas Harte
|
127b584e79
|
Ensured that resetting a TZX resets the is-at-end flag.
|
2017-07-17 07:52:28 -04:00 |
|
Thomas Harte
|
2179edc7fe
|
Adjusted to allow the very first thing found to be data, and ensured that unrecognised symbols break files just as gaps do.
|
2017-07-17 07:43:47 -04:00 |
|
Thomas Harte
|
9108495586
|
Added a safety seek.
|
2017-07-17 07:35:53 -04:00 |
|
Thomas Harte
|
fa617eac6b
|
Spotted that pilot and data segments have different encodings — of course! — and attempted to adapt.
|
2017-07-17 07:34:10 -04:00 |
|
Thomas Harte
|
b63971caf7
|
Took a first, incorrect, shot at TZX chunk 0x19, the generalised data block.
|
2017-07-16 22:40:38 -04:00 |
|
Thomas Harte
|
7327da6350
|
Switched the nascent TZX to use the new PulseQueuedTape .
|
2017-07-16 22:06:56 -04:00 |
|
Thomas Harte
|
8f72fc4a44
|
Factored out from the UEF implementation the concept of being a tape that has a queue of pending pulses and manages that queue.
|
2017-07-16 22:04:40 -04:00 |
|
Thomas Harte
|
238348c885
|
Performed the initial wiring to announce that this application supports TZX files and to route them to the ZX80/81 static analyser. The TZX class itself does not yet do much beyond basic validation. I think it'll be easiest if it follows in UEF's footsteps in queuing up pulses ahead of time, so some factoring out is now required.
|
2017-07-16 21:33:11 -04:00 |
|
Thomas Harte
|
7b5f93510b
|
Fixed the DigitalPhaseLockedLoopBridge bridge, once again fixing tests.
|
2017-07-16 20:55:57 -04:00 |
|
Thomas Harte
|
b3861ff755
|
Reduced copying of Pulses.
|
2017-07-16 19:49:31 -04:00 |
|
Thomas Harte
|
5a6b7219b9
|
Merge pull request #150 from TomHarte/PLLParsing
Introduces PLL-driven tape parsing of Acorn tapes
|
2017-07-16 19:28:51 -04:00 |
|
Thomas Harte
|
c2bc34fd87
|
Eliminated the PLLParser class. I think the proper abstraction if and when another machine requires PLL-esque parsing is probably to template out the Acorn wiring of a PLL to a Parser, and/or generalise the Acorn shifter. It'll be easier to decide when the time comes.
|
2017-07-16 19:25:26 -04:00 |
|
Thomas Harte
|
1d3ae31755
|
Abstracted the concept of an Acorn shifter away from being a PLLParser. The Acorn tape parser now skips using that class and uses the shifter. The actual Electron also uses the shifter. So the two are completely aligned. Net result: the Electron should successfully load exactly when static analysis was successful.
|
2017-07-16 19:24:01 -04:00 |
|
Thomas Harte
|
8ddd686049
|
Removed redundant variable.
|
2017-07-16 19:04:03 -04:00 |
|
Thomas Harte
|
e5188a60dc
|
Settled on the new average-of-length approach to a PLL window sizing, eliminating the old errors-of-phase approach. Since it anchors automatically to the original target clocks per bit, killed the explicit mention of a tolerance.
|
2017-07-16 19:03:50 -04:00 |
|
Thomas Harte
|
e71d13c090
|
With the new PLL implementation, switching to a deeper window size returns the Acorn tape parser to: working.
|
2017-07-16 17:12:12 -04:00 |
|
Thomas Harte
|
ba83dfd454
|
Merge branch 'master' into PLLParsing
|
2017-07-16 17:01:00 -04:00 |
|
Thomas Harte
|
2fb0aea990
|
Updated the C1540 test vessel to the new world.
|
2017-07-16 17:00:39 -04:00 |
|
Thomas Harte
|
51177e4e1f
|
Attempted a different implementation of the PLL, that responds to changes only once.
|
2017-07-16 16:49:04 -04:00 |
|
Thomas Harte
|
004d6da9fb
|
Merge branch 'master' into PLLParsing
|
2017-07-16 15:03:13 -04:00 |
|
Thomas Harte
|
561373e793
|
Merge pull request #149 from TomHarte/BetterVectors
Corrects some long-standing unnecessarily convoluted ways to handle semi-dynamic arrays
|
2017-07-16 15:02:52 -04:00 |
|
Thomas Harte
|
279f4760d7
|
Eliminated buffer_size_ as something explicitly stored, and reduced size of delegate call out.
|
2017-07-16 15:01:39 -04:00 |
|
Thomas Harte
|
f931cd582d
|
Switched to use of std::vector in those few remaining places where I was still using a unique_ptr to a native type and new ing for myself. So, some of my earliest bits of code.
|
2017-07-16 13:54:07 -04:00 |
|
Thomas Harte
|
ab51bc443b
|
Eliminated foolish double indirection on phase history.
|
2017-07-16 13:39:41 -04:00 |
|
Thomas Harte
|
c8575fe6e0
|
Mild clean ups, and a tweak to permitted top and bottom phase.
|
2017-07-16 13:39:08 -04:00 |
|
Thomas Harte
|
4489f120f9
|
Eliminated foolish double indirection on phase history.
|
2017-07-15 22:40:38 -04:00 |
|
Thomas Harte
|
253f9603ed
|
Split the normal tape parser class into two in order to add a new option: a PLL-driven tape parser. Decided to see what happens if I attempt to use that to parse CSW Acorn data.
|
2017-07-15 19:07:35 -04:00 |
|
Thomas Harte
|
6ca712b498
|
Merge pull request #148 from TomHarte/CSW
Adds support for the CSW file format
|
2017-07-15 15:33:05 -04:00 |
|
Thomas Harte
|
b743566339
|
Corrected under-request of data: was erroneously supplying the size of input as the expected size of output.
|
2017-07-15 15:19:03 -04:00 |
|
Thomas Harte
|
481487f084
|
Oh yuck, it looks like I've repeated this same test in two different places. Must figure out where to factor it out to. But in the meantime, the emulated Electron has just loaded its first CSW.
|
2017-07-13 22:39:30 -04:00 |
|
Thomas Harte
|
fc8313430a
|
Added an early exit if what was read as a header turns out pretty much certainly not to be a header.
|
2017-07-13 21:26:45 -04:00 |
|
Thomas Harte
|
648618d280
|
Tweaked bit timing decision.
|
2017-07-13 21:26:05 -04:00 |
|
Thomas Harte
|
ae1a130843
|
Fixed: length of 0 is a special case.
|
2017-07-13 20:57:27 -04:00 |
|
Thomas Harte
|
33d16ae0cd
|
Fixes: individual static analysers reset tapes, for potential successors. The ZX81 file analyser no longer overruns its buffer upon receiving a file that is shorter than 11 bytes.
|
2017-07-12 21:34:08 -04:00 |
|
Thomas Harte
|
f09fe30af5
|
Attempted a full implementation of CSW. All in memory for now.
|
2017-07-12 21:23:59 -04:00 |
|
Thomas Harte
|
33eadb5549
|
Started taking further steps towards CSW support; reading the ZLib documentation is next.
|
2017-07-11 22:41:10 -04:00 |
|
Thomas Harte
|
368bff1a82
|
Added a shell class that will one day be able to parse CSW files, plus the logic and metadata to instantiate it when a CSW presents itself.
|
2017-07-10 21:43:58 -04:00 |
|
Thomas Harte
|
d853841dd5
|
Further lightened up my file-is-ZX81 check.
|
2017-07-10 20:44:13 -04:00 |
|
Thomas Harte
|
eacaafeb48
|
Merge pull request #147 from TomHarte/ZX8081Typer
Introduces preliminary `Typer` support for the ZX80 and ZX81
|
2017-07-09 22:30:30 -04:00 |
|
Thomas Harte
|
ac59dd8b1d
|
Added enough typing to issue a load command. No thoughts as to running yet though.
|
2017-07-09 22:07:12 -04:00 |
|
Thomas Harte
|
353c854734
|
Removed a TODO that is no longer appropriate.
|
2017-07-09 22:06:50 -04:00 |
|
Thomas Harte
|
3e5c209039
|
Added basic Typer support for the ZX80 and '81.
|
2017-07-09 22:00:34 -04:00 |
|
Thomas Harte
|
f56d96267e
|
Merge pull request #146 from TomHarte/MSCrash
Corrects accounting errors in ZX80/81 video
|
2017-07-09 20:09:44 -04:00 |
|
Thomas Harte
|
ed28260aaf
|
Hardens the ZX80/81 video routines to ensure they never try to push data into the future and don't double-count time when pixels would ostensibly run into sync. You could previously see the CRT being handed negative run lengths if sync interrupted pixels or if a run of more than 320 pixels (my arbitrary buffer size) occurred, with corresponding poor behaviour given my use of unsigned numbers.
|
2017-07-09 19:33:05 -04:00 |
|
Thomas Harte
|
8ccec37a4b
|
Eliminated a further potential cause of texture/geometry mismatch: the texture retain succeeded but then there wasn't room for geometry.
|
2017-07-09 19:11:38 -04:00 |
|