について、気分でメモを書き遺す。
実際にMSX BASICの開発者がどう考えていたかは知る由もないが、スプライトパターン形状の定義に用いられるシステム変数 SPRITE$(パターン番号) が文字型になっている理由は上に端的に書いた通りでほぼ間違いないはず。
もう少し嚙み砕くと、スプライトパターンの形状を決定するには、8x8ドットのモード(SCREENステートメント第2パラメータが0または1)の場合で8バイト、16x16(同2または3)の場合でその4倍の32バイトを必要とする。VRAM上ではデフォルトで 3800h から始まるスプライトジェネレータテーブルに、パターン番号の若いものから順にリニアにこれが収まる、というか、ここに適切な値を収めることでスプライトの形状が決定される。
つまり、MSX(VDP TMS9918)においてスプライトの形状を定義するということは、スプライトジェネレータテーブルの然るべきアドレスに連続した8ないし32バイトを書き込む、ということに他ならない。これをアセンブラでおこなう場合、任意のROMまたはRAM上のアドレスから連続して8また32バイトのデータが用意された状態から、
BIOS の LDIRVM を使ってVRAMの然るべきアドレスに流し込んでやればよい。