OS-9: Difference between revisions

From F256 Foenix
Jump to navigationJump to search
No edit summary
Line 27: Line 27:
  export PATH=$PATH:$HOME/coco-shelf/bin
  export PATH=$PATH:$HOME/coco-shelf/bin
  make mirror-stuff done-lwtools done-cmoc done-toolshed done-nitros9</code>
  make mirror-stuff done-lwtools done-cmoc done-toolshed done-nitros9</code>
== Compiling OS-9 Level 2 ==
Note: This assumes you have already built the feu boot loader and flashed it to the F256.
# Set the NITROS9DIR environment variable to the nitros9 directory. If you forget to do this, you will see an error when you compile like "*** No rule to make target '/rules.mak'."
<code>cd nitros9
export NITROS9DIR=$PWD
</code>
# Build lib and Rogue (if you want to play Rogue).  From the nitros9 directory:
<code>cd lib
make
cd ../3rdparty/packages/rogue
make</code>
# Build Level 2 for the F256.  From the nitros9 directory:
<code>cd level2/f256
make dsk</code>
This will produce 2 dsk images:
<code>NOS9_6809_L2_v030300_f256_dw.dsk
NOS9_6809_L2_v030300_f256_sd.dsk</code>
The dw disk image will boot from DriveWire.  The sd disk image will boot from the sd card. Use dd on linux,etc. to flash the disk to an SD card. On linux, if the card is mounted in /dev/sdb:
<code>sudo dd if=NOS9_6809_L2_v030300_f256_sd.dsk of=/dev/sdb</code>

Revision as of 21:35, 27 January 2024

Introduction

The FNX6809 combined with the F256 makes a great system for running OS-9/6809. OS-9 is a real-time, embedded operating system created by Microware Systems Corporation. While it was used in many areas of industry, home computer users know it best for its implementation on the Tandy Color Computer sold by Radio Shack

Today, a community effort has led to the creation of NitrOS-9, an open source version of the OS-9 operating system. Throughout this page, I'll refer to NitrOS-9 as OS-9.

A word about platforms

This page assumes you're running on Linux or macOS. If you're using Windows, someone will have to step up and write a document for that platform.

Foenix-specific tools

To get code into the F256, you need FoenixMgr. Download this package and follow the instructions to install it on your machine.

Note, if you're using a Mac, you won't be able to upload code into the F256 due to the driver manufacturer being so behind on updates. I have a Linux VM and use FoenixMgr tools in bridge mode on there. This allows me to run the commands on my Mac and direct them to the Linux VM.

Cross-hosted software

Cross-hosted development is the fastest way to develop code for the F256. For this you need the following:

  • lwtools - an assembler/linker package
  • ToolShed - a set of tools for creating disk images
  • NitrOS-9 - the NitrOS-9 operating system in source form

You can pull these down individually, or better yet, use @strickyak's great CoCo Shelf repository. It has a Makefile which gets all of the above and puts it in a convenient location (note that you'll have to update your shell script of choice to include the locations of the binaries in the PATH environment variable).

Here are the commands to type at the terminal to pull down all the required software:

cd
git clone https://github.com/strickyak/coco-shelf.git
cd coco-shelf
export PATH=$PATH:$HOME/coco-shelf/bin
make mirror-stuff done-lwtools done-cmoc done-toolshed done-nitros9

Compiling OS-9 Level 2

Note: This assumes you have already built the feu boot loader and flashed it to the F256.

  1. Set the NITROS9DIR environment variable to the nitros9 directory. If you forget to do this, you will see an error when you compile like "*** No rule to make target '/rules.mak'."

cd nitros9

export NITROS9DIR=$PWD

  1. Build lib and Rogue (if you want to play Rogue). From the nitros9 directory:

cd lib

make

cd ../3rdparty/packages/rogue

make

  1. Build Level 2 for the F256. From the nitros9 directory:

cd level2/f256

make dsk

This will produce 2 dsk images: NOS9_6809_L2_v030300_f256_dw.dsk

NOS9_6809_L2_v030300_f256_sd.dsk

The dw disk image will boot from DriveWire. The sd disk image will boot from the sd card. Use dd on linux,etc. to flash the disk to an SD card. On linux, if the card is mounted in /dev/sdb:

sudo dd if=NOS9_6809_L2_v030300_f256_sd.dsk of=/dev/sdb