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 |
|