C MAGAZINE - みる会図書館


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

1. 月刊 C MAGAZINE 1991年6月号

0 7 こ辻斗 0 。涬 . Ø霹Ø戸まこ 工 0 洋法 *)b Øはい、 f 「呼叮。、日 Oh! PC 匪 12.320 一上 6 6.160 一 1 一 ・ tJJ THE COMPUTER 7.440 一 1 一 7.200 三 Oh 一 X 一 ) Oh! FM 匪 6.720 一一一 C MAGAZINE 匪 11.760 一一一 、なヾ凵 4 。匪 7.680 一 1 一 匪 6.960 一一一 Oh! Dyna こ f 一一ま寔 8.160 一 I 一 ミ ) 」 8 = 一 6 ま 6 一一 4.080 三 煢一一 1 ・ 15 = T 工 E COM PUTER Oh. 、 PC 雪ま Oh. 、 X 雪ま Oh. 、 FM 雪 MAGAZINE Oh. 、 Dyna ま TC NO. PC NO. X NO. FM NO. PM NO. CM NO. D NO. fF 学 JS NO.

2. 月刊 C MAGAZINE 1991年6月号

M 、 AZ ラ E 6 2 3 1 MAGAZINE 1 . 凵トー 2. 勢・・設 3. 4. 煙澪洋 10. 11. 斗ー e メ 12. 》 13. 一を一 4. 求 15. 洋・三 16. 小言 1 . 》耋ま 2. 主斗ー e メ・ご 3. ヰ蟶 4. - - 一 5. 洋 1 1 . 小言 (). ロ、譁誕 . B. & 涬 ! C. A 誕 ) F04 : 土ープ、孑ン A B C 158 : ・ゴ三ミ A B C : 74 き A B C F03 : : : キメ 74 戛ン A B C 163 : 4 ・、 7 。メ A B C 001 ・ : キ A B C 164 002 : 凵。いーー、 7 17 至 A B C 165 : ーキ郊 71• A B C 003 ・ : ・、、ーメ A B C 166 : ・ーさ・・い 7 、 A B C ・ : e ぜ・、 A B C 167 : 一一、ナメ印ト A B C 004 : 郊 47 土ープ A B C 168 ・ : ・て・、きンい A B C 005 : 74 ・キ・ー A B C 169 : ヾー、「 A 諍 A B C 006 007 ・ : 04 」・い 7 、 A B C 170 : ・十「・ A B C 1 71 : ~ A B C 104 : 4 、 A B C 139 : ま A B C 176 147 ・ : ・斗斗 A B C MAGAZINE

3. 月刊 C MAGAZINE 1991年6月号

MAGAZINE 1991 年 6 月 1 日発行 ( 毎月 1 回 1 日発行 ) 第 3 巻第 6 号通巻 21 号 1990 年 2 月 2 日第 3 種郵便物認可 提携・ LA ト、」誌 / 監修・石田晴久 C 言語技術情報誌・ C マカシン 1991 JUN Vol. 3 No. 6 0 980yen 特集・プログラマのための 知的財産権概論 拡大するソフトウェア保護の実態と問題点 1 ・著作権法に見る知的財産権 2 ・著作権法と特許法 3 ・米欧に見るソフトウェア保護の実態 新連載 X68k 活用講座 GCC で学ぶ 68 ゲームプログラミング One Point Edition C プロクラム移植の秘訣 提携記事 ・ Taking Cont 「 0 は 0 Task ・ MuItitasking in M0duIa-2 明解 ANSI C 言語入門講座 新 MS - DOS プログラミンク入門 スタートアップ C 十十 特別付録 : 5"2HD ・ X-GCC ② ・高速圧縮ツール「 LHA Ve 「 .2.12 」 ・ X68k 版 LHNLHAX68k 」 ・叭 NSI C 言語入門講座」活用集 3 ・六角形フロック落とし「 Hext 「 is 」 ・本誌掲載ソースプロクラム

4. 月刊 C MAGAZINE 1991年6月号

