[Coco] CoCoTools
Boisy G. Pitre
boisy at boisypitre.com
Mon Mar 8 22:34:18 EST 2004
Back on February 3 I posted a message to the list regarding an upcoming
release of OS9Tools. It's now March 8 and I am finally getting this
done. The package has been renamed to CoCoTools and has moved from
SourceForge to a new home: www.nitros9.org where the web page will be
updated shortly with links to packages for Windows, Linux and Mac.
The name change comes as a result of a new focus of the project. Not
just a command utility for reading/writing OS-9 disk images, CoCoTools
contains the os9asm/6309 cross assembler, and also a new utility: decb.
This utility is the Disk BASIC counterpart to the 'os9' command,
allowing common Disk BASIC commands to be run on disk images.
In fact, both the os9 and decb programs understand each other's disk
formats, so you can run this command at a Windows command prompt, given
an OS-9 disk image (os9.dsk) and a Disk BASIC disk image (rsdos.dsk):
os9 copy os9.dsk,startup rsdos.dsk,
OR
decb copy os9.dsk,startup rsdos.dsk,
Either utility's copy command knows how to read/write to either Disk
BASIC or OS-9 disk images, or of course, the native file system:
decb copy rsdos.dsk,test.bin test.bin (copies test.bin from the RS-DOS
disk image to the current Windows directory).
This will be a pre-release. There are probably some bugs, and the Disk
BASIC write functionality is not in place yet. That will come later,
so for now you can only READ the contents of a Disk BASIC disk image.
Along with these tools will be the following C libraries for those who
want to integrate CoCoTools functionality into their programs:
libdecb.o
libnative.o
libos9.o
libcoco.o
The first three, libdecb.o, libnative.o and libos9.o are for their
respective platforms. They all have a C interface that is similar to
OS-9's calls for opening/reading/writing files via a path.
So, libdecb.o has functions like: _decb_open(), _decb_read(),
_decb_write(), _decb_close(), etc.
Likewise, libos9.o has functions: _os9_open(), _os9_read(),
_os9_write(), _os9_close()
And the native functions (which work on the native disk system) have:
_native_open(), native_read(), _native_write(), _native_close()
The idea is that all three libraries have a very common interface to
basic file I/O.
The really cool feature is the fourth library: libcoco.o This library
abstracts a path to a higher level, and provides functions:
_coco_open(), _coco_read(), _coco_write(), _coco_close(). These
functions automatically look at the target and can determine whether it
is a native disk file, coco disk image or OS-9 disk image.
Applications using this library do not have to know the details of
which disk image or file type they are dealing with.
I will be working towards documenting these libraries for the full 1.0
release of CoCoTools. For now, I will pre-release the tools this week
so that as many people can use them as possible and report issues.
Boisy
More information about the Coco
mailing list