表示 - みる会図書館


検索対象: 月刊 C MAGAZINE 1990年6月号
86件見つかりました。

1. 月刊 C MAGAZINE 1990年6月号

TbI. 2 べースドボインタに関連して追加されたキーワードと関数 ba sed segment segname self bcalloc bexpa n d bfree bfreeseg bheapmin bheapseg bmalloc brealloc べースとなるセグメントアドレスを指定する セグメントアドレスの宣言子 セグメント名を指定する 自分自身のべースを表す べースドボインタを使用したメモリ割り当て関数 near ポインタだと DS セグメントからのオ フセットしか取れませんが , べースドボイ ンタは任意のセグメントをベースとしてそ れからのオフセットとして使うことがて、き ます。コンパイラの出力コードを見ると , べースとなるセグメント値が ES レジスタに セットされ , べースドボインタがそれから のオフセットとして扱われています。従来 は , データの量が多い場合には far ポインタ を使用しなければならなくて効率が悪くな りましたが , べースドボインタの使用が可 能な場合には , near ポインタを使用したと きと同じ程度の効率にすることがて、きます。 べースドボインタに関連して新たに追加 されたキーワードと関数を TbI. 2 に掲載しま す。これらの追加された機能を用いれば , 文字列などのデータをコードセグメントも 含めて任意のセグメントに配置することが 可能てす。 MS-C Ver. 6.0 は , べースドボ インタという機能が追加されたことによっ て , インテルの 86 系 CPU にさらに最適化さ れたコードを生成することが可能になった のて、はないてしようか。ただ , 注意しなけ ればならないのは , べースドボインタなど は標準の C の仕様にはないのて , これらを使 用したソースプログラムは移植性が悪くな ってしまうということてす。 C0de View Code View( コードビュー , 以下 CV と呼ぶ ) の最新版 Ver. 3.0 が添付されています。以 前の Ver. 2. x と比較して , 大幅に機能の拡張 がなされています。 Ver. 2. x て、すと , CV 自 体が大きいため , リアルモードて、は大きな プログラムのデバッグがて、きませんて、した CV Ver. 3.0 ては , EMS または 80286 , 80386 の拡張メモリを使用して , MS-DOS 上ての 使用メモリを 12K バイトに抑えることカイき るのて、 , 大きなプログラムのデバッグも可 能になっています。 ソースプログラムを表示するソースウィ ンドウや , メモリの内容を表示するメモリ ウインドウは , 複数のウインドウを同時に 表示することがてきるのて , 一度に複数の ソースプログラムと複数箇所のメモリ内容 を見ることがて、きます。 CV Ver. 3.0 のウィ ンドウはタイリング形式てすが , 縦横のス クロールがて、き , ディスプレイ全面への拡 大も可能て、す。また , 各ウインドウの内容 をプリントすることやファイルに出力する こともてきるのて , デバッグ中の状態を記 録しておくことがてきます。メモリウイン ドウて、は , メモリの内容をバイト , ワード , 文字列 , 整数 , 小数点数などの表示形式を 選択して表示することがて、きます。 また , メモリウインドウ上のデータの位 置にカーソルを移動させて , そのデータを 直接修正することがてきます。メモリウィ ンドウ上のデータだけてはなく , ローカル ウインドウやウォッチウインドウ上の変数 の内容もカーソルを移動させるだけて、修正 てきます。変数の表示ては , 今まてのウォ ッチウインドウ以外にローカル変数を表示 するためのローカルウインドウが追加され ています。ネストになった構造体や大きな 配列の表示も , すべての要素を表示するこ とがて、きます。 CV Ver. 3.0 にはヒストリ機能があるの て、 , 作業を記録しておき , 何度も繰り返し たり , カレント行からひとつ前の行に戻す ことなどが簡単にて、きます。 また CV て、は , PWB と同様にアドバイザ を使うことがて、きるのて、 , CV に関する事柄 だけて、はなく , C 言語や OS についての事柄 も参照することがて、きます。たとえば , デ バッグ中にソースウインドウ上のプログラ ムに問題のありそうな関数の使用方法を見 つけたならば , その関数名の上にカーソル を移動してアドバイザを使ってリファレン スを参照することがて、きます。 ローカル変数も含めて , すべての変数を 見ながらデバッグて、きるのて、 , とても便利 になったなという印象を受けます。以前は , 変数の内容をトレースするために , プリン ト文をやたら挿入してデバッグをしていま した。変数の内容やメモリ上のデータを簡 単に修正てきることも , 境界値て、のデバッ グて、はたいへん便利て、す。ヒストリ機能と 合わせて使えば , 初期値や条件を変更しな がら繰り返しデバッグすることがて、きます。 問題点としては , ウインドウをたくさん 使うと , 25 行モードて、はひとつのウインド ウが小さくなる点てす。 VGA だと 50 行モー ドがありますが , PC ー 9800 に移植したときど うなのか心配てす。 終りに MS-C Ver. 6.0 を手に入れてから大急ぎ て、調べてみた範囲てすのて , 誤解やまちが いがあるかもしれませんが , その点はご了 承ください。マイクロソフト社に日本語版 発売予定を問い合わせたところ , 5 月中句の 速報 MS-C Ve 「 . 6.0 緊急レポート てした。 ビジネスショーに参考出品するということ 27

2. 月刊 C MAGAZINE 1990年6月号

