{"id":93307,"date":"2016-04-18T07:00:00","date_gmt":"2016-04-18T21:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/?p=93307"},"modified":"2019-03-13T11:02:05","modified_gmt":"2019-03-13T18:02:05","slug":"20160418-00","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20160418-00\/?p=93307","title":{"rendered":"Getting MS-DOS games to run on Windows 95: Too much memory!"},"content":{"rendered":"<p>Piggybacking on <a HREF=\"https:\/\/devblogs.microsoft.com\/oldnewthing\/#comment-1231523\">Roger Lipscombe&#8217;s story of the MS-DOS extender that didn&#8217;t work if you have 64<a HREF=\"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/20090611-00\/?p=17933\">MB<\/a> of RAM: <\/p>\n<p>There was a popular MS-DOS game from 1994 that didn&#8217;t run in Windows 95. After some investigation, the conclusion was that the game didn&#8217;t work if your computer had more than 16MB of memory (physical, if running under MS-DOS; virtual, if running under Windows). The 16MB limit comes into play because the game was written for the 80286 processor, and that processor supports a maximum of 16MB of RAM. I guess that when the game found more than 16MB of memory, it didn&#8217;t know what to do with the extra memory; maybe it overflowed a buffer, or a calculation overflowed. Whatever. Doesn&#8217;t matter. <\/p>\n<p>We fixed the problem by creating a custom configuration for that game that said, &#8220;Never give this program more than 16MB of memory.&#8221; <\/p>\n<p>This case was interesting because the custom configuration means that the program runs better under Windows 95 than it does under raw MS-DOS: Under raw MS-DOS, it would have crashed! <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Another case of intentionally under-reporting memory.<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[2],"class_list":["post-93307","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-history"],"acf":[],"blog_post_summary":"<p>Another case of intentionally under-reporting memory.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/93307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=93307"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/93307\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=93307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=93307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=93307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}