昭和 58 ||

MZ, パソ コン テレ X1& ШЕР

パソ コン 情報 H

PERSONAL

COMPUTER / MAGAZINE

E c ре, г

MZ- S/S

rm =. -

| Bx; (# 発行 ) 4 6 37 昭和 58 6 7 国鉄 首都 特別

ISSN 0910-7614

MAY 1985 М2-2000/ 2200 定価 480 MZ-2000/2200 X1 MZ-1500 % ` 4 | / EA | | | - à ?

"is. (29 ジョ イジ イノ バッ HEI! 家族 ひと ひと りか 楽し 7 種類 新しい ワン ポッ ( JOY JOY PACKII ) 77 ペン シル 6 MZ-5A002 価格 16.800 家族 みん 活用 きる 機能 画面 対話 1 バン UT + レン ダー 機能 基礎 学習 きま

プラ ザー M way, љо витают d ママ ーー 7 バー ティ フレ ッシュ アッ '。 家計 簿 くり クラ 楽し 集い 効果 演出 くれ 7T ーー = " フィ > ` 2 «ха: テニ 5 スタ ディ メイ қалан ファ ミリ ンピュータ 高い ЖАР Самый): 好評 JOYJOY PACK (MZ-5A001) 4

テニ MZ-1500 パッ コン 暗記 カー 標準 価格 16,800 発売

レンコ ンス クー リン , 知ら ・… @ 場所 : 東京 支社 パソ コン 教室 03(260)1161 :4 27 PM2:00 5:00・5 11 PM1:00 4:00・5 30 PM5:00 8:00 定員 : 20 (定員 締切 9 ます) : 1,000

パー ツナ ルコ シシ

標準 価格 18,000

ИОВ Е (+ë 10,000Ғ3

ТАС 3 価格 19,800

өЗИНОМС- ТААР E ($1822 000 2075 MZ-1P14 標準 価格 54.800 ピッ MZ-6P13 標準 価格 5.000

プラ ンク ティ スク MZ=6F 03 標準 価格 450 (1 P 写真 14 カラ スプ レイ MZ-1D 15B 標準 価格 72.000 オプ ジョ 画面 ハメ コミ 合成

mann. 41% Q gn “ур c VR wh < ud < ЭЖ リプ 454 FE ак, 058 vUFr Tow ELE OG

Mtr -ARIUT Í жн тыз XEBEREK SHE 223228 Qr (06)621- I221 4RR) $ 問い 合わ 社内

国内 情報 シス テム 営業 まで

ОБЛА.

CONTENTS ҮҮ 2 asss ンス テム ツール

MZ-5500 : ファ イレ コン バー | CP/M-86 MS-DOS 山下 直人 34

MZ-5500/6500

ファ イル コン バー || JwP CP/M-86 後藤 貴行 43 Dec ` MZ-2000/2200 nma CP'M-86 16 New Yorkers 48

表紙 Топу Roberts

"TACTICS OF MISTAKE" MZ-2000/2200 Young Artists England N ^ * 2 i à 16 BASIC QD する кшй оз ФСР/М. СР/М-86, MP/M Digital Research ee MZ-2000/2200 @UCSD p-System カリ フォ ルニア 理事 TAKE-DOS 2000 竹崎 伸一 66

@RACET NECDOSIZRACET COMPUTES

958-80, SB-86 LIFEBOAT ASSOOCIATES GWORDSTAR, MAILMERGE, SPELLSTAR. WORDM X1/C/D/turbo, MZ-2000/2200/80B

ASTER、CALCSTAR.DATASTAR.SUPERSORT.IN 簡易 = 村崎 安志 75 FOSTAR Micro-pro 登録 TT ティス クエ テイ

その ログ ラム シス テム , CPU

メー カー 登録 商標 MZ-1500 パタ エー デモ エー 使い

No РСЕ FE 近藤 弘幸 77

, 無断 複製 禁じ られ いま THE SOFTOOCH _ DBS A A

Part.1 ソフト ワイ ワイ

めで JOY JOY PACK П 114 こう この アド ベン チャ

Part.2 GAME REVIEW 118 ノン バー ラバ パニ / ロン

ぐる / リフ ター

Part.3 清水 ゲー テク 道場 120 ヴォル ガー

Part.4 SPECIAL REVIEW 122 Challenge F2 GRAND PRIX

Part.5 BUSINESS REPORT 124

xiturbo RDB ビジ レス 熱烈 ゲー / SOFTWARE

シャ パー ソナ ルコ ンピュータ MZ-2200

価格 128,000 1983 7 発売

EY £ £ 7/Z ZW

アマ サー ビス ーー……………… 192 絵夢 手箱 16 ЕЕЕ 究極 コン ピュ 有田 隆也 109 MIA oe 190

- [oJ V 22r 2E 14・15

それ わら カス タム デバ イス ……… ドー 198

パソ コン 17 CATS EYE ee 199 ヨー ロッ 騎士 ツア 峰岸 140 алжАашшШесезезееееезееесее 193

コン ピュ 4 р - s 6 =: E 実務 教育 研究 TT ブイ TT) 199 新宿 あちゃ ълът мз сг

連載 / ジネス / /DOS/ ЖЖ)

MZ リー PSG 製作

9 85

C テッ by テッ 2

コン バイ , リン i マイ クロ デー タベース アン ソシエ イツ …-56

マイ クロ ボー þoereerrrrirerreisn 188・189

きる メタ BASIC 高原 ひで 104 マイ クロ ラプ eee 196 š ケー - A m Y PA SF SP S. sssssssscacscseavsse 19

プログ ラム レス 使う ラウ ンド シス テム 研究 …… "の im! 200

X1/C/D/turbo айка іо сааса 12

ペン コン / デオ ユー ザー 映像 処理 入門 т 秀則 1 27 YS 近畿 м 7 ——————————— T 198

アニ メー ショ

Lisp こう 133

プロ グラ x =

MZ-700/1500 アド ベン チャ m ўа

TECHNOCRACY I *

X1/C/D/turbo PUZZLE ВООКӨ LERMAN TS?

753 ケー

ShortAccess

PU 電信 受信 練習 プロ グラ TUR

NEW PRINTER GRAPHIC TOOL RERA 164

使え シリ 9 _ X1turbo 5 加藤 隆之 166

45/ 文責 つく れる ター

DHT

| ワー | 簡単 操作 入力 きる 新開 漢字 BASIC 標準 装備 . 漢字 変換 カタ カナ ひら 文章 作成 きま れき 処理 機能 移動 文章 (プロ グラ ) くり 返し 使用 きる コピ 自在 まさ プログ ラミ ング 感覚 ピー Y 文書 作成 可能 報告 ジネス ちろ 教育 研究 各種 レポ 幅広 きま

| 高速 密度 グラ フィ | 曲線 1000

ハイ レベ 表現 可能 する 640 х 400 ルカ ラー。

ビジ ネス グラ チャ 作成 コン ピュ グラ フィ ックス 表現 楽し ゆめ ます

ビデ ]

SHARP

すべ

<X1 特長 > PRINT DATA REM イル 直接 漢字 書き 込め ログ ラム 作成 修正 訂正 容易 JIS 1 水準 漢字 ROM V-RAM 搭載 より 漢字 1000 文字 高速 表示 実現 ユー ザー 定義 キャ ラク 高速 ペイ ント 機能 ШТ 開発 黒色 スー パー イン ボー 85K イト ユー ザー エリ 172K イト 容量 RAM 5 ンチ ラッ クミ ピー、8 ンチ フロ ー、 10M イト ハー スク BASIC サポ マウ RS-232C ユー ザー イン ター フェ ディ スプ レイ テレ 世界 640 400/640 x 200 ドッ 自動 切換 実現 レン ドリ 追求 機能 薄型 キー ボー キー 配列 50 順に 変換 可能

ж Model 10 400 モード フル カラ 表示 ジタル テロ マウ RS-232C

イン ター フェ イス オプ "ショ 、RAM 124K イト リア 32K イト 説明 作成 製版 合成 写真 ソフ せん

< オプ ショ >

ミニ フロ スク ドラ イプ (CZ-851C ) CZ-51F 標準 価格 39,800

クセ CZ-501F 標準 価格 129,800 レコ CZ-8RL1 標準 価格 24,800

プリ ンタ CZ-8PK2 標準 価格 134,800 CZ-8VP1 標準 価格 59,800

ビデ オマ

ホー 接続 する コン ピュ 画像 スー イン ポー まま 録画 きる 採用 デジ タル テロ >* (特許 出願 )。 ホビ ちろ ビデ オォ 教材 映像 カタ ログ デオ POP 《⑩ デオ テー 新しい メデ イア 実務 活か せま

新しい 実務 ガー ルド ター 走り

パソ コン テレ A уу 7 / // 2 Model 30 (ミニ フロ イブ 2 ドラ イブ 内蔵 )

シリ パー ソナ ルコ ンピュータ オキ CZ-852C 標準 価格 278.000 Model 20 (ミニ フロ イブ 1 ドラ イブ 内蔵) パー ソナ ルコ ンピュータ キー ボー CZ-851C 標準 価格 248.000 Model 10( 電磁 メカ カセ レコ 内蔵 ) バー ソナ ルコ ンピュータ キー ボー CZ-850C 標準 価格 168.000 15 カテ ラー ディ スプ レイ テレ CZ-850D 標準 価格 129,800

カラ それ オフ グレ (E) レッ (R) 2 あり ます

バー ソナ

CZ-8DT2 標準 価格 44,800

4 写真 Model 30 C$,

< 特長 >

NOUS

F-RA 277 ИЕ UL TERR, АУ Жее IAJX7T4-21—9 Е ҘЕ,

@X1 標準 BASIC 併用 より 変換 可能

(収録 語数 30,000 )

BASIC ほとん いま

@ ステ 常用 熟語 登録 きれ 追加 きる ユー ティ リティ 付い いま ,

頻繁 使用 する 語句 使い 易い よう 登録 きま

B 2D5 FD CZ-111SF 標準 価格 8.800

=

S |

Mtr -ARTIE I e 問い 合わ 機器 事業 シス テム 機器 営業 /〒545 ЖЕНТ SF E 812286228 T1 (06) 62 1- 12210 38)

東京 /〒162 東京 新宿 8 番地 (03)260- 1161( 代表 ) シャ エン ジニ アリ ング 〒114 東京 東田 2 丁目 13 17 (03)893- 4649

E ж

x Aw Р ж ыж

これ スー パー イン ボー スズ

ゴン ピュ 画像 実写 映像 自在 合成

WTOK AVI,

パー ソナ ルコ ンピュータ CZ-804C 標準 価格 139,800 14 カラ プレ (シャ ドウ マス クビ ピッチ 0.45mm CZ-801D 標準 価格 99,800

あり ます KR プリ ンタ CZ-80PKS オプ ショ .。

SHARP

みた

ホビ ジオ ネス ソコン 使い こなす 漢字 使え きら 0 ます -

拡張 意欲 わい 〈《 ニュ A47 XX1CK、 1CS そう シス テム アッ " 備え 拡張 I/O 2 ポー 発展 さら X1CK 、TJIS 水準 2965 含む 3707 文字 収納 漢字 ROM 標準 実装 読み すい 漢字 表現 自在 拡がり また ーー コン ピュ 画像 テレ デオ 実写 映像 自在 合わ せる スー パー イン ポー そし 高速 強力 グラ フィ 世界 先駆 映像 表現 領域 X1 あの 優れ グラ フィ すべ 継承 。5 X1 リー 豊富 ソフ 5 その まま 使え ンプ * プル 設計 あら ゆる 分野 合わ どん どん シス テム アッ "

きる シン ехіСе XI1D、X1 場合 漢字 ROM < > 必要

[ オプ ショ

デイ スク ドラ イブ CZ-801F (S/R) 標準 価格 198.000 ラー プロ フリ ンタ CZ-8PP2(S/R) 標準 価格 54.800 コン パク ロッ ピー ディ スク ドラ イブ ′CZ-300F(S/R) 標準 価格 79.800 @ ナル テロ CZ-8DT2 標準 価格 44,800] esr CZ-8PK2 標準 価格 134.800 デジ タル テロ CZ-8DT 標準 価格 89,800H] ӨШ туу CZ-80PK (S/R) 標準 価格 123.800 ビデ オォ マルチ モッ CZ-8VP1 標準 価格 59.800 ドッ フリ ンタ CZ-8PD2(S/R) 標準 価格 79.800 @ FROM (CZ-800C、802C、803C ) CZ-8KR 標準 価格 38.000

パー ソナ ルコ ンピュータ CZ-803C 標準 価格 119.800

14 カラ ディ スプ レイ テレ ( ドウ マス クビ ピッ 0.45mm) CZ-801D 標準 価格 99,800Ғ3

@X1Cs ロー ズレ メタリック シルバ 2 あり ます

AXZ

N AXZ パー ソナ ルコ ンピュータ キー ボー CZ-802C 標準 価格 198,000 pr AS A TUE TUR AS Ы ; (マス クビ ピッ 0.4m バー ソナ ルコ ビュ +. cz 800С 標準 価格 155,000 с2-8020 標準 価格 128.000 14 カラ スプ レイ テレ CZ-800D 標準 価格 113,000 @ XID ロー ズレ タリ ⑱X1 ロー ズレ メタ リッ クシ パー、 ノー ホワ イト 3 あり ます バー 2 あり ます

デイ スプ レイ テレ CZ-800D、801D、802D X1 リー すべ コン ピュ 組み 合わ

豊富 X1 ソフ 共通 使え コン パチ ブル 設計

IM ЈЕ А

<X1 リー 特長 > 6347 СРО: 780А(4МН2). ント ロー 2 サブ CPUIE LG XC 122K 34 F RAMFEEHEK 3 (CZ-802C, 803C, 804C) Өз.- ザー 定義 キャ ラク ター ゼネ レー ライ オリ ティ 機能 変換 機能 どき ラフ 8 クタ 3 和音 サウ ンド ゼネ レー 予約 可能 タイ マー つき カレ ンダ ロッ < ディ スプ レイ テレ > 小さ 細か 4 きり 再現 する ファ イン ピッ ラウ 採用 RGB デオ 入力 レビ 出力 端子 装備

レー Var АЖЕ 41 合わせ -- シャープ 電子 シス テム 機器 営業 /〒545 阿倍野 長池 22 22 mr (06)62 1-1221 Gc X) 東京 /〒162 東京 新宿 8 番地 12 (03)260- 1161( 代表 ) シャ エン ジニ アリ ング 〒114 東京 東田 2 丁目 13 17 (03)893- 4649

SHARP

АЖЕТ ВЕ CERE,

X1 標準 BASIC 併用 より 変換 ステ ュー ザー 自由 文字 登録 専用 オリ つく れる 辞書 テー テリ ティ ソフ シス テム 辞書 BASIC ほとん どす よく 使わ れる 3 収録 きれ おり 辞書 変更 ユー ティ リティ 利用 すれ 追加 えも OK。 ユー ザー 辞書 頻繁 使用 する 語句 自分 使い すい よう 登録 する こと 活用 電話 応用 きま 処理 機能 さら 強力

Ш20-5 ҒО) С2-1115Ғ 標準 価格 8.800

ズー パー イン ボーズ 作成 わか りや すい アイ コン 表示 ログ ラム 組め コン ピュ 画像 楽し みな 作画 きる うれ ラフ クツ ボード ちろ イス ティ マウ サボ ポー 100 イン モー 装備 いま モー 換え ウト デオ マル "ロモ 入力 切換 “スタ 切換 える いう きる タイ プル 機能 装備 デオ 編集 威力 発揮 ます アイ コン 表示 よる グラ フィ マン ВЖЕ Ф-Ө- 2-Ө"2:7/,ө:-2/:ө-1--ө.7.-өө72-ө..-2:өт77-ө)--

W2D:5 FDh& С2-1145Ғ 標準 価格 5.800

ペー ソナ ノレ テロ

ga 96 ター 迫る 高速 グラ イッ 実現

X1 リー 待望 ニュ BASIC 登場 ます ター 高速 グラ フィ きら 漢字 ユー ティ リティ 追加 よる 漢字 入力 簡略

プリ ンタ ユー ティ リティ 追加 …… X1 BASIC

セッ CZ-112SF 標準 価格 7.800 2D.3'FD CZ-113SF 標準 価格 8.800

=

近日 発売

М» ЛАЖЕ ERI @ 問い 合わ 綿 電子 機器 事業 ソフ 〒162 東京 新宿 八幡 8 番地 (03)260-1161( 代表 )

EPSON

対応 ROM カー トリ

Z—HyzCSBo 3 BE Xu 各種 パソ コン リッ 変換 簡単 接続 きま ESC/P (QC-10II、HC-40、X1 )@FM (FM シリ )@PC (PC シリ パソ ピア シリ ) X1 (X1、X1 ) 機種 カー トリ JX 近日 発売

и -

100срѕ, 59LpmO SEED E

この クラ 抜く 100cps 印字 速度 ピー ティ イー キャ リッ ジリ ター 高速 コマ ンド 処理 より 印字 効率 高め 59Lpm 高速 印字 可能 いま

I8X 12K» KONLQX E

エプソン 6 優れ 印字 品質 6 ちろ 継承 18 X12 NLQ( アー・ ター・ ティ ) 品位 文字 印字 可能

53K dV fida oo

カッ トシ フィ (オプ ショ ) 主として ビジ ネス プリ ンタ よう ンタ

プリ ンタ エプソン

カッ トシ フィ #8338 (近日 発売 予定 ) B5 A4 カッ セッ 自動

オプ ショ あっ カッ トシ フィ モッ 自動 あたかも 連続 よう 使用 プリ ント アウ 効率 高め ます 50 まで セッ ВЕНЕРЕ MAT ЖТ Б (256,800Ғ3

英文 ワー プロ 作成 威力 発揮 する 自動 ジャ ステ (自動 左右 ) 文字 マー 作成 きる ダウ 文字 セッ 文字 パネ ルス イッ セッ きる パネ セッ テイ ング? 1KB 入力 バッ ファ 装備 対応 ソフト 豊富 まる 全身 イコ スト パフ ンス 誇り ます

SP-80 X| リッ 使用 X| 接続 (ケー ブル #8226) こと より スト 出力 (文字 コー ) よび ハー ドコ ピー 可能 ESC/P リッ X| リッ 使用 X| 接続 (ケー ブル #8226) する こと より リス (文字 コー )、 コピ ー、 よび 漢字 出力 可能 SP-80 漢字 プリ ンタ あり ませ ピッ トイ メー 漢字 出力 する ワー プロ ソフ より

簡単 漢字 出力 する こと 可能

⑧「 フィ シャ ルプ リン ンド プッ 4 ( ー・ フト ) Ұ2,400 @ プリ ンタ ESC/P "の ター ミナ ルプ リン ント ロー ルコ 体系 世界 統一 規格 提唱 製品 開発 され いま

nu 東京 新宿 西新 宿 2-4- | 新宿 NS 6109 (03)348-680I0 T J ショ / 宿 NS ビル 5 6 PR (03) 258-4841 @ XER (06) 365-5071 @ 阪南 (06)632-3353 ©®3147(0!!)222-282! Ф 新潟 (0252)43-8515 @ 古屋 (052)962-700| @ (0762)62-3216 広島 (082)262-518| Ф #808 (092) 471-0761 @ 鹿 @ 詳し 資料 請求 住所 品名 書き エプソン 販売 まで 申込 みく さい

(0992)25-7717

ソフ 399-07 長野 広丘 80 秋田 (0188)32-4002 仙台 (0222)63-3691 © 長野 (0263) 36-7251

CC プリ エイ クラ 集会 通知 ワー プロ 打っ くれ 頼ま それ スカ ルコ ピッグ バー ガー コー ラフ

東海 クリ エイ 〒108 東京 三田 3-1-7 東宝 ビル 4F(4 1 移転 ) 宮崎 営業 〒880 宮崎 1-6-35 住友 生命 ピル 7F TEL0985-29-1966

NA AX sanfte 77. = シグ мч モデ 0、3 5'epX28,000

ビジ ネス シー 活躍 ユー カラ 、Xlturbo 登場 変換 ラク 入力 編集 機能 文書 作成 リン 豊富 こと リッ 、X1lturbo 通信 機能 80 文書 作成 機能 標準 装備 まし 120% / ・JIS 入力 . 3428 変換 (X1 ). 文節 変換 (MZ-15000D 辞書 ROM 必要 。) 編集 / 挿入 . 中央 揃え .

複写 . 文字 複写 . タブ . 調 登録 (X]1 )eto 通信 機能 (MZ-1500 QD ) . X1 ター ポキ / 機能 印刷 間隔 指定 可能 ます

ヴィ ジュ アル ワー 557% 7 жм“ ブー /OP

5 20۰3 20¥2,8000 ТАРЕ Ұ18,000 аи Е, a cs * ポス ター ее,

使え 2. チチ а egt: テロ 流せ いう 3 つの 特長 ユー カラ POP 備え いる

倍角 倍角 ・4 . 文字 色付け (7 ).etc ロッ / : テロ テロ * テロ . モー : -・ ニュ アル 時刻 指定 .etc IRE IT TOE НЕ ВО ЧЕЛ ЕБ, 揃え FR S. SE, / フト マー ジン 指定 . 文字 / 指定 .etc ディ スク / 登録 etc.

ペン クツ プロセッサ

І17-11510101 プー ツラ iJ

SeD:-3?DX19,800 ТАРЕ X9,800 QD %12,800

X1 MZ-1500 実用 役立て よう 思っ 091]. 使い こなせ コン パク ワー プロ メモ ポー 宿題 まで 多彩 ュー カラ ジネス 利用 THD EEA, 趣味 パソ コン * いっ パー ソナ 0A / ・JIS 入力 文節 変換 . 辞書 学習 機能 . 語数 2 . 編集 /40-80 画面 表示 . 訂正 . 検索 . 禁則 検索 . 下線 設定 . 左右 揃え

左右 設定 . 外字 熟語 登録 . 演算 機能 .etc 通信 機能 . 印刷 /40・ "OFTEN. (ЖЕП 12136 プリ ンタ 必要 。)etc ファ イル 機能 / 複写 . 文書 . 文書 自動 保管 etc.

АХ 簡易 ログ ラム

Шама САСО

3'20%19,800 ТАРЕ Ұ9,800 QD Ұ12,800

※QD MZ-700 QD 使用 きま

家計 簿 スト 成績 集計 ロリ カー 維持 etc。 計算 "уві: ・CALGO まかせ 手順 登録 入力 する 思い まま

$、 並べ 機能 利用 蔵書 リス 使え ます サイ /5 モー :S (7 ) 15 X200 .10 モー : S (7 7200 . / . 一.*. . SQR( ). INT (整数 ).ABS( ). SGN( ) 機能 . 並べ . 挿入 . カー ソル ジャ ンプ . デー 算定 複写 . 画面 固定 . 印刷 . ラフ 作成 (MZ-1500 ロッ タプ ンタ 必要 。)

※320 5'2p 交換 希望 弊社 まで 連絡 くだ さい

イン フォ メー ショ ンタ (wm) TEL 03-456-4610‹(өч+ > つい 問合せ 左記 まで 気軽 どう ғ) : 資料 請求

о>>эб6Җ ғасы О ПАП. NAD z2-0-—0oGCK00Y ооо) hil C e RT ^GH Iso SHIASEN NNUS VINO MET "inui кыен В E デー ІШ ГІШ ー・ \ XihT C192 st HILL 1 oon > ; caps Ap ААА СЫ УЛА ЫНЫ О 4 SDE bn E ヘー ロー p WO " 0f Лара:

te SE ARR C de" ED E

Roland

озса а eie DH t ЖБ

плут (RETE trig

^

xt

MRE EN HKCU IICEURANAANTHES’

cw Cad LURR & лмо Ам O= SS や" Ж OSIS GP HSN SPE:

(җәм GT OZ о-оо 5h PHI TIEN, НЕ)

озон olv grew GSC R- 09 Ж bn SHE 8 C HT KI ВАКА" OZ2D-—2:5 ases debeo see

(жол LHS 0X 2-000 CE BS n DHK PRA REE SVS)

BAL

Laboratory

画像 瞬間 停止 プス バー イン ポー ズン タイ トル

ビジ タイ ザー 離れ ワザ

ディ スプレイ 表示 テレ デオ 画像 リア デル タイ 入力 グラ フィ VRAM 取り 込み ます ビジ タイ ザー 1 グラ フィ 生か 華麗 ビデオ エフ ェクト 展開 きる まっ シン 画像 記録 編集 する 処理 グラ フィ

“EDDY-X1 "を 付属 簡単 Желе A Yes Ip カセット デイ スク 取り 込ん 画像 記録 ИНЕ ° HED スト モー ショ グラ 楽し

«ә 3550 ※VISITIZER ソコ X1(CZ-800)

画定 / 78,000 .

画像 輪郭 取り 切り 張り 修正 調 変更 行ない ます

画像 静止 させ グラ フィ VRAM 取り 込み ます

VISITIZER 特長 iB" EDDY-X1" @ グラフィック VRAM 直接 画像 入力 する 画像 デー 特別 技法 より 圧縮 格納 無駄 あり ませ (特許 出願 ) pe 左右 2 ドッ タイ トル パタ

@ する 画像 キテ レビ スー パー イン ポー 対し 常に 効率 確認 、1 テレ 作業 可能 入力 サイ リッ 着色 され 、X1 ӨЗ20 X200 640 x 200 両方 使用 デジ タル ロッ パー 使用 録画 可能

きま @ 切り 張り 調 変更 入れ OG 取り 付け ラフ VRAM VISITIZER ボー 機能 備え いま 置き 換え 常に 簡単 . @ 画像 白黒 8 調 プリ ント アウ

@ ボッ クス ボリ ュー 調整 きま 入力 スイ 入れ 複雑 作業 不要 Eg

取り

カラ ニュ ー。

イト プシ 漢字 機能

製品 試作 製品 異な 場合 あり ます

同氏

Me = = ; DE 3

: TEL03-252-5561 FAX03-252-8675 шой жас Ала CELA FS. ТЕАТ

+

i - à š - ха

リレー ショ ナル デー ベニ . :

理想 ソフ 完成 / ) 学習 いで よい |

0S 初心 簡単 プロ グラ ミン きま

すぐ 使え ソフ ソフ デー ジレ 相互 利用 きま

%

ана

ビジ レス つい いる プリ ケー ショ

(実務 使え 応用 実例 ) 1 21 簡易 マニ 41 売上 ファ イル 61 2 22 E HH KE DEN 42 62 | 3 23 43 E 入力 63 1 使用 説明 2 24 жіне 44 64 5 ЖЗ 25 2% 45 6 使用 説明 4 26 住所 46 7 27 成績 処理 47 8 28 E スト グラ 48 9 29 ヒス 49 E ラフ 表示 10 30 計算 50 П 連続 PF プロ グラ 3 E 金策 プログ ラム 51 自動 直行 記録 | FD 80 ァイル 登録 可能 メニ ュー 作成 15000 プロ グラ ミン 可能 12 E 集計 & 32 52 E ログ ラム (! ァイル = ヨコ 426 項目 2799947) 13 X1-TURBO 33 53 14 34 在庫 54 PE 伝票 設計 7 15 タイトル 35 55 科目 コー 75 > = 16 E 5 プログラム 36 請求 56 76 80 コマ ンド カン タン 操作 くり よく 使用 する 手順 自動 プロ グラ | пяна 37 PEREAT a ORMAT т > = 5 " E - 2 I ` 8 58 家計 Y 必要 デー 項目 別に すばやく 探す 検索 機能 1 ヵ所 変更 すべ 変更 きる デー ンク 19 MRE 39 青色 決算 59 @@ 79 bt i ма š 20 E 1 0 ET GRE 6 単位 ウル トラ 演算 可能 各種 伝票 プリ ント ウト ЗЬ "TRE. ERROR UL 0 80 情報 集計 可能 ラク ラク デー 並び 替え 可能 No. Disk used : 36%

CLAD РИН JMFDRORER/

ジレ すべ コマ ンド 使え デー 20 Te \3.000 買い 求め

仕様 形式 演算 レー ショ ナル デー タベース 1 ファ イル 最大 26 (130 ) 999

! 文字 文字 130( ) 16

1 シー ファ イル 80 ァイル

演算 集合 演算 関係 演算

演算 精度 !6 10 演算 = AE 6 構成 比率 累計 残高 タテ 合計 ヨコ 合計 жн 平均 標準 偏差

入力 フル スク リー ディ スク ロー

コマ ンド ディ スク 80 カセ 72

開発 言語 アセ ンプ

入力 ワー プロ 感覚 熟語 辞書 ( 32.000 )

含む TAPE бағы Ұ 10,000 5 イン 、3 ンチ ( )…-\39.000 5 イン チタ IE % 48,000 ※QD…\12.000 MZ -2200 対応 機種 X1/ MZ-2200. 2000 MZ-80B

OAT 2788385873 *Let'szU—ZAz" e 下記 ソフ 起動 する ジレ 不要

@ デー 全て ジレ 使用 きま Ф Let's リー デー 互い コン パチ

32.000

ЖАБАЗЕ ИЙТ] у» „+.

(シャ ユー ザー 辞書 使え ます ) ファ ミリ フト

exis

etu i

@DM

@ ベー スワ ブロ 電子 メモ

電子 伝言

/ @ 番号 高速 サー @ コー デオ 管理 eai

ファミ リー パッ (108A) \30.000 @ ラオ 整理 \ 6.800 カロ リー 計算 ¥ 6.800 あぁ あな ? \ 6.800 レコ 博士

買い

今日 献立

@

\ 6.800 \ 6.800 \ 6.800 \18.000 \ 6.800 \ 6.800 \ 6.800 \ 6.800 \15.000 \ 6.800

@ スト 成績 処理

生徒 台帳

成績 記録 簿

@ 管理

売上 管理

eit:

@ 売上 / 入管

マル 集計

在庫 管理

顧客 管理

マル 集計 フト 外国 フト @ 売上 / @ 見積

@ 納品 / 発行

経費 フト

@ 経営 シュ ミレ ーション マル

レン タル 業者 ソフ eiui

備品 管理

講師 配置 管理

@ QSL 管理

ビジ レス 学習 ソフ @ @ マン 成績 管理

@ スマ 管理 セー ルス マン 売上 グラ ABC өсі |

知ら バー ソナ パッ _

セー ルス マン パッ

小売

卸売

ビジ ネス パッ _

@ フト 整理 簿 mos レン アマ チュ

өзін |

_0A

@ 問い 合わ : TAM 岡崎 大名 3-13-2 ® (0564) 53-9400

Өз = Hb [X = 1] (03)543-6987

@ 古屋 地区 受付 / (052) 452-0552

ビジ レス 開発

シス テム デザ イナ ーMASH

豊田 若宮 5 丁目 47 ® (0565)31 7644

寄り ショ 購入 場合 電話 申し 込み くだ さい

ше {АШ SM 支店 00042283 OA

フト カタ ログ 希望 さる 場合

K K X X X X X < < +<

(10%۸) \30.000

(5 ) \20.000 (158A) ¥ 52,000 ажа) \52.000 (20 ) \62.000

使用 機種 明記 請求 同封 E о 請求 くだ さい su ү? SUE SS

o

e

X] 機能 全開 (ra 興味 つき

ゲー リア 試さ れる / ER 頭脳 混乱 イヤ モン ーー ファ

| lam X1/X1C/X1TURBO(5"D・TAPE:)

DISK:\6.800・TAPE : \4.800 * イス ティ

COMPUTE ~ ЕХ

古代 文明 誇っ アズ テカ その 地下 迷宮 眠る 財宝 (アイ ドル ) 探せ 暗黒 還っ 探険 まだ いな 左右 スク ロー 広大 ここ まで 洗練 され ゲー あっ ろう 。| ー110 どこ まで 続く 7 リアル キャ ラク メリ オリ リティ 忠実 コン パー | BIELI CUNT ター 動き 連続 興奮 体験 ウル トラ 話題 いま まで 常識 | акими ые n o XVX1C/ALTURBOG5"D-TAPE D) 通用 左右 スク ロー 難問 10 8- Ф АМІ1:00--РМ5:30 Ж DISK :6,800- ТАРЕ : 4,800

AMI 1:00 РМ3:00

無事 クリ いく ? Tel. 03-265-0401

LoT м キャ 財宝 ? 幕末 アド ベン チャ ー。

[zu

深く 逃げ こん 悪漢 マウ 3

リス ボブ 追う ンチ На” ELT CEU EN рт

ーー アク ショ 面白 エッ セン ミッ

クス 傑作 。10 まで 道のり

長い 。'84 レク トロ ニッ

ヤー X1/X1C/X1TURBO(5"D・TAPE:)

DISK:X6.800- ТАРЕ ; 4.800

雄大 構想 冒険 小説 飛躍 する コン プティ ンチ ー・ れる コマ ンド 広い めりこみ ます また モー より ゲー スム XX1/X1TURB0(5"D・TAPE) キミ 成長 よう ж DISK :2 \7.800/TAPE:2 \5.400

禁断 ゲー クォリティ いのち

СӨПРТІО

コン プティ イー Torns

当社 送り くだ さい 。( ービス )

* 信販 利用 希望 品名 うえ 料金 現金 書留

A

xs from USA. HESE THRILLING GAMES INVITE YOU TO THE MOST EXCITING GAME WORLD

Licensed from

TEST 0720-77 Broderbund Software

he 2 SO) хии. М-НИ Spe дг Ghande

E ED EZ = o x`" EN アダ シリーズ

"= (io MOS A uci : | Қ q^ こい 異変 マシ ザー ちか 飛び カジ 荒らし 始め あら ゆる トリ 使っ 切な カジ 守ら ゲー 難易 変え られ オモ シロ ゲー ペア チェ ンジ

ロー ラン プー | チョ ソフ ター

Lode Runner ҒМ-7-ЖЖҒ>/-:255 テー \ 4,800 フロ \5,800 IBM リナ ルコ -9- JX

フロ \ 6,800

150 迷路 シー すご . 隠さ 黄金 求め 走る / 逃れ ハシ 昇り ンプ する オリ ナル ゲー 作れ No.1 フト ロー ドラ

CHOPLIFTER!

ҒМ-7-ЖЖ:/-л

テー \ 4,800 フロ 5,800 64 捕虜 全員 救出 せよ 緊急 | 指令 下さ . 最新 “チョ リフ ター" 操り 包ま 帝国 クリ ゴン 向う 激しい 攻撃 0.1 争う 決死 救出 作戦 ヒー ロー れる

Sof Pro International

ソフ フト プロ イン ター ナシ ナル 事業

7530 西天満 6-7-2 ピル 5F TEL.06(363)1221

えて 09 Л-ДА, (3:

ぐる 迫り ます 仕事 習い „2

RC, Pk $OU£T.Uvo£cCbtoilük2yv—udi- 充実 ノコ ンス トラ クション

締め 確実 きま 迷路 作る ゲー ハム まう

РА そん 品質 コン スト ラフ ショ ちろ デー タダ 失神 ちゃ いま 昨日 プラ モデ 作っ 機種 フル コン パチ どん どん 広がる 友達 / アロ 2』。 こい ちゃ こっち (カセ X-1>MZ 可能 ) P= usss RD s 3

4243 - de Ф CZ- 800、MZ- 2000 みた きち # G RAM © MZ-2000/2200, PC 880| 800m| /mKII/SR カラ

レコ ロッ ピー ディ スク ドラ イブ それ | GS06 | NT i7 ago, le SC/P*

使用 くだ さい жағею 自動 400 スタ 切り わり ます

求め 近く 有名 マイ コン ショ Lb vas АИ 通販 希望 使用 機種 明記 現金 書留 me 願い ます 。( ービス ) ゾー ラボ

% 父さん みせ あげ 言っ 夢中

良く ろう 同志 願い

ポッ マシ ピン ボー 満喫 リオ 登場 する ボー ナス タイ ある

サー ちろ ボレー、 マッ シュ ロブ 多彩 攻撃 きる テニ スゲ 対戦 相手 初心 1? まで 5 段階 ゲー 本番 同じ 3 セッ トマ 強敵 コン ピュ 相手 シン グル あの 組ん ダフ ルス 出来

ゴル 白い !? キミ ンカ 変化 富ん コー れる

жалды マリ オブ サー パンチ ボー ドン キー コン 3 | スペ シャ マリ オブ = KER ! カメ カメ 214 Ee DSAKEYK2AG З | ドン キー コン カニ さて マリ さあ ぶつ СШ | 再び ハチ バズ まで 飛ば そう & Ашу | 引き 連れ うま ンプ 27% P| 暴れ うし !? < M zm ンー。 VA Nintendo" Nintendo’ < そい Z1 Nintendo"

LIM Nintendo'ol Americo Inc TIM Nintendo'of America Inc DIM Nintendo'of Americo Inc.

適応 機種 === = газа [РРР ар FE ҮИС m TONS ER MI | ғс-6601 | PC 3001 PC 8801 IPC-9801F| x-1 MZ-2200 | MZ-1500 | FM-7 | S-1 | 価格 ЕЕ ーー - ーー _ ж i | | | = 3 a | š [=e Y4,000 |f жоға —- س 1 ا ل‎ " " ーーー ы ККЖ Ле? [Fo] Hs TTE tow: 1 ТЕ қы Lo 0: | nyg RUN Ұ4,000 ゴル - ーー トト - - - = BA ESE ə AI | [во | | 任天堂 Т AX(F)| BEES E \4.000 ピン ボー | FD| 5AR(F) 2 \6.800 9 | マリ オプ т] Sh E Зекен Е ТН EE IEEE | o | ¥3600 | БЕ ЕЕ» LEB} L e | БИ ДИ ЧИШ 15 EE SSS パン Tire | ЛӘР, Жо Шы ж =k 8 1 EN EX: | \3.600_ HUDSON GROUP w マリ オプ ブラザー | FD | ° e | e e Y5.800 ® | | zi. н e мем E | Тір | YS.800 | ドン キー コン 3 |T] 1 ji F | ¥3,600 AGES [Fo] | Гө | e | 1 | ] wsaoo

適応 機種

X-| シリ РС-8801 シリ TAPE \4.800 FD Y6,800

f na 5 x

\ ソン ビジ ネス ソフ

在庫 管理

パソ コン 使え 能率 : š 使い こなせ 簡単 操作 LG, ык E まる FEET 4 漢字 辞書 、45.000 価格 繁盛 秘訣

スタ (予備 ) 場合 考え スタ ^

まし

ンプ ルプ ログ ラム

ディ スク

家計 単語

住所 、6 —*

事例 納め られ

する わか ブログ ラミ ング 覚え 2 ソフ HuCAL すす めし ます

-、 イス マニ イシ セッ 集計 書き こむ 感覚 手軽 管理 達成 出来 ます 使え 使え HuCAL

ワー プロ 負け

辞書 ディ スク

5 イン フロ テイ スク

4 漢字 辞書

ハドソン 独自 デー eis Da

出来

(X1 あり ませ д, /

いま Ж Ж イス マニ | カモ セット セット すれ Z 開き 学べ ます MHF (BFE) 入力 手順 スク 編集 メン する 1 リティ 2 つの 別冊 / より すく まし / スタ ディ スク HuCAL プロ グラ すべ 納め られ いま

HUDSON GROUP w

fé»

HUDSON SOFT

ビジ ネス ービス セン ター/〒062 札幌 3

達成 オー ケー。 HuCAL 使い こなせ まま

a E E E E E E TID YS ЭЭЗІГГГІГГГІТІТІГІ-

É

ハドソン 東京 住所 変わ まし 住所 T162 東京 新宿

ЮЖ Сї БЕ ГЕ CL CUL 6 ES G EI

イシ キー ボー ぶせ 操作 わか

イッ クマ ニュ アル

辞書 引く 要領 仕方 すばやく わか

説明 基本 操作 使 きる マク まで 、HuCAL すべ わか すく 説明 まし

最高 ジネス 簡易 言語

HuCALu-7:$

Y45,000 適応 機種 NEC PC-8801( < 型番 PC-8801-01K また PC-8801-01> 必要 。) PC-8801 mk II Ww- C turto

3 5 4 7 ロナ 平岸 II 201 РНОМЕ:011-832-6729

販売 : ハドソン 販売 営業 支社 古屋 鹿 児島

田町 3-|-| ピル

Е Me 16bit Personal Computer Magazine о ! pontot puter Mag eD вл50%% 9% 9%

e NU | Er cec ° 77.4 VE nente Я WA 24 ze ота” | а 3 в

Т-ы 16 ビッ トバ パソ コン ハー よび ソフ 総合 : ER. 活用 わか りや すく 紹介 する 実用 情報 マガ ジン

ソフ トバ ンク 出版 発行 7%03-261-4095

情報 処理 試験 合格 パス ポー

情報 処理 技術 試験 ンピュータ 技術 養成 する

毎年 実施 いる 国家 試験 44 1 行わ 以来

応募 増加 20 突破 する 込み

合格 対す 社会 評価 高まり 企業 優遇 措置 設け

試験 合格 採用 条件 する ころ ふえ きま 情報 処理 試験 国家 試験 受験 対象

指導 行い 白く 役立つ 情報 満載 する 雑誌

試験 対策 情報

SNS

コン ピュ ユー 技術 2 1 受験

特集 1/59 試験 徹底 P=-X ころ やれ 必ず 解け |

特集 59 試験 徹底

流れ 図解 ター 急所 ここ

特集 難関 突破 カギ これ

59 特種 午前 試験 完全 研究

$ ERSTE P Esa t E 目立っ 5 試験 1918—88 1

久実 めき めき つく 評判 講座

sime CAP-X/FORTRAN/COBOL

受験 コン ピュータ 基礎

仕事 役立つ 話題 記事

手記 試験 合格

情報 処理 フレ ッシュ マン 知ら いな 10

好評 カラ ラフ ラム ・SF

ラフ コン ピュ 伊那 歩く ロフ ショ ナル 企業 ブーム イン н АВИ IAU o LHF RRR- 7 ВЕНЕ 7 2 / SA ЕШ ЖАШЕ

問合せ : ソフ トバ ンク 出版

EM] 102 東京 代田 2- 1 7%03(261)4095

家庭 楽し キサ ング ゲー ` иши, Еа $ / さこ 。VS' スト ナイ ンプ ペナ ント レー 占っ

es. / / ナン トレ 予想

ファ イヤ ー・ リス タル モン スタ ダー・ ニュ アル

ドラ ゴン バス ター バン リン 逆襲

ソフ トバ ンク Ге ЕТ BANK

n $344 MEGA ORBIS( TITANIA] 5655 +... Beep Load vzg СЕТ JUNGLE

Z-700 熱い 期待 応え 贈る 2Z-700 ハイ テク 活用 。Advanced 恥じ , MZ-700 機能 フル 引き , 活用 ノウ ハウ 伝授 ます プロ グラ ミン コツ , マシ 活用 どの テク ニッ タイ ニー ワー プロ , 簡易 経理 / 内容 R, 彩色 4 マー ジャ プロ グラ ムリ スト 1 ハイ テク BASIC プロ グラ ミン コツ , ゲー ログ ラミ ング , fh Pe ども 掲載 II.BASIC シン マシ アプ ロー , セン プラ 作成 利用 . フトウェア よる ワー = モニ タロ まる アド 追加 カク ヨッ fib IV. ハー ドウ よる デア ウブ プシ ステ 0 活用 周辺 機器 作る V.77Uy^—vav7n7274—'—7g'mz-700 V. 22) “елы Уг

資料 mz-700 使 ЖЕЗ, L0 zd

HuBASIC 実行 可能 サン プル プロ グラ

プロ グラ , 基本 N-DISK BASIC, Nss-DISK BASIC いて いま , HuBASIC (XI リー , MZ- 2200 2000) わずか 変更 利用 きま <HuBASIC 変更 > ルフ ァイル ける OPEN

INPUT OPEN ファ イル FOR ? OUTPUT FAS ファ イル 番号 APPEND “1% eo ファ イル 番号 , ファ イル “А?

*272 4577414280 50PENX OPEN ファ イル AS ファ イル 番号 ФОРЕМ "R^, ファ イル 番号 , ファ イル

ァイル ディ スク リプ

(5 E Jspr: LPT1:

17 | f MESTAN | »

еу АТ ОЕ: | UU 23 š わが iym? XU turbo デモ I (店頭 けた ある 3。 UV" ちょ どこ 変わ ます ihe. EHE Cb SETUEESC, са, BASUCGUERIEERUSBA TOS jj 向け ANb まな y = ZR SN TS CERT алпа Uf S SS ÓACBRHEOSHRUmRUSTA.E a Arce LT ERO

C G 作っ オリ

ロッ いち カッ 登場 ささ せる ツー キャラクタ 単位 テロ 四方 シッ バー 飛び 散ら すこ きる , スリ リン タイ トル 演出 きま 30 oni 1985:

232 САФИН MOUS EMEA A

turbo HMH

ーー ンク ンー

X1 FARS

P C GPR t

„а ат 7%...

` x -> つの >а.

H

4 . ла "ua аап R> "vw оы к, =}

Ld -^ r. “= '

жы; Ру PI taa Fi シッ Co アァ トン ef ンク 594, Оғы Я MGE au "E TA ^ rry Жа аланы. Mr i онд n eu

<< アー アン アン アン アン

побосевов 660660 Х1 テク ニカ ター NN

スト ラッ C.C.C.

好評 発売 //

・X1 さわ みな いか : How to タッ X1./

ログ ラム 作ろ

: X1 ラフ クス : ビジ ネス セク レタ リーX1 : X1 遊ぼ

・X1 ュー ジッ クハ ウス ・X1 いろ いろ

9 : 機械 使え ます

< >

O 便 情報 むめも

発表 以来 , さま ざま 投げ , パソコン イメ 変え X1 リー (X1, Х1С, X1D) X1 リー 多彩 機能 発揮 させ 開発 され 「SHARP

HuBASIC」 平易 解説 コン ピュ ふれ いう , ある 程度 BASIC 知っ

со N c + СО мо

エラ 便利 まで 対象 , X1 リー シン O ラク タコ , 実際 挙げ , 少し ずつ 確実 理解 深まる よう 構成 ペー 10 , 2 , 16 併記 され いま EA 製品 “Х12-47 まず この 1 С,

Oh./MZ 読者 シス テム ツー

非常 熱心 証拠 ティ 募集 ます , 特集 組め ほど 投稿 集まっ , 2 カ月 ほど 業務 停滞 する さて, 今回 ステ & いう こと , ディ スク まわ 特徴 作品 紹介 まし Ж-ЕЕВАБбІС Жан СЫ, + サポ па 5 +L7- 8: g) # 5М2-2000/ 2200

S-DOM 指向 EAS, # ティ ング シス テム 3

スタ 開発 加え ,

ティ 特集 2 予定 いま その X1 MZ-700 / 1500 TAKE-DOS 匹敵 する X1 DOS 発表 予定 | ティ アク セス 随時 募集 いま ちょ

шы Us

開発 , 自分 マシ 整え こと

16 CP / М-БЖЖШ ` HG, 2 グラ フィ 漢字 ペー 予定 いま すず MZ-22 00/2008 F4 х21->49%48, 3. ZEZA OS-DOMEUR 282) 2 EDHE され いな いよ 。』 are Spe: ^

勝る I

編集 , BHF voranto 2

アイ デア ツー , どん どん

MZ-5500

ファ イル コン バー [ сРм-ввоњмв-ооѕ^

М2-5500/6500

ファ イル コン バー II JwP scPM-ge^

М2-2000/2200

CPM-8B 16

М2-Р000/г200

IB BASIC QID する

MZ 2000/2200

KE-DOS 2000

ХТС Diturbo, MZ-80B/2000/2200HuBasio)

イス クエ デイ

7 MZ 1500 パタ エー デモ エー 使い

4 あな ゲー

IMZ-5500 (CP/M-86, MS-DOS)

ファ イル ルコ ツタ І

MZ-5500 MS-DOS , CP/M-86 ソー 読む こと , C コン パイ ソー MS-DOS 受け すこ きま せん そこで, CP/M-86 容易 MS-D0S 受け 渡す プロ グラ 作成 まし , 発表 "554b, エー ディ リティ 5 イジ 2 D ディ スク サポ いま TOT, MZ-6500 使用 きま せん

MZ-5500 , その 完全 生か せる よう , ドラ IOCS 持っ いま その ディ スク ドラ 利用 する L, セク 異な ディ スク 読み 書き する こと きま 機能 利用 , ドラ イブ CP/M-86 , ライ MS-DOS 割り 当て , デー 転送 行う こと まし

この プロ グラ ,CP/M-86 MS- DOS 転送 きま せん , MS-DOS CP/M-86 転送 サポ する 予定

フロ クラム 説明

この プロ グラ , CONVCPM (C) IOCS ルー チン (アモ ンプ ブラ) 2 つか 構成 きれ いま つい 別々 説明 いき ます

IOCS ルー チン

この ルー チン , Aztec-C86 MZ-55 00 IOCS 呼び 出す , ЖО 関数 C 扱え よう

int iocs (code, dx) .

int code, dx;

実行 IOCS コー ドナ 変数 ecode 入れ , dx レジ スタ セッ 変数 dx 入れ この 関数

34 OohiMZ 1985.5.

CP/M-86 6MS-DOS

Naoto Yamashita

山下 直人

呼び 出す , IOCS 実行 あと 1O CS ルー チン ax レジ スタ また 共有 ラメ エリ 介し 出力 パラ メー 返し ます

int set iocs(address, data) int address, data; IOCS 共有 パラ メー デー セッ +, address 共有 パラ メー オフ セッ ドレ , data セッ デー 入れ この 関数 呼び 出し ます

int get_iocs (address) int address: IOCS 共有 パラ メー デー 読み 出す ad dress オフ セッ ドレ 指定 この 関数 呼び 出す , その アド レン 返し ます

set iob(adress, data) int address, data; IOCS 入出 バッ ファ (iob) デー セット する 。addr ess iob 先頭 オフ セッ レス , data セッ デー 入れ この 関数 呼び 出し ます

int get iob (address) int address; iob リア デー 呼び 出す , address オフ セッ ドレ 指定 この 関数 呼び 出す その アド レス 返し ます

int get seg( ) 現在 デー ント 返し ます この 関数 , C 変数 エリ IOCS 受け 渡す 必要

以上 関数 IOCS ルー チン 自由

255073247. ЖУ, 106S 共有 パラ メー よび iob リア 絶対 アド レス 関数 管理 いま , ユー ザー 管理 する 必要 あり ませ , АЕС £f8J pim Ла” ラム サン プル 示し ます IO CS 関数 使い 習得 くだ さい CONVCPM MS-DOS セク 512 イト ある 対し , CP/M-86 セク 256 イト いる , MS-DOS CP/ M-86 ディ スケ 読む こと きま せん , IOCS コマ ンド コー 4 よっ ドラ イブ 設定 変更 する こと CP/ M-86 環境 作り 出す こと よっ 可能 ラム 作り 出し CP/M 環境 MZ-5500 , ディ レク トリ 位置 スキ ュー テー ブル セク 変更 する こと CP/M 環境 容易 作り 出す こと きま この ソー コン パイ Aztec- C86 必要 , この ソー 漢字 使用 いる , いる Azte e-C86 V1.05 コン パイ きま せん 漢字 使用 きる よう Aztec-C86 修正 する , 漢字 ロー 書き 換え コン パイ くだ さい 。Aztec-C86 漢字 する , イラ ライ ブラ マス いる (Ox007f6 AND 取っ いる こと 多い ) NOP 換え きま ソフ 可能 あり ます , Aztec-C86 ヘッ ダー ファ イル "stdio.h" 書き 換え いま 注意 必要 スト 3 従っ ファ イル "stdio.ch" 変更 ユン パイ 行っ くだ きい た, アセ ンプ ブラ プル リン C

コン パイ 種類 よっ

Aztec-C86 場合 関数 後に アン ダー バー 付け ラベ (ププ リッ クシ ) アセ ンプ ルリ スト 書い より C 出せ よう ,。 この アセ ンプ ブラ よる メモ 読み 書き (peekpoke) シス テム コー 行っ いる , C 書き 直す こと 可能 思わ

жаза 1 コン バイル

IOCS ルー チン , MASM アセ ンプ きい MASM IOCS: CONVCPM , よう コン パイ (だ きる C86-M CONVCPM. C

IOCS 使 サン プル プロ グラ

ЖС лек

MASM CONVCPM: ШМК CONVCPM+IOCS, CONVCPM, LIBCMS

使用

1) CONVCPM 起動 , CP/M-86 ドラ イブ No 1 2 指定 ます

2 ) 転送 CP/M-86 ファ イル ます , 以下 特殊 文字 使え ます

[*] すべ ファ イル

[CR] デレ クト

(ディ スケ 入れ 替え 必要 )

[ES C] CONVCPM 終わ

3) ファ イル タイ Ascii ],Віпагу [ B ] 指定 ます

[E SC] ァイル 転送 キャンセ モル 4 ) 転送 ファ イル 入力 ます

