Commit Graph

63 Commits

Author SHA1 Message Date
David Given
6d3969ab79 Split the dependency so that the encoders/decoders don't depend on arch. 2024-10-16 21:00:48 +02:00
David Given
c5373480ba Move a lot of the data-handling utilities into their own module. 2024-10-13 13:35:48 +02:00
David Given
e1f2494966 Create a config module containing all the configuration, proto and flags
stuff.
2024-10-13 11:57:18 +02:00
David Given
7e80e255a4 Config no longer depends on Flux/Image/Encode/Decode, breaking a circular
dependency.
2024-10-12 01:49:13 +02:00
David Given
ca940d1599 Refactor core libraries into their own library. 2024-10-01 20:36:53 +02:00
David Given
533b217c8f Eliminate the broken tpi system for a simple drive/format type field. 2023-10-29 21:10:14 +01:00
David Given
f5f223f622 First steps towards reworking the build system... again. 2023-10-21 23:02:46 +02:00
David Given
44160e66ac Merge branch 'master' into ms2000 2023-08-19 22:59:31 +02:00
David Given
446b965794 Handle Roland extents properly if the directory entries are in the wrong order.
Deal with block numbers >39 (they go in the bottom of the disk).
2023-07-31 22:20:08 +02:00
David Given
20bdacbecf Add initial support for the Roland-D20 filesystem. 2023-07-26 22:31:20 +02:00
David Given
082fe4e787 Hack in boilerplate for a ZDos filesystem. 2023-07-24 08:18:18 +02:00
David Given
b9ef5b7db8 Rename all the flux and image types to prefix the enums, due to them being in
the global namespace now.
2023-07-24 02:18:53 +02:00
David Given
9867f8c302 Combine enums for flux source/sink types. config.cc now knows whether they're
read-only, write-only, and read-write.
2023-07-24 00:50:54 +02:00
dg
873e05051c Massive rework of the config system to be clearer, more robust, and more
flexible. (But it doesn't check options any more.)
2023-05-14 22:04:51 +00:00
dg
dcdb3e4455 Encoders and decoders are routed through Config. 2023-05-12 23:58:44 +00:00
dg
e61eeb8c6f Fetching the flux source is now done through Config. 2023-05-12 21:25:54 +00:00
dg
42e6c11081 Migrate to a new global config object. 2023-05-10 23:13:33 +00:00
dg
9ba3f90f1e Change the global config variable to a globalConfig() function. 2023-05-10 22:07:17 +00:00
dg
466c3c34e5 Replace the Error() object with an error() function which takes fmt
formatspecs, making for much cleaner code. Reformatted everything.

This actually happened in multiple steps but then I corrupted my local
repository and I had to recover from the working tree.
2023-05-09 20:59:44 +00:00
dg
10605b3908 Add a read-only MS2000 file system, and a format (with no encoder or decoder). 2023-05-06 00:21:10 +00:00
dg
2dc649ef09 Add read-only support for LIF filesystems. 2023-05-04 21:04:55 +00:00
David Given
b78a057c81 Merge branch 'master' into basis 2023-03-31 22:10:47 +01:00
dg
c28f757c5c Add a very prototype AppleDOS VFS plugin. 2023-03-28 19:29:02 +00:00
dg
25ffd900c8 Realise that the PME format is HCS. Add a really basic and probably broken
PHILE filesystem reader.
2023-03-26 18:21:51 +00:00
dg
ec1bcdb9e5 Add a simple Smaky 6 filesystem backend. 2022-11-27 22:22:59 +00:00
dg
46ce882daa Allow implicit creation of disk images when writing. 2022-11-27 11:09:46 +00:00
David Given
345cd6bd92 Convert the VFS protos to use enums rather than oneofs. 2022-11-20 10:37:45 +01:00
David Given
48540245b5 Convert the imagereader/writer to use proto enums rather than oneofs. 2022-11-20 10:25:19 +01:00
David Given
088bd9434d Switch from using a oneof to an explicit enum for the flux source/sink
configurations, as this allows default options for multiple source/sink types.
2022-11-19 22:52:52 +01:00
David Given
88fc7ff9c3 Begin cleaning up the Layout stuff. 2022-09-15 21:45:12 +02:00
David Given
1267191e8e Abstract is for Java. 2022-09-12 23:52:24 +02:00
David Given
0c40a3e79c File system mapping now sort of works in the filesystem, but there are
problems. These are potentially due to an incorrect Prodos mapping but I'm not
sure.
2022-09-11 19:01:25 +02:00
David Given
3cb098f9ba Rip out the old approach to soft sector remapping as it wasn't working. 2022-09-11 17:05:40 +02:00
David Given
ea1ab029f3 Add a very untested ProDOS filesystem module. 2022-09-11 13:19:15 +02:00
David Given
085ad5f2a4 Actually start using the new physical sector stuff. 2022-09-10 20:43:24 +02:00
David Given
a6db36e7b3 Convert from LayoutData to Layout. 2022-09-10 19:53:05 +02:00
David Given
003e919bd5 Formatting now works rather better, but this has revealed a problem with the
mapper --- which needs to switch to using Layout anyway.
2022-09-09 00:34:44 +02:00
David Given
6294bc4505 Drag-and-drop for moving one file at a time works... badly. 2022-09-08 00:08:31 +02:00
David Given
326bc931ad You can write back disk images from the browser now. 2022-09-07 20:49:16 +02:00
David Given
734913f638 Read only media is now supported. Fix some threading race conditions where I
was calling the filesystem from the UI thread.
2022-09-07 20:08:28 +02:00
David Given
b2eba66bff You can format disks now. 2022-09-05 22:13:41 +02:00
David Given
39b761ea16 Add an (unimplemented) rename operation. 2022-09-04 22:47:25 +02:00
David Given
64689cf59d Add some disk flushing machinery. 2022-09-04 22:28:38 +02:00
David Given
6c0bb3781a Allow probing of the filesystem capabilities. 2022-09-04 20:42:51 +02:00
David Given
80ec4407bc Attributes are now returned as part of the dirent. 2022-09-04 19:30:12 +02:00
David Given
92ae233f39 First draft of the filesystem browser works. 2022-09-04 17:59:56 +02:00
David Given
c375b73db9 Dirents need to be shared. 2022-08-31 21:41:11 +02:00
David Given
d44b83e60d Some API tidying. 2022-08-31 20:01:58 +02:00
David Given
6c117df0a3 Allow quick formatting. 2022-08-31 00:32:31 +02:00
David Given
027af76d5d Formatting HFS disks works. 2022-08-30 23:47:03 +02:00