76 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
# 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 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
 | 
						|
 | 
						|
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.
 | 
						|
 | 
						|
	
 |