Here is a question re DOS/Windoze 3.1/Win 95/protected mode. What are the holes (if any) in PC Protected mode? I want to be able to run a piece of code under Windoze, etc, and have it achieve R/W access to _all_ of the PC's memory space, in flat, 32 bit mode. Ideally this should be done without relying on any DOS, BIOS, DPMI or Windows function calls or interrupts. The aim is for the code to be totally self-contained, and also to be as little contaminated with PC hardware specific 'features' like segmented memory pointers as possible. It should have sole control and knowledge of any GDT table entries and anything else it requires to achieve this. It should not depend on any particular compiler library functions, but should explicitly code all operations. At the moment when I write C code that needs to deal with memory, I use unsigned longs for all memory pointers, and just convert to far pointers when needed. I _never_ do address arithm on pointers, so I can ignore most of the stupidity of segmented addresses. For my purposes speed is not of great significance, but minimizing dependence on the PC so-called 'architecture' is. I know a bit about the 80x86 addressing modes, enough to know how much work will be involved if I start to muck around with GDTs and privilege levels. Since my only interest in all this stuff is to effectively bypass it, I don't want to go to that trouble unless I have some confidence that what I want is achievable. This is a part time project, and I have very little time available for it, hence my apparent laziness in not just plowing into 'Undocumented DOS/PC/Windows' and spending weeks finding out for myself. I'm hoping that some kind soul who has already dealt with this problem can show me a quick way to do it. I think that what I need is a way for a piece of (my) code, running at privilege level 3, to be able to cause some of itself (or something it created) to run at privilege level 0 - system level. Of couse, if the protection scheme was perfect, this would be impossible. I'm hoping though, that the severe kludginess of the PC/DOS/Windows system has left at least one hole somewhere, and that I won't have to waste much time learning a vast amount of PC sludge to do it. I also loathe programming in 80x86 assembler, and go to great lengths to do even low level PC programming in C, rather than assembler. Actually, this turns out quite well once you decide to not use the native pointer types, and have a few basic functions to deal with all the ridiculous DOS memory structures. So hopefully whatever is needed to slip one past the memory protection scheme can be achieved in C too. What I need this for, generally, is an investigation of hardware independent, minimalist, interpreted operating systems. More as a learning experience for me than in the hope of producing anything of great significance. Any help would be greatly appreciated. Guy Dunphy NB See article '32 bit tricks for embedded controllers' in DEC 95 issue of Circuit Cellar Ink. Way to get 32 bit addresses in DOS! It's almost a reply to my question.