[Coco] Rainbow IDE is building to OS-9 virtual disks
Roger Taylor
operator at coco3.com
Sun May 27 22:36:58 EDT 2007
Some news on Rainbow...
Tonight I have a simple OS-9 project that launches an OS-9 boot disk
in M.E.S.S. with my object file sitting in the root directory. When
OS-9 boots up, I hit ENTER to get past the clock setup, then type
DIR, and there's my object file. Tee hee. If I go back to my source
and change the output object name to another name and rebuild, the
new OS-9 disk will only show the new filename since a template disk
is used (I used a boot disk image).
A new "add template disk" button is in the left sidebar now that lets
you browse to an existing virtual disk of any kind compatible with
imgtool.exe, decb.exe, or os9.exe, then that disk is copied into your
project folder. The IDE remembers that it's a disk not to be created
or formatted, then you can send output objects to that disk quite
easily by selecting the disk name for the current source code
file. Names of these kinds of disks will start with "~ " like "~
nitros9.os9" in the list to show you they are template disks that are
copied to a new temporary disk instead of creating a blank disk.
In other words, when you build your project, the template disks are
copied to temporary disks for receiving your project objects. This
keeps os9.exe from generating Error #216, etc. if your output object
filenames already exist on the disk(s). Since you're starting with a
fresh disk on each build, and as long as you don't try to send a file
to the disk that overwrites an existing file, os9.exe does the job
and stocks your disk with whatever objects you want. However, I
can't seem to write a file such as "CMDS/main.r" "./CMDS/main.r"
"/CMDS/main.r", etc. Boisy, can os9.exe follow paths?
RMA is used in this test project, which is currently just sending the
ROF (.r) file to the OS-9 disk, so I've got to work on the Linker
support in the IDE now and get this working like it should. That is,
after all of the .asm files are assembled, a Linker pass would do
it's job. I'm not really sure how this will work right now but the
idea is to tag each file with dependency on another file, and the IDE
would do the job without any makefile.
Linker support in the Rainbow IDE will take a lot of work, but not
much more than what I've already put in for the recent overhauls and
improvements. So far, I think a 3-pass system should do the trick
(Compilers, Assemblers, Linkers). When you add a builder to the
system you tag it was one of those types and the IDE should do the rest.
A "BASIC Compiler" builder has been added which currently has 2
object types of "+TOKENIZED", and "+COPY" which are psuedo builders
that the IDE does instead of calling a real
compiler/assembler/linker. If your source file is in TEXT, you can
choose to tokenize it as a binary BASIC program, or just send it over
to your disk as an ASCII BASIC program. This builder is limited
right now with no true abilities to create a machine-language version
of a BASIC listing, but that should come sooner or later. When it
does, that .exe file will be placed in that builder's folder, and it
will be part of the system. Also, all builders automatically get the
+COPY object type added to their object capabilities, as a
convenience to easily choose to copy any source file over to the
destination media as-is. A "INTERNAL" builder is also added to the
IDE that has "+COPY" as one of the object types. So, there's plenty
of ways to copy files from your project right onto your destination
disks, no matter what builder you've got selected.
In other tests, I did add the Borland C++ compiler as an assembler
which worked, but since no library or includes are possible at this
time, the readout obviously wasn't pretty. :) But Rainbow did TRY
to compile a sample source file and output the specified object based
on what all it new about the compiler (from it's rainbowconfig.ini file).
It's getting very interesting now, and the IDE is getting more
powerful. If anyone knows of a 32-bit Windows console compatible
6809 C compiler, please let me know so I can do some testing. Right
now I have a 16-bit MS-DOS version that won't run when called from the IDE.
--
Roger Taylor
More information about the Coco
mailing list