However, on May 27, 1987, an OEM version was released by IBM, which added VGA support, PS/2 mouse support, MCGA support, and support for the 8514/A display driver. IBM released this version on three 3.5 inch 720k floppies, and offered it as part of their "Personal Publishing System" and "Collegiate Kit" bundles. In November 1987, Windows 1.0 was succeeded by Windows 2.0. Microsoft supported Windows 1.0 for 16 years, until December 31, 2001 – the longest out of all versions of Windows. Windows 1.0 offers limited multitasking of existing MS-DOS programs and concentrates on creating an interaction paradigm (cf. message loop), an execution model and a stable API for native programs for the future. Due to Microsoft's extensive support for backward compatibility, it is not only possible to execute Windows 1.0 binary programs on current versions (albeit only 32-bit) of Windows to a large extent, but also to recompile their source code into an equally functional "modern" application with just limited modifications. Windows 1.0 is often regarded as a "front-end to the MS-DOS operating system", a description which has also been applied to subsequent versions of Windows. Windows 1.0 is an MS-DOS program. Windows 1.0 programs can call MS-DOS functions, and GUI programs are run from .exe files just like MS-DOS programs. However, Windows .exe files had their own "new executable" (NE) file format, which only Windows could process and which, for example, allowed demand-loading of code and data. Applications were supposed to handle memory only through Windows' own memory management system, which implemented a software-based virtual memory scheme allowing for applications larger than available RAM. Because graphics support in MS-DOS is extremely limited, MS-DOS applications have to go to the bare hardware (or sometimes just to the BIOS) to get work done. Therefore, Windows 1.0 included original device drivers for video cards, a mouse, keyboards, printers and serial communications, and applications were supposed to only invoke APIs built upon these drivers. However, this extended to other APIs such as file system management functions. In this sense, Windows 1.0 was designed to be extended into a full-fledged operating system, rather than being just a graphics environment used by applications. Indeed, Windows 1.0 is a "DOS front-end" and cannot operate without a DOS environment (it uses, for example, the file-handling functions provided by DOS.)