-+-+-+-+-+-+-+-+ START OF PART 3 -+-+-+-+-+-+-+-+ X printf ("\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); X printf ("\nContact FSMLK1@ALASKA.bitnet for more information"); X printf ("\n"); X break; X case '$' : X callsysspawn (&buffer`5B2`5D); X break; X case '-' : X commandchar = buffer`5B2`5D; X if (commandchar > 31) X `7B X commstr`5B0`5D = commandchar; X commstr`5B1`5D = 0; X `7D X else X `7B X commandchar = '/'; X commstr`5B0`5D = '/'; X commstr`5B1`5D = 0; X `7D X printf ("\nCommand character changed to '%s'",commstr); X break; X case 'C' : X case 'c' : X done = TRUE; X break; X case 'M' : X case 'm' : X`09`09 strcpy (buffer,macrosend(buffer,macro)); X if (buffer`5B0`5D != '$' ) X dosend = TRUE; X else X dosend = FALSE; X break; X case 'S' : X case 's' : X strcpy (macro`5Bbuffer`5B2`5D`5D, &buffer`5B3`5D); X break; X`09`09 case 'L' : X`09`09 case 'l' : X`09`09 for ( i=0;i != 256 ; i++) X`09`09`09 if(*macro`5Bi`5D != NULL) printf("Macro %c : %s", X`09`09`09`09i,macro`5Bi`5D); X`09`09 break; X `7D X `7D X else dosend = TRUE; X if (dosend == TRUE) X `7B X buflen = strlen(buffer); X status = send(server_socket, buffer, buflen, 0); X if (status != buflen) X closedown ("EmpireClient: send failed", server_socket); X if (status < 0) X `7B X printf ("\nSEND Status = %d\n", status); X printf ("\nVMSERROR = %d, UNIXERROR = %d\n",vmserrno, uerrno V); X `7D X reading = TRUE; X `7D X`09else X`09`7B X`09 if (inbuffer`5B0`5D == C_FLUSH) X`09 `7B X if (redir != stdout) X`09`09 `7B X`09`09`09fclose(redir); X`09`09`09redir = stdout; X`09`09 `7D X inbuffer`5Bstrlen(inbuffer) - 1`5D = 0; X fprintf (redir, "%s", &inbuffer`5B2`5D); X reading = FALSE; X`09 `7D X`09 else X`09 `7B X if (redir != stdout) X`09`09 `7B X`09`09`09fclose(redir); X`09`09`09redir = stdout; X`09`09 `7D X sscanf (inbuffer, "%d %d %d", &trash, &btus, &mins); X fprintf (redir, "\n`5B%d:%d`5D Command : ", btus, mins); X reading = FALSE; X `7D X`09`7D X `7D X netclose (server_socket); X`7D X Xclosedown (message, server_socket) Xchar message`5B`5D; Xint server_socket; X`7B X printf ("%s\n", message); X netclose (server_socket); X exit (1); X`7D X X Xchar *readit(server_socket) Xint server_socket; X`7B X int status, count; X char c; X char buffer`5B1024`5D; X char *msg; X X void *malloc(); X char *strcpy(); X int sys$qiow(); X X count = 0; X c = 0; X while (c != 10) X `7B X status = recv(server_socket, &c, 1, 0); X buffer`5Bcount++`5D = c; X `7D X buffer`5Bcount`5D = 0; X msg = (char *) malloc (strlen (buffer)); X strcpy (msg, buffer); X return msg; X`7D X Xchar *uppercase (a) Xchar *a; X`7B X char *b, *c; X int toupper(); X size_t strlen(); X X c = b = (char *) malloc (strlen (a) +1); X while (*a != 0) X `7B X *b++ = toupper(*a); X ++a; X `7D X *b = 0; X return (c); X`7D X Xint ustrcmp (a, b) Xchar *a, *b; X`7B X char *c, *d; X char *uppercase (); X int strcmp (); X X c = uppercase (a); X d = uppercase (b); X return (strcmp (c,d)); X`7D X`20 $ CALL UNPACK CLIENT.C;1 420986441 $ create 'f' XVax/VMS Empire client V3.4 Xby Mike Kienenberger and supported ( kinda ) by Don Harper X XThis client will run (and compile) under any Vax/VMS system running Wollengo Vng XTCP/IP software, MULTINET TCP/IP, or UCX TCP/IP. `20 X XTheoretically, FUSION and/or EXOS TCP/IP machines might be able to use Xthe UCX executable. (Someone let me know.) CMU-TEK TCP/IP is right out. X`5BOne report says that UCX doesn't work for EXOS.`5D X`20 XThis client works exactly like the unix client (so no whining) except that o Vnly X">" is supported for file redirection (so sue me), control-c kills the clien Vt X(i'll fix that someday), and user-definable macro commands are available. XIt also keeps a database of all your favorite empire Xhosts/ports/countries/passwords so you don't have to worry about that sort o Vf Xstuff. (And almost always guarantees you get your favorite number in any bl Vitz Xgame :-)`20 X XIt now supports spawing a new subprocess out. X`20 XBugs? What bugs? `5Bsee 000read.me`5D X`20 XAvailable at fine FTP sites everywhere (or at least at ftp.cis.ksu.edu). X`20 XMike Kienenberger XYour Friend, XThe Computer of XAlpha-Complex X(gone, but only mostly forgotten) X XNow supoported in spare time by The Grand Quacker of duckland, XDon Harper ( in tempory retirement ) X`20 XTo use the client, issue the following commands: X X $ define empiredir :`5B`5D X $ empire :== $:`5B`5Dclient.exe X Xwhere device and directory are the device and directory you want your curren Vt Xempire game information stored (not necessary, but useful), and Xdevice2 and directory2 are the device and directory where the client.exe Xprogram is stored. X XTo then use the program, just type X X $ empire X Xwhere game-name is the data set (host, port, country, password) that you Xwant to use. X XIf you have a file called empiredir:client.MACROS, you can pre-define your Xfavorite macros. Format is simple, one macro per line, with the macro name Xfirst, then the definition, like: X XMmap # X XAnd in the game type: X X/mM X Xand you will get your map of realm #0. X X XHave fun! X XIf none of this makes any sense, just run the program. X XMike Kienenberger X-SXMLK@Alaska.bitnet X-sxmlk@acad3.alaska.edu X-FSMLK1@acad3.alaska.edu X-mlk@sun1.uafcs.alaska.edu X-mlkienenberg@acad5.alaska.edu X-numerous others X XBut, I wouldn't bother him with many questions, tho..I am the one hacking on Xit nowdays, so just feel free to bother me. Not that you will get a quick`2 V0 Xanswer. :-) X XDon Harper X-don@xray.phys.uh.edu $ CALL UNPACK CLIENT.DOCS;2 778066065 $ create 'f' XMmmap # X Xtarkas.tamu.edu X1617 Xduckland Xlori Xtamu Xempire.bbn.com X1666 XFreehold Xreleased Xopen Xempire.bbn.com X1666 Xfred Xkara69 Xfred Xspcvxe.spc.edu X1617 Xdarkwing Xlori Xspc X# X# Format X# One line per item: X# Hostname ('*' indicates program prompts for it) X# Portname ('*' indicates program prompts for it) X# Country ('*' indicates program prompts for it) X# password ('*' indicates program prompts for it) X# gamename X# You not must put a blank line after gamename X# `5Brepeat above for as many games as you like`5D X# A '#' indicates the end of the data $ CALL UNPACK CLIENT.OPTS;1 1163215891 $ create 'f' X$ define/nolog sys multinet_root:`5Bmultinet.include.sys`5D X$ define/nolog vms multinet_root:`5Bmultinet.include.vms`5D X$ define/nolog multi multinet_root:`5Bmultinet.include`5D X$ cc/define=multinet client/lis X$ link client,sys$input/opt Xsys$share:vaxcrtl/lib Xmultinet:multinet_socket_library/share $ CALL UNPACK COMPILE.COM;1 861493447 $ create 'f' XCompiles under: Wollengong, Multinet, UCX X XWOLLENGONG compiling instructions X To compile the client from the source code, X`09$ define sys twg$tcp:`5Bnetdist.include.sys`5D X`09$ define vms twg$tcp:`5Bnetdist.include.vms`5D X`09$ cc/define=wollengong client X`09$ link client,tcp$lib:twglib/lib,sys$input/opt X sys$share:vaxcrtl/share X X (The sys$share goes on the line immediately after typing the link command V. X The entire ",sys$input/optsys$share:vaxcrtl/share" is optional.) X `20 X Old versions of Wollengong have a different set of libraries in tcp$lib. X You'll have to use all of them (and one twice, I think) and ignore compi Vler X warnings. X `20 X=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- V= X XUCX compiling instructions X`09$ cc/define=ucx client X`09$ link client,sys$library:ucx$ipc/lib,sys$input/opt X sys$share:vaxcrtl/share X X (The sys$share goes on the line immediately after typing the link command. X The entire ",sys$input/optsys$share:vaxcrtl/share" is optional.) X X=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- V= X XMULTINET compiling instructions X`09$ define sys multinet_root:`5Bmultinet.include.sys`5D X`09$ define vms multinet_root:`5Bmultinet.include.vms`5D X`09$ define multi multinet_root:`5Bmultinet.include`5D X`09$ cc/define=multinet client X`09$ link client,sys$input/opt X sys$share:vaxcrtl/share X multinet:multinet_socket_library/share X X (The sys$share goes on the line immediately after typing the link command. X The entire ",sys$input/optsys$share:vaxcrtl/share" is optional.) X`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80` V80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`8 V0`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80 V`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80` V80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`8 V0`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80 V`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80` V80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`8 V0`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80 V`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80` V80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80`80�������� V���������������������������������������������������������������������������� V����������������������������������������������� $ CALL UNPACK COMPILING.INFO;1 2476461462 $ v=f$verify(v) $ EXIT