Path: utzoo!mnetor!uunet!husc6!cmcl2!nrl-cmf!ames!amdahl!kim From: kim@amdahl.uts.amdahl.com (Kim DeVaughn) Newsgroups: comp.sys.amiga Subject: Re: Comments on Perfect Vision? Message-ID: <22073@amdahl.uts.amdahl.com> Date: 6 Feb 88 02:35:30 GMT References: <5381@elroy.Jpl.Nasa.Gov> Organization: Amdahl Corporation, Sunnyvale, CA 94086 Lines: 92 Summary: programable control from other applications, ARexx In article <5381@elroy.Jpl.Nasa.Gov>, rgd059@Mipl3.JPL.Nasa.Gov writes: > > Someone in another message asked about using the digitizer from application > programs. The source code is not included (at least not currently). If you > need the digitizing code, call up SunRize and you can work something out. > The source for Perfect Sound is provided with that package, so they don't > have much problem with releasing such things. This is a good example where an interface to Bill Hawes' ARexx package could give you what is wanted. Granted, both PerfectVision and the other application need to support an ARexx interface, but that is quite easy to do .. really! I've added an ARexx interface to Matt's "dme" editor (v1.29), and the basic interface code was only about 200 lines of code, and added about 1.5K to the executable. Also, it only took maybe 20-25 lines of code added to Matt's original sources to hook it in (which Matt has improved on, I believe). ARexx (in case you don't know), is a general purpose interpreter that executes the REXX programming language, as defined by Colishaw (of IBM Cambridge, as I recall). Certain characteristics of the language make it an ideal general purpose macro processor (any "command" in an ARexx program file that the interpreter itself doesn't understand is passed to a user specifiable "host" program for processing). As such, it makes an excellent "exec" or "script" processor for any application (such as a shell, or an editor, or any other application that processes "commands" [which menu selections can also be thought of]). As an example of a very simple dme/ARexx macro, I've attached "save.dme" to this posting. Now when I want to save a file in dme, I can just hit ESC, and type "save" or "save somefilename", and it happens (I don't have to remember to use "saveold" and "saveas"). ARexx has several other useful capabilities besides being a macro processor, such as providing easy access by any application to user wirtten shared.libraries, but I haven't explored them as yet. I don't intend for this to be an advertisement for ARexx (though it is probably one of the best bargins available), but to point out how easy it really is to provide an external interface into any application, that any similarly interfaced application can take advantage of. And one that provides a *significant* increase in functionality quite cheaply. Since you mention that v1.1 of the s/w is being worked on, I'd like to suggest that you consider this approach. This way *everyone* can have access to PerfectVision's "innards", and you don't need to worry about giving source out, etc. As to who else is working with ARexx ... Charlie Heath has said that the next release of TxEd will support the ARexx interface, and I know that the developer of at least one commercial communications program is considering it. Also you may see a version of the VT100 program that Tony Sumrall has been enhancing supporting it, and possible a version of "shell". Not to mention that Bill Hawes' own WShell/Conman program will support it. And it has been rumored that CBM and Bill have had some discussion about having a future version of the Amiga OS support the ARexx interface directly ... Anyway, enough "preaching" about the virtues of ARexx, but I do think it deserves your serious consideration (as well as consideration by any and all Amiga developers). /kim Here's the "save.dme" example: /* Saves the file with the filename specified by the 1st argument. */ /* If no name is specified, the file is saved with it's original */ /* filename. Arguments following the 1st one are ignored. */ /* */ /* Kim DeVaughn 12/21/87 */ options failat 5 rc = 0 parse arg filename junk if filename = "" then saveold else saveas filename exit rc -- UUCP: kim@amdahl.amdahl.com or: {sun,decwrl,hplabs,pyramid,ihnp4,uunet,oliveb,cbosgd,ames}!amdahl!kim DDD: 408-746-8462 USPS: Amdahl Corp. M/S 249, 1250 E. Arques Av, Sunnyvale, CA 94086 CIS: 76535,25