Post by mike
Change the keyboard. Does it still work?
Change the display. Does it still work?
Change the ram quantity and format. Does it still work?
Change the CD hardware. Does it still work?
Load the CD into a PC with a CPU by a different vendor.
Does it still work?
See a pattern here?
Looks like modular and standardized to me.
I concede that memtest86+ is a program that actually
tests the memory and reports the results thru the "OS"
onto the display. If you unplug the BIOS chip, the
memory doesn't get tested. No pattern of bits on the
CD will fix that.
If I had a JIT compiler, to generate a "program" for your
set of hardware, I could cover off those variations.
When I wrote code for the computer I built, do you
think there were any "drivers" ? There was no ring0 and
ring3 (processor didn't support it). All I had to do was
go to certain magic addresses and write to registers
to make things happen. That's because everything I did
on the machine, was a monolithic program containing
all of the knowledge needed to make it work.
Video cards have a "config ROM" on them, it's executable
code, and it brings the card into alignment with a VESA
standard (a frame buffer at a known address, or with
address pointers stored in a standard place). That's an example
of distributing the "program" design, such that the code
I'd need to write on my end, simply makes a call to whatever
the VESA code had set up. The VESA standard has no BITBLT,
no 2D or 3D acceleration, and gives just enough capability
so you can draw on a screen.
THe CRT5027 in my system, was very similar to that. No acceleration,
Just a frame buffer. And when writing to it, all the
locations needed were fixed for the duration of any
code running at the time.
When I did an Ethernet card at work, it was an "intelligent"
card and had its own processor. Well, how much of an OS
did that have ? None at all. It had 3KB of code, a polling
loop (looked for the command flag incoming), and it had
one level of interrupts. If a packet showed up on the
network, the processor would take a FIRQ and the incoming
packet could then be handled.
You can build fixed-function things without a lot of fuss.
And they can actually be made to do useful things.