| Index: rombios.c |
| =================================================================== |
| RCS file: /cvsroot/bochs/bochs/bios/rombios.c,v |
| retrieving revision 1.130 |
| diff -u -w -r1.130 rombios.c |
| --- rombios.c 13 Feb 2005 08:47:30 -0000 1.130 |
| +++ rombios.c 6 Apr 2005 22:38:16 -0000 |
| @@ -8570,7 +8570,10 @@ |
| use32 386 |
| #define APM_PROT32 |
| #include "apmbios.S" |
| + |
| use16 386 |
| +#define APM_PROT16 |
| +#include "apmbios.S" |
| |
| #define APM_REAL |
| #include "apmbios.S" |
| Index: apmbios.S |
| =================================================================== |
| RCS file: /cvsroot/bochs/bochs/bios/apmbios.S,v |
| retrieving revision 1.1 |
| diff -u -w -r1.1 apmbios.S |
| --- apmbios.S 20 Jun 2004 18:27:09 -0000 1.1 |
| +++ apmbios.S 6 Apr 2005 22:38:16 -0000 |
| @@ -1,6 +1,9 @@ |
| // APM BIOS support for the Bochs BIOS |
| // Copyright (C) 2004 Fabrice Bellard |
| // |
| +// 16-bit interface activation |
| +// Copyright (C) 2005 Struan Bartlett |
| +// |
| // This library is free software; you can redistribute it and/or |
| // modify it under the terms of the GNU Lesser General Public |
| // License as published by the Free Software Foundation; either |
| @@ -111,13 +114,28 @@ |
| mov bl, #0x4d // 'M' |
| // bit 0 : 16 bit interface supported |
| // bit 1 : 32 bit interface supported |
| - mov cx, #0x2 |
| + mov cx, #0x3 |
| jmp APMSYM(ok) |
| |
| ;----------------- |
| ; APM real mode interface connect |
| APMSYM(01): |
| cmp al, #0x01 |
| + jne APMSYM(02) |
| + jmp APMSYM(ok) |
| + |
| +;----------------- |
| +; APM 16 bit protected mode interface connect |
| +APMSYM(02): |
| + cmp al, #0x02 |
| + jne APMSYM(03) |
| + |
| + mov bx, #_apm16_entry |
| + |
| + mov ax, #0xf000 // 16 bit code segment base |
| + mov si, #0xfff0 // 16 bit code segment size |
| + mov cx, #0xf000 // data segment address |
| + mov di, #0xfff0 // data segment length |
| jne APMSYM(03) |
| jmp APMSYM(ok) |
| |