copyright
Am I free to use Intel syntax in an Apache/BSD-3 licensed disassembler?
<p><a href="https://github.com/omarandlorraine/strop/" rel="nofollow noreferrer">My project, strop</a>, includes a disassembler for each of the CPUs it supports. One of the CPUs is the KR580VM1, an Intel 8080 derivative from Soviet Ukraine. Like many projects in the Rust ecosystem, strop is dual-licensed, BSD-3 and Apache.</p>
<p>Another Intel 8080 derivative, the Zilog Z80, has a completely different syntax for its assembler. <a href="https://en.wikipedia.org/wiki/Zilog_Z80#New_syntax" rel="nofollow noreferrer">The story goes</a>, that Zilog needed to use a different assembler syntax, even though their CPU was binary compatible with the 8080, due to the fact that Intel had copyrighted the assembler mnemonics.</p>
<p>I get the impression that this kind of legal idiocy did not apply in the USSR, so a KR580VM1 assembler mostly uses the same assembler mnemonics as what Intel came up with. Of course, being an extension to the 8080 instruction set, there are a few more mnemonics beyond the Intel ones.</p>
<p>So the same machine code instruction is called <code>ACI</code> in Intel's documentation and in the KR580VM1 documentation,  but is called <code>ADC</code> in Zilog's documentation. To be clear, these are different names for the same thing, and Intel claims copyright on <code>ACI</code>.</p>
<p>I'm unclear if Zilog really <em>needed</em> to use different mnemonics, or if they were just being cautious. Are  these mnemonics protected by copyright?</p>

<p>17 United States Code, Section 102 must be applied by Intel or any programming company on software, where the law states that any object must be given protection if it meets the following specific condition:</p>
<blockquote>
<p>original works of authorship fixed in any tangible medium of expression, now known or later developed</p>
</blockquote>
<p>Mnemonics are not a <code>tangible medium for expression</code>, if that was the case then Bjarne could have copyrighted the keyword <code>cout</code> or the word <code>print</code> be copyrighted for any new language not to choose.</p>
<p>Another key legal concept that has been invoked in cases involving functional elements of software is the &quot;merger doctrine,&quot; which holds that when there are only a limited number of ways to express a particular idea or function, those expressions merge with the idea or function and are not subject to copyright protection. This concept has been applied in cases involving programming languages and command names, among other things.</p>
<p>Also, a major legal concept is an idea-expression dichotomy, which holds that copyright protects the expression of an idea but not the underlying idea itself. This concept has been invoked in cases involving software APIs like <em>Google v Oracle</em>, where the underlying function or method is seen as an idea rather than an expression and thus not subject to copyright protection.</p>
<p>One notable case is <em>Lotus v Borland</em>, a lawsuit filed by Lotus against Borland in the 1990s over the latter's Quattro Pro spreadsheet software. Lotus claimed that Quattro Pro's &quot;menu command hierarchy&quot; (i.e., the specific names and organization of commands in the software's menu system) infringed on Lotus's copyright in its 1-2-3 spreadsheet software. However, the court ultimately ruled that the menu command hierarchy was a &quot;method of operation&quot; rather than a creative expression, and thus was not protected by copyright.</p>
<p>These cases suggest from <em>Google v Oracle</em> and <em>Lotus v Borland</em>  that courts are generally hesitant to extend copyright protection to programming languages, command names, or other functional elements of software, viewing them as &quot;methods of operation&quot; that are not subject to copyright protection. While there may be some limited exceptions to this general rule, it seems unlikely that the specific names of instruction mnemonics in the Intel 8080 instruction set would be among them.</p>
<blockquote>
<p>Zilog really needed to use different mnemonics, or if they were just being cautious. Are these mnemonics protected by copyright?</p>
</blockquote>
<p>The mnemonics are not copyrightable. Zilog seems to be cautious as it is worth noting that patent protection could potentially apply to certain aspects of the Intel 8080 instruction set, such as specific methods for executing instructions or the design of the CPU itself. However, patents have a limited lifespan and expire after a certain number of years, so it is unlikely that any such patents would still be in force for a derivative CPU like the KR580VM1.</p>
<p>It is possible that Zilog chose to use different mnemonics out of an abundance of caution, to avoid any potential legal challenges from Intel. Alternatively, they may have simply wanted to differentiate their assembler from Intel's. Regardless of the reason, it seems unlikely that the specific names of instruction mnemonics would be protected by copyright. While it is true that some software companies have tried to assert copyright over programming languages or specific command names in the past, courts have generally been reluctant to extend copyright protection to such things.</p>
