VirtualBox

Ignore:
Timestamp:
Mar 31, 2009 2:00:10 PM (16 years ago)
Author:
vboxsync
Message:

Merged safe changes from bochs; formatting and functionally equivalent replacements.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/BIOS/rombios.c

    r18324 r18574  
    336336
    337337      mov  cx, 10[bp] ; count
    338       cmp  cx, #0x00
     338      test cx, cx
    339339      je   memsetb_end
    340340      mov  ax, 4[bp] ; segment
     
    426426
    427427      mov  cx, 12[bp] ; count
    428       cmp  cx, #0x0000
     428      test cx, cx
    429429      je   memcpyd_end
    430430      mov  ax, 4[bp] ; dsegment
     
    473473      mov  bx, 6[bp] ; offset
    474474      mov  ax, [bx]
    475       inc  bx
    476       inc  bx
     475      add  bx, #2
    477476      mov  dx, [bx]
    478477      ;; ax = return value (word)
     
    503502      mov  ax, 8[bp] ; data word
    504503      mov  [bx], ax  ; write data word
    505       inc  bx
    506       inc  bx
     504      add  bx, #2
    507505      mov  ax, 10[bp] ; data word
    508506      mov  [bx], ax  ; write data word
     
    541539    and eax, #0x0000FFFF
    542540    shl ebx, #16
    543     add eax, ebx
     541    or eax, ebx
    544542    shr ebx, #16
    545543    SEG SS
     
    561559    and eax, #0x0000FFFF
    562560    shl ebx, #16
    563     add eax, ebx
     561    or eax, ebx
    564562    SEG SS
    565563    mul eax, dword ptr [di]
     
    596594    and eax, #0x0000FFFF
    597595    shl ebx, #16
    598     add eax, ebx
     596    or eax, ebx
    599597    shr ebx, #16
    600598    test eax, eax
     
    607605    and  eax, #0x0000FFFF
    608606    shl  ebx, #16
    609     add  eax, ebx
     607    or   eax, ebx
    610608  lsr_loop:
    611609    shr  eax, #1
     
    623621    and  eax, #0x0000FFFF
    624622    shl  ebx, #16
    625     add  eax, ebx
     623    or   eax, ebx
    626624  lsl_loop:
    627625    shl  eax, #1
     
    645643    and  eax, #0x0000FFFF
    646644    shl  ebx, #16
    647     add  eax, ebx
     645    or   eax, ebx
    648646    xor  edx, edx
    649647    SEG SS
     
    707705    Bit8u  removable;    // Removable device flag
    708706    Bit8u  lock;         // Locks for removable devices
    709     // Bit8u  lba_capable;  // LBA capable flag - always yes for bochs devices
    710     Bit8u  mode;         // transfert mode : PIO 16/32 bits - IRQ - ISADMA - PCIDMA
     707    Bit8u  mode;         // transfer mode : PIO 16/32 bits - IRQ - ISADMA - PCIDMA
    711708    Bit16u blksize;      // block size
    712709
     
    24212418      sc = inb(iobase1+ATA_CB_SC);
    24222419      sn = inb(iobase1+ATA_CB_SN);
    2423 
    24242420      if ((sc==0x01) && (sn==0x01)) {
    24252421        cl = inb(iobase1+ATA_CB_CL);
     
    26782674            write_byte(get_SS(),model+(i*2),read_byte(get_SS(),buffer+(i*2)+54+1));
    26792675            write_byte(get_SS(),model+(i*2)+1,read_byte(get_SS(),buffer+(i*2)+54));
    2680             }
     2676          }
    26812677
    26822678          // Reformat
     
    37563752      write_word(ebda_seg,&EbdaData->cdemu.vdevice.spt,read_byte(boot_segment,446+6)&0x3f);
    37573753      write_word(ebda_seg,&EbdaData->cdemu.vdevice.cylinders,
    3758               (read_byte(boot_segment,446+6)<<2) + read_byte(boot_segment,446+7) + 1);
     3754              (read_byte(boot_segment,446+6)<<2) + read_byte(boot_segment,446+7) + 1);
    37593755      write_word(ebda_seg,&EbdaData->cdemu.vdevice.heads,read_byte(boot_segment,446+5) + 1);
    37603756      break;
     
    45904586    }
    45914587}
    4592 #endif
     4588#endif // BX_USE_PS2_MOUSE
    45934589
    45944590
     
    45984594     Bit32u start;
    45994595     Bit32u end;
    4600      Bit8u  extra_start;
    4601      Bit8u  extra_end;
     4596     Bit8u extra_start;
     4597     Bit8u extra_end;
    46024598     Bit16u type;
    46034599{
     
    48194815                regs.u.r32.ecx = 0x14;
    48204816                CLEAR_CF();
    4821             } else {
    4822               // if DX != 0x534D4150)
    4823               goto int15_unimplemented;
    4824             }
     4817            } else {
     4818              // if DX != 0x534D4150)
     4819              goto int15_unimplemented;
     4820            }
    48254821            break;
    48264822
     
    48544850          regs.u.r16.bx = regs.u.r16.dx;
    48554851          break;
    4856         default:  /* AH=0xE8?? but not implemented */
    4857           goto int15_unimplemented;
     4852        default:  /* AH=0xE8?? but not implemented */
     4853          goto int15_unimplemented;
    48584854       }
    48594855       break;
     
    49664962            }
    49674963          } while (--count>0);
    4968         }
     4964        }
    49694965      }
    49704966      BX=kbd_code;
     
    50095005    case 0x6F:
    50105006      if (GET_AL() == 0x08)
    5011         SET_AH(0x02); // unsupported, aka normal keyboard
     5007        SET_AH(0x02); // unsupported, aka normal keyboard
    50125008
    50135009    default:
     
    52365232    default:
    52375233      if (scancode & 0x80) {
    5238           break; /* toss key releases ... */
     5234        break; /* toss key releases ... */
    52395235      }
    52405236      if (scancode > MAX_SCAN_CODE) {
     
    54235419      if (!VBOX_IS_SCSI_DEVICE(device))
    54245420#endif
    5425         ata_reset (device);
     5421      ata_reset (device);
    54265422      goto int13_success;
    54275423      break;
     
    60966092
    60976093        mov ah, #0x52
    6098         int 15
     6094        int #0x15
    60996095        mov _int13_cdrom.status + 2[bp], ah
    61006096        jnc int13_cdrom_rme_end
     
    71657161    if (hd_type != 0x0f)
    71667162      BX_INFO(panic_msg_reg12h,1);
    7167     hd_type = inb_cmos(0x1a); // HD0: extended type
     7163    hd_type = inb_cmos(0x1a); // HD1: extended type
    71687164    if (hd_type != 47)
    71697165      BX_INFO(panic_msg_reg19h,0,0x1a);
     
    71847180#endif //else BX_USE_ATADRV
    71857181
     7182#if BX_SUPPORT_FLOPPY
    71867183
    71877184//////////////////////
     
    74647461}
    74657462
    7466 #if BX_SUPPORT_FLOPPY
    74677463  void
    74687464int13_diskette_function(DS, ES, DI, SI, BP, ELDX, BX, DX, CX, AX, IP, CS, FLAGS)
     
    87648760      } else if (regs.u.r8.bl == 0x86) {
    87658761        if (regs.u.r8.al == 0x02) {
    8766         BX_INFO("PCI device %04x:%04x not found at index %d\n", regs.u.r16.dx, regs.u.r16.cx, regs.u.r16.si);
     8762          BX_INFO("PCI device %04x:%04x not found at index %d\n", regs.u.r16.dx, regs.u.r16.cx, regs.u.r16.si);
    87678763        } else {
    8768         BX_INFO("no PCI device with class code 0x%02x%04x found at index %d\n", regs.u.r8.cl, regs.u.r16.dx, regs.u.r16.si);
     8764          BX_INFO("no PCI device with class code 0x%02x%04x found at index %d\n", regs.u.r8.cl, regs.u.r16.dx, regs.u.r16.si);
    87698765        }
    87708766      }
     
    90709066  iret
    90719067
    9072 
    90739068;----------
    90749069;- INT18h -
     
    91039098
    91049099  ;; int19 was beginning to be really complex, so now it
    9105   ;; just calls an C function, that does the work
     9100  ;; just calls a C function that does the work
    91069101  ;; it returns in BL the boot drive, and in AX the boot segment
    91079102  ;; the boot segment will be 0x0000 if something has failed
     
    97179712  pop   ax
    97189713  iret
     9714
    97199715
    97209716;--------------------
     
    1078510781  mov  ax, #0x8080
    1078610782  out  dx, ax ;; reset PIRQ route control
    10787   inc  dx
    10788   inc  dx
     10783  add  dx, #2
    1078910784  out  dx, ax
    1079010785  mov  ax, [si+6]
     
    1086310858  pop  ds
    1086410859  ret
    10865 #endif // BX_ROMBIOS32
     10860#endif // !BX_ROMBIOS32
    1086610861#endif // BX_PCIBIOS
    1086710862
     
    1097510970  dw 0xffff, 0, 0x9b0f, 0x0000 ; 16 bit code segment base=0xf0000 limit=0xffff
    1097610971  dw 0xffff, 0, 0x9300, 0x0000 ; 16 bit data segment base=0x0 limit=0xffff
    10977 #endif
     10972#endif // BX_ROMBIOS32
    1097810973
    1097910974
     
    1124511240post_default_ints:
    1124611241  mov  [bx], ax
    11247   inc  bx
    11248   inc  bx
     11242  add  bx, #2
    1124911243  mov  [bx], dx
    11250   inc  bx
    11251   inc  bx
     11244  add  bx, #2
    1125211245  loop post_default_ints
    1125311246
     
    1147411467  sti        ;; enable interrupts
    1147511468  int  #0x19
    11476 
    1147711469
    1147811470.org 0xe2c3 ; NMI Handler Entry Point
     
    1170811700  jmp int09_done
    1170911701
    11710 int09_check_pause:  ;; check for pause key
     11702int09_check_pause: ;; check for pause key
    1171111703  cmp  al, #0xe1
    1171211704  jne int09_process_key
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette