home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume32 / ecu / part39 < prev    next >
Text File  |  1992-09-15  |  59KB  |  1,845 lines

  1. Newsgroups: comp.sources.misc
  2. From: wht@n4hgf.Mt-Park.GA.US (Warren Tucker)
  3. Subject:  v32i074:  ecu - ECU Asynchronous Communications v3.20, Part39/40
  4. Message-ID: <1992Sep15.153841.21070@sparky.imd.sterling.com>
  5. X-Md4-Signature: 062d37cc4cd62445675dcaa58612bb3b
  6. Date: Tue, 15 Sep 1992 15:38:41 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: wht@n4hgf.Mt-Park.GA.US (Warren Tucker)
  10. Posting-number: Volume 32, Issue 74
  11. Archive-name: ecu/part39
  12. Environment: SCO,XENIX,ISC,SUNOS,SYSVR4,HDB,Curses
  13. Supersedes: ecu: Volume 21, Issue 53-89
  14.  
  15. ---- Cut Here and feed the following to sh ----
  16. #!/bin/sh
  17. # this is ecu320.39 (part 39 of ecu320)
  18. # do not concatenate these parts, unpack them in order with /bin/sh
  19. # file doc/_startup.txt continued
  20. #
  21. if test ! -r _shar_seq_.tmp; then
  22.     echo 'Please unpack part 1 first!'
  23.     exit 1
  24. fi
  25. (read Scheck
  26.  if test "$Scheck" != 39; then
  27.     echo Please unpack part "$Scheck" next!
  28.     exit 1
  29.  else
  30.     exit 0
  31.  fi
  32. ) < _shar_seq_.tmp || exit 1
  33. if test ! -f _shar_wnt_.tmp; then
  34.     echo 'x - still skipping doc/_startup.txt'
  35. else
  36. echo 'x - continuing file doc/_startup.txt'
  37. sed 's/^X//' << 'SHAR_EOF' >> 'doc/_startup.txt' &&
  38. Xtitled "Choosing a Dialout Line" and "DCDwatch".
  39. X
  40. XThe 'duplex' field may be used to select a
  41. Xduplex value other than the default 'F' (full).
  42. X
  43. XThe 'baud' field may be used to select a
  44. Xbaud rate value other than the default selected at Configure time.
  45. X
  46. XThe 'parity' field may be used to select a
  47. Xparity value other than the default selected at Configure time.
  48. X
  49. X
  50. XThe 'Add NL to transmitted CR' and 'Add NL to received CR'
  51. Xfields are usually left defaulted to 'N' (no).  If you
  52. Xwill be communicating with a terminal (as in a chat with a human), you
  53. Xwill usually need to set both of these fields to 'Y' as
  54. Xwell as to select 'H'alf duplex.
  55. X
  56. X.*s 3 "Keyboard Functions"
  57. X
  58. XSpecial keyboard characters while filling in the
  59. Xstartup screen are:
  60. X
  61. X
  62. X.DS I
  63. X Enter        terminate entry in a field (or skip to
  64. X              the next field if you do not modify it)
  65. X
  66. X ^B           back up to previous field
  67. X
  68. X Cursor Up    same as ^B (if the key is available on
  69. X              your terminal and environment).
  70. X
  71. X TAB          move to next field ... if nothing typed in
  72. X              the field, do not disturb contents
  73. X
  74. X Cursor Down  same as TAB (if the key is available on
  75. X              your terminal and environment).
  76. X
  77. X END          proceed with session, dialing remote if
  78. X              logical directory entry name or literal
  79. X              telephone number enetered
  80. X
  81. X ^D           enter phone directory
  82. X
  83. X ESC          quit ecu without starting a session
  84. X.DE
  85. X
  86. XWhen editing a multicharacter field, such as "tty", you may use the
  87. Xbackspace key in the traditional fashion.  Depending on the
  88. Xterminal, ECU version in use (OS in use), and configuration,
  89. Xyou may also be able to use the cursor left and right keys
  90. Xand the insert key (to toggle insert mode).
  91. X
  92. X.*s 2 "Command Line Switches and Arguments"
  93. X
  94. XECU can be started in a number of ways:
  95. X.DS I
  96. Xo  with no switches or arguments
  97. X       select options interactively; manual command to begin
  98. X       connection
  99. X
  100. Xo  with switches (excluding -p) and no arguments
  101. X       override some defaults for options but still enter
  102. X       interactive option selection; manual command to begin
  103. X       connection
  104. X
  105. Xo  zero or more switches (excluding -p) and one argument
  106. X       fully automatic startup to connect to the remote
  107. X       specified by the argument (a telephone number
  108. X       or dialing directory entry)
  109. X
  110. Xo  zero or more switches, with -p the last switch
  111. X       fully automatic startup by executing procedure whose
  112. X       name is specified by the first argument; the initial
  113. X       procedure receives the remainder of the command line
  114. X       arguments
  115. X.DE
  116. X
  117. X.*s 3 "Usage Summary"
  118. X
  119. X.DS I
  120. Xusage: ecu [-l <ttyname>] [-b <baud_rate>] [-eon]
  121. X           [-h] [-t] [-P <phonedir>]
  122. X           [-F name] [-T <trace-level>]
  123. X           [-p <initial_proc> [-d] [-D] | <phone_number>]
  124. X-D unconditionally stop execution when -p initial
  125. X   procedure is done
  126. X-F sets an alternate funckeymap name for the *keyboard*
  127. X-P choose alternate phone directory (<phonedir> must be
  128. X   a full pathname)
  129. X-T set procedure tracing to level: 0=none, 1=standard,
  130. X   2=ECU-debugging
  131. X-b choose baud rate (any UNIX rate 110-38400)
  132. X-d stop execution if -p initial procedure fails
  133. X-e even parity   -o odd parity   -n no parity
  134. X-h half duplex ... default is full duplex
  135. X-l choose line (/dev/<ttyname>)
  136. X-p execute an initial procedure
  137. X-t append NL to incoming and outgoing CR characters
  138. X<phone_number> is either an actual number or a dialing
  139. X   directory entry name
  140. X.DE
  141. X
  142. X.*s 3 "Switches"
  143. X
  144. XMany switches are used to override defaults specified
  145. Xat the time the Confifgure procedure was used.
  146. XNote these defaults may also be overriden interactively if the command
  147. Xdoes not specify automatic startup option (-p or dialing argument).
  148. XAlso, the value chosen by a dialing directory entry or an
  149. Xinitial procedure will override
  150. Xthe Configured default and/or the value specified by this switch.
  151. X
  152. X.*s 4 "-b <baud>"
  153. X
  154. XThis switch overrides the default baud rate.
  155. XAny valid UNIX rate may be chosen.  
  156. XECU chooses the number of stop bits based on the baud rate.  Rates below
  157. X300 baud get 2 stop bits.  Rates 300 baud and above get one stop bit.
  158. X
  159. X.*s 4 "-d"
  160. X
  161. XThe
  162. X.B
  163. X-d switch
  164. X.R
  165. Xinstructs ECU to "die" (terminate with error status) if
  166. Xan initial procedure (-p) fails.  This switch ensures a batch
  167. XECU execution will hang up any connection and terminate if
  168. Xa procedure error occurs. See also -D below.
  169. X
  170. XAbsence of the
  171. X.B -d
  172. Xand
  173. X.B -D
  174. Xswitches
  175. Xcauses ecu (upon any completion of the
  176. Xinitial procedure) to enter the 1) interactive mode if a line
  177. Xwas successfully attached by the procedure or 2) the setup screen
  178. Xif no line was attached. 
  179. X
  180. X.*s 4 "-e, -o, -n"
  181. X
  182. XNormally, ECU starts up with data bits and parity chosen at
  183. XConfigure time.  The 
  184. X.B -e ,
  185. X.B -o 
  186. Xand
  187. X.B -n 
  188. X.B switches
  189. Xallow you to override the default.
  190. X
  191. XSince combinations like eight data bit and even parity or
  192. Xseven data bits and no parity are not in  ECU's
  193. Xcapability to use, the parity selection also dictates the
  194. Xchoice of data bits. Even or odd parity implies seven data bits.
  195. XNo parity implies eight data bits.
  196. X
  197. X.*s 4 "-h"
  198. X
  199. XNormally, ECU starts up in the full duplex mode.
  200. XIf half duplex is desired, the
  201. X.B
  202. X-h switch
  203. X.R
  204. Xis used.
  205. X
  206. X.*s 4 "-l ttyspec"
  207. X
  208. XWhen ECU starts up, it normally chooses a line as described later
  209. Xin the section titled "Choosing a Dialout Line".
  210. XSpecifying the
  211. X.B -l
  212. X.B switch
  213. Xoverrides the default tty specified
  214. Xat Configure time.  Depending upon other command line options,
  215. Xthis switch may be nothing more than a hint.
  216. X
  217. XThe argument to the switch is the base name
  218. Xof the tty (e.g., "tty1a" or "acu0").  On SCO, since ttys are all
  219. Xnamed consistently according to the "/dev/ttyxx" form, you may
  220. Xomit the "tty" (e.g., "1a" or "4g").
  221. X
  222. XFor important considerations on line choice, see the sections
  223. Xtitled "Choosing a Dialout Line" and "DCDwatch".
  224. X
  225. X.*s 4 "-p <proc>"
  226. X
  227. XThe 
  228. X.B
  229. X-p switch
  230. X.R
  231. Xcauses ECU to execute the procedure <proc> ("<proc>.ep")
  232. Ximmediately upon startup.  Such a procedure is termed the
  233. X.B
  234. Xinitial procedure.
  235. X.R
  236. XIt is recommended that, when used, -p be the last switch on the
  237. Xcommand line.  All non-switch arguments after <proc> are passed
  238. Xas arguments to the initial procedure (see the descriptions of
  239. Xthe integer function
  240. X.B %argc
  241. Xand the string function
  242. X.B %argv 
  243. Xin the Procedure Manual).
  244. X
  245. XFor example,
  246. X.DS L
  247. X    ecu -p batchjob remsys 22
  248. Xautomatically executes the procedure command equivalent
  249. X    do 'batchjob' 'remsys' '22'
  250. X.DE
  251. X
  252. XThe initial procedure may read command line options
  253. Xwith functions like
  254. X.B %line ,
  255. X.B %baud
  256. Xand
  257. X.B %parity .
  258. XIt is also free to override any of these values it wishes.
  259. XSee the procedure manual for more information.
  260. X
  261. X.*s 4 "-t"
  262. X
  263. XThe
  264. X.B
  265. X-t switch
  266. X.R
  267. Xinstructs ECU to map incoming and outgoing carriage
  268. Xreturns to carriage return/line feed pairs.
  269. XThis is helpful if the remote connection will be to a
  270. Xdisplay terminal rather than a computer.  Use of the
  271. X.B
  272. X-h switch
  273. X.R
  274. Xmay also be necessary.
  275. X
  276. XThe interactive commands
  277. X.B nlin
  278. Xand
  279. X.B nlout
  280. Xalso control this feature.
  281. X
  282. X.*s 4 "-D"
  283. X
  284. XThe
  285. X.B
  286. X-D switch
  287. X.R
  288. Xinstructs ECU to unconditionally terminate when an
  289. Xinitial procedure finishes.  Contrast with the
  290. X.B -d
  291. X.B switch .
  292. X
  293. X.*s 4 "-F name"
  294. X
  295. XNormally, the TERM environment variable is used to determine the
  296. Xfunckeymap entry (keyboard configuration) to be used.  Sometimes,
  297. Xthe TERM variable is not adequate for identifying your keyboard
  298. Xarrangement.  The 
  299. X.B
  300. X-F switch
  301. X.R
  302. Xswitch, like the $ECUFUNCKEY environment variable, allows you to
  303. Xuse override the funckeymap entry used.  For more information,
  304. Xsee the section titled "Function Key Mapping (Recognition)".
  305. X
  306. X.*s 4 "-P phonedir"
  307. X
  308. XThe
  309. X.B
  310. X-P switch
  311. X.R
  312. Xcauses ECU to begin execution using an alternate 
  313. Xphone directory.  The default is ~/.ecu/phone.  You should
  314. Xspecify a full pathname if you anticipate using the change directory
  315. Xcommand once ecu starts.
  316. X
  317. X.*s 4 "-T level"
  318. X
  319. XThe
  320. X.B
  321. X-T switch
  322. X.R
  323. Xsets the procedure language trace level.  <level> is a decimal
  324. Xdigit.  0 is for no tracing (the default) and 1 is for tracing.
  325. XValues higher than 1 are for debugging ECU and have varying effects
  326. Xfrom revision to revision.
  327. X
  328. X.*s 3 "Non-Switch Arguments"
  329. X
  330. XAguments are optional.
  331. X<tel-number> or <logical> may appear when the -p switch is absent.
  332. XOne or more <arg> arguments may appear when the -p switch is used.
  333. XThese arguments are handled as described by "-p" above.
  334. X
  335. X.*s 4 "<tel-number>"
  336. X
  337. XThis type of argument has a digit as its initial character and
  338. Xrepresents an actual telephone number to be passed to a modem
  339. Xdialer program or Dialers chat script.  The string may contain
  340. Xnon-numeric characters if appropriate for a dialer program,
  341. Xsuch as dialTBIT or dialgT2500 (see the gendial subdirectory).
  342. XFor example:
  343. X.DS L
  344. X    ecu -ltty2a -b 19200 -e 5551212C
  345. X.DE
  346. Xuses tty2a (assumed to be connected to a Trailblazer modem because
  347. Xof the dialer-specific telephone number) and
  348. Xestablishes a 19200 baud, even parity PEP Compressed connection
  349. Xafter dialing 5551212.
  350. X
  351. X.*s 4 "<logical>"
  352. X
  353. XThis type of argument has an alphabetic initial character and
  354. Xcauses the dialing directory entry by that name to be dialed.
  355. XThe line may be specified by '-l', but if the dialing directory
  356. Xspecifies a line (tty field contains other than 'Any'), the
  357. Xdialing directory entry will override it.  The '-b', '-e' and '-o'
  358. Xswitches are ignored; the values specified by the dialing directory
  359. Xentry are used.  The '-t' and '-h' switches are valid and honored
  360. Xif present.
  361. X
  362. X.*s 4 "<arg>"
  363. X
  364. XThis type of argument is passed to an initial procedure when
  365. Xthe -p switch is present.
  366. X
  367. X.DS L
  368. Xecu -p unixlogin user pwd ansi43
  369. X.DE
  370. Xexecutes unixlogin.ep with arguments 'user' 'pwd' 'ansi43'
  371. X
  372. XFor more detail, refer to the description of -p, -d and -D below.
  373. X
  374. X.*s 2 "Environment Variables"
  375. X
  376. XPrior to starting ECU, it is useful, but not necessary,
  377. Xto establish two environment variables, ECUPROMPT and ECUHELP.
  378. X
  379. X.*s 3 "ECUPROMPT"
  380. X
  381. XThe ECUPROMPT environment variable determines the prompt printed
  382. Xby ECU when the interactive command key ("HOME") is pressed.
  383. XWhen you first run ECU, try setting it to your name, e. g.,
  384. X.DS I
  385. Xsetenv ECUPROMPT Ralph    if you use csh
  386. X
  387. XECUPROMPT=Ralph           if you use sh, ksh, etc.
  388. Xexport ECUPROMPT
  389. X.DE
  390. XThen, when you see how it used, you may wish to
  391. Xestablish a more permanent choice in your .login or .profile.
  392. X
  393. X.*s 3 "ECUHELP"
  394. X
  395. XOrdinarily, ECU looks for interactive command help information
  396. Xin "ecuhelp.data"
  397. X(in the ecu library directory, normally /usr/local/lib/ecu).
  398. XThe ECUHELP environment may be set to the complete
  399. Xpathname of the ecu help file if an alternate file
  400. Xis to be used.
  401. X
  402. XThe help file is explained later in the section
  403. Xtitled "Online Command Dictionary".
  404. X
  405. X.*s 3 "ECUFUNCKEY"
  406. X
  407. XSee the description of the 
  408. X.B -F
  409. Xcommand line switch and the section titled
  410. X"Function Key Mapping (Recognition)".
  411. X
  412. SHAR_EOF
  413. echo 'File doc/_startup.txt is complete' &&
  414. chmod 0644 doc/_startup.txt ||
  415. echo 'restore of doc/_startup.txt failed'
  416. Wc_c="`wc -c < 'doc/_startup.txt'`"
  417. test 13572 -eq "$Wc_c" ||
  418.     echo 'doc/_startup.txt: original size 13572, current size' "$Wc_c"
  419. rm -f _shar_wnt_.tmp
  420. fi
  421. # ============= doc/_top.txt ==============
  422. if test -f 'doc/_top.txt' -a X"$1" != X"-c"; then
  423.     echo 'x - skipping doc/_top.txt (File already exists)'
  424.     rm -f _shar_wnt_.tmp
  425. else
  426. > _shar_wnt_.tmp
  427. echo 'x - extracting doc/_top.txt (Text)'
  428. sed 's/^X//' << 'SHAR_EOF' > 'doc/_top.txt' &&
  429. X.de *s
  430. X.H "\\$1" "\\$2" \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
  431. X.br
  432. X..
  433. X.po 4
  434. X.ll 7.2i
  435. X.ls 1
  436. X.nh
  437. X.tp
  438. X.sp 1.0i
  439. X.ft B
  440. X.ce 10
  441. XECU
  442. X
  443. X(Extended Call Utility)
  444. X.ce 0
  445. X.sp 1i
  446. X.ce 100
  447. XResearch and Engineering
  448. XAsynchronous Communications Package
  449. Xfor SCO UNIX 3.2 and XENIX System V,
  450. XISC 386/ix 2.2 (or later),
  451. XSunOS 4.1, ISC System V Release 4
  452. Xand ESIX System V Release 4
  453. X.ce 0
  454. X.ft P
  455. X.sp 1i
  456. X.lp
  457. X.ce 1
  458. XWarren H. Tucker, III <wht@n4hgf.Mt-Park.GA.US>
  459. X.sp .5i
  460. X.ce 100
  461. XTechnical Description
  462. XRevision 3.20
  463. X\n(mo/\n(dy/\n(yr
  464. X.ce 0
  465. X.sp 1i
  466. X.ls 1
  467. XNOTE: Many sections of the manual are likely to be inaccurate or
  468. Xobsolete at any given time until the writer get lots of free
  469. Xtime.  Much of it was written when the program was supported only
  470. Xon SCO XENIX and UNIX.  Usually, I took the extra time to throw
  471. X-something- in the manual and online help.  I did not always go
  472. Xback and indicate which features are not supported by a later`
  473. Xport.
  474. X
  475. XMany of the features of ECU were written under extreme time
  476. Xpressure.  While the program code is usually reliable, the manual
  477. Xis a joke from many points of view, organization, consistency,
  478. Xcontent -- you name it.  You'll see comma splices, incomplete
  479. Xsentences or even incorrect information.  You may find the
  480. Xcorrect information in a README or in RELEASENOTES, or in another
  481. Xpart of the manual.  Of course, there is the code!  If you find
  482. Xinformation that seems incorrect, PLEASE mail a report to the
  483. Xauthor.
  484. X
  485. X.PH "'ECU Technical Description''%'"
  486. X.PF "'Public Domain by wht@n4hgf''\n(mo/\n(dy/\n(yr'"
  487. X.nr si 2n
  488. X.nr Cl 9
  489. X.nr Ej 1
  490. X.nr U 1
  491. X.SA 0
  492. X.ul
  493. X.bp 2
  494. X
  495. SHAR_EOF
  496. chmod 0644 doc/_top.txt ||
  497. echo 'restore of doc/_top.txt failed'
  498. Wc_c="`wc -c < 'doc/_top.txt'`"
  499. test 1560 -eq "$Wc_c" ||
  500.     echo 'doc/_top.txt: original size 1560, current size' "$Wc_c"
  501. rm -f _shar_wnt_.tmp
  502. fi
  503. # ============= doc/ecu.txt ==============
  504. if test -f 'doc/ecu.txt' -a X"$1" != X"-c"; then
  505.     echo 'x - skipping doc/ecu.txt (File already exists)'
  506.     rm -f _shar_wnt_.tmp
  507. else
  508. > _shar_wnt_.tmp
  509. echo 'x - extracting doc/ecu.txt (Text)'
  510. sed 's/^X//' << 'SHAR_EOF' > 'doc/ecu.txt' &&
  511. X.so _top.txt
  512. X
  513. X.so _intro.txt
  514. X
  515. X.so _basic.txt
  516. X
  517. X.so _features.txt
  518. X
  519. X.so _startup.txt
  520. X
  521. X.so _icmd.txt
  522. X
  523. X.so _hdb.txt
  524. X
  525. X.so _exits.txt
  526. X
  527. X.so _end.txt
  528. SHAR_EOF
  529. chmod 0644 doc/ecu.txt ||
  530. echo 'restore of doc/ecu.txt failed'
  531. Wc_c="`wc -c < 'doc/ecu.txt'`"
  532. test 141 -eq "$Wc_c" ||
  533.     echo 'doc/ecu.txt: original size 141, current size' "$Wc_c"
  534. rm -f _shar_wnt_.tmp
  535. fi
  536. # ============= doc/proc.txt ==============
  537. if test -f 'doc/proc.txt' -a X"$1" != X"-c"; then
  538.     echo 'x - skipping doc/proc.txt (File already exists)'
  539.     rm -f _shar_wnt_.tmp
  540. else
  541. > _shar_wnt_.tmp
  542. echo 'x - extracting doc/proc.txt (Text)'
  543. sed 's/^X//' << 'SHAR_EOF' > 'doc/proc.txt' &&
  544. X
  545. X.de *s
  546. X.H "\\$1" "\\$2" \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
  547. X.br
  548. X..
  549. X.po 4
  550. X.ll 7.2i
  551. X.ls 1
  552. X.nh
  553. X.tp
  554. X.sp 2i
  555. X.ft B
  556. X.ce 10
  557. XECU
  558. X
  559. X(Extended Call Utility)
  560. X.ce 0
  561. X.sp 1i
  562. X.ce 100
  563. XResearch and Engineering
  564. XAsynchronous Communications Package
  565. Xfor SCO UNIX 3.2 and XENIX System V,
  566. XISC 386/ix 2.2 (or later),
  567. XSunOS 4.1, ISC System V Release 4
  568. Xand ESIX System V Release 4
  569. X.ce 0
  570. X.ft P
  571. X.sp 2i
  572. X.lp
  573. X.ce 1
  574. XWarren H. Tucker, III <wht@n4hgf.Mt-Park.GA.US>
  575. X.sp 1i
  576. X.ce 100
  577. XProcedure Language
  578. XRevision 3.20
  579. X\n(mo/\n(dy/\n(yr
  580. X.ce 0
  581. X.sp 1i
  582. X.ls 1
  583. XNOTE: Many sections of the manual are likely to be obsolete at any given
  584. Xtime until the writer get lots of free time.  Much of it was written when
  585. Xthe program was supported only on SCO XENIX and UNIX. 
  586. X
  587. X.PH "'ECU Procedure Language''%'"
  588. X.PF "'Public Domain by wht@n4hgf''\n(mo/\n(dy/\n(yr'"
  589. X.nr si 2n
  590. X.nr Cl 9
  591. X.nr Ej 1
  592. X.nr U 1
  593. X.SA 0
  594. X.ul
  595. X.bp 2
  596. X
  597. X.*s 1 Introduction
  598. X
  599. XProcedures are "programs" or "scripts" written in an addled but
  600. Xadequate language which ECU executes upon demand.
  601. XThe documentation refers to procedures as files on the disk
  602. Xor as in-memory copies under execution.
  603. X
  604. XAn "initial procedure" may be executed when ECU starts up (see
  605. Xthe description of the -p command line switch).  Certain special
  606. Xprocedures are executed automatically as described below in the
  607. Xsection "Special Procedures."
  608. X
  609. XThe procedures themselves are source files consisting of
  610. Xthe procedure "name" with an extension of ".ep".
  611. XWhen executing a procedure by name,
  612. X.DS I
  613. Xdo name       interactive
  614. X-or-
  615. Xdo 'name'     from inside a procedure
  616. X.DE
  617. Xis sufficient if the procedure is in the current directory,
  618. Xthe user's ~/.ecu directory or in the ECU library
  619. Xsubdirectory "ep" (normally /usr/local/lib/ecu/ep).
  620. XProcedure files
  621. Xare searched for in the above order, so you may have
  622. Xa system default in the lib directory, a user default
  623. Xin the ~/.ecu directory and a specific version in the current
  624. Xdirectory all by the same name.
  625. X
  626. XYou may execute a procedure by specifying it's full pathname
  627. X(minus the .ep extension).  For example:
  628. X.DS I
  629. Xdo /tmp/doit       interactive invocation of /tmp/doit.ep
  630. X-or-
  631. Xdo '/tmp/doit'     from inside a procedure
  632. X.DE
  633. X
  634. XMany example procedures, some quite useful, some not so,
  635. Xare found in the models subdirectory of the release.
  636. XThere are also many fragments
  637. Xused as examples throughout the following sections.
  638. X
  639. X.*s 1 "Line Syntax (Labels, Commands and Comments)"
  640. XLines in a procedure 
  641. Xconsist of an optional label, followed by optional commands and
  642. Xarguments.  Anything on a line after an octothorpe (#) outside
  643. Xof quote marks is ignored (read "# is the comment character").
  644. X
  645. X.DS L
  646. XExample:
  647. X----------------------------------------------------------------------
  648. X# example procedure
  649. X    echo 'Hello.  Please tell me your name.'
  650. X    $s0 = %cgets  # read string from console into string variable $s0
  651. X    ifs $s0 == 'foo' goto label
  652. X    echo 'Hello there, '+$s0
  653. X    return
  654. X
  655. Xlabel echo 'You must be kidding.'
  656. X----------------------------------------------------------------------
  657. X.DE
  658. X
  659. XLabels must begin in column one.
  660. XA label may appear on a line by itself or with a comment
  661. Xappended.  A common mistake I make (from writing too much C) is
  662. Xto append a colon to a label declaration; this does not work unless
  663. Xyou also "goto label:".  
  664. XLabels are not allowed inside braces
  665. X(inside of compound statements); you may get away with it sometimes
  666. Xbecause the procedure language processor is written for speed, not
  667. Xpolitical correctness.
  668. X
  669. XCommands must have white space before them and
  670. Xwhite space before each argument.
  671. X
  672. X.so _p_param.txt
  673. X
  674. X.so _p_ifunc.txt
  675. X
  676. X.so _p_sfunc.txt
  677. X
  678. X.so _p_cmd.txt
  679. X
  680. X.*s 1 "Special Procedures"
  681. X
  682. XECU provides for special "hook" procedures to be executed
  683. Xat certain times.  Their use is encouraged, but you must
  684. Xtake precautions not to excecute any unreasoable commands
  685. Xin them, for the are rather "raw" hooks and it is easily possible
  686. Xto confuse ECU by performing illogical operations in them.  
  687. XJudicious use can, however, be quite productive.
  688. X
  689. XThey are searched for in the same manner
  690. Xas any other procedure, so you can have a
  691. Xcustomised version of them in a working directory and a default
  692. Xin your ~/.ecu subdirectory.  No error is reported if they are not found.
  693. X
  694. X.*s 2 "_rc.ep"
  695. X
  696. XAfer ECU is initialized, but before it presents the setup
  697. Xscreen or executes a -p initial procedure,
  698. Xprocedure '_rc' is executed with no arguments.
  699. X(It is named in the tradition of /etc/rc, .mailrc, etc..)
  700. XThis procedure can be used to customize the ecu environment
  701. Xprior to beginning the usual operation.  This is not a place
  702. Xto do any dialing or long-lived operations, nor is it possible to
  703. Xbypass the setup screen: for this, use the -p initial procedure.
  704. X
  705. XThe %getenv() function may be useful in here (Am I running on an
  706. Xxterm?  Do I want to change the prompt string from
  707. Xthe default environment variable $ECUPROMPT?).
  708. X
  709. XProcedure commands likely to be of interest here:
  710. X.DS I
  711. X  autorz
  712. X* baud
  713. X  color
  714. X  dcdwatch
  715. X* duplex
  716. X  prompt
  717. X  rtscts
  718. X* setline
  719. X.DE
  720. X
  721. XCommands marked with an asterisk affect the initial (default)
  722. Xvalues presented on the setup screen.
  723. X
  724. XIf _rc.ep returns a non-zero status or fails (due to syntax or
  725. Xother error), ecu terminates immediately.
  726. X
  727. X.*s 2 "_connect.ep"
  728. X
  729. XThis procedure is executed after every connection success
  730. Xafter the CONNECT message ("result code") is printed.
  731. XIt is passed one argument, the "result code" string
  732. Xgenerated by the dialer function (e.g., "CONNECT 19200").
  733. X
  734. XYou may use %rname and other functions and features to customize
  735. Xthis function based on the particular system just reached.  Note
  736. Xthat integer variable $i0 and string variable $s0 set zero prior
  737. Xto executing the function.  This function may modify the behavior
  738. Xof coorperating dialer functions by setting the value of numbered
  739. Xstring or integer variables.  In particular, the dialer function
  740. Xwill inherit the values of $i0 and $s0 when this special function
  741. Xterminates.
  742. X.B
  743. XBe careful of what you do in here since MANY ecu procedure commands
  744. Xaffect $i0 and $s0 as a side effect of their operation.
  745. X.R
  746. XEven if you know what you do in _connect.ep does not modify $i0
  747. Xor $s0, use of the preservation technique shown in the example
  748. Xbelow may save you headaches if you add to the function in the
  749. Xfuture (long after you have forgotten this pedantic admonition).
  750. X
  751. XIf this procedure fails (abnormal procedure termination
  752. Xor non-zero return code), ECU hangs up on the line and proceeds
  753. Xas if the connection failed.
  754. X
  755. X.DS L
  756. XExample:
  757. X#+------------------------------------------------------------------
  758. X#  _connect.ep - post-CONNECT special "hook" procedure
  759. X#-------------------------------------------------------------------
  760. X#+:EDITS:*/
  761. X#:09-10-1992-13:58-wht@n4hgf-ECU release 3.20
  762. X#:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA
  763. X#:07-13-1991-14:47-wht@n4hgf-creation
  764. X
  765. X  $iv0_save = $i0  # it is a VERY good idea to save the dialer
  766. X  $sv0_save = $s0  # function return status
  767. X                   # since gobs of functions and commands modify $i0
  768. X                   # and/or $s0 as a side effect of their operation
  769. X
  770. X  $s30 = '_connect '+%rname+' ('+%argv(1)+')'
  771. X  echo $s30        # this still will also live to be visible by
  772. X                   # the dialer function
  773. X
  774. X  ifi %baud > 2400
  775. X  {
  776. X     xon    off    # turn XON/XOFF off first, then ...
  777. X     rtscts on     # turn on RTS/CTS
  778. X  }
  779. X  else
  780. X  {
  781. X     rtscts off    # turn off RTS/CTS, then ...
  782. X     xon    on     # turn XON/XOFF on
  783. X  }
  784. X
  785. X  $i0 = $iv0_save  # restore dialer return status
  786. X  $s0 = $sv0_save
  787. X.DE
  788. X
  789. X.*s 2 "_connfail.ep"
  790. X
  791. XThis procedure is executed after every connection failure after
  792. Xthe failure message ("result code") is printed.  It is passed two
  793. Xarguments, the logical system name (the dial directory
  794. Xentry name or the phone number)
  795. Xand the "result code" string generated by the dialer
  796. Xfunction (e.g., "BUSY").  The function is called after $i0 has
  797. Xbeen set to 1 and $s0 has been set to the result code.  This
  798. Xfunction may modify the behavior of coorperating dialer functions
  799. Xby setting the value of numbered string or integer variables.  In
  800. Xparticular, the dialer function will inherit the values of $i0
  801. Xand $s0 when this special function terminates.
  802. X.B
  803. XBe careful of what you do in here since MANY ecu procedure commands
  804. Xaffect $i0 and/or $s0 as a side effect of their operation.
  805. X.R
  806. XSee _connect.ep above for further screams and moans.
  807. X
  808. X]If you get very involved with using this procedure, you'll sooner
  809. Xor later run into some undocumented $so values.  You'll have to
  810. Xtake a look at ecuDCE.c and hdbintf.c
  811. Xfor an authoritative reference, but perhaps
  812. Xyou can get along by knowing that result codes with an exclamation point
  813. Xas their first character are generated by ECU.
  814. X
  815. XECU ignores any failure (abnormal procedure termination
  816. Xor non-zero return code) resulting from the execution of this procedure.
  817. X
  818. X.*s 2 "_hangup.ep"
  819. X
  820. XThis procedure is executed after every connection termination.
  821. XIt is passed one argument, a string representation
  822. Xof the number of seconds you were connected.
  823. XYou may use %rname and other functions and features
  824. Xto customize this function based on the particular system
  825. Xjust reached.  ECU ignores any error
  826. Xreturned by the procedure.
  827. XECU ignores any failure (abnormal procedure termination
  828. Xor non-zero return code) resulting from the execution of this procedure.
  829. X
  830. X.br
  831. X.nr si 0n
  832. X.af % i
  833. X.ls 1
  834. X.TC 1 1 3
  835. SHAR_EOF
  836. chmod 0644 doc/proc.txt ||
  837. echo 'restore of doc/proc.txt failed'
  838. Wc_c="`wc -c < 'doc/proc.txt'`"
  839. test 9296 -eq "$Wc_c" ||
  840.     echo 'doc/proc.txt: original size 9296, current size' "$Wc_c"
  841. rm -f _shar_wnt_.tmp
  842. fi
  843. # ============= models/_connect.ep ==============
  844. if test ! -d 'models'; then
  845.     echo 'x - creating directory models'
  846.     mkdir 'models'
  847. fi
  848. if test -f 'models/_connect.ep' -a X"$1" != X"-c"; then
  849.     echo 'x - skipping models/_connect.ep (File already exists)'
  850.     rm -f _shar_wnt_.tmp
  851. else
  852. > _shar_wnt_.tmp
  853. echo 'x - extracting models/_connect.ep (Text)'
  854. sed 's/^X//' << 'SHAR_EOF' > 'models/_connect.ep' &&
  855. X#+------------------------------------------------------------------
  856. X#  _connect.ep - CONNECT special "hook" procedure
  857. X#
  858. X# %argv(1) - result code
  859. X#-------------------------------------------------------------------
  860. X#+:EDITS:*/
  861. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  862. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  863. X#:07-13-1991-14:47-wht@n4hgf-creation
  864. X
  865. X    $iv0_save = $i0  # it is a VERY good idea to save the dialer
  866. X    $sv0_save = $s0  # function return status
  867. X                     # since gobs of functions and commands modify $i0
  868. X                     # as a side effect of their operation
  869. X    ifs %envvar('WINDOWID') != ''
  870. X        echo %chr(0x1B)+']0ECU ('+%uname+'->'+%rname+') '+%logname+%chr(0x07)
  871. X
  872. X    prompt %uname+'->'+%rname+'%'
  873. X    $i0 = $iv0_save  # restore dialer return status
  874. X    $s0 = $sv0_save
  875. SHAR_EOF
  876. chmod 0644 models/_connect.ep ||
  877. echo 'restore of models/_connect.ep failed'
  878. Wc_c="`wc -c < 'models/_connect.ep'`"
  879. test 811 -eq "$Wc_c" ||
  880.     echo 'models/_connect.ep: original size 811, current size' "$Wc_c"
  881. rm -f _shar_wnt_.tmp
  882. fi
  883. # ============= models/_hangup.ep ==============
  884. if test -f 'models/_hangup.ep' -a X"$1" != X"-c"; then
  885.     echo 'x - skipping models/_hangup.ep (File already exists)'
  886.     rm -f _shar_wnt_.tmp
  887. else
  888. > _shar_wnt_.tmp
  889. echo 'x - extracting models/_hangup.ep (Text)'
  890. sed 's/^X//' << 'SHAR_EOF' > 'models/_hangup.ep' &&
  891. X#+------------------------------------------------------------------
  892. X#  _hangup.ep - hangup special "hook" procedure
  893. X#
  894. X# %argv(1) - connect time in seconds
  895. X#-------------------------------------------------------------------
  896. X#+:EDITS:*/
  897. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  898. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  899. X#:07-13-1991-14:47-wht@n4hgf-creation
  900. X
  901. X    $i0 = %stoi(%argv(1))
  902. X    $s0 = %etime($i0)
  903. X    echo '_hangup on '+%rname+' after '+$s0+' connect'
  904. X    ifs %envvar('WINDOWID') != ''
  905. X        echo %chr(0x1B)+']0ECU disconnected ('+%logname+')'+%chr(0x07)
  906. X    prompt %uname+'%'
  907. SHAR_EOF
  908. chmod 0644 models/_hangup.ep ||
  909. echo 'restore of models/_hangup.ep failed'
  910. Wc_c="`wc -c < 'models/_hangup.ep'`"
  911. test 585 -eq "$Wc_c" ||
  912.     echo 'models/_hangup.ep: original size 585, current size' "$Wc_c"
  913. rm -f _shar_wnt_.tmp
  914. fi
  915. # ============= models/_rc.ep ==============
  916. if test -f 'models/_rc.ep' -a X"$1" != X"-c"; then
  917.     echo 'x - skipping models/_rc.ep (File already exists)'
  918.     rm -f _shar_wnt_.tmp
  919. else
  920. > _shar_wnt_.tmp
  921. echo 'x - extracting models/_rc.ep (Text)'
  922. sed 's/^X//' << 'SHAR_EOF' > 'models/_rc.ep' &&
  923. X#+------------------------------------------------------------------
  924. X#  _rc.ep - ecu "rc" procedure
  925. X#-------------------------------------------------------------------
  926. X#+:EDITS:*/
  927. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  928. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  929. X#:07-13-1991-14:47-wht@n4hgf-creation
  930. X
  931. X    echo '_rc shmid='+%itos(%shmid)
  932. X    ifs %envvar('WINDOWID') != ''
  933. X        echo %chr(0x1B)+']0ECU ('+%logname+')'+%chr(0x07)
  934. SHAR_EOF
  935. chmod 0644 models/_rc.ep ||
  936. echo 'restore of models/_rc.ep failed'
  937. Wc_c="`wc -c < 'models/_rc.ep'`"
  938. test 433 -eq "$Wc_c" ||
  939.     echo 'models/_rc.ep: original size 433, current size' "$Wc_c"
  940. rm -f _shar_wnt_.tmp
  941. fi
  942. # ============= models/_terminate.ep ==============
  943. if test -f 'models/_terminate.ep' -a X"$1" != X"-c"; then
  944.     echo 'x - skipping models/_terminate.ep (File already exists)'
  945.     rm -f _shar_wnt_.tmp
  946. else
  947. > _shar_wnt_.tmp
  948. echo 'x - extracting models/_terminate.ep (Text)'
  949. sed 's/^X//' << 'SHAR_EOF' > 'models/_terminate.ep' &&
  950. X#+------------------------------------------------------------------
  951. X#  _terminate.ep - ecu termination procedure
  952. X#-------------------------------------------------------------------
  953. X#+:EDITS:*/
  954. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  955. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  956. X#:07-13-1991-14:47-wht@n4hgf-creation
  957. X
  958. X    ifs %envvar('WINDOWID') != ''
  959. X        echo %chr(0x1B)+']0xterm('+%logname+')'+%chr(0x07)
  960. SHAR_EOF
  961. chmod 0644 models/_terminate.ep ||
  962. echo 'restore of models/_terminate.ep failed'
  963. Wc_c="`wc -c < 'models/_terminate.ep'`"
  964. test 415 -eq "$Wc_c" ||
  965.     echo 'models/_terminate.ep: original size 415, current size' "$Wc_c"
  966. rm -f _shar_wnt_.tmp
  967. fi
  968. # ============= models/bsd_uname.ep ==============
  969. if test -f 'models/bsd_uname.ep' -a X"$1" != X"-c"; then
  970.     echo 'x - skipping models/bsd_uname.ep (File already exists)'
  971.     rm -f _shar_wnt_.tmp
  972. else
  973. > _shar_wnt_.tmp
  974. echo 'x - extracting models/bsd_uname.ep (Text)'
  975. sed 's/^X//' << 'SHAR_EOF' > 'models/bsd_uname.ep' &&
  976. X#  CHK=0xFD46
  977. X#--------------------------------------------------------------
  978. X# bsd_uname.ep - get remote username from bsd system
  979. X# return: $s0 = username
  980. X#         $i0 = 1 if success, else 0
  981. X#--------------------------------------------------------------
  982. X#+:EDITS:*/
  983. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  984. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  985. X#:07-11-1989-16:55-wht-get cmd became lgets
  986. X#:06-28-1989-19:36-wht-use named variables
  987. X#:06-25-1989-13:56-wht-new do command syntax
  988. X#:06-25-1989-12:33-wht-new if/while syntax
  989. X#:06-22-1989-13:30-wht-creation
  990. X
  991. X    set $s0='whoami'    # send command
  992. X    do 'oneline'        # get $s0=username
  993. X    ifi $i0 == 0         # we bombed?
  994. X    {
  995. X        set $i0=%colors; color red
  996. X        echo 'bsd_uname: get user name failed'
  997. X        icolor $i0
  998. X        $i0 = 0
  999. X    }
  1000. X
  1001. SHAR_EOF
  1002. chmod 0644 models/bsd_uname.ep ||
  1003. echo 'restore of models/bsd_uname.ep failed'
  1004. Wc_c="`wc -c < 'models/bsd_uname.ep'`"
  1005. test 770 -eq "$Wc_c" ||
  1006.     echo 'models/bsd_uname.ep: original size 770, current size' "$Wc_c"
  1007. rm -f _shar_wnt_.tmp
  1008. fi
  1009. # ============= models/colors ==============
  1010. if test -f 'models/colors' -a X"$1" != X"-c"; then
  1011.     echo 'x - skipping models/colors (File already exists)'
  1012.     rm -f _shar_wnt_.tmp
  1013. else
  1014. > _shar_wnt_.tmp
  1015. echo 'x - extracting models/colors (Text)'
  1016. sed 's/^X//' << 'SHAR_EOF' > 'models/colors' &&
  1017. X#colors - ecu color file
  1018. Xnormal lt_cyan black
  1019. Xreverse red white
  1020. Xnotify black gray
  1021. Xsuccess lt_green black
  1022. Xalert yellow black
  1023. Xerror red black
  1024. SHAR_EOF
  1025. chmod 0644 models/colors ||
  1026. echo 'restore of models/colors failed'
  1027. Wc_c="`wc -c < 'models/colors'`"
  1028. test 140 -eq "$Wc_c" ||
  1029.     echo 'models/colors: original size 140, current size' "$Wc_c"
  1030. rm -f _shar_wnt_.tmp
  1031. fi
  1032. # ============= models/dir ==============
  1033. if test -f 'models/dir' -a X"$1" != X"-c"; then
  1034.     echo 'x - skipping models/dir (File already exists)'
  1035.     rm -f _shar_wnt_.tmp
  1036. else
  1037. > _shar_wnt_.tmp
  1038. echo 'x - extracting models/dir (Text)'
  1039. sed 's/^X//' << 'SHAR_EOF' > 'models/dir' &&
  1040. X/tmp
  1041. X/usr/tmp
  1042. SHAR_EOF
  1043. chmod 0644 models/dir ||
  1044. echo 'restore of models/dir failed'
  1045. Wc_c="`wc -c < 'models/dir'`"
  1046. test 14 -eq "$Wc_c" ||
  1047.     echo 'models/dir: original size 14, current size' "$Wc_c"
  1048. rm -f _shar_wnt_.tmp
  1049. fi
  1050. # ============= models/f.ep ==============
  1051. if test -f 'models/f.ep' -a X"$1" != X"-c"; then
  1052.     echo 'x - skipping models/f.ep (File already exists)'
  1053.     rm -f _shar_wnt_.tmp
  1054. else
  1055. > _shar_wnt_.tmp
  1056. echo 'x - extracting models/f.ep (Text)'
  1057. sed 's/^X//' << 'SHAR_EOF' > 'models/f.ep' &&
  1058. X#  CHK=0x1C17
  1059. X#+------------------------------------------------------
  1060. X# f.eq - colorful finger on remote BSD system
  1061. X#-------------------------------------------------------
  1062. X#+:EDITS:*/
  1063. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  1064. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  1065. X#:07-11-1989-16:55-wht-get cmd became lgets
  1066. X#:06-30-1989-18:53-wht-creation
  1067. X
  1068. X    mkvar $icolor; $icolor = %colors
  1069. X    mkvar $itimeout; $itimeout = 50
  1070. X    send %argv(0)
  1071. X    lookfor '\n' 40
  1072. X    $s0 = ''
  1073. X    whilei 1==1
  1074. X    {
  1075. X        lgets $s00 $itimeout 5 '\n'
  1076. X        ifi $i0 == 0 continue
  1077. X        ifi %instr($s0,'% ') >= 0 break # prompt ends it
  1078. X        $itimeout = 20
  1079. X        color cyan
  1080. X        ifi %instr($s0,'Login') == 0 color gray
  1081. X        ifi %instr($s0,' i29 ') > 0 color green
  1082. X        ifi %instr($s0,' i13 ') > 0 color red
  1083. X        ifi %instr($s0,'cma') == 0 color yellow
  1084. X        ifi %instr($s0,'gfp') == 0 color lt_blue
  1085. X        ifi %instr($s0,'jts') == 0 color lt_blue
  1086. X        echo $s0
  1087. X    }
  1088. X    icolor $icolor
  1089. X    send ''
  1090. X
  1091. SHAR_EOF
  1092. chmod 0644 models/f.ep ||
  1093. echo 'restore of models/f.ep failed'
  1094. Wc_c="`wc -c < 'models/f.ep'`"
  1095. test 912 -eq "$Wc_c" ||
  1096.     echo 'models/f.ep: original size 912, current size' "$Wc_c"
  1097. rm -f _shar_wnt_.tmp
  1098. fi
  1099. # ============= models/file_test.ep ==============
  1100. if test -f 'models/file_test.ep' -a X"$1" != X"-c"; then
  1101.     echo 'x - skipping models/file_test.ep (File already exists)'
  1102.     rm -f _shar_wnt_.tmp
  1103. else
  1104. > _shar_wnt_.tmp
  1105. echo 'x - extracting models/file_test.ep (Text)'
  1106. sed 's/^X//' << 'SHAR_EOF' > 'models/file_test.ep' &&
  1107. X#  CHK=0xA2AF
  1108. X#------------------------------------------------------------
  1109. X#  ftst.ep - test ecu procedure file functions
  1110. X#------------------------------------------------------------
  1111. X
  1112. X ptrace off         # turn off trace mode
  1113. X fdel 'ftst.log'    # kill any previous file
  1114. X plog 'ftst.log'    # turn on logging
  1115. X
  1116. X echo ''
  1117. X echo 'ftst '+%date+' '+%time
  1118. X echo ''
  1119. X
  1120. X ptrace on                  # turn on trace mode
  1121. X
  1122. X set $s10 = '/tmp/ftst.tmp' # temp file name
  1123. X fdel $s10                  # test proc trace warning
  1124. X fopen -w 0 $s10            # open file 0 for write
  1125. X set i0=%ftell(0)           # should produce 0
  1126. X fputs 0 'abcdefghijk'      # put a line in the file
  1127. X set i0=%ftell(0)           # should produce 12
  1128. X fclose 0 n                 # close the file
  1129. X
  1130. X fopen -r 0 $s10    # open again for reading
  1131. X fgets 0 $s0        # should produce 'abcdefghijk'
  1132. X fseek 0 0          # rewind to read again
  1133. X fgets 0 $s0        # should produce 'abcdefghijk'
  1134. X fgets 0 $s0        # should produce null string
  1135. X set $i0=%fmode(0)  # test file mode function
  1136. X fclose 0           # close the file
  1137. X
  1138. X fchmod 'rw-rw-r-x' $s10 # set mode using string
  1139. X set $i0=%fmode($s10)
  1140. X
  1141. X fchmod 0777 $s10        # set mode using constant
  1142. X set $i0=%fmode($s10)
  1143. X
  1144. X ptrace off              # show file attributes
  1145. X echo ''
  1146. X echo -n $s10+' has '+%itos(%fsize($s10),06d)
  1147. X echo    ' (0x'+%itos(%fsize($s10),x  )+') bytes'
  1148. X echo 'accessed '+%edate(%fatime($s10))
  1149. X echo 'modified '+%edate(%fmtime($s10))
  1150. X echo ''
  1151. X ptrace on
  1152. X
  1153. X # demonstrate "is directory", "is character",
  1154. X # "is regular file" functions
  1155. X set i0=%isdir($s10),i1=%ischr($s10),i2=%isreg($s10)
  1156. X
  1157. X fdel $s10 # should say 'deleted'
  1158. X ptrace off
  1159. X plog off
  1160. SHAR_EOF
  1161. chmod 0644 models/file_test.ep ||
  1162. echo 'restore of models/file_test.ep failed'
  1163. Wc_c="`wc -c < 'models/file_test.ep'`"
  1164. test 1667 -eq "$Wc_c" ||
  1165.     echo 'models/file_test.ep: original size 1667, current size' "$Wc_c"
  1166. rm -f _shar_wnt_.tmp
  1167. fi
  1168. # ============= models/frame_test.ep ==============
  1169. if test -f 'models/frame_test.ep' -a X"$1" != X"-c"; then
  1170.     echo 'x - skipping models/frame_test.ep (File already exists)'
  1171.     rm -f _shar_wnt_.tmp
  1172. else
  1173. > _shar_wnt_.tmp
  1174. echo 'x - extracting models/frame_test.ep (Text)'
  1175. sed 's/^X//' << 'SHAR_EOF' > 'models/frame_test.ep' &&
  1176. X#  CHK=0xAB0B
  1177. X
  1178. X    set $i0 = 10
  1179. XLABEL
  1180. X    ifi $i0 > 0
  1181. X    {
  1182. X        set $i0,$i0=$i0-1
  1183. X        ifi $i0 = 5
  1184. X        {
  1185. X            echo 'nesting works!'
  1186. X        }
  1187. X        else ifi $i0 == 4
  1188. X        {
  1189. X            echo 'else works!'
  1190. X        }
  1191. X        goto LABEL
  1192. X    }
  1193. X
  1194. X    set $s0 = ''
  1195. X    whiles $s0 != 'aaaaa'
  1196. X    {
  1197. X        set $s0=$s0+'a'
  1198. X        ifs $s0 == 'aaaa' break
  1199. X        else echo '$s0=\''+$s0+'\''
  1200. X    }
  1201. X
  1202. X    echo 'done!'
  1203. SHAR_EOF
  1204. chmod 0644 models/frame_test.ep ||
  1205. echo 'restore of models/frame_test.ep failed'
  1206. Wc_c="`wc -c < 'models/frame_test.ep'`"
  1207. test 317 -eq "$Wc_c" ||
  1208.     echo 'models/frame_test.ep: original size 317, current size' "$Wc_c"
  1209. rm -f _shar_wnt_.tmp
  1210. fi
  1211. # ============= models/funckeymap ==============
  1212. if test -f 'models/funckeymap' -a X"$1" != X"-c"; then
  1213.     echo 'x - skipping models/funckeymap (File already exists)'
  1214.     rm -f _shar_wnt_.tmp
  1215. else
  1216. > _shar_wnt_.tmp
  1217. echo 'x - extracting models/funckeymap (Text)'
  1218. sed 's/^X//' << 'SHAR_EOF' > 'models/funckeymap' &&
  1219. X#+------------------------------------------------------------------------
  1220. X# ECU 3.20 funckeymap
  1221. X#
  1222. X# This file contains mapping information to convert non-ANSI
  1223. X# keyboard function keys to an internal ECU function key
  1224. X# representation
  1225. X# 
  1226. X# The format of an entry is shown below in the 'ansilike' example (used
  1227. X# to ansilike ECU from the console by defining an ansi terminal type
  1228. X# nevertheless equivalent to ansi).
  1229. X# 
  1230. X# The first line(s) in a terminal keyboard description begin in
  1231. X# column 1 and contain the terminal types (a la $TERM) for which
  1232. X# the keyboard description are valid.  The example entry contains
  1233. X# several references to terminal types containing the substring
  1234. X# 'ansi'.  These are included only as an example of one keyboard
  1235. X# description servicing multiple terminal types.
  1236. X# 
  1237. X# ECU determines whether a terminal meets the ansi vs.  ANSI
  1238. X# distinction by searching for 'ansi' in the $TERM environment
  1239. X# variable (without regard to case: 'AnSi' will match as well as
  1240. X# 'ansi').  If your keyboard matches the ANSI specification even
  1241. X# though your $TERM environment variable does not contain 'ansi'
  1242. X# (such as 'sun'), then you may add the terminal type to the 'ansilike'
  1243. X# entry rather than create a separate entry.
  1244. X# 
  1245. X# Following the "first lines" are key definition entries, each
  1246. X# preceded by at least one tab or space.  Each entry is composed of
  1247. X# three fields delimited by commas.  The first field of an entry is
  1248. X# the internal ECU function key name and must be chosen from the
  1249. X# following strings (with no regard to case): "F1", "F2", "F3",
  1250. X# "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "Home",
  1251. X# "End", "PgUp", "PgDn", "CUP", "CUL", "CU5", "CUR" and "CUD" The
  1252. X# second field contains the name of the key as it appears on the
  1253. X# non-ANSI keyboard (such as "Send" for End on the Wyse 60).  The
  1254. X# third field is a description of the character sequence generated
  1255. X# by the non-ANSI keyboard when the chosen key is pressed; it is a
  1256. X# string of one or more tokens separated by spaces or tabs.
  1257. X# The tokens are described in full in the ECU manual sections titled
  1258. X# "Function Key Recognition" and "Function Key Mapping."
  1259. X#
  1260. X# << LOOK >> NOTE:
  1261. X# Compile and run 'kbdtest3.c' (see the source file for information)
  1262. X# to build a file containing the emitted sequences for each supported
  1263. X# function key.  Looking at the file, you will see it is a funckeymap
  1264. X# formatted keyboard description complete with the TERM terminal type.
  1265. X# I would appreciate your mailing me any files you
  1266. X# create describing non-SCO/non-ISC main console keyboards.
  1267. X#
  1268. X# If you like, compile the older 'kbdtest.c' module released with 3.0
  1269. X# and run it. Press any key you like and hex for the emitted
  1270. X# sequence will appear on the screen.  Press ^D to exit the program.
  1271. X#
  1272. X#-------------------------------------------------------------------------
  1273. X#+:EDITS:*/
  1274. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  1275. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  1276. X#:05-14-1992-02:07-wht@n4hgf-make note of Metro Link R5 compatibility
  1277. X#:04-19-1992-01:37-wht@n4hgf-add ESIX SVR4 console
  1278. X#:10-03-1991-04:56-wht@n4hgf-add X386 1.1b Roell X11R4 xterm entry
  1279. X#:08-26-1991-05:06-wht@n4hgf2-add sun console and xterm entry
  1280. X#:08-10-1991-16:07-wht@n4hgf-add new Metro Link server entry
  1281. X#:05-06-1991-02:31-wht@n4hgf-add tandem terminal "ansi-terminal"
  1282. X#:05-05-1991-17:37-root@n4hgf-add ISC at386 tnx to dug@kd4nc
  1283. X#:05-02-1991-04:53-wht@n4hgf-document kbdtest3
  1284. X#:03-26-1991-00:00-wht@n4hgf-more Metro Link work
  1285. X#:03-19-1991-21:04-root@n4hgf-add Metro Link MetroX X11R4 xterm
  1286. X#:12-20-1990-23:50-wht@n4hgf-"correct" wyse entry
  1287. X#:12-18-1990-19:43-wht@n4hgf-add xterm and wy60
  1288. X#:12-02-1990-13:34-wht@n4hgf-creation
  1289. X
  1290. X#+-------------------------------------------------------------------
  1291. X#   SCO multiscreen (and other ANSI for F1-F10, cursor keys)
  1292. X#--------------------------------------------------------------------
  1293. Xsco
  1294. Xansi
  1295. Xansi43
  1296. Xmsdos
  1297. Xdos
  1298. Xdosansi
  1299. Xtest
  1300. X    F1:F1:          esc [ M 
  1301. X    F2:F2:          esc [ N 
  1302. X    F3:F3:          esc [ O 
  1303. X    F4:F4:          esc [ P 
  1304. X    F5:F5:          esc [ Q 
  1305. X    F6:F6:          esc [ R 
  1306. X    F7:F7:          esc [ S 
  1307. X    F8:F8:          esc [ T 
  1308. X    F9:F9:          esc [ U 
  1309. X    F10:F10:        esc [ V 
  1310. X    F11:F11:        esc [ W 
  1311. X    F12:F12:        esc [ X 
  1312. X    Home:Home:      esc [ H 
  1313. X    End:End:        esc [ F 
  1314. X    PgUp:PgUp:      esc [ I 
  1315. X    PgDn:PgDn:      esc [ G 
  1316. X    CUU:CUU:        esc [ A 
  1317. X    CUL:CUL:        esc [ D 
  1318. X    CU5:CU5:        esc [ E 
  1319. X    CUR:CUR:        esc [ C 
  1320. X    CUD:CUD:        esc [ B 
  1321. X    Ins:Ins:        esc [ L
  1322. X    BkTab:BackTab:  esc [ Z
  1323. X
  1324. X#+-------------------------------------------------------------------
  1325. X#   SCO ODT 1.0/1.1 console xterm (as released, unmodified)
  1326. X#--------------------------------------------------------------------
  1327. Xxterm
  1328. X    F1:F1:          esc [ 1 1 ~
  1329. X    F2:F2:          esc [ 1 2 ~
  1330. X    F3:F3:          esc [ 1 3 ~
  1331. X    F4:F4:          esc [ 1 4 ~
  1332. X    F5:F5:          esc [ 1 5 ~
  1333. X    F6:F6:          esc [ 1 7 ~
  1334. X    F7:F7:          esc [ 1 8 ~
  1335. X    F8:F8:          esc [ 1 9 ~
  1336. X    F9:F9:          esc [ 2 0 ~
  1337. X    F10:F10:        esc [ 2 1 ~
  1338. X#   F11:F11:        esc [ 2 3 ~   # decommitted to provide a CU5
  1339. X#   F12:F12:        esc [ 2 4 ~   # decommitted to provide a BkTab
  1340. X    Home:Home:      esc [ 8 ~
  1341. X    End:End:        esc [ 7 ~
  1342. X    PgUp:PgUp:      esc [ 5 ~
  1343. X    PgDn:PgDn:      esc [ 6 ~
  1344. X    CUU:CUU:        esc [ A 
  1345. X    CUL:CUL:        esc [ D 
  1346. X#   CU5:CU5:        esc [ 8 ~     # same as HOME unfortunately
  1347. X    CU5:F11:        esc [ 2 3 ~
  1348. X    CUR:CUR:        esc [ C 
  1349. X    CUD:CUD:        esc [ B 
  1350. X    Ins:Ins:        esc [ 2 ~
  1351. X#   BkTab:BackTab:  tab           # same as TAB unfortunately
  1352. X    BkTab:F12:      esc [ 2 4 ~
  1353. X
  1354. X#+-------------------------------------------------------------------
  1355. X#   SCO ODT 2.0 console xterm (with translations shown below)
  1356. X#
  1357. X#XTerm*VT100*Translations: #override\
  1358. X#     Shift <Key>Tab:  string(0x1b) string("[Z") \n \
  1359. X#     <Key>KP_Insert:  string(0x1b) string("[L") \n \
  1360. X#     <Key>KP_Home:    string(0x1b) string("[H") \n \
  1361. X#     <Key>KP_End:     string(0x1b) string("[F") \n \
  1362. X#     <Key>KP_Prior:   string(0x1b) string("[I") \n \
  1363. X#     <Key>KP_Next:    string(0x1b) string("[G") \n \
  1364. X#     <Key>KP_Begin:   string(0x1b) string("[E") \n \
  1365. X#
  1366. X#--------------------------------------------------------------------
  1367. Xxterm
  1368. X    BkTab:BkTab:    esc [ Z
  1369. X    CU5:CU5:        esc [ E
  1370. X    F1:F1:          esc [ 1 1 ~
  1371. X    F2:F2:          esc [ 1 2 ~
  1372. X    F3:F3:          esc [ 1 3 ~
  1373. X    F4:F4:          esc [ 1 4 ~
  1374. X    F5:F5:          esc [ 1 5 ~
  1375. X    F6:F6:          esc [ 1 7 ~
  1376. X    F7:F7:          esc [ 1 8 ~
  1377. X    F8:F8:          esc [ 1 9 ~
  1378. X    F9:F9:          esc [ 2 0 ~
  1379. X    F10:F10:        esc [ 2 1 ~
  1380. X    F11:F11:        esc [ 2 3 ~
  1381. X    F12:F12:        esc [ 2 4 ~
  1382. X    Ins:Ins:        esc [ L
  1383. X    Home:Home:      esc [ H
  1384. X    End:End:        esc [ F
  1385. X    PgUp:PgUp:      esc [ I
  1386. X    PgDn:PgDn:      esc [ G
  1387. X    CUU:CUU:        esc [ A
  1388. X    CUD:CUD:        esc [ B
  1389. X    CUL:CUL:        esc [ D
  1390. X    CUR:CUR:        esc [ C
  1391. X
  1392. X#+-------------------------------------------------------------------
  1393. X# ~wht/.Xdefaults on a networked SCO and Sun boxes
  1394. X# has these xterm translations: allows
  1395. X# me to be able to run ECU on n4hgf from 
  1396. X#
  1397. X#  a local xterm with the Roell X386 1.1b, Metro Link X11R4 and X11R5
  1398. X#    or SCO ODT 1.1 servers or
  1399. X#  a remote Sparc IPX MIT X11R4 xterm running under
  1400. X#    news/open windows 2.0 or the MIT X11R4 server
  1401. X#
  1402. X# and vice versa on the Sun box
  1403. X#
  1404. X# This translation set demonstrates two different servers'
  1405. X# keyboard-to-keysym mappings being accommodated by one 'xterm'
  1406. X# funckey entry
  1407. X#
  1408. X#XTerm*VT100*Translations: #override\
  1409. X#     Shift <Key>Tab:  string(0x1b) string("[Z") \n \
  1410. X#     <Key>Insert:     string(0x1b) string("[L") \n \
  1411. X#     <Key>Home:       string(0x1b) string("[H") \n \
  1412. X#     <Key>End:        string(0x1b) string("[F") \n \
  1413. X#     <Key>Begin:      string(0x1b) string("[E") \n \
  1414. X#     <Key>F27:        string(0x1b) string("[H") \n \
  1415. X#     <Key>R13:        string(0x1b) string("[F") \n \
  1416. X#     <Key>F29:        string(0x1b) string("[I") \n \
  1417. X#     <Key>F31:        string(0x1b) string("[E") \n \
  1418. X#     <Key>F35:        string(0x1b) string("[G") \n
  1419. X#
  1420. X#--------------------------------------------------------------------
  1421. Xxterm
  1422. X    BkTab:BkTab:    esc [ Z
  1423. X    CU5:CU5:        esc [ E
  1424. X    F1:F1:          esc [ 1 1 ~
  1425. X    F2:F2:          esc [ 1 2 ~
  1426. X    F3:F3:          esc [ 1 3 ~
  1427. X    F4:F4:          esc [ 1 4 ~
  1428. X    F5:F5:          esc [ 1 5 ~
  1429. X    F6:F6:          esc [ 1 7 ~
  1430. X    F7:F7:          esc [ 1 8 ~
  1431. X    F8:F8:          esc [ 1 9 ~
  1432. X    F9:F9:          esc [ 2 0 ~
  1433. X    F10:F10:        esc [ 2 1 ~
  1434. X    F11:F11:        esc [ 2 3 ~
  1435. X    F12:F12:        esc [ 2 4 ~
  1436. X    Ins:Ins:        esc [ 2 ~
  1437. X    Home:Home:      esc [ H
  1438. X    End:End:        esc [ F
  1439. X    PgUp:PgUp:      esc [ 5 ~
  1440. X    PgDn:PgDn:      esc [ 6 ~
  1441. X    CUU:CUU:        esc [ A
  1442. X    CUD:CUD:        esc [ B
  1443. X    CUL:CUL:        esc [ D
  1444. X    CUR:CUR:        esc [ C
  1445. X
  1446. X#+-------------------------------------------------------------------
  1447. X#   Sun Sparc xterm using MIT X11R4 server (pl18)
  1448. X#
  1449. X# Place in .Xdefaults or whatever:
  1450. X#
  1451. X# XTerm*VT100*Translations: #override\
  1452. X#     Shift <Key>Tab:   string(0x1b) string("[Z") \n \
  1453. X#     <Key>F27:         string(0x1b) string("[H") \n \
  1454. X#     <Key>R13:         string(0x1b) string("[F") \n \
  1455. X#     <Key>F29:         string(0x1b) string("[I") \n \
  1456. X#     <Key>F31:         string(0x1b) string("[E") \n \
  1457. X#     <Key>F35:         string(0x1b) string("[G") \n \
  1458. X#     <Key>Insert:      string(0x1b) string("[L") \n \
  1459. X#
  1460. X# funckeymap for 'xterm' under SunOS
  1461. X# built by kbdtest3 1.02 Mon Aug 26 04:55:24 1991
  1462. X# keyboard parity required = even
  1463. X#--------------------------------------------------------------------
  1464. Xxterm
  1465. X    BkTab:BkTab:    esc [ Z
  1466. X    CU5:CU5:        esc [ E
  1467. X    F1:F1:          esc [ 1 1 ~
  1468. X    F2:F2:          esc [ 1 2 ~
  1469. X    F3:F3:          esc [ 1 3 ~
  1470. X    F4:F4:          esc [ 1 4 ~
  1471. X    F5:F5:          esc [ 1 5 ~
  1472. X    F6:F6:          esc [ 1 7 ~
  1473. X    F7:F7:          esc [ 1 8 ~
  1474. X    F8:F8:          esc [ 1 9 ~
  1475. X    F9:F9:          esc [ 2 0 ~
  1476. X    F10:F10:        esc [ 2 1 ~
  1477. X    F11:F11:        esc [ 2 3 ~
  1478. X    F12:F12:        esc [ 2 4 ~
  1479. X    Ins:Ins:        esc [ L        # Ins generates Insert
  1480. X    Home:Home:      esc [ H     # Home generates F27
  1481. X    End:End:        esc [ F        # End generates R13
  1482. X    PgUp:PgUp:      esc [ I        # PgUp generates F29
  1483. X    PgDn:PgDn:      esc [ G        # PgDn generates F35
  1484. X    CUU:CUU:        esc [ A
  1485. X    CUD:CUD:        esc [ B
  1486. X    CUL:CUL:        esc [ D
  1487. X    CUR:CUR:        esc [ C
  1488. X
  1489. X#+-------------------------------------------------------------------
  1490. X#    Sun Console
  1491. X#
  1492. X# funckeymap for 'sun' (native console) under SunOS 4.1
  1493. X# built by kbdtest3 1.02 Mon Aug 26 16:21:57 1991
  1494. X# keyboard parity required = even
  1495. X#--------------------------------------------------------------------
  1496. Xsun
  1497. X#   BkTab:BkTab:    ht                   # does not work
  1498. X    CU5:CU5:        esc [ 2 1 8 z
  1499. X    F1:F1:          esc [ 2 2 4 z
  1500. X    F2:F2:          esc [ 2 2 5 z
  1501. X    F3:F3:          esc [ 2 2 6 z
  1502. X    F4:F4:          esc [ 2 2 7 z
  1503. X    F5:F5:          esc [ 2 2 8 z
  1504. X    F6:F6:          esc [ 2 2 9 z
  1505. X    F7:F7:          esc [ 2 3 0 z
  1506. X    F8:F8:          esc [ 2 3 1 z
  1507. X    F9:F9:          esc [ 2 3 2 z
  1508. X    F10:F10:        esc [ 2 3 3 z
  1509. X    F11:F11:        esc [ 2 3 4 z
  1510. X    F12:F12:        esc [ 2 3 5 z
  1511. X    Ins:Ins:        esc [ 2 4 7 z
  1512. X    Home:Home:      esc [ 2 1 4 z
  1513. X    End:End:        esc [ 2 2 0 z
  1514. X    PgUp:PgUp:      esc [ 2 1 6 z
  1515. X    PgDn:PgDn:      esc [ 2 2 2 z
  1516. X    CUU:CUU:        esc [ A
  1517. X    CUD:CUD:        esc [ B
  1518. X    CUL:CUL:        esc [ D
  1519. X    CUR:CUR:        esc [ C
  1520. X
  1521. X#+-------------------------------------------------------------------
  1522. X#   ISC 'AT386' keyboard
  1523. X#--------------------------------------------------------------------
  1524. XAT386
  1525. Xat386
  1526. X    F1:F1:          esc O P 
  1527. X    F2:F2:          esc O Q 
  1528. X    F3:F3:          esc O R 
  1529. X    F4:F4:          esc O S 
  1530. X    F5:F5:          esc O T 
  1531. X    F6:F6:          esc O U 
  1532. X    F7:F7:          esc O V 
  1533. X    F8:F8:          esc O W 
  1534. X    F9:F9:          esc O X 
  1535. X    F10:F10:        esc O Y 
  1536. X    F11:F11:        esc O Z 
  1537. X    F12:F12:        esc O A 
  1538. X    Home:Home:      esc [ H 
  1539. X    End:End:        esc [ Y 
  1540. X    PgUp:PgUp:      esc [ V 
  1541. X    PgDn:PgDn:      esc [ U 
  1542. X    CUU:CUU:        esc [ A 
  1543. X    CUL:CUL:        esc [ D 
  1544. X    CU5:CU5:        esc [ G 
  1545. X    CUR:CUR:        esc [ C 
  1546. X    CUD:CUD:        esc [ B 
  1547. X    Ins:Ins:        esc [ @
  1548. X    BkTab:BackTab:  gs
  1549. X
  1550. X#+-------------------------------------------------------------------
  1551. X#       ESIX SVR4 console
  1552. X#
  1553. X# funckeymap for 'AT386-M' under ESIX SVR4
  1554. X# built by kbdtest3 3.20 Thu Apr 16 23:16:22 1992
  1555. X# keyboard parity required = none
  1556. X# stty -a at kbdtest3 execution time:
  1557. X# speed 9600 baud; 
  1558. X# intr = DEL; quit = ^|; erase = ^h; kill = @;
  1559. X# eof = ^d; eol = <undef>; eol2 = <undef>; swtch = <undef>;
  1560. X# start = <undef>; stop = <undef>; susp = ^z; dsusp = <undef>;
  1561. X# rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v;
  1562. X# -parenb -parodd cs8 -cstopb -hupcl cread -clocal -loblk -parext 
  1563. X# -ignbrk brkint ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc 
  1564. X# ixon ixany -ixoff -imaxbel 
  1565. X# isig icanon -xcase echo echoe echok -echonl -noflsh 
  1566. X# -tostop -echoctl -echoprt -echoke -defecho -flusho -pendin -iexten 
  1567. X# opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3 
  1568. X#
  1569. X# supplied by Joseph H Buehler <jhpb@sarto.budd-lake.nj.us>
  1570. X#+-------------------------------------------------------------------
  1571. XAT386-M
  1572. X    BkTab:BkTab:    gs 
  1573. X    CU5:CU5:        esc [ G
  1574. X    F1:F1:          esc O P
  1575. X    F2:F2:          esc O Q
  1576. X    F3:F3:          esc O R
  1577. X    F4:F4:          esc O S
  1578. X    F5:F5:          esc O T
  1579. X    F6:F6:          esc O U
  1580. X    F7:F7:          esc O V
  1581. X    F8:F8:          esc O W
  1582. X    F9:F9:          esc O X
  1583. X    F10:F10:        esc O Y
  1584. X    F11:F11:        esc O Z
  1585. X    F12:F12:        esc O A
  1586. X    Ins:Ins:        esc [ @
  1587. X    Home:Home:      esc [ H
  1588. X    End:End:        esc [ Y
  1589. X    PgUp:PgUp:      esc [ V
  1590. X    PgDn:PgDn:      esc [ U
  1591. X    CUU:CUU:        esc [ A
  1592. X    CUD:CUD:        esc [ B
  1593. X    CUL:CUL:        esc [ D
  1594. X    CUR:CUR:        esc [ C
  1595. X
  1596. X#+-------------------------------------------------------------------
  1597. X#    Wyse 60 Native Mode (no reprogrammed function keys)
  1598. X#    (matching the keyboard tops I have, anyway)
  1599. X#
  1600. X# The following is for native mode Wyse 60 with no function keys
  1601. X# programmed for emitting alternate sequences.  This is such a
  1602. X# nice terminal in so many ways.  Too bad they cocked up the left
  1603. X# and down function keys by making them indistinguishable from
  1604. X# backspace and newline. You may wish to study the SCO /etc/termcap
  1605. X# 'wy60ak' entry for a way around this.
  1606. X#
  1607. X# Note there is a kludge in the terminal initialization code
  1608. X# to force a Wyse 60's *arrow keys* to use ANSI sequences.
  1609. X# This entry as shipped counts on this.  If you don't have SCO, try
  1610. X# the termcap entry in README.WY60
  1611. X#
  1612. X# If you really want to avoid this, comment out the IS strings below.
  1613. X#--------------------------------------------------------------------
  1614. Xwy60
  1615. Xwyse60
  1616. Xwy60ak
  1617. Xwyse60ak
  1618. Xwy60-43
  1619. Xwyse60-43
  1620. Xwyse60ak-43
  1621. Xwy60ak-43
  1622. X    IS:1:           esc Z 1 + esc [ A del
  1623. X    IS:2:            esc Z 1 , esc [ B del
  1624. X    IS:3:            esc Z 1 - esc [ D del
  1625. X    IS:4:            esc Z 1 . esc [ C del
  1626. X    IS:5:            esc Z 1 \ esc [ F del
  1627. X    IS:6:            esc Z 1 q esc [ L del 
  1628. X    F1:F1:          soh @ cr
  1629. X    F2:F1:          soh A cr
  1630. X    F3:F1:          soh B cr
  1631. X    F4:F1:          soh C cr
  1632. X    F5:F1:          soh D cr
  1633. X    F6:F1:          soh E cr
  1634. X    F7:F1:          soh F cr
  1635. X    F8:F1:          soh G cr
  1636. X    F9:F1:          soh H cr
  1637. X    F10:F10:        soh I cr
  1638. X    F11:F11:        soh J cr
  1639. X    F12:F12:        soh K cr
  1640. X    Home:Home:      rs
  1641. X    PgUp:PrevPg:    esc J
  1642. X    PgDn:NextPg:    esc K
  1643. X    BkTab:F14:      soh M cr
  1644. X    Ins:InsChar:    esc Q
  1645. X    End:Send:       esc 7
  1646. X#comment these out if you DO comment the IS strings
  1647. X   CUU:CUU:        esc [ A 
  1648. X   CUL:CUL:        esc [ D 
  1649. X   CU5:CU5:        esc [ E 
  1650. X   CUR:CUR:        esc [ C 
  1651. X   CUD:CUD:        esc [ B 
  1652. X#   Home:Home:      esc [ H 
  1653. X#   End:End:        esc [ F 
  1654. X#uncomment the if you DO NOT comment the IS strings
  1655. X#    CUU:CUU:        vt
  1656. X#    CUR:CUR:        ff
  1657. X
  1658. X#+-------------------------------------------------------------------
  1659. X#    Tandem Integrity S2
  1660. X#
  1661. X# From: rootk@tdmsou (Admin) [John Dashner]
  1662. X# Date: Mon, 6 May 91 2:23:56 EDT
  1663. X# funckeymap definition for TERM='ansi-tandem'
  1664. X# built by kbdtest3.c Mon May  6 02:17:13 1991
  1665. X#--------------------------------------------------------------------
  1666. Xansi-tandem
  1667. X    BkTab:BkTab:    esc [ Z
  1668. X    CU5:CU5:        esc [ T
  1669. X    F1:F1:          soh @ cr 
  1670. X    F2:F2:          soh A cr 
  1671. X    F3:F3:          soh B cr 
  1672. X    F4:F4:          soh C cr 
  1673. X    F5:F5:          soh D cr 
  1674. X    F6:F6:          soh E cr 
  1675. X    F7:F7:          soh F cr 
  1676. X    F8:F8:          soh G cr 
  1677. X    F9:F9:          soh H cr 
  1678. X    F10:F10:        soh I cr 
  1679. X    F11:F11:        soh J cr 
  1680. X    F12:F12:        soh K cr 
  1681. X    Ins:Ins:        esc [ @
  1682. X    Home:Home:      esc [ H
  1683. X    End:End:        esc [ 2 4 H
  1684. X    PgUp:PgUp:      esc [ V
  1685. X    PgDn:PgDn:      esc [ U
  1686. X    CUU:CUU:        esc [ A
  1687. X    CUD:CUD:        esc [ B
  1688. X    CUL:CUL:        esc [ D
  1689. X    CUR:CUR:        esc [ C
  1690. X
  1691. SHAR_EOF
  1692. chmod 0644 models/funckeymap ||
  1693. echo 'restore of models/funckeymap failed'
  1694. Wc_c="`wc -c < 'models/funckeymap'`"
  1695. test 17163 -eq "$Wc_c" ||
  1696.     echo 'models/funckeymap: original size 17163, current size' "$Wc_c"
  1697. rm -f _shar_wnt_.tmp
  1698. fi
  1699. # ============= models/gosub.ep ==============
  1700. if test -f 'models/gosub.ep' -a X"$1" != X"-c"; then
  1701.     echo 'x - skipping models/gosub.ep (File already exists)'
  1702.     rm -f _shar_wnt_.tmp
  1703. else
  1704. > _shar_wnt_.tmp
  1705. echo 'x - extracting models/gosub.ep (Text)'
  1706. sed 's/^X//' << 'SHAR_EOF' > 'models/gosub.ep' &&
  1707. X#---------------------
  1708. X# gosub.ep
  1709. X#---------------------
  1710. X
  1711. X    echo 'main'; gosub SUB; echo 'back to main'
  1712. X    return
  1713. X
  1714. XSUB
  1715. X    echo 'sub'
  1716. X    gosub SUB2
  1717. X    echo 'back to sub'
  1718. X    return
  1719. X
  1720. X
  1721. XSUB2
  1722. X    echo 'sub2'
  1723. X    return
  1724. X
  1725. X
  1726. SHAR_EOF
  1727. chmod 0644 models/gosub.ep ||
  1728. echo 'restore of models/gosub.ep failed'
  1729. Wc_c="`wc -c < 'models/gosub.ep'`"
  1730. test 198 -eq "$Wc_c" ||
  1731.     echo 'models/gosub.ep: original size 198, current size' "$Wc_c"
  1732. rm -f _shar_wnt_.tmp
  1733. fi
  1734. # ============= models/goto_test.ep ==============
  1735. if test -f 'models/goto_test.ep' -a X"$1" != X"-c"; then
  1736.     echo 'x - skipping models/goto_test.ep (File already exists)'
  1737.     rm -f _shar_wnt_.tmp
  1738. else
  1739. > _shar_wnt_.tmp
  1740. echo 'x - extracting models/goto_test.ep (Text)'
  1741. sed 's/^X//' << 'SHAR_EOF' > 'models/goto_test.ep' &&
  1742. X#  CHK=0xE30F
  1743. X# goto_test.ep
  1744. X#+:EDITS:*/
  1745. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  1746. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  1747. X#:06-07-1989-22:31-wht-creation
  1748. X    echo '... TRY1 goto test'; goto TRY1
  1749. X    echo '... TRY1 goto failed'
  1750. X    return
  1751. X
  1752. XBACK1    echo '... gotob succeeded'
  1753. X    gotob COMP
  1754. X
  1755. XTRY1    echo '... TRY1 goto succeeded'
  1756. X    gotob BACK1
  1757. X
  1758. XCOMP    echo '... COMPuted goto test'; set $s0='COMP'+'UTED',$s0
  1759. X    goto $s0
  1760. X    echo '... COMP failed'
  1761. X    return
  1762. X
  1763. XCOMPUTED
  1764. X    echo '... computed goto worked'
  1765. X    echo '... test complete'
  1766. X    return
  1767. X
  1768. X# vi:set tabstop=8:
  1769. SHAR_EOF
  1770. chmod 0644 models/goto_test.ep ||
  1771. echo 'restore of models/goto_test.ep failed'
  1772. Wc_c="`wc -c < 'models/goto_test.ep'`"
  1773. test 544 -eq "$Wc_c" ||
  1774.     echo 'models/goto_test.ep: original size 544, current size' "$Wc_c"
  1775. rm -f _shar_wnt_.tmp
  1776. fi
  1777. # ============= models/if_test.ep ==============
  1778. if test -f 'models/if_test.ep' -a X"$1" != X"-c"; then
  1779.     echo 'x - skipping models/if_test.ep (File already exists)'
  1780.     rm -f _shar_wnt_.tmp
  1781. else
  1782. > _shar_wnt_.tmp
  1783. echo 'x - extracting models/if_test.ep (Text)'
  1784. sed 's/^X//' << 'SHAR_EOF' > 'models/if_test.ep' &&
  1785. X
  1786. X    ifz 0
  1787. X        echo 'ifz works'
  1788. X    else
  1789. X        echo 'ifz broken'
  1790. X
  1791. X    ifnz 1
  1792. X        echo 'ifnz works'
  1793. X    else
  1794. X        echo 'ifnz broken'
  1795. X
  1796. X    iflt -5
  1797. X        echo 'iflt works'
  1798. X    else
  1799. X        echo 'iflt broken'
  1800. X
  1801. X    ifgt 50
  1802. X        echo 'ifgt works'
  1803. X    else
  1804. X        echo 'ifgt broken'
  1805. X
  1806. X
  1807. X    ifz 34
  1808. X        echo 'bad news 1'
  1809. X    else ifgt -5
  1810. X        echo 'bad news 2'
  1811. X    else ifge -5
  1812. X        echo 'bad news 3'
  1813. X    else iflt 5
  1814. X        echo 'bad news 4'
  1815. X    else ifle 5
  1816. X        echo 'bad news 5'
  1817. X    else
  1818. X        echo 'compound if works'
  1819. SHAR_EOF
  1820. chmod 0644 models/if_test.ep ||
  1821. echo 'restore of models/if_test.ep failed'
  1822. Wc_c="`wc -c < 'models/if_test.ep'`"
  1823. test 420 -eq "$Wc_c" ||
  1824.     echo 'models/if_test.ep: original size 420, current size' "$Wc_c"
  1825. rm -f _shar_wnt_.tmp
  1826. fi
  1827. # ============= models/keys ==============
  1828. if test -f 'models/keys' -a X"$1" != X"-c"; then
  1829.     echo 'x - skipping models/keys (File already exists)'
  1830.     rm -f _shar_wnt_.tmp
  1831. else
  1832. > _shar_wnt_.tmp
  1833. echo 'x - extracting models/keys (Text)'
  1834. sed 's/^X//' << 'SHAR_EOF' > 'models/keys' &&
  1835. Xstratus
  1836. SHAR_EOF
  1837. true || echo 'restore of models/keys failed'
  1838. fi
  1839. echo 'End of ecu320 part 39'
  1840. echo 'File models/keys is continued in part 40'
  1841. echo 40 > _shar_seq_.tmp
  1842. exit 0
  1843.  
  1844. exit 0 # Just in case...
  1845.