On i386 and beyond (assuming MS-DOS as the target OS and IBM PC as the target platform), my impression is game developers most typically used Watcom C / DJGPP plus one of the DOS extenders (DOS4GW, cwsdpmi etc.) plus graphics libraries such as SVGAKit or Allegro.

I wonder what were the most used toolchains (compiler, runtime if any, libraries) for the i286 era? In particular, did games typically use the 16-bit protected mode, and if so, was there something like a "16-bit DOS extender"? Or, rather, was using EMS / XMS sufficient?

I recall Borland had DPMI16BI.OVL, but it's a question if Borland was the compiler vendor of choice for game developers back in the day, and even if it was, whether the game developers used the Borland's DPMI?

  • 3
    Isn't that a bit broad? Answers might be rather opinion and random data points. Also, original game development for the PC was rather limited before the 386 and not really standardized to a few tools like today. Language choice was Pascal or Assembly - or even BASIC - C was only creeping in slowly. Most 'big' games were ports from other platforms, usually done in assembly for speed reasons - remember those boxes were slower than Amigas or Ataris.
    – Raffzahn
    Sep 9, 2022 at 12:55
  • 1
    Plus in the 286 era machines were still relatively expensive. Which means that well into the 286 era there were plenty of people still running XTs with varying amounts of memory from 640K (which was a reasonable expectation for the mid-1980s, but which itself varied in usable memory after drivers, etc.) to a couple Meg., so targeting machines with lots of EMS for games would have been a bit limiting. Sep 9, 2022 at 14:22
  • 2
    And arguably the first several years of the IBM PC era were primarily targeted towards businesses large (got a mainframe, get PCs to go with it) and small (nobody was ever fired for buying IBM). For much of the 80s, if you were a real gamer you got a machine that came with better graphics and sound capabilities (Atari, Amiga, etc.) or a longer history and therefore more game software despite the limitations (Apple ][). The people buying PC/XT/AT - until the clone market really took off and prices dropped - were largely buying for business and games secondary. A business could justify spending Sep 9, 2022 at 14:47
  • 2
    a lot for a big EMS card. A gamer would be better off getting a machine better designed for games in the first place. It was really the 386 era - with lower machine prices and a lot more memory - that made the change. Sep 9, 2022 at 14:48
  • 1
    @DmytroL same tools everywhere, after all, game programmers started more often than not out as hobbyists and kept their tools. MS was what most non game professionals used. And Watcom apealed to game and non game. And as you say, that was the 1990s, a time when the 286 was already on the way out and C on the way in - no wonder he told you it's the coming language. Much like electric cars today. Everyone talks about, everyone wants, but in reality 90% of what's on the road is gas guzzling.
    – Raffzahn
    Sep 12, 2022 at 10:28

1 Answer 1


There did exist extenders for the 286, like DOS/4G's sibling, DOS/16M, but market forces meant that game developers couldn't rely on people having a 286 enough to make them worthwhile.

Like tools like QRAM (QEMM-386's counterpart for pre-386 machines) and LIM EMS boards themselves, they were for the business market, where it'd be justifiable to spend that kind of money to ensure that a piece of software you were buying/selling/developing in-house could economically manipulate the amount of data a business problem required.

It was "expensive, but still cheaper if we can make a microcomputer do the work of a minicomputer/mainframe" thinking.

  • Was there ANY profit for using 286-kind 16bit protected mode? The addressing remained effectively 16-bit and even became worse for addressing arrays of size >64kbytes (as far as I can suggest). The only real ease of memory addressing arrived with 32-bit mode in 386+ CPUs.
    – lvd
    Sep 12, 2022 at 15:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .