OpenCores

Obtaining Disk Images

Collection of RK05 disk images

Download these four disk images to start:

Writing Disk Images to SD Card

Card Compatability

Currently very old SD cards do not function correctly. Virtually any modern SD card should function without issue.

Creating a SD Image using Windows/Cygwin

Selecting the correct device for the SD Card is a little tricky under Cygwin. This is the procedure that I use.

Install the SD Card and type the following command:

# cat /proc/partitions major minor #blocks name 8 0 976762584 sda 8 1 102400 sda1 8 2 976657408 sda2 8 16 3917824 sdb 8 17 3917824 sdb1 8 32 31265312 sdc 8 33 31265296 sdc1 8 48 976762584 sdd 8 49 976759808 sdd1

In my case, /dev/sdb is a 4 GB device.

Since I used a 4 GB SD Card, I'm starting to believe that /dev/sdb is the correct device to write the disk image to.

So far, so good.

Next I unplug the SD Card from the reader and enter the same command:

# cat /proc/partitions major minor #blocks name 8 0 976762584 sda 8 1 102400 sda1 8 2 976657408 sda2 8 16 0 sdb 8 17 3917824 sdb1 8 32 31265312 sdc 8 33 31265296 sdc1 8 48 976762584 sdd 8 49 976759808 sdd1

Note that size of /dev/sdb is now zero. That makes me even more confident that /dev/sdb is the correct device to write the image to.

Check, double check, and triple check that you have the correct device.

If you select the wrong device this procedure will corrupt the destination disk drive and perhaps make your computer unusable.

If you are not completely comfortable with this warning, STOP NOW!

Reinstall the SD Card into the reader.

Using the device name identified above, write your downloaded RK05 disk images to the SD card using the dd command:

(You may need to run the cygwin shell as an administrator).

dd if=advent.rk05 of=/dev/sdb seek=0 count=6496 dd if=diagpack2.rk05 of=/dev/sdb seek=8192 count=6496 dd if=diag-games-kermit.rk05 of=/dev/sdb seek=16384 count=6496 dd if=multos8.rk05 of=/dev/sdb seek=24576 count=6496

You should see output like the following:

# dd if=advent.rk05 of=/dev/sdb seek=0 count=6496
6496+0 records in
6496+0 records out
3325952 bytes (3.3 MB) copied, 2.20298 s, 1.5 MB/s
# dd if=diagpack2.rk05 of=/dev/sdb seek=8192 count=6496
6496+0 records in
6496+0 records out
3325952 bytes (3.3 MB) copied, 2.40038 s, 1.4 MB/s
# dd if=diag-games-kermit.rk05 of=/dev/sdb seek=16384 count=6496
6496+0 records in
6496+0 records out
3325952 bytes (3.3 MB) copied, 3.63439 s, 915 kB/s
# dd if=multos8.rk05 of=/dev/sdb seek=24576 count=6496
6496+0 records in
6496+0 records out
3325952 bytes (3.3 MB) copied, 3.62765 s, 917 kB/s

GNU/Linux

First you must determine the device name of your SD card slot. If you have a dedicated SD card slot in your computer -- common for portable computers -- then /dev/mmcblk0 is usually correct. If you are using a USB adapter, then it can be any number of names.

Integrated SD Card Slot

Insert the card. Run the dmesg command and look near the end for information about your SD card:

$ dmesg | tail
[19549.911067] mmc0: new SD card at address e624
[19550.202531] mmcblk0: mmc0:e624 SU02G 1.84 GiB
[19550.218667] mmcblk0: p1

Here, one can see that my card is mmcblk0 which is attached to mmc0. Therefore, /dev/mmcblk0 is my SD card device name.

USB SD Card Adapter

Insert the card into your USB adapter, and plug the adapter into a USB port.

