Ran into this playing with BASIC this past weekend.
Particulars:
Running R38 on Windows 10. Starting the program with Scale -2.
Using Screen$80 to pull up the bitmap, no pokes or other funny business with the registers, just using X16 basic.
Plotting a "VERA charset" text character to the bitmap with CHAR generates odd behavior whenever Y<6.
Example (after SCREEN$80 to to go bitmap w/text overlay):
CHAR160,6,4,"#" - places purple hash character flush to the top at roughly the center of the screen. This is expected behavior.
CHAR160,5,4,"#" - places purple hash character with top slightly cut off several rows lower and maybe 64 (ish) pixels to the right. Not expected behavior.
Reducing the Y coordinate further still results in the same plotting offset down and to the right of expected coordinates, but with the character moving further up and more of the character's top being cut off.
I see the examples on the Programmers Ref. Guide adding '6' as a starting base offset for the Y coordinate in the examples, so it seems folks are aware of this. I wasn't sure whether this is a known issue that is corrected, or if it is somehow 'expected, although inconvenient' behavior that cannot be altered. Given that it appears the specified coordinate in an x16 CHAR command refers to the lower left of the character it makes sense there would need to be an offset. (My personal preference might be to have the coordinate of the CHAR command refer to the top-left pixel of the character, but since characters are always bigger than pixels there still needs to be boundary behavior considered). Still, it seems to me that if the specified coordinate would put part of the character off the bitmap it should either ignore the characters in the CHAR command that would need to in part print offscreen (like what happens if you try to CHAR a character or string that would run off the right side). It probably should not dump a partial character or sting at an unexpected place on the screen.
Edited to add screenshot: The up arrows point to the "Y" parameter, and the commands show the odd behavior when Y<6
