When I was in college, software was considered unpatentable, because a software program is an algorithm, and algorithms were unpatentable because they are essentially a "law of nature" or "scientific discovery". At some point the law changed to accept "business method" patents (which led to the "with a computer" patents). Imagine if someone had patented the concept of "an interrupt" or "DMA" or "UART", how everything would be completely incompatible - or there would be a small handful of oligarchies running hardware just as they do software. Oddly enough, at the same time as software patents were being enforced, Intel lost its case that its 8080 instruction set was patentable; the finding split the difference between the DESCRIPTION of the instruction set and the IMPLEMENTATION. So direct cloning of an x86 chip would be prohibited, but making a new chip that implemented the same instruction set (and a few more besides) allowed Zilog to make the Z80 just slightly better than - and upwardly compatible with - the 8080. This begat CP/M, which begat the personal computer industry, which was brilliantly co-opted by the IBM Personal Computer (note the capital letters, that makes it COMPLETELY different). And then in turn IBM lost control of the "IBM-compatible" computer market, which at this point is defined by the motherboard specification from the *software* company.