Close

Operating System (kittyOS)

A project log for Cat-644

An 8-bit computer based around an AVR ATMega-644 and junk-box SRAM.

Mark ShermanMark Sherman 09/04/2018 at 18:555 Comments

I have started developing a 'proper' operating system for this computer.  I am doing it for the 2018/09 Retrochallenge.  http://mwsherman.com/rc2018/09/

Goals:

Currently running in kittyOS:

Existing code from the original cat1.c demo program: (to integrate in kittyOS)

Existing code run in simavr, but not tested on real hardware yet:

Todo List: not implemented anywhere yet

Discussions

Hacker404 wrote 09/30/2018 at 11:35 point

Love this project. The wooden case looks so so retro. I can't remember what retro computer it reminds me of.

Today's the day RC2018/09 !

I wouldn't bother with the bootjacking. There was a list on the Atmel site about which chips support self writing code. But then you have to worry about wear leveling, block erase time and things like that.

An interpreter is just as easy and fast enough.

Another thing. These chips have a wide temp range and a wide voltage range. They wont go fast at high temp and low voltage but at 5v you will have no problem running them at 32MHz or even faster - just adjust the bootloader to get the serial speed right for flashing.


The atMEGA1284 is a drop in replacement for the atMEGA664.

  Are you sure? yes | no

fabian wrote 09/07/2018 at 14:43 point

please make only one. mruby

  Are you sure? yes | no

Mark Sherman wrote 09/29/2018 at 19:26 point

Don't want a bunch of hacky AVR computers let loose?

  Are you sure? yes | no

Greg Kennedy wrote 09/07/2018 at 01:13 point

Very interested in the "native code through flash" option... Harvard architecture would seem to preclude it!  Does that mean your CPU is allowed to flash itself during operation?

  Are you sure? yes | no

Mark Sherman wrote 09/29/2018 at 19:24 point

Harvard architecture just means the program and data memory are separate.  The AVRs can self-flash; that's how Arduino works.  The goal is for most of the user-level programming to happen in the bytecode interpreter.  Then if there is something that really needs full-speed AVR machine code, then it could flash itself.  I haven't implemented that part yet, but others have. 

I am currently using Chip45 bootloader.  I don't want to write my own yet.  But it turns out you can use anyone's bootloader in your own program using this trick called bootjacking.  http://oneweekwonder.blogspot.com/2014/07/bootjacker-amazing-avr-bootloader-hack.html

  Are you sure? yes | no