1.2に於いて、使用しているBASICコンパイラーがオブジェクト指向に対応しました。MachiKaniaではこれまで、黎明期のパソコンで使われた行番号形式のBASICから、構造化プログラミングに対応したBASICまでを扱ってきました。これらのプログラミング形式に加えて、今後はオブジェクト指向プログラミングが出来るようになります。MachiKaniaのユーザーの皆様の中には、オブジェクト指向プログラミングに対してなじみが無いという方もいらっしゃると思います。この記事では、オブジェクト指向プログラミングとは何かに付いては置いておいて、この新しい機能を使うとMachiKaniaがどんな風に便利になるのかについて、紹介したいと思います。BASICではそれをどの様に扱うのか、参考にして頂けたらと思います。MachiKaniaで採用しているオブジェクト指向プログラミングは、クラスベースと呼ばれるものです。従って、この新しい機能を使うには、クラスをどの様に使うかという理解が必要です。ここで、オブジェクト指向プログラミングになじみのない方は、「クラスをどの様に使うか」と言われてもと思うかも知れませんが、とにかく「クラス」なる物があって、それをどう使うのかが大事だということだけ理解しておいて下さい。1.2以上の物を使う事が条件になります。1.2以上にアップグレードして下さい。Zの場合はこちらのページからダウンロード出来ます。マチカニア本体以外に、クラスをインストールする必要があります。ここでは、公式ページで用意しているライブラリーのクラス群を用いてみましょう。Zそれぞれの公式ページのダウンロードのところに、「BASICで利用可能な各種クラスファイル集」という項目がありますから、これをダウンロードして、アーカイブを解凍して出来た「LIB」ディレクトリー全体をSD/MMCカードのルートにコピーして下さい。P32REGなどのクラスが使えるようになります。これらの中から、まず、CKNJ12の使い方について紹介したいと思います。M/Zで、グラフィック上に日本語を表示するためのクラスです。MachiKaniaには、256個のフォントが搭載されていますが、英数字とカナ・記号のみで、漢字はそのままでは表示出来ません。このクラスは、漢字かな交じり文の日本語を表示するためのものです。上で述べたように、MachiKaniaのバージョンが1.2以上である事と、ライブラリー(「LIB」ディレクトリー)がインストールされている事を確認して下さい。次に、PC上でテキストエディターを使って、以下のBASICコードを作成して下さい。形式(BOMなし)でTEST.BASというファイル名で、SD/MMCカードに保存します。BASICを立ち上げて下さい。F1キーを押してTEST.BASをロードしてF4キーで実行すれば、"本日は晴天なり"という日本語がディスプレイ上に表示されるのを確認出来るでしょう。この様に、たった6行のプログラムを書くことで、日本語が表示出来るようになりました。便利だと思いませんか?こういったクラス無しにMachiKaniaで日本語を表示させるのは、簡単ではありません。フォントを用意して、日本語コードを解釈して、フォントの中から該当文字をピックアップして、グラフィック上に表示させる。この一連の操作を、クラスが行ってくれます。クラスを利用する側は、使い方を知っているだけで良く(help.txtに書いてあります)、上で挙げたコードのような簡潔なプログラムを書くだけで、この様に複雑な動作をするクラスを扱うことが出来ます。結果として、複雑な動作をMachiKaniaにさせることが可能になるわけです。上のCKNJ12クラスの例題コードは6行ですが、そのうちクラスの利用に関するものは次の3行のみです。CKNJ12K=NEW(CKNJ12,"UTF-8")K.GPRT("本日は晴天なり",7,0)この3行について理解すれば、あなたもクラスを使えるようになります。順に説明していきましょう。CKNJ12」に付いて説明します。ここで「CKNJ12」というクラスを使うことを宣言しています。class"は、クラスを使うという意味です。この様に、MachiKaniaでクラスを使う際は、まず「USECLASS」ステートメントで使用するクラスを宣言することが必要です。2つ以上のクラスを使用する場合は、カンマで区切って記述して下さい。次に「K=NEW(CKNJ12,"UTF-8")」に付いて説明します。ここでオブジェクトを一つ作成しています。オブジェクト指向プログラミングになじみのない方にとっては、新しい言葉「オブジェクト」が出てきました。ここでは、詳細を説明しません。オブジェクトなるものを作成するのだということだけ、覚えて下さい。ここでのオブジェクトは、「CKNJ12クラスのオブジェクト」の様に、表現します。関数を使うのと同じように、カッコの次にクラス名を記述します。カンマに続けて引数「"UTF-8"」が指定されていますが(指定方法は、GOSUB()関数と同じ)、引数は必要な場合と必要ない場合とがあり、help.txtの<コンストラクター>の項にその仕様が書かれています。CKNJ12クラスでは、引数が一つ必要で、「"UTF-8"」もしくは「"EUC-JP"」のどちらかを使用することになります。ここでは、ファイルをUTF-8エンコードで保存したので、「"UTF-8"」を使用しました。最後に「K.GPRT("本日は晴天なり",7,0)」に付いて、説明します。代入したと述べました。ここでは、このオブジェクトを使って、作業を行ないます。行える作業の一つが、メソッドを呼び出すことです。新しい言葉「メソッド」です。これは、オブジェクトに付随する関数・或いはサブルーチンのようなものと覚えて下さい。文字に続けてピリオド、さらに続けて「GPRT(」とあります。GPRTメソッドを利用するということです。help.txtの<パブリックメソッド>の項に、使い方について書いてあります。関数を使うのと同じように、引数を指定します。引数は無い場合、一つだけ指定する場合、複数指定する場合、様々です。それぞれのクラスの説明書き(help.txt)を参考にして下さい。ここでは、表示する文字列「"本日は晴天なり",」に続けて、文字色、背景色の順で、引数指定しています。様々なクラスを使えば、MachiKaniaがもっと便利に如何でしょうか。オブジェクト指向プログラミングなんて知らなくても、ちょっとしたルールを覚えれば、クラスを使って複雑な動作をするプログラムを簡潔に書くことが出来ることを、実感出来たでしょうか。私が今まで作製して動作確認したクラスは、以下の通りです。PIC32MXのレジスターを容易に扱うためのクラスI/O機器用のクラスは、いずれも機器のデーターシートの詳細など見ることなく使えるように工夫してあります。TIFF画像の表示クラスも、TIFFファイルのフォーマット様式など知らなくてもTIFF画像が容易に表示出来ます。今後も、使って便利なクラスを色々作っていく予定です。ユーザーの方々にも色々クラスを作って公表して頂ければ、MachiKaniaがどんどん使いやすくなっていくと期待していますので、どうぞよろしくお願い致します。