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 2,622 of 4,255   
   mutazilah@gmail.com to Scott Lurndal   
   Re: PDOS/86   
   15 Jul 21 13:53:27   
   
   From: muta...@gmail.com   
      
   On Friday, July 16, 2021 at 6:27:05 AM UTC+10, Scott Lurndal wrote:   
      
   > >Also, it is sounding like this will work in PM32. Will it also   
   > >work in long mode? I'm not familiar with their selectors   
   > >or anything else.   
      
   > Long mode doesn't use selectors. There is one flat physical address   
   > space (2^40 to 2^64 bits in size depending on processor implementation).   
      
   Ok, thanks. In that case, my huge memory model programs,   
   on a machine with 4 GiB of memory, should be able to do   
   a divide of 64k followed by a multiply of 1, right?   
      
   Do I lose the ability to lose some 16-bit instructions,   
   even compared to PM32?   
      
   Scratch that. I just realized - my 8086 programs need   
   to manipulate segment registers. PM32 with 512 MiB   
   addressability is as high as I can go unless some other   
   processor provides more selectors. Or instead of   
   selectors, flexible shifts instead of a hardcoded 4.   
   Well, a hardcoded 16 would be fine these days too,   
   if such a processor (or mode) is made.   
      
   > Once paging is enabled, the virtual address is a full 64-bits.   
      
   I'm not interested in paging except if it fixes a problem   
   with what I wanted to do un-paged, e.g. fill holes caused   
   by the A20 line not being enabled, or blocking NULL pointer   
   assignment, or protecting low memory so the OS can   
   protect itself. But I don't want to consider that for the   
   moment. I'm still trying to write 8086 programs "properly".   
      
   > Segment registers (e.g. %fs, %gs) can be loaded with an address that will   
   > be summed with the computed operand address when the segment override is   
   > used. There are special instructions to load and swap %fs values. Linux   
   > uses a segment register to point to per-core operating system data.   
      
   Ok, I don't need that at the moment. I'm just trying to   
   get the equivalent of MSDOS to work. Single core.   
      
   > This is all documented in the Intel reference manuals, which you   
   > should be intimately familiar with if you desire to write an operating   
   > system for the intel processor family.   
      
   If I had done that, I would have been stuck in a rut.   
      
   It took more than 10 years I think for "separate memory"   
   to be invented (by somitcw) to solve the problem of   
   multiple ATL address spaces, despite the solution being   
   very obvious and conceptually simple once verbalized.   
   Despite plenty of good brains being thrown at the   
   problem. Absolutely everyone, including him, was stuck   
   in a rut. Even then he didn't create it in a vacuum, but as   
   part of yet another discussion on how to solve the problem.   
      
   I just need a little bit of specific knowledge to help me on   
   my way for the ultimate 8086+ processor. If that matches   
   what Intel/AMD came up with, cool.   
      
   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