doesn't get put in the dependency list. It's not clear what is the best way
to handle this header conflict anyway, other than to rename vga.h to bxvga.h
or something.
This information was quite obsolete. Anything useful in here should be
merged into the documentation some day. It certainly should not be
sitting in the main directory where it might confuse people.
Modified Files:
doc/docbook/misc.txt
Removed Files:
macintosh.txt win32.txt
text config interface. This function does not have any contents yet...
the contents need to be filled in for those platforms which sometimes
have no stdin/stdout. The default case, in which stdin/stdout is
usable, is to just return. But if stdin/stdout is NOT usable, this
function should display a warning dialog and quit.
bochs.h. Bernd Korz reported redefinition of Bit32u in the system header
files, which I never saw before I moved bochs.h up above the other includes.
- The exact errors:
/boot/develop/headers/posix/be_prim.h:23: error: conflicting types for
`typedef long unsigned int Bit32u'
/boot/home/Entwicklung/Sourcecodes/bochs/config.h:474: error: previous
declaration as `typedef unsigned int Bit32u'
add SVGALIB display library by Igor Popik <igipop@wsfiz.edu.pl>
While it's running, you can press F12 to escape into the runtime config
menu, and then you can change disks or quit or whatever.
Better not try it with the bochs debugger...you could get stuck.
Modified Files:
Makefile.in config.h.in configure configure.in main.cc
plugin.h gui/Makefile.in
Added Files:
gui/svga.cc
Removed Files:
patches/patch.svgalib-gui patches/patch.svgalib-gui-f12
debugger, SMP, and x86-64. A few macros were missing the CPU_ID argument,
and a few passed nonexistent variables to the instrumentation macros.
- I changed CPU_ID into a plain old macro instead of an inline call to a
trivial which_cpu() function, and removed which_cpu().
Modified Files:
cpu/cpu.h cpu/ctrl_xfer64.cc debug/dbg_main.cc
Step 1, the compile, must be done locally on a MacOSX machine. This
gives us the contents of the resource fork, which will be checked into
CVS as script_compiled.rsrc every time the script sources change. Step 2
can be done remotely on the SF compile farm: reconstruct the script
from the separate data and resource fork files.
- not all filesystems support resource forks! I added a test in the
makefile to check that the resource fork is accessible, so that at least
we will get a clear error message if the filesystem doesn't support it.
In bx_cpu_c::reset method I set bx_cpu->async_event to 2
so execution in the cpu_loop gets stopped early.
Previously, async_event was set to 0, and with repeatable
instructions, after reset, eip was incremented by the instruction
length, so execution would resume at 0xffffX (X being >0, the current
instruction length).
In halt state I check now for reset with async_event is 2, so
reset works also when the cpu is halted. (update to Peter change)
I hope I fixed this the right way, please report any strange behaviour.
script will still work.
- specify the config file in run.bat since now it ends with .bxrc
- rename the link on the desktop to "Linux Demo in Bochs 2.0.pre2"
- rename "Bochs Shell Extensions" to "Register .bxrc Extension" and
make it required. I want to document how it works, so I don't want
it to sometimes work like the docs and sometimes not. Use .bxrc
instead of .bxr.
- create registry keys for Run, Configure, Edit, and Debugger.
packages. Michael Rich made this installer setup based on initial work
by Robert (segra) and an example by Joost Verburg.
Added Files:
Makefile ModernUI.nsh WinMessages.NSH bochs.ico bochs.nsi
modern.bmp modern2.exe penguin.ico
Author: Bryce Denney
Date: Wed Nov 20 19:26:24 EST 2002
For any software interrupt, hardware interrupt, or exception, Bochs
calls the instrumentation macro BX_INSTR_INTERRUPT(). For each call
to BX_INSTR_INTERRUPT(), this patch adds instrumentation code that
looks up each interrupt in the Ralf Brown x86 interrupt list and
prints the name of the interrupt in English. This output can be very
useful in telling what a user space program is doing.
out the cross ref to router setup and tun/tap. Also, on windows you can talk
to the host and the internet without any extra effort (this was wrong
before).
Before when the debugger was enabled, the update function was called
before hardware init leading to a panic.
Modified Files:
main.cc debug/dbg_main.cc
to make Bochs compile on DJGPP.
- put references to SIGSTOP and SIGTSTP in #ifdefs
- add definition of BX_CD_FRAMESIZE and CD_FRAMESIZE
- look for curses functions in -ldcurses
Modified Files:
gui/term.cc iodev/cdrom.cc configure.in configure
> Attached is script_compiled.rsrc. This is the end result of running
> osacompile on bochs.applescript and merging it with the resources in
> script.r. (At which point I did cp bochs.scpt/rsrc script_compiled.rsrc
> to get the resource fork as a single file)
>
> To actually turn script.data and script_compiled.rsrc into one single
> application, you still need to run the following
>
> cp script.data bochs.scpt
> cp script_compiled.rsrc bochs.scpt/rsrc
> SetFile -t "APPL" -c "aplt" bochs.scpt
Now I hope I have it right. After the sed script it should look like
%attr(-,root,root) %dir /usr/lib/bochs
I was having trouble getting the initial / on "/usr/lib/bochs"
files specified as before. This solves the problem of
"error: cannot remove /usr/share/doc - directory not empty"
which I was getting when I tried to remove the RPM.
- moved ne2k presence check to devices.cc
- added special make rules for the ne2k and the lowlevel network support
- added macro for the debug feature of the ne2k
- leave just the two configurations that I plan to build binary RPMs with:
one is conservative with just X11 and the options we used before,
and the other includes plugins, lots of display libraries, etc.
- My previous rev to dbg_main.cc caused the debugger to fail when readline
was disabled. With these changes I have tested more thoroughly and it works
with readline enabled or disabled, and with wxWindows enabled and disabled.
- The Bochs debugger uses BX_WITH_WX to decide to change to wxWindows debugger
behavior: sending a synchronous message to the config interface to get a new
command, sending all dbg_printf output to the config interface, deciding
whether to trap control-C, etc. But now that it's possible to compile with
BX_WITH_WX and BX_WITH_other_things, this isn't quite right anymore. With
this change, we now use calls to a new method SIM->is_wx_selected() to decide
which behavior to use. This method is equivalent to checking if the display
library variable is set to "wx", but it's implemented in such a way that it
only has to check a boolean for each call to SIM->is_wx_selected().
- in siminterface.cc, init some local variables to 0 to avoid compile
warnings.
Modified Files:
debug/dbg_main.cc gui/siminterface.cc gui/siminterface.h
For a whole lot of configure options, I put #if...#endif around code that
is specific to the option, even in files which are normally only compiled
when the option is on. This allows me to create a MS Visual C++ 6.0
workspace that supports many of these options. The workspace will basically
compile every file all the time, but the code for disabled options will
be commented out by the #if...#endif.
This may one day lead to simplification of the Makefiles and configure
scripts, but for the moment I'm leaving Makefiles and configure scripts
alone.
Affected options:
BX_SUPPORT_APIC (cpu/apic.cc)
BX_SUPPORT_X86_64 (cpu/*64.cc)
BX_DEBUGGER (debug/*)
BX_DISASM (disasm/*)
BX_WITH_nameofgui (gui/*)
BX_SUPPORT_CDROM (iodev/cdrom.cc)
BX_NE2K_SUPPORT (iodev/eth*.cc, iodev/ne2k.cc)
BX_SUPPORT_APIC (iodev/ioapic.cc)
BX_IODEBUG_SUPPORT (iodev/iodebug.cc)
BX_PCI_SUPPORT (iodev/pci*.cc)
BX_SUPPORT_SB16 (iodev/sb*.cc)
Modified Files:
cpu/apic.cc cpu/arith64.cc cpu/ctrl_xfer64.cc
cpu/data_xfer64.cc cpu/fetchdecode64.cc cpu/logical64.cc
cpu/mult64.cc cpu/resolve64.cc cpu/shift64.cc cpu/stack64.cc
debug/Makefile.in debug/crc.cc debug/dbg_main.cc debug/lexer.l
debug/linux.cc debug/parser.c debug/parser.y
disasm/dis_decode.cc disasm/dis_groups.cc gui/amigaos.cc
gui/beos.cc gui/carbon.cc gui/macintosh.cc gui/rfb.cc
gui/sdl.cc gui/term.cc gui/win32.cc gui/wx.cc gui/wxdialog.cc
gui/wxmain.cc gui/x.cc iodev/cdrom.cc iodev/eth.cc
iodev/eth_arpback.cc iodev/eth_fbsd.cc iodev/eth_linux.cc
iodev/eth_null.cc iodev/eth_packetmaker.cc iodev/eth_tap.cc
iodev/eth_tuntap.cc iodev/eth_win32.cc iodev/ioapic.cc
iodev/iodebug.cc iodev/ne2k.cc iodev/pci.cc iodev/pci2isa.cc
iodev/sb16.cc iodev/soundlnx.cc iodev/soundwin.cc
reports that on some Linux systems, once you restart the font server
you have to restart X as well. At least with this change it only happens
once, not every time you install.
For a whole lot of configure options, I put #if...#endif around code that
is specific to the option, even in files which are normally only compiled
when the option is on. This allows me to create a MS Visual C++ 6.0
workspace that supports many of these options. The workspace will basically
compile every file all the time, but the code for disabled options will
be commented out by the #if...#endif.
This may one day lead to simplification of the Makefiles and configure
scripts, but for the moment I'm leaving them alone.
More details inside the file itself.
- configure script adds -DBX_PLUGIN_PATH="${plugdir}" to CFLAGS/CXXFLAGS
in the Makefile.
- in main.cc, if plugins enabled and the environment variable LTDL_LIBRARY_PATH
is not set, then it gets set to the value supplied by BX_PLUGIN_PATH.
Modified Files:
main.cc Makefile.in configure.in config.h.in configure
- argc was returning the wrong number of args. Now I treat null and space
the same way, except that null causes the loop to exit.
- change "extern "C" int WinMain" to "int WINAPI WinMain".
- in WinMain pause for the user to read the screen before making it disappear.
This is very useful when there was an error during startup because otherwise
you can't read it. However we'll probably want to disable it when the
user actually asked for Bochs to quit.
> Dlltool creates a useless file called 'mingwex'.
> I think the first dlltool call should only contain bochs object files and
> no link options or external libraries.
For years we have been writing beyond the end of this array in the VGA code:
bx_bool vga_tile_updated[BX_NUM_X_TILES][BX_NUM_Y_TILES];
and doing who-know-how-much damage to other memory structures in the process.
I changed every reference to vga_tile_updated[][] into calls to two macros
GET_TILE_UPDATED and SET_TILE_UPDATED, and defined the macros to check
the bounds of the array before referencing it. At first I used an
assert, then a panic, then an error, and now I'm not printing any message
at all because there were thousands and thousands of messages during
a boot of win95 when it's updating the win95 logo screen.
- I couldn't resist cleaning up a few confusing-looking things like
"if (condition) { // }". There are no functional changes except for
bounds checking on the vga_tile_updated array.
needs to include the .o's and .a's that are part of the Bochs source code
so that it can create a list of Bochs symbols that need to be exported.
I started out using the same list as the link line, but dlltool
doesn't accept all the same options as the link such as -I and -L.
it's easier to find. The other one is for wxWindows on win32 only.
- for wxWindows on win32, I added a function called RedirectIOToConsole() from
an article in the Windows Developers Journal that creates a console window
and sets up stdin,stdout,stderr to operate on the console. This works,
except for a console freezing problem that I described on the mailing list
earlier today.
- Once it is working better, we may want to use the WinMain definition for
other types of compiles on win32, and maybe even for all win32 compiles. In
particular when we compile with SDL we should create a console window too.
- comment out some debug output from the command line parser, add \n's in
a few places. (I'm using stderr instead of BX_PANIC because I don't think
the logging system is ready to be used at this early stage.)
textconfig.cc. I can't quite explain why it wasn't a problem before,
but it's certainly a problem now. In fact VC++ does define off_t, so
I removed the #define entirely.