号 昭和 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» 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; 7а 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; 7а 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; 7а を 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; 7а & 0x4000) printf(^*XcYt Xc[35;7m & 0x2000)
printf(^XcYt же [35; 7а
& 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] рор 4з
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Е” Eó 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 1р рор+ рор 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 % Ы
з
1С = 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? 1А 01 05 01 E? 19 01 E? 1А 01 E? іа @1 E? 01 E? 1С 81 ЕЎ 1E 01 E? 20 01 E? 22 E? 26 81 E? 28 81 FA 8C CS ВЕ DƏ 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 8С OE 02 08 BF ЕЗ А5 C7 04 88 03 Bó OB C ЕС 83 ве 25 ст 06 ве 99 07 ІҒ Có 86 18 2A 00 Có ЕВ 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 LÀ [は よ は よ さよ ささ ささ さよ ささ ささ ささ ささ ささ よど な どど さす さと さ ささ ささ ささ すさ さす で すす さま ささ ささ さす すす 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)