home bbs files messages ]

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,973 of 4,255   
   Paul Edwards to All   
   NE (new executable)   
   22 Nov 23 11:33:47   
   
   From: mutazilah@gmail.com   
      
   Hi rugxulo   
      
   It will be interesting to see what happens with   
   this reply. I still use google groups to read,   
   and I don't seem to be able to get the headers   
   like I used to, which means I can't attempt to   
   put in a proper reply thing. Also I am using   
   X-Comment-To in order to eventually support the   
   Fidonet software that comes with PDOS/386.   
      
   > Hi, glad to hear from you again.   
      
   Thanks.   
      
   >> I think we previously touched on NE executables,   
   >> but it wasn't a priority for me to continue at the time.   
   >>   
   >> I also previously discussed limitations I saw on MZ   
   >> that would prevent my 16-bit executables suddenly   
   >> getting access to 16 MiB (80286) or even 256 MiB   
   >> (PM16 on 80386) or 512 MiB (PM32 with D-bit) or   
   >> 4 GiB (theoretical maximum).   
      
   > Didn't the 16-bit pmode stuff from Borland Pascal use NE?   
      
   All Win 3.1 programs do, as far as I know.   
      
   > Anyways, EMX (a.out) and DJGPP (COFF) have   
   > no problems with 100+ MB of RAM.   
      
   That's using PM32, not PM16.   
      
   > Or did you mean a pure 16-bit MZ .EXE   
   > was limited by default?   
   > (In other words, MZ by itself doesn't stop   
   > anyone, but I guess we're splitting hairs.)   
      
   Certain unchanged MZ could indeed access 4 GiB of   
   memory in an appropriate environment, sort of   
   maybe. E.g. if it was tiny memory model and did   
   a malloc of 3.9 GB and the OS being used returned   
   a far pointer, and then the executable used the   
   segment registers to read/write that data, then   
   that should work.   
      
   The big problem is resolving relocation information,   
   but that's not a problem with tiny memory model.   
      
   Another problem is finding a processor with   
   enough selectors to get to 4 GiB. That's why I   
   mentioned 512 MiB.   
      
   The relocation information in the NE is more   
   sensible, instead of having an implied 4-bit   
   segment shift.   
      
   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.   
      
   >> The solution appears to be to use the NE format.   
   >>   
   >> So probably when PDOS/286 exists one day, I will   
   >> probably create a flavor of PDOS/86 that uses the   
   >> exact same NE executables.   
      
   > I hear it's a complicated format (e.g. resources).   
      
   Are you talking about .res files? I'm not interested   
   in that. Just C90 console mode applications.   
      
   >> The executable I tested does a printf and then opens a   
   >> file and writes to it. When run on Windows 2000 the   
   >> executable is treated as a Win16 and the printf goes   
   >> nowhere but the file open happens successfully.   
      
   > Wasn't Win2k the last to support OS/2 1.x textmode apps?   
   > Try using OpenWatcom to build one.   
      
   OS/2 1.x uses a new API. I was talking about   
   getting INT 21H to work.   
      
   But yes, that's basically what I'm talking   
   about beyond that - putting (cut down) OS/2 1.x   
   or similar onto an 8086. As well as on the   
   original 80286.   
      
   >> On PDOS/86 you get the printf too.   
      
   > Surely you're aware of OS/2 family/bound apps too, right?   
   > The 1996 DOS + OS/2 build of mawk is one example.   
      
   Yes, but I'm not aware of what they did.   
      
   Did it require an 80286 processor, even though   
   it ran under MSDOS?   
      
   Or did they keep it in RM16 and get a stub to   
   get the DLL references resolved? I'm planning   
   on just getting rid of that stub and moving it   
   to the 8086 OS. The 8086 OS would then recognize   
   the pure NE OS/2 1.x.   
      
   >> Only the NE format was changed - it's still unchanged   
   >> 8086 code. Doing INT 21H etc. ie this is a DOS program.   
   >>   
   >> So 16-bit DOS programs more-or-less already have access   
   >> to more than 640k/1MB.   
      
   > They already could with EMS or XMS. Jim Leonard (Trixter)'s 8088   
   > had 2 MB of real EMS (not emulated).   
      
   I looked up those terms. EMS involves paging,   
   which is not what I want to do. I just want   
   simple 8086 code to work. Also, my goal is not   
   to get more than 640k on an 8088 at all.   
      
   XMS is also obtaining memory above 1 MiB - not   
   my goal for an 8086.   
      
   > The HX extender's HXDEV16 should have some OS/2 emulation.   
   > So hdpmi16 and NE and DOSCALLS or whatever. (I don't know much.)   
   > Again, OpenWatcom is your friend.   
      
   The support I want would need to go into Freedos,   
   although HXDEV16 would also be fine if it stayed   
   in RM16 and used only 8086 instructions. Do you   
   know if it can run on an 8088?   
      
   That would then be conceptually the same as what   
   I want, and the only change is that I don't like   
   DLLs and intend to provide a new API (PDOS-generic).   
      
   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