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

coreBugZJ

此 blog 已棄。

Bochs 簡介及配置

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

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


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


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


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



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

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


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


    ——其實只要懂點硬件,看看這個模板文件就懂如何配置了,要學(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)存,當然不要忘記將行首的“#”刪除.


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

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


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


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


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


參數(shù)名 
說明


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


display_library 
圖形庫。


Romimage 
ROM BIOS


Megs 
內(nèi)存


optromimage [1-4] 
ROM鏡像的選項


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 
啟動驅(qū)動器


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


Clock 
時鐘


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


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


logprefix 
日志記錄的格式


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


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


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


Debug 
主要用來開發(fā)Bochs這個軟件時報告情況用的


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


com1 
串行端口。


parport1 
并行端口。


sb16 
聲卡


vga_update_interval 
VGA卡刷新率


ne2k 
網(wǎng)卡



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



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




附: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) 評論(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>
            久久手机免费观看| 亚洲国产另类精品专区| 午夜精品视频在线观看| 一卡二卡3卡四卡高清精品视频| 欧美福利视频在线观看| 亚洲高清资源| 最新日韩av| 亚洲性线免费观看视频成熟| 亚洲欧美亚洲| 久久久最新网址| 欧美福利影院| 国产精品视频大全| 亚洲国产mv| 99精品国产在热久久婷婷| 在线一区欧美| 久久天堂国产精品| 亚洲茄子视频| 亚洲欧美在线免费| 欧美v亚洲v综合ⅴ国产v| 欧美色图天堂网| 永久免费毛片在线播放不卡| 亚洲精品在线视频观看| 欧美有码在线视频| 亚洲黄一区二区三区| 一本色道久久综合亚洲91| 久久成人18免费网站| 蜜臀a∨国产成人精品| 亚洲国产精品黑人久久久| 亚洲一区二区伦理| 久久久久久综合| 欧美午夜不卡| 亚洲欧洲日本一区二区三区| 欧美亚洲午夜视频在线观看| 欧美激情在线狂野欧美精品| 午夜精品一区二区三区在线| 欧美国产综合视频| 国精品一区二区三区| 一区二区三区日韩精品| 欧美h视频在线| 欧美亚洲免费电影| 国产精品成人一区二区三区夜夜夜| 国产色综合天天综合网| 亚洲亚洲精品在线观看| 亚洲第一页自拍| 久久久蜜桃精品| 国产婷婷色一区二区三区| 欧美一级久久久| 亚洲特色特黄| 国产精品久久久久久福利一牛影视| 91久久精品国产91久久性色| 久久亚洲免费| 久久精品国产亚洲aⅴ| 国产精品亚洲综合一区在线观看 | 国产精品99久久久久久人| 免费观看亚洲视频大全| 性欧美xxxx视频在线观看| 国产精品毛片va一区二区三区 | 猫咪成人在线观看| 狠久久av成人天堂| 久久久久久亚洲精品不卡4k岛国| 亚洲综合二区| 国产色综合久久| 久久精品卡一| 久久亚洲精品网站| 亚洲人成人一区二区在线观看 | 亚洲精品久久久久久久久久久久| 久久综合色8888| 亚洲国产日韩欧美在线99| 免费观看亚洲视频大全| 美女图片一区二区| 亚洲欧洲视频| 99re6热只有精品免费观看 | 亚洲全黄一级网站| 91久久精品一区二区别| 欧美日韩国产精品专区| 亚洲一区二区三区免费在线观看| 亚洲欧美在线x视频| 一本久道久久综合中文字幕| 欧美日韩亚洲一区二区三区在线观看 | 久久精品免费播放| 久久精品夜色噜噜亚洲a∨| 一区在线视频观看| 欧美激情精品久久久久久免费印度| 免费日韩av| 亚洲免费一在线| 欧美有码在线视频| 亚洲成人在线视频播放| 亚洲精品欧美在线| 国产精品色午夜在线观看| 久久久久久色| 欧美人妖另类| 久久精品夜夜夜夜久久| 欧美第一黄色网| 欧美一区2区三区4区公司二百 | 99在线精品免费视频九九视| 欧美午夜精品久久久久免费视 | 在线欧美电影| 一区二区电影免费在线观看| 国产日韩三区| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美视频在线观看免费| 久久综合影音| 国产精品电影观看| 欧美激情一区二区三区成人| 国产精品久久毛片a| 久久综合九色综合网站| 国产精品地址| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲午夜久久久| 亚洲黑丝一区二区| 亚洲欧美欧美一区二区三区| 亚洲精品美女在线观看| 亚洲欧美在线观看| 亚洲视频1区| 欧美gay视频| 麻豆91精品| 国产亚洲欧美一级| 一区二区成人精品| 99亚洲精品| 欧美顶级少妇做爰| 免费欧美日韩| 黄色亚洲网站| 久久本道综合色狠狠五月| 亚洲综合国产激情另类一区| 女人天堂亚洲aⅴ在线观看| 久久久久九九九九| 国产精品久久久久久亚洲调教 | 久久夜色精品国产欧美乱| 欧美午夜电影在线观看| 亚洲二区在线观看| 亚洲福利国产精品| 久久青草欧美一区二区三区| 久久久精品国产99久久精品芒果| 国产精品捆绑调教| 亚洲主播在线播放| 午夜久久久久久| 国产精品麻豆欧美日韩ww| 夜夜夜久久久| 亚洲欧美视频在线| 国产精品爽黄69| 午夜精品亚洲| 久热精品在线视频| 亚洲国产精品激情在线观看| 久久阴道视频| 亚洲精品123区| 亚洲香蕉成视频在线观看 | 亚洲七七久久综合桃花剧情介绍| 久久网站热最新地址| 欧美成人一区二区三区片免费| 在线免费观看视频一区| 另类酷文…触手系列精品集v1小说| 蜜桃视频一区| 亚洲最新视频在线| 国产精品久久久久一区二区| 亚洲影院色在线观看免费| 久久本道综合色狠狠五月| 黄色av成人| 欧美精品成人一区二区在线观看| 亚洲精品一区在线| 欧美在线视频一区二区三区| 黑人极品videos精品欧美裸| 女同性一区二区三区人了人一| 亚洲精品一区二区三区福利| 亚洲伊人伊色伊影伊综合网 | 亚洲自拍三区| 国产在线不卡精品| 欧美精品少妇一区二区三区| 亚洲无线视频| 欧美成年人视频网站| 亚洲毛片一区| 国产亚洲欧美在线| 欧美激情一区二区三区在线视频观看 | 99亚洲一区二区| 国产小视频国产精品| 久久综合九色| 亚洲图片在区色| 欧美高清视频| 欧美在线啊v| 99精品视频一区| 国内伊人久久久久久网站视频| 欧美韩日视频| 久久精品视频va| 亚洲一区二区在线播放| 欧美大片免费观看| 欧美影院视频| 国产精品久久波多野结衣| 久久久99免费视频| 亚洲小少妇裸体bbw| 欧美激情一区二区三区四区| 欧美亚洲一区二区三区| 亚洲精品欧美日韩专区| 国产欧美大片| 欧美视频成人| 快射av在线播放一区| 亚洲欧美成人网| 日韩一级片网址| 最新中文字幕亚洲| 免费在线日韩av| 久久人人97超碰国产公开结果 | 欧美性做爰猛烈叫床潮|