system included with a business-class minicomputer. By bundling IMAGE with the server, HP created an ecosystem of applications and development utilities that could rely upon IMAGE as a data repository in any HP 3000. Classic memory segments and 64K barrier Code (reentrant) and data reside in separate variable-length segments, which are 32,768 "halfwords" (16-bit words) (or, 65,536 bytes). The operating system, known as MPE (for Multi-Programming Executive), loads code segments from program files and segmented Library (SL) files as needed, up to 256 segments in one process. There could be as much as 64KB of memory in a code segment, but calling a routine was based on segment number and routine number within a segment, so a program could theoretically have about 32,385 routines. With 8 bits to specify segment, and 16 bits within a segment a program could have effectively have a 24 bit address or 16MB. This was compared to most 16 bit computers like the PDP-11 or IBM System/34 that had 64KB of address space for code and data. The bigger limitation was the data segment and stack segment, which were also 64KB. Shared library routines did not permit cross-process global data since each process had its own data segment. Some procedures worked around this by requiring the caller to pass in an array from their own stack or data segment to hold all state information, similar to modern object-oriented languages where methods are applied to objects passed are allocated by the caller. A process could allocate and use multiple extra data segments (XDS) of up to 64KB each. While the Classic architecture imposed a limit of 65,535 extra data segments system-wide, other limitations would usually restrict that to a somewhat smaller limit. Systems programming was done in SPL (System Programming Language), an ALGOL-like language, but allowing inline assembler, and other direct access to the instruction set. The standard terminals for the HP 3000 were the HP 2640 series, which supported block mode data entry from forms (like IBM's mainframe-based CICS), as well as character mode. By the 1980s the computer had gained the ability to use both PCs and Macs as system terminals. Classic and PA-RISC 3000 hardware The HP 3000 family's generations were divided into the "Classic" (16-bit) and then "XL" (later IX – 32-bit) families following the introduction of systems based on HP's PA-RISC chips for 3000s in early 1987. These newer XL systems