Library for those annoying 12864 LCD screens

Yes, that is exactly how it works.
X coordinates increment, HOWEVER, they increment 8 pixels each time you enable.
Y coordinates never increment, which is the "norm" anyway.

Here is an example:
Assuming the following order:
{RS, RW, DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7}

0010000000 // SET Y COORDINATE to 0 (128 = first line)
Enable
0010000000 // SET X COORDINATE to 0 (128 = start)
Enable

1010100101 // Draw some pixels
Enable // Coordinate has moved 8 pixels now
1011111111 // Draw a full line of pixels
Enable // Coordinate has moved 8 pixels again

0010000001 // SET Y COORDINATE to 0 (129 = second line)
Enable
0010000000 // SET X COORDINATE to 0 (start)
Enable

Since I only came back today, I hope to upload the first version of the library by tomorrow.

Only thing I haven't implemented yet, is a way to enable the second part of the screen (second chip). It seems that it has some very stupid way of enabling the second screen (unlike most graphic LCDs that simply require you to enable CS2, rather than CS1). Once you reach the end of screen 1, it automatically puts you into screen 2. Thats sooooo annoying (although it probably isn't too hard to code).