takahiro-itazuri / play-with-dos

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DOS で遊ぶ

FreeDOS を QEMU でインストールする

$ 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

Links

MS-DOS を QEMU でインストールする

まずはここから、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

Links

DEBUG

  • 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): ヘルプ画面を表示する

Links

QEMU

ハードディスクイメージの作成

$ 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 イメージファイルを指定する

Links

MASM

FreeDOS および MS-DOS 上で動作する MASM の導入方法がわからなかったので、MASM 互換の JWasm を使う。

  1. ここ から jwasm.zip をダウンロードする。
  2. jwasm.zip を回答して、jwasm/DEVEL/JWASM を DOS に移動させる。
  3. DOS を起動して、パスを通す。
JWASMR -bin -Fo <FILE>.COM <FILE>.ASM

Links

Mac で QEMU 環境にホストからファイルをコピーする

基本的には、イメージファイルを一旦物理ディスクとして認識させたあとに、適当なマウントポイントにマウントする形となる。

$ hdiutil attach -nomount <path to image file>
$ diskutil list
$ mount_msdos <device file> <mount point>
$ umount <mount point>
$ hdiutil detach <device name>

About