Forums before death by AOL, social media and spammers... "We can't have nice things"
|    alt.os.development    |    Operating system development chatter    |    4,255 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 2,742 of 4,255    |
|    James Harris to muta...@gmail.com    |
|    Re: PDOS/86    |
|    20 Jul 21 12:30:55    |
      From: james.harris.1@gmail.com              On 19/07/2021 11:30, muta...@gmail.com wrote:       > On Monday, July 19, 2021 at 2:57:20 AM UTC+10, James Harris wrote:       >       >>> No. On a real 8086. The x'66' will be ignored. So a real       >>> 8086 and PM32 will both work, right?       >>       >> Forgive me for being critical but if I understand what you mean by the       >> above (which is by no means certain) I think you are going about this in       >> the wrong way and could cause yourself all kinds of problems down the line.       >>       >> I thought you were writing your code in C (C90 specifically). Well, C is       >> designed to be portable so it should let you write code which will run       >> on 8086, 80286 and 80386 machines - but the C approach to such       >> portability is compilation for the different targets. C provides       >> source-code portability, not object-code portability. It is normal with       >> C to recompile a piece of source for different targets. An 8086 is a       >> different target from 80386, just as it is from 68000.       >>       >> If you want /binary/ compatibility you might be better writing in Java       >> or Pascal.       >       > I am happy to have a separate compilation for 8086       > vs 80386.              That's good. It separates specification (the source code) from       implementation (various CPU modes). But it should give you all kinds of       possibilities and I don't think you are exploiting the options it gives.       See below for examples.               >       > I'm even happy to have separate compilations       > for each of the 8086 memory models.              OK.              >       > But if there are a variety of CPUs that can run 8086       > executables, and some of them address 1 MiB max,       > and some of them address 512 MiB max,       You maybe think that's a lot but I don't see why you would want to limit       programs like that. For example, why can you not keep to the 16-bit       integers you want to be part of the 16-bit ecosystem but use 32-bit       pointers so that programs can address 4G?              There are at least three ways to do that:        * unreal        * 16-bit operations in 32-bit mode        * soft CPU               >       > I would       > like to write code to the lowest common denominator       > if possible, rather than have 27 sort-of-8086 large       > memory model variants.              That's a good goal but /compiled/ code can have two paths along the       lines of               if I am running on a real 8086        |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca