home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / misc_programming / bios.ov < prev    next >
Text File  |  1990-01-04  |  15KB  |  236 lines

  1.                            Chapter  1
  2.  
  3.                           The ROM BIOS
  4.                           ------------
  5.  
  6. 1. Introduction:
  7.  
  8.    a. What is BIOS?
  9.  
  10.     BIOS stands for Basic Input Output System.  It consists of low
  11.     level software routines designed to test the system hardware and 
  12.     bootstrap load the operating system and a group of device drivers
  13.     that service system I/O components, such as the keyboard, video,
  14.     fixed disk drive, diskette drives, real time clock, parallel ports,
  15.     serial ports, and math coprocessor.
  16.  
  17.     BIOS contains systems software that interfaces between the operating
  18.     system and the hardware.
  19.    
  20.     The Acer BIOS is implemented in the motherboard and stored in the ROMs.
  21.  
  22.    b. BIOS Summary of Functions
  23.    
  24.      .  Provides the following I/O service routines:
  25.         - Print screen service prints the contents of the current video 
  26.           screen to a certain printer number.
  27.         - Video service provides I/O support for the MDA, CGA, EGA, and 
  28.           VGA adapters.
  29.         - Memory size service returns the amount of available base memory
  30.           as determined by the POST (power-on self-test) routine.
  31.         - Fixed disk service performs BIOS level read, write, format, 
  32.           initialization and diagnostic functions for up to two fixed disk
  33.           drives.
  34.         - Asynchronous communication service performs RS232C character I/O 
  35.           for IBM compatible serial adapters.
  36.         - System services is composed of several miscellaneous system 
  37.           level- subservices, of which are invoked via the INT 15h mnemonic.
  38.         - Keyboard service interfaces the operating system and application
  39.           programs with the keyboard.
  40.         - Printer service provides I/O support for parallel printer ports.
  41.        
  42.      . Uses information stored in system RAM and uses RAM for storage of 
  43.        data definitions specific to the BIOS.
  44.      . Stores real-time clock, system configuration, system diagnostic and
  45.        other information useful for debugging the system.
  46.      . Contains tabular data used to initialize devices (i.e., pointer to 
  47.        video parameter table, diskette parameter table, fixed disk 
  48.        parameter table, and vector table).
  49.      . Performs POST and initialization functions relating to the system 
  50.        hardware, configuration and non system board hardware.
  51.     
  52. 2. Interrupt Table:
  53.      The following interrupts are initialized by the BIOS to different 
  54.      unexpected interrupt handlers.  The BIOS provides these routines
  55.      to ensure complete BIOS error recovery.
  56.      ┌───────────────┬─────────────────────────────────────────────────┐
  57.      │ Interrupt     │       Function                                  │
  58.      │ Number (hex)  │                                                 │
  59.      ├───────────────┼─────────────────────────────────────────────────┤
  60.      │      0        │ Temporary interrupt                             │
  61.      ├───────────────┼─────────────────────────────────────────────────┤
  62.      │      1        │ Temporary interrupt                             │
  63.      ├───────────────┼─────────────────────────────────────────────────┤
  64.      │      2        │ NMI interrupt service routine                   │
  65.      ├───────────────┼─────────────────────────────────────────────────┤
  66.      │      3        │ Temporary interrupt                             │
  67.      ├───────────────┼─────────────────────────────────────────────────┤
  68.      │      4        │ Temporary interrupt                             │
  69.      ├───────────────┼─────────────────────────────────────────────────┤
  70.      │      5        │ Print screen service routine                    │
  71.      ├───────────────┼─────────────────────────────────────────────────┤
  72.      │      6        │ Temporary interrupt                             │
  73.      ├───────────────┼─────────────────────────────────────────────────┤
  74.      │      7        │ Temporary interrupt                             │
  75.      ├───────────────┼─────────────────────────────────────────────────┤
  76.      │      8        │ System timer (IRQ 0)                            │
  77.      ├───────────────┼─────────────────────────────────────────────────┤
  78.      │      9        │ Keyboard H/W interrupt                          │
  79.      ├───────────────┼─────────────────────────────────────────────────┤
  80.      │      a        │ Temporary interrupt (IRQ 2)                     │
  81.      ├───────────────┼─────────────────────────────────────────────────┤
  82.      │      b        │ Temporary interrupt (IRQ 3)                     │
  83.      ├───────────────┼─────────────────────────────────────────────────┤
  84.      │      c        │ Temporary interrupt (IRQ 4)                     │
  85.      ├───────────────┼─────────────────────────────────────────────────┤
  86.      │      d        │ Temporary interrupt (IRQ 5)                     │
  87.      ├───────────────┼─────────────────────────────────────────────────┤
  88.      │      e        │ Diskette drive interrupt (IRQ 6)                │
  89.      ├───────────────┼─────────────────────────────────────────────────┤
  90.      │      f        │ Temporary interrupt (IRQ 7)                     │
  91.      ├───────────────┼─────────────────────────────────────────────────┤
  92.      │     10        │ Video I/O                                       │
  93.      ├───────────────┼─────────────────────────────────────────────────┤
  94.      │     11        │ Equipment determination                         │
  95.      ├───────────────┼─────────────────────────────────────────────────┤
  96.      │     12        │ Memory size determination                       │
  97.      ├───────────────┼─────────────────────────────────────────────────┤
  98.      │     13        │ Diskette I/O                                    │
  99.      └───────────────┴─────────────────────────────────────────────────┘
  100.  
  101.      ┌───────────────┬─────────────────────────────────────────────────┐
  102.      │ Interrupt     │       Function                                  │
  103.      │ Number (hex)  │                                                 │
  104.      ├───────────────┼─────────────────────────────────────────────────┤
  105.      │     14        │ Asynchronous communications                     │
  106.      ├───────────────┼─────────────────────────────────────────────────┤
  107.      │     15        │ System service routines                         │
  108.      ├───────────────┼─────────────────────────────────────────────────┤
  109.      │     16        │ Keyboard I/O                                    │
  110.      ├───────────────┼─────────────────────────────────────────────────┤
  111.      │     17        │ Printer I/O                                     │
  112.      ├───────────────┼─────────────────────────────────────────────────┤
  113.      │     18        │ BASIC interrupt vector                          │
  114.      ├───────────────┼─────────────────────────────────────────────────┤
  115.      │     19        │ Booting system                                  │
  116.      ├───────────────┼─────────────────────────────────────────────────┤
  117.      │     1a        │ Set/Read Clock                                  │
  118.      ├───────────────┼─────────────────────────────────────────────────┤
  119.      │     1b        │ Control break interrupt (null return)           │
  120.      ├───────────────┼─────────────────────────────────────────────────┤
  121.      │     1c        │ Timer tick (null return)                        │
  122.      ├───────────────┼─────────────────────────────────────────────────┤
  123.      │     1d        │ Pointer to video parameter table                │
  124.      ├───────────────┼─────────────────────────────────────────────────┤
  125.      │     1e        │ Diskette parameter table vector                 │
  126.      ├───────────────┼─────────────────────────────────────────────────┤
  127.      │     1f        │ Graphics character font pointer for modes 4,5,6 │
  128.      ├───────────────┼─────────────────────────────────────────────────┤
  129.      │   21 - 3f     │ Reserved for OS. or other functions             │
  130.      ├───────────────┼─────────────────────────────────────────────────┤
  131.      │     40        │ Diskette I/O (when fixed disk exists)           │
  132.      ├───────────────┼─────────────────────────────────────────────────┤
  133.      │     41        │ Fixed disk 0 parameter table vector             │
  134.      ├───────────────┼─────────────────────────────────────────────────┤
  135.      │     42        │ Reserved                                        │
  136.      ├───────────────┼─────────────────────────────────────────────────┤
  137.      │     43        │ Graphics character font pointer for modes 11,13 │
  138.      ├───────────────┼─────────────────────────────────────────────────┤
  139.      │   44 - 45     │ Reserved                                        │
  140.      ├───────────────┼─────────────────────────────────────────────────┤
  141.      │     46        │ Fixed disk 1 parameter table vector             │
  142.      ├───────────────┼─────────────────────────────────────────────────┤
  143.      │   47 - 49     │ Reserved                                        │
  144.      ├───────────────┼─────────────────────────────────────────────────┤
  145.      │     4a        │ RTC Alarm  (null return)                        │
  146.      ├───────────────┼─────────────────────────────────────────────────┤
  147.      │   4b - 6f     │ Reserved                                        │
  148.      └───────────────┴─────────────────────────────────────────────────┘
  149.  
  150.      ┌───────────────┬─────────────────────────────────────────────────┐
  151.      │ Interrupt     │       Function                                  │
  152.      │ Number (hex)  │                                                 │
  153.      ├───────────────┼─────────────────────────────────────────────────┤
  154.      │     70        │ Hardware real-time clock (IRQ 8)                │
  155.      ├───────────────┼─────────────────────────────────────────────────┤
  156.      │     71        │ Redirect interrupt (IRQ 9)                      │
  157.      ├───────────────┼─────────────────────────────────────────────────┤
  158.      │     72        │ Reserved (IRQ 10)                               │
  159.      ├───────────────┼─────────────────────────────────────────────────┤
  160.      │     73        │ reserved (IRQ 11)                               │
  161.      ├───────────────┼─────────────────────────────────────────────────┤
  162.      │     74        │ Pointing device (IRQ 12)                        │
  163.      ├───────────────┼─────────────────────────────────────────────────┤
  164.      │     75        │ Coprocessor (IRQ 13)                            │
  165.      ├───────────────┼─────────────────────────────────────────────────┤
  166.      │     76        │ Fixed Disk Controller (IRQ 14)                  │
  167.      ├───────────────┼─────────────────────────────────────────────────┤
  168.      │     77        │ Reserved (IRQ 15)                               │
  169.      └───────────────┴─────────────────────────────────────────────────┘
  170.  
  171. 3. BIOS entry point:
  172.  
  173.    Segment : 0F000h
  174.  
  175.      ┌────────────┬────────────────────────────────────────────────────┐
  176.      │   Offset   │            Description                             │
  177.      ├────────────┼────────────────────────────────────────────────────┤
  178.      │   0E00Eh   │     'IBM'                                          │
  179.      ├────────────┼────────────────────────────────────────────────────┤
  180.      │   0E05Bh   │     Start                                          │
  181.      ├────────────┼────────────────────────────────────────────────────┤
  182.      │   0E2C3h   │     INT 02h                                        │
  183.      ├────────────┼────────────────────────────────────────────────────┤
  184.      │   0E6F2h   │     INT 19h                                        │
  185.      ├────────────┼────────────────────────────────────────────────────┤
  186.      │   0E739h   │     INT 14h                                        │
  187.      ├────────────┼────────────────────────────────────────────────────┤
  188.      │   0E82Eh   │     INT 16h                                        │
  189.      ├────────────┼────────────────────────────────────────────────────┤
  190.      │   0E987h   │     INT 09h                                        │
  191.      ├────────────┼────────────────────────────────────────────────────┤
  192.      │   0EC59h   │     INT 13h                                        │
  193.      ├────────────┼────────────────────────────────────────────────────┤
  194.      │   0EF57h   │     INT 0Eh                                        │
  195.      ├────────────┼────────────────────────────────────────────────────┤
  196.      │   0EFC7h   │     INT 1Eh (Diskette base table)                  │
  197.      ├────────────┼────────────────────────────────────────────────────┤
  198.      │   0EFD2h   │     INT 17h                                        │
  199.      ├────────────┼────────────────────────────────────────────────────┤
  200.      │   0F065h   │     INT 10h                                        │
  201.      ├────────────┼────────────────────────────────────────────────────┤
  202.      │   0F0A4h   │     INT 1Dh (Video parameter table)                │
  203.      ├────────────┼────────────────────────────────────────────────────┤
  204.      │   0F841h   │     INT 12h                                        │
  205.      ├────────────┼────────────────────────────────────────────────────┤
  206.      │   0F84Dh   │     INT 11h                                        │
  207.      ├────────────┼────────────────────────────────────────────────────┤
  208.      │   0F859h   │     INT 15h                                        │
  209.      ├────────────┼────────────────────────────────────────────────────┤
  210.      │   0FA66h   │     Setup routine                                  │
  211.      ├────────────┼────────────────────────────────────────────────────┤
  212.      │   0FA6Eh   │     Graphics Pattern                               │
  213.      ├────────────┼────────────────────────────────────────────────────┤
  214.      │   0FE6Eh   │     INT 1Ah                                        │
  215.      ├────────────┼────────────────────────────────────────────────────┤
  216.      │   0FEA5h   │     INT 08h                                        │
  217.      ├────────────┼────────────────────────────────────────────────────┤
  218.      │   0FEF3h   │     Vector table                                   │
  219.      └────────────┴────────────────────────────────────────────────────┘
  220.  
  221.      ┌────────────┬────────────────────────────────────────────────────┐
  222.      │   0FF53h   │     Dummy return                                   │
  223.      ├────────────┼────────────────────────────────────────────────────┤
  224.      │   0FF54h   │     INT 05h                                        │
  225.      ├────────────┼────────────────────────────────────────────────────┤
  226.      │   0FFEEh   │     BIOS checksum                                  │
  227.      ├────────────┼────────────────────────────────────────────────────┤
  228.      │   0FFF0h   │     CPU reset entry                                │
  229.      ├────────────┼────────────────────────────────────────────────────┤
  230.      │   0FFF5h   │     BIOS release date (mm/dd/yy)                   │
  231.      ├────────────┼────────────────────────────────────────────────────┤
  232.      │   0FFFEh   │     Machine model                                  │
  233.      ├────────────┼────────────────────────────────────────────────────┤
  234.      │   0FFFFh   │     Sub machine model                              │
  235.      └────────────┴────────────────────────────────────────────────────┘
  236.