5535353353 G IG I 33 3333333333

x

x EX - 1

x

x % *

ルル %

#іпе1 иде ^stdio.h^

main ()

int i; int int int int

座標 セッ

p_set (point, p_set (point, p_set (point, p_set (point,

p_set (point, 8

/* 10C8 レー

ИЕ П OBE = Ë

/* IOCS デー

Е TOE データ

for (i = 0;

/* 角形 描く */

iocs(94, 0);

cmode = 0х0007; /* lpnt = 5; ltype = 1: point[10];

0, 2, 4, 6,

,

> - set ioes(0x000, set ioes(0x002, set ioes(0x004,

г

*/

3

p.set(pointer, offset, x, y) ж/

320,

50, 120, 430, 580,

20); 150); 270); 350); 190);

> */ cmode)i Ipnt) ; Itype) ;

*/

for (i = 0; i < 10; i++) set iob(i << 1, point[i]) i

確認 */

printf ("IOCS offset printf (^IOCS offset printf ("IOCS offset

i < 205 printf ("^ IOB

*/ i += 2)

adderss Ox000 = %04хҰп”, get_iocs(0x000)); adderss 0x002 = %04хҰп”, get iocs(0x002)) ; adderss 0x004 = %04xYnYn", get іосз(0х004));

Tibia TI ES

[CR] CP/M-86 ファ イル 同じ

ァイル ます

[ESC] キャ モル ます 注意

CP/M-86 ディ レク トリ 持ち ます , CP/M-86 ディ スケ 入れ 換え 必ず ディ レク トリ さい 行わ いと , CP/M-86 ァイル うま すこ きま せん

参考 文献

MZ-5500/MZ-6500 ステ (中 ) (シャ )

