| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | OS/2 com.sys ioctl |
The OS/2 PDD reference has some working examples of ioctls for 32-bit
OS/2 code, but none for 16-bit DOS code. It just says "use the DOS INT
21h ioctl interface." It would help to know how!
I google'd for hours without finding a working example. I gave up. But
some time later, I read Ray Gwinn's sio160d\sioref.txt and noticed that
his SIO supports some ioctls, like the original IBM com.sys. And what do
you know, he has a working example of how to call the ioctls from DOS 16
bit code (in assembler). At last, the missing information I needed.
I also learned that IBM's com.sys from MCP2 suports my shared IRQ 2-port
PCI serial card, and backports to WARP 4.
I think I can write a FOSSIL wrapper that loads DOS PCBoard; the key to
making it work is the DOS ioctl interface. I used what I learned from
Ray, and wrote an example in C (Turbo C 2.0+ or Borland C++ 3.1+) that
sets the baud rate. With this interface, you can control all details of
how com.sys works.
I may be the only person on the planet interested in this, but just in
case, here is the code ...
# include
# include
# include
# include
# include
typedef unsigned short USHORT;
typedef void VOID;
void
dos440c (USHORT hand, USHORT func, VOID far *parm, VOID far *data)
{
asm push ds;
_DS = FP_SEG (data);
_DX = FP_OFF (data);
_SI = FP_SEG (parm);
_DI = FP_OFF (parm);
_CX = func;
_BX = hand;
_AX = 0x440c;
geninterrupt (0x21);
asm pop ds;
if (_FLAGS & 1) {
; /* error, do something */
}
}
void
main (void)
{
int fd;
unsigned short baud = 19200;
fd = open ("COM1", O_RDWR);
if (fd == -1) {
perror ("failure opening com port");
exit (EXIT_FAILURE);
}
dos440c (fd, 1 << 8 | 0x41, (VOID far *) &baud, (VOID far *) 0);
close (fd);
exit (EXIT_SUCCESS);
}
--- PCBoard (R) v15.4/M 250 Beta
* Origin: Torres Vedras - Portugal (2:362/6)SEEN-BY: 3/0 633/267 280 640/384 712/0 620 848 @PATH: 362/6 240/1120 261/38 712/848 633/267 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.