$ dmesg | tail -20
[19758.237348] usb 1-1.2: new high-speed USB device number 6 using ehci_hcd
[19758.383496] Initializing USB Mass Storage driver...
[19758.383652] scsi8 : usb-storage 1-1.2:1.0
[19758.383776] usbcore: registered new interface driver usb-storage
[19758.383779] USB Mass Storage support registered.
[19758.403460] usbcore: registered new interface driver uas
[19759.379414] scsi 8:0:0:0: Direct-Access Generic USB SD Reader 1.00 PQ: 0 ANSI: 0 CCS
[19759.380038] sd 8:0:0:0: Attached scsi generic sg2 type 0
[19759.381865] sd 8:0:0:0: [sdc] 3862528 512-byte logical blocks: (1.97 GB/1.84 GiB)
[19759.382382] sd 8:0:0:0: [sdc] Write Protect is off
[19759.382386] sd 8:0:0:0: [sdc] Mode Sense: 4b 00 00 08
[19759.382865] sd 8:0:0:0: [sdc] No Caching mode page present
[19759.382868] sd 8:0:0:0: [sdc] Assuming drive cache: write through
[19759.385477] sd 8:0:0:0: [sdc] No Caching mode page present
[19759.385481] sd 8:0:0:0: [sdc] Assuming drive cache: write through
[19759.397851] sdc: sdc1
[19759.399706] sd 8:0:0:0: [sdc] No Caching mode page present
[19759.399710] sd 8:0:0:0: [sdc] Assuming drive cache: write through
[19759.399714] sd 8:0:0:0: [sdc] Attached SCSI removable disk

Here, one can see that my card is sdc1. Therefore, /dev/sdc1 is my SD card device name.

Writing the Disk Images to the SD Card

Warning: The following commands may corrupt your data or even your computer unbootable if used incorrectly. If unsure, contact the maintainers for advice.

Use either su or sudo as approriate for your GNU/Linux distribution. Using the device name identified above, write your downloaded RK05 disk images to the SD card using the dd command:

dd if=advent.rk05 of=/dev/mmcblk0 seek=0 count=6496
dd if=diagpack2.rk05 of=/dev/mmcblk0 seek=8192 count=6496
dd if=diag-games-kermit.rk05 of=/dev/mmcblk0 seek=16384 count=6496
dd if=multos8.rk05 of=/dev/mmcblk0 seek=24576 count=6496

You should see output like the following:

# dd if=advent.rk05 of=/dev/mmcblk0 seek=0 count=6496
6496+0 records in
6496+0 records out
3325952 bytes (3.3 MB) copied, 2.20298 s, 1.5 MB/s
# dd if=diagpack2.rk05 of=/dev/mmcblk0 seek=8192 count=6496
6496+0 records in
6496+0 records out
3325952 bytes (3.3 MB) copied, 2.40038 s, 1.4 MB/s
# dd if=diag-games-kermit.rk05 of=/dev/mmcblk0 seek=16384 count=6496
6496+0 records in
6496+0 records out
3325952 bytes (3.3 MB) copied, 3.63439 s, 915 kB/s
# dd if=multos8.rk05 of=/dev/mmcblk0 seek=24576 count=6496
6496+0 records in
6496+0 records out
3325952 bytes (3.3 MB) copied, 3.62765 s, 917 kB/s

Mac

Instructions coming soon.

Booting OS/8

Serial Console

Connect the UART on your board to the computer. The device name will depend on your operating system. On GNU/Linux, the regular RS232 serial port is /dev/ttyS0 while USB converters use /dev/ttyUSB0 instead. On Windows the device name will usually be COM1, but could be almost any number. Use the device manager to find the port number.

The choice of terminal emulator software also depends on your operating system. On GNU/Linux both minicom and screen work well. Windows versions through XP came with Hyperterm, but for newer versions try RealTerm. Configure your terminal emulator to use 9600 bps 8N1.

Booting from the SD Card

With the SD card inserted into your board, go ahead and flash the compiled project. If OS/8 boots successfully, you should be presented with the famous OS/8 dot prompt in your terminal emulator.