home *** CD-ROM | disk | FTP | other *** search
/ Boston 2 / boston-2.iso / DOS / HILFEN / MODEM / COMAND28 / LEARN.CMD < prev    next >
OS/2 REXX Batch file  |  1993-12-01  |  22KB  |  1,386 lines

  1. SET TTHR OFF
  2. S19="Learn   ver 1.0     "
  3. CURS N91,N92
  4. LEGE S19
  5. SUBD S18
  6. DLDI S17
  7. SSIZ N99
  8. SAVE 0,0,N99-2,79
  9. ON ESCA GOSU ESCAPE
  10. SET FLAG(1) OFF
  11. IF STRCMP "_PRIN" "ON"
  12. SET FLAG(1) ON
  13. PRINTER OFF
  14. ENDI
  15. Get_Outp:
  16. S1="Enter a file name to be output:"
  17. GOSU Ask_File
  18. IF NOT SUCCESS EXIT
  19. S16=S0
  20. IF ISFILE S16
  21. S0=S16*" already exists.  Overwrite it? Y/N (cr=no)"
  22. GOSU Ask_YN
  23. IF NOT SUCCESS GOTO Get_Output
  24. ENDI
  25. FOPENO S16 TEXT
  26. IF NOT SUCCESS
  27. S0="Error opening output file: "*S16
  28. GOSU Error
  29. GOTO Get_outp
  30. ENDI
  31. GOSU Initial
  32. SET CHAT OFF
  33. GOTO START
  34. Escape:
  35. SET FLAG(0) ON
  36. RETU
  37. End_Lear:
  38. DWIN CLEAR
  39. IF FLAG(2) and STRCMP "_LOGG" "ON "
  40. WRIT "LOG CLOSE!"
  41. LOG CLOS
  42. ENDI
  43. WRIT "^Z" 2
  44. FCLOSEO
  45. SET DLDI S17
  46. CHDI S18
  47. REST
  48. LOCA N91,N92
  49. IF FLAG(1)
  50. PRINTER ON
  51. ELSE
  52. PRINTER OFF
  53. ENDI
  54. RETU
  55. Exit:
  56. S0="Do you wish to terminate LEARN?  Enter Y to terminate."
  57. GOSU Ask_YN
  58. IF SUCCESS
  59. GOSU End_Lear
  60. EXIT
  61. ENDI
  62. SET FLAG(0) OFF
  63. RETU
  64. Start:
  65. N90=0
  66. S11=""
  67. S12=""
  68. SET FLAG(0) OFF
  69. SET FLAG(9) OFF
  70. SET FLAG(8) OFF
  71. GOSU Screen
  72. LOCA 1,1
  73. DWIN N99-12,2 N99-12 77
  74. GOTO Main
  75. Output:
  76. WRIT S0
  77. WRIT "!"
  78. Main:
  79. LOCA N93,N94
  80. IF FLAG(0) GOSUB Exit
  81. IF NOT HITKEY
  82. IF RECEIVE GOSUB Receive
  83. GOTO Main
  84. ENDI
  85. KEYG S1
  86. LENG S1 N0
  87. SWIT N0
  88. CASE 1
  89. GOTO ASCII
  90. ENDC
  91. CASE 2
  92. GOTO CONTROL
  93. ENDC
  94. CASE 4
  95. GOTO FUNCTION
  96. ENDC
  97. ENDS
  98. GOTO Main
  99. KbdDisp:
  100. IF GT N90 0
  101. S0=S10(0:n90-1)
  102. PRES S0
  103. ATSA N99-12,2 (Default) S0*"  "
  104. ENDI
  105. N94=N90+2
  106. GOTO Main
  107. Receive:
  108. DWIN 1,0,(N99-14),79
  109. IF FLAG(1) PRINTER ON
  110. LOCA N95,N96
  111. S12=S11
  112. RGET S11 80 1
  113. CURS N95,N96
  114. IF FLAG(1) PRINTER OFF
  115. DWIN N99-12,2 N99-12,77
  116. RETU
  117. ASCII:
  118. IF FLAG(8)
  119. PRES S1
  120. TRAN S1
  121. GOTO Main
  122. ENDI
  123. IF GT (N90+2) 60
  124. SOUN 100,100
  125. GOTO Main
  126. ENDI
  127. S10(N90:N90)=S1
  128. INC N90
  129. IF STRCMP S1 "!" or STRCMP S1 "^"
  130. S10(N90:N90)=S1
  131. INC N90
  132. ENDI
  133. IF FLAG(9) GOTO Transmit
  134. GOTO KbdDisp
  135. Control:
  136. S0="0x"*S1
  137. N0=S0
  138. N0=N0+64
  139. S0="^"
  140. ITOC N0 S0(1:1)
  141. IF FLAG(8)
  142. TRAN S0
  143. GOTO Main
  144. ENDI
  145. IF (NOT FLAG(9)) and STRCMP S1 "08"
  146. GOTO Backspac
  147. ENDI
  148. IF STRCMP S1 "0D"
  149. GOTO RETURN
  150. ENDI
  151. IF GT (N90+2) 60
  152. SOUN 100,100
  153. GOTO Main
  154. ENDI
  155. S10(N90:N90+1)=S0(0:1)
  156. N90=N90+2
  157. IF FLAG(9) GOTO Transmit
  158. GOTO KbdDisp
  159. Backspac:
  160. IF ZERO N90
  161. GOTO KbdDisp
  162. ENDI
  163. DEC N90
  164. IF STRCMP S10(N90-1:N90-1) "^" or STRCMP S10(N90-1:N90) "!!"
  165. DEC N90
  166. ENDI
  167. GOTO KbdDisp
  168. Return:
  169. IF NOT ZERO N90
  170. S10=S10(0:N90-1)*"!"
  171. ELSE
  172. S10="!"
  173. ENDI
  174. N90=N90+1
  175. Transmit:
  176. GOSU Waitfor
  177. WRIT "TRANSMIT `""
  178. IF STRCMP S10(N90-1:N90-1) "!!"
  179. WRIT S10 N90-1
  180. WRIT "!!" 2
  181. ELSE
  182. WRIT S10 N90
  183. ENDI
  184. WRIT "`"!"
  185. TRAN S10(0:N90-1)
  186. N90=0
  187. CLEA (default)
  188. N94=2
  189. GOTO Main
  190. Waitfor:
  191. LJ S11
  192. S11=S11&""
  193. LENG S11 N1
  194. IF NOT ZERO N1
  195. S0=S11
  196. GOTO EmitWait
  197. ENDI
  198. LJ S12
  199. S12=S12&""
  200. LENG S12 N1
  201. IF NOT ZERO N1
  202. S0=S12
  203. GOTO EmitWait
  204. ENDI
  205. WRIT ";!"
  206. WRIT "; WAITFOR may be needed here!"
  207. WRIT ";!"
  208. RETU
  209. EmitWait:
  210. PRES S0
  211. LENG S0 N1
  212. WRIT "WAITFOR `""
  213. WRIT S0
  214. WRIT "`"!"
  215. WRIT ";*IF NOT WAITFOR GOTO ...!"
  216. S11=""
  217. S12=""
  218. RETU
  219. Function:
  220. IF FLAG(8) and NOT STRCMP S1 "4000"
  221. SOUN 100,100
  222. GOTO Main
  223. ENDI
  224. SWIT S1
  225. CASE "2E00"
  226. GOTO Clear
  227. ENDC
  228. CASE "1200"
  229. GOTO Echo
  230. ENDC
  231. CASE "2C00"
  232. GOTO Mask
  233. ENDC
  234. CASE "2600"
  235. GOTO ScrSize
  236. ENDC
  237. CASE "2300"
  238. GOTO Hangup
  239. ENDC
  240. CASE "2000"
  241. GOTO Dial
  242. ENDC
  243. CASE "1900"
  244. GOTO Parms
  245. ENDC
  246. CASE "3100"
  247. GOTO Encrypt
  248. ENDC
  249. CASE "2200"
  250. GOTO Blnkln
  251. ENDC
  252. CASE "1000"
  253. GOTO CRLF
  254. ENDC
  255. CASE "7500"
  256. GOTO Break
  257. ENDC
  258. CASE "7200"
  259. GOTO Printer
  260. ENDC
  261. CASE "4900"
  262. GOTO Upload
  263. ENDC
  264. CASE "5100"
  265. GOTO Download
  266. ENDC
  267. CASE "7800"
  268. GOTO Alt_1
  269. ENDC
  270. CASE "7900"
  271. GOTO Alt_2
  272. ENDC
  273. CASE "7A00"
  274. GOTO Alt_3
  275. ENDC
  276. CASE "7B00"
  277. GOTO Alt_4
  278. ENDC
  279. CASE "7C00"
  280. GOTO Alt_5
  281. ENDC
  282. CASE "7D00"
  283. GOTO Alt_6
  284. ENDC
  285. CASE "7E00"
  286. GOTO Alt_7
  287. ENDC
  288. CASE "7F00"
  289. GOTO Alt_8
  290. ENDC
  291. CASE "8000"
  292. GOTO Alt_9
  293. ENDC
  294. CASE "8100"
  295. GOTO Alt_0
  296. ENDC
  297. CASE "3B00"
  298. GOTO Accessry
  299. ENDC
  300. CASE "3C00"
  301. GOTO Script
  302. ENDC
  303. CASE "3D00"
  304. GOTO Chdir
  305. ENDC
  306. CASE "3E00"
  307. GOTO DlDir
  308. ENDC
  309. CASE "3F00"
  310. GOTO LineChar
  311. ENDC
  312. CASE "4000"
  313. GOTO Hold
  314. ENDC
  315. CASE "4100"
  316. GOTO Log
  317. ENDC
  318. CASE "4300"
  319. GOTO LogHold
  320. ENDC
  321. CASE "4400"
  322. GOSU Help
  323. ENDC
  324. CASE "7100"
  325. GOTO Shell
  326. ENDC
  327. DEFA
  328. SOUN 100,100
  329. ENDC
  330. ENDS
  331. GOTO Main
  332. SHELL:
  333. S16="_OFILE"
  334. FCLOSEO
  335. DWIN Clear
  336. SHEL
  337. DWIN N99-12,2 N99-12 77
  338. LEGE S19
  339. FOPENO S16 TEXT APPEND
  340. GOTO Main
  341. Clear:
  342. DWIN 1,0,(N99-14),79
  343. CLEA (default)
  344. CURS N95,N96
  345. DWIN N99-12,2 N99-12,77
  346. LOCA N93,N94
  347. S0="CLEAR"
  348. GOTO Output
  349. Echo:
  350. S0="SET DUPLEX HALF"
  351. IF STRCMP "_DUPL" "HALF"
  352. S0="SET DUPLEX FULL"
  353. ENDI
  354. PERF S0
  355. GOSU StatusLi
  356. GOTO Output
  357. Mask:
  358. S0="SET MASK ON"
  359. IF STRCMP "_MASK" "ON "
  360. S0="SET MASK OFF"
  361. ENDI
  362. PERF S0
  363. GOSU StatusLi
  364. GOTO Output
  365. ScrSize:
  366. S0="SET 43"
  367. IF GT "_SSIZ" 25
  368. S0="SET 25"
  369. ENDI
  370. PERF S0
  371. SSIZ N99
  372. GOSU Screen
  373. GOTO Output
  374. Alt_0:
  375. S0="MACRO 0"
  376. GOTO Send_Mac
  377. Alt_1:
  378. S0="MACRO 1"
  379. GOTO Send_Mac
  380. Alt_2:
  381. S0="MACRO 2"
  382. GOTO Send_Mac
  383. Alt_3:
  384. S0="MACRO 3"
  385. GOTO Send_Mac
  386. Alt_4:
  387. S0="MACRO 4"
  388. GOTO Send_Mac
  389. Alt_5:
  390. S0="MACRO 5"
  391. GOTO Send_Mac
  392. Alt_6:
  393. S0="MACRO 6"
  394. GOTO Send_Mac
  395. Alt_7:
  396. S0="MACRO 7"
  397. GOTO Send_Mac
  398. Alt_8:
  399. S0="MACRO 8"
  400. GOTO Send_Mac
  401. Alt_9:
  402. S0="MACRO 9"
  403. Send_Mac:
  404. PERF S0
  405. GOTO Output
  406. Hangup:
  407. GOSU Waitfor
  408. S0="HANGUP"
  409. PERF S0
  410. GOTO Output
  411. Break:
  412. GOSU Waitfor
  413. S0="BREAK"
  414. PERF S0
  415. GOTO Output
  416. Printer:
  417. IF FLAG(1)
  418. S0="PRINTER OFF"
  419. SET FLAG(1) OFF
  420. ELSE
  421. S0="PRINTER ON"
  422. SET FLAG(1) ON
  423. ENDI
  424. WRIT S0*"!"
  425. GOSU StatusLi
  426. GOTO Main
  427. LineChar:
  428. IF FLAG(9)
  429. SET FLAG(9) OFF
  430. ELSE
  431. SET FLAG(9) ON
  432. ENDI
  433. GOSU StatusLi
  434. GOTO Main
  435. Hold:
  436. IF FLAG(8)
  437. SET FLAG(8) OFF
  438. ELSE
  439. SET FLAG(8) ON
  440. ENDI
  441. GOSU StatusLi
  442. GOTO Main
  443. UpLoad:
  444. GOSU Ask_Meth
  445. S1="/NONAME/"
  446. SWIT S0
  447. CASE "_NULL"
  448. SOUN 100,100
  449. GOTO Main
  450. ENDC
  451. CASE "1"
  452. GOSU Ask_Name
  453. S0="SENDFILE WXMODEM S1"
  454. ENDC
  455. CASE "2"
  456. GOSU Ask_Name
  457. S0="SENDFILE XMODEM S1"
  458. ENDC
  459. CASE "3"
  460. GOSU Ask_Name
  461. S0="SENDFILE ASCII S1"
  462. ENDC
  463. CASE "4"
  464. GOSU Ask_Name
  465. S0="SENDFILE YMODEM S1"
  466. ENDC
  467. CASE "5"
  468. S0="SENDFILE CISB"
  469. ENDC
  470. CASE "6"
  471. S0="SENDFILE QuickB"
  472. ENDC
  473. CASE "7"
  474. GOSU Ask_Name
  475. S0="SENDFILE KERMIT S1"
  476. ENDC
  477. CASE "8"
  478. GOSU Ask_Name
  479. S0="SENDFILE BYMODEM S1"
  480. ENDC
  481. CASE "9"
  482. GOSU Ask_Name
  483. S0="SENDFILE BYMOG S1"
  484. ENDC
  485. DEFA
  486. SOUN 100,100
  487. GOTO Main
  488. ENDC
  489. ENDS
  490. Transfer:
  491. IF NULL S1
  492. GOTO Main
  493. ENDI
  494. PERF S0
  495. IF NOT STRCMP S1 "/NONAME/"
  496. WRIT "; File transfer!"
  497. WRIT "MESS `"Enter the file name: `"!"
  498. WRIT "GET S1 60!"
  499. ENDI
  500. GOTO Output
  501. DownLoad:
  502. GOSU Ask_Meth
  503. S1="/NONAME/"
  504. SWIT S0
  505. CASE "_NULL"
  506. SOUN 100,100
  507. GOTO Main
  508. ENDC
  509. CASE "1"
  510. GOSU Ask_Name
  511. S0="GETFILE WXMODEM S1"
  512. ENDC
  513. CASE "2"
  514. GOSU Ask_Name
  515. S0="GETFILE XMODEM S1"
  516. ENDC
  517. CASE "3"
  518. GOSU Ask_Name
  519. S0="GETFILE ASCII S1"
  520. ENDC
  521. CASE "4"
  522. GOSU Ask_Name
  523. S0="GETFILE YMODEM S1"
  524. ENDC
  525. CASE "5"
  526. S0="GETFILE CISB"
  527. ENDC
  528. CASE "6"
  529. S0="GETFILE QuickB"
  530. ENDC
  531. CASE "7"
  532. S0="GETFILE KERMIT"
  533. ENDC
  534. CASE "8"
  535. S0="GETFILE BYMODEM"
  536. ENDC
  537. CASE "9"
  538. S0="GETFILE BYMOG"
  539. ENDC
  540. DEFA
  541. SOUN 100,100
  542. GOTO Main
  543. ENDC
  544. ENDS
  545. GOTO Transfer
  546. Ask_Meth:
  547. WOPE 2 20 14 60 (contrast) ASK_ESC
  548. ATSA 2 22 (contrast) " Learn UpLoad/Download "
  549. ATSA 3 22 (contrast) " 1) Windowed XMODEM"
  550. ATSA 4 22 (contrast) " 2) CRC/Checksum XMODEM"
  551. ATSA 5 22 (contrast) " 3) ASCII transfer "
  552. ATSA 6 22 (contrast) " 4) YMODEM/XMODEM-1K"
  553. ATSA 7 22 (contrast) " 5) CIS-B          "
  554. ATSA 8 22 (contrast) " 6) CIS Quick-B    "
  555. ATSA 9 22 (contrast) " 7) Kermit         "
  556. ATSA 10 22 (contrast) " 8) Batch YMODEM   "
  557. ATSA 11 22 (contrast) " 9) Batch YMODEM-G "
  558. ATSA 12 20 (contrast) "├───────────────────────────────────────┤"
  559. ATSA 13 22 (contrast) "Enter method #:"
  560. ATSA 14 30 (contrast) " Press ESC to cancel "
  561. ATGE 13 48 (contrast) 1 S0
  562. WCLO
  563. RETU
  564. Ask_Name:
  565. WOPE 10 10 13 70 (contrast) NAMEESC
  566. ATSA 10 12 (contrast) " Learn Up/Down Filename "
  567. ATSA 11 12 (contrast) "Enter a file name to be transferred:"
  568. ATSA 13 30 (contrast) " Press ESC to cancel "
  569. ATGE 12 12 (contrast) 54 S1
  570. WCLO
  571. LJ S1
  572. S1=S1&""
  573. RETU
  574. NAMEESC:
  575. S1=""
  576. RETU
  577. Dial:
  578. GOSU Ask_Dial
  579. IF NOT SUCCESS or NULL S2
  580. GOTO Main
  581. ENDI
  582. DIAL S2
  583. IF FAILED
  584. GOTO Main
  585. ENDI
  586. WRIT "; Dialing!"
  587. WRIT "IF NOT LINKED!"
  588. WRIT "   DIAL `""
  589. WRIT S2
  590. WRIT "`"!"
  591. WRIT "   IF FAILED EXIT!"
  592. WRIT "   ENDIF!"
  593. GOTO Main
  594. Ask_Dial:
  595. N0=0
  596. WOPE 2 20 15 60 (contrast) ASK_ESC
  597. ATSA 2 22 (contrast) " Learn Dial  "
  598. ATSA 13 20 (contrast) "├───────────────────────────────────────┤"
  599. ATSA 14 22 (contrast) "Enter entry #:"
  600. ATSA 15 30 (contrast) " Press ESC to cancel "
  601. Dial_Loo:
  602. SCRO 0,3,22 12,58 (contrast)
  603. FOR N1=1,10
  604. N4=N0+N1
  605. DIRE S0 N4
  606. ATSA (2+N1) 22 (contrast) N4*")"
  607. ATSA (2+N1) 27 (contrast) S0
  608. ENDF
  609. LOCA 14 37
  610. N2=37
  611. S2=""
  612. Dial_Key:
  613. KEYG S0
  614. LENG S0 N1
  615. SWIT N1
  616. CASE 1
  617. IF NOT FIND "+-@#0123456789" S0
  618. SOUN 100,100
  619. GOTO Dial_Key
  620. ENDI
  621. S2=S2*S0
  622. ATSA 14 N2 (contrast) S0
  623. INC N2
  624. LOCA 14 N2
  625. GOTO Dial_Key
  626. ENDC
  627. CASE 2
  628. SWIT S0
  629. CASE "0D"
  630. SET SUCC ON
  631. GOTO DIAL_End
  632. ENDC
  633. CASE "08"
  634. LENG S2 N0
  635. IF GT N0 1
  636. S2=S2(0:N0-2)
  637. DEC N2
  638. LOCA 14 N2
  639. ATSA 14 N2 (contrast) " "
  640. ELSE
  641. S2=""
  642. N2=37
  643. ATSA 14 N2 (contrast) " "
  644. ENDI
  645. GOTO Dial_Key
  646. ENDC
  647. DEFA
  648. SOUN 100,100
  649. GOTO Dial_Key
  650. ENDC
  651. ENDS
  652. ENDC
  653. CASE 4
  654. SWIT S0
  655. CASE "4900"
  656. N0=N0-10
  657. IF LT N0 0
  658. N0=90
  659. ENDI
  660. GOTO Dial_Loo
  661. ENDC
  662. CASE "5100"
  663. N0=N0+10
  664. IF GE N0 100
  665. N0=0
  666. ENDI
  667. GOTO Dial_Loo
  668. ENDC
  669. CASE "4700"
  670. N0=0
  671. GOTO Dial_Loo
  672. ENDC
  673. CASE "4F00"
  674. N0=90
  675. GOTO Dial_Loo
  676. ENDC
  677. DEFA
  678. SOUN 100,100
  679. GOTO Dial_Key
  680. ENDC
  681. ENDS
  682. ENDC
  683. DEFA
  684. SET SUCC OFF
  685. ENDC
  686. ENDS
  687. Dial_End:
  688. WCLO
  689. RETU
  690. Accessry:
  691. GOSU Ask_AccN
  692. IF NOT SUCCESS or NULL S2
  693. GOTO Main
  694. ENDI
  695. S0="WARNING: An accessory ends LEARN.  Enter Y to proceed."
  696. GOSU Ask_YN
  697. IF NOT SUCCESS
  698. GOTO Main
  699. ENDI
  700. WRIT "; Accessory!"
  701. WRIT "ACCESSORY `""
  702. LENG S2 N2
  703. WRIT S2 N2
  704. WRIT "`"!"
  705. GOSU End_Lear
  706. ACCE S2
  707. Dummy1:
  708. GOTO Main
  709. Ask_AccN:
  710. N0=0
  711. WOPE 2 10 15 70 (contrast) ASK_ESC
  712. ATSA 2 12 (contrast) " Learn Accessory "
  713. ATSA 13 10 (contrast) "├───────────────────────────────────────────────────────────┤"
  714. ATSA 14 12 (contrast) "Enter entry #:"
  715. ATSA 15 20 (contrast) " Press ESC to cancel "
  716. Acc_Loop:
  717. SCRO 0,3,12 12,68 (contrast)
  718. FOR N1=1,10
  719. N4=N0+N1
  720. ANAM S0 N4
  721. ATSA (2+N1) 12 (contrast) N4*")"
  722. ATSA (2+N1) 17 (contrast) S0
  723. ENDF
  724. LOCA 14 27
  725. N2=27
  726. S2=""
  727. Acc_Key:
  728. KEYG S0
  729. LENG S0 N1
  730. SWIT N1
  731. CASE 1
  732. IF NOT FIND "0123456789" S0
  733. SOUN 100,100
  734. GOTO Acc_Key
  735. ENDI
  736. S2=S2*S0
  737. ATSA 14 N2 (contrast) S0
  738. INC N2
  739. LOCA 14 N2
  740. GOTO Acc_Key
  741. ENDC
  742. CASE 2
  743. SWIT S0
  744. CASE "0D"
  745. SET SUCC ON
  746. GOTO Acc_End
  747. ENDC
  748. CASE "08"
  749. LENG S2 N0
  750. IF GT N0 1
  751. S2=S2(0:N0-2)
  752. DEC N2
  753. LOCA 14 N2
  754. ATSA 14 N2 (contrast) " "
  755. ELSE
  756. S2=""
  757. N2=27
  758. ATSA 14 N2 (contrast) " "
  759. ENDI
  760. GOTO Acc_Key
  761. ENDC
  762. DEFA
  763. SOUN 100,100
  764. GOTO Acc_Key
  765. ENDC
  766. ENDS
  767. ENDC
  768. CASE 4
  769. SWIT S0
  770. CASE "4900"
  771. N0=N0-10
  772. IF LT N0 0
  773. N0=40
  774. ENDI
  775. GOTO Acc_Loop
  776. ENDC
  777. CASE "5100"
  778. N0=N0+10
  779. IF GE N0 50
  780. N0=0
  781. ENDI
  782. GOTO Acc_Loop
  783. ENDC
  784. CASE "4700"
  785. N0=0
  786. GOTO Acc_Loop
  787. ENDC
  788. CASE "4F00"
  789. N0=40
  790. GOTO Acc_Loop
  791. ENDC
  792. DEFA
  793. SOUN 100,100
  794. GOTO Acc_Key
  795. ENDC
  796. ENDS
  797. ENDC
  798. DEFA
  799. SET SUCC OFF
  800. ENDC
  801. ENDS
  802. Acc_End:
  803. WCLO
  804. RETU
  805. Script:
  806. S1="Enter the script file name:"
  807. GOSU Ask_File
  808. IF NOT SUCCESS or NULL S0
  809. GOTO Main
  810. ENDI
  811. S2=S0
  812. IF NOT ISSCFILE S2
  813. S0="Script file not found: "*S2
  814. GOSU Error
  815. GOTO Script
  816. ENDI
  817. S0="WARNING: A script call ends LEARN.  Enter Y to proceed."
  818. GOSU Ask_YN
  819. IF NOT SUCCESS
  820. GOTO Main
  821. ENDI
  822. WRIT "; Script!"
  823. WRIT "EXECUTE `""
  824. WRIT S2
  825. WRIT "`"!"
  826. GOSU End_Lear
  827. EXEC S2
  828. Dummy2:
  829. GOTO Main
  830. Chdir:
  831. S1="Enter the new drive:subdirectory:"
  832. GOSU Ask_File
  833. IF NOT SUCCESS or NULL S0
  834. GOTO Main
  835. ENDI
  836. S0="CHDIR `""*S0&"`""
  837. PERF S0
  838. GOTO Output
  839. DlDir:
  840. S1="Enter the new download drive:subdirectory:"
  841. GOSU Ask_File
  842. IF NOT SUCCESS or NULL S0
  843. GOTO Main
  844. ENDI
  845. S0="SET DLDIR `""*S0&"`""
  846. PERF S0
  847. GOTO Output
  848. Log:
  849. IF STRCMP "_LOGG" "OFF"
  850. S1="Enter the transcript file name:"
  851. GOSU Ask_File
  852. IF NOT SUCCESS or NULL S0
  853. GOTO Main
  854. ENDI
  855. S0="LOG OPEN `""*S0&"`""
  856. SET FLAG(2) ON
  857. ELSE
  858. IF NOT FLAG(2)
  859. LOG CLOS
  860. GOTO Main
  861. ENDI
  862. S0="LOG CLOSE"
  863. ENDI
  864. PERF S0
  865. GOSU StatusLi
  866. GOTO Output
  867. LogHold:
  868. IF STRCMP "_LOGG" "OFF"
  869. GOTO Main
  870. ENDI
  871. IF STRCMP "_LOGH" "OFF"
  872. S0="LOG SUSPEND"
  873. ELSE
  874. S0="LOG RESUME"
  875. ENDI
  876. PERF S0
  877. GOSU StatusLi
  878. GOTO Output
  879. Parms:
  880. S0=""
  881. S1=""
  882. S2=""
  883. S3=""
  884. GOSU Ask_Parm
  885. LJ S0
  886. SWIT S0
  887. CASE "_NULL"
  888. SOUN 100,100
  889. GOTO Main
  890. ENDC
  891. CASE "1"
  892. S0="SET BAUD 300"
  893. GOTO Even_7_1
  894. ENDC
  895. CASE "2"
  896. S0="SET BAUD 1200"
  897. GOTO Even_7_1
  898. ENDC
  899. CASE "3"
  900. S0="SET BAUD 2400"
  901. GOTO Even_7_1
  902. ENDC
  903. CASE "4"
  904. S0="SET BAUD 4800"
  905. GOTO Even_7_1
  906. ENDC
  907. CASE "5"
  908. S0="SET BAUD 9600"
  909. GOTO Even_7_1
  910. ENDC
  911. CASE "6"
  912. S0="SET BAUD 19K"
  913. GOTO Even_7_1
  914. ENDC
  915. CASE "7"
  916. S0="SET BAUD 38K"
  917. GOTO Even_7_1
  918. ENDC
  919. CASE "8"
  920. S0="SET BAUD 57K"
  921. GOTO Even_7_1
  922. ENDC
  923. CASE "9"
  924. S0="SET BAUD 115K"
  925. GOTO Even_7_1
  926. ENDC
  927. CASE "10"
  928. S0="SET BAUD 300"
  929. GOTO None_8_1
  930. ENDC
  931. CASE "11"
  932. S0="SET BAUD 1200"
  933. GOTO None_8_1
  934. ENDC
  935. CASE "12"
  936. S0="SET BAUD 2400"
  937. GOTO None_8_1
  938. ENDC
  939. CASE "13"
  940. S0="SET BAUD 4800"
  941. GOTO None_8_1
  942. ENDC
  943. CASE "14"
  944. S0="SET BAUD 9600"
  945. GOTO None_8_1
  946. ENDC
  947. CASE "15"
  948. S0="SET BAUD 19K"
  949. GOTO None_8_1
  950. ENDC
  951. CASE "16"
  952. S0="SET BAUD 38k"
  953. GOTO None_8_1
  954. ENDC
  955. CASE "17"
  956. S0="SET BAUD 57k"
  957. GOTO None_8_1
  958. ENDC
  959. CASE "18"
  960. S0="SET BAUD 115K"
  961. GOTO None_8_1
  962. ENDC
  963. CASE "19"
  964. S0="SET PARITY EVEN"
  965. ENDC
  966. CASE "20"
  967. S0="SET PARITY ODD"
  968. ENDC
  969. CASE "21"
  970. S0="SET PARITY ODD"
  971. ENDC
  972. CASE "22"
  973. S0="SET DATA 7"
  974. ENDC
  975. CASE "23"
  976. S0="SET DATA 8"
  977. ENDC
  978. CASE "24"
  979. S0="SET STOP 1"
  980. ENDC
  981. CASE "25"
  982. S0="SET STOP 2"
  983. ENDC
  984. CASE "26"
  985. S0="SET PORT COM1"
  986. ENDC
  987. CASE "27"
  988. S0="SET PORT COM2"
  989. ENDC
  990. CASE "28"
  991. S0="SET PORT COM3"
  992. ENDC
  993. CASE "29"
  994. S0="SET PORT COM4"
  995. ENDC
  996. DEFA
  997. SOUN 100,100
  998. GOTO Parms
  999. ENDC
  1000. ENDS
  1001. GOTO End_Parm
  1002. Even_7_1:
  1003. S1="SET PARITY EVEN"
  1004. S2="SET DATA 7"
  1005. S3="SET STOP 1"
  1006. GOTO End_Parm
  1007. None_8_1:
  1008. S1="SET PARITY NONE"
  1009. S2="SET DATA 8"
  1010. S3="SET STOP 1"
  1011. End_Parm:
  1012. IF NOT NULL S0
  1013. PERF S0
  1014. WRIT S0*"!"
  1015. ENDI
  1016. IF NOT NULL S1
  1017. PERF S1
  1018. WRIT S1*"!"
  1019. ENDI
  1020. IF NOT NULL S2
  1021. PERF S2
  1022. WRIT S2*"!"
  1023. ENDI
  1024. IF NOT NULL S3
  1025. PERF S3
  1026. WRIT S3*"!"
  1027. ENDI
  1028. GOTO Main
  1029. Ask_Parm:
  1030. WOPE 2 10 16 70 (contrast) ASK_ESC
  1031. ATSA 2 12 (contrast) " Learn Parms "
  1032. ATSA 3 12 (contrast) " 1) 300,E,7,1"
  1033. ATSA 4 12 (contrast) " 2) 1200,E,7,1"
  1034. ATSA 5 12 (contrast) " 3) 2400,E,7,1"
  1035. ATSA 6 12 (contrast) " 4) 4800,E,7,1"
  1036. ATSA 7 12 (contrast) " 5) 9600,E,7,1"
  1037. ATSA 8 12 (contrast) " 6) 19.2,E,7,1"
  1038. ATSA 9 12 (contrast) " 7) 38.4,E,7,1"
  1039. ATSA 10 12 (contrast) " 8) 57.6,E,7,1"
  1040. ATSA 11 12 (contrast) " 9) 115K,E,7,1"
  1041. ATSA 3 28 (contrast) "10) 300,N,7,1"
  1042. ATSA 4 28 (contrast) "11) 1200,N,7,1"
  1043. ATSA 5 28 (contrast) "12) 2400,N,7,1"
  1044. ATSA 6 28 (contrast) "13) 4800,N,7,1"
  1045. ATSA 7 28 (contrast) "14) 9600,N,7,1"
  1046. ATSA 8 28 (contrast) "15) 19.2,N,7,1"
  1047. ATSA 9 28 (contrast) "16) 38.4,N,7,1"
  1048. ATSA 10 28 (contrast) "16) 57.6,N,7,1"
  1049. ATSA 11 28 (contrast) "18) 115K,N,7,1"
  1050. ATSA 3 44 (contrast) "19) Even par."
  1051. ATSA 4 44 (contrast) "20) Odd parity"
  1052. ATSA 5 44 (contrast) "21) No parity"
  1053. ATSA 7 44 (contrast) "22) 7 data bits"
  1054. ATSA 8 44 (contrast) "23) 8 data bits"
  1055. ATSA 10 44 (contrast) "24) 1 stop bit"
  1056. ATSA 11 44 (contrast) "25) 2 stop bits"
  1057. ATSA 3 60 (contrast) "26) COM1"
  1058. ATSA 4 60 (contrast) "27) COM2"
  1059. ATSA 5 60 (contrast) "28) COM3"
  1060. ATSA 6 60 (contrast) "29) COM4"
  1061. ATSA 12 10 (contrast) "├───────────────────────────────────────────────────────────┤"
  1062. COMP S0
  1063. ATSA 13,12 (contrast) "Current setting: "*S0
  1064. ATSA 14 10 (contrast) "├───────────────────────────────────────────────────────────┤"
  1065. ATSA 15 12 (contrast) "Enter selection #:"
  1066. ATSA 16 30 (contrast) " Press ESC to cancel "
  1067. ATGE 15 31 (contrast) 2 S0
  1068. WCLO
  1069. RETU
  1070. Encrypt:
  1071. GOSU Ask_Encr
  1072. SWIT S0
  1073. CASE "_NULL"
  1074. SOUN 100,100
  1075. GOTO Main
  1076. ENDC
  1077. CASE "1"
  1078. S2="ENCRYPT"
  1079. S3="DES"
  1080. ENDC
  1081. CASE "2"
  1082. S2="ENCRYPT"
  1083. S3="SIMPLE"
  1084. ENDC
  1085. CASE "3"
  1086. S2="DECRYPT"
  1087. S3=""
  1088. ENDC
  1089. DEFA
  1090. SOUN 100,100
  1091. GOTO Encrypt
  1092. ENDC
  1093. ENDS
  1094. EncrSrc:
  1095. S1="Enter the file to be encrypted/decrypted:"
  1096. GOSU Ask_File
  1097. IF NOT SUCCESS or NULL S0
  1098. GOTO Main
  1099. ENDI
  1100. IF NOT ISFILE S0
  1101. S0="File does not exist: "*S0
  1102. GOSU Error
  1103. GOTO EncrSrc
  1104. ENDI
  1105. S4=S0
  1106. EncrDest:
  1107. S1="Name the output of encryption/decryption:"
  1108. GOSU Ask_File
  1109. IF NOT SUCCESS or NULL S0
  1110. GOTO Main
  1111. ENDI
  1112. IF ISFILE S0
  1113. S0="File exists: "*S0&".  Delete it Y/N?"
  1114. GOSU Ask_YN
  1115. IF SUCCESS
  1116. DELE S0
  1117. ELSE
  1118. GOTO EncrSrc
  1119. ENDI
  1120. ENDI
  1121. S5=S0
  1122. EncrPsw:
  1123. S1="Enter the password:"
  1124. GOSU Ask_File
  1125. IF NOT SUCCESS or NULL S0
  1126. GOTO Main
  1127. ENDI
  1128. S6=S0
  1129. S0=S2&" S4 S5 S6 "*S3
  1130. PERF S0
  1131. IF NOT SUCCESS
  1132. S0="Encrypt/decrypt failed.  Nothing logged to script."
  1133. GOSU Error
  1134. Goto Main
  1135. ENDI
  1136. WRIT "; Encrypt/decrypt!"
  1137. WRIT "MESS `"Enter the encrypt/decrypt source: `"!"
  1138. WRIT "GET S1 60!"
  1139. WRIT "MESS `"Enter the encrypt/decrypt destination: `"!"
  1140. WRIT "GET S2 60!"
  1141. WRIT "MESS `"Enter the encrypt/decrypt password: `"!"
  1142. WRIT "GET S3 60!"
  1143. WRIT S2&" S1 S2 S3 "*S3*"!"
  1144. GOTO Main
  1145. Ask_Encr:
  1146. WOPE 2 20 8 60 (contrast) ASK_ESC
  1147. ATSA 2 22 (contrast) " Learn D/Encrypt "
  1148. ATSA 3 22 (contrast) " 1) DES encryption: slow "
  1149. ATSA 4 22 (contrast) " 2) Simple encryption: fast"
  1150. ATSA 5 22 (contrast) " 3) Decrypt encrypted file"
  1151. ATSA 6 20 (contrast) "├───────────────────────────────────────┤"
  1152. ATSA 7 22 (contrast) "Enter selection #:"
  1153. ATSA 8 30 (contrast) " Press ESC to cancel "
  1154. ATGE 7 41 (contrast) 1 S0
  1155. WCLO
  1156. RETU
  1157. Blnkln:
  1158. S0="SET BSUPPRESS ON"
  1159. IF STRCMP "_BSUP" "ON "
  1160. S0="SET BSUPPRESS OFF"
  1161. ENDI
  1162. PERF S0
  1163. GOSU StatusLi
  1164. GOTO Output
  1165. CRLF:
  1166. S0="SET CR CR_LF"
  1167. IF STRCMP "_CRLF" "ON "
  1168. S0="SET CR CR"
  1169. ENDI
  1170. PERF S0
  1171. GOSU StatusLi
  1172. GOTO Output
  1173. Screen:
  1174. DWIN CLEAR
  1175. CLEA (default)
  1176. SSIZ N99
  1177. DWIN N99-12,2 N99-12 77
  1178. BOX N99-13,0,(N99-11),79 (default)
  1179. ATSA 0,0 (default) ">>───────────────────────────────────────────────────────────────────────────<<"
  1180. ATSA 0,3 (default) " Learn "
  1181. ATSA (N99-13),3 (default) " Keyboard "
  1182. ATSA N99-11,28 (default) " ESC to terminate "
  1183. ATSA N99-11,53 (default) " Press F10 for info "
  1184. ATSA N99-10,2 (default) "F1 Load accessory         Alt-Q Toggle CR/CRLF      Alt-P   Set comm parms"
  1185. ATSA N99-9,2 (default) "F2 Execute script         Alt-E Toggle echo         Alt-G   Toggle blnkln "
  1186. ATSA N99-8,2 (Default) "F3 Change drive:subdir    Alt-C Clear screen        PgUp    Upload        "
  1187. ATSA N99-7,2 (Default) "F4 Set dft dlo subdir     Alt-L Toggle 25/43        PgDn    Download      "
  1188. ATSA N99-6,2 (Default) "F5 Toggle line/char       Alt-H Hangup              Alt-F10 Shell to DOS  "
  1189. ATSA N99-5,2 (Default) "F6 Toggle learn hold      Alt-D Dial                Alt-0/9 Send macro    "
  1190. ATSA N99-4,2 (Default) "F7 Toggle logging file    Alt-N Encrypt/decrypt     Ctl-End Send break    "
  1191. ATSA N99-3,2 (Default) "F9 Toggle log hold        Alt-Z Toggle masking      Ctl-Prt Toggle print  "
  1192. GOSU StatusLi
  1193. N95=1
  1194. N96=0
  1195. N93=N99-12
  1196. N94=2
  1197. RETU
  1198. StatusLi:
  1199. IF STRCMP "_DUPL" "HALF"
  1200. ATSA N99-2,2 (default) "Echo"
  1201. ELSE
  1202. ATSA N99-2,2 (default) "    "
  1203. ENDI
  1204. IF STRCMP "_MASK" "ON"
  1205. ATSA N99-2,8 (default) "Mask"
  1206. ELSE
  1207. ATSA N99-2,8 (default) "    "
  1208. ENDI
  1209. IF STRCMP "_BSUP" "ON "
  1210. ATSA N99-2,14 (default) "NoBln"
  1211. ELSE
  1212. ATSA N99-2,14 (default) "     "
  1213. ENDI
  1214. IF STRCMP "_CRLF" "ON "
  1215. ATSA N99-2,21 (default) "CR_LF"
  1216. ELSE
  1217. ATSA N99-2,21 (default) "     "
  1218. ENDI
  1219. IF STRCMP "_LOGG" "ON "
  1220. ATSA N99-2,28 (default) "Logging"
  1221. IF STRCMP "_LOGH" "ON"
  1222. ATSA N99-2,37 (default) "Log held"
  1223. ELSE
  1224. ATSA N99-2,37 (default) "        "
  1225. ENDI
  1226. ELSE
  1227. ATSA N99-2,28 (default) "       "
  1228. ATSA N99-2,37 (default) "        "
  1229. ENDI
  1230. IF FLAG(1)
  1231. ATSA N99-2,47 (default) "Print"
  1232. ELSE
  1233. ATSA N99-2,47 (default) "     "
  1234. ENDI
  1235. IF FLAG(9)
  1236. ATSA N99-2,60 (default) "CharMode"
  1237. ELSE
  1238. ATSA N99-2,60 (default) "LineMode"
  1239. ENDI
  1240. IF FLAG(8)
  1241. ATSA N99-2,70 (default) "LearnHeld"
  1242. ELSE
  1243. ATSA N99-2,70 (default) "         "
  1244. ENDI
  1245. RETU
  1246. Help:
  1247. WOPE 0,0,23,79 (default) HELPESC
  1248. ATSA 0,2 (Default) " Learn Help "
  1249. ATSA 23,28 (Default) " Press any key to continue "
  1250. ATSA 1,2 (default) "   The LEARN script creates a script based upon the actions taken.  The"
  1251. ATSA 2,2 (default) "function keys that LEARN will recognize and act upon are listed on the main"
  1252. ATSA 3,2 (default) "screen.  Each function results in an addition to the script being created,"
  1253. ATSA 4,2 (default) "with the exception of Alt-F10 (which allows editing of the script while it"
  1254. ATSA 5,2 (default) "is being created... it does not add a SHELL command to the script)."
  1255. ATSA 6,2 (default) ""
  1256. ATSA 7,2 (default) "   Initially LEARN is in 'line mode'.  When characters (a-z, 1-9) are typed,"
  1257. ATSA 8,2 (default) "they echo in the keyboard box.  When RETURN is typed, the whole line is"
  1258. ATSA 9,2 (default) "transmitted, and the appropriate script line(s) are written.  The 'mode' may"
  1259. ATSA 10,2 (default) "be switched to 'character', where each keystroke is transmitted when it is"
  1260. ATSA 11,2 (default) "typed (and each keystroke generates a WAITFOR/TRANSMIT command)."
  1261. ATSA 12,2 (default) ""
  1262. ATSA 13,2 (default) "NOTE: The display doubles carets and exclamation points.  This is done to"
  1263. ATSA 14,2 (default) "allow the the keystroke to correctly transmitted.  Don't be surprised!!"
  1264. ATSA 15,2 (default) ""
  1265. ATSA 16,2 (default) "   The LEARN script may be put on HOLD with the F6 key.  When held, what"
  1266. ATSA 17,2 (default) "is typed is sent, no script is generated, and no functions are available."
  1267. ATSA 18,2 (default) ""
  1268. ATSA 19,2 (default) "   LEARN does not provide all the functionality of COM-AND.  The basic"
  1269. ATSA 20,2 (default) "set of functions required to go on-line are provided.  Additional settings"
  1270. ATSA 21,2 (default) "may be added to the output script.  Extensive editing of the output script"
  1271. ATSA 22,2 (default) "is recommended in any case."
  1272. KEYG S0
  1273. WCLO
  1274. RETU
  1275. HELPESC:
  1276. RETU
  1277. Error:
  1278. WOPE 10,10,12,70 (contrast) Err_Esc
  1279. ATSA 10,12 (contrast) " Learn Error "
  1280. ATSA 11,12 (contrast) S0(0:55)
  1281. ATSA 12,26 (contrast) " Press any key to continue "
  1282. KEYG S0
  1283. WCLO
  1284. RETU
  1285. Err_Esc:
  1286. RETU
  1287. Ask_File:
  1288. WOPE 10 10 13 70 (contrast) ASK_ESC
  1289. ATSA 10 12 (contrast) " Learn Fname "
  1290. ATSA 11 12 (contrast) S1(0:56)
  1291. ATSA 13 30 (contrast) " Press ESC to cancel "
  1292. ATGE 12 12 (contrast) 54 S0
  1293. WCLO
  1294. LJ S0
  1295. S0=S0&""
  1296. UPPE S0
  1297. IF NOT NULL S0
  1298. SET SUCC ON
  1299. ELSE
  1300. SET SUCC OFF
  1301. ENDI
  1302. RETU
  1303. Ask_Esc:
  1304. S0=""
  1305. RETU
  1306. Ask_YN:
  1307. WOPE 10 10 13 70 (contrast) ASK_ESC
  1308. ATSA 10 12 (contrast) " Learn Y/N "
  1309. ATSA 11 12 (contrast) S0(0:55)
  1310. ATSA 13 30 (contrast) " Press ESC to cancel "
  1311. ATGE 12 12 (contrast) 1 S0
  1312. WCLO
  1313. IF NULL S0 or FIND S0 "Y"
  1314. SET SUCC ON
  1315. ELSE
  1316. SET SUCC OFF
  1317. ENDI
  1318. RETU
  1319. WriteLn:
  1320. WRIT S0
  1321. WRIT "!" 1
  1322. RETU
  1323. Initial:
  1324. IF CONNECTED
  1325. S0="; -------------------------------------------------------"
  1326. GOSU WriteLn
  1327. S0="; WARNING: This script learned after connection was made "*"_Date"
  1328. GOSU WriteLn
  1329. S0="; ------------------------------------------------------- "
  1330. GOSU WriteLn
  1331. GOTO No_Init
  1332. ENDI
  1333. S0="; Initial state: "*"_Date"
  1334. GOSU WriteLn
  1335. S0="SET DUPLEX "*"_DUPL"
  1336. GOSU WriteLn
  1337. S0="EMULATE "*"_EMUL"
  1338. GOSU WriteLn
  1339. S0="SET 25"
  1340. IF GT "_SSIZ" 25
  1341. S0="SET 43"
  1342. ENDI
  1343. GOSU WriteLn
  1344. S0="SET MASK "*"_MASK"
  1345. GOSU WriteLn
  1346. S0="SET CR CR_LF"
  1347. IF STRCMP "_CRLF" "OFF"
  1348. S0="SET CR CR"
  1349. ENDI
  1350. GOSU WriteLn
  1351. COMP S1
  1352. S0="SET PORT "*S1(11:14)
  1353. GOSU WriteLn
  1354. S0="SET BAUD "*S1(0:3)
  1355. GOSU WriteLn
  1356. IF STRCMP S1(5:5) "E"
  1357. S0="SET PARITY EVEN"
  1358. ELSE
  1359. IF STRCMP S1(5:5) "O"
  1360. S0="SET PARITY ODD"
  1361. ELSE
  1362. S0="SET PARITY NONE"
  1363. ENDI
  1364. ENDI
  1365. GOSU WriteLn
  1366. S0="SET DATA "*S1(7:7)
  1367. GOSU WriteLn
  1368. S0="SET STOP "*S1(9:9)
  1369. GOSU WriteLn
  1370. No_Init:
  1371. S0="; Learned script"
  1372. GOSU WriteLn
  1373. S0="LEGEND `"Script learned: `"*`""*"_Date"*"`""
  1374. GOSU WriteLn
  1375. IF FLAG(1)
  1376. S0="PRINTER ON"
  1377. ELSE
  1378. S0="PRINTER OFF"
  1379. ENDI
  1380. GOSU WriteLn
  1381. S0="SET CHAT "*"_CHAT"
  1382. GOSU WriteLn
  1383. S0="SET KBDB "*"_KBDB"
  1384. GOSU WriteLn
  1385. RETU
  1386.