OSDev.org

The Place to Start for Operating System Developers
It is currently Thu Mar 30, 2017 4:44 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: Is there a good reference or book for modern BIOS?
PostPosted: Fri Dec 30, 2016 8:34 am 
Offline
Member
Member
User avatar

Joined: Tue Mar 06, 2007 11:17 am
Posts: 867
I would like to find a modern reference or book which talks about the BIOS for newer machines.

Specifically I would like to know where the information of things like INT 15h, AX=E820h to get the system memory map, came from.

I have the second edition of the PS/2 - EISA PC BIOS/ABIOS/CBIOS manuals from Phoenix (1991), but they don't have anything about that service.

I have only found it in the wiki, in the Ralf Brown's Interrupt List, at http://www.uruk.org/orig-grub/mem64mb.html, at Wikipedia, but I would prefer the book or document it originally came from. It would also contain several other important things.

The original wiki entry was written by Bewing on May 14 2008:
http://wiki.osdev.org/index.php?title=Memory_Map_(x86)&action=history

The wiki says that this service became standard since around 2002, so I would probably need to know which references or books contain a full BIOS specification for newer machines like that service, to get it.

It's also described very clearly in the file ACPIspec40a.pdf, April 5, 2010, from the end of page 477 (download):
http://www.acpi.info/DOWNLOADS/ACPIspec40a.pdf

_________________
Image http://www.archefire.org/_PROJECTS_/

YouTube Development Videos:
http://www.youtube.com/user/AltComp126/videos

If my website doesn't work, please reload until the webpages can display. My server is really slow.


Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Fri Dec 30, 2016 10:37 am 
Offline
Member
Member

Joined: Mon Mar 25, 2013 7:01 pm
Posts: 1014
The E820 memory map function is part of ACPI and defined in the ACPI specification.

There is no such thing as a full BIOS specification. Different functions are defined by different standards.


Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Fri Dec 30, 2016 11:59 am 
Offline
Member
Member
User avatar

Joined: Fri Oct 27, 2006 9:42 am
Posts: 686
Location: Athens, GA
Also, most machines made in the past five years don't use the older-style BIOS at all, but instead implement UEFI. While UEFI is a BIOS in the generic sense (that is, a set of hardwired firmware routines providing the basic I/O operations necessary for a system to boot a more elaborate system read from some other medium - the term predates the IBM PC by at least a decade), it is not at all the same as the classic PC BIOS.

_________________
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
μή εἶναι βασιλικήν ἀτραπόν ἐπί γεωμετρίαν
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.


Last edited by Schol-R-LEA on Fri Dec 30, 2016 12:06 pm, edited 3 times in total.

Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Fri Dec 30, 2016 11:59 am 
Offline
Member
Member
User avatar

Joined: Fri Mar 07, 2008 5:36 pm
Posts: 2049
Location: Bucharest, Romania
Newer machines use UEFI rather than BIOS, even if there is often a backwards compatibility mode for running old operating systems. The UEFI specification can be found here (as well as the ACPI one).

As for the legacy BIOS, the general approach was to follow into IBM's footsteps even if you'll find all sorts of different variations, extensions, missing/broken features from vendor to vendor. The IBM stuff can generally be found in the Personal Computer Standard 2.0 and a few other manuals.

I won't provide any links here because I'm on my phone but there are a few specifications you might be interested in---they are off the top of my head so I'm probably going to miss some. There is the BIOS Boot Specification, the Enhanced Disk Drive Specification (I've noticed the T13 committee also tried standardizing the MBR in an annex of the EDD-4 drafts but I doubt anyone will bother standardizing BIOS things any longer), the PCI Firmware Specification, the ACPI specification, the MultiProcessor specification, the PnP BIOS specification, the BIOS 32-bit Service Directory Proposal, the VBE specifications of which VBE/Core is the more relevant, the PXE specification, the less important DMI and SMBIOS specifications and things related to them, and I vaguely remember a specification that defined the I/O ports. There are also all sorts of side specifications you might be interested in, such as El Torito, etc.

