FANTASY CONSOLE VIRTUAL MACHINE SPEC SHEET VERSION 0.02
##This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.##
--------------------------------------------------------------------------------------------------------------------------------------------------------------
::Memory Layout::
Fixed Clock/Update Rate: 5MHZ
Memory Range: $0x00000 -> $0xFFFFF (1.048.576 Bytes)
Stack Range : $0x00000 -> $0x0FFFF (64kb, Ascending Stack, starts at address 0)
VRAM BackGround Range : $0x10000 -> $0x1FFFF (64kb or 256X256 with 256 possible colors)
Special Register Range : $0x20000 -> $0x2FFFF (64kb or 256 clusters of 256 bytes)
Static Game Data AKA Cartridge : $0x30000 -> $0xFFFFF (832KB, game byte code)



--------------------------------------------------------------------------------------------------------------------------------------------------------------
::VRAM BackGround Information::
Background VRAM is meant to be tiled/mirrored to give the illusion of infinite worlds, VRAM flags in $0x20100 control this effect.
Sprite data is always stored in Game Data section of memory, never in VRAM BackGround.
VRAM-BACK is more like a large dynamic sprite vs the static 16X16 sprites in game data.



--------------------------------------------------------------------------------------------------------------------------------------------------------------
::List Of Special Registers::


    $0x20000 -> $0x200FF :: Screen Bounding Bottom
        All 256 bytes represents the bounding line offset for the bottom of the screen for each corresposnding X of (X,Y). The value 0 signifies no offset thus the bottom most pixel is the boundary line. the value 255 signifies a Y-dimensional barrier.
               ||
               ||
               ||  
    ________---||
    0,0,0,0,16,255


    $0x20100 -> $0x201FF :: VRAM Flags
        $0x20100 = [ (1-bit unsigned)mirror-x, mirror-y, flip-x, flip-y, (4-bit signed)tile-offset ]
	    ....
	
	$0x20200 -> $0x205FF :: Foreground Sprite Draw Order (256 total draw calls, each draw call is 4 bytes)
	    Sprite Entry = [(1-byte unsigned) sprite ID] + [x-offset] + [y-offset] + [(1-bit unsigned)mirror-x, mirror-y, flip-x, flip-y,...]