[comp.os.vms] XMODEM for VMS and VAX C command input

jeh@crash.cts.com (Jamie Hanrahan) (01/29/88)

In article <8801271818.AA02217@ucbvax.Berkeley.EDU> rsine@NSWC-WO.ARPA writes:
>Netlanders,
>	I have input for a couple of questions I saw on the net.  ...
>	Other ways to accomplish this is to use the set command and define
>the command.  This way is a bit more fancy as switches and other nicities
>can be employed, but you pay the resource/time price for doing set commands
>(big time).  Yet another way is to modify the DCLTABLES, but you have to
>do this each update of VMS, unless of course you make a seperate DCLTABLE
>called something else and don't want new/changed commands syntax (especially
>with even versions of VMS).

You can also use LIB$GET_FOREIGN, then pass the `gotten' command line to
the DCL parser via CLI$DCL_PARSE .  With this technique you build a CLD 
file, but when you SET COMMAND on it you specifiy an object file as output,
which you link with the rest of your image.  This is really intended for
utilities that have their own build-in command language (AUTHORIZE, for
instance), but it works just fine for foreign commands.  This way you
get the best of both worlds -- you get to use all the niceties of the
DCL parser, including handling of positional and global qualifiers, 
default values for qualifiers and parameters, prompting for missing
parameters, etc., etc., but you don't have to do a SET COMMAND for the
user (which takes time when they log in) or on the system's DCLTABLES
(which makes for grief at update time).  (Thanks to Ken Coar of DEC for
this suggestion.)

woo@pioneer.arpa (Alex Woo) (01/30/88)

Is there a version of YMODEM or ZMODEM available for VMS?
How about Kermit's sliding windows protocol?

Thanks for the information,

Alex

dave@terminus.UUCP (VAX Headroom @ The End of the Galaxy) (02/03/88)

If you define your invoking command like the following:

prog:==$ $disk:[directory]file

and then invoke it like this:
prog param1 5 7

Then argc will contain 4 and argv[0] will contain the pathname of the
program while argv[1] to argv[3] will contain param1 5 and 7 respectively.

This makes moving programs from unix enviroments easy although I usually
convert them to the CLD syntax anyway as I prefer the parsing (and the
consistency) of using DCL command lines.

the arg stuff should be declared like this:
main(argc,argv)
int argc;
char *argv[];
{
blah blah blah
}
-- 
...ihnp4!utah-cs!utah-gr!uplherc!sp7040!obie!terminus!trntor.dnet!dave
				"...between the streets of dallas and the
				 beaches of miami...this was max headroom's
				 finest hour."