ウシステム 入門 00 ウイン、 表示されるフォントの種類は , プリンタ 体など複数の書体を表示するマルチフォン のフォントに依存するが , 日本語 PostScript ト機能と , さまざまな大きさの文字を表示 プリンタを使えば欧文 13 書体 , 漢字は明朝 するマルチサイズ機能にある。 体 , ゴシック体の 2 書体の印刷が可能て、あ 本誌のどの頁を見ても , 2 書体以上は使わ れているし , 頁のヘッダ , フッタなどには パーソナルコンピュータの最終目標とし サイズの小さな文字が印刷されている。 てよく引合いに出される , アラン・ケイの れは「読みやすさ」への配慮て、ある。今 , 『 DynaBook 』構想に一歩近づくことにな 使っているパソコンの画面とこの頁のクオ る。つまり , DynaBook は「動的な本』を意 リティの違いを考えていただきたい 味し , マルチフォント , マルチサイズによ パーソナルコンビュータて、も , 解像度さ り , 画面 ( コンヒ。ュータ ) が誌面 ( 本 ) に近づ え向上すれば , 画面上て、この頁と同じ品質 きつつある。 の表示が得られるためのしくみが入ったわ けて、ある。 テタ構造の標準化 このフォントデータやフォント表示の処 理もドライバ部に入っているため , アプリ Windows は , 操作性の統一をもう一歩進 ケーションプログラムからは , 『画面または ミー第キストヤす。この文第は、 めて , アプリケーションプログラム間て、の 用紙上のどの位置に , どの書体て、 , どの大 第戦第こづレ、 - トの島のダ第 - ア キト第すにの立・は . べーを データのやり取りを行うためのデータフォ きさの , どの文字を出せ』と指示するだけ ーンヴレート宿 0 タミー、ス ーマットの標準化も行っている。このため て、 , 表示させることがて、きる。 Photo. 4 PageMaker の画面 にいくつかのしくみや , データフォーマッ Windows 上て、稼働する DTP ( ディスクト た。しかもほとんどのアプリケーションて、 トが規定されている。 ップパプリッシング ) ソフトが続々と登場す 従来のテキストファイル , ビットマップ る背景には , このようなきめこまかい文字 は , ANSI. SYS を使ってエスケープシーケ ファイルに加え , 以下の 3 フォーマットが加 処理が極めて簡単に行えるという事情があ ンスて、画面表示するのはまれて、 , VRAM に 直接アクセスすることによって画面を高速 えられた。 るからて、ある。 スクロールさせていた。 Fig. 1 Windows の構造 プリンタもしかり。アプリケーションソ ごとに独自のドライバを各ソフトハウ スが開発していた。一太郎やロータス 1 ー 2 ー 3 ューザは , おのおののソフト内のプリンタ の選択機能て、プリンタ設定を行わなければ ならなかった。 Windows て、は Fig. 1 のとおり , ドライノヾが 本来あるべき位置 , つまり OS とデバイスの 間に位置しているため , アプリケーション ソフト開発において , デバイスを意識しな いプログラミングが可能となった。 ただし , Fig. 1 のような大がかりなしくみ のため , 表示 , 印字などの速度が遅くなる という問題も発生している。 マルチフォント , マレチサイズ GUI の最大のメリットは明朝体 , ゴシック 学生のときからラン和レギーニカウンタックし P400 が欲しかったのですが、 この手のいわゆるスーパーカーは投機対象となっており、一口 0 ロ万円以下では 、りません。↓ 迂こで、数年前から欲しいしいと思うようになっていたスーパー 7 を員うことに のです。↓ の車は現在でもそれほど高くない価銘で新車で購入でき、しかも良によって性能 々アップしているのも魅力です。番 なゼセブンに博れてしまったのか、自分でもわからないのですが、やはりスポーツ として究を勺にプリミティブな設計とデりインだからでしよう。↓ とは言うものの、実は、セヴンは雑誌でしか見たことがありませんでした。最融 、 SSR ( スーパーセヴンレーシング ) というセブンの専円ショップに見に行き、 場で気持をかため、注文しました。車種は、 17 圓 cc の 0 臆ながら 135HP を発生する工 ンを搭載したスーパースプリントです。圓 HC モテ : ルは高価すぎますし、あまりに過 す。かといって、 OH Ⅵ 600 のモデルではちょっとパワー不足かなという気がしたわけ す。そういうわけで、 17 圓スーバースプリントにおちついたわけです。基本スペッ 、ロングコクピットでアジャスタブルシートつき、リアサスはドディオンアクスル ローマ字全かな剏 Photo. 3 新松の画面 ネ訂川ドを一言要 ~ ル編第、」 - 3 ノン三 ! ンにべ : ン 1 、響、レ 3 ″をり ツ ) ヘッド 2 グノヘッタ : ー こ尊・は、 - 、 ! ーゾメーカー -0 0 日み嶽ンレート ののミーをキストてす、この・は、べ・ - ンメー を。 0 日版アンプしをトのあこ、タミ“アキス第です。に E x c e い P a g e M a k e r ←アプリケー ション M S ー D 0 S M S —W i n d 0 w s ← 0 S C R T K B D P R N D I S K ←ドライバ ディスプレイ プリンタ ディスク装置 特集最新ウインドウシステム入門 51

3. 月刊 C MAGAZINE 1990年6月号

"HeIIo, wo 日 d / " を表示するプログラム ( C ) 60 : { List2 int PASCA し WinMain(HANDLB hlnstance, / * この起動用のハンドル * / long FAR PASCA し HelloWndProc (HWND, uns igned, WORD, LONG) : 1 : #include く windows. h> 2 : 3 : 4 : 5 : 7 : 8 : 10 : 13 : 14 : 17 : 19 : 20 : 22 : 23 : 24 : 26 : 28 : 29 : 30 : 32 : 33 : 34 : 35 : 36 : 38 : 39 : 40 : 41 : 42 : 43 : 44 : 45 : 46 : 48 : 49 : 50 : 52 : 53 : 54 : } 55 : 56 : 57 : 58 : 59 : 62 : 64 : 66 : 68 : HANDLE hPrevInstance, LPSTR lpCmd し ine, int nCmdShow) HWND hWnd; MSG msg; WNDC し ASS wndClass : / * 前の起動のハンドル * / / * コマンド行の引数 * / / * ウインドウの表示のされ方 * / / * メイン・ウインドウ用のハンドル * / / * メッセージ・ループ内でメッセージを保持する * / / * ウインドウ・クラスの構造体 * / if (!hPrevInstance) { / * これが最初の起動か ? * / wndCIass. style = NU しし : wndCIass.IpfnWndProc = Hel loWndProc; wndClass. hlnstance = hlnstance; wndClass. hlcon = し oa con ( NU しし , IDI_APP し ICATION) : wndC lass. hCursor = し oadCursor (NULL, IDC_ARROW) : wndCI ass. hbrBackground = GetStock0bject ()H I TE_BRUSH) : if (!RegisterCIass(&wndCIass)) { wndCIass. IpszClassName = (LPSTR) " HE しし 0 " : ( し PSTR) NUL し : wndClass.IpszMenuName / * 初期化不能なので終了する * / return ()U しし ) : hWnd = CreateWi ndow ( ” HEL し 0 ” ” Hello, World" WS_OVERLAPPEDWINDOW, CW_USEDEPAU し T, CW_USEDEFAU し T, CW_USEDEPAU し T, CW_USEDEFAULT, NU しし NU しし hlnstance, NU しい : / * ウインドウ・クラス名 * / / * ウインドウ名 * / / * ウインドウのスタイル * / / * x 位置 * / / * y 位置 * / / * ウインドウの幅 * / / * ウインドウの高さ * / / * 親のハンドル * / / * メニューの I D * / / * インスタンス * / / * 追加的情報 * / if (!hWnd) { return ()U しし ) : / * ウインドウを作れるか ? * / / * 作れなければ Windows に戻る * / ShowWindow(hWnd, nCmdShow) : / * メイン・ウインドウを表示 * / UpdateWindow (hWnd) : / * WM_PAI NT メッセージを送る * / while (GetMessage(&msg, NU しし , NU しし , NU しし )) { TransIateMessage (&msg) : DispatchMessage (&msg) : return (msg. wParam) : / * PostQuitMessage からの帰値 * / long FAR PASCA し HelloWndProc(HWND hWnd, / * ウインドウのハンドル * / uns igned Message, WORD wParam, LONG lParam) swi tch (Message) { PAI NTSTRUCT ps : HDC hDC : / * メッセージのタイプ * / / * 追加的情報 * / / * 同上 * / / * ウインドウは破壊される * / case WM_DESTROY : PostQu itMessage ( 0 ) : break : / * ウインドウはリペイントされる * / case WM-PAINT: hDC = BeginPaint(hWnd, &ps) : Text0ut (hDC, 1, EndPa int (hWnd, &ps) : break : / * Windows にすべておまかせする * / default: return (DefW indowProc (hWnd, Message, wParan, lParan)) : } / * end switch * / return ()U しい : ” Hello, World!", 13 ) : いるのて、す。ひとつの例て、説明します。 ウインドウをひとつ作りましよう。この ードを示します。 プログラムて、す。 List2 に , C による同じコ これが , たった 3 行の HeIlo , world / ′′ 目を書き加えるだけてす。 world / クを表示したかったら , す。さらに , このウインドウに Hello List 1 の 1 , 2 行目のようなコードになりま に出るだけのウインドウて、す。 Actor て、は , ウインドウはなんにもて、きない , List1 の 3 行 ただ画面 のがふつうて、す。つまり Windows アプリ のて , コードとデータがかなりの量になる medium のメモリモデルて書くことが多い のアプリケーションは small または てき上がることに気づきます。 Windows ないのて , かなり小さな . EXE ファイルが ードは実際には . EXE ファイル中に含まれ チンだけがリンクされて , Windows のコ き彫りになります。 C て、書くと , スタブルー dows SDK との間の , ある大きな違いが浮 を実行する段階になると , Actor と Win 実際にアプリケーションを作って , それ 行性能 するメソッドが , すて、に存在するからて、す。 なかった , いろいろな状況に応じて処理を はプログラマがいちいち書かなくてはなら Actor が定義しているクラスの・中に , C て、 す。 Actor だとコードが少なくなるのは , いうふたつのメッセージだけを扱っていま 例て、は , WM DESTROY と WM PAINT と 処理するための関数は必要て、す。 List1 の事 すだけて、あっても , これらのメッセージを メッセージをただ Windows の処理用に渡 ジループも書かなくてはなりません。また , からのメッセージを扱うための , メッセー ドウを表示するよう指示します。 Windows 生成し , そして最後に , Windows にウイン インドウのクラスを登録し , ウインドウを の部分て、す。 Windows 中て、は , ューザのウ C のコードのほとんどが , セットアップ 「なぜこんな大量のコードになるんだ ? 」 窓 (Windows) によじ登る方法 21

4. 月刊 C MAGAZINE 1990年6月号

ウシステム 入門 00 ウイン、 この関数は , Widget を生成する XtCreat Widget の生成 eWidget 関数と , その生成した Widget を 親 Widget の認識させる XtManageChild 関 はじめは , 簡単な文字列表示のプログラ 数をまとめたものて、ある。この例て、は Label ムからはじめる。伝統の C プログラムの X Widget を生成している。そして , 生成さ TooIkit バージョンは , List1 のようになるだ れた Widget は , op 〃の子にされてい る。なお LabeI は , 文字列を表示する簡単 実際のプログラムは , たった 4 行しかな な Widget て、ある。 い。以下に , 各行を解説しよう。 ・ XtRealizeWidget 関数 ()1 行 ) は , 指定した ・ X TooIkit 環境の初期化 Widget を親にもつ全 Widget に相当するウ XtAppInitialize 関数 ()5 行 ) は ,X T001kit インドウを実際に作成する。つまりこの 環境の初期化を行っている。具体的には , 関数により , 画面にウインドウが表示さ X サーバとの接続とか , 基礎の Shell wid れるわけて、ある。 get の生成 , オプションの解析などがされ ・ XtAppMainLoop 関数 ()4 行 ) は , この例の る。ここて、生成した Widget は , このプロ 場合 , ただの繰り返しにすぎない。本当 グラムて、生成される全 Widget の親 Widget は , マウスの移動 , ボタンのクリックな どを待ち , 適切な処理を行うのだが , ・ XtCreateManagedWidget 関数 ()8 行 ) は , の例て、は , 表面に表れない。そして , Widget のインスタンスを生成し , これを れを実行すれば , Fig. 8 のようなウインド 25 行て、生成した親 Widget に管理させる。 ウが表示される。 Fig. 8 図 cmsl 凹 : C nagazine Fig. 9 図 cms2 凹 C nagazine quit cmsl.c List 1 コーレバックプロシージャ さて , 先ほどのプログラムてはただの繰 り返しだった 34 行は , 本当はイベント待ち の繰り返して、ある。つまり , プログラムは , 何かのイベントが発生すると , それに対応 する処理をしようとするだろう。このイベ ントに対応する処理を行うことを , コール バックと呼ぶ。それを使った例を List2 に示 す。この例は , List1 にわずかな変更を加え ただけて、あるが , 、、 quit" と表示されたボタ ンをクリックすると , プログラムが終了す るようになっている (Fig. 9 ) 。 main 関数て、は , 新たに 45 行および 50 行が 追加されている。 45 行が Command widget の生成て , 50 行がコールノヾックプロシーシ ャの登録てある。ここて生成した Command widget は , ListI て、使った Label widget から 派生した Widget て、あり , 文字列の表示 ( 大き さ , 位置なども含んだ ) にすることに加え , マウスポタンのクリックに対するコールノヾ 特集最新ウインドウシステム入門 71 * * 単に " C magaz i ne " と表示するだけのプログラム (cms 1. c) 2 : 3 : 4 : / * Xt lntrinsic 関係の定義 * / 5 : #include く X11/Intrinsic. h> 6 : #include く X11/StringDefs. h> / * 文字列関係の定義 * / 7 : / * LabeI widget の定義 * / 8 : #include く X11/Xaw/LabeI. h> 9 : 11 : / * 伝統の C プログラムの X T001 k i t バージョンの実装例 * / 13 : int 14 : main(argc, argv) / * ただの ma i n 関数 * / 15 : int argc; 16 : char* argv[]; / * w i dget を保持するための W i dget 型変数とアプリケーションコンテクストを * / / * 保持するための XtAppContext 型変数を宣言する 20 : Widget top; 21 : XtAppContext app ; 22 : 23 : / * 基礎になるウインドウに相当する widget を生成する * / 24 : NU しし 0 , &argc, argv) : t0P ー XtAppInitiaIize(&app, 25 : OOPS 26 : / * 文字列を表示するし abel widget を生成し , widget "top" に管理させる * / (void)XtCreateManagedWidget(" C magazine の : 28 : IabeIWidgetClass, top, NUL し , 29 : / * こまでの widget "top" の設定を実現し , 実際にウインドウを生成する * / 30 : XtRea ⅱ zeWi dget (top) : 32 : 33 : / * イベント処理のための無限ループを実行する * / 34 : XtAppMainLoop(app) :

5. 月刊 C MAGAZINE 1990年6月号

五ロ 用 応 ます。 なお , printf< は , 画面は自動的にスクロ ールアップしてきました。しかし , これか らは画面の任意の場所に表示てきるのて , すてに表示されているデータとオーバラッ プする位置に表示する場合には , あらかじ めその部分を消去しておく必要があります。 画面消去には , 1 行消去 (clearl ) , 全画 面消去 ( cls) , カーソル位置の右側消去 ( 醂 「 ight), カーソル位置の左側消去 ( c t ) が あります。それぞれを使い分けてください 例として dbmg の main 関数 (List1,Fig.1) を挙げます。 なお , 呼び出し関数を変更する際には , インタフェイスミスが多発します。ェディ タのサーチ機能などを使って , インタフェ イスをよく確認してください また , ガイドメッセージの表示用の msg 関数とエラーメッセージ表示用の e 「「 msg 関 数を新設します (List2) 。関数を作ること て、 , 各所て、 1 行消去関数 , カラー表示関数 ( colo 「 ) を呼び出す手間が減ります。このよ うにあちこちて同じ手続きを踏む場合には , 関数化することによって , ステップ数の節 約とバグの防止になります。 なお , ガイドメッセージは水色て , 工ラ ーメッセージは黄色て表示しています。 List 1 / * データベースドライプ名 * / 51 : drive; Char 52 : title(void); 53 : VO i d di spdata (void) : 54 : VO i d apndrec ()o (d) : 55 : VOid de lrec (void) : 56 : VOid recall-rec (void) : 57 : VOid 58 : pack-rec (void) : VOid recno) ; di sprec ()I LE *datfi le,long 59 : VOid copyrec()I LE *datfile, PILE *tmpfi le, long 60 : int *recn02) : recnol, long 61 : FI し E *datopen (char *mode) : 62 : FI し E *tmpopen (char *mode) : 63 : VO i d mngwrt (VOi d) : 64 : dsp-mng ()o (d) : VO i d 65 : nsg(int y, char *buf, int count) : VO i d 66 : err-msg (int y, char *buf, int count) : VOid 67 : 68 : / * 69 : 70 : int main() 71 72 : int dbmfile; int workno, stat, i : str[50] : 74 : Char 75 : cls(); nsg ( 20 げ管理ファイル db. nng のドライプを指定してください第 48 ) : 77 : ” g ( 21 ドライプ名 = 第 13 ) : 78 : gets (str) : fname [0]=drive=str[0] : 80 : dbnfi 1 e=open(fname, 0 ー RDON し幻 O-BINARY) : if(dbmfile==-l) 83 : buzzer ( ) : 84 : err-msg ( 22 , ”管理ファイルをオープンできません。 - , 34 ) : 86 : stat=read(dbmfi le, (char * ) &mng, sizeof (nng) ) : 88 : if (stat== 90 : buzzer ( ) ; err-ns g ( 22 管理ファイルをリードできません。第 32 ) : 92 : close (dbnf ile) : 94 : 95 : if (stat== 96 : return : 97 : menu . 98 : key-asgn ( の : do { 99 : cls(): 100 : title(); 101 : 田 sg ( 20 , " 処理番号を指定してください。 - , 28 ) : 102 : color(0RG,SKY) : 103 : put-str(27,3,"1 : 1 レコード表示 " , 18 ) : 104 : 105 : put-str(27,5,"2 : 1 レコード追加第 18 ) : 106 : put-str(27,7,"3 : レコード削除 " , 16 ) : put-str(27,9,"4 : 削除レコードの復活 22 ) : 107 : 108 : put-str(27,11,"5 : 削除レコードの圧縮第 22 ) : 109 : put-str(27,13,"6 : DB 管理テープルの表示第 26 ) : 110 : put-str(27, 15 げ 9 9 : 終了 1 の : ” g ( 21 , " 処理 N 0 . 112 : gets (str) : workno=atoi (str) : 113 : 114 : switch (workno) 115 : 116 : case 1 : d i spdata ( ) : 118 : break; 119 : case 2 : 120 : apndrec 0 : 121 : nngwrt ( ) : 122 : break; 123 : case 3 : 124 : de lrec ( ) : 125 : break; 126 : case 4 : 127 : recall-rec ( ) : 128 : break; e ー se / * キーコード定義 * / ・入力関係 main の先頭と最後て、 keyin. c の key asgn 関数を呼びます ( List1 ) 。 key ー asgn 関数を実行しないとキーポード 入力がうまくてきません。もちろん MS-DOS へ復帰する前に , 割り付けはもとどおりに 戻しておきます。 レコード追加 ( apnd 「 ec 関数 ) のキーポード 入力を gets 関数から get key st 「関数へ変史 します。 これにより画面上の任意の場所てキーポ ード人力がてきます。 gets 関数は , ほかの場所ても使用してい ます。 apnd 「 ec 関数の使用例を参考に修正し てみてください (List3, Fig. 2)。 " , 13 ) : 1 レコード表示 * / 1 レコード追加 * / / * 管理ファイル更新 * / / * レコード削除 * / / * 削除レコードの復活 * / 応用 C 言語 111

6. 月刊 C MAGAZINE 1990年6月号

次にもの、ライプラリ 0 全製品ソースコード付属 / 組み込みロイヤルティー無料 0 The C Libraries UBGM / クラフ作成プロクラム定価 \ 98 , 000 NEW 定価 \ 148 , 000 UBGM/EX 12 種類のグラフ作成機能を提供するバッケージです。例えば、必要なバラメータを設定し、関数を呼 び出すだけで円グラフや棒グラフを簡単に描画することかできます。さらに、タイルバターン、ライン バターンとの対応、日本語文字列をグラフィック画面に表示する機能をサポートしているので、ヒジネ スアプリケーションで必要とされるあらゆるグラフ情報を表現てきます。 ・ 12 種類のグラフ作成機能円グラフ / ドーナツッグラフ / パイチャート / 横棒グラフ / 横棒クラフ ( 複 数 ) / 横棒グラフ ( 積み重ね ) / 縦棒グラフ / 縦棒グラフ ( 複数 ) / 縦棒グラフ ( 積み重ね ) / 帯グラフ / 折 線グラフ / レーダーチャート ・描画位置、大きさを好みに合わせて描画てきる、サポート関数を用意 ◆ EX は八イレゾリューションモード / ノーマルモードのどちらでも使用できます。 ■ CCF, / 総合コンソ - ルコントロールライプラリ定価 \ 59 , 800 「 G 「 a ロ c & MouseJ 十 rWindOW & Menl-JJ 十 CKey & Dis ay 』十プリンタ関数十拡張関数 等合計 200 以上の関数で構成されるライプラリバッケージ ・ CG 「 aphic & MouseJ 、 CWindOW & tKey & Dis ロ Y 」については各製品の説明を こ覧ください。 ・プリンタ関数は OS を介してプリンタに文字コード、制御コード送り、印字 / 制御を行う関数、拡 張関数はテータ工ントリ関数をはじめとするキー入力関数、文字列処理関数等があります。 ー Graphic & Mouse •Graphic & Mouse EX 定価 \ 29 ′ 800 定価 \ 59 ′ 800 N88 日 AS 旧相当のグラフィック機能とマウス機能を提供するライプラリノヾッケージです。 ・ Nd8BASlC 相当のグラフィック関数 sc 「 een 、 view 、 C0に「、 pallete 、 cls 、、 D 「 eset 、 line 、 ci 「 cle 、 paint 、 tile 、 get 、 DLJt 、 kanJic 、 POint 、八一ドコピー等 ・拡張グラフィック関数拡張線分描画、拡張連続線描画、拡張円描画、グラフィック画面への文字表 示関数を備えています。これらの関数はすべて日 EPLACE / CLEA 日 / 0 日 / XO 日の 4 つの描画モ ードのいすれかを選択指定することができます。レーマルモードのみ ) fline 、 flines 、 fci 「 cle 、 g—cha 「 ・マウス関数 m 」 nit 、 m—diSD 、 m—e 「 ase 、 m—DOS 、 m—set 、 m 」 ft—on 、 rn 」 ft—Off 、 m—「 it— on 、 m—「 it—off 、 m—cu 「 SO 「、 m—steo 、 m—mickey 、 m—hO 「、 m—ve 「、 m—「 ange 、 m—COlO 「 ◆ EX は八イレゾリューションモード / ノーマルモードのどちらでも使用できます。 ARS -232C ライプラリ 定価 \ 49 ′ 800 'RS -232C ライプラリ / EX 定価 \ 98 ′ 000 MS - C から呼び出すことができる日 S -232C コミュニケーションライプラリバッケージです。 「日 S -232C ライプラリ」は主に OS を呼び出して、日 S -232C のコントロール、送受信を行っていま す。もちろん、 2 、 3 回線もサポートしています。 「日 S -2 C ライプラリ / EX 」では OS 呼び出し版の他に、使用環境に制限がなく本体はテパイスド ライバ化され、インターフェースライプラリを介して呼び出すテパイスドライバ版とマルチサーバ対応 のテパイスドライバが拡張されています。 ◆対象言語・・・・・・ MS - C 4.0 / 5.1 用のみ ◆日 S ー 232C ライプラリ ( \ 49.800 ) は MS - DOS のヴァージョン、型番に制限があります。 OCIisp 定価 \ 98 ′ 000 C ⅱ s ロは Lis ロのもつ強力なシンホリックプロセシング機能を C に付加させるライプラリ。 ca 「、 cd 「をはじめとする基本的な Lis ロの関数、述語、プロバティリスト、シンボリックバターンマッ チング機能、コンテキストセンシテイプテータベース機能、ルールべースプロセシング機能等で構成さ れています。これらの機能により、 C と Lis ロの長所を活かした“ハイプリッド”なプログラム開発が可 能になります。また、ルールべースプロセシンクを行うライプラリも付属しているので、エキスパート システムの構築、自然言語インターフェイス等の開発が容易になります。 ◆ MS ー DOS が走行する機種 / 英文マニュアル / ANS ト C APINNACLE FILE MANAGER 定価 \ 128 ′ 0 PINNACLE FILE MANAGE 日は C 言語から呼び出すことがてき、 80 以上の関数で構成されて いるテータベースマネージメントシステムです。名前によりテープル、コラム、ローをアクセスする方 法を採用することにより、あたかも 2 次元配列、または表をアクセスするように操作できます。インテ クス、テータを含むすべてのファイルは 1 つのファイルにまとめられているので、アクセスの高速化、 バックアップ、メンテナンスに便利てす。また、部分的にキャッシュバッフアを使って高速化を図るな ど実用性にも留意して設計されています。 ◆旧 M ー PC / AT およひ互換機用 / NEC PC ー 9800 シリーズ用 ◆英文マニュアル / MS ー C 5.1 / Tu 「 bO ー C 1.5 以上 . ACodeBase4 定価 \ 98 ′ 000 AWindow & Menu AWindow & Menu/EX 定価 \ 29 ′ 800 定価 \ 49 ′ 800 テキストウインドウ、メニュー関数のライプラリバッケージ。最近のちょっとしたソフトでは大抵ウ インドウ機能を備えています。例えばスクリーンエテイタては画面を分割し 2 つ以上のウインドウを開 いて編集できるとか、データーベース、業務用ソフト等では簡単な説明や操作ガイドをへルプウインド ウを開いて表示したりしています。このような表示を行うためのマルチウインドウ機能とウインドウを 利用したメニュー選択機能を提供します。 ・ 20 個のウインドウをオープンできる、ウインドウのオーバーラップ機能 / 切り替え機能 / 移動機能、 横長タイプ、縦長タイプ、羅列タイプの 3 タイプのメニューウインドウ、テキスト V 日 AM を直接ア クセスしてウインドウ及び文字の表示を行っているのて、非常に高速です。 ・ウインドウへの文字列表示 / ウインドウ内のスクロールはスクロール関数と、文字列表示を伴った上 下スクロール機能があります。 ・カスタマイズ・ウインドウーウインドウのフレームキャラクタ、フレーム色、ウインドウ内の表示色 の設定が可能です。この機能により、好みの色、キャラクタを用いたウインドウを定義できます。 ・テキスト V 日 AM を直接アクセスしてウインドウ及び文字の表示を行っているので、非常に高速です。 ウインドウの切り替えや移動も瞬時に行われます。 ◆ EX は八イレゾリューションモード / ノーマルモードのどちらでも使用できます。 0 Key & DispIay 定価 \ 29 ′ 800 キーボード、ティスプレイ関数のライプラリバッケージ。ソフト開発で欠かせないファンクションキ ー及び ANK 、漢字の入力、 V 日 AM を直接アクセスしての文字表示等 100 を越える関数で構成。 ・ ANK 、漢字、ファンクションキーを同一関数で入力可能、日本語入力 FEP のコントロール、すべて の文字属性を指定領域に設定可能、テキスト V 日 AM の切替え表示 / スクロール / カット / ペ - スト 等が可能、高速 / フレキシプルな画面表示、全画面 / 部分のスクロール、表示文字の取得、カーソル コントロールシステム、ファンクションキー表示のセープ / リストア / 設定 / クリア etc. ( 走行環境 ( 共通 ) ) ◆機種 ... NEC PC ー 9800 シリーズ ( げ、 XA 及び XL 、 XL2 、日 L の八イレゾモードは除く ) BGM/EX 、 G 「 aphic & Mouse/EX 、 Window & Menu/EX は XA 及び XL 、 XL2 、日 L の八イレゾモードにも対応 ◆ MS-DOS Ve 「 2 Ⅲ / 3.1 / 3.3 ◆対象 C コンバイラ Mic 「 osoft-C 4.0 / 5.1 Quick-C 2.0 Lattice-C 3 コ / 4.0 Tu 「 bO-C 2.0 お求め方法 ・お近くのパソコンソフト取扱店または弊社までこ注文ください。 ・こ注文の際に製品名、対象コンバイラ ( ヴァージョン ) 、メティアを指定してください。 CodeBase4 は C 言語から dBASEIII 、 dBASEIIIDlus 、 dBASEIV 、 C ⅱ P ロ e 「のファイル システムをアクセスするためのテータベースライプラリてす。これらのテータベース言語にコンバチプ ルな関数を用意しているので dBASE Ⅲ / ロ旧 s からの移植も簡単にてきます。 dBASEIV と比較して テータアクセスは 5 倍速く、ループではなんと 330 倍も速くなります。また、旧 M ー PC 版では専用ウイ ンドウ / メニュー関数も用意されているので、簡単にウィジュアルインターフェースを備えたプログラ ムの開発かできます。 ◆旧 M ー PC / AT および互換機用 / NEC PC ー 9800 シリーズ用はテータベースライブラリのみ使用可 ◆英文マニュアル / MS ー C 5.l/Tu 「 bO-C 1.5 以上 ■ Ptree & Symtab 定価 \ 69 ′ 800 Pt 「 ee & Symtab はコンノヾイラ、インタブリタ等の内部で使用される構文解析、シンボルテープル 操作に関する関数を提供するモジュールです。コンバイラ、インタブリタの作成、研究に大いに役に立 ちます。また、 IJN Ⅸのマクロプロセッサ m4 のスーバーセット版が付属しています。プログラムはす べての ANS ト C でコンバイルでき機種に依存していないので、 MS-DOS 、 IJN Ⅸ等 OS を選ばすに 動作します。 ◆英文マニュアル / ANS ト C DCCF, / 齢コンソ - ルコントロ - ルライプラリ fo 0 訂 N 定価 \ 79 , 8 MS - FO 日 T 日 AN ては提供されていないファンクションキー及び ANK 、漢字の入力、テキスト V 日 AM への直接文字表示、グラフィック、マウス、 MS - DOS のファンクションコール、 PC -9800 シリ ーズの OS コールインターフェースルーチン等 140 以上のサプルーチン / 関数で構成されています。こ のライプラリを利用することて計算に強いだけでなく、柔軟で優れたヒューマンインターフェースを備 えたアプリケーションを FO 日 T 日 AN で開発することかできます。 ・日本語入力 FEP のコントロール、カーソルコントロール、高速文字表示、指定領域の切取り / 貼り戻 し、表 / 裏画面の切り替え表示、全画面 / 部分スクロール、ファンクションキー表示のセープ / リス トア / 設定 / クリア、グラフィック、マウス、 MS-DOS/BIOS コール機能、その他ノヾイト、ワー ド単位のボート入出力、 PEEK 、 POKE 、シフト』 S / 』 S 双方向変換、テータ転送等。 ◆ MS-FORTRAN 4. X/NEC PC ー 98 シリーズ ( 八イレゾモードを除く ) ※各製品の提供メティアは、 5 ″ 2HD / 5 ″ 2D / 3.5 ″ 2H ロのいすれかです。 ※すべての表示価格には消費税は含まれておりません。 The FORTRAN Library クイック資 * 斗イ寸・サ・一・ピス ・いますぐ、資料をこ希望の方はお電話ください。 FAX で資料をお送りいたします。 株式会社ティッフス ・〒 1 11 東京都台東区蔵前 2 ー 8 ー 10 ・ PHONE 03 ー 866 ー 8635 ・ FAX 03 ー 866 ー 8637

7. 月刊 C MAGAZINE 1990年6月号

ー 25536 と見なされてしまい ます ( TurboC ては int は 16 ビット ) 。 配列の要素数として負の値を指 定することはてきませんから , 工 ラーになるわけてす。なお , 40000 は long 型の正の定数として認識さ れるため正しく動作します。 ある演見結果が int 型て評価され るか■ ong 型て評価されるかを判 断するためには , sizeof 演算子を使 うことがて、きます osizeof は , int 型 に対しては 2 を返し , long 型に対し ては 4 を返します ( List3 ) 。 0 lo 。 g 型の変数に一 si = e 。 f (int) を代入すると 65534 になってしまい ます。なぜ , ー 2 にならないのでし ようか ? TurbOC ては , sizeof は un signed 型の値を返します。ーは 2 の 補数をとって符号を反転させる単 項演算子てすが , unsigned 型は文 字どおり符号のない型てすから , s i z e 0 f ( i n t ) は符号なしの 0 xFFFE = = 65534 という値として 評価されます。たとえば , ( (long ) ー 2u ) は , ー 2L てはなく , 65534L とし て評価されます。 演算が int の範囲て収まっている 0 グ 場合は問題ありませんが ,fseek の オフセット値など , 知らないあい だに long 型に変換されている場合 などは注意が必要てす。 0 bios98equip を使ってシステ ム情報を取得していますが , CPIJ を切り換えるプログラムを使った 後でも , 得られる CAJ の種類が変 わりません。 4 : / * CPU が 8086 / V30 のときは 0 を返し、 80286 / 386 のときは 2 を返すマクロ * / 14 : { A PC-9801VX や RA などて , 本 体をリセットすることなく CPU を V30 と 80286 / 386 とて、切り換えるプ ログラムがあります。 しかし , bios98equip<' は BIOS が使用する内部のワークエリアを 参照していますのて , 本体をリセ ットせずに CPU を切り換えてもワ ークエリアが書き換えられないか ぎり , 正しい CPU を取得すること がてきません。 現在 , 使用されている CPU を認 識するためには , 次のようなマク 口を使うことがてきます (List4) 。 0 BGI の outtextxy 関数を使っ てストロークフォントを表示して いますが , 文字サイズを大きくす ると線と線の隙間が空いてしまい Turbo C て表示てきるフォント は , すべて直線が基本てすから , あまり大きな文字を表示するとア ラが見えてしまいます。このとき は , 1 ドットずらして同じ文字を表 示することて , 隙間を目立たなく することがてきます ( List5 ) 。 0 2 : 5 : 6 : 3 : 6 : 7 : 8 : 9 : 12 : sizeof の使用例 List 3 printf()s izeof ( 40000 ) = % d \ 心 . s izeof ( 4000 の ) : 3 : nain() 1 : #include く stdio. h> printf()s izeof ( 400 * 100 ) = XdYn". sizeof ( 400 * 10 の ) : / 現在使用されている CPU を認識するプログラム 1 : #includéく stdiO. h> 2 : #include く dos. h 〉 5 : #define cputype() \ (--enit--(0x54), --enit-- ( 0X58 ) , -enit-- ( 0X29. 0xe の , -emit-- ( 0X4 の , -enit-- ( 0X4 の , -AX) 13 : nain() / * push sp * / \ / * POP ax * / \ / * sub ax. sp * / \ / * inc ax * / \ / * inc ax * / \ printf("CPU is % s \ 心 . cputype() ? -80286 / 386- ” 8086 / V30 つ : List 5 ou れ ex ⅸ y の使用例 2 : 3 : 6 : 7 : 9 : 14 : 15 : 16 : 18 : 20 : 1 : #include く graphics. h> #include く coniO. h> 4 : void outtextxy2(int x, int y, char *Str) outtextxy (), y. str) : outtextxy ( x + 1. y. str) : 10 : nain() i nt gd = DET ECT, gn: initgraph (&gd, &gn, settextjustify(CENTER_TEXT, CENTER-TEXT) : settextstyle(TRIP し EX-FONT, HOR 一田 R. 6 ) : setc010r()E しし (W) : outtextxy2(320, 200 , "BOR し AND JÅPAN つ : getch() : closegraph() : ック画面に描かれて (List6) 。 開始 / 停止することがてきます けば , グラフィック画面の表示を 次のような関数を用意してお A でしようか ? したいのですが , どうすればよい にグラフィック画面の表示を停止 いる内容を保存したまま , 一時的 グラフィック画面の表示を開始 / 停止する関数 List 6 lnformation 作 om Compiler Makers gen interrupt ()x 18 ) : AH = 0X41 : 11 : graphoff(void) 10 : ″グラフィックス表示停止り gen i nterr upt ()x 18 ) : AH 0X40 : 4 : graphon ()O i d) 3 : ″グラフィックス表示開始り 1 : #include く dos. h> 9 : 7 : 6 : 2 : 151

8. 月刊 C MAGAZINE 1990年6月号

dbmg. c の msg 関数と err-msg 関数 List 2 List 1 144 : / * 147 : { / * キーコード復旧 * / 13 : / * 22 : } 1 ・型番 129 : 130 : 181 : 132 : 133 : 134 : 135 : 136 : 137 : 138 : 139 : 140 : 141 : 142 : } 143 : 145 : 146 : 148 : 149 : 150 : 151 : 152 : } / * 削除レコードの圧縮 * / case 5 : pack-rec ( ) : mngwrt ( ) : break : case 6 : break; dsp-mng ( ) : while(workno ! = 99 ) : return : key-asgn(l) : t i t 厄 title(void) VOid color(REV, Y 亂し OW ) : put-str(), 0 coIor(0RG, WHITE) : return : / * 管理ファイル更新 * / / * 管理テープルの表示 * / 簡易データベース Ver. 1.20 (C) Copyright Y. Takahashi. ” , 8 の : ・ 1 : 3 : 4 : 6 : 7 : 8 : 9 : 12 : 14 : 15 : 20 : msg msg(int y, char *buf, int count) VO i d clearl (y) : c010r(0RG, SKY) : put-str(), y, buf, count); color(0RG,WHITE); return; err_msg err_msg(int y,char *buf, int count) VOid clearl(y) : color (REV, YE しし (W) : put-str ( 0 , y. buf, count) : coIor(0RG, WHITE) : return; Fig. 2 1 レコード追加 簡易テータベース Ve 「 . 1 .20 (C) Copyright Y. Takahashi. Fig. 1 dbmg のメニュー 簡易テータベース Ver. 1 .20 (C) Copyright Y. Takahashi. 6 . DB 管理テープルの表示 5 : 削除レコードの圧縮 4 ・削除レコードの復活 3 : レコード削除 2 : 1 レコード追加 1 : 1 レコード表示 簡易データベース Ver. 1 .20 (C) Copuri ht Y.Takahashi. Fig. 3 テータベース管理テープルの表示 処理 No. = 処理番号を指定してください。 99 : 終了 型番 名称 メティアサイズ 容量 PC -9801-FD4 ファイル名 =SAMPLE SDF No. フィールド名 レコード数 = 1 5 レコード長 = 79 フィールド数 = 4 削除マークオフセット = 0 2 3 4 名称 メティアサイズ 容量 フィールド長 48 6 ファイルポインタ = 1107 12 桁まで 112 CMAGAZINE 19 6

9. 月刊 C MAGAZINE 1990年6月号

五ロ く最終回〉 カード型簡易データベの設計 高橋良明 てみます。今後も実用的テータベース形成 今回は簡易テータベース作成編の最終回と のために必要なモジュールを作成していき して , 今まで作成したモジュールを組み合 わせた簡単なカード型テータベースを作っ ますので , いすれ発表したいと思います。 dbmg. c の main 関数 1 : 簡易データベース 管理用プログラム DBMG. C ver 1.00 1990 ー 01 月号 ver 1.10 1990 ー 02 月号 ver 1.20 1990 ー 06 月号 10 : / * 12 : 13 : #include く iO. h 〉 14 : #include く dos. h 〉 15 : #include く fcntl. h> 16 : #include く stdio. h> 17 : #include く string. h> 18 : #include く stdlib. h> 19 : #include く sys%types. h 〉 20 : #include く sysYstat. h> 22 : #define ORG 23 : #define REV 24 : #define UNDER 25 : #define B い NK 26 : 27 : #define RED 28 : #define BLUE 29 : #define PURPLE ” 19 ” 30 : #define GREEN ” 20 ” ” 21 ” 31 : #define YE し LOW ” 22 ” 32 : #define SKY 33 : #define WHITE ” 23 ” 34 : 35 : struct MNGTBL{ fname[l 幻 : / * ファイル名 * / 36 : Char / * レコード数 * / 37 : long int reccnt; / * レコード長 * / 38 : int recln; / * フィールド数 * / 39 : int fldcnt; flntbl[20] : / * フィールド長 * / 40 : int / * 削除マークオフセット 1990-02 * / delnark; int fldnam [ 20 ] [ 20 ] : / * 項目名 1990 ー 02 * / 42 : Char 43 : } : 44 : MNGTB し nng; 45 : struct 46 : fnane[20]={"a:db. nng"} : 47 : Char tnp-fnane[20] ={"a: dbtnp ・ $ $ $ \ 0 つ : 48 : Char dta[128] ; 49 : Char buf [ 1024 ] : 50 : char List 1 はしめに 今回は , 簡易データベースの作成のまと めということて、 , いままて作成してきたプ ログラムをまとめてリンクします。この修 正て、 , DBMG. C はカード型簡易データベー スになります。 リンクするために , 1 月号 , 2 月号て、作成 した簡易データベース管理プログラム DBMG. C のキーポード入力と画面表示部分 を修正します。 なお , crtsub. c に DBMG 用に任意の場所 に変数を表示する関数 ( pu し st 「 f ) を新設しま 、 0 DBMG. C の修正 printf 関数を put str または , put strf 関数 に変史します。 p 「 intf に変数を引き渡している場合には put st 「 f 関数を使用し , それ以外は put st 「関数 を使用します。 画面表示は , 表示開始位置を X 座標 ( 0 ~ 79 ) と Y 座標 ( 0 ~ 24 ) て指定します。画面 設計を行うのて、 p 「 intf を使用するよりも手間 がかかりますが , きめの細かい表示がてき 110 CMAGAZINE 19 6 ア フ ッ * 名ア出 名ルリ入 ルイエス ィアク一 アフ一べ フクワタ 管ワ闘デ

10. 月刊 C MAGAZINE 1990年6月号

も。と、をしまし = う〃 These Are 簡単シリース・※開発ェ数削減と標準化のために キー入力が簡単 キー入力関数・テキスト画面制御関数・カーソル制御関数を提供します。 キー入力関数は、指定された位置で指定された桁の入力を受けつけ、入力テータ を指定されたエリアに格納します。入力テータタイプもチェックし、漢字入力し たいところではフロントエンドプロセッサを立ち上けます。カーソルは、現在入 カ中の位置に表示します。テータ表示色・アトリビュートも、 PF キーガイドラ インの表示 / 非表示も設定自由、 PF キーガイドラインには任意の文字列を任意 VE 日 . 2.0 ¥ 28 , 000 VE 日 . 2.0 ¥ 18.000 ED 字が簡単 データ出力関数・ビットイメージ出力関数・プリンタステータスチェック関数 を提供します。文字列テータはもちろん、罫線テータも同時に出力できます。 文字列も罫線も、画面のように桁・行で印字位置を決めるので桁合わせは不要。 文字列は、拡大、下線・網掛け等の特殊効果を同時に指定可。罫線は実線 / 破線 それそれに太 / 細の計 4 種類をサポート、ビットイメージを出力して引く罫線よ りも高速に印字します ( 社内テスト結果 : ビットイメージ出力で 10 分かかった表 の色で表示できます。ロールアップ / タウン・ BS ・ HE LP ・ HOME e 十 c の特殊キーも全て取得 OK 。 リアルタイム・クロック表示関数や、ダイレクト・キー スキャン関数、 V 一日 AM のリード / ライト関数等も用 意しています。 各種のウインドウ制御関数と、 N88BA 日 C を基本に したグラフィック関数を提供します。最大 20 個のオーバ ーラップ・ウインドウをオープンできます。 テキストモードとグラフィックモード双方向をサポート、 ウインドウ内でのキー入力関数・テキスト画面制御関数・ ①テータテーフリレを セットして、 だ 2 関数を け コー ) レする が、 6 分で出力完了に〃 ) 。また、文字と罫線を同じ桁・ 同じ行に出九できるので、ムダのない帳票を設計できま す。もう、プリンタのマニュアルとにらめっこしなから 作る、制御コード出力処理だらけの読みにくいプログラ ムとはオサラバです。 グラフ描画関数と、 N88 BAS 旧を基本にしたグラフ ィック関数を提供します。描画できるグラフは、棒グラ フ ( 縦・横 ) 、折れ線グラフ ( 縦・横 ) 、円グラフの計 5 種、 棒グラフと折れ線グラフは重ね合わせも可能。色やライ ンバターンの設定は自由です。 カーソル制御関数もそろっています。文字列表示関数は、ウインドウ・サイズに 合わせた自動改行機能を持っているので、プログラミングの手間もぐっと省けま す。通常のウインドウに加えてメニュー選択処理のためのメニューウインドウや、 Y / N のキー入力を受けて返せるメッセージウインドウもサポート。 ユーサー・インターフェイスの優等生・ウインドウ処理を、メモリ操作なしのお 手軽プログラミングで実現できます。 ¥ 28 , 000 VER. 1 . 0 描画のためのテータテープルをセットして関数をコールすれば、グラフ本体はも ちろん、タイトル・グリッド・単位・凡例まで、全て関数内で計算・描画するの で、メインプログラム側での計算処理は何一つ必要ありません。 「簡単シリーズ」は全て併用可能ですから、「ウインドウか簡単」と「グラフ か簡単」を併用すると、グラフか出るウインドウを画面上にオープンする、なん てことも、あっとオドロク簡単さでできてしまいます。 ¥ 14 , 000 VER. 1 . 0 工テイタ VER. 1 . 0 ¥ 22 , 000 「簡単シリーズ」のテータテープルを編集するための、専用工デイタです。 画面上で、マウス ( なくてもかまいません ) やキーホードを使って、実行画面や 帳票のイメージをワープロ感覚で入力すると、そのまま使えるソースコードか出 力されます。これ 1 本で「キー入力 ( V2.0 ) 」「印字 ( V2.0 ) 」「ウインドウ「 V 1 .0 ) 」「グラフ ( VI .0 ) 」をサポートしています。 データ編集中に、擬似テータを使って表示したり印字したりできるので、テスト ランの必要もなく、簡単シリーズを更に簡単にお使いいただけます。 ファイ J レ・エテイタ VER. 1.0 ー \ 18 , 0 それ無くしては何も語れないテータ・ファイル。たぶんどなたもファイ ルレイアウトを書き、構造体や共用体を使ってテータ定義をなさっている ことでしよう。このエテイタは、画面を見なからワープロ感覚でテータ定 義をして、ファイルレイアウトとテータ定義のソースコードをいっぺんに 作ってしまおうという、横着な発想のエテイタです。 ファイルレイアウトは罫線入りの見やすい帳票 ( 136 桁 ) で出力しま す。ソースコードはもちろん C の書式で、インテントのついた見やすい ファイルにします。ソースにコメントを入れた後からのローディングや 修正も OK です。 設計段階の工数をはぶき、設計資料を標準化するファイル・エテイタ。 お役に立てることを確信しています。 ※記載されている内容は、将来予告なしに 変更することがあります。 ※ MS-DOS 、 Microsoft-C は、米国 M ⅸ cmft 社の登箋標です。 ※ Latt - C は、米国い tt 社の登録商標です。 ※ T げ面 - C は、米国ね面 lnternat 社の登箋菇標です。 struct { Char Char Char struct { Char Char Char Char ID [ 2 ] ; ITEM [ 6 ] ; KAN 同 ; SBET ; KRAK : KNO [ 10 ] ; KTAN [ 6 ] ; } WH [ 2 ] ; イントウ 2 ※全商品プロテクトなし、サンプル付きで魂 ( 御希望のメティアを指定して下さい。 ) メティア : 5 ″ 2HD / 3.5 ″ 2HD 指定して下さい。 ) ( 簡単シリーズは、御使用のコンバイラを /Tu 「 bo-C コンバイラ : Mic 「 osoft-C/Lattice-C タは 201 系のみ ) PC - P 日 201 系 ( 但し、ファイル・エティ プリンタ : NEC PC - P 日 101 系 (F ・ PMS - DOS に添付のもの ) 0 S : MS-DOS V3.1 / 3.3 日 L ハイレゾ / LT を除く ) 本体 : PC-9801(XA/XL/XL2/ ■システム構成 ( 共通 ) ※お問合せはお近くのマイコン・ショップか、私どもへどうぞ 〒 790 愛媛県松山市北藤原町 1 ー 26 TEL : ( 0899 ) 31 ー 2 6 FAX : ( 0899 ) 41 ー 0336 株式 会社