М2-5500 MS-DOS'" USER'S GUIDE MANUAL (シャ )

標準 MS-DO0S ンド ブック (アス キー 出版 )

Aztec-C86 User Manual (Manx Software System)

8086 ( 出版 )

3 SERE T

T-0R mode */

offset address Ox%02x = %04хҰп”, i, get iob(i));

特集 ファ イル コン バー 1 95

p_set(p。 off, x, y) int жр; int off;

int x, yi

{

ploff++] = x; p[off] = y: return;

リス 1 CONVCPM (と コン パイ )

#М586 000470215 Ve t s ДШ: 2.15

1 9S8 87. Оа 9

#include "aistdio. h”

char *MSGO = char *MSG1 = °” Version 2.15 [#MS86U004V0215] in 1985.02.19

struct dir { dir format of cp/m char user; user no. char namel[8]; file name (xxxxxxxx) char name2[3]; file name (.xxx) char sizeli size / 8 record char dumy [2] ; dummy 2 byte +/ char size2; size / record (0x800)*/ char nom [16]: record no. table +/ ) file [128]; struct f buf Í file buffer */ char F BUF[258]; } BUFFER[16];

ЖИМ2-5500 СР/М-86” UE */

сһаг d_scu[16] = Í зеце tablel ж/ 8, ® ж 8,

° &, Ти, Жб -4 *' 8, * c8, 20 8

f_scu[2] [8] = зеце table 2 #/ 12, 14, 18, 15

unsigned int w_scue [129]; scue table 3 unsigned int n_scue; scue number

unsigned int *d seg; curent DS

char CPM_fnli

char CPM_fn [12]: CP/M file name unsigned int СРМ по; CP/M file number unsigned int CPM drive; CP/M drive num. unsigned int CPM flag: CP/M work flag unsigned int CPM cont; CP/M record. counter unsigned int CPM mod; CP/M track sarface unsigned int CPM size; CP/M record size

char ІМ err = 1; char IN all;

main()

