Skip to content

sorenroug/osnine-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

579489f · Nov 28, 2023
Nov 28, 2023
Nov 28, 2023
Oct 10, 2022
Jul 6, 2020
May 10, 2022
Dec 17, 2020
Nov 28, 2023
Nov 26, 2023
Jul 6, 2020
Mar 8, 2018
Dec 13, 2018
Jun 19, 2018
May 16, 2022
Oct 10, 2022

Repository files navigation

Retrocomputing: A Java-based 6809 emulator

The purpose of this project is to create an 6809 emulator that can be configured at runtime with a range of memory mapped devices. You can allocate RAM, load data into the memory and set up devices.

Emulators

The original emulator is v6809. It uses a Java properties file for the configuration. Several examples are provided. The most interesting is the genericos9. It is a graphics application that runs OS-9 Level 1 in multi-user mode with two terminals, two disk drives and a printer. The other called mo5 emulates a Thomson MO-5 with a cassette tape device.

Devices

  • Acia6551 emulates a Roswell 6551 UART.
  • Acia6850 emulates a Motorola 6850 UART.
  • Both Acias can be configured with 3 different user interfaces: AciaConsoleUI writes to Java's System.out and reads from System.in. AciaGraphicalUI uses Java Swing to create a simple terminal and AciaTelnetUI opens a socket on port 2323, which the user can telnet to.
  • IRQBeat sends an IRQ interrupt every 20 milliseconds to the CPU.
  • HWClock makes it possible to get the date and time from the host of the emulator.
  • VirtualDisk interfaces a DSK image to the emulator as a floppy or harddisk.
  • PIA6821 emulates a Motorola 6821 Peripheral Interface Adapter

Because of their modularity, the Microware OS-9 or NitroOS9 operating systems can easily be configured to take advantage of these devices. Each device has a corresponding OS-9 device driver.

The MC6809 was an 8-bit CPU with some 16-bit features from Motorola introduced in the late 70-ies. OS-9 was sold as a business operating system that enabled word processing, spreadsheets and various programming languages. By today's standards it is obsolete. It only handles 7 bit ASCII and it is not year 2000 aware.

Image of terminal

Build instructions

This project uses Maven. You can get the software from https://maven.apache.org/. To build the software and create the manuals type:

mvn install

Visit the sub-directories to learn how to use the tools.