From 3c53c653131682565e732f7d038e251a6791fea1 Mon Sep 17 00:00:00 2001 From: Joscha Date: Tue, 5 Nov 2019 08:44:07 +0000 Subject: [PATCH] Add information to README --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/README.md b/README.md index 85f84a5..e62c7cf 100644 --- a/README.md +++ b/README.md @@ -1 +1,42 @@ # mima-tools + +## File format + +All tools share a common file format, which basically just contains +the MiMa's initial memory state. Its file extension is `.mima`. + +A MiMa operates on words of 24 bits, so the file is split up into +blocks of 3 bytes, written directly one after the other with nothing +in-between. The bytes within one 3-byte block are ordered from most +significant to least significant. + +The file contains no metadata. Opcodes are the same as specified in +the lecture. The first block is at address 0. MiMa's execution starts +at address 0 (i. e. the first block). + +## Programs + +These programs are just ideas at this point, but will hopefully be +working one day. + +### mima-run + +This program can load and run `.mima` files at a specified processor +speed (given in instructions per second). + +I don't know how IO is going to happen on this machine. Maybe I'll +just print a memory dump once the `HALT` instruction was encountered, +or maybe I'll use left over instructions to add a brainfuck-like print +command. Or maybe there is already a solution designed into the MiMa? + +### mima-debug + +This program is like `mima-run`, but also contains a live debugging +TUI. + +## Conventions + +In the source code, the name MiMa is spelled `Mima`. When displayed, +it is spelled `MiMa`. + +Executable names are all lowercase, and words are separated by a `-`.