Written and Maintained by Gregory Nacu

C64 OS USER'S GUIDE

Last modified: Jun 21, 2021

Chapter 3: Configuration and Settings

This chapter discusses how to configure and boot up C64 OS, and covers additional setup and configuration options.

Essential configuration is done with the configure tool, a C64 program that is run from the READY prompt to configure an installation of C64 OS for your specific hardware set up and accessibility settings.

Utilities run from within C64 OS provide additional opportunities for configuration. This chapter describes the location and format of settings files which store the current state and configuration of C64 OS Applications, Utilities and the system itself.


Using the Configure Tool

The C64 OS system directory contains a settings subdirectory in which are found most of the C64 OS settings files. In the settings directory is a program called "configure" that loads and runs from the C64's READY prompt. This configures a C64 OS installation for your specific hardware. It can be run at any time, but it should be run at least once before the first time you boot up a new C64 OS installation.

On the C64 OS system drive and partition, change current directory to "//os/settings/". Then load and run "configure". The device in the examples is #12. Use the device # assigned to your C64 OS system drive.

Load and Run configure from //os/settings/.

The Configure Tool walks you through a series of questions, grouped into a few categories: Date and Time, Mouse Input, Global System Settings, Expansion Memory.


Date and Time

The yes or no questions about date and time may be answered according to your personal preference.

The option to display the time in the menu bar affects the visibility of the time after boot up. Regardless of your choice, display of the time can be toggled by holding the COMMODORE key and clicking once on the right end of the menu bar.

Date and Time configuration.

IEC RTC Driver

If you have a storage device that provides an RTC choose the IEC RTC driver. Supported devices include CMD HD, CMD FD, CMD RamLink, IDE64 and some SD2IEC devices if they include an RTC. Unfortunately most SD2IEC devices don't.

The IEC RTC driver gives you an additional choice either to specify the device # or to allow it to auto–detect. Auto–detection uses the lowest device # at which is found on of the supported devices. You should specify the device # explicitly if you want to use a device other than the one that would be auto–detected.

For example, if you had an SD2IEC on device #8 that does not have an RTC, but you had a CMD FD 2000 with an RTC on device #11, the auto–detection would consistently select the SD2IEC because it encounters it first. In this situation, you can specify device # of the CMD FD 2000 explicitly.

The storage device that provides the RTC does not need to be the C64 OS system drive.

I2C RTC Driver

I2C is a serial bus for connecting multiple simple devices together. There is a whole family of common components used for Arduino projects that communicate via I2C.

DS3231 I2C RTC module.
DS3231 I2C RTC module

Above is an example, the DS3231 RTC module, which can be connected to the C64's User Port. C64 OS includes a library that implements the I2C bus. If you do not have another source for a realtime clock this can be an economical solution. These modules are mass–produced and very inexpensive. Additional information about how to use the I2C bus can be found in the Appendix: Libraries.

UCI RTC Driver

If you are using an Ultimate64 or have a 1541 Ultimate plugged in with the most recent firmware update, you may choose the UCI RTC driver. The Ultimate Command Interface must be enabled in the menu system of the 1541 Ultimate or Ultimate 64.

Manual RTC Driver

If you do not have a device which supplies a realtime clock, press "n" to select none of the above. This selects a special manual RTC driver. The manual RTC driver reads a manually configured date/time string from the file:

//os/settings/:time.manual.t

For further information about how to configure a manual time, see Additional Settings time.manual.t below.


Mouse Input

C64 OS comes with 4 built–in mouse pointer styles, choose whichever style you prefer.

Mouse pointer styles.

Following are several mouse accessibility settings. The defaults are reasonable and can be accepted by pushing return, but if you have special requirements you can adjust them using the "+" and "-" keys.

If you use a proportional mouse, like a 1351 or compatible adapter, mouse speed affects the acceleration of the pointer. If you use a joystick, mouse speed affects the maximum speed the pointer can attain.

The double click delay is the time that is allowed to pass between two clicks that still register as a double–click. If you have difficulty double–clicking quickly, this number can be increased. Below is a table of common double–click delays in milliseconds.

Speed Delay
Fast 200ms
Average 400ms
C64 OS (default)   480ms
Windows (default)   500ms
Slow 600ms

The inner and outer colors of the pointer can changed. The defaults are a pleasant black and light grey, but if you have difficulty seeing the pointer, you can adjust the colors to have a higher contrast against typical backgrounds.

The mouse can be configured for left–handed or right–handed use, which swaps the roles of the left and right buttons.

Mouse Input configuration.

