added int 15 c0 - bios configuration
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1496
This commit is contained in:
parent
c831e34ffb
commit
36073bb20f
1 changed files with 21 additions and 4 deletions
|
@ -16,7 +16,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* $Id: bios.cpp,v 1.25 2003-12-11 22:12:41 finsterr Exp $ */
|
||||
/* $Id: bios.cpp,v 1.26 2003-12-17 23:04:40 finsterr Exp $ */
|
||||
|
||||
#include <time.h>
|
||||
#include "dosbox.h"
|
||||
|
@ -28,6 +28,7 @@
|
|||
#include "mem.h"
|
||||
#include "pic.h"
|
||||
#include "joystick.h"
|
||||
#include "dos_inc.h"
|
||||
|
||||
static Bitu call_int1a,call_int11,call_int8,call_int17,call_int12,call_int15,call_int1c;
|
||||
static Bitu call_int1,call_int70;
|
||||
|
@ -173,14 +174,30 @@ static Bitu INT17_Handler(void) {
|
|||
|
||||
|
||||
static Bitu INT15_Handler(void) {
|
||||
static Bitu biosConfigSeg=0;
|
||||
|
||||
switch (reg_ah) {
|
||||
case 0x06:
|
||||
LOG(LOG_BIOS,LOG_NORMAL)("INT15 Unkown Function 6");
|
||||
break;
|
||||
case 0xC0: /* Get Configuration*/
|
||||
LOG(LOG_BIOS,LOG_ERROR)("Request BIOS Configuration INT 15 C0");
|
||||
CALLBACK_SCF(true);
|
||||
break;
|
||||
{
|
||||
if (biosConfigSeg==0) biosConfigSeg = DOS_GetMemory(1); //We have 16 bytes
|
||||
PhysPt data = PhysMake(biosConfigSeg,0);
|
||||
mem_writew(data,8); // 3 Bytes following
|
||||
mem_writeb(data+2,0xFC); // Model ID
|
||||
mem_writeb(data+3,0x00); // Submodel ID
|
||||
mem_writeb(data+4,0x01); // Bios Revision
|
||||
mem_writeb(data+5,(1<<6)|(1<<5)|(1<<4));// Feature Byte 1
|
||||
mem_writeb(data+6,(1<<6)); // Feature Byte 2
|
||||
mem_writeb(data+7,0); // Feature Byte 3
|
||||
mem_writeb(data+8,0); // Feature Byte 4
|
||||
mem_writeb(data+9,0); // Feature Byte 4
|
||||
CPU_SetSegGeneral(es,biosConfigSeg);
|
||||
reg_bx = 0;
|
||||
reg_ah = 0;
|
||||
CALLBACK_SCF(false);
|
||||
}; break;
|
||||
case 0x4f: /* BIOS - Keyboard intercept */
|
||||
/* Carry should be set but let's just set it just in case */
|
||||
CALLBACK_SCF(true);
|
||||
|
|
Loading…
Add table
Reference in a new issue