目次ページ  前ページ   次ページ

24. 幾何の計算に使うプログラミング

24.4 BASICインタプリタの提案と開発


24.4.2 8ビットマイコンのエミュレータを作る

 プログラミング言語としてのBASICは、言語構造が簡単で直ぐに覚えられるような教育的配慮で提案するツールです。幾つかの市販ソフトを見ることができます。或る年齢以上の人で、8ビットのマイコン時代のBASICインタプリタで動くゲームを懐かしく思っている人は少なくありません。また、16ビット時代N88BASICを今でも愛用している人もいますし、その時代のソフトを継承して使うことを目的とした、Windowsの環境で動くBASICインタプリタのエミュレータ(別装置で、元の機能が同じ様に動く装置のこと)も市販されています。パソコンの機能が年々進化していますので、懐古趣味的なソフトに頼るよりも、自前でインタプリタツールを開発すると弾力的な対応ができます。汎用のプログラミング言語を使って自分専用のインタプリタを派生的に作成することができます。筆者は、1980年代に、FORTRAN言語を使ってBASICのインタプリタを作成し、それにグラフィックス用サブルーチンを繋いで対話型で利用していました。Windows系のパソコンになって、FORTRANコンパイラの利用が不便になりましたので、C/C++系のプログラミング言語に書き直したものを使っています。その主な利用方法は、プログラミングができて、グラフィックス機能を持った関数電卓に位置づけています。インタプリタ型のツールは、あらかじめコマンドの種類を決めていますので、コンパイラ型のツールのようにサブルーチンを追加する自由度がありません。基本機能だけを持たせたバージョンをPlain Basic(詰めてPBASIC)としました。幾何の計算が便利にできるバージョンをGeometry Basic(詰めてGBASIC)です。この解説シリーズの第4章まで、言語としての解説と例題を示しました。さらに特殊な幾何モデリングに使う。バージョンはGEOMAP+BASICとしてあります。第10章以降の例図を作成するのに利用しています。
表24.1 GBASIC で用いる予約語

機能別分類

予 約 語

1

プログラム編集

AUTO, DELETE, EXIT, LIST, RENUM

2

プログラムファイル

LOAD, MERGE, SAVE

3

プログラム実行

CONT, END, NEW, PAUSE, QUIT, REM, RUN, STOP

4

バッチファイル

DECK

5

デバッグ機能

ECHON, ECHOFF, TRON, TROFF

6

 

型の定義

数と文字

DEFINT, DEFDBL, DEFSTR

二次元幾何

DEF2PT, DEF2LN, DEF2ED, DEF2BX, DEF2CR, DEF2TR

三次元幾何

DEF3PT ,DEF3LN, DEF3ED, DEF3BX, DEF3SP, DEF3TR, DEF3PL

7

変数と配列の管理

DIM, ERASE

8

データ入出力文

PRINT, INPUT, OPEN, CLOSE, LET, DATA, READ, RESTORE

9

プログラムの実行制御

IF/THEN/ELSE, FOR/TO/NEXT, GOSUB/RETURN, GOTO

10

 

関数

代数関数

ABS, ATN, ATN2, CBRT, COS, EXP, LOG, MOD, RND, SGN,SIN, SQR, TAN

スカラー値

FLAG

幾 何

DIS, FBSEC, FCUTL, FTHRUE, LBSEC, MIRR, MROT, REV, TMIRR, TROT, XROT

11

 

グラフィックス

画面制御

CLG, CLS, DPWIND, GRON, GROFF

作 図

DPMOVE, DPDRAW, DPMARK, DPCIRC, DPTEXT

ペン管理

DPENSZ, DPENTX

GBASICは、PBASICを基本とし、これに幾何処理ようコマンドを追加したものです。追加コマンドは、
  6: 型の定義(二次元幾何と三次元幾何のコマンド)、
  7: 関数(スカラー値と幾何のコマンド)、
  11: グラフィックス(GRON,GROFF)です。


表24.2 GEOMAP用の追加コマンド(コマンドの選択でバージョンが違います)

作業域の制御>

CMINIT, CDIR, CDEL, CRENAM, COPY, CDUMP

ファイル>

FSLOAD/FSSAVE

2D−モデリング

RECT, RECTM, RETANG, RRTANG, RNGON, RPOLYG, REGFL, REGLC

2D−移動・回転

RGDIS, RGROT, RGLONG, RGFACT, REVERT, RCOPY

2D−干渉

RATEST, RUNI, ROVL, RSUB, RINT, RDCOMP, RCUT

3D−モデリング>

PCUBE, PCUBEM, PEWEDG, PRWEDG, PRCYLN, PRCONE, PCYLN, PCONE, PREVL, PTRUNC, PHDFL, PHDFC, PHEDRA,

3D−移動・回転

PGDIS, PGROT, PGROTA, PGLONG, PGPAN, PGFACT

3D−干渉

PATEST, PUNI, PSUB, PINT, PCUT, PEVERT, PDCOMP

>モデルの

変換

/td>

3D→3D

(PFOLD, PWIRE, PFELIM, PEELIM)…………………(組み込んでない)

3D→2D

HLIMAG, HMIMAG, HDEV, HDEVF …………………(投影変換)

2D→3D

RTOP25(2.5 次元モデル)

2D→2D

(RWIRE, RMASK, REELIM, RFELIM…………………(組み込んでない)

作図用コマンド

HDISP, HEDISP, HFDISP, HLDISP, HATCHR, HATCHC

木構造

LMTREE, LDTREE

幾何定数の計算>

JPVOL, JRVOL, JCOPY, JUNI, JSUB, JFACT, JDEL,

データ問い合わせ

QBOX, QFEVN, QVERT, QEDGE, QFACE, QFLOOP, QJVOL, QJGINT, QJAXIS, QJGCEN

その他

HLIGHT, RHIGHT …………………(光源設定、2.5次元モデル高さ設定)

2009.12 橋梁&都市PROJECT

前ページ  次ページ