連載
» 2014年11月10日 19時52分 UPDATE

カウントダウン企画……あと8回:日刊!プチコン3号――使える文字数が256倍に!! 「文字コードとDIALOG」

待ちきれないプチコン待機組のために、配信日まで日刊連載開始! 記事のネタが尽きるのが先か、配信が始まるのが先か! 祝「11月19日配信開始」決定!!

[瓜生聖,ITmedia]

使える文字数が256倍に――「文字コードとDIALOG」

 日本語といえば文字数の多い言語の1つ。ハードウェアスペックの低かった80年代初期のレトロPCでは、漢字を使える機種は限られていた。さらに、漢字が使えない機種の中にも英大文字のみ、英大文字・小文字とカタカナのみ、それに加えてひらがなまで、などの差があった。

 これは1文字を8ビットで表す、という前提のもと、そのわずかなスペースの中にどのようなキャラクタを押しこむか、という各メーカーの設計の違いによるものだ。機種によっては英大文字のみと割り切って、代わりにグラフィック文字と呼ばれる罫線やトランプのスート、人型などを多く入れているものもある。グラフィック機能のない機種では、画面すべてを文字で表現するため、グラフィック文字が扱えると表現力が増す。

 当時のレトロPC同様、1文字を8ビットで表現するプチコンmkIIでは英数字(英大文字/小文字)、記号、カタカナ、グラフィック文字256種類を扱うことができた(コントロールコードは存在しない)。プチコン3号では文字列の内部管理をUnicode(UTF-16)に移行し、扱える文字種が一気に増加した。なお、BOMは認識されない。

 漢字を扱うこともできるが、実際に漢字が表示できるのはDIALOG命令を使ったときだけ。コンソール画面および編集画面では漢字部分が「四角にバツ印」の豆腐になってしまう。どこででも表示可能な文字はキーボードから入力可能な文字で、プチコンmkIIと比べ、新たにひらがな、濁点・半濁点付きカタカナなどの日本語のほか、アキュート・アクセントやウムラウトなどダイアクリティカルマークのついたアルファベット、合字、ギリシャ文字、キリル文字などが含まれる。

 DIALOGは下画面に問い合わせ用のダイアログを表示して入力待ち状態にする命令。入力は大変だが、アドベンチャーゲームなどで活用できるだろう。

キーボードから入力できる文字種

og_puticom3_10_001.jpgog_puticom3_10_002.jpgog_puticom3_10_003.jpg 画面は左から、標準(英大文字)、英小文字、グラフィック文字

og_puticom3_10_004.jpgog_puticom3_10_005.jpgog_puticom3_10_006.jpg 画面は左から、グラフィック文字(シフト)、グラフィック文字2、グラフィック文字2(シフト)

og_puticom3_10_007.jpgog_puticom3_10_008.jpgog_puticom3_10_009.jpg 画面は左から、記号、記号(シフト)、ダイアクリティカルマーク

og_puticom3_10_010.jpgog_puticom3_10_011.jpgog_puticom3_10_012.jpg 画面は左から、ダイアクリティカルマーク(シフト)、合字、合字(シフト)

og_puticom3_10_013.jpgog_puticom3_10_014.jpgog_puticom3_10_015.jpg 画面は左から、ギリシャ文字、ギリシャ文字(シフト)、キリル文字

og_puticom3_10_016.jpgog_puticom3_10_017.jpgog_puticom3_10_018.jpg 画面は左から、キリル文字(シフト)、カタカナ(シフト)、カタカナ

og_puticom3_10_019.jpgog_puticom3_10_020.jpg 画面は左から、ひらがな、ひらがな(シフト)

og_puticom3_10_021.jpgog_puticom3_10_022.jpgog_puticom3_10_023.jpg DIALOGは漢字対応(画面=左)。コンソールではひらがなは読めるものの、漢字はすべて「四角にバツ印」になってしまう。なお、表示できないだけでプログラム内の文字列定数として使うことは可能(画面=中央)。こちらはプチコンmkIIのキャラクタコード。256種のみだった(画面=右)

関係する命令

DIALOG "テキスト文字列"

 説明(1/2)

  ダイアログを下画面に表示し、了解ボタンが押されるまで待つ

 引数

  テキスト文字列:ダイアログに表示する文字列

 変数=DIALOG("テキスト文字列",[選択タイプ番号],["キャプション文字列"],[タイムアウト時間])

 説明 (2/2)

  ダイアログを下画面に表示し、指定したボタンが押されるまで待つ

 引数

  テキスト文字列

   ダイアログに表示する文字列

  選択タイプ番号

   0:了解(デフォルト)

   1:いいえ/はい

   2:戻る/次へ

   3:中止/決定

   4:中止/実行

   5:次へ

   -1:(特殊モード)

  キャプション文字列

   ダイアログ上部のキャプション欄に表示する文字列

  タイムアウト時間

   操作がないときにダイアログを自動的に閉じるまでの秒数

   デフォルト:0(タイムアウトしない)

 戻り

   -1:否定(左ボタン)

   0:タイムアウト

   1:肯定(右ボタン)

  128:Aボタン押下(特殊モード時)

  129:Bボタン押下(特殊モード時)

  130:Xボタン押下(特殊モード時)

  131:Yボタン押下(特殊モード時)

 補足

  ・テキスト文字列、キャプション文字列の合計は256文字まで

  ・文字列にCHR$(10)かCHR$(13)があると、そこで改行される

   (ただしキャプション文字列は1行のみ表示)

  ・文字列にCHR$を用いてUTF16の文字コードを含めると、

   漢字表示も可能

文字列変数 = CHR$(文字コード)

 説明

  指定された文字コードから文字を返す

 引数

  文字コード

   文字ごとに対応する番号

   ※(著者注)文字コードは16ビット

 戻り

  文字コードに対応する文字

 変数 = ASC("文字")

 説明

  指定された文字のASCIIコードを返す

 引数

  "文字"または文字列変数

 戻り

  指定された文字の文字コード

  ※(著者注)戻り値は16ビット

 次回はプチコンmkIIから大幅に使いやすくなった編集モードを紹介する。

※本稿の内容は開発中のものです。製品版配信時には仕様が変更される場合があります。

 「日刊!プチコン3号」で取り上げて欲しいネタや疑問、質問、感想は、ハッシュタグ「#nikkan_petitcom3」をつけてツイート! ライターの瓜生氏がたぶん(連載の中で)答えてくれるぞ。


Copyright© 2016 ITmedia, Inc. All Rights Reserved.