Using disks¶
We discussed using D81 disk images back in Disk images, including:
How to browse D81 disk images using the Freeze menu
How to mount a D81 disk image on drive 0 device 8 using the Freeze menu
How to get a directory listing with the
DIR
commandHow to load and run a program on the disk using the
LOAD
andRUN
commandsHow to use the
/
and ↑ shortcuts to load or run a file within a directory listing
Disk-related improvements have been advancing quickly, and the latest ROM includes bug fixes and useful features.
Tip
Make sure you have the PDF or printed copy of The MEGA65 User’s Guide, 2nd edition, which describes features that were added more recently than the 1st edition.
Listing a disk directory¶
The DIR
command lists all of the files on a given disk. Without arguments, it lists the files on the disk in device 8:
DIR
If there are too many files than fit on a single screen, the list will scroll off and you will only see the bottom of the list. You can use the W
argument to tell DIR
to show the listing in multiple columns, and to wait for a keypress to show more pages. (Try this with the MEGA65.D81
disk.)
DIR W
Hint
For more on the DIR
command, see the User’s Guide, page 106.
One disadvantage of the W
flag is that you cannot use the /
shortcut to load a program into memory. There is another way to view the complete directory listing and still use this shortcut: load the listing into BASIC memory. Commodore 64 users are familiar with LOAD "$",8
followed by LIST
. To do this with the MEGA65:
DLOAD "$$"
LIST
This still scrolls a long listing off the screen, but now you can use MEGA65 BASIC’s listing viewer features to scroll up to previous lines. Use the F9 and F11 keys to traverse the listing, then cursor up to a program you want to load and use the /
or ↑ shortcuts.
Caution
Loading the directory listing with DLOAD
overwrites any BASIC program that resides in memory. The DIR
command does not overwrite BASIC memory.
Using the SD card from BASIC¶
Recent improvements added the ability to manipulate disk images on the SD card without using the Freeze menu. In general, device U12
is considered the SD card. Only some disk commands work with the U12
device.
To list all of the files on the SD card:
DIR U12
This does not yet support other features of the DIR
command, such as filters or paging.
To mount a D81 disk image from the SD card directly from BASIC, use the MOUNT
command:
MOUNT "DISKNAME.D81"
By default, this mounts the disk image to device 8 (U8
). To mount to device 9, add an argument:
MOUNT "DISKNAME.D81",U9
You can load a program file (.PRG
) directly from the SD card, without having to create a D81 disk image. To do this, use the DLOAD
command with unit U12
, and be sure to include the .PRG
filename extension:
DLOAD "FILENAME.PRG",U12
(Loading a PRG file directly from the SD card does not work with the LOAD
command.)
Using 3-1/2” floppy disks¶
Your MEGA65 includes a built-in 3-1/2” floppy disk drive for a complete retro experience.
If you don’t have 3-1/2” floppy disks lying around, you can still buy them new-old-stock at a reasonable price. I buy mine from FloppyDisk.com. You can also find refurbished floppy disks on eBay.
The MEGA65 floppy drive supports both double density (DD) and high density (HD) disks. However, as of this writing, the ability to use the larger capacity of HD disks is still in development. To use an HD disk with the MEGA65, you must apply non-transparent tape over the hole in the upper left (as shown). This convinces the floppy drive to treat the HD disk as if it were DD.
Tip
Until this is fixed in a future software update, an HD disk with the hole exposed will not work with the MEGA65. If your disk isn’t working, double-check that the hole is covered.
Using the physical floppy drive is similar to using a disk image. Open the Freeze menu (hold Restore, then release), then select drive number 0
. (The internal drive can only be mounted to drive 0.) In the list of options that includes the D81 disk images, select - INTERNAL 3.5" -
. Exit the Freeze menu (resume or reset).
Alternatively, you can mount the internal physical drive on device 0
with the MOUNT
command, no arguments:
MOUNT
Insert a floppy disk in the drive. If you have not used this disk with the MEGA65 before, it needs to be formatted. This erases all data on the disk! Use the HEADER
command, providing a disk name in quotes, and a two digit disk ID number preceded by the letter I
:
HEADER "WORK FILES",I01
Enter YES
at the prompt to confirm. Formatting a disk for the first time takes a minute or so.
Hint
See the HEADER
command in the User’s Guide, page 135.
You can now use the floppy disk like you would a D81 disk image. Some things to try:
DIR
10 PRINT "HARD AT WORK"
20 GOTO 10
SAVE "HARDLYWORKING"
NEW
DIR
LOAD "HARDLYWORKING"
LIST
RUN
Booting from a disk¶
A disk (or disk image) that contains a program named AUTOBOOT.C65
is considered bootable. With such a disk mounted on unit 0
, the MEGA65 will load and run this program automatically when it boots or resets. As we saw in Demonstration menu, this is how the demo disk starts automatically when you turn on your MEGA65.
Running the BOOT
command with such a disk mounted also runs this program:
MOUNT "MYGAME.D81"
BOOT
By default, the MEGA65.D81
disk image is mounted on unit 0
when the MEGA65 is turned on for the first time. You can change which disk image is mounted in the MEGA65 Configuration menu. You cannot set this to be the physical drive by default; it has to be a D81 disk image on the SD card. If there is no setting in Configuration, it uses MEGA65.D81
; to start with nothing mounted, remove or rename the MEGA65.D81
file on the SD card.
Using an external disk drive¶
Your MEGA65 has a 6-pin IEC serial port for connecting vintage Commodore disk drives. With a drive connected, you can use the Freeze menu to assign it to drive 1
.
Commodore disk drives use a serial protocol that allows multiple devices to be connected in a chain. Each device must have a unique device ID. For disks, the available device IDs are 8, 9, 10, or 11. These old devices do not have a way to figure out their device IDs automatically. Instead, you use switches on the device itself to tell the drive its device ID. Each device ID must be assigned to a unique drive.
The MEGA65 can assign either device ID 8 or 10 to the drive connected as drive 0 (a disk image or the internal floppy drive), and can assign either device ID 9 or 11 to the drive connected as drive 1 (another disk image or the external serial port). You can toggle the device IDs for drive 0 or 1 in the Freeze menu by pressing 8
or 9
, respectively. Make sure your external drive is configured to use the device ID you have assigned to drive 1 in the MEGA65 Freeze menu (either 9 or 11).
Any device that supports the disk serial protocol is expected to work, including new disk devices such as the Pi1541. Notice that some such devices like the SD2IEC need the C64 tape port to supply power to the device, and the MEGA65 has no such port.
Converting a D64 to a D81¶
You can find almost every game and application written for the Commodore 64 online in the form of disk images. However, these disk images are typically in the D64 format, which represents a 5-1/4” floppy disk. If you want to try running a C64 application on your Mega65 in its C64 mode, you must first convert the D64 image to a D81 image. (The D81 image represents a 3-1/2” floppy disk.)
One way to do this is with the cbmconvert
command line tool. This requires your PC (Windows, Mac, or Linux) and familiarity with the command line (Terminal).
cbmconvert
is only available as source code, so you will need the ability to compile software on your PC. Linux users typically already have compilation tools installed. Mac users can install such tools with the command:
xcode-select --install
cbmconvert
version 2.1.5 requires cmake
to build. On a Mac, you can install this with the Homebrew package manager:
brew install cmake
To build the cbmconvert
tool:
Download cbmconvert’s source code. (See this Github repo for versions 2.1.5 and later, or the download site for links to other versions.)
Expand the archive:
unzip cbmconvert-main.zip
Change to the expanded directory:
cd cbmconvert-main
Build the tool:
cmake .; cmake --build .
The cbmconvert
tool is now present in the directory. You can put this directory on your command path, copy the cbmconvert
file to somewhere on your path, or use the path to this directory when running the tool.
To use cbmconvert
to convert a D64 file to a D81 file:
cbmconvert -v2 -D8 filename.d81 -d filename.d64
(The order of arguments matters: -D8 filename.d81
is the D81 disk image to create, and -d filename.d64
is the D64 disk image that is the source of the files.)
Copy the new D81 file to your microSD card, then return the card to your MEGA65. Open the Freeze menu, then select the D81 image for drive 8. At the MEGA65 BASIC prompt, enter GO 64
and type YES
to confirm. The disk is now available on drive 8 from C64 mode.
Note
Not all D64 disks can be converted to D81, especially software with copy protection.
Note
C64 mode is known to not be compatible with all C64 software. If you are experiencing difficulty, try using the Freeze menu to switch from NTSC to PAL video mode or vice-versa (assuming you have a monitor that can show it).
Tip
Remember that the C64 core (not C64 mode) supports D64 disk images directly without needing to convert them to D81 images. See The C64 core.