MEC ページプリンタ、 新登場。 ( こ物。 .1 。 機能で、サイズで、価格で。 べー、之フリンタは、 ここまで来ました。 小さな文字も曲線も、鮮やかになめらか印字。 サイドの羽根をなくした、省スペース。 400dpi 十 SETI コント設計 ( 352 〔 W 〕第 412 〔 D 〕物 253 〔 H 〕開 給紙カセットをプリンタの下部に収納し、設 解像度は活字なみの美しさを誇る 400dpi 。 また文字や図形の工ッジ部分をなめらかに徴 置面積は従来機の約 2 分の 1 ( 当社比 ) 。新聞 1 ページの中にらくらく納まる省スペース設計 小コントロールする SET 機能により、さらにキメ てすべージプリンタならて、はの高度なパフ 細かな 480dpi 相当は幻の高品位印字を実 ォーマンスがあなたの身近て、実感て、きま to 現。書類の顔つきが見違えるほどイキイキします 小さなホディに、先進機能を満載。◆明朝体とゴシック体。 2 種類のアウトラインフォントを標準装備。 ◆人気の 98 ソフトウェア資産をそのまま活かしながら、拡張性や機能性にすぐれた、プリンタ記述言、 語 NPDL LeveI 2 を搭載。◆ A3 → A4 、 B4 → A4 、帳票→ A4 、 A4 文書 2 枚→ A4 。充実の縮小機能 を装備。◆標準 250 枚。別売の増設カセット ( 250 枚 ) の組み合わせて最大 500 枚まて、給紙可能。 500 枚て、も設置面積はそのまま。◆ 201PL 工ミュレーションモードに対応。 ※ NPDL(NEC printer Descripuon Language) は、 PC ー 9800 シリーズ用の標準プリンタ PC- P 日 201 シリーズ、 PC - P 日 602 シリーズのコマンド体系を吸収・拡張した NEC プリンタ記述言語 です。※ 201PL は PC - P 日 201 Pnnter Language の略称です。 小コストで、ビジネスからパーソナルまで。 ページプリンタのすぐれた機能と性能を小 さなポテンに凝縮するとともに、価格もコンヾ クトに凝縮。お求めやすさと使いやすさて : ビジネス分野からパーソナル分野まて : 幅 広くお使いいただけるべージプリンタて、す。 188 , OOO 4 日本語ページプリンタ 標準価格 188.000 円 ( 税別 ) ( EP カートリッジ標準添付 ) PC - PRIO ロ 0 / 4 ポストスクリプ瞽言語の日本語フォントを 5 書体装備。 ポストスクリプト TM 言語の日本語フォントを 2 書体装備。 400dpi + SET 機能 OCAD 分野まで 400dpi + SET 機能。ビジネス分野の 240dpi + SET 機能。 カバーする A3 対応の上位モデル。 400dpi + 能 0Apple T 引 k にも対応。 コストパフォーマンスを追求した実力機。 ページプリンタ標準機 400dpi + SET 機能 0AppIe T 引 k にも対応。 日本語べージプリンタはストスクリプトⅣ言語対応 ) 日本語べージプリンタ 日本語べージプリンタ ( ポストスクリプト TM 言語対応 ) 日本語べージプリンタ 日本語べージプリンタ PC - PR4 ロ 00 / 4 PC - PR ヨ 000 戸与 / 4 PC - PR2 ロ 00 / 2 PC - PR2 ロ 00 / 4 PC - PR ヨ 000 戸 5 / 4F 標準価格 970 , 000 円 ( 税別 ) ( EP カートリッジ別売 ) 標準価格 670 , 000 円 ( 税別 ) ( EP カートリッジ別売 ) 標準価格 726 , 000 円 ( 税別 ) ( EP カートリッジ別売 ) 標準価格 418.000 円 ( 税別 ) ( EP カートリル別売 ) 標準価格 368.000 円 ( 税別 ) ( EP カートリッジ別売 ) ※ post Sc 「は、米国アドビシステムズ社の商標です。※ App TaIk は、米国 AppleComputerlnc. の商標です。 く技術的なご質問・こ・相談に電話でお答えします。〉 NEC パソコンインフォメーションセンター東京 03 ( 3452 ) 8000 大阪 06 ( 943 ) 9800 名古屋 052 ( 251 ) 9800 東北 022 ( 262 ) 9800 九州 092 ( 262 ) 9800 NEC グループ 受付時間・・・午前 9 : 00 ~ 午後 5 : 00 月曜日 ~ 金曜日 ( 祝日を除く ) 電話番号は、よくお確かめのうえおかけください。 く資料請求番号 001 〉
五ロ 用 応 C の道具箱 TabIe 1 凵 PS コマンドー覧 ( べクタモード ) コマンドの内容 0 GI グラフィックセット指定 ( * ) G2 グラフィックセット指定国 G3 グラフィックセット指定 ( * ) 2. 印字属性設定 文字回転指定 ( * ) 文字高指定 ( * ) 文字高単位指定 文字幅拡大指定 ( * ) 文字印刷方向指定 ( * ) 文字間隔指定 ( * ) 文字属性レベル指定 ( * ) 飾り文字属性指定 ( 利 3. 文字印字 文字印刷開始 ( * ) 文字印刷連続 ( * ) 制御文字印刷連続 ( * ) 文字印刷制御 イメージ領域確保 イメージ描画 ( * ) 凵 PS Ⅲのみ Fig. 2 整数の記述方法 ( 参考文献 [ 3 ] ) 上位バイト 2 2 っム コマンド 初期化制御 1 . コマンドモード移行 べクタモード移行 テキストモード移行 2. 文字セットリスト宣言 フォントリスト宣言 ( * ) グラフィックセットリスト宣言 ( * ) 3. ページオリエンテーション設定 ページオリエンテーション設定 4. ピクチャ開始 / 終了 ピクチャ開始 座標単位設定 描画開始 ピクチャ終了 図形描画制御 描画領域設定 原点移動 クリッピング領域の設定 クリッピング 描画論理設定 図形描画 1 . 図形属性設定 線種指定 線幅指定 線属性指定 線接続指定 線端形状指定 マーカタイプ指定 マーカサイズ指定 塗りつぶしノヾターン指定 矩形角丸め指定 グレイスケール指定 スクリーン指定 2. ノヾターン登録 線ノヾターン登録 マーカノヾターン登録 塗りつふしノヾターン登録 3. 図形描画 マーカ描画 折れ線描画 矩形描画 多角形描画 1 多角形描画 2 多角形描画 3 円描画 円弧描画 1 円弧描画 2 楕円描画 楕円弧描画 四分楕円描画 閉領域塗りつぶし 文字印刷制御 1 . 文字セット選択 GO フォント指定国 G 1 フォント指定国 G2 フォント指定国 G3 フォント指定国 GO グラフィックセット指定 2 2 2 2 旧 2 2 2 2 旧 CSI p 旧 2 @ 區 2 2 2 # 旧 2 1 0 旧 2 $ 旧 2 % 旧 2 P 旧 2 0 旧 2 ( 旧 2 * 旧 2 } H 旧 2 旧 2 最下位バイト 十 0 0 1 S 4 ヒット有効 符号ビット b23 ・ + 0 1 + 0 1 6 ビット有効 6 ビット有効 6 ピット有効 2 2 2 2 2 2 2 2 ー O LL w ー 上位バイトの識別子 最下位バイトの識別子 Fig. 3 整数の絶対値が 1 5 ( = 24 ー 1 ) 以下 : 1 バイト 整数の絶対値が 1023 ( = 21 。ー 1 ) 以下 : 2 バイト 整数の絶対値が 65535 ( = 216 ー 1 ) 以下 : 3 バイト 整数の絶対値が 65535 ( = 216 ー 1 ) 以上 : 4 バイト以上 2 っ 4 2 2 2 2 a@o Fig. 4 絶対値が 15 以下の場合 ( 参考文献 [ 3 ] より ) b7 b6 b 5 b4 b3 b2 b 1 bO 0 0 1 S x x x x データビット 符号 1 : 正 ( + ) 識別子最下位バイトであることを示す 0 旧 2 1 旧 2 っ 4 2 2 ワ」 2 2 2 っ 4 2 っ ~ ( 0 ー 6 6 7 ・・ 8 9 Fig. 5 絶対値が 16 以上の場合 ( 参考文献 [ 3 ] より ) b7 b6 b5 b4 b3 b2 b 1 bO b7 b6 b5 b4 b3 b2 b 1 bO テータビット 符号 1 : 正 ( 十 ) 0 : 負 ( ー ) 最下位バイトであること 識別子 を示す テータヒット T 旧 2 m 旧 2 n 旧 2 0 旧 2 旧 2 上位バイトであること 識別子 を示す 0 応用 C 言語 129
とすれば abcdefghij が表示されることがわか れば合格て、す。 s のサイズはこの場合 5 文字十 5 文字十 1 文字 ( ' \ 0 ' ) = 11 文字分以上必要 て、す。 さらに , メモリ領域を確保する malloc ( ) の説明 ( コラム III) を読んて、みましよう。 ヒープ領域とは malloc( ) て、切り出すため のメモリの空き領域のことて、す。 この説明て、 , malloc( ) を使うためには が必要て、あることがわかります。どちらか #include く m 訓 OC. h > または , #include く stdlib. h > プログラムの先頭に ひとっ書いておけば十分て、す。 ANSI / ISO 規 格て、は stdlib. h になっていますが , 古い C と の互換性のために malloc. h て、もいいことにな っています。 malloc ( ) の戻り値は void * 型となって います。 void というのは虚無 , 何もない とて、す。 void * は「指すものの型をとくに 情報処理試験 情報処理技術者試験と C 言語 語対策講座 第 2 種・第 1 種情報処理技術者試験が C 言語て、も受験 て、きるようになりました ( 第 2 種は今年秋から , 第 1 種 は来春から ) 。 これらの試験は通産省の後押して、 , 第 1 種は毎年 4 月 , 第 2 種は毎年 4 月・ 10 月に行われ , 毎年数十万人 が受験しています。以下て、は第 2 種について説明し 試験は , ハードウェア・ソフトウェアの基礎知識 と関連知識 ( 多肢選択式 ) , プログラムの作成能力 ( 穴 埋め式 ) から成ります。後者は FORTRAN, COBO L, PL/I, アセンプラ C から選べます。 C はも に 1 ロロ ちろん ANSI/ISO 規格のものて、す。 1992 ー 4 ー 1 KARA NO BIO-RHYTHM CALENDAR KAKO-KI 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 20 21 22 23 24 25 26 28 29 82 C MAGAZINE 1992 9 0 印字例 1942 ー 10 ー 31 UMARE JOSHO-KI 29 28 26 24 23 22 21 20 19 17 15 14 13 12 9 8 7 6 5 4 3 2 1 0 図 こて、は C 言語の予想問題を・・・・・・といいたいところ て、すが , まだ 1 回も行われていないものを予想するの は私の能力を超えますのて、 , 今年 4 月の FORTRAN の 問題を C に焼き直したものをご紹介します。この問題 はバイオリズムをグラフにするものて、 , 試験問題と してだけて、なく , 学園祭などて、実演しても楽しいも のて、しよう。 ' 92 年 4 月の FO 日 T 日 AN の問題より 問次の C プログラムの説明およびプログラムを読ん て、 , 設間に答えよ。 〔プログラムの説明〕 生年月日を入力して , バイオリズムを計算し , 指 定した年月日から 30 日間のバイオリズムを印字する プログラムて、ある。 (I) バイオリズムとは , 人間の肉体 , 感情および知 性が一定の周期を持っという説によるリズムの ことをいう。リズムは , 肉体が 23 日 , 感情が 28 日 , 知性が 33 日周期の正弦曲線て、表すことがて、 きる。 ②ここて、バイオリズムは , 次のようにして求める。 ①生年月日 (nenl, tsukil, hil) から , 指定した年 月日 (nen2, tsuki2, hi2) まての総日数 (sou) を求 める。 ②総日数を , 肉体 , 感情および知性の周期 ( 配列 sh uki) て、割って , それぞれの余りを求める。 ③求めた余りに 0 ~ 29 の数を加え , これに刻み幅を 掛けて求めた値の正弦が , 肉体 , 感情および知 性の値になる。 ( 3 ) 生年月日とバイオリズムの印字期間を指定する 年月日は , 西暦年を 4 桁の数字て、 , 月と日をそれ ぞれ 2 桁の数字て、入力する。
6 ANIZVDVVN 畑唱日屮 品騾隼 UNIZVDVJN 品辟嶝田ハくエハ ) ミ 2 解 SN 9767a 炬凶拠眠 ( Y ) ト 0 9 八ロ - 、Øド レ 2 純Øくト区 4 ◎粟 '< E4 ー ( 一トト◎囲Ø 粟ー K,Ø - 「、⑩レ酬朴 9 冂 (t) '< ロト 0 繼辟 uNIZV9VJN 朝一 ILI 086 邯Ⅱロ む 0 皿・・ 9 。田籵 266 校Øエー ( 署 < ) 職凶矩 亠く入疇 CO 仰辟レ ー田 dNIZV9VJN 9 ( 経朴 )
実践アルゴリズム戦解法のテクニック 再帰降下型構文解析のプログラミングは BNF や EBNF て、記述された文法から自動的 てください 決して難しいものて、はありません。まず , にパーサのプログラムを生成するプログラ EBNF て、表現した導出規則の左辺をそれぞ ムはすて、に実用化されており , BNF から C 構文解析とは , ソースプログラムを導出 れ関数に割り当てます。電卓プログラムて、 ロ語によるパーサを生成する yacc や , EBN 規則に当てはめていく作業て、あるとみなす は , 「式」とか「項」 , 「因子」という非終端記 F から Modula-2 によるパーサを生成する Co Co などが有名て、す。これらをまとめて , 「コ ことがて、きます。当てはめた結果は二次元 号がこれにあたります。導出規則の右辺に 的な構造を持っていますから , 一種の木構 は非終端記号や終端記号が現れますが , ンパイラコンパイラ」とか「パーサシェ不レ 造て、表現することがて、き , プログラムを木 れらは下記のようにプログラミングします。 ータ」 , 「生成系」などと呼びます。 構造て、表現したものを解析木と呼びます。 非終端記号→対応する関数呼出しに置き換 さて , 手書きのパーサに戻ります。前記 一例として , ふたつの「似て非なる」式の解 の抽象的な説明だけて、はわかりにくいかも 終端記号→正しい記号が現れていること しれませんから , 疑似コードて書いた例を 析木を Fig. 3 と Fig. 4 に示しました。 再帰降下型構文解析の「下降」とは , 解析 を確認し , 次の記号を読み込 お見せしましよう。 木を根から始めてトップダウンに作成する List 4 は , Fig. 1 の EBNF のうち , 「式」以 む ソ〃や、、 { } 〃て、表現された「選択」や「繰り返 ところから名づけられたものて、す。また , 下の部分を疑似コードて、記述したものて、す。 し」は C 言語の while 文や switch 文を使って表 言語は通常再帰的な構造を持っています。 Fig. 5 の基本形を忠実に守って記述されてい この「電卓」の場合も , 「因子」を構成する非 現します。これらは Fig. 5 に示したひな形を ることがおわかりになると思います。と同 終端記号として「式」が現れていることから , 使って , それぞれ対応するプログラム断片 時に , 「こんな単純なものて、 , 本当に構文解 に置き換えていくだけて、記述て、きます。簡 析がて、きるのだろうか」と疑問に思われた方 間接的に再帰構造を取っていることがわか ります。この再帰構造を一群の再帰関数を 単て、すね。 もおありかもしれません。そう思われた方 使って認識する手法のことを「再帰降下型構 上記は見てのとおりの機械的作業て、すか は , Fig. 3 や Fig. 4 の式の例を使って , Lis ら , コンピュータによる自動化が可能て、す。 文解析」と呼びます。 t 4 をトレースされることをお勧めします。 いわば人間パーサということになりますね 電卓第 2 版の疑似コード List 4 の疑似コードを元に電卓プログラム の第 2 版を C 言語て、記述した例を List 5 に示 します。 構文解析 List 4 1 : 式 ( ) 3 : whi le (token 4 : get-token() ; 5 : 6 : 7 : 9 : 10 : 項 ( ) 12 : 13 : 14 : 15 : 16 : 18 : 19 : 因子 ( ) switch (token) 21 : case 左括弧 . 22 : get-token() ; 23 : 24 : if (token = = 右括弧 ) 25 : get—token ( ) ; 26 : else error ( ) ; 28 : 29 : break ; case 数値 30 : 数値の処理 31 : get—token ( ) ; 32 : 33 : break ; default : 34 : error() ; 35 : 36 : 37 : } = 加法演算子 ) { + ”を読みとばす * / いろいろな機能追加 この節て、は , 電卓プログラム第 2 版に機能 追加を施すことを考えてみましよう。まっ さきに考えなければならないことは , 単項 演算子十 , ーの追加て、す。 List 5 の電卓だ と , 「一 1 十 5 」のような式はエラーになって しまいます。これはちょっとお粗末てす。 単項演算子を追加するためには , 「式」の導 出規則を以下のように修正すればよいて、し , こて , 贒 ] 〃は初めて出てきたメタ記号 て、す。 [ ] は , が省略可能な項目てある ことを意味しています。また前述のように 、、十〃と単純化して書いてありますが , ヾ十ク 因子 ( ) ; while (token = 乗法演算子 ) { * " を読みとばす * / get—token() ; 因子 ( ) ; ク ッ 工 チ す / はす ば * るば ・ / と理いと * み処てみ 合読の来読 場を」がを の”式” 弧” 括 * 左 / * 数値の場合 * / / * 数値の処理をする * / / * 数値を読みとばす * / / * ” ( ”でも数値でもなければ、エラー * / 実践アルゴリズム戦略解法のテクニック 65
TabIe 10 プリンタの制御コード 影響する 制御コード 説 オプション スイ、、 プリンタの初期化 すべて ESC @ 工リートサイズ ( 12 キャラクタ / インチ ) の指定すべて ESC M すべて 双方向印字 ESC U 0 n/180 インチ紙送り量の設定 すべて ESC 3 n n/180 インチの順方向紙送りの実行 すべて ESC J n 行単位ページ長設定 ( n : 1 ~ 127 ) ESC C n ニ重打ち文字指定 ESC G 漢字高速印字指定 FS X 1 漢字モード指定 FS & 漢字モード解除 FS . 半角文字指定 FS 半角文字指定解除 FS DC2 縮小文字指定 ()N K 文字 ) 漢字文字間のピッチ調整 FS S n 1 n2 漢字半角文字間のピッチ調整 FS T n 1 n2 m ピットイメージモード種別 ドット密度 1 8 ピン倍密度 120 DPI -d8 -d9 3 8 ピン四倍密度 ESC * m nl n 240 DPI -d8 -d9 ー「 33 24 ピン倍密度 120 DPI -dl 6 ー d24 39 24 ピン三倍密度 180 DPI -dl 6 ー d24 ー スイッチが動作するかどうかは確認してい 認しておりません。 ません。なお , DynaBook の日英 MS-DOS まとめ 5.0 は MS-DOS 3.1 とは BIOS の仕様が変更 されているため , ビットイメージが必要と [ 1 ] fMS-DOS Version 5.0 Programm なるスイッチは機能しません ( 公開した BIO 今回は ESC / P プリンタの例を紹介しまし er's Reference 』 , Microsoft PRESS S の仕様を勝手に変えるなんて困ったものて、 たが , ドットプリンタのもうひとつの標準 [ 2 ] fMS-DOS 工ンサイクロペディア すね ! ? ) 。 DOS/V 工ミュレーションモード て、ある PR ー 201H て、も同じようなプログラム Volume 1 , Volume 2 』 , アスキー にすれば動作するはずて、す。日英 MS-DOS [ 3 ] fIBMDOS バージョン J5. O/VBI を作成することがて、きます。 PR -201H をす 5 . 0 のテクニカルマニュアルを入手しようと て、に手放しているため , OS インターフェース技術解説書』 , 日 こ数年使ってい 問い合わせたところ , まだて、きていないと 本アイ・ビー・エム ませんが , 筆者は今回のサプセット仕様に いうことて、した。 リリースされてからしば 相当するユーティリティを作成しています [ 4 ] 『 IBM DOS バ ージョン J5. 0 , J5 . 0/V 技術解説書』 , らくたっため , て、きていないとはおかしい ( バージョンアップしていないため , 機能ア 日本アイ・ビー・エ のて、すが , 間い合わせた先の調べ方が足り ップから取り残されただけなのて、すが ) 。 p [ 5 ] 『 IBMDOS バージョン J4. O/VBI なかったのかもしれません。 Rー201H は ESC/P プリンタと比較して機能が AX マシンと FM-TOWNS て、は動作を確 低いため , あまり好きて、はないのて、すが , OS インターフェース技術解説書』 , 日 Fig. 3 罫線の縦拡張 明 〇ヘッドピン上ピット 7 〇ヘッドピン上ピット 6 〇ヘッドピン上ビット 5 〇ヘッドピン上ビット 4 〇ヘッドピン上ビット 3 〇ヘッドピン上ピット 2 〇ヘッドピン上ピット 1 〇ヘッドピン上ビット 0 〇ヘッドピン中ピット 7 〇ヘッドピン中ピット 6 〇ヘッドピン中ビット 5 〇ヘッドピン中ビット 4 〇ヘッドピン中ビット 3 〇ヘッドピン中ビット 2 〇ヘッドピン中ピット 1 〇ヘッドピン中ピット 0 〇ヘッドピン下ピット 7 〇ヘッドピン下ビット 6 〇ヘッドピン下ピット 5 〇ヘッドピン下ピット 4 〇ヘッドピン下ビット 3 〇ヘッドピン下ビット 2 OR 〇ヘッドピン下ピット 1 〇ヘッドピン下ピット 0 〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇 OR OR OR ¯X すべて すべて OR OR OR テフォルト OR 機会があれば紹介て、きるかもしれません。 ム 90 C MAGAZINE 1992 9
うるう ( 4 ) 閏年の計算は , 次のように行う。 うるう 西暦年が 4 て、割り切れる年は , 閏年て、ある。ただ し , 西暦年が 100 て、割り切れるが , 400 て、割り切 れない年は平年て、ある。 ( 5 ) 正弦曲線は , 61 桁の幅に印字する。 sin(x) X30 十 30.5 の値の小数部分を切り捨てて 整数値としたものを , 印字位置 ( 配列 ten ) とす ( 6 ) 印字する文字は , 肉体が ' # ' , 感情が ' 十 ' , 知性 が ' * ' て、ある。ただし , 肉体 , 感情および知性 のうちふたつまたは三つが重なったときは , ' X' を印字する。 ( 7 ) 印字例は , 図のとおりて、ある。 〔設間〕プログラム中の一を埋め 31 , 30, 31 , 30, int msu [ 12 ] ; は , 31 , 31 , 30, { 31 , 28 , int msu [ 12 ] まず , 各月の日数の表 のて、 , 少し解説しておきましよう まだ説明していないことをいくっか使っています プログラムの解説 て , プログラムを完成せよ。 31 , 30 , 31 } ; と宣言して msu [ 0 ] msu [ 1 ] msu [ 11 ] 28 ; と代入したのと同じことて、す。 char moji [ 3 ] Fig. A bio. c のコンノヾイルと実行 A>Icc bio. c -lmathlib@ biO. C 5 : Warning: macro lld @link.i A>bio@ 1942 1 0 31 1992 4 1 固 84 C MAGAZINE 1992 9 'PI' redefined ←コンノヾイル (LSI c ー 86 試食版 ) ←調べたい年月日を入力 ←生年月日を入力 ←起動 ←円を再定義したという警告は無視 践 C プログラミング も同様て、す。 数学関数 sin ( ) が使ってありますのて、 #include く math. h > bio. c をご覧ください て、きましたて、しようか ? 解答は付録ディスクの 全て、すが , 出題の関係上このようにしました。 のように引数の型も含めた宣言をしておくほうが安 int hi, int tsu [ ] ) ・ long keisan (int nen, int tsuki, in ( ) に入る前に のように戻り値の型だけ指定しています。本当は ma long keisan( ) ・ ろにありますのて、 , main ( ) 中て、 なお , keisan( ) がそれを呼び出す main ( ) より後 になります。 1 ) * 365L (nen となってしまいます。 (y) * 365L なら期待どおりに nen 1 * 365L として使ったときに NlSSUF(nen 365L のようにカッコをつけないと , 違い , 単なる字句の置き換えをするだけなのて、 , y * こうして # define て、定義したものは , 本当の関数と 算されます。 ん。どちらか一方て、も long 型なら , long 型として計 んし , (y) を (long) (y) とキャストしてもかまいませ りにキャストを使って (long) 365 としてもかまいませ て、は int の上限 32767 を超えてしまいます。 365L の代わ す。 (y) * 365 だけて、は , MS-DOS 上の C コンパイラ て、 365 に L がつけてあるのは , long 型にするためて、 っていませんのて、 , さして意味がありません。 現在の暦 ( グレゴリオ暦 ) がて、きてから数百年しかた は西暦 y 年まて、の日数の計算式の定義て、す。ただし , (y)/100 十 (y)/400) #define NISSUF (y) ( (y) * 365L 十 (y)/4 というエラーメッセージが出ます (Fig. A) 。 Undefined symbol: ん。これがないと , ン - lmathlib をつけてコンパイルしなければなりませ のように数学関数ライプラリをリンクするオプショ lcc bio. c -lmathlib が必要て、すし , 4 月号付録の LSI C ー 86 試食版て、は
TEC 加′ 0 ′ io $ ね m Co ゆ を宿詈響 日日 t p sample AppIicatioÄß プログラムマネージャー [WDK] ウインドウ ( ) へ丿レプ ( 川 ファイルのオプション (O) Menu ExampIe File CoIors States 幵「 e MYPAL MENIJ DEMO 匱 n click ⅲ the f0 「 a rnenu Patte 「 n 罐 e 3 TTY MetaWa 「 e MULTIPAD COMBO FiIe Open 第 TXT d: &. .\sdk\rnultrpad irectories ト b ヨ c ヨ Open 日 Name OK 0 い 新発売 ※写真は開発中のものです。 MetaWare 社 HIGH C386 WDK は、 MS-Windows Ve 「 .3.0 のエンハン = ズトモードを完全にサポトした C 言語コンパイラです。 Windows A 曰の サポートドより : 優れた IJ 陸有するアプリケーシ = ンの構築ができます。 - ーまた戸 ha L 言ト社の 38 引 DOS-Extender にも対応しているので 640KB のメモリ制限を越えた DOS アプリケーションの構築もできます。 ◆豊富なコプロセッササポート しかも、強力な最適化機能と 32 ビットネイテイプコードの生成 数値演算コプロセッサ 80287 、 80387 、 80486 、 EMC87 、 により、超高速な実行速度を実現。また、漢字対応なので Weitek 1167 / 3167 を完全にサポートしており、高速な 日本語の処理ができます。 浮動小数点演算処理を実現します。 38 引 DOS ー Extender の DPMI 規格対応により作成された ◆ 32 ビットタイナミックリンクライプラリ DOS プログラムは、 MS-Windows の DOS 互換 BOX で実行 独自の DLL スーパーバイザにより、 32 ビットの DLL 可能です。 DOS 工クステンダブログラムの、デバッグには、ソー fo 「 MS-Windows Ve 「 .3.0 (Dynamic Link Library) を生成できるので、多機能 スレベルデバッガが使用できます。 かっスマートな Windows アプリケーションが開発可 Enhanced & 386 lDOS-Extender 能です。 ・ / SX / / 4 SX CPIJÆ載機 ◆ 16 ビットダイナミックリンクライプラリの呼び出し ◆開発効率を向上させるメイクユーティリティ NEC PC-M) シリーズ、 EPSON PC シリーズ、旧 M PC/AT 互換機 ハードディスクと 2 、旧以上のプロテクトモードメモリ MWMAKE は、シンカレなマクロと豊富なオプションスイツ call 16 ( ) 関数により MS-Windows SDK でつくられ ー Windows プログラミングに必要なソフトウェア チにより、ソースコードの修正に伴うプログラムのコン、イ た 16 ビット DLL を 32 ビット Windows アプリケーションか ・ Mic 「 09 代 Windows Ve 「 .3.0 ー M ℃「 09 代 Windows Software Development Kit ルとリンク処理を効率良く行うューティリティです。 ら使用できます。 ( 但し、 Unlock Data( ) を使用でき DOS 工クステンダブログラミングに必要なソフトウェア ◆ Windows A サポート ません ) ー PharLap 社 OOLBOX Ve 「 .4 ◇ DOS 工クステンダ対応 BMS-DOS Ve 「 .3.1 以上または相当品 0 「日本旧 M DOS/V Ve 「 .4. OJ 以上 標準で 0 種類にも及ぶ Windows API 関数を全てサ ※ DOS 工クステンダブログラミング専用の H 旧 H C386 もあります。 ポート 0APIß4 数は HIGH C386 WDK に含まれるヘッ 38 引 DOS ー E ender 対応なので、ポインタが 32 ビットに ダファイル ( windows. h ) で 32 ビット関数としてプロトタイプ なり FAR ポインタを使用せすに 4G バイトに及ぶアドレッ 宣言されており、パスカル呼び出し規約に従って使用で シングが可能で、 640KB のメモリの壁を気にせずに、巨 大な DOS プログラムをスムーズに開発できます。 きます。 HIGH 0386 定価 \ 238 , 000 ( 価格に消費税は含まれておりません。 ) テック情報システム株式会社 〒 261-71 千葉県千葉市美浜区中 2-6 WBG マリフィースト 12F TEL043-29 た 3061 代 FAX043-297-3060 ( 旧テックソフト & サービス株コンヒ。ュータ事業部 製品についてのお問い合わせ 容 043-284-4822 *MS DOS 、 MS-Wlndows 、 MS-Wjndows SDK は M絖0S0負 Co 「 p の商標です。 * その他フ・ログラム名、システム名、コフロセッサ名、 CPU 名は一般に各メーカーの登録商標です。 く資料請求番号 008 〉 W ・対応 C コンヾイラ WDK. 。
0 0 最近は 386 マシンどころか DOS / V の影響て、 仮想 86 モード , デバッグレジスタといった 486 の 50MHz といったマシンも珍しくなくな 386 / 486 の機能をひとつずっ取り上げて説明 ってきましたが , 286 マシンから 386 マシン しており , 386 / 486 の持つ機能の概要 ( 8086 に切り替わる数年前にはクロック周波数が や 286 とどこが違うのか ) がわかります。後 同じて、あれば 286 マシンのほうが高速だとい 半は 386 / 486 特有の機能を使用している DO うコヒ。ーが雑誌を賑わせたものて、す。その S 工クステンダと MS-Windows を取り上げ 頃は 386 特有の機能を使用しているアプリケ ています。 MS-Windows は Ver. 3.1 の 98 版 ただ単に高速の ーションがほとんどなく , が移植されていないため Ver. 3.0 になって 8086 として使用されることが多かったため , いますが , 最新の情報になっています。「 3 高速て、安価な 286 マシンを購入した人も少な 86 / 486 は 4G バイトの広大な空間をサポート くないかもしれません。最近は 286 マシンて、 しているのに MS-DOS て、はなぜ IM バイトし は利用て、きない 386 / 486 特有の機能を使用し か使用て、きないのか ? 」 , 「 MS-DOS に DOS たアプリケーションも多くなり , 上記のコ 工クステンダを使用すれば 386 / 486 の 4G バイ ピーにインパクトはなくなりました。また , トの空間がどのようにして利用可能になる 新たなパソコン購入時にはお金がなくても のか ? 」 , 「 386 / 486 マシンはどのようにして 386SX マシン , お金があれば 486 マシンとい 複数の MS ー DOS アプリケーションを起動て、 ったアドバイスも聞かれます。しかし , 大 きるようになるのか ? 」といったたぐいの疑 半のユーザは 386 / 486 マシンは 86 / 286 マシン 問は本書を読めば解決します。 よりも便利て将来性があるといったことは 本書は 8086 に関して理解していることを 何となくわかっていても , 386 / 486 にはどん 前提に話を進めており , 中級者向けの本と な機能があるのかを知っている人は少ない 5 プロテクトモードの I / O ( 入出力 ) いえるて、しよう。しかし , これ一冊を読め て、しよう。 6 割り込みと例外 ば 386 / 486 の機能がすべて理解て、きるという 本書は MS ー DOS 環境て、利用て、きる DOS 工 7 仮想 86 モードのすべて ものて、はなく , 386 / 486 のひととおりの機能 クステンダや MS-Windows などを例に取り 8 デバッグサポート と MS ー DOS 環境て、動作する DOS 工クステン 上げて 386 / 486 の機能についてひととおりの 第 3 章 MS-DOS と 386 ダ , MS-Windows との関連に重きをおいて 情報を紹介しています。今後しばらくは 38 1 仮想 86 モードにみる MS-DOS います。本書によって今後 , MS-DOS 上の 6 / 486 マシンて、も MS-DOS 十 MS-Window 2 386 による MS ー DOS のためのメモリ拡張 アプリケーションが 386 / 486 に対応すればど s, MS-DOS 十 DOS ェクステンダなどの組み (EMS, XMS) んなことが可能になるのか ( どういう高度な 合わせて、使用されていくはずなのて、 , 386 / 3 DOS 工クステンダの登場 機能が当たり前の標準の機能となってくる 486 の機能について少しかじっておくとパソ (VCPI, DPMI Ver. 1.0 ) のか ) が見えてくるて、しよう。 386 / 486 は機 コンの使いこなし方も変わってくるて、しよう。 4 MS-DOS と C 言語 能が豊富て、複雑なため , 本書のように 200 ペ 本書は次の 4 章からなっています。 ( 386 ー TOOLBOX, High C, GCC) ージ程度の本て、はとてもすべてを詳細に紹 第 1 章概説 介するわけにはいきません。また , 386 / 48 5 386 ー DOS-Extender Ver. 4.1 1 386 / 486 の将来性 第 4 章 Microsoft Windows 6 の機能を詳細に紹介した単行本をいきなり 2 386 / 486 の威力 1 Microsoft Windows とは 読んて、も大半の読者には理解て、きないはず 第 2 章 386 の主な機能 2 MS-Windows 2. x て、す。 386 / 486 の機能の詳細は知る必要はな 1 セグメンテーション 3 MS-Windows/386 いけど 386 / 486 について概要を知りたいと 2 マルチタスク 4 MS-Windows 3.0 か , MS-DOS マシンとしての 386 / 486 マシン 3 保護 ( リング保護 , 読み書き保護 ) 5 Windows にみるそのほかの特徴 の今後の進んていく方向を知りたいという 4 ページング 則半はセグメンテーション , ページング , 方に適していると思います。 ( 麻桐麗司 ) ・今月の書評・ 『 386 パソコン活用ブック』 MS ・ 00S ユーサーズ 活用プ・グ 進頁 星円ク 根 < 定ソ 24 C MAGAZINE 1 2 9
編肝 + 3.0 9 MAGAZINE 1992 年 9 月 1 日発行 ( 毎月 1 回 1 日発行 ) 第 4 巻第 9 号通巻 36 号 1990 年 2 月 2 日第 3 種郵便物認可 提携・ LANG E 誌 / 監修・石田晴久 C 言語技術情報誌・ C マカシノ 、 SOFT BANK MS-DOS と Windows 開発機能を探る 1992 SEP. Vol. 4 No. 9 980yen 0 0 く特別記事〉フォーマットトランスレータ「 Japan2HD 」作成記・ PC AT マシンで PC -9801 フォーマットディスクを読む 提携記事 >Who ' s Minding the store? Reference Counting in C 十十 / 実践 C プログラミンク入門ポインタと情報処理試験予測 / X68k 活用講座 アルゴリズムとデータ構造入門最終回 / 'C 十十入門講座 T Ⅳ The C 十十クラス機構 2 / 実践アルゴリズム戦略再帰降下型構文解析 D 「 . 望洋のプログラミング道場見えないエラー / プログラミングの工ッセンス / 【 5 " 2HD 特別付録】・テキスト整形プログラム「 Efin 」 ・フォーマットトランスレータ apan 2HD 」・メニュープログラム℃ AS 」・アウトラインプロセッサ℃ fin 」・本誌掲載ソースプロクラム