Next you can select the appropriate input driver for the hardware you have.

1351 Mouse

If you have a 1351 or compatible mouse or a 1351 adapter such as MicroMys or MouSTer, choose the 1351 mouse driver. This driver requires the mouse to be connected to control port 1.

Joystick

The experience of using a proportional mouse is superior to the experience of using a digital joystick. However, if you only have a joystick you can still use it to control C64 OS. Choose the joystick driver, either for control port 1 or 2.

KoalaPad

The KoalaPad driver can be selected if you own a KoalaPad. It must be connected to control part 1. The C64 OS KoalaPad driver is quite advanced. It uses the relative difference between two points to proprtionally move the input pointer, rather than mapping each point on the pad to a point on the screen. In this way, a KoalaPad in C64 OS behaves more like a modern computer's trackpad than like a miniature drafting tablet.

C128 Numeric Keypad

C64 OS runs on a C128 in C64 mode. However, most of the C128's additional hardware can be accessed with appropriate programming from C64 mode. This includes the ability to read the C128's extended keyboard.

This driver enables a set of keys on the C128's numeric keypad to function like a digital joystick. The number keys: 4, 5, 6 and 8, are used with the index, middle and ring fingers of your right hand for left, down, right and up, respectively. The pinky finger rests on the enter key which is used as the primary click.

The C128 numeric keypad keys used for by the input driver.

Technical Note

For those curious why the keys: 4, 5, 6 and 8 are used instead of: 1, 2, 3 and 5, it turns out there is a key matrix conflict between 1, 2, 3 and 5 such that some combinations for diagonal movement would not be possible.


Global System Settings

The CPU busy indicator is a clock animation that appears in the top left corner of the screen if the CPU is occupied for longer than a few seconds. It indicates that activity is taking place that could cause the user interface to become unresponsive. Press "y" to enable this feature.

There is then a series of questions about keyboard shortcuts that trigger system–level features. You can press "y" to accept the defaults. These options serve to show you that these features exist and how they can be triggered. You can customize them if the defaults are inconvenient.

Global System Settings.

The status bar has three display modes. You can choose which mode to start up in, according to your preference. If you do not have a preference, press "2" to select Application custom status.

For more information about the menu bar, the status bar, and split and fullscreen graphics modes, see Chapter 4: User Interface.


Expansion Memory

C64 OS makes use of expanded memory from a RAM expansion unit (Commodore 1750 and compatible REUs) to enable fast app switching. C64 OS auto–detects the presence of an REU and its capacity, and also provides an abstraction layer to help programmers write applications that are able to make use of an REU. This abstraction layer allows you to decide how to allocate expanded memory.

You can choose how much memory to allocate to fast app switching and how much to reserve for applications to use for other purposes. C64 OS uses one 64KB bank for each fast–switched app and manages the use of space dynamically.

REU Model Size Banks Notes
1700 128KB 2 Very small
1764 256KB 4 Small
1750 512KB 8 Medium
1750XL 2MB 32 Large
Ultimate 64 / 1541 Ultimate Upto 16MB 256 Very Large

If you dedicate all available banks to fast app switching, then an application that can make use of expanded memory operates as though no REU is available. If your REU has enough banks to go around, a happy balance would be to dedicate a few banks to fast app switching, and still leave some for use by applications that can benefit from more memory.

Technical Note

All RAM expansion units in the 17xx family provide additional memory. But they also provide the C64 with a RAM expansion controller (REC) chip. Even a 1700 REU, which provides only a small amount of extra memory, helps speed up C64 OS. The RAM expansion controller can transfer blocks of main memory faster than the CPU, and C64 OS uses this automatically to accelerate screen redrawing, file copying and archiving, etc.

Press return to accept the default of 0 banks for fast app switching, or use the "+" and "-" keys to adjust the number of banks.

For additional information about fast app switching, see Chapter 4: User Interface.

Global System Settings.

The amount of available main memory is displayed at the right end of the status bar. The Utility that is opened when you double–click the available memory is configurable.

Press "1" to choose the Memory Utility. The Memory Utility provides a visual map of how main memory is currently allocated. Press "2" to choose the Peek Utility. Peek lets you examine the contents of your computer's memory and should only be chosen if you are an advanced user.

See Chapter 8: Utilities for more detailed explanations of how to use the Memory and Peek Utilities.


For compatibility with IDE64, C64 OS needs a modified memory map. If you use an IDE64, even if it is not the C64 OS system drive, press "y" to select IDE64 compatibility. If you are not using an IDE64, press "n" to select the standard memory map.

Global System Settings.

