source: trunk/third/kermit/ckermit.ini @ 10780

Revision 10780, 24.5 KB checked in by brlewis, 27 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r10779, which included commits to RCS files with non-trunk default branches.
Line 
1COMMENT - Standard C-Kermit initialization file
2;
3; For C-Kermit Version: 6.0.192
4;
5; Filename:
6;   .kermrc     (UNIX, OS-9, Aegis)
7;   CKERMIT.INI (OS/2, VMS, OpenVMS, AOS/VS, Atari ST, Commodore Amiga)
8;   ckermit.ini (Stratus VOS)
9;   K95.INI     (Kermit 95 -- but this big version is not used there)
10;   K2.INI      (Kermit/2  -- but ditto)
11;
12; Authors:
13;   Frank da Cruz, Christine M. Gianone, Jeffrey Altman
14;   Columbia University, New York, NY 10025-7799, USA
15;
16; Version 5A(188): 23 November 1992
17; Version 5A(189): 29 June 1993
18; Version 5A(190): 04 October 1994
19; Version 5A(191): 17 April 1995
20; Version 6.0.192:  6 September 1996
21;
22; This is the standard and recommended C-Kermit 6.0 initialization file.  To
23; override settings or definitions made in this file, to add new settings or
24; definitions, or to make any other desired customizations, create a separate,
25; personal customization file called:
26;
27;   .mykermrc     (UNIX, OS-9, Aegis, BeBox, Plan 9)
28;   CKERMOD.INI   (OS/2, VMS, OpenVMS, AOS/VS, Atari ST, Commodore Amiga)
29;   ckermod.ini   (VOS)
30;
31; You can also define the customization filename in an environment
32; variable (logical name in VMS), CKERMOD, which takes precedence over
33; the names shown above.
34;
35; WHAT THIS FILE DOES:
36;
37; . The FULLSCREEN file transfer display is selected if it is available
38; . Defines your default dialing directory name:
39;     .kdd for UNIX, OS-9 and Aegis; CKERMIT.KDD for other operating systems.
40;        You can override this with the environment variable K_DIAL_DIRECTORY
41; . Defines your default network directory name:
42;     .knd for UNIX, OS-9 and Aegis; CKERMIT.KND for other operating systems.
43;        You can override this with the environment variable K_NET_DIRECTORY
44; . Defines your default services directory name:
45;     .ksd for UNIX, OS-9 and Aegis; CKERMIT.KSD for other operating systems.
46;        You can override this with environment variable K_SERVICE_DIRECTORY.
47; . Defines your customization file name (name given above)
48; . Performs system-dependent setups for UNIX, VMS, OS/2, etc.
49; . Defines an EDIT macro to let you invoke a text editor from C-Kermit.
50; . Defines TSEND, BSEND, TGET, BGET macros for text and binary file transfer.
51; . Defines VTPRINT, PCGET, and PCSEND macros for use with MS-DOS Kermit, etc.
52; . Opens your dialing directory if you have one.
53; . Reads your services directory and defines ACCESS and LIST macros for it.
54; . Executes your personal customization file, if you have one.
55;
56; C-Kermit 6.0 is documented in the book "Using C-Kermit", 2nd Edition,
57; by Frank da Cruz and Christine M. Gianone, 1997, Digital Press /
58; Butterworth-Heinemann, ISBN 1-55558-164-1.
59
60; Everything after this point depends on the script programming language.
61; The CHECK command terminates this command file immediately if the script
62; programming language (IF command) is not configured.
63;
64set take error on               ; This makes CHECK quit if no script language.
65check if                        ; Do we have an IF command?  If not, quit now.
66set take error off              ; Back to normal.
67
68local _sd _servicedir
69
70COMMENT - Greet and make sure C-Kermit version is 6.0 or higher.
71;
72echo Executing \v(cmdfile) for \v(system)...
73if < \v(version) 600192 -
74  stop 1 \v(cmdfile): C-Kermit 6.0.192 or later required.
75
76def _dedit                      ; No default editor yet.
77forward \v(system)              ; First do system-dependent items...
78
79:unknown                        ; Should not happen
80Stop 1 Error: System type unknown!
81
82:Aegis                          ; Apollo Aegis and
83:UNIX                           ; UNIX, all versions
84def _dedit vi                   ; Default editor is VI
85asg _myinit -
86  \v(home).mykermrc             ; Customization filename
87if remote forward COMMON        ; Skip local-mode items if "-R"
88asg _dialdir -
89  \v(home).kdd                  ; C-Kermit dialing directory
90asg _netdir -
91  \v(home).knd                  ; C-Kermit network directory
92asg _servicedir -
93  \v(home).ksd                  ; C-Kermit services directory
94check fullscreen                ; Do we have a fullscreen display?
95if success set file displ full  ; If so, use it.
96forward COMMON                  ; End of UNIX section
97
98:OS9/68K                        ; OS-9
99asg _myinit -
100  \v(home).mykermrc             ; Customization filename
101if remote forward COMMON
102asg _dialdir -
103  \v(home).kdd                  ; C-Kermit dialing directory
104asg _netdir -
105  \v(home).knd                  ; C-Kermit network directory
106asg _servicedir -
107  \v(home).ksd                  ; C-Kermit services directory
108if eq "\$(TERM)" "vt100" -      ; File transfer display
109  set file display full         ; Only works with VT-100 terminal type
110else if eq "\$(TERM)" "VT100" -
111  set file display full
112else set file display crt
113forward COMMON                  ; End of OS-9 section
114
115:VMS                            ; VMS and OpenVMS
116def _dedit edit                 ; Default editor is EDIT.
117set file display fullscreen     ; File transfer fisplay
118forward COMMON
119
120:OS/2                           ; OS/2
121asg _inifile \v(cmdfile)        ; Get directory where this file is kept...
122asg _inidirlen \feval(\flength(\m(_inifile))-11)
123asg _inidir \fsubstr(\m(_inifile),1,\m(_inidirlen))
124asg _dialdir    \m(_inidir)CKERMIT.KDD
125asg _netdir     \m(_inidir)CKERMIT.KND
126asg _servicedir \m(_inidir)CKERMIT.KSD
127asg _myinit     \m(_inidir)CKERMOD.INI
128asg _inidirlen                  ; Release unneeded variables
129set file display fullscreen     ; File transfer fisplay
130set server display on           ; Show display in server mode too.
131def _dedit epm                  ; Default editor is E
132set command bytesize 8          ; Use 8 bits between Kermit and console.
133set xfer char latin1            ; Use Latin-1 for text file transfer.
134def cls clear command-screen    ; Define CLS command to clear the screen.
135def os2 push                    ; Make OS2 a synonym for PUSH, RUN, etc.
136def more run type \%1 | more    ; Easy access to MORE command.
137def vdir run dir | more         ; "Verbose" DIRECTORY
138def tdir run dir /o-d | more    ; Reverse Time-Order DIRECTORY
139
140COMMENT - XSEND macro sends a directory tree.  Read XSEND.CMD for details.
141; Arguments:
142; 1. Pathname, such as C:\\ (backslashes must be doubled!)
143; 2. Filespec, such as *.*
144;
145define XSEND rexx call \fcontents(\v(startup))xsend.cmd '\%1 \%2'
146forward COMMON                  ; End of OS/2 section
147
148:AOS/VS                         ; Data General AOS/VS
149def _dedit sed                  ; Default editor is SED
150set window 1                    ; Sliding windows don't work
151set file char dg-international  ; File character-set
152set xfer char latin1            ; Transfer character-set
153set file display crt            ; File transfer fisplay
154def cli push                    ; Escape to CLI
155def reset -                     ; Macro to reset DG DASHER terminal
156 run write [!ascii 236 306 301]
157forward COMMON                  ; End of AOS/VS section
158
159:Amiga                          ; Commodore Amiga
160def cls echo \27[H\27[2J        ; CLS command to clear the screen
161set file display full           ; Supports fullscreen display
162set file char latin1            ; Use Latin Alphabet 1 for file transfer
163set xfer char latin1            ; ...
164forward COMMON                  ; End of Amiga section
165
166:Atari_ST                       ; Atari ST
167def cls echo \27H\27J           ; Clear screen a`la VT52
168set file display crt            ; FULLSCREEN not available
169set server display on           ; Show file xfer display in server mode too
170set server timeout 15           ; Nonzero required for ^C interruption!
171forward COMMON                  ; End of Atari ST section
172
173:Macintosh                      ; Apple Macintosh
174set server display on           ; Show file xfer display in server mode too.
175forward COMMON
176
177:Stratus_VOS                    ; Stratus VOS
178def _dedit emacs                ; Default editor is emacs
179asg _myinit \v(home)ckermod.ini
180if remote forward COMMON
181asg _dialdir \v(home)ckermit.kdd
182asg _netdir \v(home)ckermit.knd
183asg _servicedir \v(home)ckermit.ksd
184set file display crt            ; FULLSCREEN not available
185forward COMMON                  ; End of Stratus VOS section
186
187:COMMON                         ; For all systems
188
189COMMENT - EDIT macro.
190;
191; EDITOR environment variable, if defined, takes precedence.
192;
193check push                      ; Only works if we have a PUSH command
194xif success {
195    if def \$(EDITOR) assign myeditor \$(EDITOR)
196      else assign myeditor \m(_dedit)
197    if not def myeditor def myeditor edit
198    undef _dedit
199    undef myfile
200    def EDIT {
201        if > \v(argc) 2 echo WARNING: \%2 \%3 \%4 \%5 \%6... ignored
202        if = \v(argc) 2 assign myfile \%1
203        if not def myfile echo Edit what?
204        else run \m(myeditor) \m(myfile)
205    }
206}
207
208; File transfer macros
209
210def _SEND {                           ; Used by BSEND, TSEND, etc.
211    local \%n
212    asg \%n \ffiles(\%1)                ; How many files match argument
213    if = 0 \%n end 1 {\?File not found} ; None
214    if = 1 \%n send \%1 \%2             ; Single file with as-name
215    else send \%1                       ; or wildcard with no as-name
216}
217
218def BSEND binary, _send \%1 \%2                  ; Send binary file(s)
219def TSEND text, _send \%1 \%2                    ; Send text file(s)
220def BGET remote set file type binary, -          ; Get binary file(s)
221  if success get \%1 \%2 \%3 \%4 \%5 \%6 \%7 \%8 ;  from server
222def TGET remote set file type text, -            ; Get text file(s)
223  if success get \%1 \%2 \%3 \%4 \%5 \%6 \%7 \%8 ;  from server
224
225; Define macros that are useful when running C-Kermit in remote mode.
226; These macros serve no purpose on local-mode-only versions such as
227; OS/2, Macintosh, Amiga, and Atari ST Kermit, so we skip defining them
228; for those systems.
229;
230if not = 0 \findex(\v(system),WIN32:OS/2:Macintosh:Amiga:Atari_ST) -
231  forward files
232
233; VTPRINT macro.  Print a file on your PC's local printer.
234
235def VTPRINT echo \27[5i, type \%1, echo \27[4i
236; or if your printer needs a formfeed to force the page out:
237; def VTPRINT  def echo \27[5i, type \%1, echo \12\27[4i
238
239; Macros for host-initiated file transfer using APC:
240;   NOT NEEDED ANY MORE because of autodownload/autoupload.
241;   Remove the following FORWARD command to reinstate these definitions:
242
243FORWARD FILES
244
245COMMENT - PCGET macro, for use against MS-DOS Kermit 3.13 and later,
246; or Kermit 95, or Kermit/2, or C-Kermit 5A(190) on UNIX or VMS.
247; Uses APC.  Arguments:
248; 1 = Name of file to get from PC.
249; 2 = Optional name that C-Kermit should store it under.
250; NOTE: If the PC filename contains backslashes, you must make four (4)
251; copies of each backslash, e.g. "pcget c:\\\\temp\\\\oofa.txt.
252;
253def PCGET {
254    apc server
255    msleep 200
256    remote set file type \v(ftype)
257    xif def \%2 {                    ; If we have an "as-name"
258        get, \%1, \%2                ; use multiline GET
259        asg _tmp \v(status)          ; Remember status
260    } else {                         ; Otherwise
261        get \%1                      ; use regular GET
262        asg _tmp \v(status)          ; Remember status
263    }
264    fin                              ; FINISH server
265    end \m(_tmp)                     ; and return status
266}
267
268COMMENT - PCSEND macro, for use against MS-DOS Kermit 3.13 and later,
269; or C-Kermit 5A(190) or later.  Uses APC.  Arguments:
270; \%1 = Name of file to send to MS-DOS Kermit.
271; \%2 = Optional name to send it with.
272;
273def PCSEND {
274    local \%n
275    asg \%n \ffiles(\%1)
276    if = 0 \%n end 1 {\?File not found}
277    apc receive
278    if = 1 \%n send \%1 \%2             ; Single file with as-name
279    else send \%1                       ; or wildcard with no as-name
280}
281
282:FILES
283
284; Get customization and directory file names.  Environment variables take
285; precedence, so you do not have to edit this file to change these filenames.
286;
287if def \$(CKERMOD) assign _myinit \$(CKERMOD)
288if not def _myinit assign _myinit \v(home)CKERMOD.INI
289
290if remote forward CUSTOM ; Skip all this if -R given on command line
291
292if def \$(K_DIAL_DIRECTORY) assign _dialdir \$(K_DIAL_DIRECTORY)
293if not def _dialdir assign _dialdir \v(home)CKERMIT.KDD
294
295if def \$(K_NET_DIRECTORY) assign _dialdir \$(K_NET_DIRECTORY)
296if not def _dialdir assign _dialdir \v(home)CKERMIT.KND
297
298if def \$(K_SERVICE_DIRECTORY) assign _servicedir \$(K_SERVICE_DIRECTORY)
299if not def _servicedir assign _servicedir \v(home)CKERMIT.KSD
300
301CHECK DIAL                      ; Is the DIAL command enabled?
302xif fail {                      ; No.
303    echo DIAL disabled
304} else {                        ; Yes, check for and open the dial directory.
305    xif exist \m(_dialdir) {
306        set dial directory \m(_dialdir)
307        echo { Dial directory is \m(_dialdir) }
308    }
309    xif exist \m(_netdir) {
310        set net directory \m(_netdir)
311        echo { Network directory is \m(_netdir) }
312    }
313}
314
315COMMENT - Services directory
316
317if not exist \m(_servicedir) forward connection
318echo { Services directory is \m(_servicedir)}
319
320def MAX_SVCS 200               ; Adjust this if you have more entries
321define _sd 0                   ; Assume no services directory
322open read \m(_servicedir)      ; Try to open services directory file
323xif success {
324    declare \&d[\m(MAX_SVCS)]  ; It's open, declare directory array
325    for \%i 1 \m(MAX_SVCS) 1 { ; Read the lines into the array
326        read \&d[\%i]
327        if fail break
328    }
329    close read       
330    xif > \%i  \m(MAX_SVCS) {
331        echo Too many entries in services directory
332        echo { Maximum is \m(MAX_SVCS).}
333        echo { Change definition of MAX_SVCS in \v(cmdfile) to allow more. }
334        echo { Services directory disabled.}
335    } else {
336        asg \&d[0] \feval(\%i - 1)
337        define _sd 1
338    }
339}
340
341xif not \m(_sd) {
342    def access echo { Services directory not available.}
343    asg list \m(access)
344} else {
345    def FIND {
346        set case off
347        for \%i 1 \&d[0] 1 {
348            if eq {\%1} {\fsubstr(\&d[\%i],1,\flen(\%1))} break
349        }
350        if not > \%i \&d[0] return \&d[\%i]
351    }
352    def LIST {
353        xif > \v(argc) 1 {
354            find \%1
355            if def \v(return) echo \v(return)
356            else echo \%1: Not found
357        } else {
358            echo \&d[0] items in services directory:
359            for \%i 1 \&d[0] 1 { echo \fcont(\&d[\%i]) }
360        }
361    }
362    def SPLIT asg _word1 \%1, asg _word2 \%2
363    def DOACCESS {               ; (Used internally by ACCESS macro)
364        do \%5 \%6 \%7 \%8 \%9   ; Do the connection macro
365        if fail end 1
366        split \%3                ; Get words from \%3
367        asg \%3 \m(_word1)
368        asg \%2 \m(_word2)
369        do \%3 \%4 {\%1} \%2     ; Login macro, userid, password, prompt
370    }
371    def ACCESS {
372        if not defined \%1 end 1 access what?        ; Check service
373        find \%1                                     ; Look it up
374        if success doaccess {\%2} \v(return)         ; OK, try it
375        else end 1 "\%1" not in services directory   ; Not found
376        if fail end 1                                ; DOACCESS failed?
377        xif eq \v(cmdlevel) 1 {
378            echo
379            echo ACCESS: Login succeeded - CONNECTing...
380            show escape
381            output \13
382            connect /quietly
383        }
384    }
385}
386
387:CONNECTION ; Macros for making connections
388
389COMMENT - SERIAL macro.  Arguments:
390; \%1 = device name
391; \%2 = speed
392;
393def SERIAL {
394    if < \v(argc) 3                         ; All arguments given?
395      end 1 Usage: SERIAL device speed      ; No.
396    set line \%1                            ; OK, try to SET LINE.
397    if failure -                            ; If this failed,
398      end 1 Can't open device: \%1          ; print message and quit.
399    set speed \%2                           ; Try to set the speed.
400    if fail end 1 Unsupported speed: \%2    ; Failed.
401    echo Connection successful.             ; Succeeded.
402}
403
404COMMENT - NET macro.  Arguments:
405; \%1 = network type
406; \%2 = host name or address
407;
408def NET {
409    if < \v(argc) 3 end 1 Usage: NET network host
410    set network \%1
411    if fail end 1 unsupported network: \%1
412    set host \%2
413    if fail end 1 can't reach host: \%2
414    echo Connection successful.
415}
416
417COMMENT - CALL macro.  Arguments:
418;
419; \%1 = modem type
420; \%2 = device name
421; \%3 = speed
422; \%4 = phone number
423;
424def CALL {
425    if < \v(argc) 5 -         ; All arguments present?
426      end 1 Usage: CALL modem device speed number
427    set modem \%1             ; Set modem type
428    if fail end 1 unknown modem type: \%1
429    set line \%2              ; Communication device
430    if fail end 1 can't open device: \%2
431    set speed \%3             ; Communication speed
432    if fail end 1 unsupported speed: \%3
433    dial \%4                  ; Dial the number
434    if fail end 1 Can't place call: \%4
435    end 0 Connection successful.
436}
437
438COMMENT - TCPCALL macro.  Arguments:
439;
440; \%1 = server name:port
441; \%2 = modem type
442; \%3 = phone number
443;
444def TCPCALL {
445    if < \v(argc) 4 -         ; All arguments present?
446      end 1 Usage: TCPCALL server[:port] modem number
447    set net tcp/ip            ; Which network to use
448    if fail end 1 unsupported network: tcp/ip
449    set host \%1              ; Access server and port
450    if fail end 1 can't access server \%1
451    set modem \%2             ; Set modem type
452    if fail end 1 unknown modem type: \%2
453    dial \%3                  ; Dial the number
454    if fail end 1 Can't place call: \%3
455    end 0 Connection successful.
456}
457
458COMMENT - SPRINT macro.  Arguments:
459; \%1 = Service name or address
460;
461def SPRINT {
462    if < \v(argc) 2 end 1 Usage: \%0 service
463    set input timeout proceed
464    output @D\13
465    input 10 TERMINAL=
466    if fail end 1 No terminal prompt
467    out D1\13
468    inp 10 @
469    if fail end 1 No atsign prompt
470    output c \%1\13
471    input 10 CONNECTED
472    if fail end 1 Can't access \%1 from SprintNet
473}
474
475COMMENT - ULOGIN macro.  For logging into systems where user ID is required
476; but there is no password.  Arguments:
477; \%1 = UNIX user ID
478;
479define ULOGIN {
480    if < \v(argc) 2 end 1 Usage: \%0 userid
481    set input timeout proceed     ; Handle timeouts ourselves
482    set case on                   ; Case is important in UNIX
483    minput 5 login: Username: {User ID:} {User Name:}
484    out \%1\13                    ; Send username, carriage return
485    end 0
486}
487
488COMMENT - VMSLOGIN macro.  Arguments:
489; \%1 = VMS user ID
490; \%2 = Password.  If password not supplied, it is prompted for.
491; \%3 = System prompt.  If omitted a default is supplied.
492;
493define VMSLOGIN {
494    if < \v(argc) 2 end 1 Usage: \%0 userid [ password [ prompt ] ]
495    while not defined \%2 {
496        askq \%2 { \%1's password: }
497    }
498    set parity none               ; Set communication parameters
499    set duplex full
500    set handshake none
501    set input timeout proceed     ; Handle timeouts ourselves
502    in 5 Username:                ; Is prompt already there?
503    xif fail {                    ; No.
504        for \%i 1 3 1 {           ; Try 3 times to get it.
505            out \13               ; Send carriage return
506            in 5 Username:        ; Look for prompt
507            if success break      ; Success, go log in
508        }
509        if > \%i 3 end 1 No Username prompt
510    }
511    out \%1\13                    ; Send username, carriage return
512    inp 5 Password:               ; Wait 5 sec for this prompt
513    if fail end 1 No password prompt
514    pause                         ; Wait a sec
515    out \%2\13                    ; Send password
516    xif not emulation {           ; No emulator built in?
517        set input echo off        ; Protect terminal from this
518        minput 10 {\27Z} {\27[c} {\27[0c} ; Get terminal ID query
519        xif success {                     ; Got one
520            output \27[\?1c               ; Send VT100 terminal ID
521            in 2 \27[6n                   ; Screen dimension query?
522            if succ out \27[\v(rows);\v(cols)R ; Send dimensions
523        }
524        set input echo on         ; Echo input again
525    }
526    if not def \%3 -              ; If we were not given a prompt
527      asg \%3 {\v(prompt)}        ; use the SET LOGIN PROMPT value
528    if not def \%3 -              ; If we still don't have a prompt
529      asg \%3 {\13$\32}           ; use this one as the default
530    reinp 0 \%3                   ; Did we INPUT the prompt already?
531    if fail inp 60 \%3            ; No, look now.
532    if fail end 1
533}
534
535COMMENT - UNIXLOGIN macro.  Arguments:
536; \%1 = UNIX user ID
537; \%2 = Password.  If password not supplied, it is prompted for.
538; \%3 = System prompt.  If omitted a default is supplied.
539;
540define UNIXLOGIN {
541    if < \v(argc) 2 -
542      end 1 Usage: \%0 userid [ password [ prompt ] ]
543    while not defined \%2 {
544        askq \%2 { \%1's password: }
545    }
546    set parity none               ; Set communication parameters
547    set duplex full
548    set handshake none
549    set input timeout proceed     ; Handle timeouts ourselves
550    set case on                   ; Case is important in UNIX
551    in 5 login:                   ; Is prompt already there?
552    xif fail {                    ; No.
553        for \%i 1 3 1 {           ; Try 3 times to get it.
554            out \B\13             ; Send BREAK and CR
555            in 5 login:           ; Look for prompt
556            if success break      ; Success, go log in
557        }
558        if > \%i 3 end 1 No login prompt
559    }
560    out \%1\13                    ; Send username, carriage return
561    inp 5 Password:               ; Wait 5 sec for this prompt
562    if fail end 1 No password prompt
563    pause                         ; Wait a sec
564    out \%2\13                    ; Send password
565    if not def \%3 -              ; If we were not given a prompt
566      asg \%3 {\v(prompt)}        ; use the SET LOGIN PROMPT value
567    if not def \%3 -              ; If we still don't have a prompt
568      asg \%3 {\10$ }             ; use this one as the default
569    reinp 0 \%3                   ; Did we INPUT the prompt already?
570    if fail inp 60 \%3            ; No, look now.
571    if fail end 1
572}
573
574COMMENT - VMLINELOGIN macro.  Arguments:
575; \%1 = User ID
576; \%2 = Password
577;
578define VMLINELOGIN {
579    if < \v(argc) 2 -
580      end 1 Usage: \%0 userid [ password ]
581    while not defined \%2 {
582        askq \%2 { \%1's password: }
583    }
584    set parity mark               ; Set communication parameters
585    set flow none
586    set handshake xon
587    set duplex half
588    set input timeout quit        ; Don't bother with IF FAILURE
589    input 10 BREAK KEY            ; Look for BREAK KEY prompt
590    pause 1                       ; Wait a second
591    output \B                     ; Send BREAK
592    input 10 .\17, output logon \%1\13    ; Now log in
593    input 10 .\17, output \%2\13          ; Send password
594    input 10 .\17, output \13             ; Send carriage return
595    input 10 .\17, output \13             ; Send another one
596    end 0
597}
598
599COMMENT - VMFULLOGIN macro.  Arguments:
600; \%1 = User ID
601; \%2 = Password
602;
603define VMFULLOGIN {
604    if < \v(argc) 2 -
605      end 1 Usage: \%0 userid [ password ]
606    while not defined \%2 {
607        askq \%2 { \%1's password: }
608    }
609    set input timeout quit      ; Quit if INPUT fails
610    set parity even             ; Set communication parameters
611    set duplex full
612    set handshake none
613    set flow xon/xoff
614    out \13                     ; Send carriage return
615    inp 5 TERMINAL TYPE:        ; Get terminal-type prompt
616    out vt-100\13               ; Just send "vt-100"
617    inp 20 RUNNING              ; Get RUNNING message
618    pau 1                       ; Wait one second
619    out \%1\9\%2\13             ; Send user ID, tab, password
620    out \13\13                  ; Two more carriage returns
621    end 0
622}
623
624COMMENT - CISLOGIN macro.  Arguments:
625; \%1 = CompuServe User ID
626; \%2 = Password
627; \%3 = Prompt
628;
629define CISLOGIN {
630    if < \v(argc) 2 -
631      end 1 Usage: \%0 userid [ password [ prompt ] ]
632    while not defined \%2 {
633        askq \%2 { \%1's password: }
634    }
635    set terminal byteszie 7     ; No 8-bit characters
636    set input timeout quit      ; Skip the IF FAILURE's
637    output \13                  ; Send initial carriage return
638    input 5 Host Name:          ; Look for Host Name prompt
639    output cis\13               ; Send "cis" and carriage return
640    input 5 User ID:            ; Look for User ID prompt
641    output \%1\13               ; Send ID and carriage return
642    input Password:             ; Look for Password prompt
643    output \%2\13               ; Send password and CR
644    if not def \%3 asg \%3 \v(prompt)
645    if not def \%3 asg \%3 {CompuServe Information Service}
646    input 30 \%3
647    end 0
648}
649
650COMMENT - DOWLOGIN macro.  Arguments:
651; \%1 = Dow Jones Password
652;
653define DOWLOGIN {
654    while not defined \%1 {              ; Get password
655        askq \%1 { Dow Jones password: }
656    }
657    set input timeout proceed
658    input 20 SERVICE PLEASE\?\?\?\?      ; Look for Dow prompt
659    if fail end 1 No service prompt
660    out djnr\13                          ; Select DJNR
661    input 10 @@@@@@@@                        ; Get password prompt
662    if fail end 1 No password prompt
663    pause 1                              ; Wait a second, then...
664    output \%1\13                        ; send password and CR
665    input 30 ENTER QUERY                 ; Get DJNR query prompt
666    if fail end 1 No main query prompt
667    pause 1
668}
669
670COMMENT - DJNRSPRINT macro: Log in to Dow Jones via SprintNet.
671;
672def djnrsprint sprint dow, if success dowlogin
673
674COMMENT - NOLOGIN macro.  Does nothing.  Use when login not required.
675;
676def nologin comment
677
678:CUSTOM ; Customization file
679
680
681; In VMS and OpenVMS, allow for system-wide site customizations
682
683xif equal "\v(system)" "VMS" {
684    xif exist CKERMIT_INI:CKERMIT.SYS {
685        echo Executing CKERMIT_INI:CKERMIT.SYS
686        take CKERMIT_INI:CKERMIT.SYS
687    }
688}
689
690; Execute user's personal customization file
691
692xif exist \m(_myinit)  {                ; If it exists,
693    echo Executing \m(_myinit)...       ; print message,
694    take \m(_myinit)                    ; and TAKE the file.
695}
696
697; Finish up with traditional greeting.
698
699if < \v(ntime) 43200 echo Good Morning!
700  else if < \v(ntime) 61200 echo Good Afternoon!
701  else echo Good Evening.
702
703End ; of C-Kermit 6.0 initialization file.
Note: See TracBrowser for help on using the repository browser.