Version 1.0.0 (Dec. 1, 2022 updates):

Welcome to Version 1.0.0 of NitrOS-9/EOU (Ease of Use)! This isn't a huge change since Beta 6.1.0 released last year, but enough people have been hammering on it now (both experienced users, and people completely new to NitrOS-9 and/or the Coco 3) that we think we can deem it stable enough to be out of beta.  We are also trying something new for more experienced users - creating a separate hard drive image with just the updated modules, etc. so that those users can install / try out individual bits of the new version instead of everything at once. For those of you who try this hard drive image to modify your existing ones from Beta 6.1.0, please let us know if you think it is worth continuing, or if it is just easier to get the full releases each time. (This will be in a separate download).
 - Curtis & Bill - 

The new programs, updated programs, and bug fixes that have been done since Beta 6.1.0 are listed below:

Quick note: If you have customized your boot (any of the following: startup file, OS9Boot, env.file) in any way, and wish to keep those settings, please copy those files either to a floppy (or floppy image) or to a second hard drive, so that you can copy them back after you boot up Version 1.0.0. 

1) VIEWPROC, a utility to view low level detail of a process descriptor, and also can dump out the last 16 bytes of the process' stack (From either the process itself when it is active, or from the copy in the process descriptor if the process is busy doing a system call or is awaiting it's next time slice). This is more proof of concept at this point, but may prove useful for debugging (or just interesting).

2) Biosphere has been updated to give you proper colors on both RGB and Composite (depending on what your system setting is when you run it).

3) The BASIC09 sourcecode for Battleship1998.bas has been added to the 68SDC.VHD and 68GIMEX.VHD images (in /dd/sourcecode/basic09/games/battleship). I had them in the 6309 based hard drive images, but not on the 6809 (only the Coco 1/2 originals). These show a sample of calling the PLAY command to used digitized sound effects in your BASIC09 programs.

4) GSHELL had a bug (sometimes) when calling HELP where it would cut the name of the program it was trying to get help with off. That has been fixed.

5) GFX2 has some further documentation to clarify that DRAW statements do not need options separated by commas (X and Y coordinates do, however), which allows you to save some space in your BASIC09 programs. Ex. RUN GFX2("draw",160,100,"N20,E30,SW20" can be shrunk down to RUN GFX2("draw",160,100,"N20E30SW20"). The Draw option list processing of numeric values is also slightly faster on both 6809 and 6309 versions. The OnMouse command has also been enhanced, thanks to a suggestion by Rick Ulland, so that it will exit back to your program after EITHER a mouse button click or a key is pressed (previously it ignored the keyboard).

6) BASIC09 and RUNB for the 6809 have had some minor speed enhancements to REAL addition, subtraction, multiplication & division (including MOD). By how much varies a bit depending on the numbers you are manipulating, but on average it seems around 2% on adding/subtracting and 2.5-3% on multiplication. Also, INTEGER FOR/NEXT loops with a STEP <>1 should be about 2.5% faster in BASIC09. RUNB integer FOR/NEXT loops should be 2-2.5% faster irregardless of the STEP value. LISTing a line (with LIST or while in TRON mode) is slightly faster on both CPU's.

7) RUNB for the 6309 now has it's REAL addition, subtraction, multiplication & division update to use the same optimized 6309 code as BASIC09 does (which has been updated since Beta 6.1 as well). In some cases of REAL math, this is up to 16% faster than it was before, already running in native mode. FOR/NEXT loops are slightly faster for both BASIC09 and RUNB as well (more so the latter). Real divide for both BASIC09 and RUNB 6309 should be up to 10% faster as well.

8) BASIC09 and RUNB for the 6809 have the Integer Divide (and Integer MOD) routines sped up as well. Overall, the average speedup seems to be around 5%, although it will vary (it should be noted that the following special cases have always been optimized more, even in the Tandy/Microware versions): 0/x, 2/x & divides/MOD with the dividend (number being divided) being +/- 255 or less).

9) For those interested in programming MultiVue windows in BASIC09 and who saw the seminar on doing that that Ken Waters and I did at the 2022 CocoFest, the sourcecode is now included with all 4 releases of EOU. You can find it at: /dd/sourcecode/asm/basic09/TEST_PROGRAMS/menus_newtest.b09. It should be noted it that this current version takes advantage of the OnMouse change listed above (which were not present during the seminar).

10) BASIC09 and RUNB (both CPU's) are slightly faster passing parameters to other BASIC09/RUNB or ML procedures).

11) Thanks to Jim Gerrie, who discovered some bugs in the LINE draw routine in CoVDG (for level 1 OS-9 compatibility). These were intermittent and depending on the lines being drawn, wouldn't cause a problem at all, all the way to crashing the computer outright. These should be fixed now. One I introduced with a mistyped FCB, the other has been there since 2007. This affected some of Jim's Level 1 compatible ports like the original Bombaway. There is 1 bug left to find, but it has been there for awhile, and I haven't quite determined which module (SCF, VTIO, COVDG) is causing it.

