1,000 instructions. The instruction set was extremely small, simple and powerful. The original processor, the model 20, had only 13 instructions, but its successor, the model 21 had 16 instructions, and it was mostly programmed in assembler language. Although relatively simplistic in its syntax, the assembler had a built-in macro language that was extremely powerful and complex, based on a string matching and parsing language. No machine language translator since has come anywhere close to this level of complexity, probably as few understood it, and the processing time for even the smallest programs could be prohibitively long. The machine had a longer history in North America than in the UK, which started when the Singer Business Machines division was bought by ICL in 1976. At the time of the sale ICL estimated that there were 8,000 System Ten’s in use around the world. ICL continued to market the system as the ICL System Ten, but also attempted to wean customers off it and onto their mainstream product offering, the 2900 series, by introducing a transition machine called the ME/29. When this strategy failed, they turned to a division of Singer which made intelligent terminals, to re-engineer the system and bring it up to the then modern-day standards and considerably reduce its size and power consumption. The ICL System 25, the last iteration of the machine, was then created. In the UK, the marketing strategy was that customers would be trained in the assembler, and would write their own programs. This was the only serious strategic error Singer made. Some European Singer Business Machines companies ignored this strategy, and set up small internal software houses to write customers' applications. Within two years, some of these software houses were independent of Singer, and specialized in supporting their national System Ten customers. In North America, several other languages had appeared, including a "table processor" approach to computing which was simple to learn, and an RPG/RPGII compiler which was later added with the advent of a second generation assembler that included a linker, a program which could bind several assembled modules together into a single executable. There were also tools called lpgc and Super Opus (from Safe Computing Ltd.), which used a data layout from the ICL tool for updating the files to define the layout of the data. LPGC was a report tool mostly though you could accept data at the start or