Back in those days, start of the art technology in CPU's were "restricted exports". The USA wanted to show that Communism didn't lead to as many advancements in technology as Capitalism, so they restricted exports on technology such as chip design software, CPU's and other chip logic (remember the A-team trying to block smugglers exporting flip-flop chips? It was that serious). This led to the Eastern European countries doing various work-arounds. They could get gray imports through third-party countries that weren't part of the Western trade block, and weren't part of the USSR either. Or they could set up fake companies in the host country that would export the technology.
Another strategy was to make their own logic chips. However, yields for complex logic such as CPU's, wasn't that good, so they ended up with CPU's with missing instructions. But that wasn't a problem, mathematician/software engineers figured out ways of emulating broken instructions using other instructions. If JMP was broken, then use CLR; BCC. Arithmetic operations like ADD could be replaced by NEG and SUB, and so on... So they ended up with an abstraction layer using assembler macros that provided a set of functioning instructions.