When I finished my first working draft of fill.asm, it was, as I would describe it, thrashy. What I mean is that while it seemed to meet the functional specifications, it spent the majority of it's time blasting the SCREEN registers, even if only to "set" them to exactly the same value they were already at.
My main trouble with both fill.asm and mult.asm was not so much with my own logical thinking, but rather syntax issues... Trying to wrap my head around how to tell the compiler to do what I want it to do.
I've gone and made it state-aware now, and while I'm happy with my results, if somebody with the time and experience to tear down my solution and give me a piece of their mind would take a look at my fill.asm I would be very interested in the feedback. As I say, I had a lot of trouble "communicating with the assembler/compiler" and I wonder if, in the process of getting it working, I may have overlooked better ways of doing the same thing(s).
I can PM a link to pastebin, just let me know, thanks.