virtual memory block reads/writes properly fail if address is out of bounds

Comparing getRealAddr's results to zero seemed ugly so I opted to return success/fail and use an out parameter (result).  Of course, you probably won't ever have a virtual address resolve to zero so this is more  a style/nitpick thing.

Fixes Solar v2.1 http://puu.sh/8ScXK.jpg