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