Changeset 33540 in vbox for trunk/src/VBox/Devices/PC/BIOS
- Timestamp:
- Oct 28, 2010 9:27:05 AM (14 years ago)
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/rombios.c
r33208 r33540 37 37 38 38 39 // ROM BIOS compat ability entry points:39 // ROM BIOS compatibility entry points: 40 40 // =================================== 41 41 // $e05b ; POST Entry Point … … 82 82 // - Current code can not boot and emulate a hard-disk 83 83 // the bios will panic otherwise 84 // - Current code also use memory in EBDA seg ement.84 // - Current code also use memory in EBDA segment. 85 85 // - I used cmos byte 0x3D to store extended information on boot-device 86 86 // - Code has to be modified modified to handle multiple cdrom drives … … 786 786 unsigned char filler1[0x3D]; 787 787 788 // FDPT - Can be split ted indata members if needed788 // FDPT - Can be split into data members if needed 789 789 unsigned char fdpt0[0x10]; 790 790 unsigned char fdpt1[0x10]; … … 1842 1842 1843 1843 /* ------------------- keyboard side ------------------------*/ 1844 /* reset ke rboard and self test (keyboard side) */1844 /* reset keyboard and self test (keyboard side) */ 1845 1845 outb(0x60, 0xff); 1846 1846 … … 1939 1939 //-------------------------------------------------------------------------- 1940 1940 // shutdown_status_panic 1941 // called when the shutdown stat suis not implemented, displays the status1941 // called when the shutdown status is not implemented, displays the status 1942 1942 //-------------------------------------------------------------------------- 1943 1943 void … … 2230 2230 #define ATA_CB_DC_NIEN 0x02 // disable interrupts 2231 2231 2232 // Most mand tory and optional ATA commands (from ATA-3),2232 // Most mandatory and optional ATA commands (from ATA-3), 2233 2233 #define ATA_CMD_CFA_ERASE_SECTORS 0xC0 2234 2234 #define ATA_CMD_CFA_REQUEST_EXT_ERR_CODE 0x03 … … 2974 2974 ata_in_16: 2975 2975 rep 2976 insw ;; CX words transfer ed from port(DX) to ES:[DI]2976 insw ;; CX words transferred from port(DX) to ES:[DI] 2977 2977 jmp ata_in_done 2978 2978 2979 2979 ata_in_32: 2980 2980 rep 2981 insd ;; CX dwords transfer ed from port(DX) to ES:[DI]2981 insd ;; CX dwords transferred from port(DX) to ES:[DI] 2982 2982 2983 2983 ata_in_done: … … 3167 3167 seg ES 3168 3168 rep 3169 outsw ;; CX words transfer ed from port(DX) to ES:[SI]3169 outsw ;; CX words transferred from port(DX) to ES:[SI] 3170 3170 jmp ata_out_done 3171 3171 … … 3173 3173 seg ES 3174 3174 rep 3175 outsd ;; CX dwords transfer ed from port(DX) to ES:[SI]3175 outsd ;; CX dwords transferred from port(DX) to ES:[SI] 3176 3176 3177 3177 ata_out_done: … … 3326 3326 seg ES 3327 3327 rep 3328 outsw ;; CX words transfer ed from port(DX) to ES:[SI]3328 outsw ;; CX words transferred from port(DX) to ES:[SI] 3329 3329 3330 3330 pop bp … … 3466 3466 ata_packet_in_16: 3467 3467 rep 3468 insw ;; CX words transfer ed tp port(DX) to ES:[DI]3468 insw ;; CX words transferred tp port(DX) to ES:[DI] 3469 3469 jmp ata_packet_after 3470 3470 3471 3471 ata_packet_in_32: 3472 3472 rep 3473 insd ;; CX dwords transfer ed to port(DX) to ES:[DI]3473 insd ;; CX dwords transferred to port(DX) to ES:[DI] 3474 3474 3475 3475 ata_packet_after: … … 4750 4750 case 0: 4751 4751 set_e820_range(ES, regs.u.r16.di, 4752 #ifndef VBOX /** @todo Upstream sugg gests the following, needs checking. (see next as well) */4752 #ifndef VBOX /** @todo Upstream suggests the following, needs checking. (see next as well) */ 4753 4753 0x0000000L, 0x0009f000L, 0, 0, 1); 4754 4754 #else … … 4759 4759 case 1: 4760 4760 set_e820_range(ES, regs.u.r16.di, 4761 #ifndef VBOX /** @todo Upstream sugg gests the following, needs checking. (see next as well) */4761 #ifndef VBOX /** @todo Upstream suggests the following, needs checking. (see next as well) */ 4762 4762 0x0009f000L, 0x000a0000L, 0, 0, 2); 4763 4763 #else … … 4847 4847 /* fall thru */ 4848 4848 #else /* !VBOX */ 4849 /* Map ing of memory above 4 GB */4849 /* Mapping of memory above 4 GB */ 4850 4850 set_e820_range(ES, regs.u.r16.di, 0x00000000L, 4851 4851 extra_lowbits_memory_size, 1, extra_highbits_memory_size … … 6846 6846 6847 6847 rep 6848 insw ;; CX words transfer ed from port(DX) to ES:[DI]6848 insw ;; CX words transferred from port(DX) to ES:[DI] 6849 6849 6850 6850 i13_f02_done: … … 6987 6987 seg ES 6988 6988 rep 6989 outsw ;; CX words tran fered from ES:[SI] to port(DX)6989 outsw ;; CX words transferred from ES:[SI] to port(DX) 6990 6990 6991 6991 ;; store real SI register back to temp bx … … 8367 8367 // if BX_ELTORITO_BOOT is not defined, old behavior 8368 8368 // check bit 5 in CMOS reg 0x2d. load either 0x00 or 0x80 into DL 8369 // in preparation for the in tial INT 13h (0=floppy A:, 0x80=C:)8369 // in preparation for the initial INT 13h (0=floppy A:, 0x80=C:) 8370 8370 // 0: system boot sequence, first drive C: then A: 8371 8371 // 1: system boot sequence, first drive A: then C: … … 9283 9283 or bl, #0x70 ;; drive1 determined, multi-rate, has changed line 9284 9284 f1_missing: 9285 ;; leave high bits in BL zero d9285 ;; leave high bits in BL zero'd 9286 9286 mov 0x048f, bl ;; put new val in BDA (diskette controller information) 9287 9287 ;; ----------------------------------------------------------------- … … 9699 9699 ;; 9700 9700 ;; 14,318,180 Hz clock 9701 ;; /3 = 4,772,726 Hz fed to or ginal 5Mhz CPU9701 ;; /3 = 4,772,726 Hz fed to original 5Mhz CPU 9702 9702 ;; /4 = 1,193,181 Hz fed to timer 9703 9703 ;; /65536 (maximum timer count) = 18.20650736 ticks/second … … 9712 9712 ;; (BcdToBin(hours) * 65543.427) 9713 9713 ;; To get a little more accuracy, since Im using integer 9714 ;; arithm atic, I use:9714 ;; arithmetic, I use: 9715 9715 ;; ticks = (BcdToBin(seconds) * 18206507) / 1000000 + 9716 9716 ;; (BcdToBin(minutes) * 10923904) / 10000 + … … 11383 11383 11384 11384 ;; set vector 0x79 to zero 11385 ;; this is used by 'g ardian angel' protection system11385 ;; this is used by 'guardian angel' protection system 11386 11386 SET_INT_VECTOR(0x79, #0, #0) 11387 11387 … … 11392 11392 11393 11393 ;; Manufacturing Test 40:12 11394 ;; zero d out above11394 ;; zero'd out above 11395 11395 11396 11396 #ifndef VBOX 11397 11397 ;; Warm Boot Flag 0040:0072 11398 11398 ;; value of 1234h = skip memory checks 11399 ;; zero d out above11399 ;; zero'd out above 11400 11400 #endif /* !VBOX */ 11401 11401 … … 11486 11486 call detect_parport 11487 11487 shl bx, #0x0e 11488 mov ax, 0x410 ; Equipment word bits 14..15 determin g# parallel ports11488 mov ax, 0x410 ; Equipment word bits 14..15 determine # parallel ports 11489 11489 and ax, #0x3fff 11490 11490 or ax, bx ; set number of parallel ports … … 11505 11505 call detect_serial 11506 11506 shl bx, #0x09 11507 mov ax, 0x410 ; Equipment word bits 9..11 determin g# serial ports11507 mov ax, 0x410 ; Equipment word bits 9..11 determine # serial ports 11508 11508 and ax, #0xf1ff 11509 11509 or ax, bx ; set number of serial port -
trunk/src/VBox/Devices/PC/BIOS/scsi.c
r33106 r33540 108 108 109 109 rep 110 insb ;; CX dwords transfer ed from port(DX) to ES:[DI]110 insb ;; CX dwords transferred from port(DX) to ES:[DI] 111 111 112 112 pop bp … … 168 168 169 169 rep 170 outsb ;; CX bytes transfer ed from DS:[SI] to port(DX)170 outsb ;; CX bytes transferred from DS:[SI] to port(DX) 171 171 172 172 pop ds
Note:
See TracChangeset
for help on using the changeset viewer.