delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2014/07/11/04:45:08

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
Date: Fri, 11 Jul 2014 10:38:11 +0200
From: Mateusz Viste <mateusz DOT viste AT delorie DOT com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0
MIME-Version: 1.0
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Using outportb() with djgpp
References: <almarsoft DOT 2508132549819646607 AT news DOT free DOT fr>
In-Reply-To: <almarsoft.2508132549819646607@news.free.fr>
Lines: 49
Message-ID: <53bfa273$0$1981$426a74cc@news.free.fr>
Organization: Guest of ProXad - France
NNTP-Posting-Date: 11 Jul 2014 10:38:11 CEST
NNTP-Posting-Host: 82.225.72.113
X-Trace: 1405067891 news-1.free.fr 1981 82.225.72.113:51894
X-Complaints-To: abuse AT proxad DOT net
Bytes: 3019
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Hi,

Thank you all for your kind replies.

The "weird interrupt happening during I/O" sounded sexy enough that I 
had to test it out immediately - I replaced all my inportb() and 
outportb() calls with a function that first call disable(), then do the 
in/out operation, and then call enable() if interrupts were enabled 
before. Unfortunately this doesn't changed my problem - my PC still 
reboots wildly on random i/o operations on the 0x330 port.

Some context: I am trying to play a few notes on my Sound Blaster 64 
(ISA) card using its embedded MPU401 synth controller. It works pretty 
well when compiled in realmode with Turbo C 2.0.1, but then I am having 
a bit of hard time with memory management (64K limit et all), so I 
thought I'd recompile it under DJGPP. And then I experienced those wild 
reboots I was writing before. Interestingly enough, the protected mode 
version works fine on DOSBox.

Of course I am aware that such 'bug report' is good for nothing - I was 
just wondering whether there is some top secret information about doing 
I/O calls from protected mode that I ignored, but I understand now that 
there is nothing specific to do in protected mode (or at least nothing 
much else than in real mode), so I will try to put together some 
minimalistic test program to reproduce the problem on the smallest 
possible example, and then I'll see where it leads me (might get back to 
you then).

Again, thanks for all your prompt replies!

cheers,
Mateusz




On 07/10/2014 10:20 PM, Mateusz Viste wrote:
> Hi,
>
> I am trying to write to a hardware port from within djgpp, using
> outportb(). It does work from time to time, but often outportb() will
> make the whole PC reboot. Specifically I am writing to port 0x330 (to a
> MPU401 adapter). If using the same code with turbo C, it works
> perfectly. Hence I am wondering: are there any special "rules" I should
> be aware of when trying to outportb() from within protected mode?
>
> regards,
> Mateusz

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019