Lastly, C64 OS displays memory quantities in various places. Choose whether you want to see memory represented as 256–byte pages, roughly the same as a disk block, or to see memory in kilobytes. Showing memory in kilobytes is less accurate than pages, but may be more familiar for users of modern computers.

You can run "configure" at anytime, to change your decisions. This may be necessary if your hardware setup changes. For example, if you switch from a mouse to a joystick or other input device, or if you start using an IDE64.

C64 OS configuration is now complete. If you have just configured a fresh installation of C64 OS, then you are now ready to boot up for the first time.


Booting Up C64 OS

Once you have run through the Configure Tool at least once on a fresh installation of C64 OS, you are ready to boot C64 OS for the first time.

Load and run "c64os" from the root directory of the C64 OS installation partition and device.

Note that the device is not required to have its current partition set as the partition where C64 OS is installed, nor is it required to have its current directory set as the root directory.

Regardless of what partition or directory the device is currently in, you may specify the partition and path in the load command. When the booter runs, it automatically takes the necessary steps to ensure that C64 OS boots up successfully.

Load and run c64os from the root directory.

You see a progress meter as the booter loads the system files. Next the settings files are loaded in, drives are detected and mapped, expanded memory is detected and checked for available capacity, and the date and time from the realtime clock is read in.

C64 OS booting up. C64 OS booting up.

Once the system files are loaded in, C64 OS automatically launches the last Homebase Application you were in. If you last Quit to BASIC from the File Manager, you are returned to the File Manager when you next boot up. If you were last in the App Launcher, you are returned automatically to the App Launcher.

A fresh installation of C64 OS is configured to open the App Launcher first. This standard splash screen is displayed while launching an Application, showing its installed path and custom icon.

C64 OS launching the App Launcher. C64 OS launching the File Manager.

When the App Launcher is finished launching, you see a desktop with aliases to Applications and Utilities that you can open by double–clicking.

Note: The desktop that you see may not look exactly like the example shown below.

The C64 OS App Launcher desktop.

If you were last in File Manager, then when the File Manager is finished launching, you see a directory displayed in one of the File Manager's four tabs. From the File Manager you can navigate the file system, open Applications and Utilities, or open files in an Application or Utility, by double–clicking on them.

Note: The File Manager that you see may not look exactly like the example shown below.

The C64 OS File Manager.

Congratulations

C64 OS is up and running on your Commodore 64. If you're ready to get into C64 OS and explore the user interface and its built–in applications, you can skip ahead to Chapter 4: User Interface.


Additional Settings

Within C64 OS, you can open the Settings Utility. The Settings Utility gathers together several Utilities that are related to managing C64 OS or seeing and changing its settings. These are organized into useful groups so they're easy to find.

The Settings Utility.

The Settings Utility is available in the utilities menu so it can be accessed from within any other application. And because the Settings Utility opens other Utilities, only a single entry in the utilities menu is necessary for any application to get access to most system settings.

For more information about how to use the Settings Utility, and how to use the individual Utilities that it gives you access to, see Chapter 8: Utilities.


How and Where Settings Are Stored

Applications, Utilities and many system features are highly configurable. The data files used to store configuration are divided into two different kinds: state and settings.

State Files (*.i)

State files end with a ".i" extension and are in a binary format that is generated automatically by the Application or Utility. The ".i" extension stands for initialization. It is safe to scratch these files, because Applications and Utilities have built–in default values, which are only overwritten by an initialization file if one is found.

Settings Files (*.t)

Settings files typically end with a ".t" extension and are in a text format that can easily be edited with a text editor or produced with a few commands from the READY prompt. These files cannot be scratched or the process that depends on them will not function correctly.

Unlike state files, settings files can be and were intended to be edited by hand. This can give you access to features that aren't exposed by the graphical user interface. Care must be taken that the files remain in the correct format and have values that fall within acceptable ranges.

If you plan to experiment, it is a good idea to make a backup of any settings file before modifying the original. If anything goes wrong, you can always use commands from the READY prompt to restore the original file.

Make a quick backup of a settings file

Here's an example of the copy command to make a backup of a file, before you experiment with changing the original.

open15,8,15,"c:config.t.bak=config.t":close15

Now you can modify config.t without worrying about breaking anything. If something goes wrong, just scratch the broken file and copy the backup back to the original, like this:

open15,8,15,"s:config.t":close15
open15,8,15,"c:config.t=config.t.bak":close15

Settings Directories

There are two places where state and settings files are stored. If the state or settings are global to the whole operating system, they are stored in the system's settings directory:

//os/settings/