_________________
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]


Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Fri Dec 30, 2016 4:19 pm 
Offline
Member
Member
User avatar

Joined: Tue Mar 06, 2007 11:17 am
Posts: 867
Octocontrabass wrote:
The E820 memory map function is part of ACPI and defined in the ACPI specification.

There is no such thing as a full BIOS specification. Different functions are defined by different standards.
There is a full BIOS specification for EISA and PS/2 PCs from 1989-1991. It's from Phoenix but obviously it was created, defined and implemented by all PC vendors:

System BIOS for IBM PCs, Compatibles, and EISA Computers (2nd Edition)
https://www.amazon.com/System-BIOS-Compatibles-EISA-Computers/dp/0201577607/ref=sr_1_5?ie=UTF8&qid=1483135768&sr=8-5&keywords=bios+phoenix+edition

https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=System+BIOS+for+IBM+PCs%2C+Compatibles%2C+and+EISA+Computers&rh=i%3Aaps%2Ck%3ASystem+BIOS+for+IBM+PCs%5Cc+Compatibles%5Cc+and+EISA+Computers


CBIOS for IBM(R) PS/2(R) Computers and Compatibles: The Complete Guide to ROM-based System Software for DOS
https://www.amazon.com/CBIOS-IBM-Computers-Compatibles-ROM-based/dp/020151804X/ref=sr_1_1?ie=UTF8&qid=1483135808&sr=8-1&keywords=020151804X

https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=CBIOS+for+IBM(R)+PS%2F2(R)+Computers+and+Compatibles+second+edition&rh=i%3Aaps%2Ck%3ACBIOS+for+IBM(R)+PS%2F2(R)+Computers+and+Compatibles+second+edition


ABIOS for IBM(R) PS/2(R) Computers and Compatibles: The Complete Guide to ROM-Based System Software for OS/2(R)
https://www.amazon.com/ABIOS-IBM-Computers-Compatibles-ROM-Based/dp/0201518058/ref=sr_1_1?ie=UTF8&qid=1483135918&sr=8-1&keywords=0201518058


It Is a full standard, although for the base standard PCs as defined from the EISA and PS/2 times. It's still useful.

_________________
Image http://www.archefire.org/_PROJECTS_/

YouTube Development Videos:
http://www.youtube.com/user/AltComp126/videos

If my website doesn't work, please reload until the webpages can display. My server is really slow.


Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Fri Dec 30, 2016 6:01 pm 
Offline
Member
Member

Joined: Mon Mar 25, 2013 7:01 pm
Posts: 1014
Those are reference manuals for Phoenix's implementation of the various BIOS standards. Those are not the standards that define BIOS functionality.


Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Fri Dec 30, 2016 10:18 pm 
Offline
Member
Member
User avatar

Joined: Tue Mar 06, 2007 11:17 am
Posts: 867
I happen to have bought the 3 of those volumes, and they indeed talk about everything any classical and standard BIOS implements.

It talks about all BIOS fields and services in the greatest detail. It looks like the Intel manuals.

Phoenix published those manuals, but they talk about features that every BIOS has implemented.

But it covers machines up to 1991, it probably reaches 486 and the oldest Pentiums. That means that it doesn't cover newer things like memory services or the A20 service AX=2403h for INT 15h. That one must be a newer service too.

But those 3 book volumes are extremely dense. They are vital for trying to implement something like a BIOS for an emulator with a backwards compatible motherboard.

They talk about every aspect and service of a classical BIOS, the fully standard base, not just for Phoenix BIOSes in any way. They aren't obsolete as you won't get far without knowing what they contain, it's just that if you want to know about the newest BIOS services you will need an updated BIOS reference for the whole specification, or else we just have the wiki, Wikipedia, Ralf Brown's Interrupt List, Bios Central, and a lot of random pages, but not a nicely published BIOS programming reference as in previous PC generations.

