目的
128ドット x 64ドットの仮想VRAM(水平走査線)に
任意のx,yで指定されたドットに白/黒を書きこむ
y は、16バイト
x は、16バイトで1バイト8ビット
1ピクセルは、1ドット1バイト
● 構造
ポインターの値は、yを16倍とxを8で割ると求まる。
point_n = ( point + (y << 4) + (x >> 3))
● ドットの書き込み
(1) 1の場合
ポインターの値から実データを読み出し任意のビットにOR(オァー)で書き込む
*(point_n) = *(point_n) | ( 1 << ( x & 7 ) )
(2) 0の場合
ポインターの値から実データを読み出し任意のビットにAND(アンド)でリセットする
[xを7でマスクする][1をn回シフトする][全体を反転する][AND(アンド)する]
*(point_n) = *(point_n) & ( ~( 1 << ( x & 7 ) ) )