青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

coreBugZJ

此 blog 已棄。

Bochs 簡介及配置

Bochs 簡介
    Bochs(讀音同 Box)是用C++開發(fā)的以 LGPL 許可證發(fā)放的開放源代碼的x86,x86-64模擬器,模擬整個(gè)PC。它被設(shè)計(jì)成可以運(yùn)行于多種主流平臺(tái)下,包括x86, PPC, Alpha, Sun和MIPS。

    和 Bochs 類似的虛擬機(jī)軟件還有:VMware,Virtual PC,VirtualBox,但這些都使用了虛擬化技術(shù),部分指令直接交給硬件執(zhí)行。而Bochs完全是靠軟件模擬來實(shí)現(xiàn)的(所以Bochs虛擬機(jī)的速度慢很多,而且應(yīng)該稱Bochs為模擬器,而非虛擬機(jī))。從啟動(dòng)到重啟,包括PC的外設(shè)鍵盤,鼠標(biāo),VGA卡,磁盤,網(wǎng)卡等,全部都是由軟件來模擬的。也正是由于Bochs完全是靠軟件來模擬整個(gè)PC環(huán)境,因此它非常的適合開發(fā)操作系統(tǒng),這對(duì)廣大操作系統(tǒng)愛好者來說是一個(gè)福音。因?yàn)橛兴沟谜{(diào)試操作系統(tǒng)非常非常的容易,它自帶一個(gè)調(diào)試器bochsdbg,它可以從PC機(jī)剛啟動(dòng)的那一剎那起就開始模擬,注意,這不是從讀取磁盤中的引導(dǎo)扇區(qū)那開始模擬。


    在Bochs中安裝操作系統(tǒng),不會(huì)分區(qū)宿主機(jī)硬盤,而僅僅是在宿主機(jī)中建立一個(gè)大文件——磁盤鏡像文件。


    使用Bochs自帶的bximage工具可以創(chuàng)建軟盤,硬盤的鏡像文件。


    在Bochs中運(yùn)行操作系統(tǒng)的最低要求:
        Bochs 軟件
        BIOS 鏡像
        VGA BIOS 鏡像
        至少一個(gè)可引導(dǎo)的磁盤鏡像(軟盤,硬盤,光盤)或物理磁盤(軟盤,光盤)



配置Bochs —— 告訴Bochs你想模擬一臺(tái)擁有何種硬件配置的PC。

    這里只介紹如何使用配置文件配置 Bochs。


    Bochs為我們提供了一個(gè)配置文件的模版,這個(gè)模版為bochsrc-sample.txt,可以在Bochs的安裝目錄中找到。在配置文件中”#”為注釋符號(hào),表明#后面的全部是注釋的內(nèi)容(類似于C / C++ 中的行注釋“//”)。


    ——其實(shí)只要懂點(diǎn)硬件,看看這個(gè)模板文件就懂如何配置了,要學(xué)習(xí),官網(wǎng)的資料最好。


Romimage

    # ROMIMAGE:
    # The ROM BIOS controls what the PC does when it first powers on.
    # Normally, you can use a precompiled BIOS in the source or binary
    # distribution called BIOS-bochs-latest. The ROM BIOS is usually loaded
    # starting at address 0xf0000, and it is exactly 64k long. Another option
    # is 128k BIOS which is loaded at address 0xe0000.
    # You can also use the environment variable $BXSHARE to specify the
    # location of the BIOS.
    # The usage of external large BIOS images (up to 512k) at memory top is
    # now supported, but we still recommend to use the BIOS distributed with
    # Bochs. The start address optional, since it can be calculated from image size.
    #=======================================================================
    #romimage: file=$BXSHARE/BIOS-bochs-latest
    #romimage: file=bios/seabios-0.5.1.bin
    #romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
    使用安裝目錄下的文件就可以了。


Vgaromimage

    #=======================================================================
    # VGAROMIMAGE
    # You now need to load a VGA ROM BIOS into C0000.
    #=======================================================================
    #vgaromimage: file=bios/VGABIOS-elpin-2.40
    #vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
    #vgaromimage: file=bios/VGABIOS-lgpl-latest-cirrus
    使用安裝目錄下的文件就可以了。


Megs

    指定內(nèi)存大小。“megs: 32”表示虛擬系統(tǒng)被分配到32MB內(nèi)存,如果你嫌少的話,可以在行首添加“#”將之屏蔽,然后選擇更大的內(nèi)存,當(dāng)然不要忘記將行首的“#”刪除.


Floppya
    #=======================================================================
    # FLOPPYA:
    # Point this to pathname of floppy image file or device
    # This should be of a bootable floppy(image/device) if you're
    #  booting from 'a' (or 'floppy').
    #
    # You can set the initial status of the media to 'ejected' or 'inserted'.
    #   floppya: 2_88=path, status=ejected    (2.88M 3.5"  media)
    #   floppya: 1_44=path, status=inserted   (1.44M 3.5"  media)
    #   floppya: 1_2=path, status=ejected     (1.2M  5.25" media)
    #   floppya: 720k=path, status=inserted   (720K  3.5"  media)
    #   floppya: 360k=path, status=inserted   (360K  5.25" media)
    #   floppya: 320k=path, status=inserted   (320K  5.25" media)
    #   floppya: 180k=path, status=inserted   (180K  5.25" media)
    #   floppya: 160k=path, status=inserted   (160K  5.25" media)
    #   floppya: image=path, status=inserted  (guess media type from image size)
    #   floppya: type=1_44                    (1.44M 3.5" floppy drive, no media)
    #
    # The path should be the name of a disk image file.  On Unix, you can use a raw
    # device name such as /dev/fd0 on Linux.  On win32 platforms, use drive letters
    # such as a: or b: as the path.  The parameter 'image' works with image files
    # only. In that case the size must match one of the supported types.
    # The parameter 'type' can be used to enable the floppy drive without media
    # and status specified. Usually the drive type is set up based on the media type.
    #=======================================================================
    #floppya: 1_44=/dev/fd0, status=inserted
    #floppya: image=../1.44, status=inserted
    #floppya: 1_44=/dev/fd0H1440, status=inserted
    #floppya: 1_2=../1_2, status=inserted
    #floppya: 1_44=a:, status=inserted
    #floppya: 1_44=a.img, status=inserted
    #floppya: 1_44=/dev/rfd0a, status=inserted


    這是A驅(qū)動(dòng)器的參數(shù),當(dāng)然,自然也是模擬的。通常所用的軟驅(qū)是1.44MB的,因此后面跟的參數(shù)是1_44=/dev/fd0 注意:/dev/fd0表示你當(dāng)前的真實(shí)軟驅(qū)。如果你想使用鏡像文件(在編寫操作系統(tǒng)中,我們一般都使用鏡像文件)則把/dev/fd0改成你鏡像文件的路徑,如果你的配置文件和鏡像文件在同一個(gè)文件夾中則可以直接寫鏡像名稱,比如1_44=msdos.img就可以。

    當(dāng)然,也可以模擬其它的軟驅(qū),如2.88M,720K,360K的,這非常的有用!后面的參數(shù)status標(biāo)明軟驅(qū)的狀態(tài),只能有兩個(gè)inserted(軟盤插入軟驅(qū)),ejected(軟盤未插入軟驅(qū))。完整的就是“floppya: 1_44=msdos: 1_44=/dev/rfd0a, status=inserted”。


Boot
    這是啟動(dòng)的驅(qū)動(dòng)器,它的頻率也比較高。它可以帶的參數(shù)有floppy(軟驅(qū)啟動(dòng)),disk(磁盤啟動(dòng)),cdrom(光驅(qū)啟動(dòng))。


ATA[0-3]-MASTER,ATA[0-3]-SLAVE
    指定硬盤或光盤的參數(shù),并指明它是主盤還是從盤。標(biāo)準(zhǔn)的參數(shù)是ata0-master: type=disk, mode=flat, path="30M.sample", cylinders=615, heads=6, spt=17,type參數(shù)只能是兩者,disk(硬盤),cdrom(光盤),mode這個(gè)參數(shù)鏡像類型,它僅僅是針對(duì)磁盤才有效,有幾種,flat(一個(gè)文件的布局)concat(多個(gè)文件的布局)external(開發(fā)者指定的,通過C++的類BOCHS就是C++開發(fā)的)dll(開發(fā)者指定的,通過dll文件)vmware3(wmware3使用的硬盤鏡像)。還有幾個(gè)其它的不介紹;path是指定硬盤或是光盤鏡像的文件。Cylinders,Heads,Spt這幾個(gè)參數(shù)通過這名字就能知道了。注意,這通常來說也不算是太重要,但是某些時(shí)候,則是特別重要,比如裝minix1.5的時(shí)候,用bximage這個(gè)bochs自帶的創(chuàng)建磁盤工具創(chuàng)建了個(gè)硬盤,然后就指明路徑就運(yùn)行,結(jié)果分區(qū)的時(shí)候一直出錯(cuò),查了半天才發(fā)現(xiàn)這幾個(gè)參數(shù)沒有設(shè)置好,bximage創(chuàng)建的硬盤的Heads和Spt似乎是固定的,和模板自帶的不一樣,結(jié)構(gòu)分區(qū)的時(shí)候,自然按配置文件里的計(jì)算,和實(shí)際的自然不符。


總之,有了配置模版文件,只要稍微懂一些英文很容易就能明白各個(gè)參數(shù)的作用和如何使用。


參數(shù)名 
說明


config_interface
關(guān)于配置文件的接口。其實(shí)就是在BOCHS運(yùn)行過程中改變配置的界面


display_library 
圖形庫。


Romimage 
ROM BIOS


Megs 
內(nèi)存


optromimage [1-4] 
ROM鏡像的選項(xiàng)


vgaromimage 
VGA ROM BIOS


floppya 
軟驅(qū)A


floppyb 
軟驅(qū)B


ata[0-3] 
硬盤或光驅(qū)的ata控制器


ATA[0-3]-MASTER ATA[0-3]-SLAVE 
ata設(shè)備的類型


Boot 
啟動(dòng)驅(qū)動(dòng)器


Ips 
模擬的頻率,有些時(shí)候特別有用,比如我裝minix1.5的時(shí)候,在login的時(shí)候,如果機(jī)子高檔的話,輸入passwd的時(shí)間特別短,這時(shí)候就需要調(diào)整頻率了。當(dāng)然,聽說軟件如果對(duì)實(shí)時(shí)控制特別研的時(shí)候,也必須改它。


Clock 
時(shí)鐘


floppy_bootsig_check 
是否檢查軟盤引導(dǎo)時(shí)候的引導(dǎo)的標(biāo)記0xaa55


log 
調(diào)試用的日志


logprefix 
日志記錄的格式


panic 
Bochs這個(gè)軟件本身錯(cuò)誤的信息,如配置文件出錯(cuò)或是模擬錯(cuò)誤如不支持圖形模式


Error 
Bochs遇到不能模擬的情況,如出現(xiàn)非法指令


Info 
一些不常出現(xiàn)的情況


Debug 
主要用來開發(fā)Bochs這個(gè)軟件時(shí)報(bào)告情況用的


debugger_log 
調(diào)試器輸出錯(cuò)誤的文件。


com1 
串行端口。


parport1 
并行端口。


sb16 
聲卡


vga_update_interval 
VGA卡刷新率


ne2k 
網(wǎng)卡



當(dāng)我們寫好配置文件后,將其后綴名改為.bxrc,就可以被Bochs識(shí)別了。這時(shí)候我們只要雙擊該配置文件Bochs就啟動(dòng)并按照該配置文件進(jìn)行配置,自動(dòng)執(zhí)行。



(前文部分內(nèi)容從網(wǎng)上Copy而來,避免重復(fù)勞動(dòng))




附:Bochs-2.4.5 的模板配置文件 bochsrc_sample.txt

# You may now use double quotes around pathnames, in case
# your pathname includes spaces.

#=======================================================================
# CONFIG_INTERFACE
#
# The configuration interface is a series of menus or dialog boxes that
# allows you to change all the settings that control Bochs's behavior.
# Depending on the platform there are up to 3 choices of configuration
# interface: a text mode version called "textconfig" and two graphical versions
# called "win32config" and "wx".  The text mode version uses stdin/stdout and
# is always compiled in, unless Bochs is compiled for wx only. The choice
# "win32config" is only available on win32 and it is the default there.
# The choice "wx" is only available when you use "--with-wx" on the configure
# command.  If you do not write a config_interface line, Bochs will
# choose a default for you.
#
# NOTE: if you use the "wx" configuration interface, you must also use
# the "wx" display library.
#=======================================================================
#config_interface: textconfig
#config_interface: win32config
#config_interface: wx

#=======================================================================
# DISPLAY_LIBRARY
#
# The display library is the code that displays the Bochs VGA screen.  Bochs
# has a selection of about 10 different display library implementations for
# different platforms.  If you run configure with multiple --with-* options,
# the display_library command lets you choose which one you want to run with.
# If you do not write a display_library line, Bochs will choose a default for
# you.
#
# The choices are:
#   x              use X windows interface, cross platform
#   win32          use native win32 libraries
#   carbon         use Carbon library (for MacOS X)
#   beos           use native BeOS libraries
#   macintosh      use MacOS pre-10
#   amigaos        use native AmigaOS libraries
#   sdl            use SDL library, cross platform
#   svga           use SVGALIB library for Linux, allows graphics without X11
#   term           text only, uses curses/ncurses library, cross platform
#   rfb            provides an interface to AT&T's VNC viewer, cross platform
#   wx             use wxWidgets library, cross platform
#   nogui          no display at all
#
# NOTE: if you use the "wx" configuration interface, you must also use
# the "wx" display library.
#
# Specific options:
# Some display libraries now support specific option to control their
# behaviour. See the examples below for currently supported options.
#=======================================================================
#display_library: amigaos
#display_library: beos
#display_library: carbon
#display_library: macintosh
#display_library: nogui
#display_library: rfb, options="timeout=60" # time to wait for client
#display_library: sdl, options="fullscreen" # startup in fullscreen mode
#display_library: term
#display_library: win32, options="legacyF12" # use F12 to toggle mouse
#display_library: win32, options="gui_debug" # use Win32 debugger gui
#display_library: wx
#display_library: x, options="hideIPS" # disable IPS output in status bar
#display_library: x, options="gui_debug" # use GTK debugger gui

#=======================================================================
# ROMIMAGE:
# The ROM BIOS controls what the PC does when it first powers on.
# Normally, you can use a precompiled BIOS in the source or binary
# distribution called BIOS-bochs-latest. The ROM BIOS is usually loaded
# starting at address 0xf0000, and it is exactly 64k long. Another option
# is 128k BIOS which is loaded at address 0xe0000.
# You can also use the environment variable $BXSHARE to specify the
# location of the BIOS.
# The usage of external large BIOS images (up to 512k) at memory top is
# now supported, but we still recommend to use the BIOS distributed with
# Bochs. The start address optional, since it can be calculated from image size.
#=======================================================================
romimage: file=$BXSHARE/BIOS-bochs-latest
#romimage: file=bios/seabios-0.5.1.bin
#romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top

#=======================================================================
# CPU:
# This defines cpu-related parameters inside Bochs:
#
#  COUNT:
#  Set the number of processors:cores per processor:threads per core
#  when Bochs is compiled for SMP emulation.
#  Bochs currently supports up to 8 threads running simultaniosly.
#  If Bochs is compiled without SMP support, it won't accept values
#  different from 1.
#
#  QUANTUM:
#  Maximum amount of instructions allowed to execute by processor before
#  returning control to another cpu. This option exists only in Bochs
#  binary compiled with SMP support.
#
#  RESET_ON_TRIPLE_FAULT:
#  Reset the CPU when triple fault occur (highly recommended) rather than
#  PANIC. Remember that if you trying to continue after triple fault the
#  simulation will be completely bogus !
#
#  MSRS:
#  Define path to user CPU Model Specific Registers (MSRs) specification.
#  See example in msrs.def.
#
#  IGNORE_BAD_MSRS:
#  Ignore MSR references that Bochs does not understand; print a warning
#  message instead of generating #GP exception. This option is enabled
#  by default but will not be avaiable if configurable MSRs are enabled.
#
#  IPS:
#  Emulated Instructions Per Second. This is the number of IPS that bochs
#  is capable of running on your machine. You can recompile Bochs with
#  --enable-show-ips option enabled, to find your host's capability.
#  Measured IPS value will then be logged into your log file or shown
#  in the status bar (if supported by the gui).
#
#  IPS is used to calibrate many time-dependent events within the bochs
#  simulation.  For example, changing IPS affects the frequency of VGA
#  updates, the duration of time before a key starts to autorepeat, and
#  the measurement of BogoMips and other benchmarks.
#
#  Examples:
#
#  Bochs Machine/Compiler                                 Mips
# ____________________________________________________________________
#  2.3.7 3.2Ghz Intel Core 2 Q9770 with WinXP/g++ 3.4    50 to 55 Mips
#  2.3.7 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      38 to 43 Mips
#  2.2.6 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      21 to 25 Mips
#  2.2.6 2.1Ghz Athlon XP with Linux 2.6/g++ 3.4         12 to 15 Mips
#  2.0.1 1.6Ghz Intel P4 with Win2000/g++ 3.3             5 to  7 Mips
#=======================================================================
cpu: count=1, ips=50000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"

#=======================================================================
# CPUID:
#
# This defines features and functionality supported by Bochs emulated CPU:
#
#  MMX:
#  Select MMX instruction set support.
#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 5.
#
#  SEP:
#  Select SYSENTER/SYSEXIT instruction set support.
#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
#
#  SSE:
#  Select SSE instruction set support.
#  Any of NONE/SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2 could be selected.
#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
#
#  XAPIC:
#  Select XAPIC extensions support.
#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
#
#  AES:
#  Select AES instruction set support.
#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
#
#  MOVBE:
#  Select MOVBE Intel(R) Atom instruction support.
#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
#
#  XSAVE:
#  Select XSAVE extensions support.
#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
#
#  1G_PAGES:
#  Enable 1G page size support in long mode.
#  This option exists only if Bochs compiled with x86-64 support.
#
#  MWAIT_IS_NOP:
#  When this option is enabled MWAIT will not put the CPU into a sleep state.
#  This option exists only if Bochs compiled with --enable-monitor-mwait.
#
#  VENDOR_STRING:
#  Set the CPUID vendor string returned by CPUID(0x0). This should be a
#  twelve-character ASCII string. 
#
#  BRAND_STRING:
#  Set the CPUID vendor string returned by CPUID(0x80000002 .. 0x80000004). 
#  This should be at most a forty-eight-character ASCII string. 
#
#  CPUID_LIMIT_WINNT:
#  Determine whether to limit maximum CPUID function to 3. This mode is
#  required to workaround WinNT installation and boot issues.
#=======================================================================
cpuid: mmx=1, sep=1, sse=sse4_2, xapic=1, aes=1, movbe=1, xsave=1, cpuid_limit_winnt=0

#=======================================================================
# MEMORY
# Set the amount of physical memory you want to emulate.
#
# GUEST:
# Set amount of guest physical memory to emulate. The default is 32MB,
# the maximum amount limited only by physical address space limitations.
#
# HOST:
# Set amount of host memory you want to allocate for guest RAM emulation.
# It is possible to allocate less memory than you want to emulate in guest
# system. This will fake guest to see the non-existing memory. Once guest
# system touches new memory block it will be dynamically taken from the
# memory pool. You will be warned (by FATAL PANIC) in case guest already
# used all allocated host memory and wants more.
#
#=======================================================================
memory: guest=512, host=256

#=======================================================================
# OPTROMIMAGE[1-4]:
# You may now load up to 4 optional ROM images. Be sure to use a
# read-only area, typically between C8000 and EFFFF. These optional
# ROM images should not overwrite the rombios (located at
# F0000-FFFFF) and the videobios (located at C0000-C7FFF).
# Those ROM images will be initialized by the bios if they contain
# the right signature (0x55AA) and a valid checksum.
# It can also be a convenient way to upload some arbitrary code/data
# in the simulation, that can be retrieved by the boot loader
#=======================================================================
#optromimage1: file=optionalrom.bin, address=0xd0000
#optromimage2: file=optionalrom.bin, address=0xd1000
#optromimage3: file=optionalrom.bin, address=0xd2000
#optromimage4: file=optionalrom.bin, address=0xd3000

#optramimage1: file=/path/file1.img, address=0x0010000
#optramimage2: file=/path/file2.img, address=0x0020000
#optramimage3: file=/path/file3.img, address=0x0030000
#optramimage4: file=/path/file4.img, address=0x0040000

#=======================================================================
# VGAROMIMAGE
# You now need to load a VGA ROM BIOS into C0000.
#=======================================================================
#vgaromimage: file=bios/VGABIOS-elpin-2.40
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
#vgaromimage: file=bios/VGABIOS-lgpl-latest-cirrus

#=======================================================================
# VGA:
# Here you can specify the display extension to be used. With the value
# 'none' you can use standard VGA with no extension. Other supported
# values are 'vbe' for Bochs VBE and 'cirrus' for Cirrus SVGA support.
#=======================================================================
#vga: extension=cirrus
vga: extension=vbe

#=======================================================================
# FLOPPYA:
# Point this to pathname of floppy image file or device
# This should be of a bootable floppy(image/device) if you're
# booting from 'a' (or 'floppy').
#
# You can set the initial status of the media to 'ejected' or 'inserted'.
#   floppya: 2_88=path, status=ejected    (2.88M 3.5"  media)
#   floppya: 1_44=path, status=inserted   (1.44M 3.5"  media)
#   floppya: 1_2=path, status=ejected     (1.2M  5.25" media)
#   floppya: 720k=path, status=inserted   (720K  3.5"  media)
#   floppya: 360k=path, status=inserted   (360K  5.25" media)
#   floppya: 320k=path, status=inserted   (320K  5.25" media)
#   floppya: 180k=path, status=inserted   (180K  5.25" media)
#   floppya: 160k=path, status=inserted   (160K  5.25" media)
#   floppya: image=path, status=inserted  (guess media type from image size)
#   floppya: type=1_44                    (1.44M 3.5" floppy drive, no media)
#
# The path should be the name of a disk image file.  On Unix, you can use a raw
# device name such as /dev/fd0 on Linux.  On win32 platforms, use drive letters
# such as a: or b: as the path.  The parameter 'image' works with image files
# only. In that case the size must match one of the supported types.
# The parameter 'type' can be used to enable the floppy drive without media
# and status specified. Usually the drive type is set up based on the media type.
#=======================================================================
floppya: 1_44=/dev/fd0, status=inserted
#floppya: image=../1.44, status=inserted
#floppya: 1_44=/dev/fd0H1440, status=inserted
#floppya: 1_2=../1_2, status=inserted
#floppya: 1_44=a:, status=inserted
#floppya: 1_44=a.img, status=inserted
#floppya: 1_44=/dev/rfd0a, status=inserted

#=======================================================================
# FLOPPYB:
# See FLOPPYA above for syntax
#=======================================================================
#floppyb: 1_44=b:, status=inserted
#floppyb: 1_44=b.img, status=inserted

#=======================================================================
# ATA0, ATA1, ATA2, ATA3
# ATA controller for hard disks and cdroms
#
# ata[0-3]: enabled=[0|1], ioaddr1=addr, ioaddr2=addr, irq=number
#
# These options enables up to 4 ata channels. For each channel
# the two base io addresses and the irq must be specified.
#
# ata0 and ata1 are enabled by default with the values shown below
#
# Examples:
#   ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
#   ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
#   ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
#   ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x360, irq=9
#=======================================================================
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9

#=======================================================================
# ATA[0-3]-MASTER, ATA[0-3]-SLAVE
#
# This defines the type and characteristics of all attached ata devices:
#   type=       type of attached device [disk|cdrom]
#   mode=       only valid for disks [flat|concat|external|dll|sparse|vmware3]
#   mode=       only valid for disks [undoable|growing|volatile]
#   path=       path of the image
#   cylinders=  only valid for disks
#   heads=      only valid for disks
#   spt=        only valid for disks
#   status=     only valid for cdroms [inserted|ejected]
#   biosdetect= type of biosdetection [none|auto], only for disks on ata0 [cmos]
#   translation=type of translation of the bios, only for disks [none|lba|large|rechs|auto]
#   model=      string returned by identify device command
#   journal=    optional filename of the redolog for undoable and volatile disks
#
# Point this at a hard disk image file, cdrom iso file, or physical cdrom
# device.  To create a hard disk image, try running bximage.  It will help you
# choose the size and then suggest a line that works with it.
#
# In UNIX it may be possible to use a raw device as a Bochs hard disk,
# but WE DON'T RECOMMEND IT.  In Windows there is no easy way.
#
# In windows, the drive letter + colon notation should be used for cdroms.
# Depending on versions of windows and drivers, you may only be able to
# access the "first" cdrom in the system.  On MacOSX, use path="drive"
# to access the physical drive.
#
# The path is mandatory for hard disks. Disk geometry autodetection works with
# images created by bximage if CHS is set to 0/0/0 (cylinders are calculated
# using  heads=16 and spt=63). For other hard disk images and modes the
# cylinders, heads, and spt are mandatory. In all cases the disk size reported
# from the image must be exactly C*H*S*512.
#
# Default values are:
#   mode=flat, biosdetect=auto, translation=auto, model="Generic 1234"
#
# The biosdetect option has currently no effect on the bios
#
# Examples:
#   ata0-master: type=disk, mode=flat, path=10M.sample, cylinders=306, heads=4, spt=17
#   ata0-slave:  type=disk, mode=flat, path=20M.sample, cylinders=615, heads=4, spt=17
#   ata1-master: type=disk, mode=flat, path=30M.sample, cylinders=615, heads=6, spt=17
#   ata1-slave:  type=disk, mode=flat, path=46M.sample, cylinders=940, heads=6, spt=17
#   ata2-master: type=disk, mode=flat, path=62M.sample, cylinders=940, heads=8, spt=17
#   ata2-slave:  type=disk, mode=flat, path=112M.sample, cylinders=900, heads=15, spt=17
#   ata3-master: type=disk, mode=flat, path=483M.sample, cylinders=1024, heads=15, spt=63
#   ata3-slave:  type=cdrom, path=iso.sample, status=inserted
#=======================================================================
ata0-master: type=disk, mode=flat, path="30M.sample"
#ata0-master: type=disk, mode=flat, path="30M.sample", cylinders=615, heads=6, spt=17
#ata0-master: type=disk, mode=flat, path="c.img", cylinders=0 # autodetect
#ata0-slave: type=cdrom, path=D:, status=inserted
#ata0-slave: type=cdrom, path=/dev/cdrom, status=inserted
#ata0-slave: type=cdrom, path="drive", status=inserted
#ata0-slave: type=cdrom, path=/dev/rcd0d, status=inserted

#=======================================================================
# BOOT:
# This defines the boot sequence. Now you can specify up to 3 boot drives,
# which can be 'floppy', 'disk', 'cdrom' or 'network' (boot ROM).
# Legacy 'a' and 'c' are also supported.
# Examples:
#   boot: floppy
#   boot: cdrom, disk
#   boot: network, disk
#   boot: cdrom, floppy, disk
#=======================================================================
#boot: floppy
boot: disk

#=======================================================================
# CLOCK:
# This defines the parameters of the clock inside Bochs:
#
#  SYNC:
#  This defines the method how to synchronize the Bochs internal time
#  with realtime. With the value 'none' the Bochs time relies on the IPS
#  value and no host time synchronization is used. The 'slowdown' method
#  sacrifices performance to preserve reproducibility while allowing host
#  time correlation. The 'realtime' method sacrifices reproducibility to
#  preserve performance and host-time correlation.
#  It is possible to enable both synchronization methods.
#
#  TIME0:
#  Specifies the start (boot) time of the virtual machine. Use a time
#  value as returned by the time(2) system call. If no time0 value is
#  set or if time0 equal to 1 (special case) or if time0 equal 'local',
#  the simulation will be started at the current local host time.
#  If time0 equal to 2 (special case) or if time0 equal 'utc',
#  the simulation will be started at the current utc time.
#
# Syntax:
#  clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
#
# Example:
#   clock: sync=none,     time0=local       # Now (localtime)
#   clock: sync=slowdown, time0=315529200   # Tue Jan  1 00:00:00 1980
#   clock: sync=none,     time0=631148400   # Mon Jan  1 00:00:00 1990
#   clock: sync=realtime, time0=938581955   # Wed Sep 29 07:12:35 1999
#   clock: sync=realtime, time0=946681200   # Sat Jan  1 00:00:00 2000
#   clock: sync=none,     time0=1           # Now (localtime)
#   clock: sync=none,     time0=utc         # Now (utc/gmt)
#
# Default value are sync=none, time0=local
#=======================================================================
#clock: sync=none, time0=local


#=======================================================================
# FLOPPY_BOOTSIG_CHECK: disabled=[0|1]
# Enables or disables the 0xaa55 signature check on boot floppies
# Defaults to disabled=0
# Examples:
#   floppy_bootsig_check: disabled=0
#   floppy_bootsig_check: disabled=1
#=======================================================================
floppy_bootsig_check: disabled=0

#=======================================================================
# LOG:
# Give the path of the log file you'd like Bochs debug and misc. verbiage
# to be written to. If you don't use this option or set the filename to
# '-' the output is written to the console. If you really don't want it,
# make it "/dev/null" (Unix) or "nul" (win32). :^(
#
# Examples:
#   log: ./bochs.out
#   log: /dev/tty
#=======================================================================
#log: /dev/null
log: bochsout.txt

#=======================================================================
# LOGPREFIX:
# This handles the format of the string prepended to each log line.
# You may use those special tokens :
#   %t : 11 decimal digits timer tick
#   %i : 8 hexadecimal digits of cpu current eip (ignored in SMP configuration)
#   %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
#   %d : 5 characters string of the device, between brackets
#
# Default : %t%e%d
# Examples:
#   logprefix: %t-%e-@%i-%d
#   logprefix: %i%e%d
#=======================================================================
#logprefix: %t%e%d

#=======================================================================
# LOG CONTROLS
#
# Bochs now has four severity levels for event logging.
#   panic: cannot proceed.  If you choose to continue after a panic,
#          don't be surprised if you get strange behavior or crashes.
#   error: something went wrong, but it is probably safe to continue the
#          simulation.
#   info: interesting or useful messages.
#   debug: messages useful only when debugging the code.  This may
#          spit out thousands per second.
#
# For events of each level, you can choose to crash, report, or ignore.
# TODO: allow choice based on the facility: e.g. crash on panics from
#       everything except the cdrom, and only report those.
#
# If you are experiencing many panics, it can be helpful to change
# the panic action to report instead of fatal.  However, be aware
# that anything executed after a panic is uncharted territory and can
# cause bochs to become unstable.  The panic is a "graceful exit," so
# if you disable it you may get a spectacular disaster instead.
#=======================================================================
panic: action=ask
error: action=report
info: action=report
debug: action=ignore
#pass: action=fatal

#=======================================================================
# DEBUGGER_LOG:
# Give the path of the log file you'd like Bochs to log debugger output.
# If you really don't want it, make it /dev/null or '-'. :^(
#
# Examples:
#   debugger_log: ./debugger.out
#=======================================================================
#debugger_log: /dev/null
#debugger_log: debugger.out
debugger_log: -

#=======================================================================
# COM1, COM2, COM3, COM4:
# This defines a serial port (UART type 16550A). In the 'term' you can specify
# a device to use as com1. This can be a real serial line, or a pty.  To use
# a pty (under X/Unix), create two windows (xterms, usually).  One of them will
# run bochs, and the other will act as com1. Find out the tty the com1
# window using the `tty' command, and use that as the `dev' parameter.
# Then do `sleep 1000000' in the com1 window to keep the shell from
# messing with things, and run bochs in the other window.  Serial I/O to
# com1 (port 0x3f8) will all go to the other window.
# In socket* and pipe* (win32 only) modes Bochs becomes either socket/named pipe
# client or server. In client mode it connects to an already running server (if
# connection fails Bochs treats com port as not connected). In server mode it
# opens socket/named pipe and waits until a client application connects to it
# before starting simulation. This mode is useful for remote debugging (e.g.
# with gdb's "target remote host:port" command or windbg's command line option
# -k com:pipe,port=\\.\pipe\pipename). Note: 'socket' is a shorthand for
# 'socket-client' and 'pipe' for 'pipe-client'. Socket modes use simple TCP
# communication, pipe modes use duplex byte mode pipes.
# Other serial modes are 'null' (no input/output), 'file' (output to a file
# specified as the 'dev' parameter), 'raw' (use the real serial port - under
# construction for win32), 'mouse' (standard serial mouse - requires
# mouse option setting 'type=serial', 'type=serial_wheel' or 'type=serial_msys').
#
# Examples:
#   com1: enabled=1, mode=null
#   com1: enabled=1, mode=mouse
#   com2: enabled=1, mode=file, dev=serial.out
#   com3: enabled=1, mode=raw, dev=com1
#   com3: enabled=1, mode=socket-client, dev=localhost:8888
#   com3: enabled=1, mode=socket-server, dev=localhost:8888
#   com4: enabled=1, mode=pipe-client, dev=\\.\pipe\mypipe
#   com4: enabled=1, mode=pipe-server, dev=\\.\pipe\mypipe
#=======================================================================
#com1: enabled=1, mode=term, dev=/dev/ttyp9


#=======================================================================
# PARPORT1, PARPORT2:
# This defines a parallel (printer) port. When turned on and an output file is
# defined the emulated printer port sends characters printed by the guest OS
# into the output file. On some platforms a device filename can be used to
# send the data to the real parallel port (e.g. "/dev/lp0" on Linux, "lpt1" on
# win32 platforms).
#
# Examples:
#   parport1: enabled=1, file="parport.out"
#   parport2: enabled=1, file="/dev/lp0"
#   parport1: enabled=0
#=======================================================================
parport1: enabled=1, file="parport.out"

#=======================================================================
# SB16:
# This defines the SB16 sound emulation. It can have several of the
# following properties.
# All properties are in the format sb16: property=value
# midi: The filename is where the midi data is sent. This can be a
#       device or just a file if you want to record the midi data.
# midimode:
#      0=no data
#      1=output to device (system dependent. midi denotes the device driver)
#      2=SMF file output, including headers
#      3=output the midi data stream to the file (no midi headers and no
#        delta times, just command and data bytes)
# wave: This is the device/file where wave output is stored
# wavemode:
#      0=no data
#      1=output to device (system dependent. wave denotes the device driver)
#      2=VOC file output, incl. headers
#      3=output the raw wave stream to the file
# log:  The file to write the sb16 emulator messages to.
# loglevel:
#      0=no log
#      1=resource changes, midi program and bank changes
#      2=severe errors
#      3=all errors
#      4=all errors plus all port accesses
#      5=all errors and port accesses plus a lot of extra info
# dmatimer:
#      microseconds per second for a DMA cycle.  Make it smaller to fix
#      non-continuous sound.  750000 is usually a good value.  This needs a
#      reasonably correct setting for the IPS parameter of the CPU option.
#
# Examples for output devices:
#   sb16: midimode=1, midi="", wavemode=1, wave=""           # win32
#   sb16: midimode=1, midi=alsa:128:0, wavemode=1, wave=alsa # Linux with ALSA
#=======================================================================
#sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=sb16.log, dmatimer=600000

#=======================================================================
# VGA_UPDATE_INTERVAL:
# Video memory is scanned for updates and screen updated every so many
# virtual seconds.  The default is 50000, about 20Hz. Keep in mind that
# you must tweak the 'cpu: ips=N' directive to be as close to the number
# of emulated instructions-per-second your workstation can do, for this
# to be accurate.
#
# Examples:
#   vga_update_interval: 250000
#=======================================================================
vga_update_interval: 300000

# using for Winstone '98 tests
#vga_update_interval:  100000

#=======================================================================
# KEYBOARD_SERIAL_DELAY:
# Approximate time in microseconds that it takes one character to
# be transfered from the keyboard to controller over the serial path.
# Examples:
#   keyboard_serial_delay: 200
#=======================================================================
keyboard_serial_delay: 250

#=======================================================================
# KEYBOARD_PASTE_DELAY:
# Approximate time in microseconds between attempts to paste
# characters to the keyboard controller. This leaves time for the
# guest os to deal with the flow of characters.  The ideal setting
# depends on how your operating system processes characters.  The
# default of 100000 usec (.1 seconds) was chosen because it works
# consistently in Windows.
#
# If your OS is losing characters during a paste, increase the paste
# delay until it stops losing characters.
#
# Examples:
#   keyboard_paste_delay: 100000
#=======================================================================
keyboard_paste_delay: 100000

#=======================================================================
# MOUSE:
# The Bochs gui creates mouse "events" unless the 'enabled' option is
# set to 0. The hardware emulation itself is not disabled by this.
# Unless you have a particular reason for enabling the mouse by default,
# it is recommended that you leave it off. You can also toggle the mouse
# usage at runtime (control key + middle mouse button on X11, SDL,
# wxWidgets and Win32).
# With the mouse type option you can select the type of mouse to emulate.
# The default value is 'ps2'. The other choices are 'imps2' (wheel mouse
# on PS/2), 'serial', 'serial_wheel' and 'serial_msys' (one com port requires
# setting 'mode=mouse'). To connect a mouse to an USB port, see the 'usb_uhci'
# or 'usb_ohci' option (requires PCI and USB support).
#
# Examples:
#   mouse: enabled=1
#   mouse: enabled=1, type=imps2
#   mouse: enabled=1, type=serial
#   mouse: enabled=0
#=======================================================================
mouse: enabled=0

#=======================================================================
# private_colormap: Request that the GUI create and use it's own
#                   non-shared colormap.  This colormap will be used
#                   when in the bochs window.  If not enabled, a
#                   shared colormap scheme may be used.  Not implemented
#                   on all GUI's.
#
# Examples:
#   private_colormap: enabled=1
#   private_colormap: enabled=0
#=======================================================================
private_colormap: enabled=0

#=======================================================================
# fullscreen: ONLY IMPLEMENTED ON AMIGA
#             Request that Bochs occupy the entire screen instead of a
#             window.
#
# Examples:
#   fullscreen: enabled=0
#   fullscreen: enabled=1
#=======================================================================
#fullscreen: enabled=0
#screenmode: name="sample"

#=======================================================================
# ne2k: NE2000 compatible ethernet adapter
#
# Examples:
# ne2k: ioaddr=IOADDR, irq=IRQ, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
#
# ioaddr, irq: You probably won't need to change ioaddr and irq, unless there
# are IRQ conflicts. These arguments are ignored when assign the ne2k to a
# PCI slot.
#
# mac: The MAC address MUST NOT match the address of any machine on the net.
# Also, the first byte must be an even number (bit 0 set means a multicast
# address), and you cannot use ff:ff:ff:ff:ff:ff because that's the broadcast
# address.  For the ethertap module, you must use fe:fd:00:00:00:01.  There may
# be other restrictions too.  To be safe, just use the b0:c4... address.
#
# ethdev: The ethdev value is the name of the network interface on your host
# platform.  On UNIX machines, you can get the name by running ifconfig.  On
# Windows machines, you must run niclist to get the name of the ethdev.
# Niclist source code is in misc/niclist.c and it is included in Windows
# binary releases.
#
# script: The script value is optional, and is the name of a script that
# is executed after bochs initialize the network interface. You can use
# this script to configure this network interface, or enable masquerading.
# This is mainly useful for the tun/tap devices that only exist during
# Bochs execution. The network interface name is supplied to the script
# as first parameter
#
# If you don't want to make connections to any physical networks,
# you can use the following 'ethmod's to simulate a virtual network.
#   null: All packets are discarded, but logged to a few files.
#   arpback: ARP is simulated. Disabled by default.
#   vde:  Virtual Distributed Ethernet
#   vnet: ARP, ICMP-echo(ping), DHCP and read/write TFTP are simulated.
#         The virtual host uses 192.168.10.1.
#         DHCP assigns 192.168.10.2 to the guest.
#         TFTP uses the ethdev value for the root directory and doesn't
#         overwrite files.
#
#=======================================================================
# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=fbsd, ethdev=en0 #macosx
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=fbsd, ethdev=xl0
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=win32, ethdev=MYCARD
# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun0, script=./tunconfig
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=null, ethdev=eth0
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vde, ethdev="/tmp/vde.ctl"
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"

#=======================================================================
# pnic: Bochs/Etherboot pseudo-NIC
#
# Example:
# pnic: enabled=1, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
#
# The pseudo-NIC accepts the same syntax (for mac, ethmod, ethdev, script) and
# supports the same networking modules as the NE2000 adapter. In addition to
# this, it must be assigned to a PCI slot.
#=======================================================================
#pnic: enabled=1, mac=b0:c4:20:00:00:00, ethmod=vnet

#=======================================================================
# KEYBOARD_MAPPING:
# This enables a remap of a physical localized keyboard to a
# virtualized us keyboard, as the PC architecture expects.
# If enabled, the keymap file must be specified.
#
# Examples:
#   keyboard_mapping: enabled=1, map=gui/keymaps/x11-pc-de.map
#=======================================================================
keyboard_mapping: enabled=0, map=

#=======================================================================
# KEYBOARD_TYPE:
# Type of keyboard return by a "identify keyboard" command to the
# keyboard controler. It must be one of "xt", "at" or "mf".
# Defaults to "mf". It should be ok for almost everybody. A known
# exception is french macs, that do have a "at"-like keyboard.
#
# Examples:
#   keyboard_type: mf
#=======================================================================
#keyboard_type: mf

#=======================================================================
# USER_SHORTCUT:
# This defines the keyboard shortcut to be sent when you press the "user"
# button in the headerbar. The shortcut string is a combination of maximum
# 3 key names (listed below) separated with a '-' character.
# Valid key names:
# "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
# "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
# "plus", "right", "shift", "space", "tab", "up", "win", "print" and "power".
#
# Example:
#   user_shortcut: keys=ctrl-alt-del
#=======================================================================
#user_shortcut: keys=ctrl-alt-del

#=======================================================================
# I440FXSUPPORT:
# This option controls the presence of the i440FX PCI chipset. You can
# also specify the devices connected to PCI slots. Up to 5 slots are
# available now. These devices are currently supported: ne2k, pcivga,
# pcidev, pcipnic and usb_ohci. If Bochs is compiled with Cirrus SVGA
# support you'll have the additional choice 'cirrus'.
#
# Example:
#   i440fxsupport: enabled=1, slot1=pcivga, slot2=ne2k
#=======================================================================
i440fxsupport: enabled=1

#=======================================================================
# USB_UHCI:
# This option controls the presence of the USB root hub which is a part
# of the i440FX PCI chipset. With the portX option you can connect devices
# to the hub (currently supported: 'mouse', 'tablet', 'keypad', 'disk', 'cdrom'
# 'hub' and 'printer').
#
# If you connect the mouse or tablet to one of the ports, Bochs forwards the
# mouse movement data to the USB device instead of the selected mouse type.
# When connecting the keypad to one of the ports, Bochs forwards the input of
# the numeric keypad to the USB device instead of the PS/2 keyboard.
#
# To connect a flat image as an USB hardisk you can use the 'disk' device with
# the path to the image separated with a colon (see below). To emulate an USB
# cdrom you can use the 'cdrom' device name and the path to an ISO image or raw
# device name also separated with a colon.
#
# The device name 'hub' connects an external hub with max. 8 ports (default: 4)
# to the root hub. To specify the number of ports you have to add the value
# separated with a colon. Connecting devices to the external hub ports is only
# available in the runtime configuration.
#
# The device 'printer' emulates the HP Deskjet 920C printer. The PCL data is
# sent to a file specified in bochsrc.txt. The current code appends the PCL
# code to the file if the file already existed. It would probably be nice to
# overwrite the file instead, asking user first.
#=======================================================================
#usb_uhci: enabled=1
#usb_uhci: enabled=1, port1=mouse, port2=disk:usbdisk.img
#usb_uhci: enabled=1, port1=hub:7, port2=cdrom:image.iso

#=======================================================================
# USB_OHCI:
# This option controls the presence of the USB OHCI host controller with a
# 2-port hub. The portX option accepts the same device types with the same
# syntax as the UHCI controller (see above). The OHCI HC must be assigned to
# a PCI slot.
#=======================================================================
#usb_ohci: enabled=1
#usb_ohci: enabled=1, port1=printer:usbprinter.bin

#=======================================================================
# CMOSIMAGE:
# This defines image file that can be loaded into the CMOS RAM at startup.
# The rtc_init parameter controls whether initialize the RTC with values stored
# in the image. By default the time0 argument given to the clock option is used.
# With 'rtc_init=image' the image is the source for the initial time.
#
# Example:
#   cmosimage: file=cmos.img, rtc_init=image
#=======================================================================
#cmosimage: file=cmos.img, rtc_init=time0

#=======================================================================
# MAGIC_BREAK:
# This enables the "magic breakpoint" feature when using the debugger.
# The useless cpu instruction XCHG BX, BX causes Bochs to enter the
# debugger mode. This might be useful for software development.
#
# Example:
#   magic_break: enabled=1
#=======================================================================
#magic_break: enabled=1

#=======================================================================
# PORT_E9_HACK:
# The 0xE9 port doesn't exists in normal ISA architecture. However, we
# define a convention here, to display on the console of the system running
# Bochs anything that is written to it. The idea is to provide debug output
# very early when writing BIOS or OS code for example, without having to
# bother with setting up a serial port or etc. Reading from port 0xE9 will
# will return 0xe9 to let you know if the feature is available.
# Leave this 0 unless you have a reason to use it.
#
# Example:
#   port_e9_hack: enabled=1
#=======================================================================
#port_e9_hack: enabled=1

#=======================================================================
# DEBUG_SYMBOLS:
# This loads symbols from the specified file for use in Bochs' internal
# debugger. Symbols are loaded into global context. This is equivalent to
# issuing ldsym debugger command at start up.
#
# Example:
#   debug_symbols: file="kernel.sym"
#   debug_symbols: file="kernel.sym", offset=0x80000000
#=======================================================================
#debug_symbols: file="kernel.sym"

#=======================================================================
# other stuff
#=======================================================================
#load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log
#load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img
#text_snapshot_check: enabled=1
#print_timestamps: enabled=1

#-------------------------
# PCI host device mapping
#-------------------------
#pcidev: vendor=0x1234, device=0x5678

#=======================================================================
# GDBSTUB:
# Enable GDB stub. See user documentation for details.
# Default value is enabled=0.
#=======================================================================
#gdbstub: enabled=0, port=1234, text_base=0, data_base=0, bss_base=0

#=======================================================================
# PLUGIN_CTRL:
# Controls the presence of optional plugins without a separate option.
# By default all existing plugins are enabled. These plugins are currently
# supported: 'acpi', 'biosdev', 'extfpuirq', 'gameport', 'iodebug',
# 'pci_ide', 'speaker' and 'unmapped'.
#=======================================================================
#plugin_ctrl: biosdev=0, speaker=0

#=======================================================================
# USER_PLUGIN:
# Load user-defined plugin. This option is available only if Bochs is
# compiled with plugin support. Maximum 8 different plugins are supported.
# See the example in the Bochs sources how to write a plugin device.
#=======================================================================
#user_plugin: name=testdev

#=======================================================================
# for Macintosh, use the style of pathnames in the following
# examples.
#
# vgaromimage: :bios:VGABIOS-elpin-2.40
# romimage: file=:bios:BIOS-bochs-latest, address=0xf0000
# floppya: 1_44=[fd:], status=inserted
#=======================================================================

#=======================================================================
# MEGS
# Set the number of Megabytes of physical memory you want to emulate.
# The default is 32MB, most OS's won't need more than that.
# The maximum amount of memory supported is 2048Mb.
# The 'MEGS' option is deprecated. Use 'MEMORY' option instead.
#=======================================================================
#megs: 256
#megs: 128
#megs: 64
#megs: 32
#megs: 16
#megs: 8

posted on 2011-04-03 12:00 coreBugZJ 閱讀(11433) 評(píng)論(0)  編輯 收藏 引用 所屬分類: OperatingSystem

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美中文在线观看| 欧美日韩免费区域视频在线观看| 一本大道久久a久久精二百| 国产一区二区| 精品动漫一区| 在线精品视频在线观看高清 | 久久蜜桃香蕉精品一区二区三区| 亚洲人成7777| 99精品国产在热久久| 亚洲美女91| 亚洲欧美日韩专区| 欧美在线视频全部完| 久久黄色网页| 亚洲国产日韩欧美在线动漫| 亚洲电影激情视频网站| 国产一二三精品| 国内精品国语自产拍在线观看| 国产一区二区三区免费不卡| 国内精品**久久毛片app| 在线观看一区视频| 亚洲免费视频在线观看| 女人香蕉久久**毛片精品| 久久美女性网| 999亚洲国产精| 美日韩精品视频免费看| 国产精品日韩久久久| 亚洲电影中文字幕| 欧美在线观看一区二区三区| 亚洲激情视频| 久久久国产精品亚洲一区 | 99伊人成综合| 久久久久国产精品一区三寸| 欧美日韩精品三区| 亚洲免费激情| 欧美成人久久| 噜噜噜噜噜久久久久久91| 国产精品视频免费观看www| aa亚洲婷婷| 91久久久亚洲精品| 麻豆九一精品爱看视频在线观看免费| 国产精品成人一区二区艾草| 亚洲第一级黄色片| 欧美成人精品不卡视频在线观看| 亚洲字幕在线观看| 国产精品色网| 噜噜噜91成人网| 久久久国产精品一区| 黄网站免费久久| 国产女主播一区| 久久九九全国免费精品观看| 亚洲永久免费视频| 一区二区三区在线高清| 亚洲国产日韩欧美在线99| 欧美日韩一区二区视频在线 | 亚洲高清视频一区二区| 欧美第十八页| 国产精品久久久一本精品| 久久久久国产精品一区二区| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲精品久久| 欧美在线视频网站| 亚洲亚洲精品三区日韩精品在线视频| 亚洲欧美日韩精品久久久久| 最新国产成人av网站网址麻豆 | 亚洲国产精品成人| 亚洲网站啪啪| 一区二区福利| 欧美精品一区二区精品网| 欧美一区在线看| 国产精品久久久久999| 亚洲国产美女精品久久久久∴| 国产欧美日韩免费看aⅴ视频| 亚洲欧洲日产国码二区| 在线国产亚洲欧美| 久久久免费av| 久久国产毛片| 国产在线不卡| 久久久99国产精品免费| 久久免费精品视频| 国产一区二区三区久久精品| 99pao成人国产永久免费视频| 久久久久亚洲综合| 亚洲手机成人高清视频| 亚洲高清在线观看一区| 久久久久久一区二区| 欧美成人中文字幕| 99视频精品在线| 国产精品国产三级国产普通话三级| 亚洲精品久久久久久久久久久| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美午夜精品理论片a级按摩| 亚洲欧洲精品一区二区精品久久久| 亚洲黄色视屏| 国产欧美日韩免费看aⅴ视频| 欧美一区二区三区视频免费| 男同欧美伦乱| 小嫩嫩精品导航| 亚洲激情午夜| 国产日韩一区二区三区| 美脚丝袜一区二区三区在线观看| 91久久国产精品91久久性色| 欧美在线免费观看亚洲| 亚洲精品美女免费| 国内精品久久久久久久影视麻豆| 欧美v亚洲v综合ⅴ国产v| 先锋影音国产一区| 亚洲视频欧美视频| 91久久在线观看| 国产精品视频在线观看| 欧美大片免费久久精品三p| 亚洲一区二区三区久久| 日韩视频免费观看高清在线视频 | 欧美成人综合在线| 欧美一级淫片播放口| 亚洲性av在线| 亚洲一区欧美一区| 亚洲午夜精品17c| 一区二区三区视频在线播放| 99精品热视频只有精品10| 亚洲黄色av一区| 在线一区日本视频| 在线视频一区二区| 亚洲欧美在线一区| 久久亚洲国产精品一区二区| 久久久久久香蕉网| 蜜臀av性久久久久蜜臀aⅴ| 免费一级欧美片在线观看| 麻豆精品视频在线观看视频| 欧美凹凸一区二区三区视频| 欧美激情在线播放| 9人人澡人人爽人人精品| 亚洲午夜在线视频| 久久国产精品久久久| 六十路精品视频| 国产精品实拍| 亚洲乱码国产乱码精品精| 亚洲欧美在线观看| 女人色偷偷aa久久天堂| 一区二区欧美在线观看| 久久久综合免费视频| 欧美人妖另类| 雨宫琴音一区二区在线| 亚洲欧美日韩综合国产aⅴ| 免费观看日韩av| 亚洲欧美日韩系列| 欧美午夜不卡在线观看免费| 午夜精品影院| 国产精品久久久久久久久久尿| 在线播放精品| 久久综合伊人77777蜜臀| 一区二区三区国产精品| 欧美精品色网| 夜色激情一区二区| 亚洲人在线视频| 欧美电影免费| 亚洲精品四区| 亚洲精品少妇| 欧美日韩国产三级| 亚洲天堂av电影| 中文一区二区在线观看| 国产精品美女999| 亚洲一区二区在线播放| 中文欧美字幕免费| 国产精品视频免费观看www| 亚洲砖区区免费| 久久另类ts人妖一区二区| 经典三级久久| 亚洲精品久久久久久久久久久久 | 亚洲视频在线视频| 国产精品自拍在线| 欧美va亚洲va香蕉在线| 欧美视频在线一区| 久久婷婷成人综合色| 欧美精品在欧美一区二区少妇| 亚洲综合清纯丝袜自拍| 久久精彩视频| 亚洲一区三区电影在线观看| 羞羞漫画18久久大片| 日韩视频一区二区三区在线播放免费观看| 99riav1国产精品视频| 一区二区亚洲精品国产| 亚洲精品视频免费| 在线成人免费观看| 午夜亚洲福利| 亚洲私人影院| 欧美区视频在线观看| 欧美1区2区视频| 精品不卡一区| 久久精品99久久香蕉国产色戒| 亚洲视频在线观看免费| 久久美女性网| 国产性猛交xxxx免费看久久| 亚洲精品专区| 亚洲一区二区三区精品在线观看| 午夜精品福利一区二区蜜股av| 亚洲一区视频在线| 欧美精品午夜| 一本色道久久综合一区| 欧美丰满少妇xxxbbb| 久久久久久综合网天天|