12) Two more short digitized sound samples (bomb.wav & explode.ply) have been linked into 
he/dd/sound. Use Gshell (or the PLAY command directly) to play these, and feel free to use them in your own programs or games. 

13) Some minor optimizations in SCF (both 6809&6309) - mainly shrinks it 4 bytes, and very slightly faster when editing a line using the built in line editing functions).

14) Some BASIC09 source code to test the optimized REAL math, based on some math based graphics programs that James Diffendaffer has released recently for DECB, are included in the /dd/sourcecode/basic09 directory as well.

15) Rescue on Fractalus has had some more slight optimizations on both 6809 and 6309 versions.

16) Jim Gerrie sent over a bunch of OS9 level 1 and 2 games (some of the level 1 games actually were instrumental in finding some of the bugs that have been fixed in CoVDG), in a variety of categories. He was also kind enough to supply all BASIC09 sourcecode for them, which you can browse through and change in /dd/sourcecode/basic09/jimgerrie. The list of these games are (and there is HELP available for all of them from within NitrOS9 via either the HELP command directly or from the Help feature in GShell) (note... folder names are in all caps; game names are lowercase):
LEVEL1
  ARCADE
    Sentinel
  CARD_GAMES
    Blackjack
    CN Poker!
  CASINO
    Slots
  STRATEGY
    Bombaway
    StarTrek1
    Cavehunt1
    Sweeper
    Ratmaze

LEVEL2
  ADVENTURE
    TEXT
      Gargoyle
      Cavehunt2
      Yorkdeed
  BOARD_GAMES
    Peg Leap
  EDUCATION
    Eliza
  SIMULATORS
    Golf
    Football
  STRATEGY
    Star Trek
    Subhunt
    Sweeper2
    Towers of Atlantis

There is also a new application ported by Jim in the APPS folder - a graphical Galilean Satellite tracking program (GalileanSat).

NOTE: Level 1 games that use the Coco 1/2 graphics screens take a lot of system RAM to do so, so you can only run 1 of these at a time, and usually only when not running much else than GShell and a couple of shell windows. They may not work with a Drivewire boot at all, since the Drivewire drivers take a fair bit more system RAM.

17) The DUMP command has been updated to edition #8, which now handles '-' characters in filenames (instead of exiting with no error message at all). 

18) Jeff Teunissen (probably better know as Deek on the Coco Discord) has multiple updates included on this release, including:
 - CHOWN - this contains a bug fix when trying to change the owner user # for a file that you technically own, but had write attributes shut off. It now handles the error properly.
 - SETMPI - this is a new utility for those with Ed Snider's (Zippsterzone.com) MegaMiniMPI; it allows you enable/disable which slots can send IRQ's through immediately. This can help with things like serial ports, which a normal MPI only lets IRQ's through if you have that slot selected (and will ignore all others)
  - DCC - the latest version of Jeff's C compiler suite, which includes further optimizations and functionality, too numerous to mention here (and over several programs that are part of the suite). To keep up to date with further changes without waiting for EOU releases, please hit up Jeff's GitHub at:
  https://github.com/Deek/CoCoC
The version on EOU Version 1.0.0 is from mid November of 2022 from Jeff's site. This adds the #error and #warning directives (error will stop a compile when it finds an error, while warning will let the compile continue but still give the programmer warnings. The preprocessors also add a few warnings (it should be noted you should use CC and CPP and not C.PREP and CC1 (if you want to fall back to the older compiler) due to some of the updates. Use DCC for all of the newest updates and fixes).
Other fixes/additions include:
 -Fixes switch so that it evaluates an expression properly; ie switch (x+10) now works (it originally ignored the +10).
 - asctime() has (finally!) had Y2K fixes (so you get "2022" instead of "19122".
 - MKDIR() has been added.
 - _prgname() and _errmsg() have been fixed to not put garbage ahead of the program's name.
 - Tabs are converted to spaces by the preprocessors, so error messages won't mess up the screen anymore (why did Microware pick the TAB character to move the cursor Up?)
 - DCC should never leave dead processes running the background anymore; CC sometimes did.
 - the compiler now treats strings next to one another as a single string, like modern C. These helps with macros and really long strings (like multi-line ones).
 - The assembly optimizer can now do Level 2 specific optimizations (using -2 with DCC), and can now be customized using /dd/lib/level1.patterns and /dd/lib/level2.patterns.
 - atof() is much more accurate
 - sleep() no longer hangs under Level 1
 - u2otime() now correctly converts from Unix time to OS-9 time, and also fixes the month when converting C struct tm to OS-9's "getime" format.

Source code you can also acquire from Jeff's site. Documentation you can get from the EOU doc site in PDF format, but for the most up to date Jeff's site should take precedence. You can get the EOU matched PDF documentation here: http://lcurtisboyle.com/nitros9/nitros9_docs.html

19) Thanks to Michael Furman, there is a new SysGo that now adds an extra option in the env.files for the COCO3FPGA. If this is set to 0, SysGo behaves normally and tries to autodetect both a GIME-X and a CocoSDC. If it is set to 1, it bypasses those checks (which could cause the machine to hang or crash). Michael will also be working on the Coco3FGPA release of NitrOS9/EOU, and you will be able to get that version from him or the Color Computer Archive. Any questions that are Coco3FPGA specific should go to him. He is available on the Color Computer Discord as mikeyn6il. 