オ丿ジナル C コンヾイラ 制作プロジェクト C マガジン 第 7 回 PMlK(Program MakeutiIity 1.0 ) のイ乍成 じめとして , MAKE ユーティリティを作成した。 各種ツール類を作成していきたいと思う。そのては 今回からいよいよ本格的に P 「 agmaC 完成に向けて , れはもっとも基本的な機能のみの仕様である。 はじめに PMK(Ver. 1.0 ) は , 非常に単純な MAKE ューティリティて、す。 MAKE 処理を行うた めのもっとも基本的な機能のみが用意され ており , Microsoft 社の MAKE と NMAKE の中間のような仕様となっています。 PragmaC 完成のあかっきには , PMK もバ ージョンアップし , そこそこのものにした 定義ファイル PMK [-v] [MAKEFILE] PMK の起動は以下の書式て、行います。 起動 いと思っています。 52 C MAGAZINE 1991 6 MAKE 情報が記述されていなければなりま 定義ファイルには以下のような書式て、 て読み込み , MAKE 処理を行います。 ファイル、、 MAKEFILE 〃を定義ファイルとし PMK は , 通常 , カレントディレクトリの 藤井保則 ターゲットファイル名 依存ファイル名・ ターゲットを作成するための コマンドライン せん。 MAKEFILE を以下に示します。 PMK の定義ファイルの例として CSP 用の PMK *USR*PROJECT. MAK MAK" を定義ファイルとして起動する。 ディレクトリ \ USR ′′の、、 PROJECT. [ 例 ] ルを指定して起動してください の例のようにコマンドラインて、定義ファイ 定義ファイルを変更したい場合には , 次 らのコメント記述には対応していません ) 。 処理上て、は無視されます ( 現在 , 行の途中か # て、始まる行は , コメント行と見なされ , # コメント DEFINE MACRO OBJS CMODEL= -AC CFLAGS= -c -Za cctype. Obj csp. Obj cctoken. Obj CC CSP. exe: MAKE CSP. EXE $(OBJS) $(CC) $(CMODEL) $(OBJS) MAKE CCTYPE. OBJ cctype. Obj : cctype. c cctype. h MAKE CCTOKEN. OBJ $(CMODEL) cctype. c $(CC) $(CFLAGS) cctoken. C cctoken. Obj:

5. 月刊 C MAGAZINE 1991年6月号

新、 ' - 撝 プロクラノグ入門 C プログラマ のための 行 島 中 第 9 回ラレクトリの移動 ティレクトリを変更する場合 , 内部コマンドの C HD 旧 ( CD ) コマンドを使用します。しかし , この コマンドはティレクトリを変更するのみてドライ プの移動を伴いません。今回は , ドライフの移動 を伴うティレクトリ移動コマンドの作成に取り組 みます。 ライプ移動を伴うディレクトリ移動コマン ます。 DOS コマンドによる ドを作成すると , ティレクトリ移動 cd *subdir d : ' 90 年 12 月号「リダイレクト機能 ( その 3 ) 」て、 といった形て、実現されます。これて、ドライ も少し解説しましたが , DOS コマンドて、ド プ d : に移動してディレクトリ \ subdir に移り TabIe 2 ドライプの変更 Table 1 ティスクの選択 dos setdrive 関数 (MS-C Ver. 5.1 / 6.0 , LSI C ー 86 Ver. 3.20 ) DOS ファンクション OEh ティスクの選択 #include く dOS. h> 引数 AH = OEh DL = ドライプ番号 VOid dOS setdrive ( drivenum, drives ) , ( 00h = A, 01h = B, ・ " ) unsigned drive, 変更するドライプ番号 ( 1 ー A, 2 ー NT 21 h unsigned * drives, 使用可能なドライプ数 返り値なし setdisk 関数 (Turbo C Ver. 2.0 , Turbo C 十十 Ver. 1 .0 ) #include く dir. h> int setdisk ( drive ) : int drive, 返り値使用可能なドライプ数 これは , d : cd *subdir B, AL = 論理ドライプの台数 返り値 カレントドライプを DL レジスタ 機能 で指定されたドライプに変更し て論理ドライプの台数を返す。 論理ドライプとは通常のティス クドライプに加えて RAM ティス クネットワークドライプなどの ドライプのことをいう 変更するドライプ番号 ( 0 ー A, 1 B, 74 C MAGAZINE 1991 6

