cybozu labs youth 7th
C++ Makefile C Shell
Clone or download
Latest commit 0fa18b4 Mar 12, 2018
Permalink
Failed to load latest commit information.
arch [ADD] 0x03:add_r32_rm32 Mar 12, 2018
bios [ADD] L2P(real mode only), memory access macro(with segmentation), [U… Feb 25, 2018
device [ADD] default color Mar 12, 2018
docs [UPDATE] jcc(70:jo,71:jno,72:jb,73:jae,74:je,75:jne,78:js,79:jns), [A… Feb 6, 2018
font [FIX] remove warning Dec 25, 2017
gui_old some fix and add GUI Feb 3, 2018
libsksat @ cc6b0a2 [ADD] submodule libsksat Nov 10, 2017
sample [UPDATE] run harib01h Mar 12, 2018
shell delete binary Jun 10, 2017
.emurc update .emurc May 7, 2017
.gitignore [UPDATE] make rule Jan 7, 2018
.gitmodules [FIX] submodule url Nov 10, 2017
.travis.yml [UPDATE] CI script Mar 7, 2018
LICENSE first commit Apr 8, 2017
Makefile [UPDATE] run flag Mar 6, 2018
README.md [UPDATE] README Mar 7, 2018
TODO add README and TODO Apr 8, 2017
com_mak.txt [ADD] makefont program Aug 14, 2017
common.h [FIX] Mar 4, 2018
common.mk [UPDATE] optimize option(Release Build) Mar 4, 2018
debug.cc [UPDATE] Mar 5, 2018
debug.h [UPDATE] Mar 5, 2018
emulator.cc remove old code Oct 13, 2017
emulator.h [FIX] const arg -> const reference arg Nov 24, 2017
emulator_base.cc [ADD] I/O class Feb 16, 2018
emulator_base.h [ADD] I/O class Feb 16, 2018
gui.cc [ADD][UPDATE] impl Display(text mode) Feb 3, 2018
gui.h [ADD][UPDATE] impl Display(text mode) Feb 3, 2018
insn_base.h [UPDATE] change func name: InstructionBase::Parse()=>InstructionBase:… Feb 13, 2018
interrupt.h first commit Apr 8, 2017
io.h [ADD] I/O class Feb 16, 2018
main.cc [UPDATE] register port without gui Mar 11, 2018
memory.cc [ADD] 16bit data access(little endian only) Jan 10, 2018
memory.h [UPDATE] Mar 5, 2018
register_base.cc [UPDATE] some update(Register class) ,[MV] Register->RegisterBase Jul 26, 2017
register_base.h [UPDATE] Mar 1, 2018
script_out.txt add init command Apr 24, 2017

README.md

emu

master: Build Status develop: Build Status

https://github.com/sk2sat/vm の設計とか色々見直して新しく作っているx86エミュレータ

ビルド

make

ビルドには以下のオプションが指定できます.

  • BUILD_TYPE: ビルドのタイプを指定できます. DebugReleaseが選択可能です. Debugを指定すると,DOUT()マクロによるデバッグ情報がエミュレーション時に表示されます. Releaseを指定すると,同マクロを無効化してコンパイルします. デフォルトではDebugが指定されています.

サンプル実行

make run

サンプルのバイナリのエミュレーションのテストが行えます. これには以下のオプションが指定できます.

  • ARCH アーキテクチャが選択できるような見た目をしていますが気のせいです. x86しか指定できないと思って下さい.

  • MEMSIZE メモリサイズを指定できます. 単位はMBです. デフォルトでは4MBになっています.

  • BIOS BIOSを指定できるような見た目をしていますが,これも気のせいです. 必ず--junk-biosを指定してください.

  • FLOPPY フロッピーディスクイメージが指定できます. ようはブートデバイスを設定するところです. --fda hoge.imgのように指定してください.

  • UI ユーザーインターフェースを選択できます. デフォルトでは--guiが指定されています. UI=""のようにすると,ウィンドウを出さないで実行します.

エラー

全然実装が進んでいないため、よくエラーが発生します。ここにはエラーの種類のメモをしておきます。

not implemented

このエラーは、実装されていない動作が要求された時に発生します。このエラーのうち、

not implemented: code = 16進数

となっているものは、16進数が示す機械語が実装されていない、というエラーです。