It was thus said that the Great 9000 VAX once stated:
I met a problem in Watcom C 11.0. I uses wcl which makes 8086 code.
The code is running on a 386. I got wired result with
printf("%x %x %x ",inportb(H_ADDR2), inportb(H_ADDR1), inportb(H_ADDR0));
but the following code worked as expected,
printf("%x ", inportb(H_ADDR2));
printf("%x ",inportb(H_ADDR1));
printf("%x ", inportb(H_ADDR0));
The hardware is straightforward and unlikely to have problem. I don't
have time to determine the real source of this problem, though.
Did you need to read the ports in the sequence H_ADDR2, H_ADDR1 and
H_ADDR0, or could they be read in any sequence? Because in C, parameters
are evaluated right to left ...
-spc (rarely is it an issue though ... )