zongors-universe-machine/docs/MACHINE.org

94 lines
1.9 KiB
Org Mode

* machine
:PROPERTIES:
:CUSTOM_ID: machine
:END:
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
:PROPERTIES:
:CUSTOM_ID: memory
:END:
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
:PROPERTIES:
:CUSTOM_ID: types
:END:
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 rrrg ggb0 0000 {xxxx xxxx yyyy yyyy zzzz zzzz} {xxxx xxxx yyyy yyyy
zzzz zzzz} vz{xxxx xxxx yyyy yyyy zzzz zzzz}
rrrx gggy bbbz xxxx yyyy zzzz
**** 3-3-2 bit rgb
:PROPERTIES:
:CUSTOM_ID: bit-rgb
:END:
rrrg ggbb xxxx yyyy
triangles
textures
** devices
:PROPERTIES:
:CUSTOM_ID: devices
:END:
*** screen
:PROPERTIES:
:CUSTOM_ID: screen
:END:
default screen is a single 2 triangle square face with a single dynamic
texture that can be drawn on it
*** keyboard
:PROPERTIES:
:CUSTOM_ID: keyboard
:END:
ASCII/UTF8 encoded values
*** mouse/joystick
:PROPERTIES:
:CUSTOM_ID: mousejoystick
:END:
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
:PROPERTIES:
:CUSTOM_ID: soundmusic
:END:
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
:PROPERTIES:
:CUSTOM_ID: networkfilesystem
:END:
9p filesystem/network by default.
Have an easy way to network.