An earlier article explored the history of codepage 852 (Latin-2 PC codepage) in released and pre-release versions of DOS and OS/2. At the time of this writing (June 2025), the earliest OS/2 build with some form of CP852 support including keyboard layouts and explicit knowledge of countries using CP852 (Czechoslovakia, Hungary, Poland, Yugoslavia) was OS/2 2.0 build 6.64 from March/April 1990. The first officially released OS with CP852 support was DOS 5.0 in June 1991.

There is confusion as to how old CP852 is. IBM’s globalization registry suggests that CP852 is from 1993, but that is patently impossible because it was included in the DOS 5.0 release in 1991. And the article referenced above clearly demonstrates that CP852 existed in early 1990.
In fact there is every reason to think that CP852 is a contemporary of CP855 (Cyrillic PC codepage) which is supposedly from 1988, or perhaps even a contemporary of CP850 (Latin-1 PC) from 1986.
It is apparent that codepages 850, 852, and 855 are closely related to the work done at ECMA and ISO in the mid-1980s, and correspond to ISO 8859-1, 8859-2, and 8859-5, respectively. While the original IBM PC character set provided some support for languages besides English, the support was imperfect and rather ad-hoc. The ECMA and ISO working groups took a much more systematic approach and designed character sets suitable “for general purpose applications in typical office environments”, covering specific sets of languages.
IBM modified the ECMA/ISO code pages for use in the PC. Essentially IBM took the characters needed to support the given languages, but rearranged them to preserve a good chunk of the most useful glyphs in CP437 used by text-based applications. This task was made possible by the fact that the ECMA/ISO code pages did not place any characters in the 80h-9Fh range, leaving 32 positions unused.
Latin Alphabet No. 2 (aka ISO 8859-2) as defined by ECMA-94 (2nd Edition, 1986) was deemed to be suitable for writing the following languages: Albanian, Czech, English, German, Hungarian, Polish, Romanian, Serbo-Croatian, Slovak, Slovenian, and Swedish (note that English, German, and Swedish were also covered by Latin Alphabet No. 1). IBM’s CP852 covered the same languages as ISO 8859-2.
Culture Clash
There was a notable clash between international standards organizations (and multinational companies) and PC users. Anyone who needed to implement and support internationalization tried to minimize the total number of code pages and maximize the number of languages a given code page would support. Yet PC end users invariably only cared about their own language plus making Norton Commander look good—that is, preserving the maximum amount of semi-graphical characters from CP437.
The motivation of the standards bodies is obvious—nobody actually thought that having one code page per language would be particularly useful. The view of the end users may seem myopic, but it was practical; if someone, say, lived in Poland and needed to communicate with people in Hungary, Slovakia, Croatia, and Slovenia, they almost always used English or perhaps German and not Hungarian, Slovak, Croatian, and Slovenian to do so.
In other words, almost no one using one of the languages covered by CP852 had a need to use all of the languages covered by CP852.
CP852, 1988
Just recently a rather curious set of floppies came to light. It included an original IBM floppy titled “NLS 4.00”, part number 07F8889, which contains National Language Support (NLS) for IBM DOS 4.0 beyond what was shipped on the IBM DOS 4.0 disks.
The NLS 4.00 disk supports Greek (CP851), Icelandic (CP861), Turkish (CP853), plus more or less all Eastern Bloc countries using CP852 (Latin-2) and CP855 (Cyrillic). CP852 covers Albanian, Czech, German (GDR), Hungarian, Polish, Romanian, Slovak, and “Yugoslav-Latin”. CP855 additionally covers Bulgarian, Serbian, and “Cyrillic” (with country code 007 or USSR). The files on the disk are dated November 4, 1988. Notably this is just a few months after the initial release of IBM DOS 4.0 (June 1988).
Thus there is proof that IBM had functioning CP852 (and CP855) support at least as far back as November 1988. The mystery is what this disk was. It was mass produced (with the obligatory Made in Denmark label) and had an IBM part number, but was it ever listed in some IBM catalog? Who exactly offered it, and who could order it?

