PEEKとPOKE

PEEKとPOKE



PEEK(ピーク)およびPOKE(ポーク)は、プログラミングにおいて特定のメモリセルの情報にアクセスするためのコマンドです。これらのコマンドは主に、BASICという高水準プログラミング言語で広く知られていますが、PascalやCOMALなど他の言語でも同様の機能を持っています。PEEKとPOKEは、C言語におけるポインタの役割を果たすことが多く、低水準のメモリ管理を実現しています。

使われ方



PEEKとPOKEは、初期のパーソナルコンピュータにおいて、さまざまな目的で利用されました。特に、ハードウェアレジスタにアクセスしたり変更したりするために用いられ、その結果、ゲームプログラムを操作しユーザーがチートできるようなことも可能となりました。例えば、無制限のライフを得るためにゲームプログラムに調整を加えるといった行為です。このようにして、PEEKとPOKEはプログラミングの知識があるユーザーにとって強力なツールとなっていました。

今日では、BASICのような言語を使用して低水準でメモリを操作することは少なくなり、PEEKやPOKEの概念は現代のプログラミングからは時代遅れと見なされています。しかし、言語の中で使われる「peek」や「poke」という単語は、今でもメモリアクセスの一環としてコミュニケーションで使用されることがあります。

PEEKとPOKEの文法



PEEKおよびPOKEは、直接モードまたは間接モードで呼び出すことができます。引数にはメモリアドレスや値が含まれ、これらは有効なアドレスおよび値に対応している必要があります。有効なアドレスはコンピュータのアドレス空間内で、値は通常0から最大符号なし数の範囲に収まる必要があります。

メモリとハードウェアレジスタ



POKEまたはPEEKされるアドレスは、通常のメモリセルだけでなく、I/Oユニットやビデオグラフィックスチップなどに関連したハードウェアレジスタも参照できます。このような操作により、デバッグツールやシミュレーションツールを実装できるため、高度なプログラミングを行う際に非常に有用です。

チートとしての利用



多くの8ビットゲームでは、特定のメモリアドレスを変更することで、無敵や無限ライフなどのチートが可能でした。これには主にPOKEコマンドが使用され、コモドール64やZX Spectrumなどでは、実行中のプログラムを一時停止させてPOKEを入力し再開することができました。このような改造はゲームに大きな影響を持っていましたが、最近のゲームではメモリ保護のため難しくなっています。

16ビットマシンにおけるPEEKとPOKE



初期のBASICが動作する8ビットマシンでは、PEEKとPOKEの値は0から255の範囲でしたが、16ビットマシンでは2回実行することでより大きい整数値を扱う必要があり、特別なコマンドが公式に用意されるようになりました。

その他の関連情報



異なるBASIC言語では、PEEKやPOKEに相当するコマンドの名称が異なる場合があります。たとえば、North Star BASICではEXAMやFILLと名付けられるなど、仕様が変わることがあります。また、BBC BASICでは疑問符を使用して同様の操作を行うなど、多様性があります。これにより、PEEKやPOKEはプログラミングにおいて、言語や用途に応じて異なる役割を果たすことがあります。

結論



PEEKおよびPOKEは、初期のプログラミングにおいて重要な役割を果たしてきましたが、現代の進化したプログラミング言語ではあまり使われなくなっています。しかし、これらのコマンドは依然として歴史的な重要性を持ち、多くのプログラマにとって懐かしい存在となっています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。