VICE is provided with a complete stand-alone disk image maintenance
The syntax is:
c1541 [IMAGE1 [IMAGE2]] [COMMAND1 COMMAND2 ... COMMANDN]
IMAGE2 are disk image names that can be
c1541 can handle up to
two disk images at the same time by using two virtual built-in drives,
IMAGE1 (if present) is always
attached to drive
IMAGE2 is attached to drive
COMMANDs specified on the command-line all begin with the minus
-); if present,
c1541 executes them in the same
order as they are on the command line and returns a zero error code if
they were successful. If any of the
stops and returns a nonzero error code.
COMMANDs are specified at all,
interactive mode, where you can type commands manually. Commands in
interactive mode are the same as commands in batch mode, but do not
require a leading
-. As with the monitor, file name completion
and command line editing with history are provided via GNU
readline. Use the command `quit' or press C-d to
When accessing CBM DOS files (i.e. files that reside on disk images),
c1541 uses a special syntax that lets you access files on both drive 8
and 9. If you prepend the file name with
will specified that file is to be found or created on drive 8 and 9,
will name file named
somefile on unit 8, while
will name file named
somefile on unit 9.
You can use quotes (
") in a command to embed spaces into file
names. For instance,
read some file
will read file
some from the disk image and write it into the
file system as
read "some file"
some file into the file system, with the name
The backslash character (
\) has a special meaning too: it lets
you literally insert the following character no matter what it is. For
read some\ file
will copy file
some file into the file system, while
read some\ file this\"file
some file into the file system with name
this"file (with an embedded quote).
This is a list of the
c1541 commands. They are shown in their
interactive form, without the leading
Square brackets  indicate an optional part, and "<COMMAND>" translates
to a disk command according to CBM DOS, like "i0" for example.
commandis specified, just print the status.
attach <diskimage> [<unit>]
unit(default unit is 8).
bam [<unit>] | <track-min> <track-max> [<unit>]
unit, optionally displaying only the entries for
bcopy <src-trk> <src-sec> <dst-trk> <dst-sec> [<src-unit> [<dst-unit>]]
bfill <track> <sector> <value> [<unit>]
block <track> <sector> [<offset> [<unit>]]
bpoke [@unit:<unit>] <track> <sector> <offset> <data ...>
datainto a block. The
datacan be specified using prefixes:
0b or %
0x or $
bread <filename> <track> <sector> [<unit>]
bwrite <filename> <track> <sector> [<unit>]
filenameas input. At most 256 bytes are written to the disk image.
chain <track> <sector> [<unit>]
sector). The last number shown is the number of bytes used in the final block.
copy <source1> [<source2> ... <sourceN>] <destination>
sourceNinto destination. If N > 1,
destinationmust be a simple drive specifier (
delete <file1> [<file2> ... <fileN>]
format <diskname,id> [<type> <imagename>] [<unit>]
unitis specified, format the disk in unit
imagenameare specified, create a new image named
imagename, attach it to unit 8 and format it.
typeis a disk image type, and must be either
g64(VC1541/2031 but in GCR coding),
g71(VC1571 but in GCR coding),
d82(CBM8250/1001). Otherwise, format the disk in the current unit, if any.
geosread <source> [<destination>]
unit(if unspecified, use the current one).
pattern(default is all files).
name <diskname>[,<id>] <unit>
p00save <enable> [<unit>]
read <source> [<destination>]
sourcefrom the disk image and copy it into
destinationin the file system. If
destinationis not specified, copy it into a file with the same name as
rename <oldname> <newname>
newname. The files must be on the same drive.
show [copying | warranty]
tape <t64name> [<file1> ... <fileN>]
numberthe current unit.
unlynx <lynxname> [<unit>]
unitis not specified, validate the disk in the current unit.
write <source> [<destination>]
sourcefrom the file system into
destinationon a disk image.
unzip <d64name> <zipname> [<label,id>]
If you want to execute a shell command from within
prepend it with an exclamation mark (
!). For example,
will execute the command
ls -la, which will show you all the
files in the current directory.
c1541 -attach test.d64 -list
test.d64and show directory.
c1541 -attach test.d64 -write test.prg testfile
c1541 -format "name,id" d64 disk.d64
d64format, format it with the
idand save it to
Go to the first, previous, next, last section, table of contents.