"With a city like this, of course you're going to need a computer to run it. And that's where you come in, Mozzarella Cookie" ------------------------------------------------------------------------- Nested deep within the Golden Valley, hidden from the eyes of the living, is the Golden City, a digital paradise where the souls of those who crumbled can keep living on. Whilst it is the power of Souljam that keeps the city in this pristine condition, some work needs to occur in the background to prevent the risk of glitches. One such example is the Little Cheese Computer, developed by Her Radiance, Golden Cheese Cookie Herself, and currently overseen by Mozzarella Cookie. The LCC (Little Cheese Computer) is a Reduced Instruction Set Computer, often shortened to RISC. As such, there are not many instructions the computer can use, but this makes it perfect for an embedded system, like those embedded into the minds of the Marzipan Cookies. When developing the LCC, Her Radiance ensured that the instructions would not be too complex for Mozzarella Cookie, developing an assembly language which She dubbed "PseudoAssembly" (coming from the terms "pseudocode" and "assembly language"). The PseudoAssembly is interpreted during development, and then assembled once development is done. She even made it so the amount of typing needed was limited to just variable, constant, and branch names (although, She has admitted that this was partially due to the fact that, and I quote, "Mozzarella Cookie would often get bored when she doesn't understand things. That's why I made it simple for her.") Now, when it comes to using the computer, hopefully the PseudoAssembly should make it easy enough to use, and so instead I am going to use an extract from "Understanding the technology of a digital city" (written by Her Radiance), on the pages about the LCC, and what some of the key terms in this are: ACCUMULATOR (ACC): A special memory location in the Computer Processing Unit (CPU) that stores a numerical value, which mathematical operations can occur on. RANDOM ACCESS MEMORY (RAM): The RAM is where the instructions are stored, as well as the values of all the variables and constants. PROGRAM COUNTER (PC): Not to be confused with Personal Computer, the Program Counter keeps track of what memory address the next instruction is stored at. INSTRUCTION REGISTER (IR): Stores the type of instruction which is currently occurring as a numerical value. ADDRESS REGISTER (AR): Stores the memory address of the value that the instruction calls upon. ARITHMETIC AND LOGICAL UNIT (ALU): This is another memory location in the CPU, where all mathematical and logical operations take place. It is also used to increase the PC by one at the end of each CPU loop (cycle) BRANCHES AND BRANCHING: All the things I've mentioned previously were parts of the CPU, but branching is part of the assembly language. To simplify the PseudoAssembly, I have added something which I call a "Branch Line", which is used to call upon other instructions in the code, by changing the value of the program counter. The Branch Line is used by the 3 branch types (Branch, Branch if zero and Branch if positive) to know what line the code needs to go to.
CREDITS: The Little Cheese computer is a simplified version of the Little Man Computer, by Peter Higgingson, using what I like to call "PseudoAssembly" to program the computer, rather than real assembly language As with Cheddar Mines, the location, characters and font used in the LCC is from CookieRun: Kingdom, with the location being the Golden City this time The text engine is by Griffpatch, with an adjustment to the code created by me (@SchoolC0404) to allow for different fonts. The rest of the code is by me (@SchoolC0404) Music (Digital City) by me @SchoolC0404, based on both In the Mines of the Valley from Cheddar Mines, and the music seen in the Golden Cheese updates in CookieRun: Kingdom ------------------------------------------------------------------------- NOTES: This may be my biggest project so far, taking me around a week to develop. I remember starting it on Friday, showing my computer science teacher the first prototype on Tuesday, having told her the day before that I was making it, and then spending the rest of the week developing and bug-fixing the code. The biggest glitch came with the branching, but there were glitches with assembling the constants and variables too, as well as glitches in other areas that I have forgotten about. All in all, this was a huge project, but an impressive one, and one I have wanted to make for ages. In fact, there was a time when I had wanted to call it the Little Cat Computer, but then the Golden City released in CookieRun: Kingdom, and I knew from then on that the Little Cheese Computer would be the Reduced Instruction Set Computer (RISC) that I would develop. ------------------------------------------------------------------------- Versions: These are shown in the update log, however V1.0 was the release. More recently, I've wanted to look at compatibility with the Little Man Computer, which is where V1.1 was created, to allow LCC PseudoAssembly to be converted to LMC assembly V2, initially going to be called V1.2, is where I started to focus a lot more on LMC compatibility, finally allowing the conversion of LMC assembly to LCC PseudoAssembly. There are still some small things missing (LOC and OTC), but these will be fixed with the latest update (V3) I'm working on, which will include an improved instruction interface, the final 2 instructions, an improved way of inputting the variable names (which is actually similar to the way I had planned to implement it whoops), and example codes (to make up for a lack of story mode. One day I'll write it, I swear.) ------------------------------------------------------------------------- Update Log: V1.0: Dec 16: Released, bug fixes Dec 18: Minor asset fix on main menu Dec 19: Minor bug fix for renaming branches Jan 9: Minor bug fix for adding instructions Jan 15: Minor bug fix Feb 29: Stopped negative numbers being inputted into constants V1.1: Apr 19: Added a button to convert the LCC's code to code functional in Peter Higginson's Little Man Computer, the inspiration of this project. V2: Sept 26: The LCC now allows for memory locations in the RAM to be used for adding, subtracting, loading and storing. (Mostly) Full LMC support has also been added. I say mostly because the LCC doesn't support Output To Character yet. ... story mode soon maybe probably not but still? Sept 27: Bug fixes related to better support of self-modifying code. Code 4 now gives an error and stops the program in RAM Jan 23: Fixed glitch where variables would not retain their default values when exporting to LMC instructions. Fixed output box, so it no longer overflows with too many outputs (you can now scroll through the outputs). ------------------------------------------------------------------------- Error Report: Heya, Mozzy here. Her Radiance said I should probably keep track of bugs in the system, so I can report any to Her. Firstly, if you experience any bugs in transferring from the LMC, I should have left a note that comes up. I have FINALLY begged Her to let me have that fancy character output thing, but that won't be coming for a while. As for the blank lines, well I haven't managed to get that working just yet, but it shouldn't be long for that to be inputted too. Another one that mayyy be fixed soon is more import problems. Yeah, I did a bit of a deeper dive into the LMC, looks like Her Radiance missed a few things with data and branches and stuff in the import (don't tell Her I said that)- I think that's all the glitches. Of course, let me know if you find any more ------------------------------------------------------------------------- A note from Cheeb (SC): Hi! If you're seeing this, you probably read all of the description, or just scrolled down. I just wanted to let you guys know that a sequel is in the works, based on Higginson's more complex RISC simulator. That might take me a while to make, but I've already settled on the name Marzi (short for Marzipan) for it. Expect that at some time in the future.