Thomas Harte
|
6a65c7a52a
|
Started working on a CPC-oriented analyser; for now I just want to be able to make a good guess at the appropriate file to load from a disk. As it turns out, the CPC simply adopts the CP/M format, so a generic parser is appropriate. This is its beginning.
|
2017-08-10 17:10:21 -04:00 |
|
Thomas Harte
|
484524d781
|
Implements RAM paging. The 6128 is now emulated.
|
2017-08-08 16:01:56 -04:00 |
|
Thomas Harte
|
caf3ac0645
|
Sought: (i) to instruct the CPC that it should be a 664, not a 464, if given a disk image (at least until I have RAM paging implemented for a 6128); (ii) to support ROM selection within the CPC and allow paging in of AMSDOS.
|
2017-08-05 19:20:38 -04:00 |
|
Thomas Harte
|
75c59fefab
|
Added an empty husk to begin support for Amstrad CPC disk image formats.
|
2017-08-05 10:02:10 -04:00 |
|
Thomas Harte
|
5b5720fac0
|
Added to the static analyser the most basic through-path for Amstrad CPC content.
|
2017-07-30 21:15:20 -04:00 |
|
Thomas Harte
|
d25d7d7d40
|
Added the Amstrad CPC as a named target and declared support for its CDT file format.
|
2017-07-29 21:56:33 -04:00 |
|
Thomas Harte
|
8a2bdb8d22
|
Converted the TimedEventLoop and the things that sit atop it into ClockReceiver s.
|
2017-07-24 21:19:05 -04:00 |
|
Thomas Harte
|
1bbb4cb478
|
Increased documentation.
|
2017-07-22 17:39:51 -04:00 |
|
Thomas Harte
|
6633537fb8
|
Discovering that there is such a thing as P81 — a ZX81 file without the name omitted — added support for it. Extended FileHolder while I was here to retain the file name and be able to supply its extension, as my quick-fix test-the-last-character approach to o/p/80/81 discrimination stops working with p81 thrown into the mix and this feels like the correct factoring.
|
2017-07-22 16:02:25 -04:00 |
|
Thomas Harte
|
807e1d36d5
|
Resolved signedness mismatch.
|
2017-07-21 20:57:48 -04:00 |
|
Thomas Harte
|
3c8bf52fb8
|
Believing my 64kb memory map not currently to work, temporarily disabled reference to it in the static analyser.
|
2017-07-21 20:43:56 -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
|
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
|
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
|
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
|
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
|
77aa3c187e
|
Rebranded ZX80O as ZX80O81P, with an eye to making it accept ZX81 .p files. Adjusted the initial selection part of the static analyser appropriately.
|
2017-06-11 21:38:32 -04:00 |
|
Thomas Harte
|
8116f85479
|
Allowed the static analyser to specify a ZX80 or 81, and a memory model. Neither is respected yet in the machine.
|
2017-06-11 19:12:20 -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
|
350b36df25
|
Wired in an attempted usage of the new tape parser.
|
2017-06-07 17:30:53 -04:00 |
|
Thomas Harte
|
d2637123c4
|
Added necessary support to get as far as an empty window when attempting to load a piece of ZX80 software.
|
2017-06-04 17:55:19 -04:00 |
|
Thomas Harte
|
02b7c3d1b0
|
Added the necessary wiring to get into a ZX80/81-oriented part of the static analyser, which could in principle post a ZX80 target.
|
2017-06-04 17:04:06 -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
|
df4d4467b3
|
Ensured GCR parser spins the disk.
|
2017-05-16 20:53:06 -04:00 |
|
Thomas Harte
|
1f56e85f6d
|
Centralised resetting of tape files within the static analyser, having implemented it patchily.
|
2017-05-06 22:19:08 -04:00 |
|
Thomas Harte
|
6a37a02eee
|
Switched to std::ostringstream to avoid the need to make a string length count (and I was one off when loading a disk).
|
2017-05-06 19:55:42 -04:00 |
|
Thomas Harte
|
e01f3f06c8
|
Completed curly bracket movement.
|
2017-03-26 14:34:47 -04:00 |
|
Thomas Harte
|
a6897ebde0
|
Added an attempt to distinguish the MegaBoy (now with proper capitalisation) and a test for it.
|
2017-03-13 20:43:12 -04:00 |
|
Thomas Harte
|
582da14a14
|
Added an enumerated type and detection of Pitfall 2.
|
2017-03-13 08:15:36 -04:00 |
|
Thomas Harte
|
a9964ee0c8
|
Simplified CommaVid test.
|
2017-03-12 22:14:39 -04:00 |
|
Thomas Harte
|
b671df9906
|
'Perfected' the Activision stack paging detector.
|
2017-03-12 22:11:58 -04:00 |
|
Thomas Harte
|
0bcf9c30de
|
Added an attempt, at least, at spotting the Activision titles. Which reduces back to only the one breakage, but this is getting a bit too much like spotting the hard-coded bytes.
|
2017-03-12 21:14:12 -04:00 |
|
Thomas Harte
|
8c5e39c0c5
|
Adjusted Super Chip test to look for two portions of 128 bytes. It now spots Dig Dug and doesn't acquire any further false positives amongst the tested set. So failure to spot the Activision stack-based paging mechanism is now the only remaining failure.
|
2017-03-12 20:39:45 -04:00 |
|
Thomas Harte
|
cae48aaa95
|
Added an MNetwork test. Reduces failures to two of the set that I have: Dig Dug, which uses a Super Chip but has inconsistent bytes in its image, and Decathlon, which uses the Activision stack paging mechanism for which I don't yet have detection code.
|
2017-03-12 18:54:49 -04:00 |
|
Thomas Harte
|
37f4f6ba14
|
Cut down to one disassembly, now I know a bit more about how the non-Atari schemes work.
|
2017-03-12 17:50:24 -04:00 |
|
Thomas Harte
|
62b3c9dda8
|
Corrected 8k Tigervision test, putting detection failures below 10 (i.e. at 9) for the first time.
|
2017-03-12 15:41:48 -04:00 |
|
Thomas Harte
|
af9b7fbc30
|
Switched to a voting method for classifying 8kb ROMs.
|
2017-03-12 15:36:01 -04:00 |
|
Thomas Harte
|
de347ad7c8
|
Improved CBS RAM Plus and Super Chip detection exclusion, reducing error count to 15.
|
2017-03-12 14:03:17 -04:00 |
|
Thomas Harte
|
a4bba8a92e
|
Made a couple of lookup table fixes and corrected RAM region detection windows; failures now down to 19.
|
2017-03-11 23:18:30 -05:00 |
|
Thomas Harte
|
c7e973aab4
|
Extended test set a little, corrected current failures.
|
2017-03-11 20:51:25 -05:00 |
|
Thomas Harte
|
1c9dffe41f
|
Added an earlier exit.
|
2017-03-11 19:38:05 -05:00 |
|
Thomas Harte
|
bce5abd33b
|
Made an attempt to spot Tigervision paging requests.
|
2017-03-11 13:12:23 -05:00 |
|
Thomas Harte
|
33bda2d40c
|
Switched to image inspection for RAM guesses rather than disassembly. Which fixes the other Parker Bros titles.
|
2017-03-11 13:04:23 -05:00 |
|
Thomas Harte
|
2b5e3a600e
|
Made a first attempt at implementing the Parker Bros pager within the emulation.
|
2017-03-11 12:43:12 -05:00 |
|
Thomas Harte
|
8dbf9fd302
|
Started adding an attempt to distinguish between Atari and Parker Bros paging schemes.
|
2017-03-11 11:41:18 -05:00 |
|
Thomas Harte
|
abd4d2c42a
|
Extended has-RAM test to check all banks.
|
2017-03-05 11:58:52 -05:00 |
|
Thomas Harte
|
2a81ae1dec
|
Now required: at least four stores for RAM to be detected.
|
2017-02-28 20:28:14 -05:00 |
|
Thomas Harte
|
8f8b103224
|
Slightly tidier. Also in the interim: confirmed no remaining false positives or negatives from the existing published set.
|
2017-02-27 08:42:43 -05:00 |
|
Thomas Harte
|
1af415a88e
|
Okay, this is a bit desperate, but worth investigation.
|
2017-02-27 08:39:53 -05:00 |
|
Thomas Harte
|
fe07cd0248
|
Made another attempt to distinguish.
|
2017-02-27 08:06:57 -05:00 |
|
Thomas Harte
|
a3d339092e
|
Corrected callers of the 6502 disassembler.
|
2017-02-27 07:56:59 -05:00 |
|
Thomas Harte
|
837216ee9a
|
Adjusted semantics to allow for more complicated mappings, e.g. whereby supplied data repeats itself within a range.
|
2017-02-27 07:49:33 -05:00 |
|
Thomas Harte
|
0273860018
|
Sought to weed out further false positives on CommaVid, partly by introducing a record of internal calls, to pair with the now confusingly named outward_calls.
|
2017-02-26 21:58:09 -05:00 |
|
Thomas Harte
|
82c089cde4
|
Factored out paging type detection and, from that, took out 2k cartridge detection. Added an attempt at a CommaVid detector, which does not currently work.
|
2017-02-26 21:24:54 -05:00 |
|
Thomas Harte
|
8b1ec827e0
|
Made an initial, very naive attempt to recognise two types of expanded cartridge: those with a superchip and those with a CBS RAM+, in both cases by looking for instructions that appear to write into cartridge space.
|
2017-02-26 17:11:57 -05:00 |
|
Thomas Harte
|
153525f23d
|
Extended quality of known address read/write/modify mapping, and started recording internal accesses in addition to external.
|
2017-02-26 17:10:33 -05:00 |
|
Thomas Harte
|
87afa9140e
|
Took some provision steps towards paging type autodetection and communication. But I think this is a distraction.
|
2017-02-20 17:44:36 -05:00 |
|
Thomas Harte
|
7ab6023a0c
|
Ensured no attempt to call strcmp on null if a file name without an extension got into here.
|
2017-02-11 13:36:36 -05:00 |
|
Thomas Harte
|
f3d9aec8fc
|
Fixed Electron's support for automatically booting floppy disks.
|
2017-01-08 14:47:41 -05:00 |
|
Thomas Harte
|
e5cc77f22d
|
Added an extra sanity check.
|
2016-12-30 17:29:51 -05:00 |
|
Thomas Harte
|
beaa868079
|
Factored the MFM parser out into encodings.
|
2016-12-25 20:00:57 -05:00 |
|
Thomas Harte
|
4d3bdf8c7c
|
Fixed failure to initialise the Microdisc flag if loading a tape.
|
2016-12-06 20:29:05 -05:00 |
|
Thomas Harte
|
59e2a09107
|
Added assumption that Microdisc => BASIC 1.1.
|
2016-11-22 08:12:24 +08:00 |
|
Thomas Harte
|
ea33a28695
|
Any Oric-format disks that are inserted now make it all the way to the Oric, along with a request to emulate the Microdisc. It has received a copy of the ROM. The ball is entirely in its court now.
|
2016-11-21 20:59:25 +08: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
|
8b40ae03ca
|
Extended analysis to spot IRQ and NMI vector changes, for titles that simply adjust those then exit. Ensured Oric emulator can type and load quickly on an Oric 1 just as well as on an Atmos.
|
2016-11-15 11:05:53 +08:00 |
|
Thomas Harte
|
e2cdfae8a7
|
The emulated Oric now has access to both versions of the BASIC ROM and picks between them based on the static analyser's recommendation.
|
2016-11-15 10:39:16 +08:00 |
|
Thomas Harte
|
ab64731d51
|
Fixed off-by-one recording of disasssmbled addresses; added logic to the Oric static analyser to try to guess between BASIC 1.1 (the preferred option in a tie-break or if no information is found) and BASIC 1.0.
|
2016-11-15 10:31:47 +08:00 |
|
Thomas Harte
|
1bffc70494
|
In theory that's a full disassembler, at least as far as I want to go for now. Time to test.
|
2016-11-15 08:19:57 +08:00 |
|
Thomas Harte
|
a5fc45e66e
|
Started fleshing this out; addressing modes are completely decoded, along with a bunch of opcodes, but appropriate address advancement isn't in yet, and neither is filling in derived metadata.
|
2016-11-14 12:19:09 +08:00 |
|
Thomas Harte
|
1b66847647
|
Started trying to implement something sufficient of a 6502 disassembler.
|
2016-11-11 20:10:58 -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
|
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
|
093eb55fc6
|
The parsers no longer own a tape, merely taking one as an argument. So they can be an adjunct.
|
2016-11-06 15:25:18 -05:00 |
|
Thomas Harte
|
8c70dc5891
|
Implemented typer for the Oric, and I'm starting to think the code is a bit too repetitious. Refactoring will be forthcoming. Added CLOAD"" as the loading command for all Oric software.
|
2016-11-03 22:14:40 -04:00 |
|
Thomas Harte
|
4a062c616f
|
Added enough wiring to get Oric TAPs through to a completely unimplemented Oric emulation.
|
2016-10-11 22:20:13 -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
|
2411f192f7
|
Switched back to full typing, even for DFS loading. It saves having to worry about sideways RAM filing systems and shift (if that's even the issue).
|
2016-10-01 21:09:28 -04:00 |
|
Thomas Harte
|
abf47efd40
|
Factored out Commodore is-a-ROM test, allowing it to be used from the Commodore analyser and thereby allowing ROMs to get as far as the machine again.
|
2016-09-29 19:39:13 -04:00 |
|
Thomas Harte
|
79412dc84d
|
Upped MFM clock cycles, switched back to using the typer for the ADFS and adjusted ADFS ROM slots.
|
2016-09-28 21:28:34 -04:00 |
|
Thomas Harte
|
572d5587d9
|
Made a first stab at enabling multi-disk machines and thereby obeying (some of) the Plus 3's status register.
|
2016-09-25 21:24:16 -04:00 |
|
Thomas Harte
|
9bbcbd1001
|
Renamed class, intending to turn a Disk::Drive into literally just that, and have a thing with a PLL that consumes events be a Controller .
|
2016-09-25 20:05:56 -04:00 |
|
Thomas Harte
|
7f4c78139c
|
Attempted to ensure that ADFS disks get to an appropriately-configured Electron. Not immediately sure why the shift press isn't working; doesn't need to be dealt with immediately.
|
2016-09-25 19:59:46 -04:00 |
|
Thomas Harte
|
523dbb9678
|
This'll do for getting the ADF into the machine.
|
2016-09-25 18:32:26 -04:00 |
|
Thomas Harte
|
de863719d0
|
Made a first attempt at Acorn ADFS support plus the start of a suitable analyser.
|
2016-09-25 17:46:11 -04:00 |
|
Thomas Harte
|
6084020ab3
|
Added shift-break as a better way to boot suitable disks. Continued attempting to clean the 1770.
|
2016-09-25 14:11:22 -04:00 |
|
Thomas Harte
|
67b54269c9
|
Added typer support for loading from DFS. It'll do for now.
|
2016-09-24 22:52:49 -04:00 |
|
Thomas Harte
|
a9e65e9b7a
|
Tweaked disk side density, added call-outs to a WD1770 if the Electron had one (albeit without run_for_cycles yet as I need to figure out the clock rate), added a shell of the basic functions of the WD1770. No implementation yet.
|
2016-09-19 22:06:56 -04:00 |
|
Thomas Harte
|
c9dd07cecd
|
DFS disks are now delivered right up to the emulator's front door. So everything's in place to get started on that WD1770 nonsense.
|
2016-09-19 08:29:23 -04:00 |
|
Thomas Harte
|
e025768604
|
Two passes of the index hole => no sector found.
|
2016-09-19 08:17:07 -04:00 |
|
Thomas Harte
|
64f2538b1f
|
Added CRC checking to DFS comprehension; fixed a bunch of places where I'd used Objective-C's #import rather than #include .
|
2016-09-19 08:16:06 -04:00 |
|
Thomas Harte
|
c58cdbf151
|
Minor tweak to support zero-length files.
|
2016-09-19 07:37:11 -04:00 |
|
Thomas Harte
|
ca4df5dd61
|
Introduced a full container for disk catalogues, so as also to capture non-file information, and 'completed' (i.e. albeit that CRC checking is still absent) DFS catalogue decoding.
|
2016-09-19 07:35:02 -04:00 |
|
Thomas Harte
|
231f3dd0f4
|
This is exactly as far as I'm going to get with DFS parsing today, I think.
|
2016-09-18 22:18:01 -04:00 |
|
Thomas Harte
|
b1e7f2dfd0
|
There's no cache and no CRC checking yet, but this is probably a rough outline of an FM parser.
|
2016-09-18 22:03:06 -04:00 |
|
Thomas Harte
|
0ce901bd48
|
Added necessary wiring to get as far as asking an arm of the analyser to check out an Acorn disk image.
|
2016-09-18 21:18:11 -04:00 |
|
Thomas Harte
|
91cd7e143b
|
Started on the SSD/DSD support. Realised I had ommitted multiple head support from my disk class. Fixed that.
|
2016-09-18 19:21:02 -04:00 |
|
Thomas Harte
|
5ebca62bba
|
Now the CRC is a factoring out.
|
2016-09-18 18:35:50 -04:00 |
|