Commit Graph

178 Commits

Author SHA1 Message Date
Christophe Bothamy
fcc1cd5195 - add int15 function 0xe820 (from osmaker)
- add int15 function 0xe801 (from Hartmut Birr)
- add amount of extended memory in 64KiB block to cmos regs 0x34 and 0x35
2002-10-16 07:38:37 +00:00
Volker Ruppert
d460ec396a - harddisk controller interrupt must be enabled after a reset and the
completion of a read or write operation
- int13_harddisk function 0x00 calls ata_reset()
2002-10-07 16:16:04 +00:00
Christophe Bothamy
7c35cfb980 - fixed size mismatch 2002-10-04 16:47:29 +00:00
Bryce Denney
9f73882054 - surely I didn't mean to put GUI_CFLAGS into the bios compile line! 2002-10-04 06:08:38 +00:00
Bryce Denney
4c9776fb96 - add -lwinmm to the link lines anytime you use --enable-sb16=win. Now
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
2002-10-01 23:37:50 +00:00
Volker Ruppert
4158c1e862 - serial port detection for two ports added to the POST code
- 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
2002-09-28 15:03:32 +00:00
Volker Ruppert
b98975c832 - parallel port detection for two ports added to the POST code 2002-09-28 12:27:56 +00:00
Christophe Bothamy
f36fb4fb58 - merged rombios-new-ata.c in rombios.c
- compiled BIOS-bochs-latest from latest rombios.c
2002-09-24 21:56:31 +00:00
Christophe Bothamy
2ef503ae20 - merged rombios-new-ata.c in rombios.c. New features :
. 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
2002-09-24 21:52:32 +00:00
Christophe Bothamy
4d179c4fa9 - merged rombios-new-ata.c in rombios.c. This one is not needed any more 2002-09-24 21:44:26 +00:00
Christophe Bothamy
ed3270d12d - updated from rombios-new-ata.c rev 1.6 2002-09-23 12:49:02 +00:00
Christophe Bothamy
98c1f73690 - 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"
- 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
2002-09-23 12:47:24 +00:00
Volker Ruppert
efbcf33bc7 - real mode PCI BIOS modifies the iret flags on stack if no error is present
- bug in the 'find PCI device' functions fixed
- register for the PCI i/o addresses is always DX
2002-09-20 19:36:05 +00:00
Christophe Bothamy
de39c3bd6d - VGABIOS-lgpl name change
. removed VGABIOS-lgpl-0.3
  . added VGABIOS-lgpl-latest (current cvs version)
  . updated configuration file
2002-09-20 13:23:46 +00:00
Christophe Bothamy
5ca59b4d4f - updated from rombios-new-ata.c rev 1.5 2002-09-13 14:31:53 +00:00
Christophe Bothamy
ac1fc11a13 - fixed missing casts on write_dwords. Cyl/Heads/Spt were not reported correctly by EDD 2002-09-13 13:37:50 +00:00
Christophe Bothamy
1fb02cacf1 - updated with rombios-new-ata.c rev 1.4 :
- fixed stupid "#if #elif" bug in ata paramaters
  - added debug/screen message if device detection fails.
