The DEC VAX has a set of 256 instructions set aside for user addition via microcode edits. Were extension sets ever commercially produced and sold, or was this functionality mostly used in-house?

Including links to documentation and software that uses the extension would be greatly appreciated, as well.

For documentation on this range of instructions, check the 1987 VAX Architecture Reference Manual, page 101 (115 in most scans)

  • 1
    Yea, sure, give me a minute. I have a copy of the VAX Architecture Handbook, but bitsavers doesn't keep scans of it. IIRC they're opcodes FC 00 through FC FF Jul 30, 2020 at 22:02

4 Answers 4


I was VAX Architect for six years in the late '80s, and at least during my tenure, Raytheon was the only company licensed to design VAX-compatible processors, for producing MIL-SPEC machines. They did design at least one (a high-performance processor with a very interesting microarchitecture that translated VAX instructions on the fly into a RISC-like internal form), and it could conceivably have used those opcodes, but I don't remember its having done so, and it seems unlikely since the purpose was to create a MIL-SPEC machine that could run standard software. Furthermore, I don't know that their processor design ever shipped. Raytheon and Norden did sell Digital's processor designs in hardened versions under the MILVAX name. The ICF Systime 8750 mentioned in Wikipedia (and which I'd never heard of before today) similarly appears to be a repackaged Digital design. It's possible that some customer might have used the FC opcodes to do software emulation of non-existent hardware instructions, but that would have few advantages over just calling the emulator. So the short answer is, probably no one ever used the FC opcodes.

  • Systime was a UK system vendor that built systems with DEC processors, other DEC parts, and some parts of their own or third parties. When I was at university, I had friends who were making side income writing Basic-Plus programs under RSTS/E on Systime "PDP-11" systems. I hadn't heard of Systime VAXen, but Wikipedia says such existed. Sep 22, 2020 at 23:22

I microcoded up all the UNIX string functions, just to see if anything could be gained; and also a dynamic programming solution of an esoteric parsing problem. The former would need huge strings to pay off, and the latter was a factor of ten speedup but too non-portable to be useful.

Any long procedure has to suspend itself often enough to allow interrupts, which otherwise wait for the microcode you write to finish, so there's that annoyance in coding in addition (stop and restart points in the microcode hand-coded in, which will involve memory writes and reads).


Note: Strictly speaking, my answer below doesn't answer the question asked, because what the OP was referring to was the instructions reserved for customer use, rather than those it reserved for DEC, which is what my reply was about. The corrected version of my answer, for the "XFC" opcodes (with a prefix of hex 0xFC) would be not as far as I know.

I think you may be referring to opcodes originally labeled "Reserved to DEC". There were 3 of them, ESCD, ESCE, and ESCF, where in hex were FD, FE, and FF.

The later VAX Vector Architecture used ESCD as a prefix for two-byte opcode, but was only available on certain models, but I think this meets what you are looking for, but it wasn't just a microcode upgrade.

Because of the byte-order convention on a VAX, these two-byte opcodes were generally listed as words with the FD at the end, rather than at the beginning. For example: A1FD became VSMULL.

  • FD was also used as an extension prefix for MOVO, and the various Floating G and Floating H operations, all of which were present in the original VAX-11/780, so this doesn't make sense. An easy way to verify this is to look at any VAX manual and check the opcodes for MOV or ADD. You'll find FD prefixed opcodes present. Jul 30, 2020 at 22:18
  • Alongside these, Prefix FF was also used, albeit only by DEC's VMS operating system as the BUG instructions, (FF FE and FF FF were used.) which crash the running program. Jul 30, 2020 at 22:19
  • Anyways, i'm referring to the FC prefix, the Reserved for End User range. Jul 30, 2020 at 22:22
  • Yea, I'm aware. It is indeed handled by triggering an invalid operation... fault? Pretty sure it was a fault, don't feel like digging. Jul 30, 2020 at 22:31
  • Let us continue this discussion in chat. Jul 30, 2020 at 22:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .