Compare commits
5 Commits
c9540e3524
...
b45276aa45
Author | SHA1 | Date |
---|---|---|
michaelangel007 | b45276aa45 | |
michaelangel007 | 02b879a851 | |
michaelangel007 | 53a9dab13e | |
michaelangel007 | 9cf56c7331 | |
michaelangel007 | f1552156e8 |
16
README.md
16
README.md
|
@ -1,6 +1,8 @@
|
||||||
# Apple 2 ProDOS (Virtual Disk) Utilities
|
# Apple 2 ProDOS (Virtual Disk) Utilities
|
||||||
|
|
||||||
`ProdosFS` is a command-line utility to create and manipulate virtual ProDOS volume images for emulators.
|
`ProdosFS` is a command-line utility to create and manipulate virtual ProDOS volume images for emulators. The file system is Apple's ProDOS hence the name.
|
||||||
|
|
||||||
|
It is written in standard C++ so no bloated shenanigans like Java or Python are needed.
|
||||||
|
|
||||||
**NOTE:** This is still a work-in-progress.
|
**NOTE:** This is still a work-in-progress.
|
||||||
|
|
||||||
|
@ -10,13 +12,15 @@ Commands that work:
|
||||||
* [x] catalog
|
* [x] catalog
|
||||||
* [x] cp (Only Seed (file size <= 512 bytes), and Sapling files (file size <= 128 KB) are currently supported)
|
* [x] cp (Only Seed (file size <= 512 bytes), and Sapling files (file size <= 128 KB) are currently supported)
|
||||||
* [x] dir
|
* [x] dir
|
||||||
* [ ] get
|
* [x] get
|
||||||
* [x] init
|
* [x] init
|
||||||
* [x] ls
|
* [x] ls
|
||||||
* [ ] mkdir
|
|
||||||
* [ ] rm
|
|
||||||
* [ ] rmdir
|
|
||||||
|
|
||||||
|
Commands yet to be implemented:
|
||||||
|
|
||||||
|
* [ ] md, mkdir
|
||||||
|
* [ ] rm
|
||||||
|
* [ ] rd, rmdir
|
||||||
|
|
||||||
```
|
```
|
||||||
Usage: <dsk> <command> [<options>] [<path>]
|
Usage: <dsk> <command> [<options>] [<path>]
|
||||||
|
@ -70,12 +74,14 @@ Usage: <dsk> <command> [<options>] [<path>]
|
||||||
[<path>] Path to sub-directory to view
|
[<path>] Path to sub-directory to view
|
||||||
Defaults to: /
|
Defaults to: /
|
||||||
mkdir Create a sub-directory
|
mkdir Create a sub-directory
|
||||||
|
NOTE: Not implemented yet!
|
||||||
<path> Destination virutal sub-directory to create
|
<path> Destination virutal sub-directory to create
|
||||||
There is no default -- it must be specified
|
There is no default -- it must be specified
|
||||||
rm Delete file from volume
|
rm Delete file from volume
|
||||||
<path> Path of virtual file to delete
|
<path> Path of virtual file to delete
|
||||||
There is no default -- it must be specified
|
There is no default -- it must be specified
|
||||||
rmdir Remove a sub-directory
|
rmdir Remove a sub-directory
|
||||||
|
NOTE: Not implemented yet!
|
||||||
<path> Path of virtual sub-directory to delete
|
<path> Path of virtual sub-directory to delete
|
||||||
There is no default -- it must be specified
|
There is no default -- it must be specified
|
||||||
NOTE:
|
NOTE:
|
||||||
|
|
14
prodos.cpp
14
prodos.cpp
|
@ -40,8 +40,10 @@ Is this still needed?
|
||||||
,DISK_COMMAND_VOL_INIT // init
|
,DISK_COMMAND_VOL_INIT // init
|
||||||
,DISK_COMMAND_CAT_NAMES // ls
|
,DISK_COMMAND_CAT_NAMES // ls
|
||||||
,DISK_COMMAND_DIR_CREATE // mkdir
|
,DISK_COMMAND_DIR_CREATE // mkdir
|
||||||
|
,DISK_COMMAND_DIR_CREATE2 // md
|
||||||
,DISK_COMMAND_FILE_DELETE // rm
|
,DISK_COMMAND_FILE_DELETE // rm
|
||||||
,DISK_COMMAND_DIR_DELETE // rmdir
|
,DISK_COMMAND_DIR_DELETE // rmdir
|
||||||
|
,DISK_COMMAND_DIR_DELETE2 // rd
|
||||||
,DISK_COMMAND_INVALID
|
,DISK_COMMAND_INVALID
|
||||||
,NUM_DISK_COMMANDS
|
,NUM_DISK_COMMANDS
|
||||||
};
|
};
|
||||||
|
@ -56,8 +58,10 @@ Is this still needed?
|
||||||
,"init" // VOL__INIT
|
,"init" // VOL__INIT
|
||||||
,"ls" // CAT__NAMES
|
,"ls" // CAT__NAMES
|
||||||
,"mkdir" // DIR__CREATE
|
,"mkdir" // DIR__CREATE
|
||||||
|
,"md" // DIR__CREATE2
|
||||||
,"rm" // FILE_DELETE
|
,"rm" // FILE_DELETE
|
||||||
,"rmdir" // DIR__DELETE
|
,"rmdir" // DIR__DELETE
|
||||||
|
,"rd" // DIR__DELETE2
|
||||||
,""
|
,""
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -71,8 +75,10 @@ Is this still needed?
|
||||||
,"Format disk" // VOL__INIT
|
,"Format disk" // VOL__INIT
|
||||||
,"Catalog (file names only)" // CAT__NAMES
|
,"Catalog (file names only)" // CAT__NAMES
|
||||||
,"Create a sub-directory" // DIR__CREATE
|
,"Create a sub-directory" // DIR__CREATE
|
||||||
|
,"Create a sub-directory" // DIR__CREATE2
|
||||||
,"Delete file from volume" // FILE_DELETE
|
,"Delete file from volume" // FILE_DELETE
|
||||||
,"Remove a sub-directory" // DIR__DELETE
|
,"Remove a sub-directory" // DIR__DELETE
|
||||||
|
,"Remove a sub-directory" // DIR__DELETE2
|
||||||
,"" // NUM_DISK_COMMANDS
|
,"" // NUM_DISK_COMMANDS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -130,22 +136,28 @@ Is this still needed?
|
||||||
" [<path>] Path to sub-directory to view\n"
|
" [<path>] Path to sub-directory to view\n"
|
||||||
" Defaults to: /\n"
|
" Defaults to: /\n"
|
||||||
, // DIR__CREATE
|
, // DIR__CREATE
|
||||||
|
" NOTE: Not implemented yet!\n"
|
||||||
" <path> Destination virutal sub-directory to create\n"
|
" <path> Destination virutal sub-directory to create\n"
|
||||||
" There is no default -- it must be specified\n"
|
" There is no default -- it must be specified\n"
|
||||||
|
, // DIR__CREATE2
|
||||||
|
" Alias for mkdir\n"
|
||||||
, // FILE_DELETE
|
, // FILE_DELETE
|
||||||
" <path> Path of virtual file to delete\n"
|
" <path> Path of virtual file to delete\n"
|
||||||
" There is no default -- it must be specified\n"
|
" There is no default -- it must be specified\n"
|
||||||
, // DIR__DELETE
|
, // DIR__DELETE
|
||||||
|
" NOTE: Not implemented yet!\n"
|
||||||
" <path> Path of virtual sub-directory to delete\n"
|
" <path> Path of virtual sub-directory to delete\n"
|
||||||
" There is no default -- it must be specified\n"
|
" There is no default -- it must be specified\n"
|
||||||
" NOTE:\n"
|
" NOTE:\n"
|
||||||
" You can't delete the root directory: /\n"
|
" You can't delete the root directory: /\n"
|
||||||
" -f Force removal of sub-directory\n"
|
" -f Force removal of sub-directory\n"
|
||||||
" (Normally a sub-directory must be empty)\n"
|
" (Normally a sub-directory must be empty)\n"
|
||||||
|
, // DIR__DELETE2
|
||||||
|
" Alias for rmdir\n"
|
||||||
, NULL
|
, NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
char sPath[ 256 ] = "/"; // TODO: What is max ProDOS path?
|
char sPath[ 256 ] = "/"; // TODO: What is max ProDOS path? 128 characters?
|
||||||
const char *gpPath = NULL;
|
const char *gpPath = NULL;
|
||||||
|
|
||||||
int gnDay = 0;
|
int gnDay = 0;
|
||||||
|
|
Loading…
Reference in New Issue