due to the new MMU bank-switching chip. This allows BASIC program code to be stored separately from variables, greatly enhancing the machine's ability to handle complex programs, speeding garbage collection and easing debugging for the programmer. An executing program can be STOPped, its code edited, variable values inspected or altered in direct mode, and program execution resumed with the variable table intact using BASIC's GOTO command. Although other BASICs support the CONT command to restart execution without clearing variables, editing any code causes them to be cleared. Different memory configurations can be loaded using BASIC's BANK command. BASIC 7.0 has a full complement of graphics and sound-handling commands, as well as BASIC 4.0's disk commands and improved garbage cleanup, and support for structured programming via IF...THEN...ELSE, DO...WHILE, and WHILE...WEND loops. Programmable characters are still however not supported, so the programmer will have to manipulate them with PEEK and POKE as on the VIC-20 and C64. On the downside, BASIC 7.0 ran considerably slower than BASIC 2.0 unless 2 MHz mode was used due to its 28 KB size (a 250% increase over BASIC 2.0) and having to bank switch to access program variables and BASIC program text (if greater than 16k in length). The 128's ROM contains an easter egg: Entering the command SYS 32800,123,45,6 in native mode reveals a screen with a listing of the machine's main developers followed by the message Link arms, don't make them." Also, entering the keywords QUIT or OFF will produce an ?UNIMPLEMENTED COMMAND ERROR. These commands are holdovers from the BASIC interpreter intended for a planned but never-produced LCD portable computer and had been intended to exit from the BASIC interpreter and to ignore keyboard input during sensitive program execution, respectively. The C128's greater hardware capabilities, especially the increased RAM, screen display resolution, and serial bus speed, made it a more capable platform than the C64 for running the GEOS graphical operating system. CP/M The second of the C128's two CPUs is the Zilog Z80, which allows the C128 to run CP/M. The C128 was shipped with CP/M 3.0 (a.k.a. CP/M Plus, which is backward-compatible with CP/M 2.2) and ADM31/3A terminal emulation. A CP/M cartridge had been available for the C64, but it was expensive and of limited use since the 1541 drive cannot read the MFM-formatted disks that CP/M software was distributed on. Software had to be made available on Commodore-specific disks