$ brew install qemu
$ qemu-img create -f qcow2 freedos.img 500M
$ wget http://www.freedos.org/download/download/FD12CD.iso
$ qemu-system-i386 freedos.img -cdrom FD12CD.iso -boot d
"Install to harddisk" を選択
"English" を選択
"Yes - Continue with the installation" を選択
"Yes - Partition drive C:" を選択
"Y" を選択
"1" (Craete DOS partition or Logical DOS Drive) を選択
"1" (Create Primary DOS Partition) を選択
"Y" を選択
"Esc" を選択
"Ecs" を選択
"Ecs" を選択
"Yes - Please reboot now" を選択
"Install to harddisk" を選択
"English" を選択
"Yes - Continue with the installation" を選択
"Yes - Please erase and format drive C:" を選択
"Enter" を押下
"US English (Default)" を選択
"Full installation" を選択
"Yes - Please install FreeDOS 1.2" を選択
インストールが完了するまで待つ
"Yes - Please reboot now" を選択
"Boot from system harddisk" を選択
"1 - Load FreeDOS with JEMMEX, no EMS (most UMBs), max RAM free" を選択
起動完了!
次回以降は、以下のコマンドで起動できる。
qemu-system-i386 freedos.img -boot c
まずはここから、Microsoft MS-DOS 6.22 Plus Enhanced Tools をダウンロードして展開する。
$ qemu-img create msdos.disk 1G
$ qemu-system-i386 -hda msdos.img -fda Disk1.img -boot a
"Enter" を押下
"Enter" を押下
"Enter" を押下
フォーマットが始まるので完了するまで待つ
"Enter" を押下
"Enter" を押下
"Ctrl + Option + 2" を押下して、qemu モニターコンソールに移動
以下を実行して、"Ctrl + Option + 1" で戻る
(qemu) change floppy0 Disk2.img
"Enter" を押下
"Ctrl + Option + 2" を押下して、qemu モニターコンソールに移動して、以下を実行
(qemu) change floppy0 Disk3.img
"Ctrl + Option + 1" で戻って、"Enter" を押下
"Ctrl + Option + 2" を押下して、qemu モニターコンソールに移動して、以下を実行
(qemu) eject floppy0
"Ctrl + Option + 1" で戻って、"Enter" を押下
"Enter" を押下
これでインストールが完了しているので、以降は以下で MS-DOS を起動させることができる。
$ qemu-system-i386 -hda msdos.img -boot c
A [address]
(Assemble): アセンブリコードを入力するD [address] [address]
(Dump): メモリの内容をダンプするE address [list]
(Edit): メモリの内容を編集するG[=address] [address]
(Go): プログラムを実行するN
(Name): ファイル名を指定するQ
(Quit): 終了するR [register]
(Register): レジスタを表示もしくは設定するT [address]
: 指定したメモリのプログラムを 1 命令実行し、全レジスタの内容と次に実行する命令を表示するU [address] [address]
(Unassemble): 逆アセンブルを行うW
(Write): メモリ内容をファイルに出力する?
(Help): ヘルプ画面を表示する
- DOS DEBUG Commands https://montcs.bloomu.edu/Information/LowLevel/DOS-Debug.html
$ qemu-img create -f raw <ファイル> <サイズ>
$ qemu-system-i386 <イメージファイル> <オプション>
- Options
-boot a
- 起動デバイスにフロッピーディスクを指定する
-boot c
- 起動デバイスにハードディスクを指定する (デフォルト)
-boot d
- 起動デバイスに CD-ROM/DVD を指定する
-fda/-fdb <ファイル>
- フロッピーディスク 0/1 となるファイルを指定する
-hda/-hdb/-hdc/-hdd <ファイル>
- ハードディスク 0/1/2/3 となるファイルを指定する
-cdrom <ファイル>
- CD-ROM/DVD となる iso イメージファイルを指定する
FreeDOS および MS-DOS 上で動作する MASM の導入方法がわからなかったので、MASM 互換の JWasm を使う。
JWASMR -bin -Fo <FILE>.COM <FILE>.ASM
基本的には、イメージファイルを一旦物理ディスクとして認識させたあとに、適当なマウントポイントにマウントする形となる。
$ hdiutil attach -nomount <path to image file>
$ diskutil list
$ mount_msdos <device file> <mount point>
$ umount <mount point>
$ hdiutil detach <device name>