Hence my question asking for such a book, digital or printed.

_________________
Image http://www.archefire.org/_PROJECTS_/

YouTube Development Videos:
http://www.youtube.com/user/AltComp126/videos

If my website doesn't work, please reload until the webpages can display. My server is really slow.


Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Sat Dec 31, 2016 1:13 am 
Offline
Member
Member

Joined: Mon Mar 25, 2013 7:01 pm
Posts: 1014
~ wrote:
That means that it doesn't cover newer things like memory services or the A20 service AX=2403h for INT 15h. That one must be a newer service too.

Or it might be one Phoenix never implemented.

~ wrote:
They talk about every aspect and service of a classical BIOS, the fully standard base, not just for Phoenix BIOSes in any way.

Do they happen to explain the detection method and calling conventions for 32-bit EISA functions?

~ wrote:
but not a nicely published BIOS programming reference as in previous PC generations.

The target audience for those books is DOS programmers. There are no more DOS programmers, which means there's not enough demand for anyone to publish a new BIOS reference.


Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Sat Dec 31, 2016 8:39 am 
Offline
Member
Member
User avatar

Joined: Tue Mar 06, 2007 11:17 am
Posts: 867
I will upload these volumes and the rest of my (really old, rare, out of print) computer books and documents to the Archive.org (books mostly from the 90's, 80's and earlier, and a minority of books from early 2000's).

Also look for:
http://www.mcamafia.de/

Octocontrabass wrote:
~ wrote:
That means that it doesn't cover newer things like memory services or the A20 service AX=2403h for INT 15h. That one must be a newer service too.

Or it might be one Phoenix never implemented.
It looks like it was from a time where using the KBC was the easiest way to enable the A20 line. As I said, these manuals are like the base of an 8088 BIOS but updated to be compatible with the 386 and EISA, as well as provide an ABIOS specification for OS/2 compatible with protected mode and multitasking, which could still be very useful to implement an OS layer for handling those devices at a low level.

Octocontrabass wrote:
~ wrote:
They talk about every aspect and service of a classical BIOS, the fully standard base, not just for Phoenix BIOSes in any way.

Do they happen to explain the detection method and calling conventions for 32-bit EISA functions?
The EISA bus is the 32-bit version of the ISA bus. The first volume (System BIOS) talks about using it and all 3 volumes assume EISA throughout the text.

It's apparently one step behind Plug and Play, so those services would also depend on the ROMs of the cards installed, like the video BIOS, as we have already proven.

You can see a newer 77-page Phoenix BIOS programming reference here, which already includes Plug and Play. This one also talks about the memory map service E820h and EISA services like reading configuration. It's like an update to those manuals, so it really looks like an appendix from them (download):
http://www.msc-technologies.eu/fileadmin/documentpool/Support-Center/Archive/70-PISA/PISA-P/02-Manual/BIOS%20Programmer's%20Guide%20v10.pdf?file=&ref=

All BIOS manuals state that we need the EISA specifications too, for which they are not responsible.

The ABIOS volume talks about the 386 CPUs apparently up to 386SX, as well as the math coprocessor. Talks about enabling and disabling protected mode, and A20, using NMI, it has I/O tables for standard motherboard devices. It has ABIOS API calls for all those standard devices with no exception. It talks about everything you would expect a classical OS development site like OSDever.net or OSDev.org would have, maybe not newer things, but things from PS/2 and EISA machines.

Octocontrabass wrote:
Quote:
~ wrote:
but not a nicely published BIOS programming reference as in previous PC generations.

The target audience for those books is DOS programmers. There are no more DOS programmers, which means there's not enough demand for anyone to publish a new BIOS reference.
DOS is just a BIOS interface with integrated command line, a bootloader and a set of OS APIs.

There are lots of DOS programmers everywhere. There are things like games that you can implement in DOS with an emulator like DOSBox, Bochs or even VirtualBox Portable. Then you can add anything you want to it.

Making DOS a truly viable multimedia system again only takes implementing fully capable hardware that you know how to program and that is compatible at its base with old but good standards like Sound Blaster/MIDI/OPL3 sound synthesizing, high resolution standard VGA with at least 640x480x256. Then the hardware would again be standard and ship with all functions onboard, without using any drivers, and DOS (as well as the rest of tiny and custom OSes like the ones we see around here) will just need to make use of standard hardware and software functions.

That's why I'm still trying to see how to implement a PCI sound card with Sound Blaster implemented (up to 32-bit waves, MIDI, OPL3 for which I plan to use as many existing chips as there are for those functions, and then emulate in some onboard lightweight processor). Then I need a network card and some graphics card or chip that could be used for that with VGA and newer, then a whole motherboard. With only standard PCI sound and network added to any PC, or USB equivalents for laptops, we would have a gaming console in our hands from a PC, and using FreeDOS would be enough to start up the machine with a minimal OS, and from there launch our game, multimedia application, or our own OS.

DOS is just good compact software for a machine that packed more and more processing power and standard multimedia capabilities everyone knew about how to program, and that made use of an untold number of hacks in all programs. That can never die, but can be reimplemented.

_________________
Image http://www.archefire.org/_PROJECTS_/

YouTube Development Videos:
http://www.youtube.com/user/AltComp126/videos

If my website doesn't work, please reload until the webpages can display. My server is really slow.


Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Sat Dec 31, 2016 12:26 pm 
Offline
Member
Member
User avatar

Joined: Fri Oct 27, 2006 9:42 am
Posts: 686
Location: Athens, GA
~ wrote:
Octocontrabass wrote:
~ wrote:
They talk about every aspect and service of a classical BIOS, the fully standard base, not just for Phoenix BIOSes in any way.

Do they happen to explain the detection method and calling conventions for 32-bit EISA functions?
The EISA bus is the 32-bit version of the ISA bus. The first volume (System BIOS) talks about using it and all 3 volumes assume EISA throughout the text.

It's apparently one step behind Plug and Play, so those services would also depend on the ROMs of the cards installed, like the video BIOS, as we have already proven.


Have fun trying to find one of the half-dozen or so EISA motherboards that were actually produced between 1989 and 1992. They were never common (mainly seeing use in office LAN servers), and by 1992, were already too slow for use as a bus for the new accelerated video cards that were coming on the market, hence the development of VLB, AGP, and PCI.

EISA was introduced as an alternative to licensing MCA from IBM, but neither of them really caught on, as the need for a faster bus really wasn't there at the time - the important bottlenecks were elsewhere.

When Big Blue announced the PS/2 line in early 1987, they made no bones about it being an attempt to re-rail their control over the PC market, which they'd lost after the flood of clones that followed in the wake of Compaq's legal victories in 1983-85. While the new bus design, Micro-Channel Architecture, was genuinely superior, it was mostly a solution in search of a problem - the lack of a suitable operating system was a much more serious stumbling block than the lack of a 32-bit bus was, especially since most MCA systems were actually 16-bit (the 386 systems were only for the very top-end systems), and the history of how IBM bobbled the development and release of OS/2 (and the subsequent rise of Windows) meant it would remain a problem for almost six more years - and more importantly, was completely proprietary, with several patented technologies required to implement both the bus and the interface cards. IBM basically was saying, "sure, we'll let you build clones if you license the design from us first", but then charged so much in per-unit royalties that it would have priced their competition out of business.

A few companies (most notably Tandy-Radio Shack) did license MCA for a few models, but most of the clone builders told IBM to get lost. Still, it left them without a standard 32-bit bus, which if nothing else looked bad, even if the need for it really wasn't there yet. A few played around with NuBus, an existing standard originally meant for LispMs which both Apple and NeXT had already adopted. I think some even tried to back a 32-bit extension of the S-100 bus, bypassing the PC design completely, but I'm not sure. But most followed Compaq's lead on EISA.

Compaq had already designed a 32-bit extension of the ISA bus for their Deskpro 386 memory boards even before the PS/2 line were announced, and in 1988 offered to use that as the basis for an 'standard' extended bus. A number of other companies joined in, but given that most of the clone makers were still selling XT class systems (and would continue to for the next three years), it really didn't make much of splash in the marketplace. In the end, only a few companies made EISA motherboards, and almost no EISA cards were released.

Interestingly, the first step in developing the "Enhanced Industry Standard Architecture" was to develop an "Industry Standard Architecture" in the first place. The term "ISA" was back-developed from the name of EISA, as there hadn't been a formal standard for the PC-compatible bus up to that point. But it all turned out to be a fruitless effort, as events unfolded in unexpected ways that put an end to ISA and EISA even before the standard was officially ratified.

By 1992, the rise of VESA Local Bus and the Acelerated Graphics Port had put an end to the development of EISA video cards, and the next year, a new local bus standard, Peripheral Component Interconnect, was released. PCI was a new design from the ground up, with few similarities to any of the earlier bus architectures (while you could have a gateway to allow ISA and EISA slots on the same motherboard, those were only used for the first few years while new PCI cards got developed), and the combination of PCI and AGP quickly pushed everything else out of the market completely until both were in turn replaced by PCI Express around 2005.

On a similar note, AFAIK, the ABIOS was only used on the MCA systems, and even IBM had dropped support of it by the early 1990s.

_________________
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
μή εἶναι βασιλικήν ἀτραπόν ἐπί γεωμετρίαν
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.


Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Sat Dec 31, 2016 1:00 pm 
Offline
Member
Member
User avatar

Joined: Fri Oct 27, 2006 9:42 am
Posts: 686
Location: Athens, GA
~: I still don't really see what your goals here are. I know you have explained bits and piece of them over the past several months, but I still don't have a coherent picture of your position.

Also, you seem to think that there is this huge backlog of still-usable old PCs out there, waiting to be tapped, and that there are vast amounts of older DOS games that go with them. Neither of these is true.

From the release of the Altair 8800 in 1975 to the release of the iPhone in 2007, the home computer market was on a trajectory that paralleled Moore's Law: the number of home computers sold in a given 18-24 month period was roughly equal to the number of units sold in all the previous years combined. This slowed down drastically with the introduction of smartphones (the PC market was already starting to reach saturation anyway, and a $400 smartphone could do maybe 90% of what the average consumer would have bought a $900 desktop or laptop for), but new sales for each year would still be on par with those of the previous year to this day. Those sales figures are dwarfed by those for smartphones and tablets, but still pretty high.

This means that, among other things, there are far more systems around today from 2000-2004 than there are from 1992-1996 (which was the heyday of MS-DOS video games, and DOS extenders in general), and at least three times as many have been sold since 2004 as were sold before or during 2004 - and that's just the sales figures, before we take into account that many older systems are no longer functional.

As for MS-DOS games, well, the truth is PCs were never the main gaming platform, and are probably more widely used for gaming today than they have ever been before. Before the widespread use of VGA starting around 1992 (it had been introduced in 1987, with the PS/2s, but ISA and EISA VGA-compatible cards weren't readily available until 1990, and the price was really high at first), PCs were mostly used in offices - if you wanted a home computer, you got a Mac, an Amiga, an Atari ST, or one of the 8-bit systems such as the Apple II or the Commodore 64 (both of whom were still viable systems in the late 1980s; it wasn't until 1995 that the used computer store I was working for stopped selling Apple IIe systems - and they still had customers coming in for replacement parts after even that).

While there were plenty of games written for PC, most were ports of games from other systems (even Leisure Suit Larry came out on the Apple II first, IIRC), and if you ran them in CGA, they often looked terrible - EGA looked better, but most PCs didn't have EGA. A lot of PCs sold with monochrome-only cards (MDA for text-only, or Hercules for hi-res mono graphics) and most PC monitors were black & green or black & amber mono even in 1988.

Most gamers didn't have a computer at all, though; they had Nintendo. Most people still hadn't ever used a PC, never mind owned one.

Even in the break-out years for PC gaming (1992-1996), the number of video games that were designed for MS-DOS with a 32-bit extender wasn't that large, it is just that certain titles - such as Wolfenstein 3D, the original DOOM, Quake I, Duke Nuke'm 3D, Command and Conquer, the first two Warcraft titles - were so significant that it seems larger. These games didn't use DOS because it was better than Windows, but because Windows itself was a DOS extender (and not one suited for games). Later, when the first two stand-alone Windows versions came out (NT 3.51, which was actually a different OS made to look like the existing Windows 3.1, followed by Win95, which was just another DOS extender but with the two permanently fused together so you couldn't easily boot DOS directly) it didn't have any support for accelerated graphics to speak of so they had to keep using DOS mode until WinG and DirectX came out. No one chose MS-DOS, or really any OS at the time for that matter - you used what was there, or else distributed the game as self-booting. There were other OSes for PCs, sure, including BSD386 and the very earliest versions of Linux, but their market share was even smaller than Linux's is today - and most of them had no graphical capabilities to speak of.

