1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-30 04:50:08 +00:00
Commit Graph

91 Commits

Author SHA1 Message Date
Thomas Harte
256ba4028b Rejigged to eliminate semi-duplication of the is-a-file test. 2017-06-08 21:52:13 -04:00
Thomas Harte
b07af2660d Adjusted to make sure that the very end of a tape is properly measured. 2017-06-08 21:33:35 -04:00
Thomas Harte
bc0d70b2f7 Added: a shout-out when the tape has been exhausted. 2017-06-08 21:32:27 -04:00
Thomas Harte
c6e48dfd56 Given that a final gap is semantically part of describing tape contents, ensured one formally appears before declaring that the tape has ended. 2017-06-08 21:31:54 -04:00
Thomas Harte
ee4c8b5ad2 Ensured final byte plays out. 2017-06-08 19:51:49 -04:00
Thomas Harte
7e10c7f9d8 Relocated the ZX80/81 concept of a 'file' out from Tape into Data, given that it's an exact duplicate of memory. 2017-06-08 19:09:51 -04:00
Thomas Harte
c47128f433 Widened tolerances and ensured zero bits aren't prematurely discarded. 2017-06-07 17:50:03 -04:00
Thomas Harte
8aab9acc10 Eliminated use of the zero level; now definitively returns a low/high input. 2017-06-07 17:39:29 -04:00
Thomas Harte
dbd2944c13 Took an initial run at the ZX80/81 parser. 2017-06-07 17:27:05 -04:00
Thomas Harte
4603fa6f24 Extended explicitly to support a token of lookahead, which is pretty much what was on offer anyway. Also corrected instance variable names, as per better adoption of C++ norms. 2017-06-07 17:21:57 -04:00
Thomas Harte
60300851ea Started sketching out a tape parser for ZX80 and '81 files. I think this'll help me to verify whether the .O input is working. 2017-06-07 10:12:13 -04:00
Thomas Harte
58312ea2b7 Updated to new standardisation on curly bracket placement. 2017-06-07 10:05:43 -04:00
Thomas Harte
cb534d8b85 Corrected comment. 2017-06-07 10:05:16 -04:00
Thomas Harte
4677cebf40 Rejigged to correct: spaces go after bits, not after bytes. 2017-06-06 18:29:15 -04:00
Thomas Harte
7399f3d798 Caveman debugging in place, it looks like this file is returning nonsense. 2017-06-06 18:18:55 -04:00
Thomas Harte
faeecf7665 Made sure that there's nothing but silence at the end of the tape, even if the .O file is too long. 2017-06-06 18:16:47 -04:00
Thomas Harte
8c1769f157 Made a quick attempt at serialising from ZX80 .O to waves. 2017-06-04 16:59:26 -04:00
Thomas Harte
655809517c Ensured that there is a subclass of file that is entrusted to load .O/.80 files, and that the code routes such files to it, noting that it should consider whether a ZX80 is required. 2017-06-04 16:37:03 -04:00
Thomas Harte
2807e3134f Implemented speedy header finding. So that's half of it. 2017-05-07 20:32:48 -04:00
Thomas Harte
3f7f2c6117 'Tape' has joined the new underscore orthodoxy. 2016-12-03 12:05:19 -05:00
Thomas Harte
8499783b14 Dragged multibyte primitives and signature checks up to the base class. Implemented support for Oric MFM-style .DSK, at the file format level. 2016-11-21 20:47:16 +08:00
Thomas Harte
31c2548804 Created a base class for the boilerplate fopen stuff, switched as many classes as possible to its use, switched to postfix underscores and non-camelCase names. 2016-11-21 20:14:09 +08:00
Thomas Harte
97811fe590 Made minor fix to ensure that a header that appears to extend beyond the end of an Oric .TAP doesn't create an ostensibly endless tape. 2016-11-15 12:02:03 +08:00
Thomas Harte
fce48b9b8c I am instructed that the Oric actually catches only positive transitions, and compares the distance between those to a threshold. So here's an altered version of the tape parser that does that. 2016-11-09 06:37:10 -05:00
Thomas Harte
c257e7f58d Implemented better sync-to-zero and discovered a header counting bug plus, probably, a misleading representation of gaps in the Oric TAP decoder. 2016-11-07 20:17:06 -05:00
Thomas Harte
80702616ea Had a quick go at using the Oric parser for static analysis. Found out that synchronisation is lost. Need to investigate. 2016-11-06 22:56:38 -05:00
Thomas Harte
7205c3f82b Made an attempt to build in Oric slow/fast detection. 2016-11-06 21:31:10 -05:00
Thomas Harte
d1ef2f7c63 Made an attempt to consolidate what I learnt of Oric encoding while building this hastily and untidily directly into the Oric implementation.
(while adding support for the slow tape encoding mode)
2016-11-06 19:22:09 -05:00
Thomas Harte
353c1c8ea3 Shifted ownership of PETSCII -> string conversion down to the storage layer, where it's useful for tape parsing. 2016-11-06 18:43:51 -05:00
Thomas Harte
1b15bc3a6c Started relocating the tape parsers down from static analyser to storage, to signify that they may be used by the emulation (if fast loading is supported on that machine). 2016-11-06 16:13:13 -05:00
Thomas Harte
827a919368 This is an initial attempt at reading actual tape data. It loses sync though. 2016-11-02 22:30:53 -04:00
Thomas Harte
d3634488e6 Made an attempt better to deal with multiple-file TAPs; also started using a zero level for the header/data gap. 2016-10-24 21:59:06 -04:00
Thomas Harte
cbbd31c2e0 Explained what this recently factored-out class does, and removed code from the header. 2016-10-20 19:33:25 -04:00
Thomas Harte
cc0b70828b Removed attempt at multiple-file logic, at least for the time being. Starting to wonder whether I actually need anything beyond a literal streaming of bytes? 2016-10-16 22:15:24 -04:00
Thomas Harte
fae1bb0db9 First successful game loaded! It turns out exactly one '$' is correct. Probably. 2016-10-15 21:49:41 -04:00
Thomas Harte
952a24f769 A quick hard-wiring of the OricTAP code to get the first file in a .tap correct, damn the rest, and I'm getting some on-screen feedback. Hooray! 2016-10-15 21:39:53 -04:00
Thomas Harte
a608bbebfb Performed enough wiring to put the onus back onto OricTAP to do appropriate things. 2016-10-15 21:32:59 -04:00
Thomas Harte
6d7c3f6ac2 Factored out the now-sampling binary-level tape player from the Vic and connected it up to the Oric. 2016-10-15 21:21:18 -04:00
Thomas Harte
4f78d693e9 Reintroduced gap as a string of 1s, made an attempt to look up bit ordering. Still unclear on high/low versus low/high. 2016-10-11 08:07:51 -04:00
Thomas Harte
70f004efbb This may be feeding bits in the wrong direction or calculting the wrong parity or doing something else amiss but should now be correct as to bytes. 2016-10-11 07:57:10 -04:00
Thomas Harte
df01c78039 It's a bit of a mess but this is probably close to appropriate for Oric TAP files. 2016-10-11 07:39:48 -04:00
Thomas Harte
4010f36238 Ensured tape-formatted PRGs reach a conclusion. 2016-09-29 19:12:26 -04:00
Thomas Harte
dbb758aaf1 Workaround for a weird bug that suddenly appears to manifest: gzgetc is returning the file name, not bytes from the file. Seems to be related to improper initialisation of the next field within the gzFile header. I can't immediately see where ZLib intends to do that so it's a bit mysterious. But the larger-than-8 readers could probably save time by reading in blocks anyway. 2016-09-17 22:01:25 -04:00
Thomas Harte
e3571e8b9e Added insurance against an infinite loop should the tape be exhausted. 2016-09-12 22:22:23 -04:00
Thomas Harte
eeec516fa6 Implemented seeking on tapes, mucked about a bit more with the Commodore analyser, at least temporarily removed cropping from the Vic emulator. 2016-09-11 17:09:00 -04:00
Thomas Harte
1de6097f06 Shuffled C stuff out on top. 2016-09-08 21:08:03 -04:00
Thomas Harte
24251a2768 Negligible indentation fix. 2016-09-08 07:49:43 -04:00
Thomas Harte
01e5dae512 Threw in 300-baud support. Why not? 2016-09-08 07:48:20 -04:00
Thomas Harte
3e925e80a3 Added a field-filling constructor for pulses. 2016-09-08 07:41:44 -04:00
Thomas Harte
1e7b5330f5 More or less rewrote, to use a filled-per-chunk buffer of upcoming pulses rather than working them out as requests come. Which is more straightforward — all the code for a particular chunk goes in exactly one place — and much easier to extend. So threw in a provisional 0104 implementation. 2016-09-08 07:41:26 -04:00