[Coco] [Color Computer] Re: CCASM winclude/wincludebin

James Diffendaffer jdiffendaffer at yahoo.com
Tue Jan 23 15:42:14 EST 2007

I'd never use winclude.  The net could be down, some people may have
dialup (like me at the moment), changes to the libs could break
people's code, updates could introduce bugs... bad idea IMHO.

If you want to work on a standard set of libraries people can include
that's fine.
But if you want to do something like that then place the libs locally
and include a utility to update the libs from the web similar to
cygwin.  That way people can pick and chose updates that won't break
their code just because someone found a "better" way to do something.

---- Original message follows -----
Call me crazy, but I'm one of the kind that gets insanely great ideas
and actually makes them happen sometimes, so here goes...

I think some of us would create new games and software for the CoCo
if we had a little help in doing the work, so here's yet another
incentive along with ofcourse, the Rainbow IDE, which lends itself to
CoCo newbies and pros alike.

You might be faced with the questions one day like "how can I create
a CoCo game that has graphics and music?", "where do I find out how
to do this?", "how do I print to the graphics screen?", "what about
joystick control?", "sound effects?", "are there any fully-working
game templates that I can hack into my own games?", etc.

I think that if most of the hard work is already done and you could
easily include this work in your programs for calling, this will give
you a huge head start and when you see some INSTANT results, and I
mean INSTANT as in clicking Go! and then when the CoCo pops up on
your PC, type in LOADM "MYGAME" at the prompt and then EXEC to see it
run, you will be so thrilled that you might go ahead and start adding
more to the program and turn it into a nice jewel.

Rainbow uses CCASM automatically if you like for CoCo programming,
and your source code itself can hold the answer to some of those
questions above. There's already CoCo source code available so why
not use it in the easiest way possible, by including it in your own
source code from a maintained depot on the web.

CCASM is about to gain two new features. A "winclude" directive for
including source code sections, and a similar "wincludebin" directive
for including raw data right into the codestream, from any web
server. Let me explain...

org 3584
winclude "http://www.rainbowide.com/source/coco3/lib/gamelibrary.asm"
font1 wincludebin "http://www.rainbowide.com/source/coco3/fonts/space.fnt"
align 256
song1 wincludebin
align 256
song2 wincludebin "http://www.rainbowide.com/source/coco3/music/darth.mus"
title fcn "Star Warz"
start ldx #640
ldy #200
jsr VideoBlank
jsr SetGraphics
ldb #0
jsr Cls
jsr VideoOn
lda #30 x
ldb #10 y
ldx #title
jsr HPrint
ldx #song1
jsr PlayMusB 4-voice MUSICA file player, in the background
bra *
end start

Such a limited example but you get the idea which is also what
Rainbow does... to help people write new games or programs for the
CoCo. With a prewritten and maintained CoCo 3 library of routines,
you can get around some of the problems with writing programs that
need graphics and music, etc.

The above example could very well build directly into an early game
model that switches into graphics mode with a black screen and starts
playing a Star Wars theme in the background while your title is
displayed. This is a form of co-development because I could improve
on my library routines 24/7, fix bugs, etc. with the results carrying
directly into your latest build of your game or software.

Ofcourse, you could do all of this without the winclude functions if
you have those library files on your PC, but that's more work you
want to avoid, right?

Also, I know that I get very little feedback from my CoCo ventures I
mention here, but rest assured I'm going strong and coming up with
new ideas that you'll want to see sooner or later if you're a true
CoCoNut. Let me know your thoughts.

Cheers, and have a great day.

Roger Taylor 

More information about the Coco mailing list