printf("*c[-3hVnYnYn^, ESC); /* opening messae ж/

printf(^Yt *c[835;7m*s*ce[0m^, ESC, MSGO, ESC);

printf(^WnVt хе [35; 969696 CONVERT CP/M-—86 2969696 *c[0m^, ESC, ESC); printf(^YnYt %с(|35;7и%5%с (0а”, ESC, MSGO, ESC);

printf(^YnVt Xc[35;7m*sXc[O0m^, ESC, MSG1, ESC);

printf(^YnYt %с|35;7а%5%с (0ва”, ESC, MSGO, ESC);

printf(^VnYt Xc[35;7nm Copyright by N. Yamashita (1985) *e[0m^, ESC, ESC): printf(^YnYt Xc[35;7mXsX*Xc [0mYnYnYn^, ESC, MSGO, ESC);

26 ohiMZ 1985.5.

init ()

dir ()

prog () {

&2:

while (init()); while (prog ()) 5 printf ("е [Omn%e [72h^,

ESC, ESC);

ナル テオ ナス 22

/* input cp/m drive & dir #/ /* main program ж/ /* ending егі set /

Ze. Ew pow СР/М drive & 4 ir */ char *msg; int i; msg = "Yt Yt * Input CP/M-88 drive (1, 2) = ^; CPM drive = inputl (msg); i = (CPM drive == 0) ? 1: 0; printf(^*c[33nYt Yt << MS-DOS drive = %4 >>%с(0аҰп”, ESC, і + 1, ESC);

bdos (0x0e, i, 0); return (dir ()) i

f*.d ir &

int l, l, апа, j?

d seg = get_seg();

set ioes(0x0040, (0x0003 |

set ioes(0x0042, 0x0102);

set ioes(0x0044, 0x100b) ;

set ioes(0x0048, file);

set ioes(0x0048, d зе);

іосз (4, 0);

if (check() ) return (1) ;

printf(^Yn*ce[32nm^, ESC);

for (i = 0, if ((file[num].sizel == 0 || for (j = 0; printf(^Vtxs w зсче(п scue++] } }

w_scue[n_scue] = Oxffffi printf (“Ұпе [Om”, ESC); ІМ all = 1;

return (0) ;

A L à kket

(CPM drive << 8))); read track,

1 = 0, nun = 0, п_ зеце = 0;

5 6413

in, *msg, #*#in_buf [20],

/* select drive */ /* dir & return ж/

*/

change

ж 現在 DS */

A drive, side 0 */ 2 track, 1 sector ж/

256 byte/sector ж/

set даса offset ж/

set data segment ж/

read cp/m */

error ? ж/

dir print & line up ж/

i < 128; 1 = ізі >> 3, num = d scu[l] + i) { file[num].sizel == 1) && (file[num].user & Ox00ff)

file[num].namel[j**] &- 0x71);

file[num].namel) ;

= num;

!- Oxe5) {

dir end flag ж/

/* all read/write flag clear ж/

ead +/

рговгат

Ға [20];

Ie CPAM r FILE fp, жіореп(); char tcc, int Ë. Re sai; flag: unsigned int ei register int mode; char жі;

if (IN_err) { CPM_size - 0; if (IN all) ( asg =

if (input2 (msg,

“Read CPM-86 File name

/* input CP/M file name #/

C Тж] :all [ees] :end ) = 7;

in_buf) )

[er] :dir &flag,

return(0) ;

else if

(flag)

{

if (IN all)

dir();

return (1);

) else if

(open_cpm()) { printf (^Vt хе [35; File not found ! %c%c[OmYn"。 ESC, BEL, ESC):

return (1);

!

) eise {

/* CP/M all file read ж/

CPM no ~ т зеце [п scue**];

CPM cont - 0 CPM size - 0

;

f = file[CPM no].namel;

for (j = 0;

if

і

< 11; CPM_fn[j] printf(^*e[32nVnVt (" зеце scue]

= ЗЫ O ДЕ)? [[ File Name = 53 -- Oxffff)

11Ұа”, ESC, CPM fn);

1И.а11 = 1;

}

printf("%c[36m\t + File Туре

кеусіг();

in = getkey() :

if (in -- ESC) { key can(); return (1) ;

kE ате ТЕЛЕ ss "AC

/* file type input ж/

Ascii [A] or Binary [B] ( [еве] :can ) = *e[0m^, ESC, ESC);

iac) jt

printf("AsciiVn^) ;

mode - 1i } else if (in == ОВ”

ia == 7%7) |

特集 ファ イル コン バー 1 37

printf ("BinaryYn^) ;

mode = 0;

printf(^*Xc^, BEL);

/* MS-DOS write file name input ж/

msg ~ "Write File Name of MS-DOS’;

) else Í goto 2; } } if (IN_err) else

msg = "New Flie Name”;

printf(^*c[36nYt $ xs keyelr Q ;

[125

in = getkey() ; (ia == ESC) 1

if

)

еізе if

else Í

} if

53:

}

((fp

key сап(); ІН егг = 1; return (1) ;

else if (in -- 0х04)

Ғр copy (fn);

(in < * ° |] in == BS)

goto ggl;

fn[0] - in;

printf(^Xc^, fn[0]);

for (j = 1::)

in = getkey(): if (in == 13)

( [esc] : сап ) ~ %с(0а”, ESC, аз, ESC);

CP/M file name copy to MS-DOS file ж/

1

break; else if ((in == LEFT || in == BS) && j > 0) { printf(^Xexe[0K^, LEFT, ESC); jasi if (yj == 0)

goto ggl:

y èlse tf Cin ss ° printfí(^*c^, in);

} } fn[j] = 0; printfí(^Yn^);

* fopen(fn, ^r

fn [j++]

7))

* jfi

!= NULL) Í

printfíf(”“%eYVt %с|35;7а File already exist ! ^, BEL, ESC); printf (“е [0; 32а

keyelr () ; in = getkey(): if (in == “N°

IN err = 0; printf (^NYn^) ; felose(fp) ; return (1):

) else if (in

Kill ok (Y or N) = Xc[0a^, ESC, ESC);

а) d

^ && in bs "y Y Í

printf(^*c^, BEL); goto g3;

} printf(^YYn") ;

ІМ err = 1; felose(fp) ;

if

}

( (Ер

return;

CPM flag - 0; eof - 0;

while

28 oni 1985.5.

} (eof)

(resd_cpm()) Í for (k = 0; k < 8; k++)

/* all

file read flag clear ж/

/* search input file name #/ - fopen(fn, ^w^)) printf(^*eVt %c[35;7m File open error of MS-DOS Vn*c[0m^, BEL, ESC, ESC);

== NULL) Í

copy file */

{

for (cc = BUFFER[Ef_scu[CPM_mod] [k]].F BUF, c = 0; с < 256; c++, се++) Í

break;

if

}

((pute(*cc, fp) ) == EOF) {

printf(^VtXc Xc[35:7m Data write error ! Же [0вҰп”, BEL, ESC, ESC); eof = 1;

k = 8;

break;

else if (mode)

if ($cc == 0х1а) Í eof = 1; k = 8; break;

iu L1 d T id

if ((fclose(fp) ) == -1) printf(^Vt Xc[35:7m Data write error ! %e[0m%eVn”, ESC, ESC, BEL);

return (1);

} read_cpm() / CP/M Tx lw read а/ {

unsigned int tr, Side, noi

if (CPM cont == 18) { if (((file[CPM no].size2) & Ox00ff) !- 0x80) return (0); CPM size *- 2; if (open_cpm()) { Printf("\t хе [35; cRead error ! %c[0m¥n", ESC, BEL, ESC); return(0) ;

!

no = (file[CPM_no].nom[CPM cont]) & 0х00ЕЕ; if (no == 0) return (0) ;

CPM mod = по & 0x0001; if (CPM mod == 1 && CPM flag == 1) Í already read data ж/ CPM flag - 0; CPM cont**; return (1); ) eise /* new data read ж/ CPM flag = 1;

no = no >> 1; side = по 8 0x0001; tr mw (no s> I) % 21

set_iocs (0x0040, (0x0003 | (CPM drive << 8)) | (side << 12)); set ioes(0x0042, (0x0100 | tr)); set ioes(0x0044, 0x100b) ; /* 256 byte/sector ж/ set ioes(0x0046, BUFFER) ; /* set data offset ж/ set ioces(0x0048, d зе); /* set data segment ж/ ioes(4, 0); CPM.cont**; return((check()) ? 0 : 1); !

open epm() /* Search СР/М foil name #/ {

int š; ІЗ сһаг жесе; char flag;

for (i. = OF i| < 126: ++) 1 cc = file[i].namel;

if ((file[i].sizel == CPM size || file([i].sizel == CPM size + 1) && (file[i].user & Ox00ff)

ort U - 0; flag = Іс: | 115 I++) ( ce[l] &- 0х74;

if (ee[l] f= CPM fn[1] && (ce[l] + (Ca' = AJ) t= CPM_fn[l]) (

flag = 0; break;

!

}

Hf (flag) Í CPM no - i; break;

!

if(flag) ( CPM cont - 0; return (0);

} else return (1);

}

input] (msg) /* CP/M drive key-in #/ ehar *msg; {

char ei

printf(^*c[33m*s*c[0m^, ESC, msg, ESC); 61: keyelr() ; ' с = getkey() ; РЕК Cemas |е. ЕУ 1 printí(“%eYn”, e); returade- = I)? k eise Í printíf(”%e”, BEL); goto gl;

特集 ファ イル コン バー I

39

input2 (msg, flag, in buf) /* key-in CP/M file name ж/

char +8585;

int *Ílag:

char *in buf;

{ int Б» je 13 char ini

toe ES 0: i < 11: СРИ Core} = ^ 7):

Printf("\n c[36m\Yt * *s*c[0n^, ESC, msg, ESC);

562: keyelr() ; in = getkey() ; if (in == ESC) { Кеу сап(); return (1); ) else if (in == 0x0d) printf£(^*c[32:7m DIR *e[0mYn^, ESC, ESC); *flag = 1; return (0); Y else-if (in == ж) printf(^*c[7:33m ALL X*c[OmYn^, ESC, ESC); n_scue = 0; *flag = 1; ІМ а!!! = 0; return(0) ; Кәлек pf o (ua СТГ Ла = SS goto gg2i else { *flag = 0; in buf [0] = in; printi Se”, in buf[0]) ; } For () = 1::) 1 in = getkey() ; if (in == 13) break; else if (Опа == ЖҮ |] im == BS) -& à >. 0) 4 printf (“wewe [OK“, LEFT, ESC); == if (i -- 0) goto gg2; р sélse if (in »- ^ * printf(^Xe^, in): in buf[i**] = ini } ! in buf[i] - 0; print£(^Yn^) ; for (i = 0; i < 8 && in buf[i] !- '.' && in buf[i] t= 'Y0'; CPM_fn[i] - in buf[i], ізғ); for (3 in buf[i] !-'V0' аб in bu£f[i] j= 727% itt); ІЛ Ца. Бе < "y 4 for (j = 0, 1 = 8% j tty 4 if (in buf[**i] == 7Ұ0”) break; else CPM fn[l**] = in buf[i]; ) } CPM_fn[11] = ‘¥0’; return(0) ; } fn_copy(fn) CP/M file name copy to MS-DOS file */ char fn []: { int hs АЗ char с; for (i = 0, 1 = 0; i < 8 && CPM fn[i] !- ° ^; fn[l++] = CPM. ға [1++]) ; Гаа] 7,7; for (i = 8; CPM_ fn[i] !- ° ° && i < 11; fn[1++] = (CPM fn[i**] & 0х71)); fn[l] - 'v0'; print£("^*c[38m*s*c[O0nYn^, ESC, fn, ESC); return; } еһеек() /* Read СР/М error #/ { unsigned int erri

err = get iocs(0x004a) ; if (err -- 0) return (0);

Oh! MZ 1985.5.

if (err

if (err

if (err

if (err

% 0x8000) printf(^*XceVt же [35; & 0x4000) printf(^*XcYt Xc[35;7m & 0x2000)

printf(^XcYt же [35;

& 0х1000)

Write protect error !

Drive not ready !

Read/Write error !

*c[0nYn

хс(0аҰп”, B

*c[O0nYn^,

^, BEL,

£L,

BEL,

ESC,

ESC,

24272242422

ESC, ESC); ESC);

ESC):

printf ("ехе

Xc[35:7n *c[0nYn^, BEL, ESC, ESC):

Hardware error !

return (1) ;

key сап() J* primit cansel m-e 35 À дө 74

print£(^*ce[7:31m CANCEL %с(|0вҰп”, ESC, ESC);

return;

リス 2

IOCS ルー チン (アセ ンプ )

33% % % % % % 222 22222222222 % % % % % % % % LLLLLLLI しそ そそ そそ %х%%

[ IOCS handra |

%М5861,001У0102 Version 1.02

1985. 01. 20 include iocs_ set iocs. set_iob_ get.seg. get iocs get_iob_

ге ге әв әе әе Q€ Q€ ət ət әе ¢ ге ә е d€ ¢ # ət ət ət ət ət e ət ət ət ət ət wow wx

LLIII %%

Dg group STATICS Cg group CODESEG すま まま まま CODESEG segment word public ‘code’ assume CS:Cg,ds:Dg,ss:Dg,es:Dg 522324 STATICS segment word public “data dw 5 dup(?) d seg dw 0 buff dw 0 STATICS ends 522224

publie iocs_ ioes_ ргос near

pop bx

pop ex

pop dx

add зр,-б

int 50h

ret ioes | endp 1 キキ キキ

public set_iocs_

set_iocs_ ргос пеаг

рор ex

pop bx

pop dx

skipl:

set_iocs_

5223222

set_iob_

рор рор рор а44

шоу ог jnz

push push mov int mov mov pop mov mov pop mov mov

skip2: шоу add push mov mov pop ret

set iob _

522224:

get.seg.

mov ret

get seg.

5р,-6

ax,Dg:d seg ах,ах Skipl

cx。1 50h Dg:d seg,ax

ds ds,ax [bx] , dx ds

endp

public set iob.

proc near

bx,Dg:buff bx,bx skip2

ds

ax

cx。1

50h

Dg:d seg,ax ds,ax

ax bx,03a2h ex, [bx]

ds Dg:buff,ex bx, ех

ex,Dg:d seg bx,ax

ds

ds, сх [bx], dx

ds

endp

public get seg.

proc near

ax,ds endp

特集 ファ イル コン バー I 41

5222224 dx,Dg:buff get ioes.- bx,bx skip4 get_ioes_ as pop ez, 1 pop 50h add Dg:d seg,ax бз, ах Ъх bx,03a2h

Dg:d seg,ax

push ds

mov ds,ax шоу ах, [bx] рор

ret à

get ioes. endp get iob. すま まま まま public get_iob 523333333333:

et_iob_ ргос near CODESEG ends

ex end bx 3р, -4

リス 3 Aztec-C86 ァイル (筆者 変更 あり )

Copyright (C) 1982 by Manx Software Systems and Thomas Fenwick ж/ НаеҒіпе fgetc getc Hdefine fputc putc Hdefine NULL O #define EOF -1 üdefine BUFSIZ 1024 Hdefine ESC 27 Hdefine BEL 7 Hdefine BS Ox7f Hdefine M LEFT 8 ж Note: If you are using Macro-80 and change MRXSTRERM, the initialization * of Cbuffs in getbuff.c should be updated accordingly ж Also update libc.h ж/ #def ine MRXSTRERNM 11

Hdefine _BUSY 0x01 #define _RLLBUF 0x02 #define _DIRTY 0x04 #define _EOF 0x08 #define _IOERR 0x10

typedef struct { Char ж bp; current position in buffer ж/ Char * bend; last character in buffer + 1 ж/ Char ж buff; address of buffer ж/ char flags; open mode, etc. ж/ char unit; ^* token returned by open ж/ Char | bytbuf; single byte buffer for unbuffer streams ж/ int .buflen; length of buffer ж/ ) FILE;

FILE Cbuffs[MAXSTRERM]; Char x*Stdbufs; free list of buffers ж/ long ftell();

Hdefine stdin (&Cbuffs[O])

НаеҒіпе stdout (&Cbuffs[1])

Hdefine stderr (&Cbuffs[2])

Hdefine getchar() agetc(stdin)

define putchar(c) aputc(c, stdout)

Hdefine feof(fp) (((fp)->_flags&_EGF ) ! =0)

Hdefine ferror(fp) (((fp)->_flags&_IGERR ) ! = )

ндеҒіпе clearerr(fp) ((fp)->_flags &- ~(_IBERRI_EGF ) ) #define fileno(fp) ((fp)->_unit)

Header for 山下 直人 ж/

Hdefine inkey() bdos(1, О, О) % 0х007Ғ key-in with echo-back ж/ Hdefine getkey() bdos(8, O, O) & OxOOff key-in without есһо-Баск ж/ #define Кеусіт() while(bdos(12, 0, 0)) bdos(8, 0, 0) key buffer clear ж/

42 омм 1985.5.

(ӨМ2-6500/5500

シャ より 供給 され いる , М2-6500 /5500 ワー プロ ソフト JWP 機能 いて 申し , 774 フォ CP/ M-86 標準 ァイル フォ きく 異な , CP/M-86 ソフ デー 統合 必要 強調 され いる 今日 , ファ イル コン ぜひ 必要 考え を, C イラ (CI-C86) いて 開発 行っ イリ ティ 使用 する こと より , JWP dBASEII MicroREP0-86 どの デー ファ イル 作成 , アモ ンプ ブラ / ユン パパ イラ ソー 書い りす こと 可能 , この ユー ティ リティ 使い 使用 加え , 各種 漢字 コー (JIS/ フト JIS) 変換 , CI-C86 理系 対応 つい 検討 行い いと 思う

プロ グラ ムリ スト 打ち 込み , 以下 コン パイ 行う (リス メッ セー つい 囲み 記事 参照 )。

CC1 CONV

CC2 CONV

CC3 CONV

CI CONV CLIB こう ディ スケ 作成 きれ CO NV. CMD ファ イル 起動 きせ , いく つか 質問 答え 極め 容易 JWP 文書 ァイル ーーCP/M-86 キス ァイル 変換 行う こと きる

使用 答え べき 質問 事項 以下

ファ イル JWP 文書 ファ イル エク ステ ンション

ログ ラム 仕様 7

JWP CP/ M -86

Takayuki Goto

後藤 貴行

(.DOC) 含め 指定

ファ イル 変換 され 文書 デー 格納 ファ イル 指定 する 入力 ファ イル 同じ

・1

1 半角 文字 えて 1 255 入力 する

・J WP 文書 ファ イル 途中 改行 無視 する どう 無視 する 1 入力

読点 扱い JWP 文書 ファ イル 半角 句読点 特殊 フォ ント (ҒИ) 使用 おり , 標準 A SCII 異な , 取り 扱い 指定 半角 句読点 全角 文字 1 入力 , 半角 ASCTII 文字 変換 する 0 入力 する

この ユー ティ リティ いて JWP 文書 ァイル CP/M-86 ァイル 変換 使用 する こと より , つぎ よう メリ 生ま くる

° 1 半角 256 , 全角 128 文字 まで 指定 , 漢字 デリ ンタ PIP 出力 可能 ある (JWP 全角 1 40 文字 まで 文書 編集 )。

|. JWP , アモ セン プラ ユン パイ ソー イル 書く こと きる , メッ モー コメ ント 多用 する 場合 特に 有効 ある

・dBASEII, MicroREPO0-86 どの デー ベー デー タフ ァイル 作成 可能

| MZ 本陣 処理 つい | 現在 , 漢字 コー JIS コー , シフ JIS , 句点 コード 存在 理系 よっ ある 幸い こと MZ-6500/5500 CP/M-86

うに JIS コー シフ JIS コー 2 サポ 広い 対応 処理 可能 いる BDOS# 9 (文字 列表 ) …… シフ JIS

MZ 漢字 モー , IOCNF

マン よる MSB(Most Significant

Bit) 設定 Unmasked いる

きのみ 正常 語文 表示 BDOS# 5 (1 文字 プリ ンタ 出力 )……JIS

MZ 漢字 モー シフ JIS

ユー 受け 取る エス ケー プシ

JIS ユー 変換 プリ ンタ

グラ 場合

, その まま デー 出力 され IOCS #70 (文字 列表 ) …… JIS

BIOS , MZ-6500/5500

CP/M-86 作動 する 標準 シフ JIS コー 使用 いる , JWP, BASIC-2/3 JIS ユー 採用 ソフ それ 単独 使 問題 , 異な 処理 デー 転送 行い 場合 この プロ グラ よう コン バー 必要

ツー スリ スト 関数 JSJ JIS コー ドー シフ JIS コー ある この 変換 説明 文献 ほとん 当たら , 筆者 MZ-5500 Owner's Manual 巻末 ある JIS・ フト JIS 対応 3 3 続け , よう 思い つい , JWP 文書 ファ イル 書式 備考 どの 情報 記録 きれ 12 8 バイト ヘッ ダー つい いる すべ 無視 より , 1 ユー ザー ユン バー 指定 どき , Ж 長い 書式 アリ ンタ 出力 可能 ある

特集 ファ イル コン バー II 43

この プロ グラ CI-C86 いう コンピュ イノ ベー ショ C イラ いて 作成 行っ , 特殊 関数 使用 いな いた C イラ 十分 コン パイ ある (注意 : 関数 fgetc ほか コン パイ fgetchar, fgetch, getch 呼ば れる こと 2) JIS JIS 変換 掲載 リス 関数 “JSI” まとめ られ いる よう , ズム ある ファ イル 入力 INPUT$ こと すでに きそう ある MZ-6500/5500 BASIC ンタ プリ 以下 理由 より 不可 ある ・BASIC-2 ファ イル 入出 ける デリ ミタ (区 切り ) CR (0D』) 限ら , CP/M-86 標準 テキ スト ファ イル デリ ミタ CR, LF(0 Аһ, 0D』) 異な うえ , PRINT 使用

する 必ず 最後 デリ ミタ 付加 きれ まう (PRINT# 1, A$; 最後 モミ ロジ つる エラ ) まだ ,

EF

イル 条件 1 文字 入力 行う コマ F (INPUT $ E) サポ ・BASIC-3 JWP 同じ , ファ イル 最初 128 バイ ヘッ ダー つく 〈《 , ほか 処理 作成 され ファ イル まっ えな ヘッ ダー ァイル オー プン する すら 不可 ある CP/M-860PIPa ¥ ンド , BASIC-3 作成 デー タフ ヘッ ダー デー タフ ァイル 先頭 付け みた りー まっ BASIC-2/3 それ MZ-2000 MZ- 3500 BASIC ログ ラム MZ-6500/55 00 変換 走ら せる ある える べき , その 場合 持つ BASIC ンタ プリ ある MZ-6500/5500 プロ グラ ミン 行い いと 考え ユー ザー 迷う こと DOS 動く C PASCAL, BAS IC どの コン パイ 導入 すべ ある 筆者 考え CP/ M-86 (MZ-6500 場合 MS-DOS ) 標準 装備 され ある

コン バイ 語文 扱う

多く C イラ ソー スリ スト 文字 7 ビッ 評価 , MSB (Most Significant Bit) 無視 いる デー タビ どう 8 ビッ 語文 ソー ある 正常 イル 行わ 問題 解決 , すべ ソー スリ スト 文字 (正確 いう アス キー コー 80』 以上 ある 文字 ) 8 文字 定数 (\000 形式 ) 書き 換え ある ちろ , 修正 いた 能率 ある 変換 する ティ BIT8.C 作成 みた 。CI- C86 以外 C コン パイ 応用 可能 され

えば , ソー " (シフ J IS コー ドニ 889F ) 使用 され いる , 16 8 変換 (88。 210。, 9Fj。 237。) 考慮 , " "\210\237"

掲載 され いる CONV.C リス ,

含ん いる , BIT 8.CMD 変換 イル する 必要 ある , CONV.C セー , x ある ロー 置き 換え BIT 8

特に C イラ 有用 構造 ログ ラミ ング 可能 ある こと より , それ 基本 ころ あら われ いる ファ イル 入出 基本 サポ , ステ ムコ 簡単 こと ある さらに, ユー ザー 定義 関数 ( ブル ) コン パイ 保有 いる 同じ よう 使用 きる こと 重要 ある えば 掲載 リス 使用 きれ いる 関数 “ask" 画面 表示 キー ボー 入力 待つ いう BASIC jinput “х=”; x 相当 する これ , 1 定義 あと C その 関数 最初 いた よう 使用 きる 使 使い 込む ほど くる 。C そん 処理 ある

、CP/M-86 JWP コン バー 検討 みる

参考 文献

CI-C 86 ニュ アル (۷1.31) Optimizing C 86 ニュ アル (V2.10) М2-5500 Owner's マニ JWP マニ

よる 変換 不要 そま まま コン パイ 当初 リワード スタ ソー 書き , デバ 終了 後に 掲載 リス よく する ED メッ セー . 置き 換え ある

8 ビッ トー7 ビッ ァイル 変換 ユー ティ リティ

Hinclude "stdio.h"

main()

FILE *fp8,»xfp"7,*fopen(); char file 7[14],file 8[14]; int cc;

ask("XnInput Original File(8bit

while((cc-fgetc(fp8)) if((cc & 0x80)!-20) fprintf(fp7,"XX*3o",cc): else fprintf(fp7,"Xc",cc);

i= EOF )(X

> fclose(fp7); fclose(fp8);

ask("XnInput New File(7bit рата) Мате to be Build:" if((fpB-fopen(file 8,"r"))-2-20) return; if((fp7-fopen(file 7,"w"))-2-0) return;

Data)Name:","*Xs",file 8); ,"*s",file 7);

44 омм 1985.5.

UAR JWPOCP/M ファ イル コン バー

МАІМ PROGRAM ТЫР file --» CP/M standard file convertor ж/ Hinclude "stdio.h" main() char jwp.file[12]; Idiom to use string (12 is а length) жх

char cpm file[12]; The above is JWP file, and the below is СР/М-86 file жи

unsigned char col, usr; ^* the colum width defined by user x^ int negl cr; Z* switch: NEGLect CR in the text. ж/ else... Take CR into an account. ж/ int ten maru; ж switch: 1...... Both half & full width TEN & MARU ^x i$ to be converted to full width ^x TEN & MARU. else... Half width one is to be converted to ordinary half width ASCII char.»

EI + Ф -

e... KANJI mode жх lo >", "55", jup. file); |"*s",cpm file); (1-8 )= ","*d",&col,usr); (yz1,nz0)","*d",&negl ст); Y ? (yz21,n20)","*d",&ten maru);

TININ +

CART mco v

+

?

к FE ¥ Tk A

ж-е

bap» o T

жемесе Аяса» ЧА ^Y

printf(" printf(" if(meg1_CT==1 )

A

まし »5*s*kn",jwp file); *dXn",col usr);

Printf(" ファ イル 改行 コー 無視 きれ 、%3q 改行 ます \n",col_usr):

else Printf(" ァイル 改行 コー 改行 行ない ます жп"); if(ten maru--1) PaMfCOBAoSugAR5riuSMAVZAX*CENRtnh ET, n) else Printf(" 句点 よび 読点 半角 アス キー 文字 変換 され ます \n"): Printf(*" ファ イル 対し 書き 込み 行ない ます >%S\n\n\n",Cpm_file): иж In the printf,too,string variable is pointed by the pointer ж/

doc read(jwp file,cpm file,col usr,negl. cr,ten maru);

>

7x DOC RERD ж/ function document read ж/ doc read( jwp file,cpm file,col usr,negl cr,ten maru) unsigned char col usr; user defined colum number жх unsigned char negl cr; the switch (neglect CR ) x^ char jwp file[]; file name in which jwp document exist жи char cpm file[]: иж ditto to be build жи int ten maru; width of TEN, and MARU ж/ FILE *fopen(),*fp jwp,*fp cpm; Idiom for access files ж/ unsigned char fgetc(); fgetc should be char type ! ж/ int i,j»k,l,n; ^* working variables ж/ š unsigned char colum; Z* actual and current colum number ж/ unsigned char ch,ch1; data from file : ch = higher byte x^ ^x : chi = lower byte ж/

if((fpP_jwP = fopen( jwp.file,"br")) == 0)

return(0); ^* If fail to open the ТЫР file x^

if( (fp cpm = fopen(cpm file,"w")) == D)

return(0); ^* If fail to open the СР/М-86 standard file жи

for(iz1; 1<=128; i++) Ch=fgetC(fP_jWP): S7th & 58th byte are document sector No. ж/ colum-1; while((ch-fgetc(fp. jwp) х 128) != 0) { 'EOF' should be detected by OOH. ^* Because 'fgetc' is char type while иж EOF of "stdio.h" is int type(=ー1 ) .

Cchizfgetc(fp jwp); Read higher byte of ТЫР text word ^* Believe or not, JUP text word data ^* is turned over in lower and higher Z* bytes.

conv disp(ch,chi,&colum,neg! cr,ten maru,fp cpm); if(col usr <=colum)( columz1; printf("Xn"); fprintf(fp cpm,"Xn"); ) > fclose(fp_cpm); fclose(fp_jwp); )

特集

ファ イル コン バー II

45

46

иж conversion JIS hex to shift JIS ж/ conv disp(ch,chi,pcolum,negl cr,ten maru,fp cpm)

unsigned char unsigned char unsigned char FILE *fp cpm; int ten maru; M unsigned char i (Ch1== nx27 ) if (ch==0x74) ch1=0x21; ch 70x21; >

if( Ch1== x23)

Ch, Chi;

if (0Ox2é<=ch && Ch<= x2f )

Ch=ch+ xDa: J )

if(ch1 >=0ха1) (*pcolum)**;

*pcolum; negl cr;

jch, jch1;

4* Ch1 = higher byte, the number of character switch to neglect CR

^* width of ТЕМ, апа MARU ж/

twice wide character 2774h is ап

and Ch =

lower one. in one line x^

in the document ж/

^* itallic numerical character ж/

The case when special JIS code for JWP x^

special, code(ch,chi,pcolum,negl, cr,ten maru,fp cpm);

return;

у . jsj(&ch,&ch1.&jch,& jch1 ) : JIS ---5 shift JIS ж/

ргіп%Ғ("%с%с", ісһ1, jch);

fprintf(fp срт,"%с%с", jCh1, jch);

(*pcolum)-(*pcolum)-*2;

Special JIS code for ТЫР (Oxaz - Охав

,etc) ж/

special code(ch,chi,pcolum,negl cr,ten maru,fp cpm)

FILE жҒр cpm; unsigned char int ten maru;

unsigned char unsigned сһат

Sch; 51,5];

sch = 0; ї+(сһ1==0ха2) (

if (ch==0x5c && negl cr

sch=1; if (ch==0x40)( if(ten_maru==0) sch=0xa4; else sch=2; > if(ch==0x41)( if(ten_maru = ) sch=0xa1; else sch=3; >

if( Ch== x 42 ) sch=0x2f; > else if(chi--0xa1)( if( Ch== x21 ) sch=0x20; else if(ch==0x25) sch=0x2e; else if(ch==0x24) SCh= x2C: else і#(сһ==0х23){ if(ten maruzz0) sch=Dxal; else sch=3; H

else ІҒ(сһ--Ох22)5 if(ten maruzzD) 5сһ-Оха4; else sch=2; >

else if(ch==0x3e) sch=0xb0;

else ІҒ(сһ--0х46 || 5сһ=0х27;

else ІҒ(сһ--Ох48 || sch=0x22;

else if(ch==Dx4a) sch=0x28;

else if(ch==0x4b) sch=0x29;

else if(ch==0x4e )

Oh! MZ 1985.5.

Ch,chi,xpcolum,negl cr;

half wide char code ж/

1) CR ж/

TEN ж/

MARU жи

Slash ж/

space ж/ period ж/ comma ж/

MARU жи

TEN, not of Lum's

ch--0x47) "' ж

сһ==0х49) * ж/

cousin жи

ж/

is to be neglected. indicator. ж/

ж/

sch=0x5b; else if(ch==0x4f) 1 ж/ SCh= x5d : else і#(сһ==0х50) ж/ sch=0x7b; else if( Ch== x51 j] ) ж/ sch=0x7d; else if(ch==0x27) : ж/ sch=0x3a; else if(ch==Dx28) 1 ж/ sch=0x3b; else if(ch==0x52) < ж/ sch=0x3c; else if(ch==0x53) > ж/ sch=0x3e; else if(Ch= = x56 ) KRGI x^ ѕсһ=0ха2; else ІҒ(сһ--Ох57) sch=0xa3; ) else if(chi--0xa4)( if (0x75<=ch && ch«z0x7e) Numeric Character ж/ sch=ch - 0х45; > else if(chi--0xaó)( if (0x61<=ch %% Ch<= x7a ) Alphabet; upper сазеж/

SCh=ch - 0x20;

else if(chi--0xa3)( if (0x61<=ch && ch<=0x7a ) Rlphabet; lower case ж/ sch=ch;

else if(chi--20xa7)(

if (Ox4&é<=ch %% ch<=0x4f ) Superscript Number ж/ Sch-ch-0x16;

else if(O0x75«-ch && ch«-0x7e) Subscript Number ж/ Schz2ch-0x45;

$ else return; Other special codes are neglected completely ж/ User should change this part of program, and ж/ improve the program. ж/ iff( scCh==1 ) (*pcolum)-21; printf("Xn"); fprintf(fp срп, "Ұп"); ) else if(sch-2-2)( (*pcolum)++; printf("%201%101"); Z* Full width of TEN ж/ fprintf(fp cpm,"X201xX101"); > else if(sch--3)( (*pcolum)++; printf("X201X102"); Full width of MARU ж/ fprintf(fp cpm, "X201x102"); else printf("*c",sch); fprintf(fp cpm,"*c",sch):; > jsi(pch,pchi,pjch,pjch1) unsigned char *pch,*pchi,*pjch,*pjchi; { unsigned char dl,dh,cparity; dh = 0х70-((жрсһ1)/2); 7x convert from JIS hex code ж/ cparity = (жрсһі) % 2; to shift JIS code. жх if(cparity == 0) dl = 0х7е; else іҒғ((жрсһ)<0х60) dl = Oxif; else dl = 0х20; ) (жрісһ) = (жрсһ) ж dl; (жрісһі) = (жрсһ1) + dh; ж jch апа jch1 is shift JIS code. ж/

>

ask(p.disp,p using,pointer) Char жр disp,*p using; unsigned pointer;

{ Printf(p_disP): scanfí(p using,pointer);

>

0922990292

特集 ファ イル コン バー I 47

MZ-2000/2200 16 キッ (М7-1М01) 発売 きれ すでに 2 近く まで どの よう ソフ トウ 発売 きれ いる うか 7? + 付属 いる テー BAS IC あり ます , これ BASIC その ロー (当然 こと ) E, 実行 速度 そう 速く いと いま さら , Z80 漢字 カラ ーBASIC(MZ-2 Z021) 発売 され いる , わざ わざ この BASIC 使っ まで アプ ンプ ブロ グラ 作る いで 。8088 イク ロモ セッ 勉強 よう 思っ , アセ ンプ いて キッ 取り 付け , 電気 食い する ボー まい ます 貼り 付け 「16-BIT」 ラベ うか ? せん そこで, この ハー ドウ 使い こなす フト ウェ 作ろ うと 思い 立ち , 悪戦 苦闘 OX, CP/M-86 移植 する こと WLL:

今後 , この DOS t Ç, いろ いろ プリ ケー ショ ンプ ログ ラム 作ら れる こと 望む

, 移植 する , М SA( イク フト ウェ ソシエ イツ ) MZ-2000/2200 CP/M , CP/MO 動く MACRO-80, LINK-80, Z80.LIB (MAC Z80 ライ ブラ ) 使い まし これ 持っ いな , する 必要 あり ます

また , MZ-2000/2200 CP/M BIOS

48 OhiMZ 19855.

ФМ2-2000/р200 (C16 ビット ポー ドキ MZ-1M01)

-66 16 -

New Yorkers

バー ジョ , rev.1.1.5 表示 ある 限ら 表示 MSA アッ 申し 込ん くだ さい

= ш Яа 特徴 制限 o

この 「16 CP/M-86」 iz,

よう 特徴 制限 持っ いま 。`

1) ディ スク トラ 採用 ディ スク リー ライ 高速 51%, リー ライ それ 1 トラ バッ ファ Z80 L, 実際 リー ライ 1 トラ 単位 行っ いま ため, FAR ケッ 差し 換え この バッ ファ 無効 する 必要 (実際 ^~C キー イン すれ よい よう いま )。 2) グラ フィ 漢字 表示 きる BIOS 拡張 . グラ フィ (640x 200 ラー)/ ( 1 40 12 ) 表示 高速 実行 びき ます ラフ スピ WICS , PAINT 速く いま 漢字 表示 , 16 漢字 ROM (MZ-1R08) 使用 3) ほとん どの ユー ティ リティ イプ ブログ ラム 動く 通常 ユー ティ イリ ティ プロ グラ 5$ TOD, COPYDISK, LDCOPY, FO RMAT すべ 動き ます (ハー ドウ 依存 する 除く 〈)。LDCOPY PASCAL 作成 代用 動い いま 。TOD COPYDISK 作成 予定 FORMAT , 作る 少々 面倒 , 動か CP/M-86 BIOS 変更 , りあ CP/M FORMAT.COM 少し 変更 使っ いま

4) アプ リケーション プログ ラム 実績

いる アプ リケーション プロ グラ , いずれ 言語 プロ セッ , TURBO PASCAL t C86 (CI ) 動い いま 5) RS-232C ボー サポ

これ , ハー ドウ いか 6) MZ-2000/2200 CP/M ファ イル ある |

ディ スク フォ CP/M-86 80 ラッ ある こと 除き 同じ パソ コン CP/M-86 , シス テム エリ サイ ディ レク トリ エリ サイ 違っ いる , DPB (ディ スク ラメ ブロ ) 少し 変え , それ 6 CP/M-86 ファ イル リー ドブ プラ イト きま (ソフ トウ セク タス キュ 1 あれ )。 7) エス ケー プシ ンス MZ-2000/220 0 CPVM 同一 ある

エス ケー ププ" シーケンス MZ-2000/22 00 CP/M ほぼ 同じ (時 読み 出し いま )。 ント ロー ルキ 機能 まっ (同じ, ファ ンク ショ ほとんど りあ いま メモ リマ CP/M-86 メモ ロー , キー 操作 きる 状態 メモ リマ おり 。Z80 , CRT/ / クコ ント ロー 機能 持ち ます 。8088 BIOS , Z80 ファ ンク ショ 必要 パラ メー 送る どけ よい わけ

移植

それ , 実際 移植 つい 説明 ます 1) オリ CP/M-86 入手

入手 きる , 標準 CP/M -86 5 イン 2D いと 思い ます 標準 CP/M-86 i£, ASM86.COM, GENCMD.COM, СР M.H86, LDCPM.H86 含ま それ CP/M-86 使え 移植 作業 より 単に (E CP/M-86 , 通常 8 イン 売る され いる よう

場合 , PC-9800 CP/M-86 (N EC ) 使用 まし 理由 , xb 安価 〈,5 ンチ 2 D きた 今回 , この PC-9800 CP/M-86 移植 述べ いき ます

2 ) ワー ケッ 準備

移植 する デイ スケ 4 , それ ワー A, 7 -2В, ワー C, ワー D きま A, В, C , С P/M-80 フォ SYSG EN きま

ワー A , CP/M ディ スケ PIP, SUBMIT, XSUB, DDT, SY SGEN, ED .COM ァイル , MA CRO-80 ディ スケ M80.COM, L80.COM, MAC ディ スケ 2Z80 ・LIB (Z80.MAC 変え ) ピー きま さらに ,。 ED 使っ CPYPC.SUB, LDMAKE.SUB, CPMA KE.SUBO 3 つの SUBMIT ァイル きま ( ァイル リス 1 3 )。

7—2 B , PIP.COM ピー きま

3) オリ CP/M-86

PC-9800 CP/M-86 ァイル , その まま CP/M リー こも きま せん そこ よう CP/M 少し 変更 , ディ スケ (ワー B) コピ まい ます (1) A ドラ イブ A マウ ント a Sk 0

特集 シス テム & ツール

1 メモ リマ

割り 込み ポイ ンタ テー ブル : CCP-- BDOS em

I/0 ント ロー ルー チン

ディ ディ

жн PAINT スタ テイ パップ ファ

(2)CPYPC.SUB SUBMIT 実行 する

(3) B ドラ イブ A , PC-9800 CP/M-86 ドラ イブ B マウ ント , ^C ウォ ブート

ЖАА (リス 4) これ , Z80 IPL・ROM よっ 読み まれ ディスケット シス テム エリ 5 t, LOADER 8088 送り , その (4)PIP マン ドラ イブ B CP/M-86 Z80 初期 行い ます 2Z80 ァイル ドラ イブ A コピ , CP/M BIOS COLD-BOO T 移植 まし (5)IPL 行い , CP/M 戻す ※B (リス 5) 4) Z80 1I/OF ライ ブル 作成 8088 られ クシ Z80 ゲロ グラ , モジ ュー 解析 , 該当 する ドラ MACRO-80 作り まし 当然 R ジャ ンプ する ディ スク ドラ MAC 0K ツー イル , ルー チン 含み ます トラ C 作り ます 内容 リス 4, 5 バッ ファ アル ゴリ ズム , 文献 3 記載 , 概要 以下 述べ ます 少し 修正 採用 まし , リス " 表示 ある DB, ※C DW , 直前 Z80 命令 8080 CRT/ ライ バー ルー チン アモ ンプ ブラ 出力 可能 よう MAC CP/M BIOS CRT/ ライ RO 展開 され 少し 修正 使い ます 2

(I) PUBLIC 追加

const,conin,conout,list,punch reader,listst

latch,motimer,readtime

dspxy,blkcnt sw$fkey,wvram,startz,settime,charcnt Sw$cursor,cursor$sw Е TR ) pbs,plf,pup,pright,pcr

public public public public public public public

(2)

maclib 280 ; Note:

(変更 )

.xlist MACLIB 780 .list

; Note:

(変更 )

EE ささ スネ キキ キネ ネネ ミネ キキ キキ キキ ミキ ネネ キミ ネネ ミミ ミネ コキ ドコ зж š СР/М System Foundamental Constants スス エエ ミエ テキ エネ ミネ エネ キイ キネ キキ キネ エエ キテ キネ ネネ キテ ミコ

==

特集 CP/M-86 16 49

行か 直前 まで 削除 ます

E FEAE E E E HE IE IE ЭЕ ЕЕ Ж ЭЕ ЭЕ ЕЕЕ ЭЕ ЭЕ ЭЕ ЗЕ ЗЕ ЭЕ ЗЕ ЭЕ ЧЕЧЕ ЗЕ ЭЕ ЭЕ ЭЕ ЭЕ ЭЕ ЗЕ ЭЕ ЗЕ ЗЕ ЭЕ ЭЕ ЭЕ ЭЕ ЭЕ Зе = ЭЕ ЭЕ ЭЕ ЕЕ ЭЕ ЭЕ гж Screen Parameter Equates * } Ж ж эзе HR EK Je ЭЕ ЭЕ Me Je Je ЭЕ CE MC JC JE JE E E EK ЭЕ ЭЕ ЗЕ REDIERE ЭЕ ЭЕ ЭЕ JE ЗЕ ЗЕ JE ЭЕ ЭЕ ICE Ie ЭЕ ЭЕ ЭЕ

残し きま iobyte equ 0003h ;intel i/o byte

(4) 適当 場所 追加 する

blinkcount equ 200h ;cursor blink count latch: ds 1 :data on dcont motimer:

db ioh stimer to stop motors dcont equ Odch sdisk drive sel port

(5)

ааа CIC ЕЕ Y XXX Je ЭЕ ЭЕ ЭЕ ЭЕ ЭЕ ЕЕ AE HE ЭЕ ЭЕ ЭЕ ЭЕ ЭЕ ЭЕ ЭЕ ЭЕ ЭЕ ЗЕ ЭЕ ЗЕ ЭЕ E ЗЕ ЭЕ ЕЕ зж Disk Driver Begins Неге * } EK эе ЗЕ ЗЕ ЭЕ ЗЕ ЭЕ ЭЕ ЕЕ ЭЕ ЕЕ ЭЕ ЕЕ ———

行か 直前 まで 削除 ます

ртс: mov a,m sget one character

(6) smsg: db clear, +++ °

Ша кзз ИН 行か 直前 まで 削除 ます さえ さよ エス エエ スエ エエ エト キテ エキ キキ キキ キキ キキ キキ キキ キネ ネネ キキ そそ キネコ ж individual BIOS subroutines * スエ エエ エミ エエ オオ エエ ネオ エネ エキ キキ キキ エキ キテ キテ キャ キキ ティ そよ

(7)

space: 直前 挿入 ます ir nospace (8) skey 1 - 8 直前 挿入 ます поѕрасе: (9» (変更 ) tgl: lxi 8,4008 ;reset blinking counter (変更 ) | tgl: lxi d,blinkcount ;reset blinking counter (0) - (変更 ) esc$readtime: call reset esc ; jmp readtime sfor keep A(am/pm),DE(binary time) m= | esc$readtime: call reset$esc ; call readtime ifor keep ñ(am/pm) 。DE(binary time) jmp sendtm (1) waitloop: in pstat H jmp wboot ;internal reboot 最後 jmp : ret 変更 ます

50 омм 1985.5.

膨大 だめ 記述 する

+ (042), その , 全体 以下 よう 変更

ます M80 仕様 よる

(修正 忘れ エラ

その 都度 変更 必要 )。

e! 使用 複数 命令 1 書い ける

@ コメ ント 必ず : (モミ コロ ) ける

e ベル 必ず : (апу) 付け

e $ 取り 除く

( ) 0000 $ 1101 b 00001101 b 変更 する

e ラベ 統一 する (BIOS ソー 統一 いな あり ます )。 M80 ab$xy abxy 同一

ө high,low 括弧 囲ん それ high (~) low( ) する

※K, KI, G, P, PG これ , 漢字 表示 グラフィック

ライ パー ルー です ラジ P

LOT, LINE, CIRCLE, РОТ, GET ,

WICS ラン タイ ムル

。PAINT 文献 4 より 移植 まし , АА, В, C , CP/M-86

動き ます 今回 この

スト 発表 機会 行い ます ソー イル イン プッ 終わ

アモ ンプ ブル ます A ドラ イブ 4A,

ソー 入っ いる ワー C ドラ イブ B

マウ ント , M80 起動 ます

ェクト ある REL ァイル ワー A

よう さい デス

ァイル AA.MAC アセ ンプ 場合 ,

M80 対す コマ ンド 「A:=B:

AA」 キー イン ます (リス ァイル

必要 応じ くだ きい

ディ スケ リア 不足 ます )。

5 ) 8088 BIOS 作成

さて 肝心 8088 BIOS 作り ます 場合 , CP/M-86 動き 出す まで 8088 アセ ンプ 使え ので, ハン ドア ンプ ブル 最小 作り , С P/M-86 何と 動く よう , アセ ンプ ブラ (ASM86) 作り 直し まし 移植 され アセ モン ブラ 使え , スト 6 B,7ーB ダン プリ

6

7

スト DDT くだ さい

(最後 "1A” 無視 どき ます ) ソー ファ イル ワー C 作り ます セン ブル エラ けれ , リン カー ブロ モジ ュー 作り , それ LDBIOS.BIOS.COM いう ワー A セー きま

, この 8088 BIOS 文献 5 より 西 まし ) ワー D イニ シャ ライ

ワー D 移植 CP/M-86 書き 込ん いく , その フォ せん 。C P/M FORMAT.COM 以下 修正 フォー マッ ブログ ラム フォ ます (MZ-2000/2200 CP/M FORMAT.ASM 付属 いる 比較 簡単 修正 きる 思い ます )。 (1)80 ラッ する (MZ-2000/2200

CP/M 70 ラッ )。 (2) クタ キュ 1 する (CP/M

2 )

不慣れ FORMAT.COM 変更 する SUBMIT ァイル CHGFMT.SU B リス きま バー ジョ 違い 使え 思わ

xsub

ddt format.com s279

sO

s40e

HDAN TU COON O iH

go save 4 fmt8ó. com

LOADER ディ スケ 書き 込み ワー A , ワー B ある LOA DER5.CMD , CPM .SYS コピー , その あと 以下 手順 実行 ます (1) A ドラ イブ A , D ドラ イブ B マウ ント ブー (2)LDMAKE.SUB SUBMIT 実行 する (3)SYSGEN 起動 する

(4) "Source Drive Name (or Return to Skip) 対し CR キー イン プッ する

(5)「Destination Drive Name (or Return to Reboot)」 対し 「b」 答え

(8)CPM.SYS 作成 SYSGEN 完了 , 引き 続き CPMA

KE.SUB SUBMIT 実行 ます これ

CP/M-86 DOS ワー D

あがり まし CMD ァイル , P

IP コマ ンド ピー さい

わり OMM

移植 説明 まし

CP/M 慣れ いな 変わ

こと 思い ます , BIOS 拡張 機能 説明 どっ 思い ます 機会 , 今回 誌面 都合 カッ まし グラ フィ よび 漢字 ルー 説明 TURBO PASCAL 作成 まし ライ プラ リー ルー チン これ 使用 触れ к いと 思い ます 参考 文献 | : MZ-2000 16-ВІТ BOARD КІТ OWNER'S MA NUAL. 2 : 応用 CP/M 3 : イン ター フェ 1984 | (CQ 出版 ) 4 : Oh!MZ 1984 9 (日 ソフ トバ ンク ) 5 : CP/M-86 入門 (CQ 出版 ) 6 : CP/M-86 シス テム ガイ (デジ タル リサ ) 7 : 1/0 WICS・BASE ブログ ラム (工学 ) ) CP/M,CP/M-86 Digital Research 登録

特集 CP/M-86 16 ピッ 51

リス 1 CPYPC.SUB

リス 2 LDMAKE.SUB リス 3 CPMAKE.SUB

xsub

ddt loaders. cmd m180,137f,100

go

era ldcpm.com

save 18 ldcpm.com

ddt ldbios.com m100,4ff,1300

ildcpm.com

go

era loader.com

save 22 loader.com

180 aa/p:OOOO,b.C.gs. ks kisp«pasaa/n/x/e Ü کی یک‎ ddt loader . сот ж mi100,16ff,3280

iaa.hex

880

ао

era loader.com

era ldcpm.com

era аа.һех

xsub Я U ddt cpm.sys

ad o2 40 оо аа о? ао b: era cpm.sys

save 38 cpm.sys asddt a:bios.com

miO00,07ff4,3680 icpm.sys x | m3ég8o,3c7f,2680 go

RUP v E

era cpm.sys save 44 cpm.sys

今回 リス 含ま いま せん 削除 使用 くだ さい

リス 4 AA アセ ンプ ルリ スト

маско-в0 3.44 09-Dec-81 PAGE : b,10 NUM MW jinitial set key-buffer OEDH,OBOH

; BOOT PROGRAM for CP/MB& 3 E aintt

„list С а

extern —startz,sw$fkey,wvram,settime 9-5

exten mtdl,ckflga,initiocs 5 28 28H,$-5-*9-1

extrn charcnt 2 ramlen equ 22h aintf equ Off ah bint equ Offfbh А ckf1ga n | inta$location equ Offfch с a.m ҘА = send data intb$location еди Offfeh cod4h $ ldofset equ Qoooh x h sinc adrs ldseg equ 0800h ^ b дес length exofset equ a,b $ \ exseg equ с pstart equ xterout lenldcpm equ š 20H,xferout-$-1 B

ооооһ start

iobyte: Gih 4 ikbuf: 0,0,0,0,0 ş for turn-key sy

% $ kcol or

$

10Н,%-1-%-і sclr inta-flag с ісіғ intb-flag с 0-4 3 DB 20Н,%-4-%-1 $100ms x В delay %

wistint:

52 OhiMZ 1985.5.

aintf

a

wistint 28H,wi1stint-$-1 hsppar

4,5

b,2 xferout

d

sendpar 20H,sendpar-$-1 h,pstart

ppar

OEDH 4EH ppar xferout h.ikbuf

d,charcnt

şist kick 8088 swait for intrpt з from 8088

5

5

$ ssend prm to 808

$ 3

3 ssend ldcpm to 8

OEDH,SEH axhigh inta$location

4 sset I reg OEDH,47H 5 5 haint `

intaslocation | hrbint ` :

` ántb$location

Exc hhotb1 b,27

ジジ ジウ みみ みみ

sclr working-ram c,ramlen h,startz*i 3start айг ma ҙсіғ h зіпс adrs c % %-4 $ 20H,$-4-$-1

Sw$fkey set & disp F-ke h,cisi sdisp “Key: (8,04000Һ%80ж24%75

ь,5 Н

- % low inta$location,OdS5h OdS8fh 4 cdSB7h | ne low intbslocation,Od7h

а,0 timer initializ

$99982?8992?9?P 222222227922?

8,0 П sioinitb settime ;

е,2 şsio initialize 。9b3h ; sioiniloop: mvi b,sioini$end-sioinitbl 1хі h,sioinitbl outir ов OEDH,OB3SH dcr c sioini dcr c $C = Obih Ц dcr e И cisi: jrnz sioini loop 4 DB 20H,sioiniloop-$-1 mvi out mvi out mvi out mvi out

ИТТІ

ei 1enable intrpt

initiocs

リス 5 ロア セン ブル リス

MACRO-BO 5.44 09-Пес-81

yi else idle Ў jidlent = idlcnt kclr,kanji,kcolor,kcr,k$jin T plot,line,circle

paint

gget,gput const,conin,conout list,punch,reader,listst Vlde: readtime,latch,motimer DB i

3 pit idlcnt = O 3 ^N

838 S58

58

з initiocs,iocs,ckflga,ckflgb mtdi

compt OdSh stept compt trkpt Od9h secpt

datpt

usel

sidpt

wrb rdb aintf bintf rtycnt idicnt

s 888

retry count

3833

i ini tiocs:. call dkhome

$5832 529TEHHEHR 5

t

mvi b,numb$diske*i ікі h,trktab xra a clrtrktabs mov ma inx h djnz clrtrktab DB 10H,clrtrktab-$-1 sta жена туі a,0€fh sta rdtbt sta wrtbt

SHUHE ЧИНИ

Ida bintf ore a árnz -xqtio 41+ intb then i/

FEE

Serer: g

:

特集 CP/M-86 16 53

Oh! MZ 1985.5.

$ ilegal:

ckflga:

ckf1ghb:

% dkhome:

dskinit:

% ірі:

% wboot:

flush:

H tine:

ірбіте:

chkend:

sdcolon:

% mtotf:

$ ertst:

dw

dw

1 t

z

dw

dw

call

kcr,kjin,mtoff,time

ilegal,ilegal,ilegal,ilegal ilegal,ilegal,ilegal,ilegal ilegal,ilegal,ilegal,ilegal ilegal,ilegal,ilegal,ilegal ilegal,ilegal,ilegal,ilegal

plot,ilegal,line,circle

paint,gget,gput

Od4h iocs

aintt

а

ckflga 28H,ckflga-$-1 a

aintf

Біле

а ckflgb 28H,ckflgb-$9-1 a

bintf

mton b,numb$disks*l

a,84h

b

1

usel

latch

recal

dskinit 10H,dskinit-$-1

Od4h sdummy

dkhome

а,&

Oe3h

iocs

od4h 3 dummy

wrtflg j1f wbuf durty a y then wrbuf on wrtkw Н

a,0ffh

wrtbt

rdtbt

iocs

Od4h $dummy

wrtflg

a

wrtkw swrite buff onto a.0ffh

+8

58Н,%%8-%-1

wrt invalidate wbuf rdtbt yinvalidate rbuf ә

Od4h # Send status iocs

одаһ dummy

readtime

h Of すそ Oh ІН. = source adr Qi 24 $C "= colon

b, 3B = byte count ckflga schk rdy 8088 а,т ЗА = time data od4h # send to 8088

һ HL = HL +i a,b з

5 jif 2byte белдей sdcolon р then send col 28H,sdcolon-$-1

3 зог if Sbyte sen sdcolon р then send col 28H,sdcolon-$-1

lptime

10H,1ptime-$-1

iocs

ckflga schk rdy 8088 a,c 3C = А = colon Od4h $send to 8088 chkend

18H,chkend-$-1

od4h dummy

mtoffa 3

Od4h

const

р5

SAS 8 8

° 5

88055282 %8

ІІ ШЕН? i 22

ASS mP$8 MNSKRKS aB 8

SS 8

0018”

DOMO

£ x »

š

crtins

crtout:

home:

ње] ак:

settrk:

setsec:

sideo:

read:

readd3:

readdi: -

rdend:

writer

特集 CP/M-86 16 ピット ボード 55

ぷぷ *

NS

@ 自由 ログ ラミ ング , いか すか ?

パソ ンコ 買っ ,. プロ グラ 習う チャ ンス . フト

まん いる MEE CC MISRU CU GU dU ©, よく わか いび , W.

ます <

O 実技 講座 プロ グラ ミン プロ グラ 作る こと より 達する жоё. SIMI, 出来 ログ ラミ ング 頂く よう ,. ワー セッ

当社 送ら きた ブロ グラ プリ ンタ スト 出力 #&

"LOCA 5 НЕ У, 工夫 こら カリ キュ ラム いま

@ 幅広 学習 きま 当社 ゲー . デー タベース コン ビュ ラフ クス フト まで 開発 きた シス テム ハウ すか , ログ ラミ ング 技術 学べ ます

Ф プロ グラ 良い 道具 必要 入会 . プロ 使っ いる . 使い 易く 保管 MDBA 仕様 及び バイ ンダ ー, テン プレ 使っ 頂き ます 良い プロ グラ 作る MM 必要 明日 シス テム 開発

対象 機種 ①PC-8001mkII.PC-8001 QFM-7 @x-1 ④PC-6001

竹中 講座 すら . あな パン コン あわ 学習 行なえ ます

講座 ビギナー 講座

СОЉУ. J&8$7) 51560 IFL 757€ X98 S

講座 FORJL—7 788A 5757€ 30g

バグ カー シス テム 自作 プロ プラム どう わが パブ 答え ます SN эк SEI CDI OSS EE OD 75 D, ちせ 頂き ます

資料 希望 ハガキ 〒, 住所 , 氏名 , TEL, 機種 記入 Е, 当社 送り 下さ 早速 資料 送り ます

マイ グロ デー タダ ペー アソ 7194-01 東京 鶴川 2-1-8 -205 12(0427)35-1600

NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNS1$⑮

56 OhiMZ 1985.5.

LIE

ZS

e

A

NN 入会 パン コン 持ち

シン シン シン ンジ シン ンク ンク クン クン ンク ググ

writcpi

calend:

92 9999

ази MAE

skrty:

skerrı

drvsel:

redyo:

nodi sk:

mton:

теді:

mtd2:

20 FB *

10 F6 +

dyBOus

datpt

h

wra 10H,wr4-$-1 d

"ré 20H,wr6-$-1 ckstat

b,rdb caladrs h

b,wrb caladrs d

b,80h

OEDH,OBOH

28H,nodi sk-$-1

stspt

redyo 38H,redyO-$-1

аһ 1

mtd2 20H,mtd2-$-1 mtdi 10H,ntdi-$-1

d 9,15

diyt 1BM,diyt-$-1 |

ЗН. = trk tbl ad

sset retry count

314 cy then err

1

$ 314 motimer = O р then isec dly

? 5888

зав

985058 3398

- g

оты == Š

リス 6-A

CP/M ASM8é 1.1 SOURCE: BIOS.686 PAGE

а 4,6700

а

a,d

e

dlyt 20H,dlyt-$-1 d

wait2: ",о waito:

a,h 1 waiti

28H,waiti-$-1 stspt

wai tO

OH wai tO-$-1 a

h

d

е

wait2 20H,wait2-$-1 h

d

d

h

dly80u

e,7 busy2:

һ,0 busyOs

һ

a,h

1

busyl

28H,busyl-$-1

stspt

busyO

Ld

BIOS

Жоғ М2-2000/2200 16BIT BOARD

Ver 1.0 Jun. ié. 1984 +

すま ミミ エミ スス ミミ さま うさ ミコ うす ミミ さま ミミ ミミ よさ ミュ スス スミ ミミ ミミ ミミ ミミ 3

true false 14 bios

-i

not true false 220 224 249 255 52

ささ Odh Oah ibh 7eh 7th

equ 2

if not 1d bios

bíos org ccp entry

bdos entry

equ 2500h equ о equ ObOo5h

endi ft

if 14 bios

ccp entry

bios org

uu кек кк кек кк AE E BE жек E E AE AE AE кк к кк өн...

3% BIOS

JUMP VECTOR from here *

35252

% 2500 Е95700 2503 E9D300

2505 E9DBOO 2509 E?DAOO 250C E9DCOO 250F E9DEOO 2512 E9EO00 2515 E9DDOO

init wboot

const conin conout listout punch reader

ü HEP GEESE ЕВН

3E 2F D3 CD CD CD CD DB 049р' 2F о49Е” 0460* EE c9

НЕННННЕН НИНННН: 888888888888888 4Q9RUS$SRDSSRSS

E9DDOO ESDFOO E90701 Е90001 ЕЗОҒО1 E91501 Е91801 Е91а01 Е91С01 Е90501 Е91901 Е9іАО1 Е91401

BEDG BECO

С7050000ВВ25

C706E4038726 C706FCO30025

265A 265F 2664 2669 266E 2673 2678 267D 2682

3 8889888899585555 1j

home seldsk settrk setsec setdma read write listst sectran setdmab getsegt getiobf setiobf 3 if not ld bios

きま キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ オキ キキ エキ エキ キキ キキ キキ エエ キオ

flush ірі kclr kanji kcolor ker kjin mtoft time

すす イナ オイ ナオ オオ オオ オオ ナナ ナオ ナオ オキ キナ オキ オキ ネオ オオ オオ ナオキ キナ オキ オオ キキ キオ キオ キキ キネ キキ キキ

endif

init: cli

jinitialize int vect & disp s-on $disable íntrpt 1get code segment adrs and copy it to other

seg reg juse local stk sset fwd direction ҙвауе ds івауе ез %

; yset DS k ES to O

int-O entrance intO,offset,offset int trap intO segment,cs

di ,4 si,0

сх,510 rep movs ах ‚ах mov $ if not ld bios

% %

% jset all 256 int entry

bdos offset,bdos entry

ーーーーーーーーーーーーーーーーーーーー

g entry,offset eint249

rst entry,bios оға

ーーーーーーーーーーーーーーーーーーーー

aint entry,offset aint bint entry,offset bint

es ds jreq,O0

特集 CP/M-86 16 ピッ

згезе DS clr aint

57

2508

2699 2699

2699

2599

2699

2627

2699

2612 81C3D529 2616 BBCB 2618 83C30A 261B BB1F 261D BSCSOD 2620 8407 2622 А21Р2А 2825 SBD?

2627 C3 2628 BBOE1E2A

262C B30A

262E E95800 2599

2651 ВЗОВ

26852 E96300 2599

2636 8%0Е152А 263A C3

265В 890Е152А cs

2640 B3OD

2642 E95400 2599

2645 BSOE 2647 ЕФАҒОО

264A BSOF 264C E94A00 264F BBD? 2551 C3 2852 ВВ1928 2695 C3 2656 BOOO 2658 cs 2659 CS

265A B315

265C E93A00 2699

58 омм 1985.5.

mov imp

$

int trap: sti mov mov mov call jmps

msgend:

wboot:

H

listout: mov јтр

;

punch:

reader: mov ret

mov jmp

mov cmp jnb mov call mov mov mov shl add mov add mov add mov mov mov

seldsk_end: ret

$

settrk: mov mov jmp

setsec: mov jmp

3

setdma: mov ret

setdmab: mov ret

4

read: mov jmp

;

writer mov jmp

$

listst: mov jmp

;

sectran: mov ret

getsegt: mov ret

Uu

getiobf: mov ret

setiobf: ret

%

jrdy,i

bx,offset signon pasg cl,0 сер

sset bint flag jenable intrpt

jdisp sign-on msg ізеі A-drive

3; & goto сср

$

jenable intrpt

sset DS

bx offset ilint msg

ы1,1 qiocs сср+&

в1,2 qiocs

ы,5 qiocs

b1,4 qiocs

ы1,5 qiocs

al,1ah

b1,8 qiocs

bx,0000h cl,numb disks seldsk end bl,9

qiocs

ch,0

bx,cx

с1,4

bx,cl

% 1 % деб next char

$ % if O then end % else disp it

інағт boot routine jBL = function notify 280 to

4 inact buffer

jreturn with eof š; (not support)

š %

4 schk disk number jif over then end

¿send to 280

% p cnt (16 times)

bx,offset rad 3ВХ = dph adrs

cx,bx bx,10 bx,tbx1 bx4,13 al,tbx2J off trk,al bx cx

trk,cl bl,10 qiocs

bl,11 qiocs

ата adr ,cx

dma seg,cx

bl ,13 qiocs

bl,14 qiocs

bl,15 qiocs

bx,cx

фвауе BX to CX

3ВХ = DPB of DPH

;BX = DPB adrs

3 BX = off-trk of DPB зА = off-trk number івауе AL

reset BX (DPH adrs)

%

logical = physical $

bx offset seg table

а1,0

if not 14 bios

% キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キャ キキ キキ キキ キキ キネ キキ snotify to flush buff

flush: mov jmp

51,21 qiocs

265F 2661

2664 2666

2669 266B

266E 2570

2673 2675

2678 267A

267D 267F

2682 2684

2687 2588 2689 268A 268B 268C 268E 2690 2693 2695 2697 298

2665 2649 eaC 26AE

2699

2699

2699

2699

2699

266F 2750

2748

2686 26ES

2750

2715

26A6

2714 2715

ЕНН ЕЕРЕЕ ER NT

ірі: mov b1,22 jmp qiocs

i E

ксіғ: mov Һ1,25 jmp qiocs

1

kanji: mov 61,24 jmp qiocs

,

kcolor: mov b1 。25 Зар qiocs

3

kert

bl 。26

jap qiocs

з

kjins mov b1,27 jmp qiocs

mtotf: mov bi 。28 jmp qiocs

5

time: mov b1,29 jmp qiocs

$

eint249: sti push push pop es push es mov ах,сә mov ds,ax add b1,50 call qiocs рор- ds pop es iret endif

3

giocs: push bx xor bh,bh shl bx,1 mov ax.jcmdtbx3 pop bx jmp ax

š

jnop: ret

з

zconst:

zconin:

zlistst:

zflush:

rwsfrs: call sendfc call jckreq in al, aporta ret

$

zwboot:

zconout: -

zlistout:

zhome:r

zseldsk:

zsettrk:

zsetsec:

тірі:

табоҒ4:

тесігі

zkcolor:

zker:

sendfc: call 3ckrdy mov al,bl out qportb,al mov jrdy,O mov el,cl out qporta,al ret

Li

zread: call rwsirs test al,al jnz rdend push es pusht cid mov ax,dma seg mov es,ax mov di,dma adr mov сх,128

ғсудай:

rdend:

%

zwriter

А E E N %% QIOCS branch to according to content of DL ж よさ よさ どこ ささ ささ どこ さこ ささ さす すう

jehk status

рт ж offset of ОМА

penable Aneren save ES save DS

y and to ES

4

m. Ее i

jbini BL+50

branch to sub jreset DS

şreset ES

jret to point of int

asend jclr В-і JAL = parameter /dummy jsend para/dummy via A з

send dune k теу жыл 34¥ поп 0 then end

$ else rcv ye

івауе flag г

ida ded direction M its = segment > рма

CX = char count

2EC606182A01 СЕ

2EC6O6172A01

T

2750

271F

2784

277B

mov еѕ,ах тоу бі,дта adr mov сх,128 sendat: call jckrdy lods es:al mov jrdy,0 out qporta,al loop sendat popt pop es call jckreq in al ,qporta wr end: ret % cpmdata: mov al,off trk сер trk,al jb complement ret complement: push ез pushf cld mov ax,dma seg mov es,ax mov sSi,dma adr mov di,si mov сх ,64 1р: lods es:ax not ax stos ax loop рор+ рор es ret 3 eint: mov csijreq,1 iret binti mov csijrdy,1 iret % jckrdys mov al,jrdy rer al,1 jnc jckrdy ret jckreqt mov al,jreq rcr а1,1 jnc jckreq mov jreq,al ret , if not ld bios і--------------------------------------- zkanjis test cx Of fth jne zki jap ker zki: cali sendfíc sub €x ,2020h mov ax,cx стр ah,31 ja segs сар аһ,15 jbe segá cmp а1,62 ja segs seg4: mov dx ,4000h mov es,dx стр аһ,15 jbe kece call kxxx call kyyy call kzzz add dx ,4000h jmps ksetpar кесесі call kxxx стр 91,2 je kddd cmp dl,1 jne keee mov 91,2 jmps keee kddd: mov 91,1 keee: mov с1,5 shl а1,с1 add ah 。d1 call kzzz jmps ksetpar segs: mov dx ,Зоооһ mov es,dx сар аһ,32 jae ket sub а1,54 kfff: call kkxx call kyyy call kzz2 ksetpar: ーー mov LLLI pusht clo call kxfer ада dx 。BOOOh mov si ,9х call kxfer рор+ ret kxfer: mov cx, 16

3ES = segment of ОМА 27Е0 151 = offset оғ DMA 27Е2 ҙсһағ cnt (data*status2) 27E4

27Е6 schk rdy for z80 27Е8 ; 27EB ҙсіғ B-int flag 27F0 % 27F2 1 27F4 jreset flag reg 27F6 reset ES schk status ack 27F7 З. = status

27F9 L 27FB

ФМ. = off-trk number 3:14 system trk 2801

з then complement i 1 eise non action 5608 save ES save flag reg “ad ж ti dup: wd direction 2006. з 280C А 280D 1 280F 2811 1 2815 3 2815 H 2817 4 2819 М 2818 Н 2810 3 281E $&-int from 280 281F И 2820 2822 ;B-int from 280 2824 2826 , 2828 = 282E mg B-int flag 2831 ; 2855 4 2855 2857 2859 hk A- # hk A-int flag 22 0 yclr А-іпе flag 2842 2845 2847 2844 284C yr = kanji code 284F H 2851 2853 2854 send function(24) ICX = kanji code 25 ЗАХ = CX

ЗАН = ist byte of code spatrn іп

jif AH <= 15 then

% patrn in SEGA jelse AL > 63 then

1 patrn in SEGS

sset ES 3 to 4000H

ri AH <= 15 ーー Жы ле 285Е ; 2850 : 2863 DX = ofset

È

i ҙзауе flag reg sset fwd direction

' sfor 2nd 16 bytes 1

LI reset flag reg

#CX = no. of byte

ЗА. = patrn byte 3BL = shift count

ЕСИ Е.

27Е0 2748

27DC

2801 27F9

:

ШЕБІ

š š

М

DDD

"i

n ы - -

TD ҒЫ:

jz

zkjinend:

call in mov xor

bx,cx

c1 ,es:Cbx2

bx,dx sendfc

jckreq

al aporta al,al zkjinend

zkjinlp

jckreq al,qporta work,al ch,ch cl,al

di

es

al grcvdati

ЗАН = reverse

з bit order of AL şuntil Ө bits

з

5

jclr flag зА = AH ssend to 280 H ç

ssub 32 until s =< 52

ТА = 2nd byte 3AL < 0 jDL = DL +1

%

JAL = AL +52

sist byte + ағ16-16 ,

1 JDL = DL * 16 ЗАН = ісе byte

з (15+ byte * 32 р + 2nd byte) * 16 ЗАН = ist byte

3 Dx = DX + 52 1 ;

$ DX = ofset of patrn %

DX = seg adrs of buf 3СХ = ofs айга of buf

з

ҙвауе fc to dx

ssave offset to BX

ЗС. = char count (to 280) restore fc

ssend £c(27)

jwait from 280 3AL = code or end-flag 3144 0 then end `

; % else low byte of code

;

JAL = hi-byte of code salso АН

ТА. = lo-byte of code ҙсоде only seg4

4% $'CR' pressed

% jreceive char cnt s debug

4 й 1CX = char count

;DI = ofs adrs of buf 3ES = seg adrs of buf gist adrs = chr cnt ` ігесеіуе data

ーーーーーーー ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー ーーーーーーー $

endif

if not 1d bios

ін

call

sendfc es,dx di,cx сх,8 grcvdati

cl,6 sendfíp

с1,10 sendfíp

с1,8 sendfp

sendfp

grcvdati

с1,10 ggpparck gsendat

estax | dx,ax | estax- es,ax $i .dx

jckrdy esial jrdy,O

qporta。al

gsendat1

ssend fc

1ES = DX = seg

1DI = CX = ofs

$CX = byte count ігесіеуе time data

ICL = pre byte count i ;

jCL = prm byte count 3

1CL = pra byte count % Ы

з

= prm byte count jsend #с,раг ck ent

31% nz status $ then end

else get ofs adrs

and seg айга

ж“...

特集 CP/M-86 16 59

26AF

2748

28B9

P UE

28B2

28DA 26854706

28F3

0100 E? 57

60 onwz 1985.5.

0110 DE 00 E? EO 0120 91 E? Өр 01 6130 E? ІС 01 E? 0140 18 01 E? iA 0150 @1 E? 24 01 8168 08 SE Се BC

ret $

3

sendtp: call sendfc ssend function pusht $ cld jset fwd direction xor ch,ch sclr CH

senpar: call jckrdy schk гау for 280 lods es:al А = parameter mov jrdy,O sclr b-int flag out qporta,al 3 loop senpar Н рор+ ret ;1

;

даррағск: mov dx,si ¿save SI to DX call sendfp ssend fc prm byte cnt mov bx ,dx :ВХ = prm top adrs mov ax,es:4tbxJ ЗАХ = yl sub әх ‚ев: СЬх 2 $AX = уі-у іпс ах ; mov dx,ax :0Х = length Y mov ах ,es:óLbx 7 ЗАХ 7 x1 sub ЗАХ = x1-x mov shr ЗАХ = (x1-x)/8 іпс ТАХ = byte cnt of X mal з mov #CX = data byte cnt call 4 іп sget status from 280 test ret

endi t

SS ささ ささ ささ さよ ささ さよ さす ささ ささ ささ ささ ささ ささ ささ ささ ささ ささ ささ ささ ささ ささ すす 3 * рата AREA * うう ささ ささ すさ ささ さす さそ さす すそ すす よさ ささ ささ ささ ささ ささ さこ ささ ささ ささ

1 data offset equ

offset $

dseg org data offset

з

ӛсті: dw jnop 300 dw zwboot 101 dw zconst 302 dw тсопіп 305 dw zconout 104 dw zlistout 305 dw jnop 106 dw jnop 307 дм zhome 308 dw zseldsk 309 dw zsettrk 10 dw zsetsec $11 dw jnop 412 dw zread 315 dw zwrite 314 dw jnop 115 dw jnop 316 dw jnop 117 dw jnop 318 dw jnop 19 dw jnop 320

% if not 14 bios

ーーーーーーーーーーーーーーーー ーーーーーー dw zflush 321 dw zipl і22 dw zkclre 325 dw zkanji 124 dw zkcolor 325 dw zker 326 dw zkjin 327 dw zmtoff 328 dw ztime 129 dw jnop 350 dw jnop 131 dw jnop 152 dw jnop 333 dw jnop 354 dw jnop 135 dw jnop 136 dw jnop 457 dw jinap зв ан jnop 139 dw jnop 340 dw јпор 381 dw jnop 3142 dw jnop 345 dw jnop 344 dw jnop 345 dw jnop 345 dw jnop 147 dw jnop ав dw jnop 349 dw zplot 350 dw jnop $51 dw zline 152 dw zcircle 355 dw zpaint 154 dw zgget 55 dw zgput $56

3--------------------------------------------------- endif

% if 1d bios

00 E? DD 99 E? DD 00 E? DF 08 E? 07 E? ӨҒ 61 E? 16 01 E? 18 81 E? 01 05 01 E? 19 01 E? 01 E? іа @1 E? 01 E? 81 ЕЎ 1E 01 E? 20 01 E? 22 E? 26 81 E? 28 81 FA 8C CS ВЕ 8E 48 2B FC 1E 86 B8 00 88 SE 08 8E СО

2965 1B2A 2987 2020820204350 D ж”

2F4D2D383620 20566F72204D 56323030302F 323230302031 364249542042 аға15244202А 2А2А

орол 2995 202020202020

202020202020 202042494۴53 202056657220 512Е31202020 46756E2E2031 393834

29BC ODOA00

29BF за

29D5 000000000000 0000

2900 202АҒ529 29Е1 ЕО2ААО2А

29Е5 000000000000 0000

29ED 202A042A

29F1 OO2BCO2A

29FS 4000 29F7 O4OFO1 29ҒА 97OO FOO 29FE 8000 24800 10000200

2804 4000 20806 O4OFO1 20809 97003FOO 2A0D 8000 2АОҒ 10000200

2B40 454E442O4F46 2042494F マラ

8178 C7 06 99 0188 В? FE 01 0190 26 C7 06 eiae 00 41 27 8188 ВВ 65 2? eice BB C8 2” 0100 53 ES 17

ee BB 25 OE 02 08 BF ЕЗ А5 C7 04 88 03 OB C ЕС 83 ве 25 ст 06 ве 99 07 ІҒ 86 18 2A 00 ЕВ 12 80 Bi 08 E? 45 DA ES 62 88 EB FE Ва 07 84 88 5B 43 EB Ғе СЗ B3 91

signon: db esc, ж” | cUm 2 db ‘Loading CP/M-B&6 for М2-2000/2200 db "16BIT BOARD ',cr,lf,0 De 3---------------- Бер UD bot отет endif з if not 14 bios 3---------------------------- ---------- signon: a db esc, ж: E db '*** CP/M-B&6 for М22000/2200 16ВІТ BOAR db cr,1f db ы BIOS Ver 1,1 Jun. 1984 db сғ,1%,0 %--------------- سا الا‎ endif work db Sah ilint_msg: ; db сғ,1%4,"ІМТЕРТ TRAP HALT',cr,1f,0 5 ; dpbase: dphOs dw 0,0,0,0 dw dirbuf,dpbO dw csvO,alvO dphis dw 0,0,0,0 dw dirbuf 。dpb1 dw csvi,alvi % dpbO: dw 54 db 4,15,1 dw 151,65 db 128,0 dw 16,2 dpbi: dw 64 db 4,15,1 dw 151,65 db 128,0 dw 16,2 3 dma_adr dw о dma seg dw о jrdy db 9 jreq db 9 $ segtable: db 1 4 dw tpa seg dw tpa len trk db o off trk rs 1 ^dirbuf 128 alvo 22 alvi 32 csvo 32 csvi 32 32 offset $ offset $ (1astoff*O400h*15) / 16 2000h-tpa seg ЕМО OF BIOS"

$ жк кака аали I OHHHHEEHAGHHGHHHE AEE AERE AEAEE EAE AEAEE

+ DUMMY DATA SECTION 7 * うう さす よさ よど ささ ささ とこ ここ ささ ささ ささ ささ すさ すす すす すす です すさ ささ ささ жанан dseg о Т org o intO offset rw 1 intO segment rw 1 rw. 2*(280, aint-1) aint entry ғ“ ei bint,entry rw 2 rw 2*(bdos int-z80 bint-1) bdos offset rw 1 bdos segment rw 1 p rw 2*(g int-bdos int-1) . . gentry г“ 2 x г Š rw 2*(rst int-g int-1) rst entry rw z Moe

リス 7-A LDBIOS. A86 アセ ルプ ルリ スト

CP/M ASNB6 1.1 SOURCE: LDBRIOS.AB6 PAGE H

етекке к екен кекке көже е к кк HAE AH RIDERE OH `

BIOS Жоғ М2-2000/2200 16BIT BOARD .

* Ver 1.0 Jun. 16. 1984 + рма ORACLE ELEC AHORA HOO EE

equ

if not 14 bíos

тесле te c itae re کک ی‎ TI Drs ЕС bios org 2500h

сер entry o

bdos, entry Obo6h ҙ-----------------------------------------------------

endif

if 19 bios

ccp entry bios org

1 4 すす 3 すま 233 ミミ 2 スミ ミミ ミミ ミミ ミミ ミミ ミミ ミミ ミミ ミュ ミュ ミコ

е BIOS JUMP VECTOR from here [は さよ ささ ささ さよ ささ ささ ささ ささ ささ よど どど さす さと ささ ささ ささ すさ さす すす さま ささ ささ さす すす 3

1200 E93COO 1203 E9ACOO 1206 E9B100

Noo Pww

АУТА:

9 DA 2B 7E A5 Е4 AF А5 аз AS 75 20 зг 20 20 31 5A 41 F5 94 ee 10

$ if not 14 bios ます すそ すす すす キキ キキ キキ すす キキ キキ キキ キキ キキ すす キキ キキ キキ キキ キキ キキ エキ キキ キキ キキ キキ すす flush ipl kclr kanji kcolor jmp tine ます そそ そそ そそ すそ キキ すす キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ キキ ネネ キキ キキ キキ キキ キキ すす キキ endif

Н init: jinitialize int vect k disp s-on sdisable intrpt

ез,ах D sp,offset stkbase Г yset fwd direction ds ¡save de es save es ах,0 % dw ax $ es,ax зѕе DS & ES to O int-O entrance intO offset,oféset int trap іп%0 segment,cs di,4 % si,0 % сх,510 movs ax,ax > веб all 256 int entry bdos offset,bdos entry

if not 14 bios

mov g.entry,offset eint249

特集 CP/M-86 16 ピット ボー 61

——— T setiobts

endif 1332 C ret LH 3 1270 C7O68OOOD41 mov aint entry,offset aint 4 if not 1d bios 1276 C7068400DB13 mov bint entry,offset bint ミキ キキ キキ キキ キキ キサ キキ キキ キキ キキ キキ キキ キキ キキ キキ すす キキ すす すす キキ キキ キキ すす すす すす 127С 07 рор ез flush: snotify to flush buff 1270 1F pop ds reset DS & ES sov 51,21 3 Dein 127E С606891400 mov jreq,o jclr aint flag јер qiocs 1283 C606081401 : mov jrdy,1 jset bint flag ; 1288 FB sti senable intrpt ipl: s$notify to z80 to ірі , mov b1,22 1289 BBiF14 mov bx,offset signon jmp qiocs : 128C E81200 1241 call pasg disp sign-on msg ; % 128F B100 mov с1,0 зве) A-drive kc1rs УИ, 1291 E96FED 0003 Зар сер š * goto сер mov b1,23 notify to cìr G-RAM } P јтр ді осв L nt trap: % j 1294 FB sti senable intrpt kanjis send kanji code 1295 ӨССВ mov ax,cs mov b1,24 т end disp kanji 1297 BEDB mov ds,ax set DS jmp qiocs 1299 BBS114 mov bx,offset pie ғ 129C ЕВО?ОО 12A1 call pasg kcolor: ^ 129F EBFE 129F japs * ч mov b1,25 sset kanji-color ' jmp qiocs И рево: ' 5 12A1 8407 mov jget next char time: 12A3 84CO test ; mov b1,26 sget time data _ 12A5 740A 12B1 jz з if О then end "9 Hm з жук 3 else disp it jmp qiocs $ hhimmiss pu ee moy 12C4 call $ КЕТ рор [1 sti senable intrpt 12AE 43 inc push es save 1 12АҒ ЕВРО 1241 imps 3 push ds #5ave DS isi. es msgend: 55 рор es . з and to ES ri Г ush es ; 1 =e ax,cs = CS 4 mov ds,ax % wboot: swarm boot routine add bl ,30 sbias BL+3O 1282 E301 mov bl,1 РВ = function call qiocs ybranch to sub 1284 ЕВ7СОО 1333 call qiocs snotify z80 to pop ds ireset DS 1287 E94FED 0009 jmp ccp*é П inact buffer pop es preset ES ; iret ret to nt of int const: ДРС АОИ ree 12ВА B302 тоу ы,2 8 endif 128C Е97400 1333 ітр qiocs 3 3 ' ӘӘ 222211212222 2202224 conin: 3% GIOCS branch to according to content of DL * 12BF B303 mov b1 Jteasss........................................... О qiocs: 12С1 E96FOO 1552 jap qiocs 4 1333 55 push bx 3 4 1334 2FF xor bh,bh jelr эн : conout: 1336 DIES shi bx,1 3BX = function беш » 2 12C4 B304 mov bl,4 # 1338 BB87FS513 mov. ax,jcmdtbxJ3 ЗАХ = jap айг» 12С6 E96A00 1333 Зер qiocs ; {2 2 pop bx jreset Lo 1331 ЕО E imp . ax % listout: 1209 BSOS тоу ы,5 # 12CB E96500 1333 jmp qiocs з 133F C3 punch: reader: 12CE BOIA mov al, iah return with eof 1200 C3 ret pinot support) home: 12D1 B3O8 mov bl,8 , 1340 ЕВОФОО sendfíc 1205 Е95000 1333 јер aiocs ; 1545 ESA40O jckreq H 1346 E47E a1 ,qporta seldsk: 1348 C3 1206 BBOOOO mov bx,0000h 5 1209 80F902 сер cl,numb disks jchk disk number 12DC 7322 1300 inb seldsk end jif over then end 12DE B309 mov bl,9 $ 12Е0 E85000 1333 call qiocs ysend to z80 12E B500 mov сһ,0 12ES 8BD9 eov bx,cx ' 12E7 В104 mov с1,4 fnit cnt (16 times) 12Е9 DIES shi bx,cl 12ЕВ B1C36614 add bx,offset THE, BX = dph айг» 12ЕҒ BBCB mov cx ,bx ҙзауе BX to CX zkcolor: 12F1 83C3OA add bx,10 #BX = DPB of DPH 12F4 BB1F mov bx, fbx] ;BX = DPB абга 1939 кб ЖЕРЛЕРІ 12F6 BSCSOD add bx,13 IBX = offーtrk of DPB 1322 ал P 12F9 8407 mov al, [bx] FAL = off-trk number 134E E67F 12FB A2BO14 mov off trk,al зѕауе AL 1350 C&05481400 1 BBD? mov bx,cx jreset BX (DPH абга) 1355 BAC1 seldsk end: 1557 E67E 1300 C3 ret 1559 СЗ 5 301 88OEAF14 селелер о 1501 1. тоу trk,cl П 1305 BSOA sov Ы1,10 ' Ie S сты 1307 Е92900 1555 jap qiocs з {SSF 751E 137F 1 1361 06 setsec: 130A BSOB mov bl,11 ; 1S рая 130C E92400 1333 jep qiocs ' 1364 A1A514 e 1369 BBSEA414 150Ғ 890EA414 mov dma_adr ‚сх % 1360 1313 C3 ret сені setdmab: 1% Е87700 13EA 1314 ВФОЕА514 ` mov dna_seg,cx D 1375 M 1516 cs ret 1376 Е2ҒӘ 1370 гаа, ium 1379 07 1319 BIOD mov bl,13 , | 1318 Е91500 із | jmp qiocs $ 1370 52% 5 ; dend write: 137F C3 е д 131E BSOE тоу bl,14 4 1520 Е91000 1555 jmp qiocs П zwriter ó ; 1580 EBBDFF 1540 listst: 1585 84CO 1323 BSOF mov ы,15 ; 1385 7527 13AE 1325 ЕФОВОО 1333 јер qiocs L 1387 E82500 1ЗАҒ sectrant 1 s 1328 BBD9 mov bx,cx slogicai = physical 138C FC 1324 C3 ret , 138D A1A614 getsegt: 1390 SECO 152В ВВАА14 mov bx,offíset seg table 1592 8В364414 132E C3 ret 1596 ВФВООО ; 5 sendat: getiobt: 1399 E84600 1: 132F B000 2 mov al,o ; 139C 26AC те 1331 C3 ret 1 139E CeO6AB1 400

62 ом 19855.

特集 CP/M-86 16 63

equ offset $ data offset db Cr,lf,'INTRPT TRAP HALT',cr,14,0

jnop zwboot zconst zconin zconout zlistout 0,0,0,0 dirbuf 。dpbO csvO,alvO

n B1148614 шад 71153115 zhonme zseldsk 000000000000 zsettrk 0000

B1149514 91155115

9,0,0,0

dírbuf,dpbi сөуі,аімі

1f EFE

dw db dw db dw dw db dw db dw

‘Loading CP/M-B& for М1-2000/2200 ' : (1astoff+O4OOh+15) / 16 2000h-tpa_seg

15D1 454E44204F46 "END OF BIOS”

2042494F55

3232303020

313542495420 ・16BIT BOARD ',cr,1f,0

424F41524420

opoAoo

1 > if not 14 bios 2%(:80 aint-1) | ——— e ie 2 signon: :

жс,” 2*(bdos int-zBO bint-1)