はじめて読む8086用環境の構築(Windows用)
- 2021年に作成したメモを公開
- 著者の蒲地輝尚さんとすばらしいツールの製作者様に感謝
- 蒲地輝尚(1987)『はじめて読む8086』アスキー出版
1. ツール
Neko Project 21/W
- 通常版をダウンロード
- GoogleDriveが開かれるから、右上のダウンロードをクリック
https://simk98.github.io/np21w/download.html
FreeDOS(98)
- MS-DOSの代替
- FreeDOS(98)各種PC-98エミュレータ用ハードディスクイメージ(HDI形式): fd98_hd_250m_20210303.zip をクリック
https://bauxite.sakura.ne.jp/software/dos/freedos.htm
https://github.com/lpproj/fdkernel/releases/tag/test-20210226
DDEB
-
DEBUG,SYMDEBの代替
https://www.vector.co.jp/soft/dos/prog/se014328.html
DUMP for DOS
-
DUMPの代替
https://www.vector.co.jp/soft/dl/dos/util/se012414.html
Arrowsoft Assembler 2.0
-
MASMの代替
https://hp.vector.co.jp/authors/VA007890/dos/language.html
VAL
-
LINKの代替
https://hp.vector.co.jp/authors/VA007890/dos/language.html#VAL
EXE2COM
-
EXE2BINの代替
https://hp.vector.co.jp/authors/VA007890/dos/language.html
CAT
-
DISKCOPY.COMの代わりに編集するソフト
https://www.vector.co.jp/soft/dos/util/se003729.html
7-Zip
- ファイルの圧縮・解凍ツール
-
.lzhや.zipを展開できるソフトがすでに導入されているなら不要
DiskExplorer
-
.hdiファイルの編集ツール - editd169.lzh (270,194 bytes) Ver1.69 をクリック
https://hp.vector.co.jp/authors/VA013937/editdisk/index.html
2. ハードディスクイメージ作成
- ダウンロードした
.zipや.lzhファイルなどのを圧縮ファイルを7-Zip等で展開する -
ALPHA.ASMとCDUMP.ASMを含む8086ディレクトリに、以下のものを入れる-
arrowasmディレクトリにある、ASM.EXE -
vallinkディレクトリにある、VAL.EXE -
execom14ディレクトリにある、EXE2COM.EXE -
dump045dディレクトリにある、DUMP.COM -
ddeb116bディレクトリにある、DDEB.EXE -
cat19ディレクトリにある、CAT.COM
-
- DiskExplorerでFreeDOS(98)の
.hdiファイルを、ANEX86 HDDプロファイルで開く - 開いた
.hdiファイルのルートディレクトリに、8086ディレクトリをドラッグアンドドロップしてコピーする
3. エミュレータの起動
- 2~3については、一度の設定で有効になるから、次回以降の操作は不要
- np21のbinにある、
np21x64w.exeを起動 - Harddisk→IDE #0→Open→準備した
.hdiを開く - Emulate→Reset
- Boot Select Menuでは、基本的に286を選択。不都合なことがあれば386
-
A:\>cd 8086で8086ディレクトリへ移動。ここで操作を行う
4. 注意点
-
DEBUGまたはSYMDEBは、DDEBと読み替える -
MASMは、ASMと読み替える -
LINKは、VALと読み替える -
EXE2BINは、EXE2COMと読み替える - MS-DOSやFreeDOSは、現代のOSとは異なり、コンピュータの保護機能がない
- つまり、誤った操作をすると、
.hdiファイルが破損してしまうことがある - 頻繁に
.hdiファイルをコピーするなどして、バックアップを取ることを推奨する
- つまり、誤った操作をすると、
- 3章で編集する
DISKCOPY.COMは無料で入手できないから、代わりにダウンロードしたCAT.COMを使用する- まず、
A:\>cat asdfのように、存在しないファイルを引数に与えて、エラーメッセージを確認する -
0x0501番地から12バイトほどエラーメッセージの領域となっているから、そこをDDEBで編集する(E 601 'hamachi'等を入力) - 編集が終わったら、先程のように、存在しないファイルを引数に与えると編集結果が確認できる
- 日本語入力には対応していないようだから、日本語を打つ場合は、
E 601として、93 5d 91 97 8c b3(転送元)というふうに、バイナリを直打ちする
- まず、
DDEBに関する注意点
-
E実行時、次のアドレスへ行くには、スペースキーを押す -
Eを終了するには、エンターキーを押す -
R実行時、AX,BX,CX,DX,SI,DI,BPレジスタにEがついて、32bit幅となっているが、本のように、E抜きで16bit幅とみなして使う -
IPレジスタには、Rを実行したときに表示されるアドレスであるXXXX:YYYYのYYYYが入っていると考える - レジスタを変更する場合は、
R <レジスタ> <16進数値>とする -
T=<数値>と書いてある場合は、代わりにR IP <数値>とすることで正しく動作する