OS-9: Difference between revisions

From F256 Foenix
Jump to navigationJump to search
No edit summary
No edit summary
Line 24: Line 24:
  make mirror-stuff done-lwtools done-cmoc done-toolshed done-nitros9
  make mirror-stuff done-lwtools done-cmoc done-toolshed done-nitros9


== Building FEU and OS-9 from scratch ==
== Building FEU and OS-9 Level 1 from scratch ==
FEU is the Foenix Executive Utility. It resides in flash and hosts a debugger and booters that can bring up operating systems like OS-9. FEU runs under OS-9 Level 1, so go ahead and build the entire operating system:
FEU is the Foenix Executive Utility. It resides in flash and hosts a debugger and booters that can bring up operating systems like OS-9. FEU runs under OS-9 Level 1, so go ahead and build the entire operating system:
  cd nitros9/level1/f256
  cd nitros9
export NITROS9DIR=$PWD
cd level1/f256
  make  
  make  
  cd feu
  cd feu
Line 39: Line 41:
Once the flash completes, restart the machine and FEU should come up.
Once the flash completes, restart the machine and FEU should come up.


== Assembling OS-9 Level 2 ==
== Building OS-9 Level 2 ==
Note: This assumes you have already built the '''''feu boot loader''''' and flashed it to the F256. Compiling NitrOS-9 requires lwtools and ToolShed.
To build OS-9 Level 2, run these commands:
 
  cd ../../level2/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'."
 
cd nitros9
export NITROS9DIR=$PWD
 
==== Build lib and Rogue (if you want to play Rogue) ====
From the nitros9 directory:
 
cd lib
make
  cd ../3rdparty/packages/rogue
make
 
==== Build Level 2 Disk Image for the F256 ====
From the nitros9 directory:
 
cd level2/f256
  make dsk
  make dsk


: Note: ''do not type'' <code>make</code> ''in the root nitros9 directory.  The nitros9 directory contains builds for every version and build of NitrOS-9 (coco, coco3, etc.).  Make sure to invoke ''<code>make</code> ''from the level2/f256 directory to avoid compiling every possible iteration of the system. ''
This produces the following disk images for the F256 Jr and the F256K:


This will produce 2 disk images:
NOS9_6809_L2_v030300_f256jr_dw.dsk
NOS9_6809_L2_v030300_f256jr_sd.dsk
NOS9_6809_L2_v030300_f256k_dw.dsk
NOS9_6809_L2_v030300_f256k_sd.dsk


NOS9_6809_L2_v030300_f256_dw.dsk
The ''dw'' disk images are for booting from DriveWire. The ''sd'' disk image are for booting from the SD card.
NOS9_6809_L2_v030300_f256_sd.dsk


The ''dw'' disk image will boot from DriveWire (if you have installed an ESP32 or ESP8266 and have a DriveWire server).  The ''sd'' disk image will boot from the SD card. Use <code>dd</code> on Linux, etc. to flash the disk to an SD card. On Linux, '''''IF''''' the card is named /dev/sdx:
On Linux, type <code>lsblk</code> to find the correct device and replace ''sdx'' on the command line below with it:


  dd if=NOS9_6809_L2_v030300_f256_sd.dsk of=/dev/sdx
  dd if=NOS9_6809_L2_v030300_f256k_sd.dsk of=/dev/''sdx''


Note:  '''This is just a sample command, your SD card is probably not named /dev/sdx'''. Check and make sure you are writing to the correct device. On Linux, type <code>lsblk</code> in a terminal to find the correct device.  Substitute /dev/sdx in the above command with the correct device name for your SD card on your system. Double check the device name to avoid catastrophic data loss.
On macOS, insert the SD card into your Mac. A dialog will likely appear telling you that the disk you attached isn't readable. Click the "ignore" button, then type <code>diskutil list external</code> to obtain the device name of the SD card and replace ''diskx'' on the command line below with it:
  sudo dd if=NOS9_6809_L2_v030300_f256k_sd.dsk of=/dev/''diskx''

Revision as of 18:57, 25 June 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, these instructions don't apply, and someone will have to step up and write steps to develop on that platform.

Tooling

Cross-hosted development is the fastest way to develop 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
  • FoenixMgr - tools to load code into RAM or Flash of the F256.

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 terminal commands for Linux and macOS 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

Building FEU and OS-9 Level 1 from scratch

FEU is the Foenix Executive Utility. It resides in flash and hosts a debugger and booters that can bring up operating systems like OS-9. FEU runs under OS-9 Level 1, so go ahead and build the entire operating system:

cd nitros9
export NITROS9DIR=$PWD
cd level1/f256
make 
cd feu

Now you can flash the image into the F256. You must have a USB cable connected to the system from your computer. 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. You can use a Linux VM and FoenixMgr tools in bridge mode on the Mac.

There are distinct builds of FEU for the F256 Jr and the F256K. Power up the machine, then select the correct command:

cd feu
make flash_f256jr

or

cd feu
make flash_f256k

Once the flash completes, restart the machine and FEU should come up.

Building OS-9 Level 2

To build OS-9 Level 2, run these commands:

cd ../../level2/f256
make dsk

This produces the following disk images for the F256 Jr and the F256K:

NOS9_6809_L2_v030300_f256jr_dw.dsk
NOS9_6809_L2_v030300_f256jr_sd.dsk
NOS9_6809_L2_v030300_f256k_dw.dsk
NOS9_6809_L2_v030300_f256k_sd.dsk

The dw disk images are for booting from DriveWire. The sd disk image are for booting from the SD card.

On Linux, type lsblk to find the correct device and replace sdx on the command line below with it:

dd if=NOS9_6809_L2_v030300_f256k_sd.dsk of=/dev/sdx

On macOS, insert the SD card into your Mac. A dialog will likely appear telling you that the disk you attached isn't readable. Click the "ignore" button, then type diskutil list external to obtain the device name of the SD card and replace diskx on the command line below with it:

sudo dd if=NOS9_6809_L2_v030300_f256k_sd.dsk of=/dev/diskx