>>820
>>  mainLoop:
の下
>>  lda $2002
>>  bpl mainLoop
は要らない。

スプライトやBGに書き込むときは、$2001でそれぞれの表示をオフにすること。
BGのスクロールをリセット。
VBlankから出る前に表示をオン。


>>  jmp NOTHINGdown
こういうやりかただと、この先キーの複数同時押しに対応できない予感。
if-elseの構造をよく考えて分岐命令を組み立てること。