====== OS-9, NITROS-9, AND EOU ====== There are five main editions (or distributions) of OS-9 for the 6x09 microprocessor, Color Computer, and compatibles: \\ 1. **Microware OS-9 Level I** (1979 - 1985) \\ [[https://colorcomputerarchive.com/repo/Disks/Operating Systems/]] \\ 2. **Microware OS-9 Level II** (1985 - 1987) \\ [[https://colorcomputerarchive.com/repo/Disks/Operating Systems/]] \\ 3. **Microware OS-9 Level III** (1988 - 1995) \\ [[https://colorcomputerarchive.com/repo/Disks/Operating Systems/]] \\ 4. Community-developed **NitrOS-9** (1994 - now) \\ [[https://github.com/nitros9project/nitros9/]] \\ 5. Community-developed **NitrOS-9 Ease of Use (EOU) Edition** (2017 - now) \\ [[http://www.lcurtisboyle.com/nitros9/nitros9.html]] \\ ===== HARDWARE ===== OS-9 Level I supports the following hardware: * **CC**: Tandy Color Computer 1 or 2 with 64KB of RAM, Disk Extended Color BASIC 1.0 or 1.1 and at least a single 5.25" floppy diskette drive. * **[[CCIO]]** / **[[TERM]]**: VDG Alphanumeric / Color Graphics Television output * **[[CCIO]]** / **[[TERM]]**: 53-key Keyboard input * **[[CLOCK]]**: 60Hz time-keeping * **[[CCDISK]]** / **[[D0]]**, **[[D1]]**, **[[D2]]**, **[[D3]]**: Tandy Floppy Disk Controller for the WD17xx controllers * Up to 4 Tandy 35-track Single-Side Double-Density (160K) Floppies * **[[RS232]]**: 4-pin Serial port * **[[P]]**: Printer * **[[T1]]**: Terminal * **DragonData** Dragon 32 and 64 * **EXORSR** / Motorola Exorcisor * **MM19** * **GIMIX** / Gmx * **SWTC** / Swtpc * **S09** / SwtMem * **SSB** / Smoke Signal Broadcasting * **PERCOM** / Percom * **CMS9609** / CMS * **CMS9619** / CMS * **HELIX** / Helix * **ELEKTRA** / Elekt AAA Chicago CPU * **DIGALOG** / Diglog Digalog CPU * **SAT96** / Sat-96 board ===== SOFTWARE ===== OS-9 Level I came packaged as 2 x 5.25" Single-Sided Double-Density floppy diskettes. V01.00.00: [[OS9L1V1B.DSK]] [[OS9L1V1M.DSK]] The OS-9 package includes several different software systems together: * A **Kernel** to manage the system and provide shared services * A user **Shell** environment with procedures, redirections, pipelines, and job controls. * A **Time-sharing** package for true multi-user capabilities. * Maintenance and Administration **tools** for System Managers. * Disk Operating System (**DOS**) style commands to manage disk contents. * An **Editor** / **Assembler** / **Debugger** package for both Disk Extended Color BASIC and OS-9 program development. ==== BOOT DISKETTE ==== * **"*/BAS"** - Boots OS-9 from Disk Extended Color BASIC 1.0. * **"$82$81/BIN"** - Tests the revolutions per minute speed of your floppy diskette drives. See also "Getting Started with OS-9" chapter 3 "Starting up OS-9" pp.7-9 ==== BOOT TRACK ==== The second floppy or "System Master" diskette is formatted with a customized OS-9 RBF file system with a Disk Extended Color BASIC 1.1-compatible boot on sectors 1-15 of track 34. The boot track includes the following code, data, and modules: * **DOS** command 'OS' signature * **DOS** command jump vector * **[[REL]]** - relocation code to move the OS-9 kernel from $2600 to up $F000 (later $EF00 for the CoCo 3) * **[[OS9]]** - part one of the OS-9 kernel * **vectors** - to setup the MPU interrupt vectors to point into the kernel * **[[OS9p2]]** - part two of the OS-9 kernel * **[[Init]]** - initial configuration information for this boot * **[[Boot]]** - the module to load OS9Boot from diskette and transfer control to it. ==== OS9BOOT ==== Once the kernel initializes, it reads the RBF file system on disk to locate the OS9Boot file, load it into memory, and initialize all of the modules within. The following modules are in the /D0/OS9Boot file: * **[[CCDisk]]** device driver * **/[[D0]]** device descriptor for Standard disk drive 0 * **/[[D1]]** device descriptor for Additional Disk Drive 1 * **/[[D2]]** device descriptor for Additional Disk Drive 2 * **/[[D3]]** device descriptor for Additional Disk Drive 3 * **[[CCIO]]** device driver * **/[[TERM]]** device descriptor for Video/keyboard device for standard 32 column display * **[[IOMan]]** system * **[[RBF]]** file manager * **[[SCF]]** file manager * **[[SysGo]]** system * **[[Clock]]** system * **[[Shell]]** - usually added to OS9Boot to cache it in memory from startup onward. * **[[RS232]]** device driver * **/[[T1]]** device descriptor for Terminal port using the standard RS-232 serial port * **[[PRINTER]]** device driver * **/[[P]]** device descriptor for Printer port using the standard RS-232 serial port * **[[PipeMan]]** file manager * **[[Piper]]** device driver * **/[[Pipe]]** device descriptor Allows use of the OS-9 pipe facility ==== Enable Lowercase ==== OS-9 Level 1 V02.00.00 supports true lowercase if run on a Color Computer 2 with the MC6847T1 Video Display Generator. The easiest way to tell without cracking open the case: \\ //Simply type a zero.// \\ If it looks like a square, then the Color Computer has an MC6847. \\ If it looks like a zero with a slash through it, then the Color Computer has an MC6847T1. Before we begin ... you //**did**// make a backup of your OS-9 System Master diskette, right? Right? RIGHT? To configure OS-9 Level 1 V02.00.00 for true lowercase: \\ Boot into OS-9 from your backup System Master diskette with the **DOS** command from Disk Extended Color BASIC. After the sign-on banner, enter the date and time at the Setime prompt as usual. At the Shell prompt enable true lower case in the /TERM device descriptor: \\ OS-9: XMODE /TERM -UPC PAUSE TYPE=1 OS-9: COBBLER /D0 Once Cobbler finishes re-writing the boot track, press **RESET** once to reboot OS-9. The prompts should now display using the MC6847T1 upper and lower case characters. ==== CMDS ==== With OS-9 up and running there is typically a startup file to run the Setime command and then the Shell itself presents its **OS9:** prompt for you to run OS-9 commands The following commands are in /D0/CMDS/ directory: * **[[Asm]] filename [opt][>list]** - Standard OS-9 Assembler * **[[Attr]] filename [permissions]** - Examine or change the security permissions of a file * **[[Backup]] [e][s][-v][dev][dev]** - Copies all data from one device to another * **[[Binex]] filename1 filename2** - Converts binary file to S-record file * **[[Build]] filename** - Builds short text files from standard input * **[[cmp]] filename1 filename2** - File comparison utility * **[[Cobbler]] devname** - Creates OS-9 bootstrap file from current boot * **[[Copy]] pathname pathname [-s]** - copies data from one file to a second file * **[[Date]] [t]** - Specifies current system time and date * **[[dcheck]] [-opts] devname** - checks disk file structure * **[[debug]]** - Assembly language debugger * **[[Del]] [-x] filename [...]** - Deletes the specified file(s) * **[[Deldir]] directory name** - Deletes all files in a directory and the directory itself * **[[Dir]] [e][x][dir or path]** - Displays formatted list of the file names in a directory * **[[Display]] [...]** - Displays converted characters to standard output * **[[dsave]] [-opts][dev][pathname]** - Generates procedure file to copy all files in a directory system * **[[Dump]] [filename or devname]** - Formatted file dump utility * **[[Echo]] text** - Echoes entered text to standard output * **[[Edit]] [filename [filename]]** - Standard OS-9 text editor * **[[Exbin]] filename1 filename2** - Converts S-record file to a binary file * **[[Format]] devname** - Initializes an OS-9 diskette * **[[Free]] [devname]** - Displays number of free sectors on a device * **[[Ident]] filename [-opts]** - Displays header information of OS-9 memory modules * **[[Link]] memory module name** - Link to a memory module * **[[List]] filename [...]** - List the contents of text files * **[[Load]] pathname** - Loads modules into memory * **[[Login]]** - Login procedure for timesharing systems * **[[Makdir]]** pathname or dirname - Creates a new directory file * **[[Mdir]] [e]** - Displays the present memory module directory * **[[Merge]] [filename][...]** - Copies multiple input files to standard output * **[[Mfree]]** - Displays the amount of free RAM memory * **[[OS9gen]] devname [-s]** - Creates and links an OS-9 bootstrap file * **[[Printerr]]** - Prints full text error messages * **[[Procs]] [e]** - Displays a list of processes running in the system * **[[pwd]]** - Prints the current data directory path * **[[pxd]]** - Prints the current execution directory path * **[[Rename]]** filename new filename - Gives the file or directory a new name * **[[Save]] filename modname [...]** - Saves memory module onto a file * **[[Setime]] [yy/mm/dd/hh:mm:ss]** - Sets and actives the system clock * **[[Shell]] arglist** - OS-9 command interpreter * **[[Sleep]] tick count** - Puts the process to sleep for a number of clock ticks * **[[Tee]] path or devname [...]** - Copies standard input to multiple outputs * **[[Tmode]] [.pathname][params]** - Displays or changes the operating parameters of the terminal * **[[Tsmon]] [devname]** - Monitors the terminals in timesharing systems * **[[Unlink]] modname [...]** - Unlinks modules from memory * **[[Verify]] [u]** - Verifys[sic] and updates the module header and CRC value * **[[Xmode]] devname [params]** - Displays or changes the parameters of and[sic] SCF type device See also: the "OS-9 Commands" manual. ===== ACCOUNTS ===== OS-9 is a multi-user / multi-programming / multi-tasking system. Account information is kept in /SYS/password in the following format: * Username * up to 32-characters. * may include spaces. * If empty, any name will match * Password * up to 32-characters. * may include spaces. * If empty, no password . * User index (ID) number * from 0-65535. * 0 is superuser. * Used by file system and processes to identify the owner. * The system manager should assign a unique ID to each potential user. * Initial process (CPU time) priority * 1-255. * Pathlist of initial execution path * usually /D0/CMDS * Pathlist of initial data path * The specific user's directory. * Name of the initial program to execute * usually Shell. * Don't use shell command lines, such as Dir or Dcheck, as initial program names. Example Password file: \\ ,,0,128,/D0/CMDS,.,SHELL USER1,,1,128,.,.,SHELL USER2,,2,128,.,.,SHELL USER3,,3,128,.,.,SHELL USER4,,4,128,.,.,SHELL See also: * OS-9 Commands 2.4 "The File Security System" pp.22-24 * OS-9 Commands 3.9 "Editing startup for Timesharing Systems" p.44 * OS-9 Commands "Login" pp.93-95 ===== BACKUPS ===== The floppy disk formatting used by Disk Extended Color BASIC and OS-9 are not the same. Disk Extended BASIC provides a **DSKINI** and **BACKUP** to backup DECB-formatted floppies such as the OS9 Level I Boot disk. OS-9 contains a **[[FORMAT]]** and **[[BACKUP]]** command to backup OS-9 formatted floppies such as the OS-9 Level I System Master disk. See also: "Getting Started with OS-9" manual, chapter 4 "Formatting Disks and Making Backups" pp.11-16 ===== MONITORING ===== The [[Free]] command allows you to monitor the free space of each disk. The [[Mfree]] command allows you to monitor the free space in RAM. The [[Procs]] command allows you to see the running processes / programs on the system. ===== SECURITY ===== The [[attr]] command allows you to see and modify (if you are the appropriate user) the security permissions of the OS-9 files and directories. The permissions shown, in order, are: * **d** for directories * **s** for shareable files that may be loaded and used by multiple users at once * **pe** whether or not everyone can execute the file * **pw** whether or not everyone can write to the file * **pr** whether or not everyone can read the file * **e** whether or not the owner can execute the file * **w** whether or not the owner can write to the file * **r** whether or not the owner can read the file A **-** (dash) in any position means that permission has not been granted. Owners are described in the [[Login]] command. The [[Verify]] command allows you to check the integrity of OS-9 modules. ===== TROUBLESHOOTING ===== The [[Boot Sequence]] details steps to bring up the OS-9 Level 1 system from Disk Extended Color BASIC after power-up. The **[[Printerr]]** module command links in additional information and description for the OS-9 numeric error codes. ===== DOCUMENTATION ===== OS-9 Level I shipped with 4 well-written introduction and reference manuals: * **Getting Started with OS-9** gets you started booting, making backups in case of emergency, and introductory info. * **OS-9 Commands** gets you much more in-depth information on using the Shell and details each of the commands supplied with OS-9 * **OS-9 Program Development** covers the **Edit** tool to write assembly source code, the **Asm** tool to assemble the source code into binaries to run, and the **Debug** tool used to diagnose code errors. * **OS-9 Technical Information** provides the key reference to the internals of OS-9, the RBF disk format, and the System Calls provided by the kernel needed to use the full power of OS-9 in your Assembly language programs. Dale Puckett and Peter Dibble wrote **The Rainbow Guide to OS-9** which shares everything you need to know to get well started as an OS-9 user and developer. The **Rainbow Magazine**, and several OS-9 specific newsletters provide many more tools and tricks for OS-9. ==== NITROS-9 EASE OF USE ==== ^ ^ Beginners Notes ^ | ☐ | [[Beginners Notes for NitrOS-9 Ease of Use Image Alpha Version 1]] | | ☐ | [[Beginners Notes for NitrOS-9 Ease of Use Image Alpha Version 2]] | | ☐ | [[Beginners Notes for NitrOS-9 Ease of Use Image Alpha Version 3]] | | ☐ | [[Beginners Notes for NitrOS-9 Ease of Use Image Beta Version 1]] | | ☐ | [[Beginners Notes for NitrOS-9 Ease of Use Image Beta Version 2]] | | ☐ | [[Beginners Notes for NitrOS-9 Ease of Use Image Beta Version 3]] | | ☐ | [[Beginners Notes for NitrOS-9 Ease of Use Image Beta Version 4r2]] | | ☐ | [[Beginners Notes for NitrOS-9 Ease of Use Image Beta Version 5]] | | ☐ | [[Beginners Notes for NitrOS-9 Ease of Use Image Beta Version 5 revision 1]] | | ☐ | [[Beginners Notes for NitrOS-9 Ease of Use Image Beta Version 6]] | ^ ^ Update Notes ^ | ☐ | [[NitrOS-9 Ease of Use Beta 5 Update Notes]] | | ☐ | [[NitrOS-9 Ease of Use Beta 6 Update Notes]] | | ☐ | [[NitrOS-9 Ease of Use Beta 6.0.1 Update Notes]] | | ☐ | [[NitrOS-9 Ease of Use Beta 6.1.0 Update Notes]] | ^ ^ Windowing System ^ | ☐ | [[NitrOS-9 and Ease of Use Beta 5 Windowing System Manual]] | | ☐ | [[NitrOS-9 and Ease of Use Beta 6 Windowing System Manual]] | ^ ^ Technical Reference ^ | ☐ | [[NitrOS-9 and Ease of Use Beta 6 Technical Reference Manual]] | ^ ^ Additional ^ | ☐ | [[NitrOS-9 Boot Processes Explained]] | | ☐ | [[Ved Text Editor version 2.9]] | ===== HELPING USERS ===== [[https://discord.cocotalk.live|The Tandy / Radio Shack Color Computer Discord]] hosts the **Operating Systems** channel category, including the ** #os-9 ** channel where you can ask questions and talk about the OS-9 operating system. ===== SEE ALSO ===== [[https://sites.google.com/site/dabarnstudio/favorite-os9-utilities|Favorite OS9 Utilities - DaBarnStudio]] \\ [[https://www.osadl.org/RBF-File-System.rbf-file-system.0.html|RBF File System: OSADL - Open Source Automation Development Lab eG]] \\ [[http://www.cocopedia.com/wiki/index.php/The_Structure_of_I-Code|The Structure of I-Code - CoCopedia - The Tandy/Radio Shack Color Computer Wiki]] \\ [[http://www.colorcomputerarchive.com/coco/Virtual%20Hard%20Drives/NitrOS-9%20L2%20V3.3.0/|TRS-80 Color Computer Archive]] \\ [[http://www.colorcomputerarchive.com/coco/Virtual%20Hard%20Drives/NitrOS-9%20L2%20V3.3.0/Virtual%20Hard%20Drive.txt|Virtual Hard Drive.txt]] \\ ===== RTS ===== Return to [[:Top:]] or [[:Tandy Color Computer:]]