_________________
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
μή εἶναι βασιλικήν ἀτραπόν ἐπί γεωμετρίαν
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.


Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Sat Dec 31, 2016 2:57 pm 
Offline
Member
Member
User avatar

Joined: Tue Mar 06, 2007 11:17 am
Posts: 867
This is what I was thinking in this topic:

- I was curious about where all the information like the E820h service came from. Apparently it's from people who read the standards linked in this topic and many other books or specification files, source code, etc., and they just passed bits of that information elsewhere in individual topics, including the different OS development websites.

- Information about CPUs, base hardware and the BIOS, and OSes in general, feels much more understandable when presented in full specifications that are well explained (like those from the BIOS and Intel CPUs). Then there come tutorials, source code and things like wiki, which take bits of that information and put it in more discrete, or minor topics, instead of also presenting the whole body or pointing to the standards repeatedly in the tutorial text to make it clear from the beginning that the standards for the base stuff of each area seen in practice an at full are the best way to understand those topics.

- I'm trying to figure out how to implement PCI devices. I need to start by implementing a Sound Blaster clone that includes the most extended features and all sound quality modes (8, 16, 32-bit), and I need to find how to do things like interfacing a DAC, the OPL3 chip and its DAC, with an FPGA like a Dragon board (and a way to build the final cards to distribute the schematics, firmware and sell some standard PCI sound cards) and find or emulate an EMU8000 chip. Later (maybe much later or some time later) I plan to implement a fast network card but that implements maybe a NE2000, a Realtek, or another fully standard network card. I will try to mainly study how to do that for the next 2 years. I have some help in my house to achieve and understand this, but I have to assume that it won't be easy. I need to create a standard card for which I can easily port the logic of the board as time passes by and as chips are really phased out, without losing synthesized instruments, MIDI or the rest of stuff a Sound Blaster has. From there, I could add other audio modes like AC'97 and Intel sound, but there would always be a full Sound Blaster in that card, which would require no drivers.

