[Coco] A Humble Proposal Re: M/L Disk I/O and CoCo Game "Construction Sets"
L. Curtis Boyle
curtisboyle at sasktel.net
Fri Apr 13 13:54:16 EDT 2007
On Fri, 13 Apr 2007 11:42:56 -0600, Joel Ewy <jcewy at swbell.net> wrote:
> First off, let me say that I'm well aware that computer culture is a
> meritocracy, and my few, feeble contributions to the CoCo / MM/1
> software library hardly qualify me to make grand proposals. I've seen
> software and hardware project ideas posted to this list responded to
> with something like "Yeah, if you think it's so easy, why don't you do
> it yourself?" And that's not an unreasonable response. Still, the
> CoCo's relative simplicity, and its "diamond in the rough" character
> have always made it an ideal platform for learning and stretching one's
> capabilities. While my list of programming accomplishments is pretty
> small at this point, and my degree is in Philosophy, I do have a bit of
> technical knowledge, and even some formal, college-level computer
> science (Data Structures, Computing Algorithms, Computer Systems,
> Digital Electronics & Computer Architecture, Software Design &
> Development). Maybe just enough to make the following suggestion:
>
> Why not start building a collaborative, open source library of assembly
> language routines for the CoCo/(D)(S)ECB that will facilitate writing
> games, utilities, or whatever, and which will mimic to some extent the
> system calls of (Nitr)OS-9? This could morph into a full-blown game
> toolkit, or just be one component of it, if it gets that far. I'm not
> talking about complete compatibility -- the routines can be jumped or
> branched into instead of accessed with an SWI. And there's no reason to
> try to completely re-implement all of OS-9 under RS-DOS. That's not at
> all the point.
>
> The idea is just that if there's a library that provides basic file I/O,
> or other services that are also provided by (Nitr)OS-9, there would be
> significant benefit to doing it in a way that can easily be translated
> to/from OS-9. For instance, there should be an equivalent to the I$Open
> system call, and it should take a pathname (for RS-DOS, something like
> "MYFILE.DAT:0") and return a pointer to a vaguely
> OS-9-path-descriptor-like data structure including a sector buffer.
> Internally, it should find the file if it exists, and set things up for
> future calls to an I$Read or I$Write equivalent. There are a lot of
> OS-9 calls that would be totally irrelevant, and those need not be
> implemented here.
>
> The goal is not really compatibility, but reasonable portability. The
> CoCo world is too small to be completely divided between (Nitr)OS-9 and
> RS-DOS. Anything that can be done to facilitate cross-OS portability
> can only strengthen both environments, and the CoCo as a whole. Of
> course it may not be feasible to port Donkey Kong to OS-9, or Flight
> Simulator II to DECB (or it may be, I don't know). But there are lots
> of programs that could be written in such a way that they could fairly
> easily be ported. (Of course it would be easier to go from OS-9 to
> RS-DOS unless you are very careful to write mostly relocatable code for
> RS-DOS...) It would be a shame if a new code library was written that
> was obtusely incommensurate with OS-9 system calls just because nobody
> put any thought or care into it.
>
> Even if it doesn't result in direct code compatibility, providing
> OS-9-similar functions for non-OS-9 CoCo M/L programs would make it much
> easier for programmers to move back and forth between the two
> environments, which can't be anything but good for the CoCo.
>
> I know Roger Taylor is going to suggest that it be done with Rainbow
> IDE. :-) And he has already suggested a code repository. I think
> that's very cool, and Rainbow IDE should definitely be able to use this
> code. But I would be very disappointed to see it locked in so it
> couldn't also be used in Toolshed, EDTASM+, or some scungy homebrew
> assembler. Just my two cents.
>
Actually, that is a pretty good idea, and I don't think backporting some
stuff between the two is impossible (although Donkey Kong would be very
difficult)... Thexder, from looking at the disassemlbed source, WAS
originally for OS-9, and must have been changed to cartridge format near
the end of the project (as per Alan Dekok, who ported it back).
--
L. Curtis Boyle
More information about the Coco
mailing list