# machine I like uxn's idea of it being 16 bit because its 0 to 65535 or -32768 to 32767 which fits in your head nicely. ## memory ideas for memory (ram) is going to be a giant hashmap of some kind, or maybe like picolisp? picolisp has 64 bit machine words, a cell is 2 words ## types number (fixed point numbers), symbols (string), cons-pairs (lists) 0000 0000 0000 0000 0000 0000 0000 0000 tfff xxxx yyyy zzzz 0rgb xxxx yyyy zzzz mmrr rggg bbbx xxx xxxy yyyy yyzz zzzzz rrrx gggy bbbz xxxx yyyy zzzz #### 3 bit rgb rgba xxxx xxyy yyyy #### 3-3-2 bit rgb rrrg ggbb xxxx yyyy triangles textures ## devices ### screen default screen is a single 2 triangle square face with a single dynamic texture that can be drawn on it ### keyboard ASCII/UTF8 encoded values ### mouse/joystick Theoretically a modern controller could be mapped into 3 mouse/joystick devices A nes controller could be mapped onto 1 mouse/joystick device x axis -> J1 -> J2 -> Dpad left/right y axis -> J1 -> J2 -> Dpad up/down button 1 -> A -> t1 -> select button 2 -> B -> t2 -> start button 3 -> X -> b2 -> "meta button like controller start" button 4 -> Y -> b2 -> unused xxxx yyyy 1234 x (4 bits) y (4 bits) 1 is button 1 pressed? 2 is button 2 pressed? 3 is button 3 pressed? 4 is button 4 pressed? ### sound/music This one is going to be the hardest most likely, but its prolly going to be something like the backend dac for ORCA. ### network/filesystem 9p filesystem/network by default. Have an easy way to network.