6. 月刊 C MAGAZINE 1991年6月号

00M EDITORS なお , 予告内容を変更することがあります。 次号予告 >7 月号 ( 6 月 18 日発売 ) TSR プロクラミング研究 常駐プログラムとテパイスドライバ Part 1 一一一一 TSR プログラムの記述法 Part2 ロ—TSR 型デヾイスドライバの記述法 Pa 杙 3 一一一・一 -- -- 常駐サイズのコンノヾクト化 載三田典玄の痛物ログラマ - ズエッセイ 最新開発環境レポート ・エテイタ「 RED2 DynaBook 版」特別付録 5 ″ 2HD ・ c 言語学習ソフト℃教授の基礎講座」 仮想配列ライプラリ 富国強兵 rWANDP. 」 ノヾッチ式メニュー「 BM 」 X68k に移植された GCC ③ rANSI C 言語入門講座」活用集④ 明解 ANSI C 言語入門講座 本誌掲載ソースプログラム アルゴリズムとテタ構造入門 COMPUTER LANGUAGE 提携記事 新 MS ー DOS プログラミンク入門 PROLOG and CIient/ServerI nformation Systems スタートアップ c 十十 Rexx:Not Just a WonderDog 編集後記 ◇初めまして , 4 月に入社し ◇最近付録のマスター作成 ◇人間の性格を変えるのに ◇はじめまして , 新人の高 ◇今回の特集て、もあるプロ の締め切りと「ディスク内容 たばかりの < ヒ。ッカヒ。カ > 1 年は十分な時間だ。去年の 森て、す。新人研修の自己紹 グラムの知的財産権が注目 のお知らせ」の入稿時期が逆 渡辺て、す , と挨拶してから 今ごろ「下僕になりまあー 介て、「私は中曽根元首相に されるようになったのはこ 転しつつある。「ディスク内 早くも 1 年が過ぎた。配属さ す」といっていた旧・新人 似ている ! 」といってしまい こ数年のことて、あるが , 問 容のお知らせ」を先に書くと れた新人を見て , 私もおと が , 1 年後には「年寄りは無 ました。以来 , 友人から「中 題はますます複雑になって ディスク容量に制限がある 茶しないほうがいいて、すよ」 なしくかわいい 1 年生だった 曽根君 ! 」と呼ばれることが いる。プログラマの権利が のて、リスクが高くなる。早 のだと思うと , もう < ヒ。ッ と減らず口を叩くまてにな 多くなりました。取り返し 認められ , 保護されるよう めに作業すれば問題ないの カヒ。カ > などと言えない った。どうも寝ぐせ頭と UNI のつかない事をいったかな になってきたことはよろこ だが , 生来の怠け者 , せっ 1 年て何をしていたのか , コ さいわい編集部内て、 坊が陰て糸を引いていたよ ばしい。ただ , 知的財産権 ば詰まらないと作業を始め ンヒ。ュータの知識はさほど うだ。まっさらピッカピカ はこの呼び方は定着しそう というのは , プログラマに の新・新人「中曽根くん」よ , ない。時間が過ぎると終わ 変らず , 変ったといえばくち にないのて、 , 内心ホッとし とって諸刃の剣て、あるとい る小学生時代のテストがな 悪の誘惑に負けないてくれ よっと〉生意気になったこと ています。私の未来はまだ ことは心しておかなけれ フ ( 洋 ) ( ホ ) ぐらいかな。 (JUN) (Y as) つかしい たまえ。 明るい ばならない。 (TEN) 発行人孫正義 編集人橋本五郎 発行所ソフトバンク株式会社 出版事業部〒 8 東京都港区高輪 2- 円一口 NS 高輪ビル 編集部・ TEL03 ( 5488 引 8 / 出版営業部・ TEL03 ( 5488 月 360 / 広告営業部・ TEL03 ( 5488 ) ロ 65 編集長星野慎ー 副編集長流王天 編集宮田洋一渡辺淳一高森昭安 広告川口昭彦安枝奈穂子 校正 ( 有 ) アレフ デザイン持田哲花本浩一赤井晴美若江啓子機部進 監修石田晴久 印刷凸版印刷株式会社 / 写植株式会社風 ⑥ 1991 雑誌 14325 ー 6 好評連載 プログラム・バクのお問い合わせ 月刊 MAGAZINE 谷 03 ( 5488 ) 1325 ・掲載記事 , プログラムについてのご質問は , 月曜日から金曜日の午後 4 時から 6 時まて受け 付けております。その他の時間帯はご容赦くだ 6 月号 平成 3 年 6 月一日発行 160 C MAGAZINE 1 1 6

7. 月刊 C MAGAZINE 1991年6月号

スタートアップ C + + 実力養成講座 2 回 第 五ロ C 十十か拡張 C 言語であることは前回の記事 でご理解いただけたであろう。今回は , 前回に 引きつづき , 拡張 C 言語の側面から , 「制御構造」 , 関数を中心に , C 言語と機能を比較しながら解 説する。 理 龍崎昌平 前回は , C 言語と機能の比較をしながら , ( セミコロンだけの文 ) がある。 0 て、あれば偽とし else につづく文 2 を選択し実 C 十十を解説した。 C 言語と異なる箇所は , 「プロック」は複数の文を一つにまとめた こて、 , 偽の場合の処理 ( else とそ 行する。 コメントの新しい記述や変数の宣言方法 , ものて、 , 大カッコて、ある、、ドと、ツによって れにつづく文 2 ) は省略可能て、ある。 if ー else に 定数型などて、あった。今回は , C 言語とほば 囲まれる。プロックは , 文法的に単一の文 おいて , 選択されて実行すべき文は一つの 同様の機能て、ある C 十十の「制御構造」 , プロ 文て、なければならない と同等に扱われる。これは , if や while のう したがって , 複数 グラムを構成する関数を中心に解説する。 しろて、使用される。また , 関数を記述する の文を選択し実行させる場合は , 以下に示 すようプロックを用いなければならない 際に , 関数内の処理を構成する文を大カッ 制御構造 コて、囲み , その部分もプロックとなる。プ if( 式 ) { ロックの終わりとなる、、 } 〃のうしろにセミコ 文 プログラミング言語において実行順序を ロンは必要ない 規定するのが制御文て、ある。 C 言語て、は文と 文 プロック , 選択構造 ( if , switch), 繰り返し 構造 (while, for, do-while), goto などの制 ある判定を行い , その真偽によって実行 御文がある。これらの制御文は , C 十十にお を選択させる場合に if 文が用いられる。 if 文 いてもそのままの機能て、提供されている。 の一般形式は以下のようになる。 if ( 式 ) 文とプロック 文 1 「文」は式の最後にセミコロン当クを置いた else ものて , プログラムの中て実行可能な最小 文 2 単位て、ある。文には , 宣言文 ( 変数を宣言す if 文て、は , ( ) 内の式を評価し , その結果 る文 ) , 式文 ( セミコロンて、終わる文 ) と空文 求められた値が 0 以外てあれば真とし文 1 を , else 文 2 if て、は , else ー if 構文を使用し多分岐の判定 を記述することがてきる。 if( 式 1 ) 文 1 else if( 式 2 ) 文 2 else if ( 式 3 ) 124 C MAGAZINE 1991 6

8. 月刊 C MAGAZINE 1991年6月号

Fig. 2 ティスプレイレイアウトシートを用いた画面設計 TITLE NO DATE l€e- 12 13 14 15 16 17 18 19 m 21 2 24 為 27 内 31 引 34 37 関 39 40 0 $ コマン物 コマン 6 解・・夥 ~. 20 ス / の . 6 16 2 3 7 ロ、こィ 4 5 6 7 112 8 1 9 1 1 印 176 12 ( 爻んた・心ハヾース ) ) 1 13 14 15 16 イ〒 ( 交ヤ分だ咜旧、・一ス ( 0 ) ) 18 21 ド OR 駅 AT / : をライフのフロラビ〒、イス ' 7 代し手す 印キー 1 2 3 4 5 6 ー 8 9 10 11 12 日 14 15 16 リ 18 19 幻お 24 る 2 ′四 31 爻ア凶 41 0 材お 47 お引盟引引田引ロ田新新 6 ′田田 71 々 73 乃「 6 宿、上 : x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 23 24 27 四 31 32 33 関 37 関 39 40 お 亥い 懸ゞー 00S : ② MS-DOS のバージョンの取得および表 ③ 上下矢印キーによるポックスカーソル ( リバース表示 ) の移動 実行ファイルの起動やスクロールといっ た機能は組み込まれていない。これらの機 能を組み込むためのプログラミングについ ては次回て、紹介する予定て、ある。 Fig. 1 右に「 C の道具箱」を応用して作成し た画面を示す。 時間のリアルタイム表示のためには割り 込み処理を使用せざるをえない。しかしこ の割り込み処理のプログラミングは , なか なか難しい。筆者は , 当初時間のリアルタ イム表示などそれほど難しいものて、はない 90 C MAGAZINE 1991 6 test. c (cIock2. tst) List 1 1 : #def ine EXTERN 2 : #include "config. h" 3 : 4 : # i nc I ud e く stdio. h> 5 : #include く string. h> 6 : # i ncl ude く conio. h> 7 : # i nc 1 ud e く process. h> 8 : # i nc 1 ude く string. h> 9 : 10 : #include ” pldwn. h" 11 : #include "textkei2. h ” 12 : #include menurd. h ” 13 : 14 : # i nc 1 ude "cboxprot. h ” 16 : void main() 18 : i nt i : 19 : char dosver[20]; 20 : char xs [ 20 ] : 21 : struct Gmsmenu mn[20] : 22 : 23 : CLS; 24 : CUROFP;

9. 月刊 C MAGAZINE 1991年6月号

CMAGA セミナ—J レーム プログラミング添削 アドバイザー / 柴田望洋 第 10 回 B ℃ S プログラミング ( 2 ) ーキー処理プログラムを題材にして一 プロの作曲家を目指す菊間かんなさんのキー処理プログラムを題材にして解説します。 前回は 8086 の割り込みや引 OS プログラミングの基本を説明しました。今回はキー ボード引 OS やインラインアセンプラについて説明します。 第添削のポイント 136 C MAGAZINE 1991 6 ラ機能についても考察してみました。 語て命令を記述てきるインラインアセンプ り , C 言語プログラム中に直接アセンプリ言 成します。キー入力ライプラリ作成にあた の BIOS を利用したキー入力ライプラリを作 今回は・キーポード BIOS の解説を行い , そ という図式が頭に入ったと思います。 サービスルーチンの呼び出し ソフトウェア割り込み ェア割り込みについて大まかな概念を解説 前回はハードウェア割り込みとソフトウ 今月のプログラムプロフィール うです。 中ですが , なかなかうまくいかないよ プログラム」を参考にキー処理部を自作 月号の本連載「リアルタイムなキー処理 プログラムに挑戦中です。 ' 90 年 10 ~ 12 プロ曲家を目指すかんなさんは M 〇作者 : 菊間かんな ( 大阪府東大阪市 ) ーキーボード B ℃ S それて、は本題のキー入力の話に移りまし PC ー 9801 シリーズのキーポード BIOS は 0 X18 番に割り当てられています。 AH レジス タに与える値により , 6 個の機能がありま す。簡単に紹介しましよう。詳しいことは 「新版 PC ー 9800 シリーズテクニカルデータブ ック』 ( アスキー刊 ) などを参考にしてくだ キーテータの読み出し ( AH ← 0X00 ) 入力されたキー ( キーバッフアの先頭に格 納されている文字 ) を返します。キーバッフ アが空のときは , キーが押されるまて、待ち ます。 [ 出力 ] AH ←キーコード AL ←キーデータ キーバッファ状態の調査 ( AH ← 0X01 ) キーバッフアの先頭に格納されている文 字を調査します。キーバッフアの更新は行 いません。 [ 出力 ] 第 AH ←キーコード AL ←キーデータ ( ただし BH が 1 のときのみ有効 ) シフトキー状態の調査 ( AH ← 0X02 ) 現在の特殊キー ( , など ) 押 下状態を調査します。 [ 出力 ] AL ←押下状態 ( Fig. 1 ) 。押されている キーに対応するビットが 1 となり B6 B5 B4 B3 B2 Fig. 1 特殊キー押下状態 ます つねに 0 CTRL RPH カナ CAPS SHIFT

10. 月刊 C MAGAZINE 1991年6月号

List 3 伝統的な C の流儀に従えば , 仮引数の宣言 は int ( * func)(int, int) て、なければならす ( 伝統的な C にはパラメータタイプリストな どないが ) , また呼び出しも ( * func ) ( i , j ) て、 なければならない。すなわち次のように くことになる。 static VOid (*func)(int, showTable(int int), 23 : { 24 : 25 : 26 : 28 : 29 : 30 : 31 : 32 : } 33 : 34 : #define F 3 35 : #define N 10 36 : 37 : int 38 : main(void) 39 : { static int (*tableCF]) (int, int) 40 : 41 : add, 42 : sub, mul, 45 : int 1 ; for (i = 0 : i く F; + + i ) 47 : showTable(tabIeCi], N) ; re turn 0 ; 50 : } 十 十 , ・ 1 0 ・ 1 ・′、・ - 4 A ↓し 0 int (*func)(i, printf("%4d" すて、に述べたが , 関数へのポインタを用 いる関数呼び出しを ANSI C て、は func(i, と記述してよいことはよく知られている。 しかし関数の仮引数の宣言に限っては , 関 数へのポインタ変数の宣言を List 2 のように int func(int, int) と書くことがて、きるという のはあまり知られていないようて、ある [ 1 ] 。も ちろん , 古い書き方も有効て、ある。しかし 新しい記法のほうがすっきりとしていてわ かりやすいと思うのは私だけて、はないだろ さて , List 2 て、は showTable を何度も呼び 出す部分を直線的に記述しているが , これ をループにしてみることはて、きないだろう か。それは「関数へのポインタ」の配列を利 用することて、可能て、ある。 List 3 にそれを示 す。 List 3 における配列変数 table の宣言は , 昔ながらのこの記法によらざるをえない さらに現在て、はパラメータタイプリスト ( 引 数の型情報 ) が加わるために , K & R の時代 よりもさらに複雑そうな宣言となっている。 その部分を抜き出してみよう。 static int (*table[F])(int, int) add, sub, 関数へのポインタの配列を使って直接関数を呼び出す LiSt 1 : #include く stdio. h> 2 : int add(int n, int m) 3 : 5 : return 7 : int m) int sub(int n, 8 : 10 : return 12 : int mul(int n, int m) 13 : 14 : { 15 : return 17 : 18 : #define F 3 19 : #define N 10 20 : 21 : int 22 : main(void) 23 : { static int (*table[F]) (int, int) 24 : 25 : add, 26 : sub, mul, 28 : 29 : int i, j, k; 30 : 31 : for for (i = 1 ; i く N; + + i ) { 32 : for (j 33 : pr 、 ntf ぐ hd", table[k] (i 34 : printf("%n' ) ; 35 : 36 : printf("%n") ; 38 : 39 : return 0 ; 40 : } 108 C MAGAZINE 1991 6