C64 OS USER'S GUIDE
Chapter 6: File Manager
File Manager is one of a pair of Applications that together are called Homebase. The other member of the pair is App Launcher which is covered in Chapter 5: App Launcher.
File Manager is a tabbed interface with a handy navigational sidebar. There are 4 tabs which can each be at a different place. A place is a combination of a device, partition and directory path. The files of a directory are listed in a scrollable table with resizeable, sortable columns. The optional path bar helps you visualize where you are and navigate quickly up the directory path. The optional info bars gives you meta data about the current directory.
With File Manager you can rename files and directories, create new directories, copy and move files recursively between any two places, scratch files recursively, open documents in assigned Applications or Utilities, or open an Application or Utility directly.
If you launch into an Application from File Manager, and then later choose to "Go Home" from that Application, you are returned to File Manager exactly as you last left it. The last tab you were on is still selected and each tab is still at the place it was at.
Tabs and Places
Main interaction with File Manager starts with its tabbed interface. Many C64 file managers can list only a single directory at a time. More advanced file managers split the screen to allow you to be in two directories at the same time, often with the ability to copy files from one directory to the other.
File Manager in C64 OS offers 4 tabs, allowing you to load up 4 directories from different places at the same time. A place is a unique storage location, the combination of a device, one of the device's partitions, and a directory path within that partition.
Click on a tab to change which tab is in focus. You can also change the selected tab from the View menu, or press COMMODORE+1 through COMMODORE+4 to select tabs 1 to 4. Tabs remember their last place by default, and load in the directory of files from that place the first time the tab is accessed after returning to File Manager.
If you select a tab and the place that that tab was last at is not currently available, for example, if the tab was showing a disk drive's directory last time, but this time the disk drive is powered off, the tab automatically redirects to Documents directory instead.
Devices
C64 OS supports up to 5 storage devices active at the same time. Devices are detected during boot up. The Drives Utility is used to change the active configuration of devices without needing to reboot. See Chapter 7: Utilities → Drives for more information about how to use the Drives Utility.
C64 OS supports the following storage devices:
Legacy Devices | Modern Devices | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
As well as clones and compatible recreations of these devices, such as pi1541, and the 1541, 1571, and 1581 devices provided by 1541 Ultimate and Ultimate 64.
The currently detected devices that C64 OS has access to are listed in the upper section of the left hand sidebar, under the heading "Devices." The heading can be clicked to fold up that section and temporarily hide the list of devices.
Click on one of the devices to take the current tab to the root of that device. For the legacy devices the root of the device is the main directory of the inserted floppy disk. The modern devices support partitions, and the root of a modern device is its partition directory.
The directory that is showing in the current tab, although not always the root of a device, always comes from somewhere on one of the devices. A checkmark appears beside the device that the current tab is showing. As you change tabs the checkmark moves to indicate the device for the newly selected tab. On modern devices different directories can be showing in different tabs, even though they come from the same device.
Partitions
Modern devices support partitions. CMD FD-series 3.5" floppy disks, CMD HDs, RAMLinks and RamDrives, an IDE64's Harddrive or CF Card, and yes, even SD Cards with the FAT 32 file system, can all be partitioned. Each partition has its own file system and fixed amount of total storage. Each device is capable of showing a directory of the available partitions.
To see a device's partition directory in the current tab, click on the device in the list of devices. When a partition directory is listed, the column header for file size is changed to show the partition number instead. The partition directory can be sorted by partition type, partition name, or partition number, by clicking on the corresponding column headers.
It is not possible to create a new file or a new directory while in the partition directory, these options under the File > New menu are disabled.
C64 OS does not have the ability to create, delete, or rename partitions. These options are also disabled when viewing a partition directory. You must use the tools and utilities that come with the device to manage the creation, modification and removal of partitions. Refer to the User's Manuals and Guides of these devices, linked from the Other Manuals section of the table of contents in the left hand sidebar.
Partition management is a very infrequent task. However, C64 OS may gain partition management support for the various device types in future updates.
Directories
The legacy devices contain only a single directory per disk. On modern devices some partition types emulate the track and sector layouts of legacy devices, and each of those partitions contain only a single directory. In native partitions on modern devices directories may contain subdirectories, which may themselves contain subdirectories, etc.
The limit on the depth of subdirectory nesting depends on the device and the storage capacity of the disk. C64 OS limits the number of nested subdirectories by the length of characters in the path. This means that if directory names are short the nesting can be deeper, and if the directory names are long it will take fewer nested subdirectories to reach the limit.
A directory path in C64 OS is limited to 234 bytes and is structured according to the DOS standards used by all modern devices. The root directory is indicated by two slashes and each subdirectory is indicated by its name (up to 16 characters) followed by a trailing slash.
The sample path in the image above is 22 characters long. The maximum length of a C64 OS directory path is approximately 10 times longer than the example above.
In C64 OS a subdirectory can be treated, more or less, like any other file. A subdirectory can be renamed and it can be locked or unlocked on all devices except for SD2IEC which does not support file locking. A subdirectory can be moved, copied or scratched, and all of the files and subdirectories that it contains will be moved, copied or scratched right along with it.
Subdirectories make file systems more complicated than they were on the legacy devices. The next section is dedicated to all of the possibile ways to navigate a partition full of nested subdirectories.
Navigation
The most basic way to navigate directories is very simple. Double-click on a subdirectory to change into it. Or, select a directory and choose Open from the File menu, or press COMMODORE+O.
To navigate from a subdirectory to its immediate parent directory, choose Parent Dir from the Go menu, or press COMMODORE+P. To navigate from any subdirectory all the way back to the root directory of the current partition in one step, choose Root Dir from the Go menu, or press COMMODORE+R.
Using the Parent Dir option multiple times or using the Root Dir option take you to the root directory of the partition. To view the partition directory, click the device from the devices list in the upper section of the left sidebar.
Use the Go menu to navigate to the Parent or Root directory.
Path Bar
Due mostly to memory constraints File Manager only shows 255 files per directory, and it only shows the contents of one directory per tab. It is necessary to navigate into a subdirectory, (rather than unfolding a subdirectory inline,) to see the subdirectory's contents.
When navigating into a subdirectory the contents of the previous directory are first purged from memory, making room for the new directory to be loaded in. Loading a directory is relatively quick, but takes longer the more files there are to load in. Basic navigation is straightforward—drill down into subdirectories and then pop back up one parent directory at a time—but suffers from an obvious flaw. Once you drill down several directories, if you know that you want to pop back up 2 or 3 levels, you must choose Parent Dir once and wait for that whole directory to load in, only to choose Parent Dir again and wait once again for another whole directory to load in, only to choose Parent Dir one more time to get where you actually want to be. All of that loading is a frustrating waste of time.
The solution to this problem is the path bar. The path bar can be toggled on and off by choosing Path Bar from the View menu, or with the keyboard shortcut SHIFT+COMMODORE+P. The path bar appears above the tabs, and pushes the tabs down one row leaving one less row for the list of files. If you want space to see more files, turn the path bar off. And if you want to navigate up the directory tree quickly, you can turn the path bar back on.
The path bar shows a representation of the directory path, beginning with two slashes for the root directory. The final subdirectory name is shown, with a trailing slash, at the end of the path bar. This doubles as a way to see the name of the directory you're currently in. However, intermediate subdirectories are represented by two dots with a trailing slash, rather than their full name. This is a compromise due to the limited horizontal space. You don't see the full subdirectory names, but you can see a whole lot more of them all at once.
Click on the two leading slashes as a quick way to jump to the root directory. That's the equivalent of choosing Root Dir from the Go menu. Click on any of the sets of two dots to jump directly to that subdirectory.
Info Bar
The info bar is an optional bar that can be toggled on and off by choosing Info Bar from the View menu, or with the keyboard shortcut SHIFT+COMMODORE+I. The info bar appears below the directory list. It too takes up a row leaving one fewer row for the list of files.
The info bar and path bar can both be used at the same time, or one or the other or neither depending on your needs. And they can be toggled on and off on-the-fly, especially with the keyboard shortcuts.
Info bar shows a count of the number of items in the directory, plus it shows the amount of free space in this whole partition. When viewing the partition directory the info bar tells you how many partitions there are instead.
There are a couple of exceptions, based upon how the devices provide information. On CMD devices partitions were limited to 16MB, which is equivalent to a 65535 blocks of 256 bytes each. This means the total block count can be represented by a 16-bit number. Both IDE64 and SD2IEC dramatically shatter this older CMD-device limitation, allowing for gigabytes of storage per partition. Block counts that large cannot be represented by a 16-bit number. These devices have different solutions to this problem.
IDE64 tells you how many blocks are used rather than how many are free. If the device is IDE64, the path bar in File Manager specifies "Used:" instead of "Free:".
The blocks free that SD2IEC shows is actually FAT clusters free. The minimum size of a cluster is 512 bytes, twice the size of a typical Commodore storage device's block. Therefore, if an SD2IEC said, 1000 blocks free, that is only interpretable as a real size if you know the cluster size. Furthermore, SD2IEC shows 65535, the maximum number possible, for any size greater than that. This number only becomes smaller than 65535 when you actually have less than 65535 clusters of free space in the partition.
Status Bar
The status bar is not specific to File Manager but is a standard user interface element in C64 OS. See Chapter 4: User Interface for a more detailed explanation of how the status bar works.
Click to set the status bar to Open/Selected-File mode. In this mode you can see the complete C64 OS file reference to the selected file. This file reference includes the device #, the partition #, the selected file's name, plus the full directory path including all the subdirectory names.
The only problem is that, if the path is too long it simply gets clipped at the right edge where the available memory indicator begins. Nonetheless, if you are only navigating 2 or 3 directories deep, it can be useful to see the full file reference. It is also the only way to see what partition you are currently in.
Sort Directories
Traditionally, directories listed on the C64 from the READY prompt are not sorted by any data field. The order that the entries appear on the screen is the order that they are stored on the physical medium. The reason for this limitation is again mostly to do with memory. In order to sort directory entries they have to first be loaded into memory. The disk drives themselves do not have enough free memory to load and hold a whole directory in memory at once. And the C64, from the READY prompt, has no concept of directories; the storage device structures the directory like a BASIC program, that can later be listed. File sizes are encoded as BASIC line numbers. There is simply no built-in software support for handling directories properly.
File Manager in C64 OS loads a directory fully into memory first, and is then able to sort those directory entries, very quickly, and by several criteria.
To sort a directory you can choose: Type, Name, or Size from Sort By under the View menu. Type sorts files alphabetically by their CBM file type (DIR, PRG, REL, SEQ, USR). Size sorts files by their file size. When sorting by either type or size, if two files share the same value they are sub-sorted by name automatically. This is very convenient. If you sort by Type, all the directories will be grouped together, but the directories will be listed in alphabetical order by name within that group, followed by all the PRG files in alphabetical order, etc.
Sorting files using Sort By from the View menu.
The sort direction can be set by choosing Asc (for ascending) or Desc (for descending) from Sort By under the View menu. Ascending means that small files sizes get listed at the top, big files at the bottom. Or filenames that start with A at the top and those that start with Z at the bottom. Descending reverses this.
A quicker way to sort directories is to click on the column headers at the top of a directory list. CBM File type is the narrow leftmost column. Although it is unlabeled, it can be clicked to sort by type. Next is the filename column, which can be clicked to sort by name. Next is the size column, which can be clicked to sort by file size. Lock and other status icons may appear following the size column, but File Manager does not support sorting by those status icons.
The sorted criteria is indicated by the column header highlight, and an arrow appears in the highlighted column header to show direction of sort. Click a column header that is already sorted to reverse the direction of the sort.
It is also possible to disable sorting altogether. Choose Disk from Sort By under the View menu. All of the column headers unhighlight. When ascending, the files are listed in the order that they appear on the READY prompt. When descending, the files appear in exactly the reverse of the order they would appear on the READY prompt. This can be handy when working with a directory that you also frequently access from the READY prompt and whose file order you are already familiar with.
Case-insensitive, Natural Sorting
Whenever File Manager sorts items by name, whether directly by name or during a sub-sort, the text is sorted case-insensitively. The capitalization of letters is ignored, so that capitals and smalls get sorted together.
Additionally, File Manager sorts item names using a technique called natural sorting. If names contain numbers, (i.e., strings of numeric digits, such as "My file 115.txt") the number segments are evaluated for the their numeric value and sorted accordingly.
Primitive sorting algorithms often result in the following, because "1" is less than "2" which is less than "3". Despite the strict logic, this violates our intuitive expections.
- My file 115.txt
- My file 23.txt
- My file 345.txt
The sorting library in C64 OS, upon which File Manager depends, uses a natural sorting algorithm so the files sort like this:
- My file 23.txt
- My file 115.txt
- My file 345.txt
Just the way you would sort them. Naturally!
ASCII Translation
There is one other option under Sort By under the View menu. It's an option to toggle ASCII mode on or off. This can also be triggered with the keyboard shortcut CONTROL+A.
Filenames stored on C64 storage devices are usually in PETSCII. The C64 usually operates in PETSCII and there is no translation layer between the PETSCII you type and the filename that is created on disk. (Exceptions exist for SD2IEC. To learn more about how SD2IEC handles filenames, see: Understanding SD2IEC Filenaming.)
The one major exception to this rule is GEOS. GEOS natively operates in ASCII not PETSCII. Filenames, consequently, are also in ASCII. This can present a major hurdle to working with those files in any environment outside of GEOS. The C64 cannot type lowercase ASCII characters from the READY prompt, as those are mapped to an undefined code block in PETSCII.
C64 OS improves on this situation a bit. When viewing a directory of GEOS files, toggling the directory into ASCII mode will make the filenames legible and correct their sort order. It's not a complete or perfect solution, but it is an improvement. If you don't ever work with GEOS, you will likely never need to use the ASCII mode in C64 OS.
View by type
Directories can also be filtered by CBM file type. Choose a file type (DIR, PRG, SEQ, USR or REL) from By Type under the View menu. The directory reloads but only includes entries of that type.
This can be used to partially overcome the limitation of 255 files per directory. If the directory contains, say, 200 PRG files, 150 SEQ files, and 220 subdirectories, despite there being nearly 600 directory entries total, you can get access to them all, in groups, by viewing by type.
Navigation through many nested subdirectories can be greatly accelerated by temporarily viewing directories only. Without any other files, the list of directories can be loaded much more quickly. Viewing by type persists within a tab as you navigate the file system, and when viewing the partition directory all partitions are listed regardless of any view by type setting. This allows you to navigate the entire device, partition and directory tree without ever turning off view by type DIR.
As a convenience to quickly switch between viewing all files and view directories only, these two options have keyboard shortcuts: COMMODORE+* to view all, COMMODORE+= for directories only.
Go Menu
We have already seen that the top two entries in the Go menu are Parent Dir and Root Dir. There are also 7 places that can be jumped to directly from the Go menu.
Go | Shortcut | Path |
---|---|---|
System | F2 | //os/ (the system directory) |
Applications | F4 | //os/applications/ |
Utilities | F6 | //os/utilities/ |
Go | Shortcut | Path |
Documents | F1 | User Defined |
Games | F3 | User Defined |
Music | F5 | User Defined |
Pictures | F8 | User Defined |
These make it very easy to jump directly to one of several commonly accessed places. The system directory is not necessarily //os/ but is to wherever this instance of C64 OS is installed. Applications and Utilities are relative to the system directory.
Go menu can take you to one of 7 pre-defined places.
The other 4 places, Documents, Games, Music and Pictures are user defined. These paths can be configured using the Places Utility. Open it by choosing Places from the Options menu.
See Chapter 7: Utilities for more information about how to use the Places Utility.
Clipboard
File Manager integrates nicely with the clipboard to open up several useful navigational tricks.
Select Copy Place from the Options menu, or press COMMODORE+C, to copy the place of the current tab to the clipboard. With a file reference on the clipboard it is possible to now switch to another Application or open a Utility capable of taking a file reference, and paste it there. But you can also paste a file reference to the File Manager to take the current tab to that place. This has several handy uses.
Navigational Tips and Tricks
Snapback.
Imagine you are in a directory. You want to quickly
but temporarily drill down several subdirectories to find something, only to return to where
you started shortly thereafter. Press COMMODORE+C to copy where you are to the clipboard.
Drill down the directories. Press COMMODORE+V to paste from the clipboard and snapback to where
you just were. It's easy because you don't have to worry about where you've gone or how to
get back; it's a rote move that works consistently.
From Here.
Imagine you are in a directory in one tab, and you want to stay
in that place. But in another tab you want to start from that place so you can drill deeper.
The clipboard makes it easy to copy the place of one tab to another tab. Press COMMODORE+C in
the starting tab, press COMMODORE+1, 2, 3, or 4 to switch to another tab, press COMMODORE+V to
paste that starting place into the new tab. No matter where you go in this tab, you can always
flip over to the original tab and it's still where you left it.
Open In.
Imagine you are in a directory that contains subdirectories. You want
to open one of the subdirectories you can see, but you want to open it in another tab. This is
a bit like "From Here" but one step shorter. Click to select the subdirectory, then press
COMMODORE+C. This copies not only the current place, but it appends the selected subdirectory
to the path. Switch to another tab and press COMMODORE+C. The new tab loads that subdirectory
straight away, rather than having to first load the copied place, then search for the
subdirectory, double-click it, and then load that directory.
Explore Bundle.
C64 OS Applications are structured as bundles. This means
that in the Applications directory are subdirectories named for the Application. File Manager
keeps track of what directory you're in, and knows when you're in the system's Applications
directory. It presents the Application bundles as single launchable items, rather than as
directories that collect resources together. Double-clicking a bundle launches the Application,
it doesn't take you into the bundle. To explore the bundle you can apply the "Open In" use case
to bundles. Click an Application bundle to select it. Press COMMODORE+C to copy the place with
the bundle name appended to the path. Press COMMODORE+V in the same tab, or another tab, to
open the contents of the bundle to explore what's inside.
Note how the selected file in the status bar was changed when copied to the clipboard.
Select Files
- Mouse and Keyboard Control
- The Anchor
- Keyboard-Only Control
- Moving the Selection
- Advanced Selections
Making robust multi-file selections is critical to working with your files. It is important to be able to make selections quickly and easily.
Mouse and Keyboard Control
The simplest form of selection is to click on an item. That item is selected and all others are deselected.
To add an item to the current selection, hold the COMMODORE key and click an unselected item. Holding the COMMODORE key while clicking also allows you to remove an item from the current selection, by clicking an item that is already selected. This is the same as selecting multiple aliases in App Launcher. See Chapter 5: App Launcher.
To make a range selection, start by clicking the first item of the range. Then hold LEFT-SHIFT (the SHIFT key beside the COMMODORE key) and click the last item in the range. The two items clicked plus all the items in between are selected.
The Anchor
To understand the behvior of more complex selections, such as discontiguous range selections, you need to be aware of the anchor. When several files are selected you can't see where the anchor is, but it plays a role in determining how selections are made.
When you click an item to select it, it becomes selected, plus the clicked item becomes the anchor. When you subsequently hold the LEFT-SHIFT key and click another item, all items between the anchor and the clicked item are selected, plus the most recently clicked item becomes the new anchor, which affects the next range selection.
Holding the COMMODORE key to make individual item selections affects the anchor in the following way. If you COMMODORE-click an item to select it, that item also becomes the new anchor. But, if you COMMODORE-click an item to deselect it, the anchor remains where it was, possibly even remaining on an unselected item.
Three discontiguous range selections.
Why does any of this anchor stuff matter?
The anchor matters because it determines the following range selection behavior.
Try this: Click an item near the top, hold LEFT-SHIFT and click an item several rows down. The range is selected, and the anchor is on the last item of the range. Next, COMMODORE-click an item a few rows below the selected range. That item becomes selected and the anchor is moved to it. Now hold LEFT-SHIFT and click an item a few rows below that. A new range is created, resulting in two ranges with a gap in the middle. The gap did not fill in during the second range selection because the second range started at the anchor not from the top of the first range.
Now consider another scenario. Make a range selection, from higher to lower. Now use a COMMODORE-click to deselect an item in the range, introducing a gap. Next, extend the lower range by holding LEFT-SHIFT and clicking an item below the last selected item. That works as expected.
Now consider a third scenario. As before, make a range selection from higher to lower. Now use a COMMODORE-click to deselect an item in the range, introducing a gap. Next, extend the upper range by holding LEFT-SHIFT and clicking an item above the first selected item. Something unexpected happens. The gap got filled in. The reason is because after the COMMODORE-click deselection the anchor remained on the selected file at the very bottom. Holding LEFT-SHIFT and clicking above the upper range selected all files from the anchor to the clicked item, including the gap which is in between those to points.
Even more complicated scenarios can occur which will not be detailed here. As long as you realize that range selections are made between the anchor and the selected item, and you understand the circumstances that move the anchor, even highly complex behavior becomes transparent and comprehensible.
Keyboard-Only Control
Cursor keys on a Commodore 64 are a bit peculiar. There are only two physical cursor keys, DOWN and RIGHT. From the READY prompt, when used in conjunction with either LEFT-SHIFT, RIGHT-SHIFT or the COMMODORE key, the effect is the same; DOWN becomes UP, and RIGHT becomes LEFT.
Throughout C64 OS, not just in File Manager, the role of the modifier keys is more refined. In C64 OS, only the RIGHT-SHIFT key affects the direction of the cursor keys. Thus, RIGHT-SHIFT+DOWN is how you produce UP, and RIGHT-SHIFT+RIGHT is how you produce LEFT.
The LEFT-SHIFT key is used in conjunction with all four cursor directions to make and extend selections along that direction.
The COMMODORE key is used to modify a cursor or selection movement so that, instead of making a single step, it jumps all the way to the beginning or end in one big step.
Commodore 64 cursor keys
Moving the Selection
Press UP and DOWN to move the selection up and down the directory. If the selection reaches the top or bottom of the visible rows, continuing to move the selection with the cursor keys automatically scrolls the list so the selected item stays in view.
Hold COMMODORE and press UP to select to the first item in the directory. Hold COMMODORE and press DOWN to select the last item in the directory.
Hold LEFT-SHIFT while pressing UP or DOWN will make a range selection by extending the selection in that direction. There is, however, no way to make a discontiguous range selection using the only the keyboard. After making a range selection with the keyboard, though, you could COMMODORE-click an item apart from the first range, and then go back to LEFT-SHIFT and UP or DOWN to extend that second range with the keyboard.
The COMMODORE and LEFT-SHIFT keys can be used in concert. Hold LEFT-SHIFT and COMMODORE keys, press UP to make a range selection from where the selection was all the way to the top. Or press DOWN to make a range selection from where the selection was all the way to the bottom.
To select all items, choose Select All from the Options menu, or press COMMODORE+A. To unselect all items, choose Select None from the Options menu, or press SHIFT+COMMODORE+A. When no items are selected, pushing DOWN starts by selecting the item at the top of the directory, or pushing UP starts by selecting the item at the bottom of the directory.
Play around with these keyboard controls a bit and they start to feel quite natural.
Advanced Selections
While making selections with the mouse, you may scroll the table to see a different part of the list. For example, if you want to make a range selection that starts 2 items from the top, that is 50 items long, ending 2 items from the bottom, start by scrolling to the top. Click the first item to select it. Then scroll the table to the bottom, hold LEFT-SHIFT and click the item 2 from the bottom. Everything in between gets selected, even though you can't see all of those items at the same time.
You can change the sort direction or column of the table without losing the selected files. This allows you to make selections on multiple criteria.
For example, imagine you want a selection that includes:
- All files 2 blocks or smaller,
- All files that start with the letter "d", and
- All SEQ type files
Not a problem. To make such as selection, perform the following steps:
- Sort by Size.
- Scroll if necessary, click the smallest desired file.
- Scroll if necessary, LEFT-SHIFT-click the largest desired file.
- Sort by Name.
- Scroll if necessary, COMMODORE-click the first file that starts with "d".
- If this file was already selected, COMMODORE-click it again to reselect it and set it as the anchor.
- Scroll if necessary, LEFT-SHIFT-click the last file that starts with "d".
- Sort by Type.
- Scroll if necessary, COMMODORE-click the first SEQ type file.
- If this file was already selected, COMMODORE-click it again to reselect it and set it as the anchor.
- Scroll if necessary, LEFT-SHIFT-click the last SEQ type file.
You now have a selection that includes all the desired criteria. You can then make individual omissions or additions by COMMODORE-clicking individual items.
Copy and Move Files
To copy files, navigate within one tab to the desired destination. In another tab, navigate to find the files to be copied. Select all of the files and/or directories to be copied.
Choose the destination tab from Copy To under the File menu. The Copy Utility opens and is setup with the parameters of copy job to be performed.
The Copy Utility is modal. While it is open you cannot interact with File Manager, or open any other Utility. If you change your mind and want to cancel the file copy, close the Copy Utility. To begin the copy job, click the Start button or press RETURN.
Files and directories are copied recursively. The Copy Utility navigates into subdirectories and copies all of their files and subdirectories. The subdirectory tree is created automatically at the destination during copy. The Copy Utility shows the name of the current subdirectory it is working on, and the name of the current file being copied. It keeps a count of the total number of items copied. When the job is complete the Copy Utility closes automatically.
It is possible to pause an in progress copy job. The mouse cursor is disabled to speed up the file copying procedure, but you can press RETURN to trigger the Pause button. The Copy Utility remains modal even when the job is paused. Pausing temporarily halts the job, giving you an opportunity to think. You can then resume by clicking Start again, or cancel the job before it completes by closing the Copy Utility while it's still paused.
Files and directories can be copied between any two places. They can be copied between any two directories in the same partition on a device. Or between partitions on the same device. Or between any two devices.
Copying subdirectories to legacy devices
Legacy devices do not support subdirectories. It is nonetheless possible to select and attempt to copy a subdirectory from a modern device to a legacy device. On the source device, the directory tree is recursively navigated, but the attempt to create the corresponding subdirectory and then change into that subdirectory on the legacy device is ignored. The next file copied is copied into the single main directory on the legacy device.
The result of this behavior is that files organized within a subdirectory tree on the source device become flattened into a single directory on the destination legacy device. This could result in filename collisions, in which case, only the first file copied with that name is retained. The next file with the same name results in a 63, File Exists error and is not copied.
A move is a copy that scratches the original
Moving files is done in exactly the same way as copying files. Setup the destination and source tabs, select the files to move, but choose the destination tab from Move To under the File menu.
The Move Utility opens, instead of the Copy Utility. But it works exactly the same way, with the same capabilities and the same caveats for legacy devices. The only difference is that a move job scratches each file after it has been copied, and removes each subdirectory after it has been emptied out.
Keyboard Shortcuts
Keyboard shortcuts can make the task of copying or moving files faster and easier.
- Switch between tabs with COMMODORE+1 through COMMODORE+4
- Initiate copy to a destination tab with CONTROL+COMMODORE+1 through CONTROL+COMMODORE+4
- Initiate move to a destination tab with CONTROL+1 through CONTROL+4
- Press RETURN to confirm and start the copy or move job
You cannot copy or move files from the current tab to the current tab. The menu options under Copy To and Move To for the current tab are disabled.
File Manager only loads the contents of a tab when it is first selected. There are also low memory conditions that could cause File Manager to unload the directory contents of an unselected tab, in order to free up memory for something else. The destination tab of a copy or move operation must already be loaded in. If it's not, a system alert is generated and the Copy or Move Utility does not open. Simply select the destination tab once to load its contents, then return to the source tab and attempt to initiate the copy or move operation again.
Copy a File, in place.
It is possible to copy a file from the current tab to a new file in the same tab but with a different name. This is sometimes called duplicating a file.
To copy a file to the same directory but with a new name, select the file, and choose Info... from the File menu, or press COMMODORE+I, to open the File Info Utility.
Type a new or modified name for the file, and click Copy. A new copy of the file with the new name is produced and appears in the directory listing behind the File Info Utility. However, the original file is still selected, and the name field in File Info is reverted to the name of the original file.
You can make multiple copies of the file, or close the File Info Utility when finished with it.
File Info cannot be used to make an in-place copy of a subdirectory. When a DIR type item is selected the Copy button remains disabled.
Scratch Files
To scratch one or more items from a directory, select the items to be scratched. Choose Scratch... from the File menu. The Scratch Utility opens and is setup with the parameters of the scratch job to be performed.
The Scratch Utility is modal. While it is open you cannot interact with File Manager, or open any other Utility. If you change your mind and want to cancel the scratch, close the Scratch Utility. To begin the scratch job, click the Start button or press RETURN.
Files and directories are scratched recursively. The Scratch Utility navigates into subdirectories and scratches all of their files and subdirectories. The Scratch Utility shows the name of the current subdirectory it is working on, and the name of the current file being scratched. It keeps a count of the total number of items scratched. When the job is complete the Scratch Utility closes automatically.
It is possible to pause an in progress scratch job. The mouse cursor is disabled to speed up the scratching procedure, but you can press RETURN to trigger the Pause button. The Scratch Utility remains modal even when the job is paused. Pausing temporarily halts the job, giving you an opportunity to think. You can then resume by clicking Start again, or cancel the job before it completes by closing the Scratch Utility while it's still paused. The items that have already been scratched remain scratched.
Locked Files
The Scratch Utility performs the scratch operation by issuing a standard scratch command to the device's DOS. On all device types, except SD2IEC, files may optionally be locked. The point of locking a file is to prevent it from being scratched.
The failure of the Scratch Utility to scratch an individual file does not derail the whole job. The scratch command is sent, and if the drive's DOS refuses to actually scratch the file, the Scratch Utility proceeds to the next file. When all the files in a subdirectory have been scratched it attempts to scratch the empty directory too. But because the directory is not in fact empty, it will also fail to be scratched. When the job completes what is left behind are all of the locked files, plus the minimal subdirectory tree necessary to contain those locked files.
Scratch vs. Delete vs. Remove
In the terminology Commodore used with their disk drives, "scratch" means to delete a file from the disk, but in a way which is recoverable, until other write operations take over blocks that were previously used by the scratched file.
The CBM DOS command to perform a scratch is "s", understandably. Why they chose this word is not known. Commodore uses the command "delete" in AmigaDOS to do more or less the same thing as "scratch" does on their 8-bit machines.
For their 8-bit line of computers, Commodore did not make any storage devices that support subdirectories. Creative Micro Designs introduced subdirectories with the HD Series of hard drives and used "scratch" for regular files, but "remove" for directories. The CMD DOS command is "rd" for remove directory. IDE64 and SD2IEC followed the lead from CMD's DOS for reasons of consistency and software compatibility.
C64 OS uses the term scratch both for files and directories.
OS | Files | Directories |
---|---|---|
AmigaDOS | delete | delete |
MS-DOS | del (delete) | rmdir (remove directory) |
Linux/Unix | rm (remove) | rm (remove) |
CBM/CMD DOS | s (scratch) | rd (remove directory) |
C64 OS | scratch | scratch |
Rename Files
Items are renamed using the File Info Utility. File Info can only show the information about a single selected item. When more than one item is selected File Info clears and disables its fields and buttons.
Select the item to be renamed. Choose Info... from the File menu, or press COMMODORE+I. The File Info Utility opens with the details of the selected file. Unlike the Copy, Move and Scratch Utilities, File Info is not modal. You can leave File Info open like a floating palette, and select different items in the directory below. You can also navigate the file system, or even change tabs, without needing to close File Info. File Info automatically updates to reflect and provide information about any newly selected item.
Change the item's name in the Name field, and click Rename or press RETURN to change the name of the selected item.
The text input field is a standard Toolkit text input field, which is integrated with the clipboard. To make renaming files faster, you can copy part of a name to the clipboard using COMMODORE+C, and paste it into the field later using COMMODORE+V.
Other keyboard shortcuts afforded by the standard text field, press CURSOR UP to jump to the start of the field, or CURSOR DOWN to jump to the end of the field. HOME also jumps to the start of the field, and CLR clears the field. Hold LEFT-SHIFT and press CURSOR UP to make a selection from the insertion point to the start of the field, or hold LEFT-SHIFT and press CURSOR DOWN to select from the insertion point to the end of the field.
If you edit the name in the field but prefer to undo your edit and revert the field to the file's current name, press COMMODORE+Z.
Make New Directory
To create a new subdirectory, choose Directory under New from the File menu, or press COMMODORE+N. A new directory is created with the default name, "new directory". This new directory is selected automatically.
If the File Info Utility is left open with the name field in focus, when a new directory is created it can be assigned a new name immediately. It is possible to create and rename multiple directories in a row without ever touching the mouse. Select a file, open File Info with COMMODORE+I. The name field takes focus automatically. Press COMMODORE+N, type a new name and press RETURN to rename the new directory. Press COMMODORE+N again, and a new directory is created, and you're ready to type its new name and press RETURN to save.
You can also create a new text file by choosing SEQ file under New from the File menu. This creates an empty SEQ file with the default name, "new file.t". This new file can be renamed in the same fashion as a new directory.
Legacy devices and partition directories
A subdirectory cannot be created on a legacy device, nor can a subdirectory be created in the partition directory of a modern device. When in any of these places the New Directory menu option is disabled.
It is possible to create a new SEQ file on a legacy device, but not in a modern device's partition table. The New SEQ file menu option is disabled when in a partition directory.
Lock a File
All device types, except SD2IEC, support file locking. Legacy devices require a program to change the lock flag, but modern devices starting with the CMD FD series have the DOS command "l" to toggle a file or directory's lock flag.
There is a Lock checkbox on the File Info Utility panel. If the file resides on an SD2IEC the lock checkbox is disabled. On all other device types the locked status of the item can be set by toggling this checkbox. The change of lock status is applied immediately, and a small lock icon appears in the directory listing, following the file's size.
Locked files cannot be scratched.
The lock icon appears following the file's size.
Locked Directories
Warning: The contents of a locked directory can be scratched. Only the directory itself cannot be scratched. Locking a directory does not protect its contents.
See the notes about locked files under the Scratch Files section above.
Favorites
In addition to the 7 standard places that can be quickly accessed via the Go menu and the corresponding function keys, favorites allows you to add up to 15 additional places that you frequently access.
Favorites appear in a list in the lower half of the left-hand sidebar. The sidebar in File Manager is actually a standard Toolkit class that can be embedded into any Application or Utility. In addition to appearing in File Manager, it also appears as the sidebar in the Open and Save Utilities. Any favorite places that you define in File Manager are later accessible from inside other Applications when they use the Open or Save Utilities for accessing the File System.
To add a favorite to the favorites list, navigate to that place in any tab, then choose Add Favorite from the Options menu.
Add Favorite from the Options Menu.
A new favorite whose name matches the title of the current directory is added to the bottom of the list of favorites. Note that there can only be one favorite per unique name. Therefore, if you have a Documents directory on one device and partition, and another Documents directory on another device or in another partition, adding the second Documents directory as a favorite first removes the original, and puts the new one at the bottom of the list.
Current directory added to list of favorites.
Any place may added as a favorite. The partition directory of a device may be added as a favorite, in which case the name of the device is used in the list. The root directory of a partition may be added as a favorite, in which case the name of the partition is used as the name of the favorite in the list.
Managing Favorites
Favorites can be reordered following a simple procedure using what we already know. Since new favorites remove old ones with matching names, and new ones are added to the bottom of the list, do the following to move any favorite to the bottom of the list: Click the favorite, this takes you to that place. Immediately choose Add Favorite from the Options menu. This moves the favorite to the bottom of the list. You can do this repeatedly to reorder all of the favorites.
You can start afresh by clearing all favorites. Leave File Manager, and return to be certain that all previous changes to Favorites have been saved to settings. Without modifying any favorites, navigate to the favorites directory:
//os/settings/favorites/
Select and scratch all the favorites files found there. Next, navigate up to the parent directory with COMMODORE+P, the settings directory. Find and scratch the file named favorites.i. Be careful not to scratch the favorites directory itself. Immediately leave File Manager, and then return to it later. The favorites list is now empty. A new favorites.i file will be automatically created in the settings directory when you add some new favorites.
Favorites Utility
The instructions given above for managing favorites is a temporary workaround until the Favorites Utility is ready. The Favorites Utility is not included in version 1.0 of C64 OS, but will be released later as a free download.
When the Favorites Utility is available and installed in your system's Utilities directory, it can be opened by choosing Favorites from the Options menu.
Open a File
A file can be opened using File Manager by double-clicking it, or by clicking once to select a file and then choosing Open from the File menu, or pressing COMMODORE+O.
Files are opened by means of an intermediary Utility called Opener. Opener looks at the file to be opened and extracts a filename extension. Extensions may be from 1 to 6 characters following the last period in the name. In addition to postfix extensions, C64 OS also supports prefixed extensions. Prefixed extensions are commonly used on the Commoodore 64 because of pattern matching limitations in the CBM DOS of legacy devices.
The filename extension is combined with the CBM file type (PRG, SEQ, USR, REL) and used to open the file in the appropriate Application or Utility. If no Application or Utility has been assigned to open files of this type, or if the filename has no extension, the Opener presents its own Utility panel.
Opener Utility - Pick an Application or Utility.
The CBM file type and the filename extension of the selected file are shown at the top of the panel. Followed by a list of installed Applications and a list of installed Utilities available in two tabs. Pick the Application or Utility to open this file in and click Open, or press RETURN. Or, double-click the Application or Utility to open the file in.
Create an Assign
The Opener Utility is used to manage assignments of Applications and Utilities to unique combinations of CBM file type and filename extension. When you try to open a file, Opener looks at the set of assigns to see what is assigned to open this type of file. If an assign is found, the Opener Utility proceeds to open that Application or Utility automatically and you never see the Opener Utility itself.
The Opener Utility presents its panel only if there is no assign. You can use the Opener Utility to choose an Application or Utility. If you click Open, it only opens this file with the selected Application or Utility this one time. The next time, the Opener Utility will presents its panel again and you can choose to open the file in something different.
The Opener can also be used to establish new assigns. Pick the Application or Utility to open this file type, and click Assign. Next time, the file will proceed to open in the assigned Application or Utility automatically.
Only files with extensions can have an assign
Only a filename that has an extension (postfix or prefix) can be assigned a default Application or Utility in which to open. If Opener isn't able to extract a valid extension, the Assign button is disabled.
Manage Assigns
There are two ways to manage assigns. If a file of a certain type has already been given an assign, you can change the assign later. After double-clicking a file, or choosing Open from the File menu, press and hold the CONTROL key. This prevents the current assign from being used and forces Opener to present its panel.
You can then pick any Application or Utility and click open to do a one-time override. Or, click Assign to update the assign. Another way to get to the Opener panel is to open the Opener Utility manually. Use the Utilities Utility to pick and open Opener directly. While its panel is showing, you can change which file is selected behind it. As the selected file is changed, Opener updates the CBM file type and file extension to reflect those of the selected file, and selects the Application or Utility which is assigned to this file type.
Select a file, pick an Application or Utility, click Assign. Select a different file, and repeat creating as many assigns as you like.
To review all assigns, and to copy, backup, reassign or remove them, use File Manager to navigate to the assigns directory in the system's settings directory.
//os/settings/assigns/
Each assign is stored in its own file in the assigns directory. The format of the assign's filename is three parts separated by periods. "ft" indicates this is a file type assign, rather than some other kind of assign that may exist in the future. The second part is the CBM file type and the third part is the filename extension.
The content of the file holds two lines. The first line indicates if the assign is to an Application or a Utility, and the second line is the name of Application or Utility. It is thus possible to duplicate an assign with a different extension. For example, if you have an assign "ft.prg.koa" setup to open Koala graphic files, but you want to have the same assign for files whose extension is "kla" and "koala", select the "ft.prg.koa" assign, choose File Info from the File menu, enter an alternative name to indicate an alternative file extension and click Copy.
You can also use the list of assigns in File Manager to see an overview of every type of file that has an assign. To remove any assign you no longer want, just use File Manager to scratch the assign file.
To see what Application or Utility is specified in an assign file, use TextView to preview the assign file's contents. TextView is discussed below.
TextView
Although files can be opened with their assigned Application or Utility, it is often convenient to be able to quickly preview the contents of a text-based file, regardless of its filename or what is assigned to open it.
Select a file to preview. Choose TextView from the File menu, or press COMMODORE+T.
TextView, as any Utility, can be assigned as the default Utility in which to open a file of a given type. For example, you might assign TextView to open SEQ .mtxt files by default. However, if you know you want to preview a file in TextView, it is faster to do it directly, because it by-passes the need to launch the Opener Utility, and have it analyze the file and lookup the assign, etc.
See Chapter 7: Utilities → TextView for more information about how to use TextView and its features.
Recents
Every time a file is opened using File Manager or the Open Utility, it is added to the list of recents. There can be up to 15 files in the recents list. When a new file is opened it is added to the top of the list, bumping all previous files down one position. If there are already 15 recents, the last file—the one least recently opened—is removed from the list. If a file is opened that is already in the recents list, the list gets rearranged so that file appears first.
The list of recents is maintained on an Application-by-Application basis. The list of recents that are opened from the File Manager are stored within the File Manager bundle. Inside another Application, when opening a file using the Open Utility, a list of recents opened for that Application are shown. Therefore, the 15 file limit is per Application. A text editor maintains a list of the 15 most recent text files opened, but an image viewer maintains a totally separate list of the 15 most recent graphics files opened.
The list of recents is available in the File Manager's sidebar, and the same sidebar that appears in the Open and Save Utilities. The recents list occupies the same space as the list of Favorites. The sidebar has 2 sections, each with a header. At the top is the devices header, followed by a list of devices. The devices section can be opened and closed by clicking the devices header. Below that is a second header. Clicking the second header toggles between showing the list of Favorites and the list of Recents.
Mount a Disk Image
Beginning in C64 OS v1.03, File Manager can mount and unmount disk images stored on an SD2IEC.
All the standard disk image file extensions (D64, D41, D71, D81, and DNP) have been assigned by default to the Mount Utility. Simply double-click a disk image file and it opens the Mount Utility.
If you leave the Mount Utility open, it automatically updates itself as the selected file is changed, disabling its buttons and fields when no file is selected. In addition to some information about the selected file, there is a message field explaining whether or not this file can be mounted and why.
Message | Explanation |
---|---|
Selected file is not a disk image. | Since Mount can be opened manually, or left open as the selected file changes, it is not always the case that the selected file is in fact a disk image. |
Cannot mount to boot partition. | When a disk image is mounted it subsumes the SD2IEC partition in which the image file is stored. Listing the partition directory shows the whole partition to be of the type that the image is. All files in that partition outside the image file become temporarily inaccessible. In C64 OS, the system directory must always be available, therefore mounting an image to the C64 OS boot partition is not allowed. |
Device cannot mount images. | Although an image file may be stored on a CMD HD, IDE64, etc., on SD2IEC has the built-in ability to mount an image file. This message is displayed if the device is not an SD2IEC. |
Alright within a mounted image. | Larger images can, in theory, contain smaller image files. For example, the image file of a CMD HD's native-mode partition (.DNP) could easily contain a bunch of .D64 files. SD2IEC cannot mount an image file that is stored within another image file. |
This image can be mounted here. | Finally, if an image file is selected, the device is an SD2IEC, the partition is not the system partition and it does not already have an image mounted, the option to mount the image is enabled. |
Click the enabled Mount button to mount the selected disk image to the current SD2IEC partition. The image is mounted, the Mount Utility is closed automatically, and the directory is refreshed to show the contents of the disk image's root directory. The path bar is updated to indicate that you are now in the root directory of this partition.
An image being mounted is mostly transparent to File Manager. You can uses all the standard features to rename files, scratch files, copy and move files into and out of the disk image. Some features may not work if the disk image's file system does not support it. For example, the option to create a new subdirectory is enabled because the device is SD2IEC. However, if a D64, D71 or D81 image is mounted the subdirectory will not be created because the file system on these device types do not support them.
Unmount a Disk Image
To unmount a previously mounted disk image, first navigate to that SD2IEC partition, then choose Unmount from the Options menu. The disk image is unmounted. This restores the partition to its default state, and the path bar of the current tab is restored to the location where the disk image is stored.
What is a .here file?
C64 OS maintains its awareness of place (device, partition and path) using file references. As the user navigates the file system the file reference is updated accordingly.
When a disk image is mounted, the path necessarily changes. For floppy disk images the path has to be changed to the root (//). And for native partition images the path can then change to specify a path within that image. The File Reference for the tab has its original path replaced with the path for inside the mounted image. Just before mounting the image, the Mount Utility write's the file reference's path to a temporary file called ".here".
When File Manager unmounts a disk image, it searches the current directory for a file called ".here". If it finds one, it reads the file's contents back into the file reference's path component, and then scratches the .here file. Thus it restores the file reference to the location where the disk image is found. If the .here file is not available, the file reference leaves you at the root directory of the partition.
Quit to BASIC
To leave C64 OS entirely and return to BASIC, choose Quit to BASIC from the Options menu, or Press CONTROL+COMMODORE+Q.
The state of the places sidebar, the position of the split, the places of each tab and the currently selected tab are saved first.
The next time you boot C64 OS you are returned by default to the Homebase from which you quit to BASIC. So if you quit to BASIC from File Manager, you will be returned to File Manager when you next boot C64 OS.
It's now safe to turn off your computer.
Remember when Windows 95 introduced that screen that said, "It's now safe to turn off your computer"? It's usually always safe to turn off a C64. In fact most games and programs do not have a Quit or Exit feature; turning off or resetting the computer is the expected and de facto standard for leaving a Commodore 64 program. This is not the case for C64 OS.
As long as there is no disk activity in progress, you won't harm your C64 or your C64 OS installation by simply turning off the computer. However, you may lose various changes if you do not shutdown properly.
Changes to favorites and recents, for example, are cached in memory only. Changes of place to the current tab, which tab is selected, the state of the devices list and the location of the splitter, all of these settings and others are only reliably written to storage when you leave an Application properly.
If you are in an Application, you should Go Home to save its data, state and settings. If you are in App Launcher or File Manager, you should choose Quit to BASIC from the Options menu, or press CONTROL+COMMODORE+Q. This returns you to the C64's BASIC startup screen. And in those words that many C64 fans once spoke to mock Microsoft and early PC users, it is now safe to turn off your computer.
Switch to App Launcher
File Manager and App Launcher are two halves which form the whole known as Homebase. File Manager is a rich and featureful Application in which you can navigate the complete file system, manage files and directories, and open files in Applications or Utilities. But all of this functionality is not necessarily what you need when you boot into C64 OS with the intention of just launching into some other Applications.
To get to the lightweight desktop-like environment where you can more quickly jump from Application to Application, switch to the App Launcher by choosing App Launcher from the Go menu. Or use the keyboard shortcut COMMODORE+L.
Next Chapter: Utilities
Table of Contents
This document is subject to revision updates.
Last modified: Nov 30, 2023