Reclaiming OS-9 For The Coco

Reclaiming OS-9 for The CoCo

Technology? BLAH!!! Give me 8 Bits and a 6809 (12/01/2012)

As I start this project, I am reminded of what interested me in OS-9 in the beginning... It's simplicity and organization. I started this reclaimation of OS-9 because of many things, but mainly because Color computer software should be developed on a Color Computer. Sure... the PC/Mac/Linux tools created through the years to aid in developing Coco software has been great! But when these tools start making the very code that is the heart of our beloved Coco, not even buildable on the Coco itself, then we have gone too far. The whole beginning to this project started when I was working on a recent project and needed a particular driver for NitrOS-9 and needed it modified to do unique duties on my Coco. I pulled the needed sources from the current NirOS-9 repo and transferred them to the Coco with intentions on building the code in OS-9 itself. The first thing I found was that the sources would not even load properly into an OS-9 text editor!! I knew that modern operating systems have a tendacy to add extra line feeds, carriage returns and tab characters to text and that OS-9 doesn't use these extras so I proceeded to find a way to strip the extras out. There are all kinds of utilities for this in OS-9 but the easy way (to me) that I found was to load the text files into Window's Wordpad and resave them. This eliminated some things. Then I transfer the files to the Coco in OS-9 and load them into the "Ed 3.1" text editor. Ed will automatically strip any linefeeds in the file. I then save them back to disk. Now they are regular Coco text (ASCII) files.

The next thing I discovered about these sources is that a lot of "conditional" code was added to the sources to make them compilable for various machines and different levels of OS-9. A "one-for-all" kind of coding. Since I was only planning to assemble the code for the Level 2 NitrOS-9 system, I needed to remove these conditionals to make the code compilable. Then I noticed lots of "errors" when trying to assemble the code. Upon investigation, I found lots of "labels" in the source that were longer than eight characters. I know that most assemblers for the Coco use no more than 8 characters for labels. So now I had to go through the code and change label names to match the Coco assembler's specification. Once that was done, another attempt at assembly showed the current "defs" files in my DEFS directory did not have the definitions required by the source. Back to the repository to get the new "defs" only to find all the same problems listed above. Once the files had been converted, edited, and modified I tried once again to assemble the code only to find strange errors about "Illegal Entry Mode" from within the linker. Now what is causing this, I have not a clue, but this project will eventually find out. This was when, over a period of a couple of weeks, I came to the conclusion that NitrOS-9 needed to be moved to the Coco and made compilable in it's native enviroment. And that's what this project's about, reclaiming OS-9 for the Color Computer !!!

Moving Day Is Here! (12/02/2012)

Ok, it's MOVING DAY!!!.. The first thing that needs to be done, is to get all the NitrOS-9 sources back on the Coco. This is no small task. You saw from the previous post how much trouble it was to move just a couple of files back... well now there's literally hundreds to move. Each file is loaded into Window's Wordpad, then resaved. Next it's moved to the Coco via MESS's WimgTool and VCC as I will be using the emulator for speed and ease. Next, in OS-9 I must load each file into Ed 3.1 and resave. Between these two programs, I have eliminated all extra control codes from the text and now have usable files. This massive move has taken about 18 hours and a lot of mouse clicking... yes, my carpel tunnel is killing me. But the files are now moved and converted. Next will be the task of making the files that are much too large for OS-9's text editors, into a proper size file. This will involve removing tons of comments and in some cases, breaking the files into more than one file. This will be no easy task either. Come to think of it... none of this will be easy.

Too Many Changes... (02/23/2014)

In working diligently on my other projects, this particular project has been ignored. I have my reasons. Soon after I started this project, it was found that the NitrOS9 repository had some very serious problems and that the "latest build" downloads as well as the source files were in a non-working state due to the recent move from a CVS repository to a Mercurial system as well as changing the build tools from The ToolShed project to t The LWTools cross-assembler system. I have been waiting until the repo was stabalized and producing stable builds before continuing with this project. The NitrOS9 repo is now at one ofits most stable builds I have seen and with my latest project; "MShell", I intend to implement a version controlled repository specifically for the Coco so I will be resuming the project soon as I will need these sources compilable on the Coco.

Here We Go..... (09/19/2016)

After many, many sessions of building NitrOS9 from the Source Forge NitrOS9 repository, and spending many hours customizing sources and makefiles to build custom NitrOS9 setups, I have finally decided to get this project started!!

At the moment, the NitrOS9 repository is in the most stable state I've ever seen it in. The disk images being produced are almost error free and run cleaner than I have ever seen OS9 run! It's time to see this repository build entirely on the Coco under NitrOS9. I'm tired of using cross-assemblers to do what the Coco should've been doing all along. Not to mention that the NitrOS9 repo has grown to include many machines, some of which are not even Coco related. I feel it's really getting out hand and it's time to bring it back home to the Coco and OS9!

I will admit, even on my AMD Quad Core Windows 64-bit machine, it takes some time to build the complete repo. On a Coco 3 running NitrOS9 with a 6309 CPU, it would probably take days to build. But today, we have the emulators and the CocoFPGA. The CocoFPGA can run at 25mhz with a fast SD card drive and VCC can run reliably at 89mhz with fast drive acces on it's native virtual HD. I believe I can almost keep up with my Windows system in build time. Only time will tell.

Now comes the hard part. I have to convert hundreds of files from a PC style text editor to the Coco/OS9 text format. This is no easy task. A lot of the files are too large for most of the OS9 text editors, so I have to prepare the files mostly using PC tools. To make it even harder, I have found that the sources contain EXCESIVE amounts of "white space" and comments, not to mention the sometimes huge changelogs at the beginning of each source. On the PC, this is no big deal, but on the Coco we have a very limited amount of memory and drive space and the files MUST be trimmed down. Then there are differences in some ASM syntax between the Coco OS9 ASM and the assembler used in the cross-assembler. Then there's all the conditionals in each file for building the files for different systems. All this has to be edited "file by file". Then there's the whole thing of making the massively complicated "makefiles" work with the OS9 "make" utility. Thanks to Tim Koonze's enhanced "make" for OS9, I think I can make them work.... in fact, I know I can. It's just going to take some tricky coding to get all this to build in one go, but it can be done. I've learned a lot about using makefiles in my huge MShell project as well as what I've learned in working with the NitrOS9 repository itself.

Tonight I've started the huge task of moving each file to the Coco, editing each source as I go. I assemble each source to make sure it will assemble on the Coco before moving to the next file. This is going to be a slow process and it will not happen overnight. I will probably work in "spurts" as I get burned out on other projects and come back to this one. I see this taking many months to complete if not a year or more. But luckily, I have plenty of patience and even more time. I am going to try to at least complete one section of the repo in each editing session, catering to a particular machine. Right now, I am still working on the "root" files which are used in all machine specific builds, then I will work machine by machine, and section by section until I get it done. After I get the root stuff done, I want to move straight to the Coco 3/Level 2 build as it is the most used of the systems. So keep checking back and I may have something to show for my efforts soon :-)

B. P.

More coming as this project comes along!

web counter