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,175 of 4,255   
   Alexei A. Frounze to muta...@gmail.com   
   Re: exceeding 64k   
   22 Apr 22 09:25:12   
   
   From: alexfrunews@gmail.com   
      
   On Friday, April 22, 2022 at 5:16:36 AM UTC-7, muta...@gmail.com wrote:   
   > With recent (approx a year ago) enhancements to   
   > SubC, the text segment exceeded 64k, and since   
   > SubC only supports small memory model for DOS,   
   > that meant that DOS stopped being self-hosting.   
   >   
   > The solution is to move to medium/large, but I'm   
   > wondering whether anything other than the 8086   
   > supported more than 64k of code while still using   
   > 16-bit registers.   
   >   
   > I know some things like the Commodore 128   
   > allow memory to be banked out to access more   
   > than 64k, but correct me if I'm wrong, but I assume   
   > that means getting the C programmer to add   
   > bank-switching code to their program, instead of it   
   > being transparent like it is on the 8086 (the compiler   
   > takes care of generating segment loads).   
   >   
   > And I know that "overlays" exist, but once again it is   
   > something the programmer needs to be involved in   
   > (I think - I don't know much about overlays).   
   >   
   > For a non-kludged solution, is the 8086 all there is?   
   >   
   > Thanks. Paul.   
      
   One typical solution is to split the compiler into several   
   stages, each executing the other as a separate program   
   with the communication between them done via files   
   containing intermediate results.   
   E.g. one stage preprocesses the input, another is   
   the front end that parses declarations and statements   
   and produces intermediate representations of those   
   and then there's the back end that takes that and   
   turns it into machine code.   
   Try to split the compiler into more stages.   
      
   This is very much like overlays, but it uses only conventional   
   primitives (file I/O, system()/exec*()/spawn*()) available in   
   any semi-decent OS.   
      
   Alex   
      
   --- 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