6502 Illegal Opcodes in the Siemens PC 100 Assembly Manual (1980)

The 6502’s “illegal” opcodes were of intense interest to home computer enthusiasts, and analyses were published in various magazines. But one would have never expected a company like Siemens to document illegal opcodes in a programming manual from 1980.

The PC 100 Assembly Manual

The Siemens PC 100 is basically a Rockwell AIM-65 single-board computer in a case, featuring a 6502 processor, integrated keyboard, LED display, and thermal printer, tailored for educational and development purposes with localized documentation and modified ROMs.

Siemens’ German-language manuals were largely based on Rockwell’s originals, but shuffled the contents. Of particular interest is the assembly manual:


Siemens Assembler-Handbuch Personal-Computer PC 100, Ausgabe 1980/1981

(124 pages, 17 MB)

It consists of:

Assembler-Handbuch Rockwell Description
Chapters 1–9 User’s Guide, Chapter 5 Assembler Reference
Chapter 10 Programming Manual, Appendix B 6502 Reference
Chapter 11 User’s Guide, Chapter 3 Monitor Reference
Chapter 12 Tables

“Special Instructions”

The 6502 Reference has three extra pages at the end describing “Sonderbefehle” (“special instructions”) that were not in the original MOS/Rockwell 6502 reference that this chapter is a translation of. We can assume this was original research by Siemens.



Here is the translated transcription:

10.3 Special Instructions

The microprocessor recognizes a number of special instructions that are largely unknown but can provide valuable assistance to the user in program development. The chosen mnemonics in the following tables are merely recommendations for effectively representing these instructions.

Note:
These instructions are not part of the specification and may be changed at any time without notice. The special commands cannot be decoded by the assembler program and must be programmed using the .BYT directive (see Chapter 10.2).

AAX Logical “AND” operation between the accumulator and X-register, with result storage.

Operation A ∧ X → M with Zero Page und (A) ∧ X ∧ $02 → M with Absolute

Flags

N Z C I D V
Addressing Mode Assembler Mnemonic OP CODE No. Bytes
Zero Page AAX Oper 87 2
Zero Page, Y AAX+16 Oper 97 2
X-Reg. ∧ $02
Absolute
AAX+23 Oper 9E 3
X-Reg. ∧ Accu ∧ $02
Absolute
AAX+24 Oper 9F 3

DCM Decrement memory location by one and compare result with accumulator.

Operation M – 1 → M and A – M

Flags

N Z C I D V
V V V
Addressing Mode Assembler Mnemonic OP CODE No. Bytes
Zero Page DCM Oper C7 2

LAX Load accumulator and X register

Operation M → A and M → X

Flags

N Z C I D V
V V
Addressing Mode Assembler Mnemonic OP CODE No. Bytes
Immediate LAX Oper AB 2
Zero Page LAX-4 Oper A7 2

ISB Increment memory cell by one and subtract result from accumulator

Operation M + 1 → M and A – M → A

Flags

N Z C I D V
V V V
Addressing Mode Assembler Mnemonic OP CODE No. Bytes
Zero Page ISB Oper E7 2

Note:
The instructions LAX Immediate, AAX X reg $02 and AAX X reg accu $02 are not always processed correctly.

10.4 Programming in Assembly Language

Since the special instructions mentioned above cannot be decoded by the assembler program, they must be programmed using the .BYT directive.

Analysis

Opcodes Siemens
Mnemonic
Modern
Mnemonic
Comment
87/97 AAX SAX Correct. Also exists with izx/abs addressing modes.
9E/9F AAX SHX/SHA It’s aby, not abs. Also, their constant ($02) is actually the high-byte of the instruction address. (It should not be grouped with the other “AAX” opcodes.)
C7 DCM DCP Correct. Also exists with zpx/izx/izy/abs/abx/aby addressing modes.
AB LAX LAX Basically correct. The documented unstability comes from bits of the A register sometimes bleeding into the calculation. (More info)
A7 LAX LAX Correct. Also exists with zpy/izx/izy/abs/aby addressing modes.
E7 ISB ISC Correct. Also exists zpx/izx/izy/abs/abx/aby addressing modes.

All in all:

  • They got the ones they designated as “stable” right, but were missing many addressing modes.
  • They got 9E/9F wrong (which they designated as “unstable”), probably by not testing enough inputs combinations.
  • They got AB right (actually unstable), but they did not research the root of the instability further.

