1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-07-04 18:29:40 +00:00
Commit Graph

147 Commits

Author SHA1 Message Date
Thomas Harte
9827466297 Minor post-haste cleaning. 2016-09-15 07:58:32 -04:00
Thomas Harte
8992feb8cd Completed a first parse at the GCR parser, proving how incredibly slow my drive is. 2016-09-15 07:54:42 -04:00
Thomas Harte
9d6dcb80a7 Started work on a GCR parser and the helper functions that lie behind that. 2016-09-13 21:53:36 -04:00
Thomas Harte
df7aed7e8b The Commodore analyser now at least hands off to somebody else a chance to parse disks. 2016-09-13 07:26:51 -04:00
Thomas Harte
40660fe680 Made yet another guess at Commodore analysis. Elevated fast tape-related unnatural speed up to the OS-side mechanisms. 2016-09-12 22:06:03 -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
1ca4a2a012 Sought to be more intelligent in handling cases where the two parts of a header or data field don't match — if either looks good then use it in isolation. 2016-09-10 17:01:17 -04:00
Thomas Harte
a5b17932ca Attempted further to improve memory model guesswork. With many further improvements to make... 2016-09-08 21:09:37 -04:00
Thomas Harte
27fedaf892 The error flag is no longer directly exposed. I also tweaked the Commodore import numbers just a touch. But I think I need proper calibration. 2016-09-08 21:09:05 -04:00
Thomas Harte
2b053436e5 Missed from previous commit; removed assumption that get_next_data always succeeds. 2016-09-08 07:39:43 -04:00
Thomas Harte
54557d7f13 Added reminder, ensured the couldn't-find-data case doesn't cause a crash. Though it should imply some manual investigation. 2016-09-08 07:39:17 -04:00
Thomas Harte
50175a9aed Added logic to try to spot when the first program is BASIC and, if so, what the correct memory model is, then to get that information to the Vic. Though it currently then gets overwritten by the view controller. Grrrr. 2016-09-07 22:17:19 -04:00
Thomas Harte
556b77f2fd Added some TODOs, re-enabled master Acorn decision. 2016-09-07 07:39:47 -04:00
Thomas Harte
6522a9a6c2 Pulled the strands together provisionally to complete Commodore ROM-format tape parsing. Things are going to get complicated if or when I need to tackle turbo loaders. 2016-09-07 07:34:48 -04:00
Thomas Harte
d66516fd62 Finished parser for data blocks. 2016-09-06 22:10:33 -04:00
Thomas Harte
bdebc18e0a Added a header parser for Commodore tapes. No time to grab file bodies now; time to go to work. 2016-09-06 08:49:32 -04:00
Thomas Harte
8901e94f0f Fixed: was counting between low->high transitions rather than vice versa by adding low time then checking. 2016-09-06 07:06:46 -04:00
Thomas Harte
149cbb327b Made something of a first attempt at a parser. Which is failing terribly. 2016-09-06 06:59:51 -04:00
Thomas Harte
8b933182af Added enough wiring (hopefully) that the Commodore tape's GetFiles should be called when appropriate. 2016-09-06 06:39:40 -04:00
Thomas Harte
cfe8251166 Further documented interface, fixed a potential parsing blockage. 2016-09-05 22:12:52 -04:00
Thomas Harte
963e307d0c Increased documentation. 2016-09-05 22:06:39 -04:00
Thomas Harte
05c24222d8 Liberated the tape parser template. 2016-09-05 20:02:35 -04:00
Thomas Harte
463b74301d Sought to reduce the amount of heap nonsense. 2016-09-05 19:59:58 -04:00
Thomas Harte
11850b872d Sought to emulate 0111 as a longer 0110 to test a particular HQ UEF. Some progress. Not great. 2016-09-05 18:28:43 -04:00
Thomas Harte
6239297212 Fixed off-by-one error on filename lengths and order-of-operations mistake preventing data CRC from being checked. 2016-09-05 18:15:15 -04:00
Thomas Harte
e25fee2332 I'm going back to believing in this test. 2016-09-05 17:55:40 -04:00
Thomas Harte
68874b6080 Fixed accidental implicit assumption that Acorn files will be at least two blocks. 2016-09-05 17:53:57 -04:00
Thomas Harte
93f5b5303e Factored out the stuff I expect to be common to this tape nonsense, started looking at the one currently-failing tape. More on the latter to do. 2016-09-05 17:17:52 -04:00
Thomas Harte
6f62803814 Resolved dropping of every other file. 2016-09-01 08:35:28 -04:00
Thomas Harte
21e5f407d8 I need to get a bit more definitive on naming but this gets all the way to setting a configuration upon an Electron. 2016-08-31 22:03:42 -04:00
Thomas Harte
9d7962d6c0 Closed the loop on Electron analysis for now. Including loading command detection. 2016-08-31 20:24:13 -04:00
Thomas Harte
d8c0da7ccb I think this should lead to a full representation of files on an Acorn tape, but subject to is_at_end working. 2016-08-31 19:57:09 -04:00
Thomas Harte
7b5d5858ff CRCs are just stored reversed. Of course. So this should be sufficient to load each chunk of an Acorn file. 2016-08-30 08:13:40 -04:00
Thomas Harte
b3521ed187 Started working towards capturing everything there is to know about a file. CRC calculation appears to be flawed somehow at the moment. 2016-08-30 07:38:08 -04:00
Thomas Harte
6218f05b8c This loads the name. That'll do for now. 2016-08-29 22:05:06 -04:00
Thomas Harte
963a479908 Made a quick first attempt at getting a file name from Acorn tape, failing terribly but at least formalising tapes being able to signal their end. 2016-08-29 21:53:06 -04:00
Thomas Harte
0032ad2634 Edging ever onwards; killed forced attempt at uniformity in targets, sketched out the interface for a next-file-from call to Acorn tapes. 2016-08-29 21:10:38 -04:00
Thomas Harte
d1abfc040c Addressed my dithering here: the file format containers themselves should do nothing but inspect the data to find out whether it is of the correct format. The machine steps are there for machine-specific validation. So it's probably easier to treat a binary ROM image just as a binary ROM image. Therefore, the Acorn-specific .rom detection is now in an Acorn-specific area. 2016-08-29 08:48:49 -04:00
Thomas Harte
d9f0065154 Sketched out just enough classes to get through the get-contents-into-memory step of static analysis. 2016-08-28 12:20:40 -04:00
Thomas Harte
24938326ac ROMs definitely have no behaviour other than responding to memory accesses. Cartridges might. So picked the more general term. Sketched out a class at least to parse PRG as though it were a cartridge. Hence the static analyser can guess at whether a PRG is a cartridge or an ordinary program. 2016-08-27 18:26:51 -04:00
Thomas Harte
a1b3a18d11 Started forcing a resolution on ROMs by doing. But have immediately misstepped. Rename coming momentarily... 2016-08-27 18:17:40 -04:00
Thomas Harte
56c0d70c1f Gave disks their own namespace. 2016-08-27 17:15:09 -04:00
Thomas Harte
c0402d0c2b Gave tapes their own namespace. 2016-08-27 17:09:45 -04:00
Thomas Harte
8c333059a8 Turning this into a slog: gave UEF a more appropriate name, got as far as now having to decide what to do about ROMs as to structure. I guess they're machine specific, so specific classes? 2016-08-27 16:40:21 -04:00
Thomas Harte
55ada536ac Added a test call, further mutated result structure. 2016-08-27 14:25:16 -04:00
Thomas Harte
e68ff64045 Actually, this is less prescriptive. 2016-08-27 13:42:51 -04:00
Thomas Harte
5ffd9e4f0d This is probably how the static analyser interface will look? 2016-08-23 21:35:59 -04:00