2002-09-05 08:20:06 +00:00
Christophe Bothamy
e6f8c1ba46 - fixed stupid "#if #elif" bug in ata paramaters
- added debug/screen message if device detection fails.
2002-09-05 08:18:30 +00:00
Christophe Bothamy
88cf989396 - recompiled from rombios-new-ata.c rev 1.3 2002-08-19 17:12:46 +00:00
Christophe Bothamy
c74ca2a66a - fixed bug reported by Volker.
- fixed bug reported by tld.
- changed sectors to spt to avoid confusion
- changed detected devices message
2002-08-19 17:08:09 +00:00
Christophe Bothamy
c1b10f6847 - updated from pex86 Makefile.in. Uses bcc instead of bcc-cc1. 2002-08-10 21:30:41 +00:00
Christophe Bothamy
d2f6867bf2 - updated with rombios-new-ata.c revision 1.2
- 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
2002-08-09 16:58:05 +00:00
Christophe Bothamy
0d6258ca97 - 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
2002-08-09 16:35:44 +00:00
Christophe Bothamy
15563b43ee - added new-ata BIOS for people to test out. New features :
- 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
2002-08-06 16:08:45 +00:00
Volker Ruppert
a6d07ad166 - added support for 360k floppy images
* 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
2002-08-01 07:37:56 +00:00
Volker Ruppert
e46d56fad1 - jump to POST entry point must be a far jump (MS-DOS and Win95 reboots now)
- keyboard init: read output buffer and enable keyboard before self test
2002-07-23 18:46:17 +00:00
Volker Ruppert
54a5e86cc6 - real mode PCI BIOS functions rewritten in assembler
- 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
2002-06-22 15:23:05 +00:00
Volker Ruppert
aa57c0e171 - most important functions of the protected mode PCI BIOS added.
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)
2002-06-04 17:44:02 +00:00
Volker Ruppert
c2941ec36b - added error message: PCI BIOS can only be used with 386+ cpu
- 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
2002-05-11 13:44:39 +00:00
Christophe Bothamy
2a39e35322 - updated with rombios.c v1.56 2002-05-04 16:56:22 +00:00
Christophe Bothamy
45ad28ff24 - adapted rombios for floppy boot signature check flag change
- 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.
2002-05-04 16:09:38 +00:00
Christophe Bothamy
a5442def86 - fixed bug [ 547603 ]
- added int16 functions AX=09h and AX=0Ah
2002-04-24 13:49:26 +00:00
Christophe Bothamy
2f2f9880ca - compiled rombios.c 1.54
- 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 ])
2002-04-24 07:54:23 +00:00
Christophe Bothamy
6566116a01 - 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 ])
2002-04-24 07:52:07 +00:00
Jeroen Janssen
b3e6bcb3a9 - reverting ##asm/##endasm patch for preprocessing with gcc3 2002-04-21 13:04:47 +00:00
Jeroen Janssen
cfa340ca76 - make sure the rombios can be preprocessed with latest gcc (from Mandrake 8.2) 2002-04-20 16:46:07 +00:00
Jeroen Janssen
1abec8c874 - moving DEBUG_ROMBIOS more to the top of the file (since it's sort of a configuration option and was 'well hidden' atm) 2002-04-11 20:17:03 +00:00
Christophe Bothamy
bf9b01035f - fixed win2k boot from cd bug 2002-04-11 00:20:31 +00:00
Christophe Bothamy
c7c233f9ce - fixed Win2k boot from cd
- included provisional code for two ATA interfaced
2002-04-10 23:25:49 +00:00
instinc
7159f3fdba with bug 433003 fix 2002-04-10 23:25:17 +00:00
instinc
c9e242cab0 Fixed the bug 433003 related to function 87h of int 15h 2002-04-10 23:23:00 +00:00
Bryce Denney
45b49fe35f - this patch from William Lee Irwin III <wli@holomorphy.com> makes it easy to
configure and compile a BIOS for 8 CPUs.
2002-04-08 01:41:59 +00:00
Bryce Denney
949ac3bbf0 - Dave Poirier fixed bug #466292: kbd fails in scandisk, freedos edit.
I recompiled the BIOS with the fix.
2002-04-08 01:24:49 +00:00
instinc
cd4fdfe9f3 Fixes bug report 466292 2002-04-08 01:19:35 +00:00
Christophe Bothamy
f02ef5cd7a - fixed keyboard not working with DOS6.2 keyb.com :
. int16 function 92 :  keyboard capability check for keyb.com (enhanced keyboard) : supported
  . int16 function A2 :  keyboard capability check for keyb.com (122keys keyboard) : not supported
2002-04-06 15:59:29 +00:00
Christophe Bothamy
f9304212e9 - redo the freebsd fix.
I should know better the 16bits segmentation model.
2002-04-05 21:08:22 +00:00
Christophe Bothamy
7f3fb09f49 - added fix for freeBSD boot 2002-04-04 16:58:31 +00:00
Christophe Bothamy
2ba7527c2a - real fix for freeBSD boot 2002-04-04 16:57:45 +00:00
instinc
c2fcfad89b Khorev Sergey's patch allowing FreeBSD to boot 2002-04-04 03:50:11 +00:00
Bryce Denney
8ceca1a4c5 - change a few keyboard panics into printfs (warnings). I got a bug report
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.
2002-03-28 07:10:18 +00:00
Bryce Denney
8ef7c284fd - apply Christophe's patch.rombios-no-gpl
- update binary bioses
- remove the patch from patches
2002-03-26 13:17:44 +00:00
Christophe Bothamy
0119c65408 - update to rombios.c 1.40, with right version number this time! 2002-03-24 23:15:37 +00:00
Christophe Bothamy
b0cbd43510 - update to rombios.c 1.40 2002-03-24 23:10:15 +00:00
Christophe Bothamy
c81c05a9cd - included Peter Tattam's fix for read error when installing win95 2002-03-24 23:04:58 +00:00
Bryce Denney
9e3e93e5d4 - update to rombios.c 1.39 2002-03-24 05:49:35 +00:00
Christophe Bothamy
cee75f1f3a *** empty log message *** 2002-03-20 21:08:56 +00:00
Christophe Bothamy
11b6de2502 - fix from gnutchar@hotmail.com. cmp ax, 0x0000 sould be cmp ax, #0x0000 2002-03-20 21:06:12 +00:00
Volker Ruppert
6c4a3581c7 - removed unnecessary delay loop after keyboard reset in POST 2002-03-12 18:44:07 +00:00
Christophe Bothamy
b64349020b - renamed in VGABIOS-lgpl-README 2002-03-11 00:27:10 +00:00
Christophe Bothamy
b3c6d9c44a - removed the specific ElTorito version, as it is included in main bios 2002-03-11 00:21:30 +00:00
Christophe Bothamy
f25dc70678 - fixed a unnecessary check on the bootsegment
- renamed int13_function to int13 harddisk
- the default is now to have the ATA driver and ElTorito boot
2002-03-11 00:17:31 +00:00
Christophe Bothamy
66262c3005 - uploaded new VGABios with VBE support 2002-03-10 19:52:04 +00:00
Christophe Bothamy
2ea0d928b0 - uploaded new VGABIOS with VBE support 2002-03-10 19:51:19 +00:00
Christophe Bothamy
605e0cf3ef - recompiled rombios version 1.36 with El-Torito capability 2002-03-09 01:55:30 +00:00
Christophe Bothamy
2cedd2d79f - fixed OAK driver problem in win98
- 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
2002-03-09 01:50:52 +00:00
Christophe Bothamy
6088452443 - increased speed during cdrom booting 2002-02-06 21:01:18 +00:00
Christophe Bothamy
8d7231f3db - This version works now with Win98 bootable CD 2002-02-06 08:49:08 +00:00
Christophe Bothamy
f775660df4 - Changes for Win98 CD-ROM booting 2002-02-06 08:45:51 +00:00
Christophe Bothamy
ac91aa0d3c . changes to enable El-Torito boot. It is disabled by default in rombios.c 2002-01-30 10:30:52 +00:00
Christophe Bothamy
d36bb4bdfd . BIOS image with El-Torito boot compiled in 2002-01-30 10:27:29 +00:00
Volker Ruppert
873aa0c127 - keyboard self test reads the status register to clear IRQ line
- PS/2 mouse hack removed - unmask IRQ in PIC setup
- commented keyboard buffer initialisation removed
2002-01-27 09:26:23 +00:00
Volker Ruppert
14679e9413 - floppy hardware interrupt handler issues 'sense interrupt status' if there
are no result bytes to read
2002-01-24 20:32:22 +00:00
Volker Ruppert
f0937a06b9 - INT 13: number of drives is not 0 if there is only a diskd present
- hard_drive_post: DS must point to EBDA segment when initialising
  parameters for diskd
- unmask only necessary IRQs at boot time
2002-01-20 00:25:59 +00:00
Volker Ruppert
ed04aff2ca - romscan routine from plex86 BIOS integrated 2002-01-15 21:22:00 +00:00
Volker Ruppert
7add6391d6 - DMA initialisation complete: unmask cascade channel 2002-01-02 09:59:32 +00:00
Volker Ruppert
17ab2fa85f - INT 13 diskette funktion 5 uses the "format track" function of the FDC
- added initialisation of PIC and DMA in POST - reboot of linux works now
2002-01-01 21:39:28 +00:00
Volker Ruppert
c7b6a1c58b - int 13 floppy function 08 returns always the pointer to the param table in ROM 2001-12-26 14:53:40 +00:00
Christophe Bothamy
d8d03b431c - updated version of LGPL'd vgabios 2001-12-21 23:41:49 +00:00
Bryce Denney
a1a9beac3b - update to rombios.c version 1.25 2001-12-06 04:50:08 +00:00
Bryce Denney
057df9bcde - compile SMP bioses for the first time since June! 2001-12-06 04:28:30 +00:00
Volker Ruppert
014687aa97 - extended keyboard funktion waits for a key, too - don't panic 2001-12-05 20:38:32 +00:00
Volker Ruppert
db4401adb8 - serial functions added, MF-II keyboard functions added, parport updates 2001-11-26 07:26:55 +00:00
Bryce Denney
26b2c0254c - this revision is based on a patch from Cliff Hones <cliff@aonix.co.uk>.
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.
2001-11-21 02:33:05 +00:00
Bryce Denney
77cdb18620 - add LGPL bios by Christophe Bothamy <cbbochs@free.fr>. When new versions
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.
2001-11-19 14:35:05 +00:00
Bryce Denney
fad446ef63 - fix bug I created in rev 1.15 which caused all boot problems to be
reported as "not a bootable disk" even if it was "not a readable disk".
2001-11-18 16:40:26 +00:00
Bryce Denney
fea759a204 - apply patch.pci from Volker Ruppert. See
[ #481546 ] pci patch (Volker Ruppert) for any followups.
2001-11-14 01:39:22 +00:00
Bryce Denney
c685af1bdc - in sync with rombios.c 1.20. The change is from patch.parport by
Volker Ruppert which fixes parallel port access.
2001-11-12 01:34:20 +00:00
Bryce Denney
a2efc4c5de - commit patch.parport from Volker Ruppert. I tested it by running
"copy FILE prn" in a freedos image.
2001-11-12 01:33:01 +00:00
Bryce Denney
7986ea67a7 - print "read error" when hard disk cannot read the disk image, or
seeks beyond the end
2001-10-06 08:48:28 +00:00
Bryce Denney
7140fa7090 - don't panic on int 0x13, AH=0x42 through 0x49. These are valid
MS/IBM extensions but they aren't supported.  Return an error code instead.
2001-10-05 23:58:45 +00:00
Bryce Denney
daf2a9fb55 - add RCS Id to header of every file. This makes it easier to know what's
going on when someone sends in a modified file.
2001-10-03 13:10:38 +00:00
Bryce Denney
3bba2f657f - apply patch from patches/patch.lba. This is taken from plex86 cvs
and modified for bochs.  Minimal testing so far...
2001-09-19 15:30:44 +00:00
Bryce Denney
f04e6fe346 - apply VPATH patch from Edouard G. Parmelan, posted to list on September 1 2001-09-14 04:19:08 +00:00
Bryce Denney
aca0d3fae8 - apply BIOS patch from Barry Allard to check the boot signature
- fiddle with I/O handler for port 0x401 to allow BIOS to write a
  complete panic message
2001-08-15 04:56:00 +00:00
Bryce Denney
a11b18da3a - in int13_diskette_function, return the right error code (AH=3) if a
write fails because the floppy disk was write protected.  Before, the
  floppy.cc model was unable to return this error, but now it can.
2001-06-13 07:23:26 +00:00
Bryce Denney
7a095b60e4 - now floppy controller returns a proper error response if you try to write
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).
2001-06-13 07:06:10 +00:00
Bryce Denney
f1be61c30b - compiled bioses for rombios.c revision 1.13 2001-06-07 18:08:52 +00:00
Bryce Denney
7f14cc625e - This should fix the bug
[ #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.
2001-06-07 18:03:29 +00:00
Bryce Denney
8ab8c40108 - fix bugs in SMP structure
- this file now corresponds with rombios.c version 1.12.
2001-06-07 13:35:42 +00:00
Bryce Denney
08fad0325e - fixed the entry count for 2 and 4 processor MP structure, and the
checksum.
- at the same time, I removed my initials from the OEM id field and changed
  it to "BOCHSCPU"  :)
2001-06-07 13:33:32 +00:00