[comp.sys.amiga.tech] Flexible CON: handler

robocop@netmbx.UUCP (Thorsten Ebers) (05/05/88)

This text is from Ralph Babel.He sent it to me,to post it.
So,please,any questions should be posted,because I archive them.
Then I send Ralph the weekly new stuff of comp.sys.amiga.tech.
Take also note that you should not mail me outside Germany.
Thanks Thorsten.

The text starts now (wow :-) ):

This is an idea I would like to see being implemented in
maybe Kickstart 1.4. It would enable the user to combine the
features provided by NEWCON: or CON: with devices other than
the console.device.

To implement a new disk device to be used with the standard
filing system or FFS you must simply create a new
exec-device that behaves like the trackdisk.device, a new
MountList entry, that's it! Oh yeah: except for RAM:, VDK:
and the like, but you know what I'm hinting at.

Imagine we could do the same with the console-handler.
Imagine an environment vector for the console-handler and a
MountList entry like ...

AUX: Handler = L:NewCon-Handler
     Device  = DEVS:serial.device /* hopefully an ANSI-terminal */
     ...

The benefits are obvious, I think, although there might be
some problems: The console-handler _might_ need more than
just the CMD_READ and CMD_WRITE calls (I don't think so), so
we probably have to write a VERY SIMPLE new device or
enhance the serial.device.

Second problem: The console.device is special since it has
to be connected to an intuition window, quite difficult via
the serial port :-) . Add a "ConsoleType" keyword to the
MountList entry:

 0 = open intuition window as specified by the filename
     after the device name (CON:0/0/640/200/foo), then pass
     window pointer to the IOStdReq and open the device.

 1 = ignore filename, don't open or close anything, just the
     device as specified in the environment vector. This
     type should probably ignore ACTION_DISK_INFO.

An additional flag would specify if the console-handler is
to be opened as RAW or CON or even as NEWCON initially (they
will hopefully be combined into a single handler for
Kickstart 1.4 ...). Maybe a "Unit" keyword, same as the
default filing system (multiple serial ports, aarrrgghhh -
not again :-) :-) :-) ). And the size of the IORequest to be
used.

I think these ideas wouldn't be hard to implement. A
different method would be to utilize the filename after
"CON:" to pass additional information, just like "ConMan"
(CON:Dserial.device). At least it would obsolete all
Aux-Handlers (and make AUX: more compatible to CON:) and
make interfacing a new console-device much easier. Don't
care about ACTION_RAW_MODE, line buffering, history, CTRL-X
or whatever: Your device just talks ANSI - that's it!

Why hasn't anyone thought of it before? Or has anyone? Did I
miss anything? Any comments & ideas appreciated, especially
from C-A.

BTW: The MOUNT command should search the resident-list for
the handler specified in the MountList, so re-entrant
handlers won't be loaded several times (like PRT:, PAR: and
SER:).

Thanks,

!ralph

Ralph Babel, Falkenweg 3, D-6204 Taunusstein, FRG