Link to home
Start Free TrialLog in
Avatar of mkdjo
mkdjoFlag for Germany

asked on

Disable FIFO

My serial port on an old notebook uses the FIFO-Mode. What I need to do is to disable this. I expect this is a MS-DOS configuration task, but first I found no DOS-Topic anymore and second my programm runs under win3.11.
Thanks
Avatar of My name is Mud
My name is Mud

The FIFO feature is the way the UART handles the data that Recieve/Send, So unless your UART can be shifted from this mode to what ever mode you want (LIFO pipe), it may be changeable in the BIOS Setup, in the other hand since you have installed Win3.x, i might say that you have an old PC, in which case i think is not posible, unless you provide the PC with a new Disk Controller...

Now why do you wanna changed in the first place???
Avatar of mkdjo

ASKER

Because I want to use an external peripheral device which recommends no FIFO port. I don't know if it expects LIFO. It is an old notebook, which I don't know the ports too. But I expect it uses the UART 16550,  which I expect to use more modes.
ASKER CERTIFIED SOLUTION
Avatar of SunBow
SunBow
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Surfers,
Also consider looking at programs, like terminal emulators (aka VT100, or those targetted to BBS), that like running DOS (speed/control/price) and need these DOS configuration options.
Avatar of mkdjo

ASKER

I have deleted DOS and installed W95. Now it works fine. Only installing W95 over DOS does not solve this problem.  Now it is only a theoretical question, but I still want to know how to disable it.
SunBow, I will look how W95 deactivates the FIFO. Maybe this will help to know.
Avatar of mkdjo

ASKER

Tried to look at a different way. A colleague wrote a program with pascal to disable the fifo.

program setfifo;
const com_adr : array [1..4] of word = ($3f8,$2f8,$3e8,$2e8);
var portnr, state, result : integer;

procedure fifoOnOff (comport ,state : integer);
begin
  port[com_adr[comport]+2] := state and 1;
end;
begin
  if (ParamCount <> 2) then begin
    writeln ('SETFIFO: Enable/Disable FIFO-Mode of UART');
    writeln ('Call: setfifo <COM-Nr> <0|1>');
    exit;
  end;
  val(ParamStr(1),portnr,result);
  val(ParamStr(2),state,result);
  fifoonoff (portnr,state);

You took me to the right way SunBow. Thank you very much, and please post it as an answer.
end.
I believe if you like a comment, you can now accept is as answer.  I still have to post my own Q's to find out.

In Win95, most recommendations on use of its TAPI that include the UART issue, also recommend for 16550 setting receive and transmit buffers to high (14/16), ensure handshaking flow control is harware, and to pump the BPS up as high as you can, like to 115200.

Some equipment and WANs cannot handle, so this is no sure thing, just other ways to improve speed if you can control the environment.  External modems for example, may not keep up as well as internal ones.

I'd be interested in interaction between your pgm & Winxx, if they behave well, or if Win just assumes there've been no changes since booting it.  I ran some VB once and it did not produce same results as TAPI.  That could have been just me.
Avatar of mkdjo

ASKER

There is no button to graduate a comment, at least I can't see one. I will look how this is possible.

I don't  know the interaction with windows. Looks like my windows accepted this command, even DOS accept this command. (on a different old notebook)
Avatar of mkdjo

ASKER

There is the botton. Thank you very much.