The disk falls into a strange gray zone. It probably wasn’t offered in the West because it wasn’t needed there. But if it was offered beyond the Iron Curtain, it almost certainly wouldn’t have been in trade press or magazines.
It’s all the more curious because this NLS disk required IBM DOS 4.0 (effectively brand new at the time), and it also needed EGA and VGA hardware. Chances are good that it would have been sold with new IBM PCs or PS/2s… but who was buying those in the Comecon countries in 1988? Then again, the NLS disk was found in the former Soviet Union and there’s every reason to think that’s been there since circa 1989 or 1990. So it had to get there somehow.
Origins
We can guess a little more about the origins of this national language support by examining the MS-DOS 5.0 OAK. The released MS-DOS 4.0 source code offers no real clues because it does not include any support for CP852 or CP855, and does not support any of the corresponding keyboard layouts either. That is unsurprising; those codepages and keyboard layouts were not supported in DOS 4.0 out of the box, which is why the NLS disk existed.
The MS-DOS 5.0 OAK does not include CP855 and the associated keyboards, but it does contain CP852.
The CP852 source files for EGA.CPI all contain the following comment:
; DATE CREATED:05-28-1987
If that is to be believed, CP852 must have been defined in 1987 and IBM already worked on the PC fonts to support it. That is plausible, because the Latin-2 character set was standardized by ECMA and ISO in 1986. (ECMA-94 was first published in 1985, but at that point it only contained the Latin-1 character set.)
The KEYBOARD.SYS source files in the MS-DOS 5.0 OAK offer further glimpses into the history of IBM’s NLS. Note that DOS national keyboard support is split into two functional parts. The actual KEYB utility can handle many keyboard layouts, but in itself it only handles the US layout. All the national keyboards are defined in KEYBOARD.SYS, which is read by the KEYB utility and used to translate scan codes to character codes.
The Yugoslav keyboard layout contains the following comment:
; WRITTEN: MJS 22.SEPTEMBER 1987
Who is MJS? The Polish keyboard layout offers a solid clue:
;; WRITTEN: Michael J. Saunders 2.OCTOBER 1987
The Czech, Hungarian, and Slovak layouts all contain the exact same comment as the Polish one. Whether they were all really created on the same date in October 1987 or just copied from the same source is anyone’s guess. But there was clearly some work ongoing in the Fall of 1987; note that this was after the release of DOS 3.3 but before DOS 4.0.
The Czech and Slovak layouts include one additional interesting comment:
;; Alterations created by Gyorgy Balint on behalf of IBM ROECE
;; 21.10.87 Basingstoke
There it is again—IBM ROECE, or Regional Organization for Eastern and Central Europe. Clearly in 1987, IBM ROECE was working on NLS for Eastern Bloc countries.
It is difficult to say when IBM ROECE might have had something to deliver to end users—it is possible that support for CP852 based on the DOS 3.3 NLS was delivered as early as 1987.
Thanks to the IBM “NLS 4.00” disk described above, we know that CP852 support was available in November 1988. It is entirely plausible that there was a similar “NLS 3.30” disk for DOS 3.3, perhaps some months earlier. Then again, maybe there wasn’t.
In any case, it should be possible to establish a rough CP852 timeline: IBM started working on support for CP852 and the associated languages on the PC platform in 1987. The support may have been completed before the end of 1987 and released in some form as an add-on for DOS 3.3.
In 1988, IBM released a NLS disk for DOS 4.0 with support for CP852 and country support for Czechoslovakia, Hungary, Poland, and Yugoslavia.
In early 1990, this support was integrated into the in-development OS/2 2.0. In early 1991, it was also integrated into DOS 5.0, and officially released in June 1991. In April 1992, OS/2 2.0 was released, about two years after it started supporting CP852.
Perhaps more information about the origins of CP852 will still came to light. Two years ago (that is, in 2023), the earliest known appearance of CP852 was in DOS 5.0 in 1991. Now we know that it appeared in OS/2 2.0 pre-releases about a year earlier, and that IBM had add-ons with CP852 support as early as 1988.
Acknowledgements
I would like to thank Georgy Galtsev for providing me with an image (and a photo) of the IBM NLS 4.00 diskette as well as a tape dump of MS-DOS 5.0 OAK.