- int17_function updated for multiple parallel ports

- detection of serial port 3 + 4 added
This commit is contained in:
Volker Ruppert 2004-01-28 19:14:56 +00:00
parent ac28f72551
commit a0457f980e
5 changed files with 12 additions and 8 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: rombios.c,v 1.106 2004-01-25 22:10:12 vruppert Exp $
// $Id: rombios.c,v 1.107 2004-01-28 19:13:37 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2002 MandrakeSoft S.A.
@ -928,10 +928,10 @@ Bit16u cdrom_boot();
#endif // BX_ELTORITO_BOOT
static char bios_cvs_version_string[] = "$Revision: 1.106 $";
static char bios_date_string[] = "$Date: 2004-01-25 22:10:12 $";
static char bios_cvs_version_string[] = "$Revision: 1.107 $";
static char bios_date_string[] = "$Date: 2004-01-28 19:13:37 $";
static char CVSID[] = "$Id: rombios.c,v 1.106 2004-01-25 22:10:12 vruppert Exp $";
static char CVSID[] = "$Id: rombios.c,v 1.107 2004-01-28 19:13:37 vruppert Exp $";
/* Offset to skip the CVS $Id: prefix */
#define bios_version_string (CVSID + 4)
@ -3242,7 +3242,7 @@ int14_function(regs, ds, iret_addr)
sti
ASM_END
addr = read_word(0x0040, 2 * regs.u.r16.dx);
addr = read_word(0x0040, (regs.u.r16.dx << 1));
timeout = read_byte(0x0040, 0x007C + regs.u.r16.dx);
if ((regs.u.r16.dx < 4) && (addr > 0)) {
switch (regs.u.r8.ah) {
@ -7142,9 +7142,9 @@ int17_function(regs, ds, iret_addr)
sti
ASM_END
if ((regs.u.r8.ah < 3) && (regs.u.r16.dx == 0)) {
addr = read_word(0x0040, 0x0008);
timeout = read_byte(0x0040, 0x0078) << 8;
addr = read_word(0x0040, (regs.u.r16.dx << 1) + 8);
if ((regs.u.r8.ah < 3) && (regs.u.r16.dx < 3) && (addr > 0)) {
timeout = read_byte(0x0040, 0x0078 + regs.u.r16.dx) << 8;
if (regs.u.r8.ah == 0) {
outb(addr, regs.u.r8.al);
val8 = inb(addr+2);
@ -8935,6 +8935,10 @@ post_default_ints:
call detect_serial
mov dx, #0x02f8 ; Serial I/O address, port 2
call detect_serial
mov dx, #0x03e8 ; Serial I/O address, port 3
call detect_serial
mov dx, #0x02e8 ; Serial I/O address, port 4
call detect_serial
shl bx, #0x09
mov ax, 0x410 ; Equipment word bits 9..11 determing # serial ports
and ax, #0xf1ff