The Burroughs B2500 through Burroughs B4900 was a series of mainframe computers developed and manufactured by Burroughs Corporation in Pasadena, California, United States, from 1966 to 1991. They were aimed at the business world with an instruction set optimized for the COBOL programming language. They were also known as Burroughs Medium Systems, by contrast with the Burroughs Large Systems and Burroughs Small Systems. History and architecture First generation The B2500 and B3500 computers were announced in 1966. They operated directly on COBOL-68's primary decimal data types: strings of up to 100 digits, with one EBCDIC or ASCII digit character or two 4-bit binary-coded decimal BCD digits per byte. Portable COBOL programs did not use binary integers at all, so the B2500 did not either, not even for memory addresses. Memory was addressed down to the 4-bit digit in big-endian style, using 5-digit decimal addresses. Floating point numbers also used base 10 rather than some binary base, and had up to 100 mantissa digits. A typical COBOL statement 'ADD A, B GIVING C' may use operands of different lengths, different digit representations, and different sign representations. This statement compiled into a single 12-byte instruction with 3 memory operands. Complex formatting for printing was accomplished by executing a single EDIT instruction with detailed format descriptors. Other high level instructions implemented "translate this buffer through this (e.g. EBCDIC to ASCII) conversion table into that buffer" and "sort this table using these sort requirements into that table". In extreme cases, single instructions could run for several hundredths of a second. MCP could terminate over-long instructions but could not interrupt and resume partially completed instructions. (Resumption is a prerequisite for doing page style virtual memory when operands cross page boundaries.) The machine matched COBOL so closely that the COBOL compiler was simple and fast, and COBOL programmers found it easy to do assembly programming as well. In the original instruction set, all operations were memory-to-memory only, with no visible data registers. Arithmetic was done serially, one digit at a time, beginning with most-significant digits then working rightwards to least-significant digits. This is backwards from manual right-to-left methods and more complicated, but it allowed all result writing to be suppressed in overflow cases. Serial arithmetic worked very well for COBOL. But for languages like FORTRAN or BPL, it was much less efficient than standard word-oriented computers. Three reserved memory locations were used as address indexing 'registers'.