I've recently ported a driver for the ssd1306 OLED controller. https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf http://www.ebay.co.uk/itm/0-96-inch-128x64-I2C-Interface-White-Color-OLED-Display-Module-for-Arduino-/382142082022
When writing to it, the 128x64 screen is arranged as eight horizontal sections of vertical bytes.
0 LSB
1
2
4
5
6
7 MSB
i.e. the top row shows the least significant bits, which the eighth row shows the most significant bits.
Each of the eight horizontal sections contain 128 bytes, which run from left to right. So the whole screen is addressed as:
0 1 ... 127
128 129 ... 255
...
896 897 ... 1023
Even if your turn the screen 90 degrees, the arrangement makes no sense. (It's then 8 columns of bytes, but mapped top-to-bottom and then right-to-left.)
What reasons might have made this mapping of memory to display a good idea?
Update: One page 35 there is a "vertical addressing mode" which looks like a simple right-to-left raster, if you rotate the screen by 90 degrees.