Coder Social home page Coder Social logo

amberisvibin / chibi-pc09 Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 1.0 37.6 MB

The pc-09 will be a Motorola 6809 based microcomputer with an advanced MMU, boot scheme, and graphics hardware.

License: Mozilla Public License 2.0

HTML 100.00%
boot rom graphics circuit-design microcomputer 6809 6809-assembly graphics-hardware

chibi-pc09's Introduction

chibi pc-09

GitHub last commit Contributor Covenant

OS9 Mockup

Description:

The pc-09 will be an extremely expandable Motorola 6809 based microcomputer that can run OS-9 of off an SD card:

  • On boot, the coldboot ROM will search an SD card for a bootfile, load it into RAM, and execute it. The bootfile will be a BIN file that is copied directly to RAM. This bootfile can be copied and moved the same as any other file, allowing for easy backup and distribution of boot code.

  • It will come with 64k of RAM by default. These are split into 2k RAM blocks. The first page is the Kernal Root Block. The second-to-last page is the I/O Block. The last page is the Vector Block. All other blocks are normal RAM. A maximum of 58k of address space is program-accessible, without an MMU.

  • The 6829 MMU creates 4 different address spaces, with the kernal occupying address space 0. With the MMU, only the kernal process will need the I/O and Kernal Root Blocks. Multiple MMUs can be combined to create up to 32 address spaces. The MMU has a 10-bit output, but the maximum amount of addressable RAM will be 1mb, as the upper address line is used for marking r/rw, as outlined in the 6829 datasheet.

  • The I/O Block is sub-divided into 128 devices, with 16 addresses each. Address 0 will be a descriptor, so that the coldboot ROM can address it with a defined protocol.

  • The graphics system will be more advanced than most homebrew computer projects. It will have a custom TTL logic graphics card that will be able to display 320x200 in 256 colours over VGA. There will be 64k of double-buffered VRAM, interfaced via commands. The buffer will not copy unless a 'done' command is sent. This way, if the frame is not ready, the previous frame will be displayed, preventing tearing. These commands will include an auto-increment function, allowing entire bitmaps to be copied with ease. It will also have a text mode, utilizing bitmap copy from the character ROM. [SUBJECT TO CHANGE]

  • It will run OS-9, with pc-09 specific drivers and memory management. This should be invisible to OS-9 programs that use only system calls.

Progress

Currently there isn't a lot to see here. I am in the process of getting everything from my head onto paper.

Code of Conduct

This project uses the Contributor Covenant. While a code of conduct is not strictly neccesary at this stage, any form of discrimination will not be tolerated. Thank you for understanding.

chibi-pc09's People

Contributors

amberisvibin avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

flying-robster

chibi-pc09's Issues

mpl does not fit

this issue will act as a repo for MPL licensing issues

problems:

  • MPL doesnt apply well to schematics and open source hardware
  • need to determine how to do documentation license
  • MPL must be applied on a file-by-file level (less important)

potential solutions:

  • separate licenses for different parts
  • split into multiple repos

consider changing to Motorola 6809

Benefits:

  • proper relative addressing modes
  • fully reentrant code
  • IRQ stacks entire processor state automatically (Fast IRQ allows customization of exactly what parts of state are stored)
  • less cycles per instruction
  • position independent code (!!!)
  • natively supports 6829 MMU, works almost exactly like proposed TTL MMU (can even do r/rw + x, if it's possible to tell the difference between data read and instruction fetch)
  • above features very useful for kernel development

Drawbacks:

  • no longer actively manufactured, but is widely available
  • max rated freq @ 2mhz (4mhz is possible)(most retro computers didn't get past 2 anyways)
  • [MAJOR] no z80 I/O, peripherals will need to be mapped to addr bus (48k RAM? 16 ports of 16 regs, at top of addr?)

NOTE: the motorola documentation is very good

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.