The original intent of the BIOS on PC compatible computers was to be a simple hardware abstraction layer to assure the operating system that no matter what strange hardware was installed in a PC there would be some uniform minimum functionality available so that the operating system (usually PC-DOS at the time) and application software could perform basic tasks in a hardware independent manner.
At the time this was a very solid design decision, as it allowed DOS to leave all low-level disk operations to the BIOS. When the IBM AT came out and the standard entry level hard disk controller moved from RLL to IDE there was very little adjustment to be done on the operating system and application levels because the new controllers came with a ROM chip containing a new set of BIOS services that presented the same software interface (or API if you wish) to the OS and apps despite the fact that the computer addressed the new controller through a totally different protocol.
The basic interfaces provided by the BIOS of your PC/AT compatible system were the following:
Secondary Storage (tapes and floppies, later hard disks as well):
- I/O ports: (Serial, Parallel)
- Keyboard Input
- Video Mode Control
- Cursor Positioning
- Beeping the Speaker
The system became outdated at some point and began to unravel as people started to outgrow the BIOS designers wildest guesses as to what a PC could be used for. For example Sysops outfitted their BBS machines with four port serial boards that overran the number of devices provided for by the BIOS calls. As CPUs advanced to provide memory protection, flat addressing, and multithreading the old Real Mode device drivers provided by the BIOS became less useful and the basic role of the BIOS became that of a rudimentary bootstrap loader with the main task of initializing all the peripherals and then loading the kernel of the OS, which will contain faster, more feature-packed Protected Mode drivers for any installed hardware.