ack 日 OM 化プロクラミング考察 魯 インタビュー : トーマス・プラム ( Ⅱ ) を 特別付録 ] 5 " 2H ロティスク Tu 「 bO C 用ライプラリ集 / 低レベルソフトウェア 研究所作品集 / ビジネステータ & 検索プログラム 「 SECH 」 / 掲載ソースプログラム 1 1 月号 0 MACMINÉ ・バックナンヾーのこ案内 umber C MAGAZINE のノヾックナン / ヾーは以下の通りで す。現在、 1990 年 9 月号以降の在庫がございます。 ご希望の方は、お近くの書店にお早めにお申込みく ださい 何らかの都合により、書店でお求めになれない場 合は、直接弊社に現金書留でご注文ください。その 場合、定価 980 円のほかに、送料が必要となります。 送り先 : 〒 108 東京都港区高輪 2 ー 19 ー 13 NS 高輪ピル ソフトバンク株式会社出版事業部 「 C MAGAZ E 」バックナンバー係 1989 年 10 月 ( 創刊号 ) ~ 1 990 年 6 月号まで「品切」 MS-C Ve 「 .6.0 研究 MS-C Ve 「 .6.0 概要 / 主要機能ガイド [ 特別付録 ] 5 " 2HD ティスク 都道府県対応住所録 / 郵便番号・市街局番テータ / C MAGA 刀 NE 総目次 / 掲載ソースプログラム 最新 GNIJ 入門 インタビュー : スティーブ・ジョンソン ( I ) [ 特別付録 ] 5 " 2HD ティスク GNIJ ダイジェスト / 多機能リモートシェル / 丁 S 日 によるマンテルプロ / 掲載全ソースコード 12 月号 当叩研究 7 月号 圧縮アルゴリズム入門 インタビュー : フィリップ・カーン 高圧縮書庫管理プログラム新 L H べータ版 / 簡易テ ータベース作成ツール / ビテオ予約対応・ノヾーコー ドプリントアウトプログラム / 掲載ソースプログラム 1 月号 DOS 工クステンダと C プログラミング インタビュー : スティープ・ジョンソン ( II ) [ 特別付録 ] 5 " 2HD ティスク オリジナル DOS 工クステンダ / サンプル版総合コ ンソールライプラリ / ク、ラフィックエテイタ他 [ 特別付録 ] 5 " 2HD ティスク 8 月号 米国コンパイラ事情 ◆ プロローグ /ANSI C 準拠度チェック / 最適化チェ ック / ライプラリチェック / MS ー C6.0 をみる 2 月号 C 十十レポート インタビュー : リチャード・ストールマン [ 特別付録 ] 5 " 2HD ディスク 画面設計ツール「 B ー FO 日 P 」 / 「 GNCJ 奮闘記」掲載 プログラム / 市松オセロ / 掲載ソースプログラム [ 特別付録 ] ( 川月号に併せて収録 ) 4 9 月号 響・ C 十十とオプジェクト指向 インタビュー : トーマス・プラム ( I ) [ 特別付録 ] 5 " 2HD ティスク ー。曰 n 試食版 / LSI Cー86 試食版 /Quick C ユー ・ - ー ~ ティリティ/KM-yacc@Cm コンバイラ /XC 用 ー IJN Ⅸ互換ライプラリ / GNIJ ダイジェスト他 10 月号 汎用 FEP 制御ライプラリ構築 MS-DOS 上の FEP の現状と構造 /FEP 制御の 基礎知識 / ライフラリの作成 特別付録 ] 5 " 2HD ティスク 汎用 FEP 制御ライプラリ / だいもじ & G 日ライプラ / 秘伝 C 言語問答掲載リスト他 3 月号
C のベストバナ - ・ソースコード付属 / 組み込みロイヤルティ無料・ すわ e C ′ a es CCF / 総合コンソールコントロールライプラリ価格 \ 59 ′ 800 CCF/EX 価格 \ 98 ′ 0 ◆ CCCF/EXJC は XL 、 XL2 、日 L の八イ キーホード、テキスト画面、クラフィック、マウス、ウインドウ、メニュー、プリンタ、拡張 レゾリューション / ノーマルの両モードに対 関数等 200 以上の関数で構成される総合コンソールコントロールライプラリです。 CG 「 aphic 応し、一部の関数を除いて、どちらのモード & Mousen CWindow & Men1-JJ 、 tKey & Dis ay 」とプリンタ関数、拡張関数て構 でも動作するプログラムを開発することがで 成されています。 きます。 E'G 「 aphic & MouseJs tWindOW & MenLJJ 、 CKey & DisplayJ については各製 プリンタ関数 ( 抜粋 ) 品の説明をこ覧ください。・プリンタ関数は OS を介してプリンタに文字コード、制御コ 文字出力 / プリンタステータスの取得 / プリ ード送り、各種アルファベットの文字印字、拡大、キャラクタモードの切り替え、フォームフ ンタの初期化 / C 日、 LF 出力 / 漢字文字出力 ィード、プリンタ状態の設定 / 検査、印字方向の切り替え、サプスクリプト / スーバースクリ / ANK 文字列出力 / 漢字、 ANK 文字列印字 プト文字の印字、縦印字、強調、アンダーライン、ドラフトモードの切り替え、左右マージン / 漢字、 ANK 文字列印字 ( ANK ー > 半角変 の設定、改行幅 / 方向の切り替え、ソフトウェアリセット等の処理を行うことかてきます。対 換 / 漢字 / ANK 文字列縦印字 ( ANK ー > 半 応プリンタは PC - P 日系です。■拡張関数は MS ー DOS ファンクションコールを用いたキー 角変換 ) / プリンタのリセット / SELECT 、 DESELECT の切り替え / ドラフトモードの 入力関数、文字列処理関数、 y ( es ) / n ( 0 ) の入力を促し、 Shift 、カナシフト、全角、半角 設定、解除 / 片方向、両方向の切り替え / レ 6 インチ改行設定 / レ 8 インチ改行設定 / n 回改行 のいすれの状態でも y / n を判断する関数等かあります。 / 漢字モード設定 / 解除他 0 t. を Window & Menu Window & Menu/EX ームキャラクタ、フレーム色、ウインドウ内 テキストウインドウ、メニュー関数のライプラリバッケージ。最近のちょっとしたソフトでは の表示色の設定が可能てす。この機能により、 大抵ウインドウ機能を備えています。例えばスクリーンエテイタでは画面を分割し 2 つ以上の 好みの色、キャラクタを用いたウインドウを ウインドウを開いて編集てきるとか、テータベース、業務用ソフト等では簡単な説明や操作ガ 定義可能・横長タイプ、縦長タイプ、羅列 イドをへルプウインドウを開いて表示したりしています。このような表示を行うためのマルチ タイプの 3 タイフのメニューウインドウによ ウインドウ機能とウインドウを利用したメニュー選択機能を提供します。 り、用途に応じたメニュー表示が可能ーサ CWindOW & Menu/EXJ は XL 、 XL2 、日 L の八イレゾリューション / ノーマルの両モー ンプルプログラムメニューウインドウにフ ドに対応し、互換モード ( 自動判別 ) によりどちらのモードでも動作するプログラムを開発する アイル一覧を表示し、選択されたファイル内 ことができます。また、八イレゾリューションモード時には 31 行 / 25 行モードを選択すること 容を上下左右スクロール機能を持った文字列 ができます。 表示関数により、スクロール表示をおこなう ■ウインドウ / メニューウインドウあわせて 20 個まてのウインドウがオープンできる ( 増減可 サンプルプログラムか付属。 能 ) ・オーバーラップ / 切り替え機能オーバーラップにより隠れたウインドウを一番上に表 次の関数の他、 rKey & DisDlay2 の * 印が付いている関数も加わります。 示・移動機能ウインドウを指定された座標へ移動■文字列表示行を指定する関数と、 関数 ( 抜粋 ) 上下スクロールを伴った文字列表示機能がある・スクロールスクロール関数と、文字列表 ウインドウの初期化、終了処理、オープン、クローズ / すべてのウインドウをクローズする 示を伴った上下スクロール機能がある■ V 日 AM をアクセスしてウインドゥ操作を行っている 表示対象となっているウインドウをクローズする / 表示対象ウインドウを別のウインドウに切 ので高速。ウインドウの切り替えもほほ瞬時・ウインドウを開き、 y(es) 、 n ( 0 ) の入力を 替える / ウインドウの移動 / ウインドウ内をプランク文字て消去 / ウインドウ内に文字を表示 促す関数と上下左右スクロール機能を持った文字列表示関数によるテキストファイル等のスク / 上へスクロールし、文字列を表示 / 下へスクロールし、文字列を表示 / ウインドウを上、下 ロール表示か可能な拡張ウインドウ機能・カスタマイズド・ウインドウウインドウのフレ にスクロール / ウインドウのフレームタイプを登録 / 文字列を指定行表他 価格 \ 29 ′ 800 価格 \ 49 ′ 800 Graphic & Mouse 価格 \ 29 ′ 800 Graphic & Mouse/EX 価格 \ 59 ′ 800 ◆ fG 「 aphic & Mouse/EXJC は XL 、 N88 日 A 日 C 相当のグラフィック機能とマウス機能を提供するライフラリバッケージてす。 XL2 、日 L のハイレゾリューション / ノーマ グラフィック機能はグラフィック画面に点、線、四方形、円、文字等を描画する機能、指定領 ルの両モードに対応しており、どちらのモー 域を切り出す / 貼り戻す等の機能と表示モードの設定を行う制御機能で構成されています。 ドでも動作する互換モード ( 自動判別 ) もあり マウス関数にはマウスカーソルの表示 / 非表示、色指定、ホタンの押下状態の検査、移動範囲 ます。 の指定、移動距離の検査等の関数があります。 関数 ( 抜粋 ) ・ N88BA C 相当のグラフィック関数を提供・高速グラフィック関数高速線分描画、高 画面のモード設定 / 表示範囲の設定 / 画面色 速連続線分描画、高速円描画、グラフィック画面への文字表示関数を備えています。 ( ノーマル の設定 / バレットの設定 / グラフィック、テ モードのみ ) これらの関数はすべて日 EPLACE / CLEA 日 / 0 日 / XO 日の 4 つの描画モ キスト画面消去 / ドットセット、リセット / ードのいすれかを選択指定することができます。 (fline, flines. fci 「 cle. g—cha 「 ) ーマ 直線、円、円弧の描画 / ペイント / タイルバ ウス関数 ターンによる塗りつぶし他 2X0 im) RS ー 232C ライプラリ 価格 \ 49 ′ 800 RS ー 232C ライプラリ /EX 価格 \ 98 ′ 000 間関係関数、および簡易ターミナルエミュレータ、 XMODEM 送受信プログラム等がサンプ 本製品は C 言語から日 S -232C インターフェースを介して、各種周辺装置、コンピュータ等と ルプログラムとして提供されています。製品にはデバイスドライバを含むすべてのソースコー コミュニケーションをとるためのライプラリです。 ドが含まれています。 バッケージには B ー OS を呼び出して行っている「日 S -232C ライプラリムこれに 9861K 用とマ ・用途 / 回線数によって使い分けのできる 3 種類のライプラリ (EX) を装備。■マルチサー ルチサーバ用テパイスドライ八版を追加拡張した「日 S -232C ライプラリ / EX 」の 2 種類があり、 バホードを装着することにより 9 回線まてサポート可能 (EX) ■「日 S ー 232C ライプラリ」て 呼び出し方法は共通になっています。 は " Ve 「 . 3.1 以上かっ型番が PS98-127 ー ? ? ? 以降の MS - DOS てなければならない " という 「日 S ー 232C ライプラリ」は主に B 旧 S を呼び出して、日 S -232C のコントロール、送受信を行 制限かあります。 ・ MS - C のみ対応。 っています。もちろん、 2 、 3 回線もサポートしています。 関数 ( 抜粋 ) 「日 S ー 232C ライプラリ / EXJ では日旧 S 呼び出し版の他に、使用環境に制限かなく本体はデ ■共通回線の選択、初期化 / 受信バッフア内テータ長の検出 / 受信バッフア内のテータを得 バイスドライバ化され、インターフェースライプラリを介して呼び出すテパイスドライバ版と る / 1 文字出力 / 8251 にコマントを送る / 8251 ステータスを得る / 送信レディ状態の検査 / キ マルチサーバ対応のデバイスドライバが拡張されています。また、各ライプラリ特有の関数 ( ー ャリアティテクトの検出 / 日 S -232C インターフェースのリセット / 文字列入力 / 文字列出力 部 ) を除いて上位関数の入口名、引数は共通なので、リンクするライプラリファイルを変更す / 1 文字受信 / 1 文字送信 / 漢字処理を伴うテータ送信 / モテムの初期化、接続、自動発信 るだけで切り替えることかてきます。この他、オートダイアル / モテムコントロール関数、時 ・ EX 専用プロック受信 / プロック送信 / 八ンドルのクローズ
コレエス・アイ・ジャ / レ lnformation from C0mpiler Makers Q&A Q LSI C ー 86 で次のような演算を 実行すると , x の値がなぜ 999 でなく 998 になるのでしようか ? LSI C- 80 でも同様な結果になるのですが。 int double a : 対策としては , たとえば整数に 変換する際に四捨 li. 人する方法が 号えられます。これは , 次のよう に整数に変換する直前に 0.5 を足す ことにより実現て、きます。 double a : a 0 .999 ; 1000 ) 十 0 . 5 a X A 0 . 999 : a * 田 00 これは浮動小数点数の内部表 現に起囚する間題て、す。 LSI C- 86 , LSI C ー 80 やそのほか多くのコ ンパイラて、は , 2 進法て、数値を表現 しています。 浮動小数点数て、も同様て、 , たと えば 0.5 という数は 2 進法て、は 0.1 と 表されます。ところが , 0.999 は 10 進法て、は有限桁て、表記て、きますが , 2 進法て、は 0 .111111111011111001110110 110010001011010000111 ・・・ と , 循環小数になってしまいます ( 1 / 3 が 10 進法て、は 0.33333 ・・・ なるのと同じて、す ) 。 浮動小数点数のビット数は有限 なのて、 , このような場合 , ドのほ うの桁は切り捨てられることにな ります。そのため , この数を 1 , 000 倍しても正確な 999 にはならず , 998.99999 ・・・・・という数になってし まいます。 そして , C て、は浮動小数点数を整 数に変換するとき , 切り捨てを行 う約東になっているのて、 , l•. 記の 数は 998 になってしまうのて、す。 152 C MAGAZINE 1991 4 LSI C ー 80 でアセンプラとして PROASM ー収岩崎技研工業と京都 マイクロコンピュータの共同開発 ) を使用したいのですが , どうすれ ばよいのでしようか ? A LSI Cー80 て、 PROASM-II を使 Ⅲする場合は , 次の 2 つの方法があ ります。 Q ・ライプラリを PROASM-IIJIJ りなおす。 ツール ) を PROASM-IIJIJ に作 ・ 1CC80 , libr80( ライプラリ作成 がかかります。 が必要になりますのて、多少時間 Ⅲします。この場合は次の準備 2 PROASM-II のリンカ LNK を使 にコン / ヾ ートしてリンクします。 ファイルを SOF 形式のファイル ルした後 , re12sof て、 REL 形式の ースを PROASM-II て、アセンプ ます。この場合はアセンプラソ 1 LSIC-80 のリンカ knil を使用し に作りなおす。 以 l•. , 2 つの場合のコンパイル方 make を使Ⅲする場合を説明しまし 使用すると簡甲 . にて、きますのて、 , 法を説明します。どちらも make を makedef というファイルは make を起動する際に必要になるファイ ルて、す。 LSIC ー 80 パッケージに入 っています。 て、なく . mac にします。ただし , ア るソースファイルの拡張丘は . asm めに , PROASM-II て、アセンプルす て、 SOF 形式ファイルに変換するた て、アセンプルされたものを re12sof make て、自動的に PROASM-II イスク参照 ) のように変更します。 まず , makedef を List 1 ( 付録デ 1 LSI C ー 80 のリンカを使用する場 とします。 センプラはザイログニーモニック す。 H に配置してリンクするものとしま します。 ROM を 0 番地 RAM を 8000 test. c が C 言語のソースファイルと て、アセンプルするソースファイル , す。 testasm. mac を PROASM- II クの makefile の例を次に示しま ROM 化の場合のコンパイルリン LSI C ー 86 て次のようにコンパ るオプションを指定します。 define PROASM" を挿入す コンパイルのときに、、 # 作成します。 ンパイラドライバ lcc80r. exe を パイルし , PROASM-II 用のコ 1CC80. c を LSI C ー 86 て、再コン 1 LSI C ー 80 パッケージ中の 次の丁・順て、環境を準備します。 2 PROASM-II のリンカを使用する $@ $ # -fa:*c*romlib } knil @$ { $(LFLAGS) test. sof test. hex : testasm. sof #DATA=8000 LFLAGS = ー旧 #CODE=O LSI C 80 LSI C 86 イルします。 lcc -dPROASM ー 0 に c80r. exelcc80. c 2 同様に libr80. c を LSI C ー 86 て、 再コンパイルし , PROASM- Ⅱ用のライプラリ作成ツール libr80r. exe を作成します。 次のようにコンパイルしま す。 lcc -dPROASM ー 0 libr80r. exe libr80 . c 3 PROASM-II 用のライプラリ を作成します。 PROASM-IIJIJ ライプラリ 作成の makefile を List 2 ( 付 録ディスク参照 ) のように作成 します。 LSIC ー 80 パッケージ中 のライプラリ作成の makefile を参考・にして作成してくださ makefile がて、きたら LSI C ー 80 パッケージからライプラリ . asm て、なく . mac にします。 ソースファイルの拡張子は ックて、書いたアセンプラの 別するためにザイログニーモ ンプラのソースファイルと区 ンパイラから出力されるアセ パイルて、きます。この場合コ 以 E の準備がて、きたら , コン リにいれて環境を整えます。 rel をライプラリのディレクト ライプラリ clib. rel や romlib. うに変史します。 List3 ( 付録ディスク参照 ) のよ 4 PROASM-II 用に makedef を して make します。 のソースファイルををコヒ。ー 5
EASY FLOPPY ・技術問い合わせ先 日新システムリンク株式会社 T E L ( 03 ) 3842 ー 7401 , 謝はミ ~ システム開発グループ石井迄 待ち望まれていたディスク管理ライプラリが ついに誕生 ! ! 次世代の究極ライプラリを システムリンクが提供します。 以上 S 平謎の未満 関数例 ・ D isk-MediaChe ck ドライプ媒体取得します ・ Disk-DevicCheck ドライプデバイスステータスの取得 ・ Disk-Capacity ドライプ容量の取得 ・ Disk-FormatTrack トラックフォーマット ・ Disk-FormatDisk ディスクフォーマット ・ Disk-WriteTrack トラックデータライト ・ D isk-ReadTrack トラックデータリード ・ Disk-ReadID トラックリード ID プロテクトデータ書き込み ・ Disk-ProtectWrite プロテクトデータチェック ・ Disk-ProtectCheck その他 DISK LIO,BIOS 関連関数多数 今まで面倒だった FD の制御が簡単になります。 工ンドユーザー様からの要求にこたえる事が出来ます。 もちろん NEC FC -9800 シリーズにも対応。 1 行で FD の FORMAT ができ、 しかも MS-DOS のドライプ指定のみで OK ! ! ( 2HD 専用 ) その他、記憶媒体に関する便利な関数 がいろいろ組み込まれています。 《マニア 定価¥ 29 , 800 5 " 2HD / 3.5 ” 2HD EASY HARD とは EASY FLOPPY の ハードディスク版 ! ! ハードディス クのフォーマット / リード / ライトや ハードディスクのプロテクトなど非常に 便利な関数が組み込まれています。 r. 1.0 EASY HARD 開発中 近日発売予定 動作環境 MS-CVer5.1/6.0 ( 別ライプラリ ) ラージモデル専用 MS-DOS Ver3.3 X 推奨 (MS-DOS ver3.1 以上 ) PC -9801VX / FC -9801X 以降の機種推奨 ( PC -9801E / FC -9801 以上 ) ( その他言語、モデル、機種を間わす ライプラリ / アプリケーション開発いたします。 ) システムリンクでは、 コンピュータを中心とした FA - LA システムのエキスパート集団 があなたの職場のシステム化を サポートします。 お求めの際は当社に直接御連絡下さい。 資料請求もお気軽にどうぞ ! ! ※ MC-C, MS - DOS は米国マイクロソフト社の登録商標です。 当社では、本ライプラリを簡単に体験し ていただくために、無料にてデモンスト レーションフロッピーを配布しています。 T E L ( 03 ) 3842 ー 7401 デモソフト係 その他発売予定 EASY シリーズ EASY PROTECT EAS Y PRI NTER EAS Y S CREEN EASY RS-232C フロッピーベースのプロテクトを作成します もちろんハードディスクにも ! ! ( 強力 ) プリンターの便利な関数や異常動作チェック などが出来ます グラフィック BIOS/LIO もちろん GDC/ECG も ! ! その他便利な関数がいろいろ入ってます FA/LA/OA で鍛えられた究極の 通信ライプラリです その他いろいろ開発中です ! ! 〒 111 東京都台東区松が谷 3 ー 21 ー 9 日新ピル 5 F TEL ( 03 ) 3842 ー 7401 FAX ( 03 ) 3842 ー 3750 日新シス弘リンク株式会社 く資料請求番号 185 〉
〔 SD l•ObJectv い 1 いいい、ー、、 . い t•い 1 リロ C いーい一 ソ刀、発の流れを変る・・・ト 0 房 ect 。 アプリケーション・ソフトは、「 UI( ューサーインターフェース ) 」「 DB 」「固有ロシック」から構成されます通常その中て、 U に DB か 5 ~ 8 割のホリュームを占めますゆえに、 U に DB か対話型てスヒーティに作成てき、かっその再利用かてきるな らば、ソフト開発の生産性は飛躍的に向上します インテリジェント・アプリケーション・シエネレーター - ト Ob 」 ect は、これを実現するまったく新しいスタイルの開発ツールてす インテリジェントアプリケーションジェネレータ 新登場 価格 Y 198.000 朝見別 , 【パッケーシ構成】 ティスク : 5 、 5 枚システム、ライプラリー、ユーティリティ、デモ、サンプ ) い マニュアル : 作マニュアル、ライプラリーマニはアル ハードフロテクト . Ⅱ固 本体 : NEC PC 一 9800 シリ - ーズ刈一 x に . のハイレゾリいーションモート " は険く、 メモリ . 640 K 日以上 ・日本語 FEP . V 」 E / 、 AT()K79 OS : M S D O S Ver 3 ー以上 コンハイラ : Mlcrosoft C Ve 凸」以上・作 : キーホード、ノ、スマウス ・ト Object によ対話型″ソフト開発 C 言語 操作手順 実行 ソースコード 定義 テスト 自動生成 ヘルプ画面 ライプラ丿ー 作成 ・メニュー・ウインドウ・データベースの各種ヘッダーの自動生成 検索方法の種類 . 検索無し / 単純検索 / 先頭データ検索 / 最 ・プログラムの自動生成 終データ検索 ・メニューからプログラムまでの一括自動生成 ・レコード定義のファイル内コピー 0 各種ライプラリー ・レコード定義のファイル間コピー 付属のライプラリー群、または独自に開発されたものや市販のライプラ ・ウインドウからレコード定義の作成 リーを追加することで様々な分野のアプリケーションに対応します。 ・レコード定義からウインドウの作成 ・付属ライプラリー 0 操作手順 ( スクリプト ) の定義 ユーザーインターフェースライプラリー ( 約 35 種 ) . あらかじめ規 ウインドウとウインドウ及びウインドウとデータベースの接続を定義します 定された処理タイミングをアプリケーションへ通知 ( メッセージ ・ボタン押下時の動作 ( ウインドウ等 ) の定義 種類約 100 種 ) する事ができます。 トボタンの種類確認 ( 入力 ) / 取消 ( 破棄 ) / GO - TO / メッセージ / データベースライプラリー ( 約 100 種 ) : レコード番号によるダイ ポップ & スティ / ポップ & ダイ / ユーサー定義 / 条件定義 レクトアクセス、データの検索条件のより細かい指定、可変長デ トパラメータ定義 : アイテム / グローバル変数 / 引き数 / 数字 / テ ータの取扱い等が可能になります。 キスト ①コンヾイル & リンク ・ウインドウとデータベースの接続 / 切り離しとバラメータを用いた検 MS-DOS 下で Microsoft C Ve 「 .5.1 以上とリンカーを使用してアプリ 索条件の指定 ケーションソフトウェアを完成させます。 検索条件 等 * MS ー DOS 、 Mic 「 0S0 代は米国マイクロソフト社の登録商標です。 ・関数コール ( ボタン押下時の変数 / データタイプ / 順序の指定 ) ・イニシャライズ ( ウインドウ起動時のアイテム・グローバル変数の初 期化の指定 ) ト初期値の種類 . グローバル変数 / 引き数 / 数値 / テキスト 3 ヘルプ画面作成 各ウインドウ、メニューに対応するヘルプメッセージの作成、組み込みが 容易にできます。 ①実行テスト 作成されたアプリケーションをト 0 切 ect 上で実行 ( RUN ) します。ー連 の動作チェックがコンバイル、リンクの前に簡単にできることで、修正変 更等によるムダな作業が大幅にカットできます。 ① C ソースコードの自動生成 作成したアプリケーションを C 言語 ( Microsoft C ) のソースコードに自 動生成します。誰にでも解り易いテンプレートで、変更やライプラリーの 追加が非常に簡単にできます。 く資料請求番号 002 〉 アプリケーションソフト完成 1 2 3 メニュー 作成 ウインドウ 作成 テータベース 作成 要求仕様 コンル 《ト ObJect の機能》 ①プルダウンメニューの作成 メインメニューとサプメニューの 2 階層を使ってプルダウンメニューを作成 します。 を一 = 、一 000 ー 0 ー 00 メニュー名 / ユーザーレベル / ヘルプ NO 等の定義 メニューとウインドウの結合 / 切り離し ②マルチウインドウの作成 多彩な表現が可能なマルチウインドウを作成します。 ・ウインドウの作成 / 修正 / 削除 ・タイトル / 表示位置 / ウインドウ枠 / ヘルプ NO 等の定義 ・色の指定 ( 境界 / 本体 / 非アクテイプ時の反転色・通常色・プリン ク有無 ) ・ウインドウのファイル内コピー ・ウインドウのファイル間コピー 作業処理に必要な表示や機能をウインドウ内に設定します。 ・アイテムの作成 / 修正 / 削除 - アイテムの種類 : メッセージ / 工デイタブル / ボタン / チョイス / セッ ト / 確信度 / スライドバー / リストボックス / テキストボックス ・色の指定 ( ラベル・データ等の反転色・通常色・プリンク有無 ) ・セット・チョイスのトピックの作成 / 修正 / 削除 ・アイテムの並べ換え ・アイテムのファイル内コピー ・アイテムのファイル間コピー ①テータベースの作成 目的に合わせて必要事項を設定、データベースをデザインします。基本 となるデータベースは BTree による高速アクセス機能を装備、またデー タキャッシュ生成による高速化等、高い実用性を備えています。 ・データベースのオープン / セープ ・レコードの作成 / 修正 / 削除 ( レコード名 / フィールド名・インデック ス・検索方法等の定義 ) 〔 SD ■日本語版開発・販売 コンピューターソフトウェア開発 〒 141 東京都品川区上大崎 2-12-2 ミズホビル TEL. 03 ー 3443 ー 3801 ( 代 ) FAX. 03 ー 3443 ー 3804 ・開発元 InteIIigence\Nare,Inc COmputer SO れ w 都を Oevelopment CO . い d -
lnformation from Compiler Makers Fig. 1 アドバイサライプラリの関数 PWB は , Options メニューの Build Options コマンドて、 Build 方 法を Debug と , Release て、指定て、き ます。しかし , lnitial Build Option が設定されていない状態ては , Debug 用のオプション指定は , /BATCH /Od /Zi /Gi$(PROJ) . mdt となり , ハングアップしてしまう わけて、す。 解決方法としては , プログラム を作成して , デバッグオプション 指定を行う際には , 必ず C Com piler Debug Option て、 Quick Compile オプションを指定してくだ QuickCompile オプション /qc は , BuiId Option コマンドて、 Main Language を C にして , lnitial BuiId Option を設定することによ っても指定されます。この場合の , デバッグオプションは , /W2 /BATCH /qc /Od /Zi / Zr /Gi$(PRO の . mdt となります。 一度設定を行っておけば , CUR RENT. STS ファイルに情報が保存 されます。 なお , インクリメンタルコンパ イルに関しての , このバグについ ては , 次期バージョンて修正する QuickC や QuickBAS ℃ , MS ー C Q して教えてください。 まれるアドバイザライプラリに関 MS-C DeveIoper's TooIkit に Q つもりてす。 己 ch(PWB) で扱う HELP ファイルを , 6.0 の Programmer's Work Ben 自作のアプリケーションでも利用し たいのですが方法はありません か。 シェクトモシュールフォーマ ・シンポリックデバッグ用オプ とおりてす。 のて、す。公開される情報は以下の 品の内部情報を有償て、公開するも あった MS ー C および , 全開発言語製 シンポル情報など , 従来非公開て OMF フォーマットや CodeView ・ PWB Developer's Toolkit に構築することがて、きます。 利用したオンラインヘルプを簡単 ck HELP 形式のヘルプファイルを ソフトに組み込むことにより Qui のライプラリをアプリケーション ンジンとなるライプラリて、す。 ツールて、利用するためのヘルプエ プファイルを , サードバーティの QuickHELP フォーマットのヘル 0 「 Library ・ Microsoft ProfessionaI Advis チンは除きます ) 。 BIOS, いくつかのローレベルルー ックス , OS/2 マルチスレッド , だし , 浮動小数点演算とグラフィ の全ソースコードが含まれます ( た MS-DOS, MS OS/2 用ライプラリ MS-C 6.0 に含まれる約 400 の So urce Code ・ MS-C 6 . 0 Run-time Library て、きます。 大きく , 以下の 3 つに分けることが て、は扱っていません ) 。この製品は と購入がて、きません ( 一般の販売店 付されている申込券を利用しない は ,MS-C 6.0 のパッケージに添 月末から発売になります。この製 は ,MS-C 6.0 の関連製品として 3 A MS- C DeveIoper's TooIkit ・オプジェクトモシュールフォ ーマットの拡張部分 ・デバッグ情報用に拡張された EXE フォーマット ILK と . SYM ファイルのバイ ナリファイルフォーマット ・ Source Browser 情報 ・ Programmer's W ork Bench の拡張機能 今回は , この中の Microsoft Professional Advisor Library に 関して詳しくご紹介しましよう。 みなさんは , Quick シリーズ (QuickC, QuickBASIC) や MS-C 6 . 0 に付属の Programmer's WorkBench て、オンラインヘルプに 関してはを分ご存知て、しよう。 Microsoft Professional Advi sorLibrary は , ずばりこのオンラ インヘルプ機能をみなさんの作成 中のアプリケーションソフトウェ アに組み込むためのライプラリて、 す。 ディスクによって提供されるフ アイルは , Table 1 のとおりて、す。 もちろん , これ以外に MS-DOS と MS OS / 2 上て、利用て、きるサンプ ルプログラムも提供されます。 また , アドバイザライプラリて 実際に供給される関数は , Fig. 1 の とおりて、す。 これらの関数を使って , ヘルプ ファイルをオープンし , 目的のコ ンテキストを検索し , 圧縮された トヒ。ック内容を展開て、きます。 展開された内容の表示方法は自 山て、すから , 簡単に自作アプリケ ーションへの組み込みが可能にな るて、しよう。 HelpOpen lnformation from CompiIer Makers 149 HelpCloseFiIe ReadHeIpFile OpenFileOnPath HeIpUnIock HelpLock HeIpDeaIIoc HeIpAIIcc HeIpShrink HeIpInit HelpGetInfo HeIpCtI HelpHlNext HelpXRef HelpcLines HeIpGetLineAttr HeIpGetLine HeIpGetCeIIs HeIpNcUniq HeIpNcBack HelpNcRecord HeIpNcPrev HeIpNcNext HeIpDecomp HelpL00k HeIpNcCb HeIpSz Context HelpNcCmp HeIpNC HeIpCIose
ロ甲ロ 0 総合開発環境を実現 ソフトの道具箱シリーズ 他機種の開発がすべて@(-) ・ 9801 シリーズで″【 ライプラリ関数のソースコードーー完全公開 きわめて移植性の高いコードなので , コンバイラ のバージョン・アップへの対応や , 異なるコンバ イラへの移植作業はこ自身の手で容易に実行可能 組み込みロイヤリティーーー無料 一般的な業務アプリケーション・プログラムへの 組み込みに対するロイヤリティーは一切不要 まかせて安心ツールーー自慢の徹底保守体制 C/Dbase 検索ロジックに正当な Btree アルゴリズムを採用し た本格的なデータ・べース構築用の関数ライプラ リ。提供関数群は旧 AM 関数 , Data 関数 , Btree 関 数の 3 つのグループに大別される。旧 AM 関数は , 一般的な定型業務用データ・ペースの構築に最 適。また , Data 関数およびに Btree 関数はきわめて 汎用的なデータ・ペース ( たとえば , SQL, カード型 データ・ペース等 ) の構築を可能にする。 Dbase-Engine MS-DOS 版 C/Dbase の常駐化バージョンで , 常駐 部 ( Engine ) と Engine へのアクセス関数ライプラリ とで構成。関数仕様は C / Dbase と完全コンバチ。 〔常駐部 ( Engine ) のソースコードはオプション〕 C/Window 仮想画面をサポートした本格的なオーバーラップ 型マルチウインドウ・アプリケーション開発用の関 数ライプラリ。テキストのみならずグラフィックスもサ ポートしているので , きめ細かい画面設計が容易 に実現可能。 Window-Engine MS ー DOS 版 C / Window の常駐イレヾージョンで , 常 駐部 ( Engine ) と Engine へのアクセス関数ライプラ リとで構成。関数仕様は C / Window と完全コンヾチ。 〔常駐部 ( Engine ) のソースコードはオプション〕 C/Print 仮想ページ・プリンタ方式を採用したテキスト + グ ラフィックス印字用のツールで C / Window あるいは Wind 。 w - Engine と完全に連動。関数ライプラリとプ リンタ引 OS ( プリンタの機種ごとに提供 ) から構 成。プリンタの機種に依存する部分はすべて 引 OS としてシステムに常駐させる手法をとってい るため , プログラムを変更することなく異機種プリ ンタで印字可能。 製品名 価格 対応機種 対応 OS / 対応言語 常駐部ソースなし Y33.000 ( 本体価格 : \ 32 , 039 ) Window-Engine PC ー 98 田シリーズ 常駐部ソース付き \ 66.000 ( 本体価格 : Y64.078 ) FM ー R50 / 60 / 70 」一 3 田 0 , Dynabook シリーズ C/Window Y66.000 ( 本体価格 : Y64 ′ 078 ) A X パソコン 詳細については C/Print \ 33.000 ( 本体価格 : Y32 , 039 ) お問い合わせください 常駐部ソースなし Y48.000 ( 本体価格 : \ 46.602 ) Dbase-Engine 常駐部ソース付き \ 98 , 000 ( 本体価格 : Y95 46 ) 一般の MS ー DOS マシン MS-DOS 版 \ 98 ′ 000 ( 本体価格 : Y95 46 ) C/Dbase SUN-4 および SunOS UNIX 版Ⅵ 98 , 圓 0 ( 本体価格 : Ⅵ 92.233 ) 標準の C SUN-4 コンノヾチ MS-DOS. MS-C,Quick C は米国 Mic 「 osoft 社の商標です。 Tu 市 0 C は米国 BorIand lnternational 社の商標です 0Lattice C は米国 La ⅲ ce 社の商標です。 UN Ⅸは米国 AT & T 社の商標です。 MS-DOS ( ver. 3.0 以上 ) MS-C (ver. 5コ以上 ) Quick C (Ver.I . 0 以上 ) Turbo C ( Ve 「 . 2.0 以上 ) Lattice C (Ver. 4.0 以上 ) ・お問い合わせ・こ注文は直接下記まて 開発・販売元い 株式会社ノールクラフト 〒 182 調布市国領町 2-3-15 センチュリー K & AI 102 TEL. 0424 ( 89 ) 0202 FAX. 0424 ( 89 ) 4888 振込先 . 横浜銀行調布支店 / 普通預金口座 1011526 * 価格はいすれも消費税込み く資料請求番号 180 〉
リ イ 五ロ - 三住 SU(TIITEITI 3 ライフラリ ーに加えてテキストべースウインドウ機能搭載の一新登場 ・画面表示・キー入力・フリンタ・グラフィック・・・・・・全てカにの 1 本で OK ・ ・ノーマル・ハイリゾモードを自動判別。 N5200 や PC286 / 386 にも対応・ ・旧 AM ( 索引順編成ファイル ) 関数も標準装備・ ・すでに全国 1 , 600 ユーサーのアプリケーションソフトに組み込まれています・ ・ MS-C ・ Lattice-C ・ Quick-C ・ TURBO-C コンバイラ対応・ 力な画面表示機能 ・カラー / リノヾース / 点滅が自由自在に指定可能。 ・ ZZZ9.99 のような分かりやすい数値の表示書式指定・修飾。 ・座標の換算が不要の罫線表示機能。 ・ 1 / 4 角文字 ( 添え字 ) も簡単に。画面の部分スクロール計数も。 キスペースのウイン 能結版の ・最大 1 0 個までのウインドウを重ね合わせ表示可能。 ・ウインドウを閉じれば元の画面を自動回復。 ・ポップアップメニューやダイアログボックス風の処理がこく簡単に 彩な入力機能 ・ワープロ・エテイタ並の編集機能 ( 挿入・削除など ) を装備。 ・“ ESC キーで終了”などが簡単に実現できる特別キー機能。 ・日本語入力の ON / OFF コントロールが可能。 ( NEC ロ C / ATOK6 / VJE づなど。追加もできます。 ) 自由度の高い外字機能 ・ソフトことに外字ノヾターン ( C 日 T ・プリンタ ) の使い分けが可能。 ・バターンファイルは NEC ・ ATOK6 方式いすれも可。 ( 変更も OK ) ・ PC ー 9801 ( LT など一部機種除く ) ノーマル・八イリゾ両対応。 ・ PC ー 286 / 386 , N5200 全シリーズに対応。 ・ MS-DOS Ve 「 3.1 以上。 ・プリンタは NEC24 ドット漢字プリンタおよびその互換機。 ・標準版・桔梗版とも \ 28 000 ( 税込 ) ・全ソースプ。グラム付きは一一 \ 98 , 000 ( 税込 ) ※基本的な種類の関数は ソースプロクラムを公開しています。 ☆お求め・資料請求は 住友セメントシステム開発株式会社 OA システム事業部 〒ー田東京都千代田区神田美土代町一番地 TEL 03 ー 3296 ー 98 田 FAX 03 ー 3295 ー 5909 スーなンカ ・標準モード・圧縮モードいすれも ANK / 漢字の比率は 1 : 2 。 ・画面同様の数値書式対応。 1 / 4 角文字 ( 添え字 ) も可能。 ・改行ピッチ・文字サイズの変更も自由に 便利な画面八一、、コヒー能 ・グラフ・テキスト混在の八一ドコピー。テキストはプリンタ本来の文字で。 ・画面の範囲指定や印刷開始桁の指定が可能。 ・キー入力待ちの状態で特定のキーを押せばいつでも前画面八一ドコピー やさしいラフィック関数 ・点・線・円弧・四角形の描画はもちろん、単色・ノヾターン塗りつぶし可能。 ・八一ドウェアの違いを意識せすに簡単にグラフ・図面が描けます。 SA も 0 、フマ関数 ・テキスト・ランダム・順編成など 5 種類のファイルアクセス関数を用意。 ・ B 十ツリー方式の旧 AM ファイル関数を標準装備。 ・エラーメッセージなどの処理は全てライプラリ関数が実行。 動作条件 販売価格 く資料請求番号 183 〉
TabIe 1 アンケート集計結果 項目 メモリモテル 386 / 486 リアルモード命令 ( 32 ピット ) 286 プロテクトモード ( メモリアクセス ) 386 プロテクトモード ( メモリアクセス ) 386 プロテクトモード ( 工クステンダ ) ー 0.05 0.09 0.67 設問 SmaII(CODE く 64K, DATA く 64K) Medium(CODE>64K, DATA く 64K) Compact(CODE く 64K , DATA>64K) Large(CODE > 64K , DATA > 64K ) Huge(CODE>64K, DATA>64K) Tiny (CODE 十 DATA く 64K ) CPU サホート ライプラリ そのほか コンバチビリティ 浮動小数点演算 186 / 286 リアルモー 工ミュレータ コプロセッサ ANSI X3J11 ド命令 (enter, leave ・ Kernighan & Ritchie UNIX4.2BSD/PCC M i c rosoftC ANSI X3Jll UN Ⅸ ( 低レベル I/O ) DOS(INT 21h サホート ) コンソール ( 工スケープ 0 「ダイレクト ) グラフィックス マウス コミュニケーション ( RS232C) WindoWs インタフェイス 漢字処理 インラインアセンプル 割り込み処理 ◎ 63 20 18 48 29 1 8 45 38 21 21 24 23 29 29 38 17 65 25 8 1 3 75 30 76 21 30 23 36 45 〇 30 35 43 37 38 30 46 39 29 29 30 43 46 52 52 47 28 48 30 30 22 37 1 9 37 40 43 34 35 ◇ 7 1 6 1 5 1 0 25 1 9 8 1 9 35 35 29 22 1 6 16 12 22 6 8 34 1 3 6 26 3 28 25 1 7 21 8 △ 4 28 27 8 8 23 3 3 5 1 8 1 8 14 1 5 1 3 5 2 16 18 26 33 1 7 7 7 4 1 1 8 1 0 x 1 6 2 2 5 ⅱ 1 2 3 3 3 2 1 1 1 3 5 5 1 4 1 7 3 5 2 4 無 2 2 2 2 2 6 4 4 1 1 1 2 2 4 2 2 3 4 4 1 7 5 8 6 5 平均 1 .45 1 .58 0.82 0.58 0.88 0.69 0.93 1 .05 0.74 0.46 0.33 1 .43 0.56 1 . 03 0.44 0.44 0.58 0.85 l. 00 [ 平均 ] は◎ = 2 点 , 〇 = 1 点 , ◇ = 0 点 , △ = ー 1 点 , X = ー 2 点として集計したものである。 ることになった場合には , 相当な時間がか かることになるかもしれません。 つして , ーコンヾチビリに しれません。 ルレベル ) として解釈されてしまったのかも ったのてすが , より低レベル ( システムコー O, つまり read() や write() といった意味だ レベル I / O とはストリーム入出力以下の I / 結果となっています。本来ここて、の UN Ⅸ低 準拠がトップて、あり , UNIX が予想外に低い , こて、もコンパチビリティと同様に ANSI ライフラリにつして ります。 これまて、の方針どおり進めていくことにな どちらにしろコンパチビリティに関して も , PCC が予想外に低かったことてす。 に意外に感じたのは , K&R は当然として という結論に落ち着いたようて、す。個人的 この設問も予想どおり ANSI 準拠が最重要 割り込み処理 インラインアセンプレと ード生成の問題と含めてその形態を検討す インラインアセンプルに関しては , 386 コ もに予想外の高得点となっています。 インラインアセンプル , 割り込み処理と なるかもしれません。 プロテクトモード , 工クステンダなどに ついては積極的に検討していく方針て、すが , 具体的な対応方法についてはリアルモード 用のコードジェネレータが完成してから考 えていきたいと思います。 浮動小数点 工ミュレータにつして する場合には , 工ミュレータ用のランタイ を生成するようにし , 工ミュレータを使用 タて、はコプロセッサ用のインラインコード 本的にコンパイラ本体 , コードシェ不レー 工ミュレータの対応方法については , 基 っとも高得点となっています ) 。 されているようてす ( 今回の設間の中て、はも やはり浮動小数点工ミュレータは必要と ムサポート ( main ) とリンクを行うようにした もし , オリジナルのエミュレータを作成す たに作成するのかは現段階て、は未定て、す。 ものについては , 何かを流用するのか , 新 いと思います。ただし , 工ミュレータその return C : C = dummy ( a, b ) : アセンプラアウトサンプル C , int sample( int a, int b ) int dummy( int, int ) : int sample( int, int ) : C ソーステキスト int List プロジェクト PragmaC 61
文字へのポインタと文字列 more 第 6 回 今回は , 配列とポインタの関係の中でも , おそらくもっとも混乱 を極めているであろう , 文字列定数と文字配列と文字へのポイン タの関係について , 一部復習を含めて , 詳しく考察してみる。 一般に , ある程度以上の力量をもったプロ る。実は C 言語における文字列の取り扱いは はじめに グラマに C 言語の受けがよい理由の一つがこ このケースの典型例だといえる。 多くの言語ては文字列は基本データ型の にあると思われる ーってある。それらの言語てはいくつかの データベースや表寸算ソフト , あるいは 組み込み機能という点て、考えると , 一部 オペレータ ( 演算子 , たとえば BASIC< は連 ワープロや DTP などのアプリケーションプ の BASIC ( たとえば QuickBASIC) や PL/I な ログラム , いい換えれば工ンドユーザ向け 結のための十とか , 比較のための = とか ) が どの言語は非常に豊富な組み込み機能をも のソフトウェアてあれば , 組み込み機能が 文字列のために用意されている。また文字 っているのに対し , C 言語はかなり機能が少 列を丸ごと代入することが基本操作として 多いにこしたことはない。たとえば表計算 ない言語の一つて、ある。しかし , それによ 備えられている。しかし , C 言語て、は文字列 ソフトて , ある列のデータの総和を求める って C 言語て、て、きることが制限されてしまう は基本データ型てはない。したがって , 文 のに , いちいちプログラミングをしなけれ のかというと , 決してそうて、はない。いや , 字列操作は組み込み機能としては存在しな ばならないようては使い勝手が悪すぎて絶 むしろ逆て、あるとすら思えることが多い い。なぜ基本データ型に文字列が含まれて 望的てある。しかし , 組み込み機能をいか C 言語て、は関数を定義することて機能を増 に大量に用意しても , すべての要求に答え いないかは , もとをただせば C 言語の設計者 加て、き , また , 必要な仕事を実現するため の趣味によるということになるが , 本来の るのは不可能てあることも事実だ。たとえ の基本的かっ原始的な機能 ( プリミテイプ ) C 言語の目的て、あるシステムプログラミング ば表計算ソフトのほとんどすべては総和を を備えている。さらに , 豊富なライプラリ 求める組み込み機能を有しているだろうが , においては , 文字列を組み込みのデータ型 関数が用意されているため , 多くの場合 , 2 乗和に ( x * x ) ) を求める機能を有しているソ とすることて , ある局面て、生じるかもしれ ライプラリ関数を呼び出せばことが足りる。 ない実行効率の低下を許容てきないと判断 フトはどれくらいあるだろうか ? もっと ライプラリにない機能も , プリミテイプと 一般に n 乗和を備えるソフトはあるだろうか ? したためてあろう。とにかく , C 言語ては文 既存の関数を組み合わせて新しい関数を定 字列の実体そのものに関する操作はライプ そして , もし備わっていない場合には , そ 義することにより , 必要な機能を容易に追 ラリ関数を呼び出す形て行わなければなら の機能を容易に定義てきるだろうか ? 加てきるのて、ある。この場合 , 言語にプリ ある機能が最初からは備わってはいない ミテイプが必要十分に備わっているかどう 一方 , 「文字へのポインタ」は , ポインタ が , その機能を容易に実現て、き , 利用する かが重要て、ある。 て、あるから C 言語における基本データ型の一 のはもっと容易てあるならば , 「機能が備わ 組み込み機能の豊富な言語て、はプリミテ っていない」ということがどういう欠点にな ってある。なお , 文字へのポインタとか , イプをおろそかにしてしまう傾向が往々に るて、あろうか ? 欠点があるとすれば「ほか 文字配列 ( Char の配列 ) へのポインタは存在 してある。そのため , 組み込み機能の豊富 の言語と違う表記をするための誤解」てあろ するが , 文字列が基本的データ型て、ない以 な言語てはコンビュータにとって本来は非 う。とくに「一部似たような記述がてきる 上「文字列へのポインタ」というものは存在 常に簡単なはずの作業てあるにもかかわら が , 実はその意味はかなり違うし , ほかの しない。したがって , 文字列へのポインタ ず , 実際のコーディングて非常にまわりく 場合は全然違う記述をしなければならない」 はほかのすべてのポインタと同様に , 代入 どい記述をしいられることがある。 C 言語て、 というのは最悪の誤解を生む原因となりう したり比較したりすることがてきる。また , はそのようなことはまれにしか起こらない きだあきら 0 ニロ 100 C MAGAZINE 1991 4