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.
Addendum:
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.