Firmware Enhancements
to Commodore DOS
Introduction
Other than the release notes in the
firmware source distribution, there is little actual
documentation for sd2iec, the notes on this page were
mainly extracted from the sd2iec and NODISKEMU
readme files and omit most of the
technical details not necessary to use the features. For
full details of the firmware's history and credits,
refer to the
NODISKEMU and
sd2iec webpages.
The petSD+ firmware (NODISKEMU) includes enhancements from
sd2iec which
provide a number of features beyond those present in
Commodore DOS.
These additional features are inspired by the additional
features developed by
Creative Micro Designs (CMD) for their range of SCSI
hard drives for Commodore 64 and 128 computers and
included a Real Time Clock, support for disk
partitions of up to 16 MB and sub-directories. More
details beyond the limited information on using these
additional features contained in the firmware release
notes can be found in the Command Reference
section of the CMD Hard Disk manual.
These web pages will provide an overview of using the
CMD features in petSD+.
Prior to producing their hard drive
systems, CMD had also developed a product called
JiffyDOS, an enhanced disk operating
system designed to speed up disk read/write access.
JiffyDOS also had a built-in
DOS wedge which simplified sending commands to the disk
drive. JiffyDOS and its
built-in DOS wedge were available for CMD hard drives
and this functionality is supported by NODISKEMU.
Commands
General Notes
For simplicity, the disk commands documented on these
pages will initially be based on the assumption that you
are using a DOS wedge, either embedded in
Steve Gray's
replacement Editor ROM, or loaded as a TSR program such
as
Nils Eilers DOS
Wedge program.
When I get time, I will
probably expand the examples to include the equivalent
Commodore BASIC native commands, but you REALLY should
be using a DOS wedge anyway ! To understand why, take a
look at my
Disk Commands page, it describes how you need to
access disk drive functions by passing strings to the
device over the Command Channel (#15).
Assumptions petSD+ device address = #8
Partitions
sd2iec includes support for partitions,
as do the initial releases of NODISKEMU, however,
partition support in NODISKEMU is depreciated and will
likely be removed as some point, as Commodore's hard
drives didn't support them, Windows is unable to cope
with multiple partitions on a single SD card and they're
conflicting with support for multiple drives per disk
unit.
This User's Guide will not discuss the
use of partition commands, other than for accessing the
EEPROM file area.
The partition commands are presented on their own for
ease of removal from this page if/when they are removed
from the NODISKEMU firmware.
NODISKEMU Partition Structure
Reported by entering "@$=p" |
Number |
Reported as |
Type |
0 |
"system" |
sys [tem] |
1 |
"" |
nat [ive] |
2 |
"eepromfs" |
nat [ive] |
|
In sd2iec, partitions are numbered from
1 to x, where x is the last partition on the device.
Partition 0 always points to the currently selected
partition, and is 1 by default.
By default, the EEPROM file area in
NODISKEMU is Partition number 2, but to cater for other
hardware, the base sd2iec firmware also allows direct
access to the EEPROM file area using the "!"
character.
List SD Card Partitions |
@$=p |
Change to Partition 2 (the petSD+ EEPROM file
area) |
@cp2 |
Change to the EEPROM file area (device
independent) |
@cp!: |
|
|
Sub-Directory and Image File Support |
Directory Filters |
To show only directories, both "=b"
(CMD-compatible) and "=d" can be used.
On a real
Commodore drive, "d" matches everything.
To include hidden files in the directory, use "*=h" NODISKEMU
marks hidden files with an h after the lock
mark, i.e. "prg<h" or "prg
h".
|
Examples |
wedge |
native |
Show only sub-directories |
@$:*=b |
@$:*=d |
open
1,8,15,"$:*=b": close 1 |
|
|
|
CMD-style
"short" and "long" directory listings with
timestamps are supported ("$=t"), including
timestamp filters. |
Examples |
wedge |
native |
Directory with short timestamps |
@$=t |
open
1,8,15,"$=t": close 1 |
Directory with long timestamps |
@$=t:*=l |
tba |
Sub-Directory and Image File Operations |
Subdirectory access is compatible with the
syntax used by CMD drives, although
drive/partition numbers are completely ignored.
Commands are similar to the MS-DOS
MD (Make Directory), CD
(Change Directory)
and RD (Remove
Directory) commands.
CD is also used to mount/un-mount image files.
Just change into them
as if they were a directory and use "@cd:←"
to leave.
Please note that image files are detected by file extension and file size
and there is no reliable way to see if a file is
a valid image file.
|
Examples |
wedge command(s) |
native command |
Move up one directory level |
@cd:← |
@cd← |
open
1,8,15,"cd←":close 1 |
Change into fu |
@cd:fu |
@cd/fu |
tba |
Change into \fu |
|
@cd//fu |
tba |
Change into fu\bar |
@cd/fu:bar |
@cd/fu/bar |
tba |
Load image.d64 (a .d64
image) |
@cd:image.d64 |
@cd/image.d64 |
tba |
Load image.d80 (a .d80
image) |
@cd:image.d80 |
@cd/image.d80 |
tba |
Close the image file |
@cd:← |
@cd← |
tba |
MD uses a syntax similar to
CD and will create the
directory listed after the colon (:), relative
to any directory listed before it. |
Creates bar in
fu |
@md/fu/:bar |
|
tba |
Creates bar in
\fu |
@md//fu/:bar |
|
tba |
RD can only remove subdirectories of the current directory. |
Deletes fu |
@rd:fu |
|
tba |
File Operations |
Copy (C)
Syntax:
C[partition][path]:targetname=[[partition][path]:]sourcename[,[[p][p]:]sourcename...] |
|
Examples |
wedge command(s) |
CMD command |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UNDER CONSTRUCION