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,967 of 4,255   
   Paul Edwards to All   
   NE (new executable)   
   20 Nov 23 13:29:07   
   
   From: mutazilah@gmail.com   
      
   (possible double-or-more-post - google groups   
   stopped working and I have switched to using   
   eternal september using pdpnntp under PDOS/386)   
      
   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).   
      
   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.   
      
   And maybe I will distribute PDOS with 16-bit, 32-bit   
   and 64-bit versions of all executables, and the loader   
   detects which system it is on and loads either PDOS/86,   
   PDOS/286, PDOS/386 or PDOS/x64.   
      
   I have committed changes to PDOS to demonstrate a   
   simple NE executable working. It's crude and only for   
   demo purposes.   
      
   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.   
      
   On PDOS/86 you get the printf too.   
      
   When the program terminates, PDOS/86 freezes   
   because of current limitations.   
      
   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.   
      
   But the writes to stdout are lost instead of appearing on the   
   console that launched the application. For no reason I can   
   see. So an intercept for INT 21H would need to be put in place   
   to get those writes sent to the console (if you want to use   
   32-bit Windows instead of 16-bit PDOS/x86).   
      
   Not sure what the requirements of the intercept would be,   
   and whether an existing TSR like ANSIPLUS might do the   
   trick, and solve the problem of ANSI output at the same time.   
      
   I have committed code changes to PDOS, but they aren't   
   active by default.   
      
   BFN. Paul.   
      
      
   P.S. I have since also got support for __AHINCR   
   (the non-existent kernel.dll will get a 0x1000   
   offset as required for RM16).   
      
   --- 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