As always, the modulo is two counts less than the difference between the address of the next word you want to fetch and the address of the last word that was fetched. As an example for horizontal scrolling, let us assume a 40-byte display in an 80-byte "big picture." Because horizontal scrolling requires a data fetch of two extra bytes, the data for each line will be 42 bytes long. START START+38 START+78 __________________________|___________________________ | | | | | | |<--DISPLAY WINDOW width-->| | | | | | | | | | | | | | |<----------------MEMORY PICTURE width---------------->| | | | | | | Figure 3-25: Memory Picture Larger Than the Display Window _______________________________________________________________________ | | | Data for line 1: | | | | Location: START START+2 START+4 ... START+40 | | ----- ------- ------- -------- | | leftmost next word next word last display | | display word word | |_______________________________________________________________________| Figure 3-26: Data for Line 1 - Horizontal Scrolling At this point, the bitplane pointers contain the value START+42. Adding the modulo of 38 gives the correct starting point for the next line. _______________________________________________________________________ | | | Data for line 2: | | | | Location: START+80 START+82 START+84 ... START+120 | | -------- -------- -------- --------- | | leftmost next word next word last display | | display word word | |_______________________________________________________________________| Figure 3-27: Data for Line 2 -- Horizontal Scrolling In the BPLxMOD registers you set the modulo for each bitplane used.