Last updated 09/18/2022 since 20xx
1. 概要 (Summary)
工学社のI/O誌 1982年〜1984年掲載の「EDAS エディタ・アセンブラ」
for MZ-80B/B2/2000/2200に関する入力方法と補足というか便利改造の情報です。
FD-Systemのみをターゲットとしています。
I/Oの関連記事は、以下の通りです。
I/O 1984/7 p.232の「BIG I/O プラザ」の「EDAS FD System IPL起動」は参照せず、 別の、単純で矛盾のない方法を使用します。
2. EDAS v1.2 FD Systemの作成手順
ソース・ジェネレータは、FD System上でテープを使用せすに実行できる。
Pass-3実行はテープ出力なので、FD System上では実行しない。
Pass-2の後に、"E"コマンド等でEDASへ戻れば、ソースのテキストが完成している。
そのままFD Systemのコマンドで、ソースをセーブすればよい。
- IPL 起動ディスクの作成方法
I/O 1984/7 p.232の「BIG I/Oプラザ」に、「EDAS FD SystemをIPL起動」があるがこれは使わない。
システムディスク専用になる上、FDのビットマップ・テーブルを管理しないため、セーブできないか、
ディスクが壊れるのであまりよくない。また、もっと単純化可能。
I/O 1984/6のデバッグ記事にマスターディスク使用不可能とあるが、
これは、TRK:00/SCT:10の+$01のoffsetが$30のFD以外扱えないという意味です。
"DISK UTILITY"の"SLAVE DISK INITIALIZE"を実行して、最初のファイルとしてFD上へセーブし、
IPL情報が最初のファイルを参照する方法を使用すれば、システムとデータを共用化できるし、
難しいことは何もありません。
1) SLAVE DISK INITIALIZEする (80Trk改造版を使用した方がよい)
2) DIR時にMasterと表示させたいので、
TRK:00/SCT:0F Offset+$00 $01 -> $00 (Volume No.01 -> Master)
TRK:01/SCT:01 Offset+$01 $01 -> $00 (Volume No.01 -> Master)
と変更する。
3) $12A0-$40FFにまとめられたEDAS Assembler v1.2 FD Systemを用意
(84/06,84/08のデバッグ情報を全て当てておくこと)
* ターゲットの機種(2000 or 80B)依存の変更点を設定しておくこと
4) ドライブ1で作業するようにして、システム入りディスクへソースをセー
ブした方が便利なので、シングルドライブ化パッチをあてておき、つい
でにメモリ上のゴミをクリアする。
$3F5E to $40FF (+$A5E) (実行時、$FA50〜$FBF1まで)
がゴミなので zero clearする。
ブロック転送後バイナリへのドライブ2->1用(シングルドライブ用)変更場所
$35D5 01 -> 00 (+$0D5) (実行時/I/Oリスト=$F0C7)
$391F 01 -> 00 (+$41F) (実行時/I/Oリスト=$F411)
後のディスク上で変更する場合は、6)を参照のこと
5) MZ-1Z001M or SB-1520をBASIC等から抜き出して組み合わせる
a) 適当なBASIC等から、$0000-$129Fを抜き出して組み合わせる
b) $00AEから3バイトを、C3 AB 10に書き換える
c) $10ABから3E 01 32 AE 00 C3 00 35に書き換える
($10ABはMZ-1Z001Mの一行入力バッファなのでここへコードを設置、
最初の1回だけ$3500へジャンプさせるためこのようにする、
80BのSB-1520の時は少しずれているが、同じアドレスで問題なし。
$10AB -> $1093の方が少しだけ綺麗)
d) $0000〜$40FFをまとめてセーブしたIPL起動化したファイルを用意
($8000〜等へ読み込んで作業する、開始アドレスはどこでもよい)
6) 5)のファイルを2)のディスクへ何らかの方法でバイナリセーブする。
TRK:03/SCT:01から$0000〜$40FF分使用してセーブされる
$3500〜$40FFは、Trk:06/06以降に保存されるので、後で書き換える場合は、
こちらを書き換える
7) TRK:00/SCT:01のIPL起動情報を設定する。
+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
+$00 01 49 50 4C 50 52 4F 45 44 41 53 2D 41 53 4D 46 ;.IPLPROEDAS-ASMF
+$10 44 0D 01 00 00 41 00 00 00 00 00 00 00 FF 30 00 ;D....A........0.
* +$20〜+$FFまで0クリアする。
8) 完成
DISK BASICから"Utility"をコピーしておくと、EDAS上から実行できる
ので便利 (OBJロードでうまくEDAS本体を破壊して正しくjumpして自動
起動する)
- MZ-2000/2200版のFD SystemをMZ-80B版へ変更、または、その逆を実行する方法
僕は、MZ-2000用を作成しておいて、変更したら、MZ-80B版を作成していますので、その手順です。
逆の場合は、パッチの内容を本誌を参考に、変更する必要があります。
1) Monitor SB-1520をコピーする。
SB-6520のシステムディスクのTRK:03/SCT:01から$1200バイトをコピー
Ex.
TF-DOSを起動して、MZモードにするため、MODE 0して
READでT:03 S:01 ST:8000 ED:91FF、
WRITEでT:03 S:01 ST:8000 ED:91FF
2) オートスタート関連の書き換えを実行する。
TRK:03/SCT:01 +$AE C3 A2 12 -> C3 93 10 ($00AE)
TRK:04/SCT:01 +$93 00x8 -> 3E 01 32 AE 00 C3 00 35 ($1093)
3) I/O 1982/11 p.339のMZ-80B v1.2とMZ-2000 v1.2の違いを比較して、
パッチを適用する。
TRK:04/SCT:03 +$D2 32 30 30 30 -> 38 30 42 20 ($12D2)
TRK:05/SCT:02 +$E1 83 32 -> EB 21 ($21E2)
TRK:05/SCT:03 +$0F 70 -> 6B ($220F)
// +$29 65 -> 6A ($2229)
// +$52 2C -> 26 ($2252)
// +$57 32 -> 38 ($2257)
// +$7B 31 -> 2C ($227B)
// +$84 36 -> 3C ($2284)
TRK:06/SCT:03 +$83 CD 11 05 C3 EB 21 -> 00x6 ($3283)
* 既にMZ-80B用のシステムを作成している場合は、
TRK:03/SCT:01〜の$3300バイトをそのままコピーすればよい。
- I/O 1984/06 p.367のデバッグ情報のアドレス対応表
デバッグリストは、掲載リストへの適用パッチであり、ブロック転送済みの起動用バイナリはアドレスが違います。
後からパッチ当てできないので、対応表を作りました。
掲載リスト&実行時$F000〜 / 起動ファイル$3500+$0e〜 F11F/362D 2bytes F151/365F 4B -> 52 (I/Oのオリジナルデータは間違い) F1AF/36BD F1BC/36CA F1D7/36E5 3bytes (F1D9/36E7 33->33は変更の必要なし) F2C2/37D0 F2CB/37D9 F3EB/38F9 F3F5/3903 F4CD/39DB F4D3/39E1 F4E5/39F3 (03 -> 07だったのが8月号で修正) F4F3/3A01 F562/3A70 F5E6/3AF4 F600/3B0E F719/3C27 2bytes F906/3E14 2bytes F909/3E17 2bytes F98E/3E9C
- I/O 1984/08 p.241のデバッグ情報のアドレス対応表
6月号のパッチのみだと正常動作しなくなります。
掲載リスト&実行時$F000〜 / 起動ファイル$3500+$0e〜
F3F6/3904 F5 -> F4
F4E5/39F3 03 -> 70
F9CF-D1(3EDD-DF) "BTX" -> 2A2A2A ("***" 3bytes)
F9D6/3EE4 43 -> 4D ("ASC"->"ASM")
3. その他 (etc.)
当時、初めて入手できた夢のアセンブラー「EDAS」。
しかし、スクリーンエディットが魅力でSuper BASEへ行ってしまいました。
今更なから、打ちかけで消滅したソースジェネレータが完備され…
消滅した理由は、デバッグ記事が当たってなかった上に、
ディスク節約で、DISK BASICと転送したからだろうなぁ…
注意しましょう!!
MZ-2000版について、今更になって、
昔、当たっていなかったデバッグ情報を適用したり、「EDAS ソース・ジェネレータ」を揃えてみたのです。
せっかく完成したけど、1985年以降に登場したS-OSとかあるんだよなぁ〜〜
(ZEDAの原型となったEDASMというのもありました)
MZ-2000/80Bエミュレータだと、プリンタ出力ファイル化プラグインとペースト機能で、
MS Windowsテキストとやりとりできて、とても便利。
そのうち、SHARPのF-DOSや、システムプログラム、とかとの転送も試してみたい…
でも、試してないけど、S-OSでもCP/Mでもできるよなぁ…
以上