Don't worry about the long post, my posts are always full of 'redundancy', as people can always ignore certain parts, but no enough info requires another post
Well, I will look into this further later on when I have time. But I have skimmed over page 16 of the link you provided, and quickly read your post.
I'm not sure if you realise (I do'nt want to sound patronising here if you do know) but the numbers 0x00, 0x18 are hexadecimal
0x00 being '0' in decimal, and 0x18 being '24' . Often graphic LCD displays are divided up, since one controller IC cannot control all the segments on the display. For larger displays such as 320x240, there are many driver IC's, connected up, and controlled by a single 'master'.
In the case of 128x64, or 240x64, there are usually 2 or four of these IC's. To complicate matters, these master/slave IC's are both drivers and controllers in one! Using CS1/CS2 lines to control which one your interface is talking to. Because of common display resolutions, often such controllers/drivers can drive up to 132 columns, and 32 rows - since 132x32 is a common resolution, and so would only require one of these controllers. For 128x64, two are used for the upper and lower parts of the display. The last 4 columns (display is 128, but driver can do 132) DO exist, they simply aren't on the display which is why some numbers don't immediately make sense. With YOUR display, each controller IC can do 64 rows, and 132 columns - meaning, two of these chips can give a resolution of 264 x 64 (2 x 132, with 64 rows). As your display is only 240 x 64, 24 of the columns aren't used, or addressed. This means your display addressing isn't symmetrical.... the first 132 columns are controlled by the master, and the last (240 - 132 =) 108 columns controlled by the slave.
Rows are called 'com', and columns are called 'segments'. - to make things even more complicated
Also, since we are dealing with binary/hex, the number '0' counts as a state. So, in addressing terms, the numbers go 0 - 131, and 0 - 107. In hexadecimal, that would be 0x00 - 0x83, and 0x00 - 0x6B. With rows (com) being 64, 0-63, or 0x00 to - 0x3F.
I suspect the 'four quadrants' in the link you provided are showing examples of how one would address different parts of the display. It is not saying the address is split into four parts, but rather giving examples of the address numbers for certain area's of the display.
So, ultimately, say you've already setup your system, and you're simply writing all '1's to the display. (pixels all on). If you just select the master controller, and start writing, the pixels with turn on, in groups of 8, each column. That means a vertical line of 8 pixels will appear at the top left of the display. Each byte writes to one column, but 8 rows. So, you would have to write 132 bytes, and end up with a 'block' of 132 x 8 pixels turned on. After this no more pixels will turn on, because the master can only control the first 132 columns, and unless you change the 'col' address (rows) it stays on that top column of 8 pixels.
Complicated? heck yes! But once you get your head around how it maps the bytes you write to the pixels, you'll realise that it makes life easier when writing text
As its laid out, if we write 8 bytes for a character, we can have 64/8 = 8 rows of text, with 132/8 = 16.5 characters on each line.... for the master controller.
I must say, it is odd they have made it assymetrical, I would have thought they would use 120 columns for each controller.
Sorry for rambling, I'm just blurting out thoughts/experiences.
Blueteeth