[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