We can assume that this is either original research by a Siemens author – or they copied it from some other source. If the information had come from MOS or Rockwell, they would surely have

  • listed all addressing modes.
  • not added a statement like “The instructions […] and […] are not always processed correctly.” – or better yet, omitted the unstable ones.

Credits

Thanks to Gerald Schiepeck for his AIM-65 and PC 100 exhibition at the VCFE 2025, and Marco Baye for bringing the section in the assembly manual to my attention.

58 thoughts on “6502 Illegal Opcodes in the Siemens PC 100 Assembly Manual (1980)”

  1. Fascinating source comparison. The notes about undocumented 6502 behavior and how old manuals diverge from real hardware make this post especially useful for anyone tracing early CPU quirks. I spend time collecting odd web/audio references for PlaySoundboard, so I appreciate this kind of careful documentation.

    Reply
  2. What a find—Siemens of all companies formally documenting the 6502’s illegal opcodes is wonderfully unexpected. It says a lot that a corporate manual went where the enthusiast magazines feared to tread. The AIM-65-in-a-case lineage explains the thoroughness too. There is something about uncovering hidden behavior in old silicon that scratches the same itch as the buried-memory mystery in the indie visual novel false sun I have been playing lately. Thanks for preserving and sharing these scans!

    Reply
  3. Thanks for sharing your thoughts on 6502 Illegal Opcodes in the Siemens PC 100 Assembly Manual (1980)—the focus on real-world listening scenarios is great. I came across https://soundtest.app and liked that it can help validate headphones/speakers with browser-based audio tools.

    Reply
  4. The comparison between the Siemens manual and the better-known 6502 references is fascinating. The notes on stable and unstable opcodes make this especially useful for anyone studying early hardware quirks.

    Reply
  5. Fascinating find, especially the Siemens notes around “special instructions” and how cautiously they describe behavior outside the formal 6502 spec. I like how this kind of documentation shows the gap between official architecture and what developers actually explored in practice. It also reminds me that good design tools matter in every field, whether you are decoding old opcodes or experimenting visually with something personal like AI-guided nail art concepts tailored to your taste. Different domain, same appeal: turning technical complexity into something easier to explore and refine.

    Reply
  6. Interesting read on obscure 6502 behavior, and the manual analysis is surprisingly thorough. For a completely different kind of creative output, I also like name into flowers for turning names into personalized floral art, posters, wallpapers, and wedding or baby-name designs.

    Reply
  7. https://www.couturehk.com
    Couture HK appears to be a fashion-oriented website with a premium and stylish brand image. It is suitable for users interested in luxury fashion, accessories, and curated lifestyle content. The site can be used for promotional campaigns targeting fashion-conscious audiences.

    Reply
  8. Siemens documenting ‘Sonderbefehle’ in an official 1980 manual is such a wild find – original corporate research on illegal opcodes that hobbyists were only publishing in magazines at the time. The fact that the PC 100 was essentially a repackaged AIM-65 makes it even better, since Rockwell’s own docs stayed silent on them. Great bit of retrocomputing archaeology.

    Reply
  9. I love stories about documentation surfacing decades later like this. Three extra pages of ‘special instructions’ that Siemens apparently researched themselves, tucked into a translated Rockwell manual – exactly the kind of obscure variant collectors dream of finding. Thanks for transcribing and translating it so the rest of us don’t need the 17 MB scan to enjoy it.

    Reply
  10. Otakudesu menyediakan koleksi anime subtitle Indonesia terlengkap. Nonton dan download anime HD terbaru, anime ongoing, completed, dan movie dengan update setiap hari hanya di Otakudesu.

    Reply
  11. Otakudesu is one of the most popular anime streaming platforms for watching the latest anime episodes with Indonesian subtitles. Discover updated series, seasonal releases, and a smooth anime viewing experience.

    Reply
  12. Samehadaku adalah tempat terbaik untuk streaming anime subtitle Indonesia dengan update episode terbaru, kualitas HD, dan koleksi anime lengkap yang mudah diakses kapan saja.

    Reply
  13. Tonton anime favoritmu di Samehadaku dengan subtitle Indonesia, update cepat, streaming HD, serta berbagai judul anime terbaru dan populer dalam satu tempat

    Reply
  14. Fascinating archaeological find! The Siemens manual’s documentation of illegal opcodes, especially the ‘special instructions’ section, shows early efforts to explore the 6502’s undocumented behavior. It’s interesting how they got some opcodes right but missed addressing modes, and their ‘unstable’ designation for 9E/9F was spot-on. This kind of historical research reminds me of how we can use modern AI tools like Reference2Video to visualize and recreate such technical discoveries, turning raw data into engaging educational content.

    Reply
  15. This is a fascinating look at how Siemens documented the 6502’s undocumented opcodes back in 1980, complete with mnemonic tables and a careful modern analysis of each “special instruction”. The article reminds me that old technical manuals can still hide genuine surprises, and I wonder how many other archives await similar detective work. For creators who want to bring stories like this to a wider audience, narrating the key findings with a TikTok Voice Generator could turn dense documentation into an engaging short explainer, making obscure retro-computing history much more approachable for younger viewers.

    Reply
  16. The comparison between the Siemens mnemonics and the modern names is a great example of why old technical documentation benefits from reproducible tests. I especially liked the note that 9E/9F were misclassified while the other stable opcodes held up. Small deterministic tools use the same habit: Random Pokemon Generator lets people share a seed alongside filters so a result can be recreated instead of guessed.

    Reply
  17. This deep dive into the Siemens PC 100 manual is fascinating—it’s like uncovering a hidden chapter in computing history. The way they documented ‘illegal’ opcodes as ‘special instructions’ shows a forward-thinking approach, even if some details were a bit off. It makes me wonder how many other obscure technical documents hold similar gems waiting to be rediscovered. For anyone into retro computing or just curious about how we got here, this is a must-read. It also inspires me to explore random topics like this for learning—you never know what you’ll find!

    Reply
  18. The surprising part is not only that undocumented 6502 instructions attracted enthusiasts, but that a major company’s 1980 programming manual appears to have treated them as worth documenting. That makes the manual valuable as a historical record of how technical knowledge could move between hobbyist experimentation, education, and commercial development. The PC 100 context adds another layer: a 6502-based system with an integrated keyboard, display, and printer was clearly positioned as a practical learning and development machine. archival details like this can complicate the usual distinction between official documentation and informal discovery, especially when hardware families and localized manuals diverged from expectations.

    Reply
  19. The surprising part is not only that undocumented 6502 instructions attracted enthusiasts, but that a large manufacturer appears to have preserved them in an educational and development-oriented manual. That makes the document valuable as a record of how practical computing knowledge traveled between hobbyist and institutional contexts. The PC 100’s AIM-65-like design, with its keyboard, display, and printer, also helps explain why such a manual could matter to hands-on users.

    Reply
  20. The surprising part is not only that the manual mentions unofficial 6502 instructions, but that it appears in documentation for a machine positioned for education and development. Framing the PC 100 as an AIM-65-derived system with localized ROMs and documentation makes the inclusion more historically interesting: it suggests the manual was written for people likely to explore the processor closely. The term opcode also highlights how “undocumented” behavior can become practical knowledge when it is preserved in contemporary technical material.

    Reply
  21. The unexpected part is not simply that undocumented 6502 instructions existed, but that a large company’s 1980 manual appears to have treated them as worth recording. That makes the document useful for understanding the practical boundary between official processor behavior and the knowledge circulating among enthusiasts. The PC 100’s educational and development-oriented design adds further context: a machine with a keyboard, display, printer, and modified documentation could preserve choices that are easy to miss in standard hardware histories. Documentation is often where these technical assumptions become visible.

    Reply
  22. The surprising part is not merely that undocumented 6502 instructions were known to enthusiasts, but that they appeared in a corporate manual intended for an educational and development machine. That makes the Siemens PC 100 a useful case for separating the processor’s actual behavior from the cleaner story told by official instruction sets. Careful documentation of these edge cases can also help preserve how programmers understood the hardware at the time.

    Reply
  23. Fascinating deep dive into the Siemens manual’s documentation of 6502 illegal opcodes. It’s remarkable that a company like Siemens would document these ‘special instructions’ back in 1980, even if some of their details were off. The analysis of how they got 9E/9F wrong but correctly identified the unstable nature of AB is a great example of how early documentation was often a mix of careful testing and guesswork. This kind of historical detective work really highlights the ingenuity of early programmers and the quirks of the hardware they worked with. On a completely different note, your post reminded me of how precise documentation is crucial in any technical field—whether it’s debugging assembly code or syncing audio in a dance video with Clapoint, getting the details right makes all the difference. Thanks for sharing this piece of computing history!

    Reply

Leave a Comment