スクリーン / 非公式訳

p.75

スクリーン:

Hackコンピューターは、1行が512ピクセルで構成された全256行から成る白黒スクリーンに接続されます。スクリーンの内容はメモリーマップによって表現されます。このメモリーマップは、1ワード16ビットから成る8Kメモリーブロックに格納されます(訳註: 1行が512ピクセルなので1行分として512ピクセル/16ビット=32ワードが必要。それが256行なので256行×32ワード=8192)。このメモリーブロックの先頭番地は、RAMの0d16384番地(0x4000番地)です。先頭番地は、SCREENという事前定義シンボルで指定することも可能です。物理的スクリーンの原点はスクリーンの左上隅です。物理的スクリーンの各行は、32個連続した16ビットワードとしてRAMの内部に表現されます。慣習として左上隅をスクリーンの原点とし、原点を第0行、第0列とします。したがって第row行、第col列にあるピクセルは、RAM[SCREEN + row × 32 + col/16]番地にあるワードのcol%16ビット目(LSBからMSBに向かって数える)に当たります。このピクセルについては、読み取ること(白か黒かを調べること)が可能であるほか、1にセットして黒くすることもでき、また0にセットして白くすることもできます。たとえば以下のコードセグメントについて考えてみましょう。これは、スクリーンの一番左上の隅から始まる16個のピクセルを黒くするコートです。

// RAM[SCREEN]を0xFFFF (== -1)にする。
@SCREEN 
M=-1