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 3,976 of 4,255    |
|    Paul Edwards to All    |
|    NE (new executable)    |
|    25 Nov 23 10:32:09    |
      From: mutazilah@gmail.com              Hi rugxulo              >> There is no reason why MSDOS 2.0 couldn't have       >> used that NE format right from the start though,       >> and in that theoretical situation, you break       >> the 8086 limitation and move on the 80286,       >> then 80386 (still PM16) with no change to your       >> executable.              > Have you heard of this? It used NE (and real mode) but limited to 640 kb.              > * https://en.wikipedia.org/wiki/MS-DOS_4.0_(multitasking)              Hey - that's great. I had heard of it, but didn't know       much about it. If it supported NE executables then that       gives me prior art.              >> OS/2 1.x uses a new API. I was talking about       >> getting INT 21H to work.              > Okay, so you want to "standardize" on NE and "int 21h" for PDOS for all       > x86 family of computers (8086, 286, 386)?              For 16-bit executables, yes. That's my tentative plan.              Perhaps you can say I want a mini clone of MSDOS 4.0,       which supported these "good" NE executables.              So - the maximum that INT 21H is capable of - which       is basically 4 GiB. But it really needs a memory       allocation function that accepts a 32-bit number of       bytes you want, instead of a 16-bit number of pages.       If you're restricted to the latter you can only get       to 4 GiB in 1 MiB chunks.              That would be more of a "demo" though. PDOS/86 is       already using INT 21H as a "demo".              Note that in some of my software, the output isn't       that important. So I could have an NE executable       with INT 21H calls in it, e.g. as86.exe that does       an assembly, and so long as there are no errors in       the assembler file, you would be able to run that       executable on Windows 2000. It is accepted as a       Windows 3.1 program and works. And if you ran on       MSDOS 4.0 you would presumably get the output too.              I was thinking more about MZ. So long as no segment,       including DGROUP, crosses a 64k boundary, it should       be possible to continue to use MZ. If the next segment       doesn't fit into the current 64k chunk, then pad with       NULs to the 64k boundary. I doubt it will be a big issue.              There would need to be some extra markup as an MZ       extension to zap any location with AHINCR and       possibly AHSHIFT. The locations would already be       set to x'1000' to support running as-is via normal       MSDOS.              But when run on PDOS/286 or 16-bit PDOS/386, the       OS would change all those locations to whatever is       suitable for the environment.              I believe I need a compiler that assumes that ds       is not equal to ss. And I think I will need the       compiler to also not assume that ds is set to       DGROUP in a function and to load that itself. Not       sure if that is possible. Otherwise I won't be able       to export my C library. Or at least, not as easily.              And I need startup code that doesn't attempt to       force ds and ss to the same value.              And post-demo I would essentially be throwing all       this away anyway, as what I really want is the       PDOS-generic interface where the OS provides a       pointer to its internal C library (plus OS functions       like mkdir()) as a stack parameter.              It's unclear to me what direction I should be going in.              I have bought Microsoft C 6.0 and it is currently in       customs, so hopefully I will get it soon. Cost a fortune.              So the first step is to just make sure that PDOS/86       can be compiled with this compiler. I have a Book 8088       so can do a real XT compile.              I guess I'm wanting to live within the limits of what       was available in 1990 or 1989. I only had an XT in 1988,       without a battery-backed clock, because I can remember       someone complaining that all my messages were posted       with a date of 1988-08-08 because I was sick of setting       the date, so I just set it to that in my autoexec.bat.              I can't remember when I bought my 80386. I think it was       circa 1992. I never had an 80286.              At least one of the lines of inquiry is living within       those limits. I have multiple lines of inquiry open.              BFN. Paul.              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca