Memory routines change signed numbers to unsigned

Trying to find an negative byte in memory makes no sense, but it's
possible other function may send signed numbers to these routines.
Re-added signed indices for memory access opcodes
Fixed @read_char ignoring cursor keys
Fixed capitalization on routine call