newjerseyrunner said:
A long time ago, there were a handful of manufacturing giants, but the only ones that really mattered for personal computers were Motorola and Intel. IBM was the computer king, they chose to use Intel chips for all of their computers. Apple rose as their competition, who used Motorola chips, so for a long time you had either an "IBM Compatible" or an "Apple" computer. There were no PC/Macs yet.
The IBM PC was released in August 1981, wiki article:
http://en.wikipedia.org/wiki/IBM_Personal_Computer#History
The Macintosh was released in Jan 1984, wiki article:
http://en.wikipedia.org/wiki/Macintosh#History
The earliest (1974) popular home computer was an Altair 8800 kit system, but some companies built the kits and sold ready to run systems, wiki article:
http://en.wikipedia.org/wiki/Altair_8800
Between 1974 and 1981, there were home computer's like Apple II, Atari 8 bit series (400, 800, 65XE, 130XE), Commodore Pet, ... , and for office and office like personal computers, CP/M systems, some based on the S100 bus, wiki article:
http://en.wikipedia.org/wiki/CP/M
The 1981 IBM PC didn't sell that well, but the next versions IBM PC XT, and IBM PC AT, became very popular. Compaq had the first popular PC clone, that was portable as it came in a luggable suitcase like enclosure. By the time the 286 was released, there were many clone makers. When the 386 was released, IBM chose to use it's own micro channel bus (with the PS/2), while the clone makers went with an extended version of the original iSA bus called EISA, and those became the most popular. The transition to PCI bus versions occurred around 1994 (starting in 1991), some for 486's, but mostly with the Pentium and later Intel X86 type processors.
Getting back to the original question, programs don't work on any PC, since most programs also target a specific operating system, dos/windows, unix type systems, or one of the Mac operating systems. As posted before, there's a common part of the instruction set for X86 compatible processors, and programs written to run on any PC with a particular operating system will only use the common instruction set.