ingoldsby@calgary.UUCP (Terry Ingoldsby) (08/18/86)
There seem to be some people out there who know something about OS9 Level II. Perhaps (pretty please) you might share some info with the rest of us lowly Level I users. Specifically, I would like to know how Level II accomplishes the extended address space. Are programs limited to 64K? Is data limited to 64K? Any info would be most appreciated. Terry Ingoldsby ...!ihnp4!alberta!calgary!ingoldsby Nobody even pays enough attention to me to warrant a disclaimer!
dibble@rochester.ARPA (Peter C. Dibble) (08/21/86)
In article <316@vaxb.calgary.UUCP>, ingoldsby@calgary.UUCP (Terry Ingoldsby) writes: > Specifically, I would like to know how Level II accomplishes > the extended address space. Are programs limited to 64K? Is data limited > to 64K? Any info would be most appreciated. Each process under Level Two can have ALMOST 64k. It divides that space between code and data however it likes. Level Two requires memory management hardware, a DAT (Dynamic Address Translator). The DAT maps enough pages to make up a 64K into the address space of each process. On the CoCo, with 8K pages, that is eight pages per address space. If the process doesn't need a full 64K it gets copies of a special dead page in the unused part of the range. If a process needs more than 64K it can do a number of complicated things that aren't actually much worse than what PC users do with segments. You can move data between address spaces, or simply start several processes to get access to more than 64K. The easiest way to share data amoung processes is with a data modules mapped into all the address spaces. The most common problem with Level One programs running on Level Two is references to addresses that aren't in your address space. Brief toot on my horn: I cover Level Two very carefully in my part of "The Complete Rainbow Guide to OS-9." Tandy has been selling it for some time. Do they know that they've been explaining the advantages of Level Two to CoCo owners? Peter Dibble oops: I said ALMOST 64K... Most hardware doesn't switch DAT registers when there is a hardware or software interrupt. Unless the hardware does this and provides memory-to-memory DMA, about 256 bytes of OS-9 have to go at the top of each address space to provide interrupt vectors and some services that can't dissappear each time the address space is munged with.