Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Peter Norton Programmer's Guide - Norton Guide http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]

  The original IBM PC ROM BIOS offered only six different disk services. As
  the diskette and fixed-disk subsystems of the PC and PS/2 family have
  become increasingly sophisticated, the number of ROM BIOS services that
  support disk I/O has increased. To keep the ROM BIOS software modular and
  flexible, IBM separated the support routines for fixed-disk subsystems
  from the diskette support routines. Nevertheless, the number of BIOS disk
  services has grown from six on the original IBM PC to 22 in the PS/2s.
  (See Figure 10-1.)

  All ROM BIOS disk services are invoked with interrupt 13H (decimal 19) and
  selected by loading the service number into the AH register. Disk drives
  are identified by a zero-based number passed in DL, with the high-order
  bit set to 1 to indicate a fixed disk. Thus the first diskette drive in
  the computer is identified by drive number 00H, and the first fixed disk
  is designated by drive number 80H.

  The ROM BIOS uses a set of descriptive parameter tables called disk-base
  tables to gain information about the capabilities of the disk controller
  hardware and the disk media. The ROM BIOS maintains the segmented
  addresses of the disk-base tables it uses in interrupt vectors: The
  address of the table for the current diskette drive is in the interrupt
  1EH vector (0000:0074H); addresses of tables for the first and second
  fixed drives are in interrupt vectors 41H (0000:0104H) and 46H
  (0000:0118H).

  For most programmers, the disk-base tables are an invisible part of the
  disk services. However, some disk-base parameters may occasionally need to
  be changed for special purposes. For this reason we include a brief
  description of the disk-base table toward the end of this chapter.

  The following sections describe each of the ROM BIOS services.


  Service     Description                          Diskette     Fixed Disk
  --------------------------------------------------------------------------
  00H         Reset Disk System.                  x            x
  01H         Get Disk Status.                    x            x
  02H         Read Disk Sectors.                  x            x
  03H         Write Disk Sectors.                 x            x
  04H         Verify Disk Sectors.                x            x
  05H         Format Disk Track.                  x            x
  06H         Format PC/XT Fixed-Disk Track.                   x
  07H         Format PC/XT Fixed Disk.                         x
  08H         Get Disk-Drive Parameters.          x            x
  09H         Initialize Fixed-Disk Parameter                   x
              Tables.
  0AH         Read Long.                                       x
  0BH         Write Long.                                      x
  0CH         Seek to Cylinder.                                x
  0DH         Alternate Fixed-Disk Reset.                      x
  10H         Test for Drive Ready.                            x
  11H         Recalibrate Drive.                               x
  15H         Get Disk Type.                      x            x
  16H         Get Diskette Change Status.         x
  17H         Set Diskette Type.                  x
  18H         Set Media Type for Format.          x
  19H         Park Heads.                                      x
  1AH         Format ESDI Unit.                                x
  --------------------------------------------------------------------------


  Figure 10-1.  The ROM BIOS disk services.

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson