home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
515.lha
/
NewSer
/
newser.doc
< prev
next >
Wrap
Text File
|
1991-06-08
|
3KB
|
72 lines
Newser Device Doc File
The first thing that I want to say, is that this is not my program. The
code was written by Dan Babcock for an article that appeared in Amazing
Computing Volume 6 No. 2, in February 1991. The article was called
"More Ports for Your Amiga: An I/O Expansion Board" by Jeff Lavin.
It explains how to build a multi I/O serial/parallel board for your Amiga.
The board and parts can be purchased from "The Puzzle Factory, Inc." in
Veneta OR.
Now this is where I come in. I built the board for a friend to add to
his computer. The source code for the device driver was included on a
disk with the purchase of the parts. At this time, I was also working on
SerServer Version 2.20. Well SerServer requires control of the DTR line
to work properly. There was no method in newser, short of hitting the
hardware to control the line. I have always felt that Commodore made a
mistake in the code for the serial.device, not having provided a method
in message passing, to control the line. I feel that ASDG did it right in
the siosbx.device to provide the service in message passing. I then
decided to add the code to newser.device. This is how it works;
Name - SetCtrlLines - Allows setting of various control lines
Function - This function allows the state of various control lines to
be affected without closing the expansion serial device.
The effect of the command will take place immediately.
IO Request Format
io_Command - SIOCMD_SETCTRLLINES (16 decimal or 0x10 hex)
io_Offset - A bit mask containing a one in each bit position which
will be changed. Any bit position with a zero value
will be unchanged irrespective of the value contained
in io_Length.
io_Length - The values each affected bit should be set to. Any bit
position which has a zero in the corresponding position
in io_Offset will be ignored.
The valid bit positions (masks) are:
SIOB_SET_RTS - bit position 0.
SIOB_SET_DTR - bit position 1.
To turn off RTS, you would send the following message;
IOB->io_Command = 0x10; /* The command */
IOB->io_Offset = 2; /* specify bit 1 be changed */
IOB->io_Length = 0; /* it will be changed to a 0 */
To turn RTS off and DTR on at the same time, the following message is sent;
IOB->io_Command = 0x10; /* The command */
IOB->io_Offset = 3; /* specify bits 0 & 1 be changed */
IOB->io_Length = 1; /* bit 0 set and bit 1 unset */
So thats how it works. If you want to use SerServer 2.20 with this card,
then I suggest that you use this code (the device driver) to control the
hardware. SerServer will not function properly, if you do otherwise. This
LHARC contains the executable, the modified source code, a header file and
this doc file. I hope Dan or Jeff, see fit to change the original source,
to handle this new command.
Mike Mossman CIS - 76515,3017
FIDO- 1:255/1.4
PUNTER - NODE 95