目次

文字出力

 Forthのスクリプトの中で、文字列を表示するには
 ワード「." "」を利用します。




 ワード「." "」では、文字列を1個のスペースを挿入して
 入力します。また、ダイレクトモードでは使えないので
 必ずワードの中に入れます。

 端末に対して、1文字を返すには、ワード「emit」を使います。

 次のワードで確認してみます。

: testa 10 0 do i $30 + emit loop ;

 ワードを定義して、動かしてみると以下。



 英大文字と英小文字をテストするには、次のワードを利用。

: tstc $5B $41 do i emit loop ;
: tst $7B $61 do i emit loop ;

 ワードを入力して動作確認すると、以下。



 英字と数字は、ワードを定義して確認できました。

 端末ではASCIIコードを利用しているので、'*'を表示
 するには、スタックに42($2A)を入れて、ワード「emit」
 で出力すれば、よいはず。

 実験してみると、以下。




 数字であれば、対応するASCIIコードを
 ワード「.digit」を利用して変換できます。

 数字の1と9で確認。



 数字の'1'は、16進数で$31で10進数で49
 数字の'9'は、16進数で$39で10進数で57。
 間違いなく、変換されています。

 メモリの一部のエリアを配列とみなして、その中に
 1バイトずつ文字定数を設定し、ワード「emit」を使い
 表示すれば文字出力が実現できます。

 配列に関しては、後のページで説明しましょう。

 配列(メモリエリア)を確保し、その中に文字コードを
 埋め込んで表示してみます。



 4文字分のコードを入力。



 配列の中から1文字ずつ取り出して表示。




 メモリの中に配列を用意しておいて、そこに
 文字コードを格納し、ワード「emit」の利用で
 1文字ずつ表示すれば、文字列出力と等価に
 なると、わかります。

 新しいワードを定義して、表示したい文字数を
 与えてみてもよいでしょう。




目次

inserted by FC2 system