Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nitros9project/nitros9
NitrOS-9 Operating System
https://github.com/nitros9project/nitros9
Last synced: about 1 month ago
JSON representation
NitrOS-9 Operating System
- Host: GitHub
- URL: https://github.com/nitros9project/nitros9
- Owner: nitros9project
- Created: 2023-09-16T04:26:49.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-18T00:02:17.000Z (3 months ago)
- Last Synced: 2024-10-20T11:23:04.288Z (3 months ago)
- Language: Assembly
- Size: 32 MB
- Stars: 14
- Watchers: 8
- Forks: 15
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
Awesome Lists containing this project
- awesome-coco - NitrOS-9 - Community-based distribution of Microware OS-9 operating system (Programming / Source Code)
README
# The NitrOS-9 Repository (on GitHub)
NitrOS-9 is a community-based distribution of the [Microware OS-9 operating system](https://en.wikipedia.org/wiki/OS-9) for the [Motorola 6809](https://en.wikipedia.org/wiki/Motorola_6809) that was introduced in the late 1970s and sold into the 1980s.
The [Hitachi 6309](https://en.wikipedia.org/wiki/Hitachi_6309), which contains additional registers and enhanced instructions, is also supported.
Here are the current ports of NitrOS-9:
| Computer | Port | Processor |
| ------------- | ------------- | ------------- |
| TRS-80 Color Computer | NitrOS-9 Level 1 | 6809 & 6309 |
| Radio Shack Color Computer 2 | NitrOS-9 Level 1 | 6809 & 6309 |
| Tandy Color Computer 3 | NitrOS-9 Level 2 | 6809 & 6309 |
| [CoCo3FPGA](https://groups.io/g/CoCo3FPGA) | NitrOS-9 Level 2 | 6809 |
| Dragon 64 & Tano Dragon | NitrOS-9 Level 1 | 6809 |
| Dragon Alpha | NitrOS-9 Level 1 | 6809 |
| [Atari w/ Liber809](http://www.github.com/boisy/liber809) | NitrOS-9 Level 1 | 6809 |
| [Corsham 6809 SS-50](https://www.corshamtech.com/product/ss-50-6809-cpu-board/) | NitrOS-9 Level 1 | 6809 |
| [Foenix F256 with FNX6809](https://www.c256foenix.com/) | NitrOS-9 Level 1 & 2 | 6809 |# Downloading and Building
To build NitrOS-9, you need the following:
- [lwtools](http://lwtools.projects.l-w.ca). This package contains the required 6809 assembler and linker.
- [ToolShed](https://github.com/n6il/toolshed). ToolShed provides file system tools for creating disk images, copying files to and from those disk images, and more.Once downloaded and installed, you can build the entire project:
```
export NITROS9DIR=$HOME/nitros9
make
```The result is a number of disk images (ending in .dsk) that can be used on real floppy drives, emulators, and DriveWire.
# Contributing
If you wish to contribute, please fork the repository and submit pull requests.
Also, assembly source code is formatted to the following specifications:
- Spaces only (no tabs)
- Labels start at column 1
- Opcodes start at column 21
- Operands start at column 31
- Comments start at column 51Put [this file](https://github.com/nitros9project/nitros9/blob/main/scripts/pre-commit) in your .git/hooks folder to ensure that any source code you submit is automatically formatted.
# Coding Style Guidelines
Here are some general coding guidelines for the project.
## Add a comment to every line of assembly
Having a comment on each line of assembly may seem excessive, but doing so keeps the meaning behind flow of the code intact and gives the reader a clear understanding of what is happening.
## Make comments meaningful
Take time to write clearly about what a line of code is doing. Avoid repeating the obvious, if possible.
Instead of this:
```
clra clear A
```do this:
```
clra set the path to standard input
```## Write comments in lowercase and don't use punctuation
Comments may or may not be complete sentences; as such, dispense with the formalism of capitalization and punctuation.
Instead of this:
```
ldb #E$PNNF Prepare the "pathname not found" error.
```do this:
```
ldb #E$PNNF prepare the "pathname not found" error
```
## Use full wordsAvoid abbreviations. Spelling out words increases the readability of the comments.
Instead of this:
```
pshs d,x,y,u push regs
leax ,u load path desc ptr in X
```do this:
```
pshs d,x,y,u save the registers on the stack
leax ,u load the path descriptor pointer in X
```## Ensure an empty line is at the end of a source file
Adding an empty line to the end of a source file ensures that some programs that parse
the input do not abandon any important information on the last line.Instead of this:
```
rts
```do this:
```
rts```