Coder Social home page Coder Social logo

acornfsutils's Introduction

Acorn Filing System Utilities

Introduction

This is a set of utilities to work with the Acorn filing systems DFS and the 8-bit version of ADFS. The programs can work with simple disc image files that contain these filing systems and, on Linux where devices are accessible as files, on actual devices.

The utilities auto-detect between ADFS and DFS and are also able to work with disc image files from IDE emulations that have zero bytes between the real data bytes - this is also detected automatically.

Usage Summary

This is modelled after similar programs like cpmtools and dosfstools so files on the host (PC) are referred to by a simple name and files inside an Acorn filing system image are referred to with a name like:

img-file:acorn-filename

i.e. the name before the colon is the name of a disk image file or device and the name after the colon is the name of a file within that disk image.

afsls <img-file[:pattern]> [...]

afschk <img-file>

afscp [ -r ] <src> [ <src> ... ] <dest>

afsmkdir <directory> [ <directory> ... ]

afstitle <img-file> <title>

acunzip <zip-file> <...>

scsi2ide <scsi-file> <ide-file>

ide2scsi <ide-file> <scsi-file>

acornfsutils's People

Contributors

hoglet67 avatar stevefosdick avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

hoglet67

acornfsutils's Issues

Feature Request: Recursive copy (including directory creation)

My use case is building a ARM Eval Co Pro hard disk image from the six original floppy disks.

Some of the ARM disks contain sub-directories, for example:

$ afstree disc4.adl 
--RW----- 00000000 00000000         15 000007 !boot
D-RW----- 00000000 00000000      1,280 000340 image
--RW----- 00001000 00001000     29,832 000345 image.editor
--RW----- 00001000 00001000     55,800 0003BA image.lspass
--RW----- 00001000 00001000      4,624 000494 image.lspavl
--RW----- 00001000 00001000     53,380 0004A7 image.lspcomp
--RW----- 00001000 00001000      4,660 000578 image.lspdiss
--RW----- 00001000 00001000      8,852 00058B image.lspfns
--RW----- 00001000 00001000      7,356 0005AE image.lspfns1
--RW----- 00001000 00001000      6,484 0005CB image.lspgraf
--RW----- 00001000 00001000     21,340 0005E5 image.lspread
--RW----- 00001000 00001000      7,040 000639 image.lsprint
--RW----- 00001000 00001000    105,720 000655 image.lsproot
--RW----- 00001000 00001000    210,368 000008 lisp
--RW----- 00000000 00000000        449 00033E README

As far as I can tell, there is no way to handle this at present with AcornFsUtils, because there is no way to create a new directory on an ADFS destination.

Do you have any thought on this?

I'm happy to do some of the implementation...

I was thinking you would need to:

  1. Add mkdir() and rmdir() to the acorn_fs interface and implement these in acorn-adfs.c
  2. Add a -r (recursive) option to the afscp command
  3. Update the afscp code so that if a directory is encountered in the source list then it is copied recursively to the destination (creating directories as needed)

Even just (1) alone would be useful. I could then at least manually create the required directory structure.

Dave

afscp coredumps when a directory is full

Full seems to be 47 entries.

Here's a stack trace:

(gdb) bt
#0  __memmove_ssse3 () at ../sysdeps/x86_64/multiarch/memcpy-ssse3.S:127
#1  0x000055e634cee828 in dir_makeslot (parent=0x7fff7f2d6290, ent=0x55e6361e766b "") at acorn-adfs.c:482
#2  0x000055e634cee94b in adfs_save (fs=0x55e63617c260, obj=0x7fff7f2d6150, dest=0x7fff7f2d6290) at acorn-adfs.c:504
#3  0x000055e634ceb752 in save_file (obj=0x7fff7f2d6150, ctx=0x7fff7f2d6260) at afscp.c:195
#4  0x000055e634cebb72 in copy_loop (argc=1, argv=0x7fff7f2d6570, ctx=0x7fff7f2d6260) at afscp.c:262
#5  0x000055e634cebcf7 in acorn_dest (argc=49, argv=0x7fff7f2d63f8, fsname=0x7fff7f2d82b1 "AcornFileStore.dat", dest=0x55e634cf054f "$")
    at afscp.c:293
#6  0x000055e634cec094 in main (argc=49, argv=0x7fff7f2d63f8) at afscp.c:358

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.