Some state and settings are customizable per application. A Utility does not have its own bundle directory, but is always run alongside an Application that does. Thus, Utilities that store state per application write their state file into the bundle directory of whatever Application is currently running.

//os/applications/App Name/

Helpful Hint

Software is not always perfect and occasionally a state file could become corrupt or hold onto invalid data.

If something—like a Utility—suddenly starts misbehaving, such as crashing or locking up, one easy way to resolve a potential problem is to scratch its .i state file. The next time the Utility is opened, it generates a new one with valid default values. This won't necessarily solve the problem, but it might. You should try this if a Utility works well when opened in one Application, but is misbehaving when opened in another.


Overview of the Settings Directory

Below is an overview of the contents of the system's settings directory. As you add new Applications and Utilities to C64 OS, the contents of this directory will grow. State and settings files store sequential data, so they all have the SEQ file type.

Overview of the Settings directory, part 1. Overview of the Settings directory, part 2.

Using the JiffyDOS "@T" command from the READY prompt, you can easily list the contents of a text file. For illustrative purposes and to give you a glimpse into the system's organization, the contents of components.t and modules.t are listed in the image below.

Contents of the components.t and modules.t system settings files.

These files are both found in the system's settings directory and by used during the boot process.

//os/settings/

These are not meant to be edited by the typical user, but show that even low–level parts of C64 OS make use of human readable settings files.

Components

The components.t file lists a small set of files that are stored in the library directory. Components are loaded in very early, because other parts of the operating system depend on them.

Modules

The modules.t file lists the KERNAL modules to load. The first character on each line allows for conditional loading. An asterisk (*) indicates the module is always loaded. A plus (+) is only loaded if an REU has been detected, and a minus (-) only when an REU is not available.

Other Settings Files

After installing the KERNAL modules the booter installs the Toolkit classes listed in tkclasses.t. Finally, the booter loads in all the settings files needed for configuring the operating system.

Each of the sections described above in the Configure Tool deposits an encoding of your configuration choices into a settings file found in the system's settings directory.

Configure Section Settings File
Date and Time time.t
Mouse Input mouse.t
Global System config.t
Expansion Memory memory.t

For a much more detailed description of the format and function of each settings file, see the section on State and Settings in the C64 OS Programmer's Guide.

Contents of several common settings files.
Contents of several common settings files.

Several Useful Settings Files

There are several settings files which are useful to know about. These can be used for reference and some can be fruitfully changed by hand without a great deal of technical knowledge.

version.t

Once booted up, the C64 OS version number can be found by opening the About C64 OS Utility. This Utility shows some credits, a copyright notice, the C64 OS boot logo, and the version number.

The version number is actually stored in:

//os/settings/:version.t

system.t

One of the steps in the C64 OS Setup Tool, described in Chapter 2: Installation, is to specify the name of the system directory. The Setup Tool confirms that a system directory with that name exists and writes it into the C64 OS booter.

Additionally, the name of the system directory is written into:

//os/settings/:system.t

It must be in the format //dirname with no trailing slash.

time.manual.t

The date/time string read in by the manual RTC driver (which is selected if you do not have a source for a realtime clock), is found in the file:

//os/settings/:time.manual.t

Here is an example of how you can change the manual date/time string with just a few commands from the READY prompt.

open2,8,2,"@//os/settings/:time.manual.t,s,w"
print#2,"21/05/14 09:00:00"
close2

The date/time string is formatted as follows. Each field requires two digits, use a leading zero on single digit numbers. The year is only two digits; the lowest year is "80" which is interpreted as 1980, up to the highest year "79" which is interpreted as 2079. Months range from 01 to 12. Days range from 01 to 31. Time is in the 24–hour format.

YY/MM/DD HH:mm:ss
21/01/30 09:05:00

Quick Access Paths

The File Manager has a Go menu, under which are listed several places in the file system that can be quickly jumped to. Three of these are defined by the system: The applications directory, the utilities directory, and the system directory itself.

There are four more quick access paths in the Go menu that are user definable. Documents, Games, Music and Pictures (with corresponding keyboard shortcuts F1, F3, F5, F7.) Each time one of these is chosen its path is read from a corresponding settings file in the system's settings directory. The files are:

docs.path.t
games.path.t
music.path.t
pictures.path.t

Each of these files holds a single path, in the C64 OS file reference format. For example:

8:4:://documents/

For more information about the file system and C64 OS file references, see Chapter 5: File System.


Next Chapter: User Interface

Table of Contents



This document is continually updated.

Refer to the last modified date at the top of this document for the most recent changes.