From 23c51953653096d7ea16eb96f100819409e9b2c4 Mon Sep 17 00:00:00 2001 From: Sarah Jamie Lewis Date: Fri, 12 Nov 2021 15:39:15 -0800 Subject: [PATCH] update readme --- README.md | 114 ------------------------------------------------------ 1 file changed, 114 deletions(-) diff --git a/README.md b/README.md index 09d08a9..9c652b4 100644 --- a/README.md +++ b/README.md @@ -69,117 +69,3 @@ The below represents some ideas for projects to tackle within Boo OS. - [ ] But, it should quickly all the construction of new commands from old ones - [ ] Finally, the shell should facilitate saving and loading of disk-images - [ ] Write a Bootstrapped Assembler Application in Boo Bytecode Assembly - - - -# Formal Reqs - - -Run time: -- Memory needs R/W/E flags - 3 bits -- Mapping Memory before handing off to lesser privileged processes -- Needs some understanding off operating mode - - -- Never attempt to pop an empty stack - - - -Memory - -We treat each 64 chunks of memory as a single page: - - 0x0000 4800 Pages of Write only Display Memory - 0x4B000 1 Page of Registers [rip, mode, display, rax, r2, r3, r4, r5, r6, r7, r8] - 0x4B040 1 Page of Call Stack - 0x4B080 1 Page of Input Flags (Keys Down etc) - 0x4B0C0 Dynamic Memory Begins - - -## Instructions - -All instructions are fixed length. - - -## Meta Instructions - -0x00 - Nop -0x01 - Update Display -0x0F - HLT - -## Dynamic Instructions - -Prefix 0x1#,0x2#,0x3# are given to dynamin register based commands - -- 0x1n STORE(n) $Addr (R(n)) -> Addr) -- 0x2n LOAD(n) $Addr (Addr -> R(n)) -- 0x3n LOADI(n) IMM (Immediate -> R(n)) -- 0x4n INC(n) -- 0x5n DEC(n) -- 0x6n ISTORE(n) -- 0x7n x LDSTORE Load the Address Stored in n into reg(x) -- 0x8n x Transfer R(n) to R(x) - -## Arithmetic - -Prefix 0xa# is given to arithmetic functions - -- 0xa1 ADD (R2 + R3 -> RAX) -- 0xa2 SUB (R2 - R3 -> RAX) -- 0xa3 MUL (R2 * R3 -> RAX) -- 0xa4 DIV (R2 / R3 -> RAX) -- 0xa5 SHIFT (R2 >> R3 -> RAX) -- 0xa6 AND (R2 & R3 -> RAX) - -# Buffers - -Buffers are declared in Boo Assembler as `data buffer