- Timestamp:
- Aug 11, 2012 5:03:21 PM (12 years ago)
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/Makefile.kmk
r42369 r42770 58 58 scsi.c \ 59 59 ahci.c \ 60 apm.c \ 60 61 pcibios.c \ 61 62 pciutil.c \ … … 63 64 ../../BiosCommonCode/support.asm \ 64 65 pcibio32.asm \ 66 apm_pm.asm \ 65 67 $(VBoxPcBios32_1_TARGET) \ 66 68 orgs.asm -
trunk/src/VBox/Devices/PC/BIOS/makefile
r42332 r42770 31 31 32 32 OBJS = bios.obj print.obj ata.obj floppy.obj eltorito.obj boot.obj & 33 keyboard.obj disk.obj serial.obj system.obj timepci.obj &34 ps2mouse.obj parallel.obj logo.obj scsi.obj ahci.obj &33 keyboard.obj disk.obj serial.obj system.obj timepci.obj logo.obj & 34 ps2mouse.obj parallel.obj scsi.obj ahci.obj apm.obj apm_pm.obj & 35 35 pcibios.obj pciutil.obj vds.obj pcibio32.obj pci32.obj orgs.obj 36 36 -
trunk/src/VBox/Devices/PC/BIOS/notes.txt
r41547 r42770 46 46 - PC DOS 6.x/7.x QCONFIG is a rare user of INT 16h fn 0Ah (read keyboard ID). 47 47 48 - Windows 98 is one of the few APM 1.2 users; Windows 95 uses APM 1.1, while 49 newer systems prefer ACPI. 50 48 51 49 52 Notes on BIOS implementation … … 72 75 the type unsigned. 73 76 77 - The PCI BIOS services are implemented in C, compiled twice as 16-bit and 78 32-bit code. This reduces the development effort and significantly lowers 79 the risk of discrepancies between 16-bit and 32-bit implementation. Care 80 must be taken because the 16-bit implementation can be executed in both 81 real and protected mode. 82 83 - APM can be in theory implemented only once for real, 16-bit protected and 84 32-bit protected mode. Unfortunately this is very inconvenient in C since 85 the default stack size changes between 16-bit and 32-bit callers. Therefore 86 real mode APM (which supports most functions) is implemented in C and 87 protected-mode APM is written in assembler for both 16-bit and 32-bit calls, 88 with a small 32->16 thunk. 74 89 75 90 -
trunk/src/VBox/Devices/PC/BIOS/orgs.asm
r42392 r42770 112 112 extrn _int70_function:near 113 113 extrn _int74_function:near 114 extrn _apm_function:near 114 115 extrn _ata_init:near 115 116 extrn _ahci_init:near … … 1519 1520 int15_handler: 1520 1521 pushf 1521 cmp ah, 53h ; APM function?1522 je apm_call1523 1522 push ds 1524 1523 push es … … 1529 1528 je int15_handler32 1530 1529 pusha 1531 cmp ah, 0C2h 1530 cmp ah, 53h ; APM function? 1531 je apm_call 1532 cmp ah, 0C2h ; PS/2 mouse function? 1532 1533 je int15_handler_mouse 1533 1534 1534 1535 call _int15_function 1535 int15_handler_ mouse_ret:1536 int15_handler_popa_ret: 1536 1537 popa 1537 1538 int15_handler32_ret: … … 1542 1543 1543 1544 apm_call: 1544 ; TODO!! 1545 popf 1546 stc 1547 jmp iret_modify_cf 1548 ; jmp apmreal_entry 1545 call _apm_function 1546 jmp int15_handler_popa_ret 1549 1547 1550 1548 int15_handler_mouse: 1551 1549 call _int15_function_mouse 1552 jmp int15_handler_ mouse_ret1550 jmp int15_handler_popa_ret 1553 1551 1554 1552 int15_handler32:
Note:
See TracChangeset
for help on using the changeset viewer.