instead of winmm being a part of GUI_LINK_OPTS_WIN32 only, it is
placed in @DEVICE_LINE_OPTS@ so that it will be used for sdl, rfb, wx,
etc.
- solve compile problems when building bximage, niclist, and any other
console based program. The compile flags returned by wx-config and
sdl-config did strange things to these console programs, for example
redefining main to SDL_main. Because I wanted to use the
configure-generated CFLAGS to compile the programs, but I wanted to
avoid including GUI specific compile options, I split up the configure's
@CFLAGS@ variable into @CFLAGS@ and @GUI_CFLAGS@, and split
@CXXFLAGS@ into @CXXFLAGS@ and @GUI_CXXFLAGS@. All programs in the
Bochs binary will use both, but the console programs will just use
@CFLAGS@ or @CXXFLAGS@.
- gui/Makefile.in, I no longer use the gui specific CFLAGS variables,
SDL_CFLAGS and WX_CXXFLAGS. These values are included in CFLAGS and
CXXFLAGS now.
- modified: configure.in, configure, all Makefile.in's
- parallel port detection fixed:
* write the value of AX to 0x0410, not BX
* the timeout value is a byte and now stored in CL
* the offset of the port address list is 2 bytes
. 4 ata interfaces support
. devices auto-detection
. 16bits/32bits device access
. EDD3.0 support
. ata/atapi layer rewrite
. added verious DEBUG_XXX to debug only parts of the bios, because we're running low on data space in debug mode
. moved ata data at offset 0x121 in EBDA. Previously, data was being overwritten by keyboard.sys
. added jump to [0x40:0x67] after reset if shutdown status is 0x05. Fixes bug [ 601166 ] CMOS Problem @ "0x0F Index 0x05 data"
. DMA controller init on POST entry
- added jump to [0x40:0x67] after reset if shutdown status is 0x05. Fixes bug [ 601166 ] CMOS Problem @ "0x0F Index 0x05 data"
- changed various occurences of "mov ax, #0000" by "xor ax, ax"
- fixed serious bugs in EDD function 0x48
- included Volker's rombios recent changes to PCIBIOS
- initialization of DMA controller on POST entry
- added atapi layer
- updated int13_cdrom, int13_eltorito and int13_cdemu
- added verious DEBUG_XXX to debug only parts of the bios, because we're running low on data space in debug mode
- added a fix so bcc generates good code when #asm follows if or while statements
- updated int13_cdrom, int13_eltorito and int13_cdemu
- added verious DEBUG_XXX to debug only parts of the bios, because we're running low on data space in debug mode
- added a fix so bcc generates good code when #asm follows if or while statements
- 4 ata interfaces support (1)
- devices auto-detection
- 16bits/32bits device access
- EDD3.0 support
This is nearly the same BIOS I offered for download on July 12th,
but I hope to get more feedback with the CVS.
I will update this bios with the atapi bit and fixes, and
I'll eventually merge the changes in the main BIOS.
Added Files:
BIOS-bochs-new-ata rombios-new-ata.c
* new floppy type 360k can be used in .bochsrc and the config interface
* media type and geometry can be set for the floppy type
* BIOS changes to make 360k floppy drives work
* bximage can create 360k images now
- new real mode PCI BIOS functions: find device, read/write byte/dword
- C code for PCI BIOS handles errors and prints messages only
- function setPCIaddr() no longer needed
- functions inw() and outw() no longer used by the PCI BIOS
- BIOS32 checksum calculation rewriten to prevent errors
- labels of protected mode PCI BIOS renamed
Linux (kernel 2.2.18) is able to use the new features.
Here is the list of changes:
* BIOS32 data structure added
* BIOS32 and protected mode PCI BIOS functions added. The BIOS32 function
returns a pointer to the PCI BIOS entry point when the service $PCI is
requested and the PCI hardware is present.
* Supported 32 bit functions: installation check, find pci device,
read configuration byte/word/dword, write configuration byte/word/dword
* real mode PCI BIOS installation check rewritten in assembler to use 32 bit
registers for the protected mode entry point and the 'PCI ' signature.
TODO:
* add missing functions of the PCI BIOS (if necessary)
* add missing features of the i440FX PCI bridge
* implement the other parts of the i440FX chipset (PCI-to-ISA bridge,
PCI IDE controller, USB controller)
- functions inw() and outw() are required for the ATA driver too
- real mode PCI BIOS installation check returns revision level 2.10
- unsupported real mode PCI BIOS functions return the error code 0x81
- added ASM_START / ASM_END instead of #asm / #endasm.
Now we are (tested) able to compile with both gcc2 and gcc3
compiler (Eventually!) Aren't you happy Jeroen ? ;-)
- fixed [ 549815 ]. I included back int19_relocated at the bios
space could not hold the new mov ex, ax
- int19 calls int18 if the boot has failed. I hope this is the
right behavior.
- added BX_DEBUG, BX_INFO, BX_PANIC macros
- BX_DEBUG outputs to the INFO port till we can easily choose debug output on a per-device basis
- BX_DEBUG are only generated if DEBUG_ROMBIOS is defined to 1
- do not panic on unsupported function in int13, only output info message
- fixed a bug on boot signature check never done on floppy/harddisk and always on floppy images on cd
- the boot signature check on harddisks is always done
- the boot signature check on cdroms (either direct boot or floppy images) is never done
- the boot signature check on floppies is conditionnal to CMOS reg 0x38 (configuration floppy_bootsig_check)
- moved PIC initialization before calling optional rombios init functions (feature request [ 541908 ])
- BX_DEBUG outputs to the INFO port till we can easily choose debug output on a per-device basis
- BX_DEBUG are only generated if DEBUG_ROMBIOS is defined to 1
- do not panic on unsupported function in int13, only output info message
- fixed a bug on boot signature check never done on floppy/harddisk and always on floppy images on cd
- the boot signature check on harddisks is always done
- the boot signature check on cdroms (either direct boot or floppy images) is never done
- the boot signature check on floppies is conditionnal to CMOS reg 0x38 (configuration floppy_bootsig_check)
- moved PIC initialization before calling optional rombios init functions (feature request [ 541908 ])
about this, #535432: Emu panics when pressing ">"-key. The user did not
report exactly what the exact message was, but these sound like the
correct ones. BIOS panics are permanent fatal errors, so I don't
want them to show up accidently, especially for something as trivial
as bumping the wrong key.
- CDs can boot at segment != 0x7c0
- reworked int19 in a C function
- "no emulation" CDs can be booted (Win2k, XP).
No more 000E failure code. Win2k fails though
- started to implement int13 for cdrom
- started to mutualize string constants
- changed a little bit the Bios Config Table address
so the new int19 handler fits whithout relocation
Cliff added to bios_printf the ability to print onto the console. Bryce made
some further changes. Now when a panic occurs, the message is reported both
to the Bochs log file and to the screen, and then it goes into an infinite
busy loop. Why an inf loop? If I do a HLT in BIOS code, current bochs
versions will panic immediately and the user will never see the real panic
message. I have mostly tested the new panic behavior by booting nonbootable
and nonreadable disks.
are released, I will remove VGABIOS-cbothamy-0.2a and add a file with
the other version number. I decided not to use the "-latest" naming
scheme because there is no synchronization between bochs releases and
LGPL VGA BIOS releases. Anything that's called "latest" is bound to
go obsolete eventually.
a read-only disk image. For systems such as DOS that actually use the
BIOS services, it was also necessary to add code in int13_diskette_function
to recognize a write-protected error and return the correct error
status code (AH=3, Carry Set).
[ #430472 ] DOS HIMEM "A20 line" error
All I've done is moved the call to print_bios_banner later in the
boot process, and the A20 problem goes away. I wanted it early so
that it would get printed before any panic or halt could happen.
Oh well.