Merge upstream readme changes
This commit is contained in:
32
README.md
32
README.md
@@ -1,34 +1,24 @@
|
||||
# chibi pc-09
|
||||
 [](CODE_OF_CONDUCT.md)
|
||||
|
||||
### Description:
|
||||
The pc-09 will be a Motorola 6809 based microcomputer with an advanced MMU, boot scheme, and graphics hardware:
|
||||
## 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 a FAT(32) 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.
|
||||
- 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 pages by the 6829 MMU. The MMU has a 10-bit output, but the maximum amount of RAM will be 512k, as the upper 2 address lines are used for marking r/rw + x.
|
||||
- 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 MMU allows for 4 different processes, each with their own address space. Multiple MMUs can be combined to create up to 32 process slots. The kernel will occupy process 0, and will manage all other processes. Page faults have to be managed by external circuitry. The 6829 datasheet contains details on how to do this.
|
||||
- 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.
|
||||
|
||||
- [NOTE]The entire I/O system is not yet defined.
|
||||
- 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 uppermost 2k RAM page will be unused, and dedicated to I/O. By default, this 'page' will only be accessible to the kernel process, and I/O occurs through system calls. [SUBJECT TO CHANGE]
|
||||
- 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]
|
||||
|
||||
- The 6844 DMA controller will be implemented on I/O. [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.
|
||||
|
||||
- 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.
|
||||
## Progress
|
||||
|
||||
- The kernel will implement drivers, using position-independent, re-entrant code. In theory, these drivers should be interchangeable with any 6809 system.
|
||||
|
||||
## Todo:
|
||||
|
||||
- Design mainboard
|
||||
|
||||
- Design graphics board
|
||||
|
||||
- Program ROM
|
||||
|
||||
- Write kernel/OS [NOTE: [NitrOS-9](https://sourceforge.net/projects/nitros9/) fork?]
|
||||
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](CODE_OF_CONDUCT.md). While a code of conduct is not *strictly* neccesary at this stage, any form of discrimination will **not** be tolerated. Thank you for understanding.
|
||||
This project uses the [Contributor Covenant](CODE_OF_CONDUCT.md). While a code of conduct is not strictly neccesary at this stage, any form of discrimination will not be tolerated. Thank you for understanding.
|
||||
|
Reference in New Issue
Block a user