Posted: Thu Aug 19, 2010 7:37 am
Ok, I took some time to test how it works on real hardware. i were right about VSRAM addresses $4E and $4C being used for vertical scrolling of the left-most column when partially scrolled horizontally, but it's not exactly as I thought.
Here are the conclusions of my tests in column vscroll mode:
1) When fine horizontal scrolling value is applied (hscroll % 16 != 0), the left-most column is partially displayed and the vertical scroll value applied is VSRAM[$4C] & VSRAM[$4E]. The same value is applied for both A & B planes.
2) The above statement is only true in 40-cell mode. In 32-cell mode, the left-most column cannot be scrolled vertically, i.e vscroll value is fixed to zero for both planes. I verified that writing vscroll value to other VSRAM addresses had no effects as well.
3) hscroll mode has no effect on the above statements
Here are the conclusions of my tests in column vscroll mode:
1) When fine horizontal scrolling value is applied (hscroll % 16 != 0), the left-most column is partially displayed and the vertical scroll value applied is VSRAM[$4C] & VSRAM[$4E]. The same value is applied for both A & B planes.
2) The above statement is only true in 40-cell mode. In 32-cell mode, the left-most column cannot be scrolled vertically, i.e vscroll value is fixed to zero for both planes. I verified that writing vscroll value to other VSRAM addresses had no effects as well.
3) hscroll mode has no effect on the above statements