Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!sun-barr!sun!pepper!cmcmanis From: cmcmanis%pepper@Sun.COM (Chuck McManis) Newsgroups: comp.sys.amiga.tech Subject: Serial Device(s) Message-ID: <109829@sun.Eng.Sun.COM> Date: 13 Jun 89 21:56:49 GMT Sender: news@sun.Eng.Sun.COM Lines: 70 Serial devices are one of those things that everyone and their avocado plant seems to have an opinion on. My plant is no exception. The sort of general question I raised to Commodore a year and a half ago when various folks were looking intensely at this problem, was why do people care what "device" the serial interface is using? The reason is and continues to be, because SER: is broken and doesn't provide the needed capabilities of a "proper" serial device. AUX: was supposed to fix that sort of. Generally, there are two ways in which one might use a serial device. The first way is as a server driven port. Meaning that the host computer controls what goes out, and usually expects nothing, or very small things to come back into it. This is the SER: model, and it works well for plotters and printers and other serial devices. The second way in which these ports are used is as interactive data streams. Either externally driven such as in a BBS application, or internally driven in the case of a terminal emulator program. In both cases there are two "peers" on either end of the connection, each generating information and data in an unpredictable manner. This is what AUX: is supposed to handle. So the question arises, as it inevitably does, what about name spaces? My idea was that with some minor modifications you could make a name space "under" AUX: that looked just like a disk name space. Specifically, you allow the handler to deal with locks and in those locks it stores useful information about the device. So how would that look to the user? Well maybe you could type 1> dir AUX: asdg (dir) amiga (dir) foobar (dir) And then 1> dir AUX:amiga 110 (dir) 300 (dir) 600 (dir) ... 19200 (dir) And then 1> dir AUX:amiga/1200 7E1 7E2 7O1 7O2 7M1 7M2 7S1 7S2 8N1 8N2 And for connections to tymenet you might want to say 1> Assign MODEM: AUX:amiga/1200/8N1 Then tell your terminal emulator to open MODEM: and it would do the right thing. Want to switch to 2400 baud? Call Examine() on the Modem lock and find the baudrate number (mfgr//options) Try for a Lock on AUX:mfgr/2400/options and if it works then great. Same goes for setting the option bits. Now of course the directories here would be completely fabricated by the name space agent for AUX: which is similar to the file system handler for disks. If you could get an established a set of packets/device commands for setting these parameters, and get manufacturer buy in. Then it would be a fairly simple matter to "install" new serial ports, simply drag the device into a special drawer (maybe Expansion/serial) Doing assigns are still problematic at the workbench level. Read() and Write() would work as expected, and the world would continue to be orthogonal. Comments ? --Chuck McManis uucp: {anywhere}!sun!cmcmanis BIX: cmcmanis ARPAnet: cmcmanis@sun.com These opinions are my own and no one elses, but you knew that didn't you. "A most excellent barbarian ... Genghis Kahn!"