I have only played with a couple of 16*1 LCDs (one Hitachi and one unkown) but both were implemented as 2*8 contiguous. As you point out chars 8-15 are at buffer address 40-47H. You should be able to implement and test this easily. Just get your code working on your 16*2 display but using just the first 8 chars of each line. Should transfer to the 16*1 without change. I have spent quite a bit of time playing with 16*1 getting a scrolling algorithm to work nicely (where chars appear from the RHS and scroll over to the left). It was a pain because the first char goes from address 47-46-45-44-43-42-41-40-07-06 etc (Hex).In the end I implemented it by sticking characters into both line1 and line2 buffers (one on the visible part of the buffer, the other in the off-screen part) and scrolling both buffers. If the code is any use let me know. BTW in future I intend to implement my 16*1 code as both 16*1 and 2*8 (so it will work on 16*1 screens or just line 1 of 16*2 screens) and use conditional assembly to generate the correct one for the current in-use display. Brian Brian Jones Java Technology Centre IBM Hursley