- With at least sound cad and even more with a network card that anyone knew how to program, that anyone could build and that I and others could also sell, the PC would immediately become a valid gaming console with sound, graphics and network thanks to open hardware devices that currently don't exist. Now anyone could make self-bootable games that don't require Windows or any OS. And you are right about games being self-sustainable, given that the hardware is standard for a generation of games for the same console (the PC in this case). But also DOS would again have direct driverless access to proper sound functions, and also I will always prefer to use DOS as the base boot loader, even if it and the BIOS need to be ported to 64-bit systems natively. Now we would get multimedia (at the very least VESA and hardware Sound Blaster) for new and old games.

- The other thing that needs to be done is a set of OS-less libraries that implement, first the different driver subsystems (for Windows 9x, NT and Linux). Other libraries for multitasking and the usual OS APIs. But the critical thing here is to port the driver subsystems to a platform-independent library.Then it can provide Windows and Linux drivers for DOS (or self-bootable games) and for the rest of OSes interchangeably. It would also make modern hardware readily available to tiny custom OSes, using the default Windows and Linux drivers and implementing that library with multiple driver subsystems, to load them and forget about reverse engineering an infinite number of low quality hardware devices. Better learn to implement PCI, PCIe and USB devices and their drivers fully. For that it's necessary to learn to choose the actual chips, even some time get to implement the whole motherboard with existing electronics and integrated circuits. The hardware could use any chips internally but it would need more or less emulation depending on the chips available and the features we want to keep, for which we would need onboard emulation. The cards need to be standard and always comply fully with all of the standards, new and old, that were once useful worldwide and for which there's still an important number of software. If there's ever some sort of driver used, it should only be used to identify the device, to select between the different standards implemented in the card, and as glue code for the OS or program.

