In my early days, many many years ago, one of the machines I managed to get my hands on was the COMX-35, a funky little machine based on the 1802 CPU.
I remember trying to develop some games for it and, as part of that process, I attempted to use 1802 assembler code to write directly to the screen rather than relying on the interpreted BASIC. From memory, the video RAM was supposed to be located at a fixed address.
However, try as I might, I could not get characters to reliably show up on the screen by simply injecting them into those memory locations. There was some success but it seemed to be very intermittent.
I ended up writing the program (Four In A Row) in BASIC and it was rather slow, particularly the animation of the tiles falling into the board (good enough to keep my mother amused however).
I was wondering if anyone knew why my attempts were spurious at best.
Regarding the possibility of the hardware scrolling, I'm not sure that was the case. From memory, running my program immediately after boot/load-from-tape, when no scrolling had taken place, was problematic.
And, once running, it was still intermittent - I wouldn't have thought scrolling would take place if my code was just poking memory and not using any regular things like print statements. Still, I haven't seen the ROM so can't discount this totally.