20) Fred Provoncha's new version 3 CONTROL program has now been expanded with built in help for each of the tabs, and many more tabs of options. One quirk - if you view the help with the Keyboard mouse enabled, you will have to hit ENTER to continue onto the next screen of help, instead of clicking an arrow. We will look into getting it to work both ways in a future release.You can run it standalone or via GShell.

21) Todd Wallace's COCOIRC (an IRC chat client for the Coco) is included. This requires being hooked up to a Drivewire 4 or pyDrivewire server (using one of the Drivewire enabled boots via SWAPBOOT. The program itself has extensive built in help.
This can be run from the APPS directory or directly from the command line.

22) Todd Wallace also contributed version 2.1 of his CocoWX weather reporting program. This also requires Drivewire, and can run both in a text only mode, or with multi-color high res graphics for showing current conditions, and in either Imperial or Metric units.
This can be run from the APPS directory or directly from the command line. We have it defaulting to full graphics when launched from GShell; if you want only the text version, type COCOWX -t. Full documentation is in /dd/docs/cocowx_readme.txt.

23) And finally, Todd Wallace has allowed us to include his CCTPLAY command, which allows playing of VGM, CCT and M3U song file formats to be played through Coco add on hardware, including the Game Master Cartridge (GMC), the Coco PSG, and the MegaMiniMPI. Todd has a large virtual hard drive VHD with a large number of samples of all 3 types, which you can download separately here:
https://tektodd.com/wp-content/CoCo-Downloads/chiptune.zip
Currently, you will need to run this from the command line, although you can create playlists with a simple text editor.

NOTES ON RTC (REAL TIME CLOCK) SUPPORT

EOU now has some support "officially" for real time clocks. On the real Coco hardware side, support for reading the real time clock from your DriveWire (or pyDriveWire) server is supported, if you select the correct boot (and have the server running). This seems stable from multiple people testing.
If you have an actual real time clock hardware chip in your Coco, you will have to modify the OS9Boot file and replace the Clock2 driver with the appropriate one from the NitrOS-9 repository. Let us which ones from there work, and which don't. If you have a Smartwatch installed, then replacing the 'SETIME <>>>/1' line in the /dd/startup file with 'GETCLK'  (or just typing it at a Shell prompt) should update your time.

In the emulators, it seems to be a mixed bag, with no real predicability. This is where we need your feedback; please try the following suggestions, and let us now what the results are on your emulated system. Please include the following information:
1) What emulator you are running, at it's version number (ex. VCC 2.1.0b, MAME 64 bit 0.224, etc.):

2) What settings you used for the real time clock in the emulator (for example, MAME has options for Disto, and Cloud9):

3) Whether you are running the 6809 or 6309 version of NitrOS-9:

4) What host OS are you running your emulator under, and it's version information (like Windows 7 32 bit,  Windows 10 64 bit, OSX Catalina, etc.)

This way we hope to narrow down why it seems to be inconsistent. From what we have seen, one of the following is most likely to happen:
1) It works fine.
2) It will work on the initial boot (your SHELL will report the proper date/time when NitrOS-9 boots), but it will return the incorrect time/date (either all 0's or "random" date/time) after about 1 minute.
3) It will always return 0/0/0   00:00:00.

In general, here are some things that seem to work more often than not:

1) VCC - Set slot 3 to be Hard drive + Cloud 9 RTC. Try the latest version (2.1.0b at the time of this writing).

2) MAME - Bring up the MAME "GUI", select Machine Configuration -> Real Time Clock. Try DISTO first. If that does not work, switch it to CLOUD9. If that doesn't work, use SWAPBOOT to switch to the Emulator software clock instead.

SOME KNOWN BUGS/GOTCHAS/SPECIAL NOTES:

To get people to try the keyclick feature, Keyclick is enabled on /TERM only by default (you can change this in the /dd/sys/env.file). You can also manually disable it by typing KEYCLICK OFF. You can turn it on in other windows by type KEYCLICK ON.

There are also some programs that are partially installed, but known not to work (and will crash). If you go into a games folder, but there is no actual game icon to click on, it's probably one of those. Please don't try to run them until the next release. I have left them on the VHD's for Bill and I to debug/work on.

Jim Gerrie helped me track some bugs in CoVDG, but there is still one outstanding that shows up occasionally with an extra linefeed showing up on the 32 column text screen. It appears to only happen once per VDG window once it is initialized. At this point I am not sure what module is responsible (SCF, VTIO, CoVDG), but I hope to find/fix it in the next release.

I am sure others will be found. Please email me the details (what program, what specifically it is doing wrong, whether you are running on real hardware or an emulator (which emulator, and which version of the emulator, if the latter). Also mention if on the 6809 or 6309 version, and what RAM you have installed (and brand). Email bug reports to curtisboyle@sasktel.net, or post them in the #nitros9eou channel (under 'OPERATING SYSTEMS' on the Coco Discord), and we will try and find/fix them.