Byte index is now stored on 2 bytes. Macros have been made cleaner
Each buffer should use its own byte index since the value would otherwise be overwritten when writing to other buffers