_________________
Image http://www.archefire.org/_PROJECTS_/

YouTube Development Videos:
http://www.youtube.com/user/AltComp126/videos

If my website doesn't work, please reload until the webpages can display. My server is really slow.


Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Sun Jan 01, 2017 11:26 am 
Offline
Member
Member
User avatar

Joined: Fri Mar 07, 2008 5:36 pm
Posts: 2049
Location: Bucharest, Romania
I think you are using the term "standard" too lightly here. Most of the things you've mentioned here (the standard BIOS API, a standard sound card, standard NICs) aren't standard at all. They are more like customs that have some degree of compatibility between them. No one ever got together to form standards bodies for these things and thus you'll find a lot of variations. It's pretty much a guarantee that there are features in the manuals you have that will only work on Phoenix BIOSes because they are either not supported or do something different on other vendors' BIOSes. And the same goes for all other vendors; that's why they all had to release manuals in the first place (after all, there's a reason C compiler vendors don't describe the standard C language in their manuals---it's already documented elsewhere).

The best advice is to be conservative. Use as little of the firmware you can to get the job done and have your OS handle things from that point on.

_________________
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]


Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Fri Feb 10, 2017 11:35 pm 
Offline
Member
Member
User avatar

Joined: Tue Mar 06, 2007 11:17 am
Posts: 867
Octocontrabass wrote:
Those are reference manuals for Phoenix's implementation of the various BIOS standards. Those are not the standards that define BIOS functionality.


