This is the part where it's really confusing for me. I didn't realize that the 21C part is the string length, but it definitely is, after going through the text. I also didn't know the 21E-F part was the VRAM address written to.
I sort of at a basic level get what each operator does, but I'm not getting the big picture at all and I'm not sure how to reason out what you did.
Worse, I get really confused on if I break @ 220. It seems like the tile values get written to 204 and 205, maybe others, and yet 220 has something to do with this? If I break at 220 and try to continue, it will break a few more times and then go on with the entire string.
I can't figure out what to get from the parts before 220 is written to.
I did see that these instructions are stored really early in the ROM, like $1536, but I'm just seeing the assembly instructions that I see on the debugger.
These two instructions will bounce back and forth (with "Run"). 204 in RAM just keeps just STX $01.
205 is always the tile value printed to screen.
LDA, $0441,Y @ $044D
<- that address goes up by 1 each time
But the value doesn't match up with anything I'm familiar with in the nametable, so it must do something else?
If I "Step Into" these functions, they jump around to different subroutines and do all sorts of stuff that I have trouble comprehending, but probably necessary stuff in order to draw a character.
What's going on at 440 is the current character of the current line of the string, 0-indexed. So $00 at 440 is the first char and $17 at 440 is the last character on that line (aka before a line break character or something like that is reached).
This image shows that while 440 is incrementing, so is 202, although from something like 60 or 70 instead of 00