From 7a1b6da07b2dfee1b139f141b54b70f7ca26932f Mon Sep 17 00:00:00 2001 From: Amber <63863236+amberisvibin@users.noreply.github.com> Date: Tue, 15 Sep 2020 08:58:24 -0400 Subject: [PATCH 1/2] update to reflect 6809 --- README.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f197a55..10985f5 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,18 @@ -# chibi pc-80 -![GitHub commit activity](https://img.shields.io/github/commit-activity/m/amberisvibin/chibi-pc80) +# chibi pc-09 +![GitHub commit activity](https://img.shields.io/github/commit-activity/m/amberisvibin/chibi-pc80) ![GitHub last commit](https://img.shields.io/github/last-commit/amberisvibin/chibi-pc80) ### Description: -The pc-80 will be a Z80-based microcomputer with an advanced I/O system, boot scheme, and graphics hardware: +The pc-09 will be a Motorola 6809 based microcomputer with an advanced MMU, boot scheme, and graphics hardware: -- On boot, the coldboot ROM will search a FAT 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. Due to a quirk in the way the Z80 (and CP/M) operates, once the coldboot ROM has finished its work, it will remove itself from the memory address space. +- 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. -- It will come with 64k of RAM by default. These are split into 256 256 byte pages, and will be controlled by an MMU on upgraded machines. A memory protection expansion is also possible. +- It will come with 64k of RAM by default. These are split into 2k RAM pages by the 6829 MMU. The MMU allows for 4 different processes, each with their own address space. The kernel will occupy process 0. Multiple MMUs can be combined to create up to 32 process slots. The maximum amount of RAM will be 512k, as the upper 2 address lines are used for marking r/rw + x. -- It will use a full 64k I/O space, using the upper 8 bits as a Device ID and the lower eight bits as a device address. This creates 256 I/O devices with 256 addresses each. This way, the device ID can be left in the upper address register, while the device address register is updated. This is not the most efficient way to do things, but it makes programming very easy. +- [NOTE]The entire I/O system is not yet defined. + +- 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 6844 DMA controller will be implemented on I/O. [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. @@ -20,4 +24,4 @@ The pc-80 will be a Z80-based microcomputer with an advanced I/O system, boot sc - Program ROM -- Port software (customized [FUZIX](https://github.com/EtchedPixels/FUZIX))? +- Write kernel/OS From 6b8758a37e9ab6610ec3e9574226e353d64aa897 Mon Sep 17 00:00:00 2001 From: Amber <63863236+amberisvibin@users.noreply.github.com> Date: Tue, 15 Sep 2020 10:41:50 -0400 Subject: [PATCH 2/2] more detail --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 10985f5..e641b9c 100644 --- a/README.md +++ b/README.md @@ -6,16 +6,20 @@ The pc-09 will be a Motorola 6809 based microcomputer with an advanced MMU, boot - 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. -- It will come with 64k of RAM by default. These are split into 2k RAM pages by the 6829 MMU. The MMU allows for 4 different processes, each with their own address space. The kernel will occupy process 0. Multiple MMUs can be combined to create up to 32 process slots. 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 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. + +- 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. - [NOTE]The entire I/O system is not yet defined. -- 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 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 6844 DMA controller will be implemented on I/O. [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. +- 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