NNTP-Posting-Date: Tue, 22 Jul 2003 13:27:31 -0500 From: "Teece" Newsgroups: comp.os.msdos.djgpp References: <3iGdna0c9-Mz-oCiU-KYvA AT giganews DOT com> Subject: Re: New to djgpp. Questions about protected mode, etc. Date: Tue, 22 Jul 2003 11:27:30 -0700 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4807.1700 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4910.0300 Message-ID: Lines: 72 X-Trace: sv3-w48AaCRO3lJGiRL9S4sCDElvBiWRQC8AEgoJYL8bB8uJ2cYttkFueXdSSu+gw8NRXHOvoZTj40gGDCI!YC/gnOoqeceZkMyiabrDdXMJN42g8uS8A/7K6jKlIG9XDYm8qcFnbqgN7Q== X-Complaints-To: abuse AT giganews DOT com X-DMCA-Notifications: http://www.giganews.com/info/dmca.html X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.1 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Ben, Thank you for the reply. One other question: I went to the DJGPP download site and they wanted to know what operating system I wanted to use. I think that they are assuming that the compiler will be run on the same operating system that the executables will run on. Well, the answer is that I want to use the compiler/assembler on WinXP or Win2K (or even Win98). But I want to run the executables under MSDOS. What should I say when downloading DJGPP? My expectation is that the compiler will run on any of the operating systems but the executable determines if there is a DOS extender needed, so my guess is that if I want to run the executables on DOS then that is the version that I download. Thank You for your help "Ben Peddell" wrote in message news:JZdTa.8844$OM3 DOT 1217 AT news-server DOT bigpond DOT net DOT au... > Teece wrote: > > Please bear with me since I am not all that sure about how to ask the > > questions that I have. > > > > I have an application that I want to develop for the PC with special > > hardware that will run on the PCI bus. I will need to send data from the > > program directly to the hardware. It is not necessary that I use a > > sophisticated operating system like XP or even any version of Windows. > > Therefore I can avoid the difficulty of writing Windows device drivers > > for the new hardware, etc. > > > > I suppose that I could go a couple of ways. One way would be to use good > > old DOS, which does not run in protected mode, and use DJGPP (or VC1.52, > > I think) to obtain an executable. Since DOS does not know about > > protected mode I would not cause a segmentation fault when I directly > > access the PCI hardware. Is this correct? > > > Yes. > You can also use the PCI BIOS in real mode or protected mode. > You can read and write PCI Configuration Registers using the PCI BIOS, > then do direct I/O to the memory and ports of the device. > > > I was reading in the DJGPP documentation that DJGPP has a DOS extender. > > This was described as a layer of software that "traps the call, switches > > the CPU to real mode, reissues the call, waits for the service to do its > > thing, then switches the CPU back into protected mode, and returns to > > the application code that called the real-mode service". > > > Actually, DJGPP uses DPMI. It only switches to V86 mode when it needs to > issue a real-mode call (such as Disk I/O), or an interrupt which is not > fully handled by the program. > > > Does Windows have a DOS extender? Is it not possible to run old DOS > > programs on XP in what passes for a DOS emulator? > > > Windows has DPMI. Alas, Windows NT/2k/XP do not permit direct port I/O > without being severly hampered ("helped"). > > > Does Linux have a DOS extender? Will an executable made with DJGPP run > > on Linux? > > > A compiled DJGPP executable will not run natively on Linux. > However, a DJGPP program can be easily ported to Linux (provided you > don't use too much DJGPP-specific stuff). > > You'd need to make a kernel module to access the ports of the device. >