Project Description
CBM11 makes use of the Cosmos C# operating system project, and 6502 CPU emulation code, to provide an bootable 6502 CPU environment, complete with simulated RAM, and a built-in ML monitor.


The Cosmos project is an incredible undertaking which converts MSIL to x86 assembly, and provides a boot loader to get the code running. This project adds 6502 CPU emulation on top of the boot process, creates simlulated RAM, and adds an out-of-RAM ML monitor. CBM11 is a great starter for building toy 8-bit operating systems which can access modern hardware. Think Commodore 64 or Apple II with access to modern devices. If you are a fan of the older CPUs, then I think you will enjoy this project. And there's no real reason to be limited to the 6502. With additional CPU classes, the system could possibly emulate any processor.

What can it do?
Right now, it will boot and execute code running at location 0, which is a 0x00 (BRK) instruction, jumping into the built in monitor. Within it, you can:
Assemble - Assemble a program to memory (A XXXX OP PARM)
Memory - view or modify memory (M 0000 to view, M 0000 XX to modify)
Go - Begin execution (G XXXX)
Step (S XXXX initially, then just S afterward)
Registers - display registers
Fill - fill memory (F XXXX XXXX BB)

What cant it do?
As of now, the Cosmos folks have not finished the code to access drives. Therefore, loading and saving can not be accomplished. But they are working on it, and as soon as it is working, we will start building a simple kernel.

Long Term Goals
  • Make the emulation code as good and efficient as possible
  • Add disk I/O, to load kernels into memory
  • Access to other devices like network cards, mice, etc
  • Utilize some of the undocumented opcodes and X flag to add some new features like memory bank switching, or even task switching
  • Add Microsoft BASIC

UPDATE: 2/10/2011 - Source code is now in TFS.

Screenshot 1:

Screenshot 2:

Last edited Feb 15, 2011 at 4:25 AM by xlar54, version 19