I have recently found that the memory map function was originally implemented by Phoenix. AMIBIOS is another, as well as Award BIOS, but it seems that Phoenix has been the most developer-friendly by even publishing BIOS manuals that are indeed valid for any PC.

From Ralf Brown Interupt list:
http://www.ctyme.com/intr/rb-1741.htm#Table581
Quote:
Int 15h/AX=E820h

"Originally introduced with the Phoenix BIOS v4.0, this function is now supported by most newer BIOSes, since various versions of Windows call it to find out about the system memory."

_________________
Image http://www.archefire.org/_PROJECTS_/

YouTube Development Videos:
http://www.youtube.com/user/AltComp126/videos

If my website doesn't work, please reload until the webpages can display. My server is really slow.


Top
 Profile  
 
 Post subject: Re: Is there a good reference or book for modern BIOS?
PostPosted: Mon Feb 13, 2017 2:01 am 
Offline
Member
Member

Joined: Wed Sep 19, 2012 3:43 am
Posts: 53
Location: The Netherlands
These:
~ wrote:
.... that are indeed valid for any PC.

~ wrote:
... this function is now supported by most newer BIOSes

Are in direct contradiction of each other.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next

All times are UTC - 6 hours


Who is online

Users browsing this forum: akasei, Bing [Bot], Google [Bot] and 15 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group