home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 3 Comm / 03-Comm.zip / PMCOM110.ZIP / PMCOMM.INF (.txt) < prev    next >
OS/2 Help File  |  1992-01-07  |  83KB  |  3,837 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Installation Help ΓòÉΓòÉΓòÉ
  3.  
  4. When Pmcomm is shipped there are two different versions on the disk. The two 
  5. versions are Pmcomm version 1.05 and 1.10. The 1.10 version is to be used if 
  6. using a copy of OS/2 that is 1.2 or later. For OS/2 1.1 Pmcomm 1.05 must be 
  7. used. The two directories on the disk are Pmcom105 and Pmcom110, copy the 
  8. appropriate directory to your hard drive. Also, copy RxPmcomm.dll into a .dll 
  9. directory (i.e. C:\os2\dll). 
  10.  
  11. Pmcomm can be run from a command line by typing pmcomm, but it is recommended 
  12. that it be installed in a "Group". To do this access the Program menu on the 
  13. "Group" menu and chose the New option. This will bring up a dialog box where 
  14. the following information must be entered. 
  15.  
  16. Program title: Pmcomm 
  17.  
  18. Path and filename: user_specified_path\pmcomm.exe 
  19.  
  20. Parameters: setup.dat 
  21.  
  22. Working directory: user_specified_path 
  23.  
  24. Program type: Presentation Manager 
  25.  
  26. The final step is to select the Add option at the bottom of the dialog box. 
  27. Note: setup.dat will be created if not in existence. 
  28.  
  29. There is a program called timer.exe in the Pmcom109 directory that will allow 
  30. you to execute Pmcomm at specifed times. This will allow you to set up a script 
  31. to have Pmcomm dial numbers at certain times and capture mail, download files, 
  32. ect. 
  33.  
  34. To install Pmcomm's Host Mode see Installing_Pmcomm_Host_Mode. 
  35.  
  36.  
  37. ΓòÉΓòÉΓòÉ 2. Extended Help ΓòÉΓòÉΓòÉ
  38.  
  39. There is a collection of utilities in the File section such as; Scripts, 
  40. Capture, Print, Copy, and  Paste. There is also an About box that has 
  41. information on  Multi-Net Communications, the company that wrote this software. 
  42.  
  43. In the Edit section there are commands such as Copy, Paste, and Clear_Screen. 
  44. These commands will help you manipulate on-screen information. 
  45.  
  46. The Connect command allows you to connect to another computer, either through a 
  47. modem, using the Dial command or direct connect, using the Send_Break command. 
  48. The Initialize Modem command will send the modem initialization string to the 
  49. modem. This command allows the user to re-initialize the modem without exiting 
  50. and re-running Pmcomm. 
  51.  
  52. Transfer allows the use of different protocols to send and receive files to or 
  53. from a remote computer. The protocol options are Xmodem_Checksum, Xmodem_CRC, 
  54. 1K-Xmodem, Ymodem(batch), Ymodem-g(batch), Zmodem, Kermit, CISB, ASCII, and 
  55. IND$FILE (for downloads). Zmodem is probably the best selection when available 
  56. on the remote computer. Ymodem-G should only be used with error correcting 
  57. modems. 
  58.  
  59. Hang-up sends the hang-up command string (see the Option menu) and optionally 
  60. drops the DTR line to the modem. Dropping DTR is the most effective if your 
  61. modem is setup to hang-up when DTR is dropped. Using a hang-up string is also 
  62. slower, because Pmcomm has to get the modem into the command state before 
  63. sending the hang-up string. If you have DTR on and delete the hangup string the 
  64. hang-up will be much faster. 
  65.  
  66. Option allows you to tailor Pmcomm to your own tastes. The areas in option are 
  67. Port, Dial_Setup, Modem, Protocols, Paths, Macros_Setup, Screen, Status_Line, 
  68. Terminal, and Chat. The setup is not automatically saved. This allows you to 
  69. change things temporally without changing your default setup file. If you do 
  70. want to make the  changes permanent be sure to save the setup file. To save the 
  71. current setup file,  use the Save_setup command under the File menu option. 
  72.  
  73. Macros allows you to pick, with a mouse, the macro you wish to send. Macros can 
  74. also be selected with an Alt+corresponding number keystroke. Pmcomm allows you 
  75. to set up ten different macros. Scripts can be executed from macros by using 
  76. the shell command. An example of this would be: 
  77.  
  78. shell("c:\pmcomm\plane.cmd"); 
  79.  
  80. This would execute the REXX script called plane.cmd. This allows you a quick 
  81. and easy way to execute often used scripts. 
  82.  
  83.  
  84. ΓòÉΓòÉΓòÉ 2.1. Keys Help ΓòÉΓòÉΓòÉ
  85.  
  86. The following is a list of "Hot keys" available. 
  87.  
  88.   F1      =   Help. 
  89.  
  90.   F3      =   Exit. 
  91.  
  92.   Alt-D     =   Dialing directory. 
  93.  
  94.   Alt-H     =   Hangup. 
  95.  
  96.   Alt-Q     =   Dial Queue entries. 
  97.  
  98.   Alt-X     =   Exit. 
  99.  
  100.   Ctrl-Break  =   Send break. 
  101.  
  102.   Ctrl-Insert  =   Copy. 
  103.  
  104.   Shift-Insert  =  Paste. 
  105.  
  106.   Page-Dn   =   Download. 
  107.  
  108.   Page-Up   =   Upload. 
  109.  
  110.   Print Scrn  =   Prints text in the visible 
  111.            window (full line length). 
  112.  
  113.  The up and down arrow keys default to scrolling the window. You can change 
  114.  this in the setup terminal dialog box so that when in ANSI mode the arrow keys 
  115.  will be sent to the modem. 
  116.  
  117.  In VT100 mode, some keys have been changed to try to closely emulate the VT100 
  118.  keyboard. F1-F4 are now the PF keys. Because of this the F1 key will not 
  119.  display the normal help, and F3 will not exit the program. The PF keys will 
  120.  send the following characters: 
  121.  
  122.    F1 = ESCOP 
  123.  
  124.    F2 = ESCOQ 
  125.  
  126.    F3 = ESCOR 
  127.  
  128.    F4 = ESCOS 
  129.  
  130.  Where ESC is equal to the ASCII character hex 1B. All other hot keys will not 
  131.  be available. 
  132.  
  133.  In VT220 mode additional keys have been re-defined. While in this mode Pmcomm 
  134.  is not CUA compliant, because of the need to use some of the hot keys that 
  135.  OS/2 would normally use. In VT220 mode the F1-F4 keys will send the same 
  136.  characters as in VT100. In addition VT220 will also use other functions keys 
  137.  as follows: 
  138.  
  139.    F5  = BREAK (sends a break signal) 
  140.  
  141.    F6  = CSI17~ 
  142.  
  143.    F7  = CSI18~ 
  144.  
  145.    F8  = CSI19~ 
  146.  
  147.    F9  = CSI20~ 
  148.  
  149.    F10 = CSI21~ 
  150.  
  151.    F11 = CSI23~ 
  152.  
  153.    F12 = CSI24~ 
  154.  
  155.    Alt/F1  = CSI23~  (VT220 F11 function key) 
  156.  
  157.    Alt/F2  = CSI24~  (VT220 F12 function key) 
  158.  
  159.    Alt/F3  = CSI25~  (VT220 F13 function key) 
  160.  
  161.    Alt/F4  = CSI26~  (VT220 F14 function key) 
  162.  
  163.    Alt/F5  = CSI28~  (VT220 F15 function key) 
  164.  
  165.    Alt/F6  = CSI29~  (VT220 F16 function key) 
  166.  
  167.    Alt/F7  = CSI31~  (VT220 F17 function key) 
  168.  
  169.    Alt/F8  = CSI32~  (VT220 F18 function key) 
  170.  
  171.    Alt/F9  = CSI33~  (VT220 F19 function key) 
  172.  
  173.    Alt/F10 = CSI34~  (VT220 F20 function key) 
  174.  CSI will be one of two values, either the CSI character or the ANSI ESC[. If 
  175.  you are connected with 8 data bits and the host supports the 8 bit sequence 
  176.  then the CSI character will be used. When the num lock key is off the 
  177.  numerical key pad will be in the application mode. If you are connecting to a 
  178.  VT220 Host you can use these keys to send the VT220 PF key values. For example 
  179.  pressing the 1 on the numeric key pad will send the VT220 PF1 key. Pressing 
  180.  the 3 on the numeric key pad will send the VT220 PF3 key, and so on. With the 
  181.  num lock on the numbers will be sent. The plus key has been re-mapped to be a 
  182.  comma, again to be compatible with the VT100 keyboard. 
  183.  
  184.  
  185. ΓòÉΓòÉΓòÉ 3. File ΓòÉΓòÉΓòÉ
  186.  
  187. There is a collection of utilities in this section such as; Save_setup, 
  188. Scripts, Capture, Print, Copy, and  Paste. There is also an About box that has 
  189. information on  Multi-Net Communications, the company that wrote this software. 
  190.  
  191.  
  192. ΓòÉΓòÉΓòÉ 3.1. Save Setup ΓòÉΓòÉΓòÉ
  193.  
  194. Saves user definable configurations as well as screen size and position. 
  195.  
  196.  
  197. ΓòÉΓòÉΓòÉ 3.2. Capture ΓòÉΓòÉΓòÉ
  198.  
  199. Capture saves everything that is received from the modem to a file. For 
  200. example, you can capture all new messages and then read them after  you hang 
  201. up. If you specify PRN as the filename everything will be captured to the 
  202. printer. If you have Monitor_DCD selected then the capture file will be closed 
  203. when you log off. This will happen if you started the capture file from the 
  204. menu or from a internal script. 
  205.  
  206.  
  207. ΓòÉΓòÉΓòÉ 3.2.1. Start Capture ΓòÉΓòÉΓòÉ
  208.  
  209. You will be prompted for a file name and then everything that comes in from the 
  210. modem will be saved to that file. If PRN is selected then everything will be 
  211. sent to the printer. If the file exists you will be asked if you wish to 
  212. overwrite the file. If you select no, the new information will be appended to 
  213. the end of the file. Select cancel if you wish to abort the capture. 
  214.  
  215. You may also start the capture by clicking on the disk drive icon located on 
  216. the Status_Line. 
  217.  
  218.  
  219. ΓòÉΓòÉΓòÉ 3.2.2. Cancel Capture ΓòÉΓòÉΓòÉ
  220.  
  221. This command will turn off capture. This command will only work if capture was 
  222. started with the Start_Capture command. 
  223.  
  224. You may also cancel the capture command by clicking on the disk drive icon 
  225. located on the Status_Line. 
  226.  
  227.  
  228. ΓòÉΓòÉΓòÉ 3.3. Scripts ΓòÉΓòÉΓòÉ
  229.  
  230. Scripts allow you to have the computer perform certain tasks automatically. The 
  231. internal commands available are: 
  232.  
  233.  wait_for 
  234.  puts 
  235.  sleep 
  236.  call 
  237.  capture_on 
  238.  capture_off 
  239.  shell 
  240.  
  241.  The REXX commands that are available are: 
  242.  
  243.  init_dll 
  244.  setcom 
  245.  sendb 
  246.  dcd 
  247.  char_avail 
  248.  read_timeout 
  249.  Get_ch 
  250.  ring_detect 
  251.  drop_dtr 
  252.  raise_dtr 
  253.  Wait_for 
  254.  Wait_fore 
  255.  Put_s 
  256.  Sleep 
  257.  beep 
  258.  get_cursor_position 
  259.  get_char_at 
  260.  capture_on 
  261.  capture_off 
  262.  xmodem_send 
  263.  xmodem_receive 
  264.  xmodem_chk_send 
  265.  xmodem_chk_receive 
  266.  xmodem_1k_send 
  267.  xmodem_1k_receive 
  268.  ymodem_send 
  269.  ymodem_receive 
  270.  ymodemg_send 
  271.  ymodemg_receive 
  272.  zmodem_send 
  273.  zmodem_receive 
  274.  kermit_send 
  275.  kermit_receive 
  276.  ascii_send 
  277.  ascii_receive 
  278.  cisb_send 
  279.  cisb_receive 
  280.  set_download_path 
  281.  os2_shell 
  282.  
  283.  The 'C' library commands that are available are: 
  284.  
  285.  init_lib 
  286.  setcom 
  287.  sendb 
  288.  dcd 
  289.  char_avail 
  290.  read_timeout 
  291.  get_ch 
  292.  ring_detect 
  293.  drop_dtr 
  294.  raise_dtr 
  295.  wait_for 
  296.  wait_fore 
  297.  put_s 
  298.  sleep 
  299.  beep 
  300.  get_cursor_position 
  301.  get_char_at 
  302.  capture_on 
  303.  capture_off 
  304.  xmodem_send 
  305.  xmodem_receive 
  306.  xmodem_chk_send 
  307.  xmodem_chk_receive 
  308.  xmodem_1k_send 
  309.  xmodem_1k_receive 
  310.  ymodem_send 
  311.  ymodem_receive 
  312.  ymodemg_send 
  313.  ymodemg_receive 
  314.  zmodem_send 
  315.  zmodem_receive 
  316.  kermit_send 
  317.  kermit_receive 
  318.  ascii_send 
  319.  ascii_receive 
  320.  cisb_send 
  321.  cisb_receive 
  322.  set_download_path 
  323.  os2_shell 
  324.  
  325.  The scripts command is only available in the commercial version of Pmcomm. 
  326.  
  327.  
  328. ΓòÉΓòÉΓòÉ 3.3.1. Start Scripts ΓòÉΓòÉΓòÉ
  329.  
  330.  With this command you can start a pre-written script at any time, just enter 
  331. the file name of the script when prompted. If only the file name is entered, 
  332. the script path will be searched for the file. Full path and file names are 
  333. allowed. 
  334.  
  335. You may also start a script be clicking on the book icon located on the 
  336. Status_Line. 
  337.  
  338.  
  339. ΓòÉΓòÉΓòÉ 3.3.2. Script Dialog ΓòÉΓòÉΓòÉ
  340.  
  341. The Script Dialog displays information and options about the current script. 
  342. When the dialog is displayed you have the option of either aborting the script, 
  343. closing the dialog box, or skipping the currently executing command. 
  344.  
  345.  
  346. ΓòÉΓòÉΓòÉ 3.3.3. Cancel Script ΓòÉΓòÉΓòÉ
  347.  
  348. This command is used to stop a script that is already running. The script will 
  349. be canceled at the time this is selected unless the script is at a sleep 
  350. command. In this case the script will stop after the sleep time interval has 
  351. expired. 
  352.  
  353. You may also cancel a script by clicking on the book icon located on the 
  354. Status_Line. 
  355.  
  356.  
  357. ΓòÉΓòÉΓòÉ 3.3.4. Start Script Generator ΓòÉΓòÉΓòÉ
  358.  
  359. This is the command that executes Pmcomm's script generator. The script 
  360. generator will write a script in either REXX or Internal script syntax. If you 
  361. want a script that will log you on to a BBS turn the script generator on and 
  362. log on normally. Once finished logging on cancel the script generator. You now 
  363. have a script that will log you onto that BBS. 
  364.  
  365. You may also start the script generator by clicking on the generator icon 
  366. located on the Status_Line. 
  367.  
  368.  
  369. ΓòÉΓòÉΓòÉ <hidden> Filename ΓòÉΓòÉΓòÉ
  370.  
  371. Pmcomm allows you to choose either a path and filename or just the filename. If 
  372. only the filename is entered, Pmcomm will use the script directory that is 
  373. setup under the Paths option. Be sure that all REXX scripts have an extension 
  374. of .cmd and all Internal scripts have an extension of .scr. If these extensions 
  375. are not used Pmcomm will create the script but the script will not be able to 
  376. be executed. 
  377.  
  378.  
  379. ΓòÉΓòÉΓòÉ <hidden> Description ΓòÉΓòÉΓòÉ
  380.  
  381. This description will appear as the first line of the script. The description 
  382. will hopefully avoid any confusion about the purpose of the script a later 
  383. date. 
  384.  
  385.  
  386. ΓòÉΓòÉΓòÉ <hidden> REXX Script ΓòÉΓòÉΓòÉ
  387.  
  388. This will create a script using the REXX language. The filename must have an 
  389. extension of .cmd in order for it to be executed by the REXX interpreter. A 
  390. REXX script will execute a little slower than an Internal script, but it is 
  391. more flexible. 
  392.  
  393.  
  394. ΓòÉΓòÉΓòÉ <hidden> Internal Script ΓòÉΓòÉΓòÉ
  395.  
  396. This will create a script using Pmcomm's Internal script syntax. The filename 
  397. must have an .scr extension in order for it to be executed by Pmcomm. 
  398.  
  399.  
  400. ΓòÉΓòÉΓòÉ <hidden> Number of Characters in wait_fore ΓòÉΓòÉΓòÉ
  401.  
  402. The Number of Characters in wait_fore will decide the length of the wait_fore 
  403. statements. The default is 10 characters which for most purposes will be 
  404. adequate. 
  405.  
  406.  
  407. ΓòÉΓòÉΓòÉ 3.3.5. Cancel Script Generator ΓòÉΓòÉΓòÉ
  408.  
  409. This command turns of the script generator. You can also cancel the script 
  410. generator by clicking on the generator icon located on the Status_Line. 
  411.  
  412.  
  413. ΓòÉΓòÉΓòÉ 3.4. Log File  ΓòÉΓòÉΓòÉ
  414.  
  415. Logging writes to a file named pmcomm.log in the main pmcomm directory. The 
  416. type of information written is the time, date and name of the number  called. 
  417. The time, date, cps and name of files transferred will also be saved. If you 
  418. are setup  to monitor DCD the time and date of when the call was terminated 
  419. will also be recorded. 
  420.  
  421.  
  422. ΓòÉΓòÉΓòÉ 3.4.1. Start Logging ΓòÉΓòÉΓòÉ
  423.  
  424. The file named pmcomm.log in the main pmcomm directory will be opened. Any 
  425. logging information will be appended to the end of the file. 
  426.  
  427.  
  428. ΓòÉΓòÉΓòÉ 3.4.2. Cancel Logging ΓòÉΓòÉΓòÉ
  429.  
  430. The log file will be closed and no other information will be written to the log 
  431. file until it is re-opened using the Start Log option. 
  432.  
  433. You may also cancel logging by clicking on the log icon located on the 
  434. Status_Line. 
  435.  
  436.  
  437. ΓòÉΓòÉΓòÉ 3.5. File Import ΓòÉΓòÉΓòÉ
  438.  
  439. This command copies a file from disk and sends it to a remotely connected 
  440. computer. This can be handy for sending previously saved files as messages, or 
  441. during a chat session. At times this is handier then using the clipboard. The 
  442. delay time specified in the file import delay parameter under Options, 
  443. Protocols, will pause the specified number of seconds after each line has been 
  444. sent. This can be useful if the receiver can not process the information as 
  445. fast as Pmcomm can send it. 
  446.  
  447.  
  448. ΓòÉΓòÉΓòÉ 3.6. Print ΓòÉΓòÉΓòÉ
  449.  
  450. Print allows you to send information that was previously received out to the 
  451. printer. You can either send the information that is displayed on the visible 
  452. part of the window, or you can print the whole scroll back buffer. The print 
  453. function uses PRN as the device name for printing. 
  454.  
  455.  
  456. ΓòÉΓòÉΓòÉ 3.6.1. Print visible screen ΓòÉΓòÉΓòÉ
  457.  
  458. This command can also sent by pressing the Print Screen key. When Pmcomm 
  459. receives this message it prints all of the lines on the visible part of the 
  460. screen. 
  461.  
  462.  
  463. ΓòÉΓòÉΓòÉ 3.6.2. Print buffer ΓòÉΓòÉΓòÉ
  464.  
  465. When this is selected all of the scroll back buffer is sent out to the printer. 
  466. There are about 240 lines available in the scroll back buffer, so this command 
  467. may take awhile to complete. This does not mean that you can't do anything 
  468. else. Pmcomm will print in the background while you go on. 
  469.  
  470.  
  471. ΓòÉΓòÉΓòÉ 3.6.3. Print selected ΓòÉΓòÉΓòÉ
  472.  
  473. This will print previously selected text (by using the mouse) to the PRN 
  474. device. 
  475.  
  476. You may also print any selected text by clicking on the printer icon located on 
  477. the Status_Line. 
  478.  
  479.  
  480. ΓòÉΓòÉΓòÉ 3.6.4. Print continuous ΓòÉΓòÉΓòÉ
  481.  
  482. This will print everything that comes in from the com port to the PRN device. 
  483. Start continuous printing 
  484.  
  485. This will start continuous printing. Everything will be printed to the PRN 
  486. device. It is not recommended that you use this command unless you have the 
  487. OS/2 print spooler active. 
  488.  
  489. You may also start continuous printing by clicking on the printer icon located 
  490. on the Status_Line. 
  491. Cancel continuous printing 
  492.  
  493. This will cancel printing, that was started with the Start continuous printing 
  494. command. 
  495.  
  496. You may also cancel continuous printing by clicking on the printer icon located 
  497. on the Status_Line. 
  498.  
  499.  
  500. ΓòÉΓòÉΓòÉ 3.7. About ΓòÉΓòÉΓòÉ
  501.  
  502. The about box has information about this program, such as BBS support telephone 
  503. number, company name, version number, serial number, and copyright information. 
  504.  
  505.  
  506. ΓòÉΓòÉΓòÉ 3.8. Exit ΓòÉΓòÉΓòÉ
  507.  
  508. Ends current session with Pmcomm. Pmcomm closes the comport when exiting which 
  509. drops DTR. The hang-up string is also sent to the modem. 
  510.  
  511.  
  512. ΓòÉΓòÉΓòÉ 4. Edit ΓòÉΓòÉΓòÉ
  513.  
  514. In this section there are commands such as Copy, Paste, and Clear_Screen. 
  515.  
  516.  
  517. ΓòÉΓòÉΓòÉ 4.1. Copy ΓòÉΓòÉΓòÉ
  518.  
  519. Copy transfers information from the screen and places it into the Clipboard. 
  520. Other applications, such as a word processor, can then use this information. 
  521.  
  522.  
  523. ΓòÉΓòÉΓòÉ 4.2. Paste ΓòÉΓòÉΓòÉ
  524.  
  525. Paste, copies information from the clipboard and sends it out to the modem. 
  526. Care must be taken that the information sent can be handled by the remote 
  527. computer. A use for this command would be that you could enter a message in a 
  528. word processor, copy that message into the clipboard and then paste it into 
  529. Pmcomm. 
  530.  
  531.  
  532. ΓòÉΓòÉΓòÉ 4.3. Clear Screen ΓòÉΓòÉΓòÉ
  533.  
  534. Clears the whole screen including the scroll back buffer and resets the 
  535. attribute to the attribute defined in the setup area. 
  536.  
  537.  
  538. ΓòÉΓòÉΓòÉ 5. Connect ΓòÉΓòÉΓòÉ
  539.  
  540. This command allows you to connect to another computer, either through a modem, 
  541. using the Dial command or direct connect, using the Send_Break command. 
  542.  
  543.  
  544. ΓòÉΓòÉΓòÉ 5.1. Dial ΓòÉΓòÉΓòÉ
  545.  
  546. Dial uses a dialing_directory to store phone numbers and other information 
  547. about the computer. 
  548.  
  549.  
  550. ΓòÉΓòÉΓòÉ 5.1.1. Dial Dialog Help ΓòÉΓòÉΓòÉ
  551.  
  552. The dial dialog box allows you to add, select, modify, or delete entries in the 
  553. current dialing directory. An entry can also be selected to be automatically 
  554. selected (or optionally dialed) when Pmcomm is first started. 
  555.  
  556. To add an entry, select the add button in the dialog box. You will  then be 
  557. prompted to enter the name of the new entry. The directory will be sorted and 
  558. the new entry will be selected. The cursor will be positioned at the number 
  559. entry field so that the number for the new entry can be entered. After the 
  560. number has been entered, pressing the enter key will save the dialing directory 
  561. and dial the number(s). Pressing the tab key will allow you to edit the other 
  562. fields. 
  563.  
  564. To select a number, using a mouse, "click" on the number (or numbers) that you 
  565. wish  to dial. To de-select an entry "click" on the number once again. If you 
  566. are not using a mouse the arrow keys will move the highlight bar through the 
  567. directory. To select your choices press the space bar, a second time will 
  568. de-select the entry, then press enter. Multiple entries may be selected. This 
  569. will form a dialing queue, in which Pmcomm will dial the selected entries until 
  570. a connection is made. 
  571.  
  572. To modify an entry, select the entry to be edited and then use the tab key to 
  573. move the cursor to the field you wish to change. Use the Change button to 
  574. change the name of an entry. Pressing the save button will save the 
  575. modifications to the disk. 
  576.  
  577. To change a name, select the entry to be edited and then use press the change 
  578. button. The change will automatically be saved to the disk. 
  579.  
  580. To delete an entry, select the entry to be deleted and select the delete button 
  581. in the dialog box. 
  582.  
  583. CAUTION:
  584. If multiple entries are selected, only the first selected entry will be 
  585. deleted. 
  586.  
  587. The dial dialog box can also be accessed by clicking on the phone icon on the 
  588. Status_Line. 
  589.  
  590.  
  591. ΓòÉΓòÉΓòÉ 5.1.2. Dial Prefix ΓòÉΓòÉΓòÉ
  592.  
  593. Pmcomm sends the selected dial prefix to the modem before sending the phone 
  594. number. The default string for the prefixes is ATDT which tells the modem to 
  595. dial using tone (ie. touch tone). If your phone system does not support touch 
  596. tone then you could use the ATDP command. Pmcomm allows you to setup multiple 
  597. prefixes, so that if you need to dial a special code for long distance calls 
  598. you can set up a separate prefix for those calls. 
  599.  
  600.  
  601. ΓòÉΓòÉΓòÉ 5.1.3. Dial Suffix ΓòÉΓòÉΓòÉ
  602.  
  603. Pmcomm sends the selected dial suffix to the modem after sending the phone 
  604. number. The default string for the suffixes is ^M which is a carriage return 
  605. and line feed. 
  606.  
  607.  
  608. ΓòÉΓòÉΓòÉ 5.1.4. Automatically Selected ΓòÉΓòÉΓòÉ
  609.  
  610. If a dialing entry is marked as being automatically selected then each time 
  611. Pmcomm is started this entry will be selected to be dialed. You can have as 
  612. many entries automatically selected as you want, and this will form a dialing 
  613. queue. A dialing queue allows you to try the first number and if it is busy it 
  614. will then dial the next number in the queue. If the Dial Auto Selected Entries 
  615. on program Startup is selected then any entries in the dialing directory that 
  616. are marked as auto selected, will automatically be dialed. This option will 
  617. allow you to automatically dial selected numbers when Pmcomm is first invoked. 
  618.  
  619.  
  620. ΓòÉΓòÉΓòÉ 5.1.5. Dial List Box ΓòÉΓòÉΓòÉ
  621.  
  622. The Dial List Box is a multiple selection list box. This means that you can 
  623. select more then one entry at a time. The information on the right side of the 
  624. Dialog Box is on the first item selected. The reason for using a multiple 
  625. selection list box, is that you can select more than one item and these items 
  626. will be dialed in order. For example, if the first number selected is busy then 
  627. Pmcomm will dial the next number selected. If all selected numbers are busy, 
  628. Pmcomm will start over again. If you have multiple items selected and select 
  629. the Delete button, only the first item will be deleted. If an item is selected 
  630. and you double click on that item then the selected items will be dialed. 
  631.  
  632.  
  633. ΓòÉΓòÉΓòÉ 5.1.6. Baud Rate ΓòÉΓòÉΓòÉ
  634.  
  635. In the Dialing Dialog Box you can enter any baud supported by the device driver 
  636. you are using. Currently the maximum baud rate supported by the device driver 
  637. included with OS/2 is 19200. Commonly used baud rates are: 300, 1200, 2400, 
  638. 9600, and 19200. There are some device drivers currently available that support 
  639. up to 38400. To enter a baud rate, type in a valid baud rate. The com port will 
  640. be set to this value when the phone number is dialed. In the Port Options 
  641. Dialog Box the above mentioned baud rates can be selected by using the radio 
  642. buttons. 
  643.  
  644.  
  645. ΓòÉΓòÉΓòÉ 5.1.7. Parity ΓòÉΓòÉΓòÉ
  646.  
  647. The supported parities are: None, Even, Odd, Marked, and Space. To enter a 
  648. parity, type in one of the above words. The two most widely used parities are 
  649. None and Even. If you are calling most BBS's you would want to enter None, but 
  650. most packet networks (such as CompuServe and Telenet) normally require Even 
  651. parity. 
  652.  
  653.  
  654. ΓòÉΓòÉΓòÉ 5.1.8. Data Bits ΓòÉΓòÉΓòÉ
  655.  
  656. Currently supported data bits are 5, 6, 7, and 8. The most popular values are 7 
  657. and 8. For most BBS's 8 data bits are necessary, however, for systems such as 
  658. CompuServe, 7 data bits are required. 
  659.  
  660.  
  661. ΓòÉΓòÉΓòÉ 5.1.9. Stop Bits ΓòÉΓòÉΓòÉ
  662.  
  663. Currently supported stop bits are 1 and 2. Most systems will require 1 stop 
  664. bit. 
  665.  
  666.  
  667. ΓòÉΓòÉΓòÉ 5.1.10. Dial Script ΓòÉΓòÉΓòÉ
  668.  
  669. The script name can be up to 12 characters long. The script must be in the 
  670. script path (see Paths for more information). Any REXX script, Internal script, 
  671. or any OS/2 executable can be executed. Once Pmcomm is connected to the remote 
  672. computer this script will be executed. 
  673.  
  674.  
  675. ΓòÉΓòÉΓòÉ 5.1.11. Dial Terminal ΓòÉΓòÉΓòÉ
  676.  
  677. The currently available terminal emulations are TTY, ANSI, VT100, and VT220. 
  678. Pmcomm will switch to the terminal emulation listed once connected to the 
  679. remote computer. 
  680.  
  681.  
  682. ΓòÉΓòÉΓòÉ 5.2. Send Break ΓòÉΓòÉΓòÉ
  683.  
  684. Initializes a connection with another computer through a protocol converter. 
  685.  
  686.  
  687. ΓòÉΓòÉΓòÉ 5.3. Initialize Modem ΓòÉΓòÉΓòÉ
  688.  
  689. Pmcomm automatically sends the modem initialization string to the 
  690. communications port when the user first starts Pmcomm. If for some reason you 
  691. need to re-initialize the modem, you can use the Initialize Modem command to do 
  692. so. 
  693.  
  694.  
  695. ΓòÉΓòÉΓòÉ 6. Transfer ΓòÉΓòÉΓòÉ
  696.  
  697. Transfer allows the use of different protocols to send and receive files from a 
  698. remote computer. The protocol options are Xmodem_Checksum, Xmodem_CRC, 
  699. 1K-Xmodem, Ymodem(batch), Ymodem-g(batch), Zmodem, Kermit, CISB, and ASCII. 
  700. Zmodem is probably the best selection, when available on the remote computer. 
  701. Ymodem-G should only be used with error correcting modems. 
  702.  
  703. IND$FILE is available for downloads using the VT100, and VT220 terminal 
  704. emulations only. 
  705.  
  706. CAUTION:
  707. IND$FILE currently does not have any error detection available in Pmcomm. 
  708.  
  709.  
  710. ΓòÉΓòÉΓòÉ 6.1. Download ΓòÉΓòÉΓòÉ
  711.  
  712. The download command brings up a dialog box for you to select the proper 
  713. protocol. If the protocol selected is not a batch protocol ( ASCII, 
  714. Xmodem_Checksum, Xmodem_CRC or 1K-Xmodem ) you will be prompted for a filename. 
  715. If you have Auto-Zmodem or Auto_CISB selected in the protocol options area, 
  716. Pmcomm will automatically start transferring as soon as the remote computer 
  717. starts to send. Zmodem is not available in the demonstration version. 
  718.  
  719.  
  720. ΓòÉΓòÉΓòÉ 6.2. Upload ΓòÉΓòÉΓòÉ
  721.  
  722. When sending a file to a remote computer you must select the same protocol that 
  723. the remote computer will use to receive the file. After selecting the proper 
  724. protocol, a file open dialog box will have you select the file you wish to 
  725. send. You can either double click on the file name or select the file and click 
  726. on the OK button. If you have Auto_CISB selected in the protocol options area, 
  727. Pmcomm will automatically start the transfer as soon as the remote computer 
  728. sends the transfer request. With a CISB transfer the filename is specified on 
  729. the host and the file open dialog box is not displayed. 
  730.  
  731. You may also use the drag and drop feature of Pmcomm. When files are dragged 
  732. from the file manager and dropped onto Pmcomm, the transfer protocol that is 
  733. listed for that phone number will be invoked and the file(s) will be sent to 
  734. the remote computer. If you have Monitor_DCD selected then drag options will 
  735. not be allowed until connected with another computer. 
  736.  
  737. To drag files from the file manager, select a file (or files) and then click on 
  738. the selected file(s) with the RIGHT mouse button and hold the button down. Once 
  739. you have begun to drag the files with the mouse the mouse pointer will change 
  740. shape. If the mouse pointer is over a program that does not accept drag and 
  741. drop the pointer will again change shape. When the mouse pointer is over any 
  742. part of Pmcomm you can release the right mouse button. This will drop the files 
  743. onto Pmcomm and Pmcomm will send them. This will even work if Pmcomm is an 
  744. icon. 
  745.  
  746. To change the protocol for the current phone number, select upload from the 
  747. menu and then select the protocol you want (make sure that the save to dialing 
  748. directory is selected). After pressing the OK button the file open dialog box 
  749. will be displayed. Just press cancel and you can now use the drag and drop with 
  750. the new protocol. 
  751.  
  752. If a file is dropped onto Pmcomm while it is an icon in a group menu, this file 
  753. will be used as a setup file, and Pmcomm will be invoked. 
  754.  
  755.  
  756. ΓòÉΓòÉΓòÉ 6.2.1. Xmodem Checksum ΓòÉΓòÉΓòÉ
  757.  
  758. Xmodem Checksum is one of the oldest protocols around and some people still use 
  759. it exclusively. It is a moderately fast protocol that has fairly good error 
  760. detection. 
  761.  
  762.  
  763. ΓòÉΓòÉΓòÉ 6.2.2. Xmodem CRC ΓòÉΓòÉΓòÉ
  764.  
  765. Xmodem CRC and Xmodem_Checksum are similar except CRC has better error 
  766. detection then Checksum. Almost anywhere you call will offer at least one of 
  767. these protocols. 
  768.  
  769.  
  770. ΓòÉΓòÉΓòÉ 6.2.3. 1k-Xmodem ΓòÉΓòÉΓòÉ
  771.  
  772. 1k-Xmodem uses the same error detection as Xmodem_CRC, but uses 1024 byte 
  773. blocks instead of 128 byte blocks. This allows for greater throughput (higher 
  774. characters per second) with roughly the same error detection. 
  775.  
  776.  
  777. ΓòÉΓòÉΓòÉ 6.2.4. Ymodem ΓòÉΓòÉΓòÉ
  778.  
  779. Ymodem uses the same error detection and block size as 1k-Xmodem but is a batch 
  780. protocol. This means that in the first block the file size and name are sent. 
  781. This keeps the receiver from having to type in the filename. It also allows you 
  782. to send more then one file without have to start the transfer again. This 
  783. protocol is second to Zmodem, in our opinion, when using non-error correcting 
  784. modems. 
  785.  
  786.  
  787. ΓòÉΓòÉΓòÉ 6.2.5. Ymodem-g ΓòÉΓòÉΓòÉ
  788.  
  789. Ymodem-g is identical to Ymodem except it has no error correction. If an error 
  790. is detected the transfer aborts. Because of this Ymodem-g should only be used 
  791. with error correcting modems. Pmcomm will allow you to use this protocol 
  792. anytime, but again care should be taken on what hardware it is used with. With 
  793. the proper hardware Ymodem-g has the fastest cps (characters per second). 
  794.  
  795.  
  796. ΓòÉΓòÉΓòÉ 6.2.6. Zmodem ΓòÉΓòÉΓòÉ
  797.  
  798. Zmodem is almost as fast as Ymodem-g, however Zmodem does support error 
  799. correction and file recovery. It only takes one aborted Ymodem-g transfer to 
  800. lose all it's advantages. Zmodem has many advantages as far as the user is 
  801. concerned. It is probably the easiest protocol to use. If using Pmcomm with the 
  802. Auto-Zmodem download feature, the whole download is done automatically from the 
  803. Pmcomm end. You have to select the file from the sender (BBS etc..) and once 
  804. the sender starts sending, the transfer will begin on Pmcomm. It may take a 
  805. moment before the sender sends the first sequence, so wait a moment. Some of 
  806. the advanced features of Zmodem are listed below. Zmodem supports: 
  807.  
  808.   1. CRC-32 and CRC-16. The additional error detection of 32 bit CRC is 
  809.      supported. 
  810.  
  811.   2. File recovery. If a Zmodem download is aborted for any reason the transfer 
  812.      will resume at the point where it was  aborted. You don't have to start 
  813.      the whole transfer over. 
  814.  
  815.   3. Auto-Download. When a Zmodem sending program starts up it first sends a rz 
  816.      and then a carriage return. Pmcomm will monitor for the startup sequence 
  817.      and automatically start the Zmodem download. Great care has been taken to 
  818.      make sure that it really is a Zmodem transfer and not someone typing it in 
  819.      at the keyboard (at either end). This feature makes downloading with 
  820.      Zmodem much faster and much easier. 
  821.  
  822.   4. Variable length headers. This reduces the amount of overhead that accrues 
  823.      with sending Zmodem headers. This is only used if supported by both the 
  824.      sender and receiver. 
  825.  
  826.   5. RLE encoding. Run length encoding is a form of file compression. Instead 
  827.      of sending 20 spaces it will send a space and the number 20. The receiver 
  828.      will then decompress it. Because of the multi-thread (tasking) 
  829.      capabilities of OS/2 this works much better then with DOS. This also is 
  830.      only used if supported by both the sender and receiver. 
  831.  
  832.   6. Variable length receive buffers. Some Zmodem receive programs have 
  833.      problems with writing to the disk and receiving from the comport at the 
  834.      same time. If necessary Zmodem will wait for an ACK from the receiver 
  835.      after the specified buffer size has been sent. This will only be done if 
  836.      it is requested by the receiver requests it. 
  837.  
  838.   7. Retains original file size. Some people say that because Zmodem headers 
  839.      are larger that there is two much overhead. This really isn't the case. 
  840.      For example if comparing Zmodem to Ymodem-g (full flow Ymodem), Ymodem-g 
  841.      has less overhead with each packet. However Ymodem-g rounds the file size 
  842.      up to an even 128 byte size. In some cases it is even rounded up 1024 
  843.      bytes. This is done because Ymodem (g or otherwise) only supports two 
  844.      block sizes, 128 and 1024 (the block size is actually 133 and 1029 to 
  845.      allow for the block header, STX or SOH, and the CRC value), so it has to 
  846.      send full blocks. However, Zmodem uses variable  block sizes. The block 
  847.      sizes adjust from 32 bytes to 1024 bytes. If telephone line quality is 
  848.      poor smaller blocks are sent so that if an error does occur less data will 
  849.      have to be resent. As the line quality improves the size of the blocks 
  850.      will be increased. The starting block size is variable depending on the 
  851.      connected baud rate. 
  852.  
  853.   8. Error recovery. Because Zmodem can resend from any place in the file, 
  854.      aborted transfers are rare. 
  855.  
  856.  By reading this you can tell our favorite protocol is Zmodem. Once you have 
  857.  used Zmodem it's hard to get used to using other protocols. 
  858.  
  859.  
  860. ΓòÉΓòÉΓòÉ 6.2.7. ASCII ΓòÉΓòÉΓòÉ
  861.  
  862. The ASCII protocol can be used to transfer text files. There is no error 
  863. detection or correction available with this protocol. It is recommended that 
  864. one of the other protocols be used, even with text files. 
  865.  
  866.  
  867. ΓòÉΓòÉΓòÉ 6.2.8. CISB ΓòÉΓòÉΓòÉ
  868.  
  869. The CIS B protocol can be used to transfer files to and from CompuServe. 
  870. CompuServe B, B+ and Quick B are supported. Quick B is the fastest variant of 
  871. the B protocol and is automatically selected when it is supported on the host 
  872. computer. The CIS B protocol is an automatic protocol where the host initiates 
  873. the transfer and Pmcomm will automatically go into the send or receive mode. If 
  874. you are sending a file, the file must exist in the download directory of 
  875. Pmcomm. If Pmcomm is unable to find the file then the transfer will abort. 
  876. Pmcomm can be configured to ignore the CIS B protocol by de-selecting the 
  877. Automatic CIS B option in the Protocol Option Dialog. Pmcomm may run slightly 
  878. faster in terminal mode without this selection. Under most systems the 
  879. difference will not be detectable. 
  880.  
  881. Another option for CIS B is for file recovery. What this option will do is if 
  882. you started a download and aborted the transfer you can then re-start the 
  883. transfer and CIS B will resume from the place where it was aborted. This can be 
  884. very handy in poor phone line conditions. The packet size for CIS B is adjusted 
  885. by the connecting baud rate. For example, if you are connected to CompuServe at 
  886. 2400 baud the packet size will be 1024 bytes. If you connect at 1200 baud the 
  887. packet size will be 512 bytes. This allows for speedy error recovery in case a 
  888. error occurs because of phone line noise. Downloads will automatically be 
  889. placed in the Pmcomm download directory and the download directory will 
  890. automatically searched for any uploaded files. If you specify a path with the 
  891. filename when  CompuServe asks for a filename for your computer, then this path 
  892. will be used. CIS B should be the protocol used when transferring files to and 
  893. from CompuServe. 
  894.  
  895.  
  896. ΓòÉΓòÉΓòÉ 6.2.9. Kermit ΓòÉΓòÉΓòÉ
  897.  
  898. Kermit is the slowest protocol offered here and should only be used when no 
  899. other protocol is available. Kermit does have advantages and it is offered on 
  900. many mini-computers as well as mainframes. Kermit will also transfer binary 
  901. files when connected at 7,E,1. The maximum packet size that is allowed is 94 
  902. bytes which is one of the reasons that makes Kermit slow. There is a variation 
  903. of Kermit that allows larger packet size, but it is not implemented in Pmcomm. 
  904. Kermit allows batch transfers, both in sending and receiving, and will attempt 
  905. to preserve the file names. If Pmcomm gets an error when trying to create the 
  906. file name received from the sender it will convert it to a "8.3" type of file 
  907. name. Kermit allows variable packet sizes so the original file size is 
  908. maintained. 
  909.  
  910. Pmcomm allows you to change the "End of Line" character (also called end of 
  911. packet), the "Quoting character" (sent before control codes), the "pad 
  912. character", and the number of pad characters you want. You can also tell Pmcomm 
  913. to force an 8 bit transfer even if it is on at 7,E,1. This comes in handy if 
  914. you are downloading files from Compu-Serve. If this option is not selected and 
  915. you are on at 7 data bits, Pmcomm will use what is called the 7 bit quoting. 
  916. The 7 bit quote character that Pmcomm uses is a &. 
  917.  
  918.  
  919. ΓòÉΓòÉΓòÉ 6.2.10. IND$FILE ΓòÉΓòÉΓòÉ
  920.  
  921. IND$FILE currently is only supported under VT100 and VT220 terminal emulations 
  922. through a 3708 protocol converter. Because of problems with character 
  923. conversion through the protocol converter error detection is not currently 
  924. available. Because of this, files received using IND$FILE maybe CORRUPTED! Use 
  925. this protocol at your own risk! IND$FILE is not a very efficient protocol 
  926. because every byte that is transferred must be checked to see if it will pass 
  927. through a 7 bit data stream and escaped if it will not. This can greatly reduce 
  928. the amount of data that can be sent in each packet. 
  929.  
  930.  
  931. ΓòÉΓòÉΓòÉ <hidden> PC File Name ΓòÉΓòÉΓòÉ
  932.  
  933. This is the file name which will be used on the receiver. If a full path and 
  934. file name are used the file will reside at that address. If just a file name is 
  935. specified the file will be stored in the upload directory set in the Paths menu 
  936. option. This file name must be specified or the transfer will not work. 
  937.  
  938.  
  939. ΓòÉΓòÉΓòÉ <hidden> Host File Name ΓòÉΓòÉΓòÉ
  940.  
  941. This is the file name as it resides on the Host. If this filename is not 
  942. specified, Pmcomm will default to the PC File Name as the Host File Name. 
  943.  
  944.  
  945. ΓòÉΓòÉΓòÉ <hidden> Binary ΓòÉΓòÉΓòÉ
  946.  
  947. This option will tell the Host to send the file as a Binary file. 
  948.  
  949.  
  950. ΓòÉΓòÉΓòÉ <hidden> Ascii ΓòÉΓòÉΓòÉ
  951.  
  952. This option will tell the Host to send the file as an Ascii file. 
  953.  
  954.  
  955. ΓòÉΓòÉΓòÉ <hidden> CRLF ΓòÉΓòÉΓòÉ
  956.  
  957. This option will tell the Host to send a "carriage return line feed" after each 
  958. record. This option will be needed on most Ascii file transfers while rarely 
  959. needed with a Binary file transfer. 
  960.  
  961.  
  962. ΓòÉΓòÉΓòÉ 6.2.11. Save to Dial Directory ΓòÉΓòÉΓòÉ
  963.  
  964. When this option is selected the file transfer protocol that is selected will 
  965. be saved into the dialing directory for this number. The next time a file 
  966. transfer is used when connected to this number this same protocol will be 
  967. selected and all the user will have to do is press the OK button. If you do not 
  968. want this protocol save then de-select this option. 
  969.  
  970.  
  971. ΓòÉΓòÉΓòÉ 7. Hangup ΓòÉΓòÉΓòÉ
  972.  
  973. Hang-up sends the hang-up command string (see the Option menu) and optionally 
  974. drops the DTR line to the modem. Dropping DTR is the most effective if your 
  975. modem is setup to hang-up when DTR is dropped. Using a hang-up string is also 
  976. slower because Pmcomm has to get the modem into the command state before 
  977. sending the hang-up string. If you have DTR on and delete the hang-up string 
  978. the hang-up will be much faster. The default string is : +++~~~~ATH^M. The +++ 
  979. is the default modem attention string, which puts the modem into the command 
  980. state. The ~~~~ will make Pmcomm pause 2 seconds (.5 seconds per ~) and then 
  981. the ATH will force the modem to go on-hook (hangup). The ^M sends a carriage 
  982. return line feed combination. 
  983.  
  984.  
  985. ΓòÉΓòÉΓòÉ 8. Options ΓòÉΓòÉΓòÉ
  986.  
  987. Option allows you to tailor Pmcomm to your own tastes. The areas in option are: 
  988. Port, Dial_Setup, Modem, Protocols, Paths, Macros_Setup, Screen, Terminal, and 
  989. Chat. The setup is not automatically saved. This allows you to change things 
  990. temporally without changing your default setup file. If you do want to make the 
  991. changes permanent be sure to save the setup file. To save the current setup 
  992. file,  use the Save_setup command under the File menu option. 
  993.  
  994.  
  995. ΓòÉΓòÉΓòÉ 8.1. Port ΓòÉΓòÉΓòÉ
  996.  
  997. The device name should be a valid com device name. Some third party device 
  998. drivers allow you to use names other then COM1, COM2, etc., so Pmcomm does not 
  999. limit you to these names. Hardware flow control and DTR should be on for most 
  1000. modems. There are currently a couple third party device drivers as well as OS/2 
  1001. 2.0, that support 38400 baud, so Pmcomm has been made to support this baud 
  1002. rate. 
  1003.  
  1004.  
  1005. ΓòÉΓòÉΓòÉ 8.1.1. Device Open Error Retries ΓòÉΓòÉΓòÉ
  1006.  
  1007. This is the number of attempts Pmcomm will try to open a device. After the 
  1008. specified number of attempts Pmcomm will exit. If 0 is entered, Pmcomm will not 
  1009. retry to open the device. This option is generally used to access a shared com 
  1010. port (i.e. modem pool). 
  1011.  
  1012.  
  1013. ΓòÉΓòÉΓòÉ 8.1.2. Seconds Between Retries ΓòÉΓòÉΓòÉ
  1014.  
  1015. This is the number of seconds Pmcomm will wait before retrying to open a 
  1016. device. 
  1017.  
  1018.  
  1019. ΓòÉΓòÉΓòÉ 8.1.3. Device Name ΓòÉΓòÉΓòÉ
  1020.  
  1021. The device name should be a valid com device name. Some third party device 
  1022. drivers allow you to use, and in some cases require that you use, names other 
  1023. then COM1, COM2, etc., so Pmcomm does not limit you to these names. If you are 
  1024. using Pmcomm across a LAN then normally there will be an Alias name for the com 
  1025. port you are using on the server. See your LAN administrator for the Alias 
  1026. name(s) that you should use to access the modem(s). 
  1027.  
  1028.  
  1029. ΓòÉΓòÉΓòÉ 8.1.4. Hardware Flow Control ΓòÉΓòÉΓòÉ
  1030.  
  1031. Hardware Flow Control is generally the most reliable method of flow control. 
  1032. There are two basic times when flow control is needed. First, if Pmcomm is 
  1033. sending information to the modem faster than the modem is able to send the 
  1034. information flow control is needed. If flow control is not enabled then a 
  1035. transmission error will occur. Second if the modem is sending information to 
  1036. Pmcomm faster then Pmcomm can receive it, then Pmcomm will try to tell the 
  1037. modem to stop sending the information. This can occur when an excessive amount 
  1038. of processing is being preformed on the computer. Hardware Flow Control uses 
  1039. two modem signals to control the flow of information. For send flow control the 
  1040. CTS modem line is used. For receive flow control the RTS modem line is used. If 
  1041. your modem supports these flow control signals, then setup your modem and 
  1042. Pmcomm for Hardware Flow Control. 
  1043.  
  1044.  
  1045. ΓòÉΓòÉΓòÉ 8.1.5. XON/XOFF Flow Control ΓòÉΓòÉΓòÉ
  1046.  
  1047. Xon/Xoff Flow Control should only be used when Hardware_Flow_Control is not 
  1048. available and when flow control is necessary. The only two file transfers that 
  1049. will work correctly with Xon/Xoff are ASCII and Zmodem. The only other protocol 
  1050. that should need flow control is Ymodem-g. 
  1051.  
  1052.  
  1053. ΓòÉΓòÉΓòÉ 8.1.6. Use DTR ΓòÉΓòÉΓòÉ
  1054.  
  1055. DTR stands for Data Terminal Ready, which by lowering DTR you can signal the 
  1056. device you are communicating with (usually a modem) that you wish to go off 
  1057. line. If you are connected to a modem you should set the modem up to go on-hook 
  1058. when the modem detects a drop in DTR. The command for a Hayes 2400 baud modem 
  1059. is AT&D2. If this option is selected in Pmcomm, then DTR will be dropped when 
  1060. the hangup command is selected, or after each re-dial attempt. 
  1061.  
  1062.  
  1063. ΓòÉΓòÉΓòÉ 8.1.7. Monitor DCD ΓòÉΓòÉΓòÉ
  1064.  
  1065. DCD stands for Data Carrier Detect and is pin 8 on an RS-232C cable. When a 
  1066. carrier is detected by the modem, Pmcomm assumes that you are connected to a 
  1067. remote computer. If DCD is not supported by your modem or other hardware, then 
  1068. this option should be turned off. With this option turned on, if no DCD is 
  1069. present then Pmcomm will not Hangup, or go into a file transfer. The drag and 
  1070. drop from the file manager will also be disabled. The command for a Hayes 2400 
  1071. baud modem is AT&C1. This will have the modem track the state of DCD. 
  1072.  
  1073.  
  1074. ΓòÉΓòÉΓòÉ 8.1.8. Default Baud ΓòÉΓòÉΓòÉ
  1075.  
  1076. The default baud is the baud rate that the com port is set to when Pmcomm is 
  1077. first executed. The baud rate is changed to the value in the dialing directory 
  1078. when a number is dialed. Normally the default baud should be set to the highest 
  1079. baud rate supported by your modem. If you have Pmcomm connected directly to 
  1080. another computer with a NULL modem cable, then you want to set this baud to the 
  1081. same baud rate that the other computer is using. 
  1082.  
  1083.  
  1084. ΓòÉΓòÉΓòÉ 8.1.9. Default Data Bits ΓòÉΓòÉΓòÉ
  1085.  
  1086. This selection allows you to select the number of data bits that will be used 
  1087. when the communications port is initially opened. This option will be 
  1088. overridden with the parameters listed in the dialing directory once you have 
  1089. connected with a remote computer. 
  1090.  
  1091.  
  1092. ΓòÉΓòÉΓòÉ 8.1.10. Default Parity ΓòÉΓòÉΓòÉ
  1093.  
  1094. This selection allows you to select the parity that will be used when the 
  1095. communications port is initially opened. This option will be overridden with 
  1096. the parameters listed in the dialing directory once you have connected with a 
  1097. remote computer. 
  1098.  
  1099.  
  1100. ΓòÉΓòÉΓòÉ 8.1.11. Default Stop Bits ΓòÉΓòÉΓòÉ
  1101.  
  1102. This selection allows you to select the number of stop bits that will be used 
  1103. when the communications port is initially opened. This option will be 
  1104. overridden with the parameters listed in the dialing directory once you have 
  1105. connected with a remote computer. 
  1106.  
  1107.  
  1108. ΓòÉΓòÉΓòÉ 8.2. Dial Setup ΓòÉΓòÉΓòÉ
  1109.  
  1110. This allows you to select a dialing_directory from a list box and also lets you 
  1111. setup the prefix and suffix of the number to be dialed. There is a list box 
  1112. that will allow you to select how the dialing directory will be sorted. You can 
  1113. sort the dialing directory by name, number, baud rate, last on, number of times 
  1114. called, download cps, upload cps, dial prefix, and dial suffix. You can also 
  1115. select either ascending or descending order. 
  1116.  
  1117.  
  1118. ΓòÉΓòÉΓòÉ 8.2.1. Dial Auto Selected Entries ΓòÉΓòÉΓòÉ
  1119.  
  1120. If the Dial Auto Selected Entries on program Startup is selected then any 
  1121. entries in the dialing directory that are marked as automatically_selected , 
  1122. will automatically be dialed. This option will allow you to automatically dial 
  1123. selected numbers when Pmcomm is first invoked. This can be very useful if you 
  1124. dial the same numbers each time you run Pmcomm. 
  1125.  
  1126.  
  1127. ΓòÉΓòÉΓòÉ 8.2.2. Sort Dialing Directory ΓòÉΓòÉΓòÉ
  1128.  
  1129. The dialing_directory can be sorted by either the name, phone number, baud 
  1130. rate, last time called, number of times called, download characters per second, 
  1131. upload characters per second, dial prefix, or dial suffix. The directory can be 
  1132. sorted in either ascending or descending order. For example you can sort the 
  1133. dialing directory by last time called in descending order, and all the most 
  1134. recently called numbers will be displayed at the top of the dialing directory. 
  1135.  
  1136.  
  1137. ΓòÉΓòÉΓòÉ 8.2.3. Dialing Directory List ΓòÉΓòÉΓòÉ
  1138.  
  1139. A list of the available dialing_directories are displayed in a list box, so 
  1140. that a default directory can be selected. The selected directory will 
  1141. automatically be loaded when Pmcomm is started. You can add additional 
  1142. directories by pressing the add button. 
  1143.  
  1144.  
  1145. ΓòÉΓòÉΓòÉ 8.3. Modem ΓòÉΓòÉΓòÉ
  1146.  
  1147. The initialization string should have the commands in it to enable word result 
  1148. codes, hang-up when DTR is dropped and enable hardware flow control. Not all of 
  1149. these are supported by all modems but use them when possible. Pause before 
  1150. redial is the time Pmcomm waits before trying to re-dial a number. Seconds to 
  1151. wait for carrier is how long  Pmcomm will wait for a connection before 
  1152. re-dialing. 
  1153.  
  1154.  
  1155. ΓòÉΓòÉΓòÉ 8.3.1. Modem Initialization String ΓòÉΓòÉΓòÉ
  1156.  
  1157. Initialization string should have the commands in it to enable word result 
  1158. codes, hang-up when DTR is dropped and enable hardware flow control. Not all of 
  1159. these are supported by all modems, but use them when possible. Pmcomm's default 
  1160. modem string is for a Hayes 2400 baud modem. This is the default string: 
  1161.  
  1162.  AT&F&D2&C1M0Q0S2=255S10=30X4 
  1163.  
  1164.  For a Courier HST the following string should be entered. 
  1165.  
  1166.  AT&FM0&B1&H1&K0&R2&S1&Y0S2=43S10=30X4 
  1167.  
  1168.  This allows everything to be transferred to the modem at 19200 no matter what 
  1169.  the connect baud is. This setting will give you the max through-put even at 
  1170.  lower baud rates. To write this into memory of the HST run Pmcomm and then 
  1171.  enter AT&F&W. This will set the NRAM to the factory defaults. Then type in the 
  1172.  setup string and press enter. To save this to the NRAM enter AT&W. Then all 
  1173.  you have to have for a initialization string in Pmcomm is an ATZ, which will 
  1174.  restore these settings from the NRAM. On the HST I have the DIP switches set 
  1175.  as follows: 
  1176.  
  1177.  up: 1,2,4,6,7,9,10 
  1178.  down: 3,5,8 
  1179.  
  1180.  For a Hayes 9600 V.42 modem the following string should be entered. 
  1181.  
  1182.  AT&F&K3W1&C1&D2S36=7S0=0S2=255S7=30M0S10=30X4N1 
  1183.  
  1184.  
  1185. ΓòÉΓòÉΓòÉ 8.3.2. Modem Pause Before Redial ΓòÉΓòÉΓòÉ
  1186.  
  1187. Pmcomm will pause for the specified number of seconds before attempting to 
  1188. re-dial a phone number. Some phone systems take a few seconds before you can 
  1189. re-dial a phone number. The default value is 3 seconds and should work for most 
  1190. phone systems. 
  1191.  
  1192.  
  1193. ΓòÉΓòÉΓòÉ 8.3.3. Modem Dial Timeout ΓòÉΓòÉΓòÉ
  1194.  
  1195. Pmcomm will wait for a Connect or Carrier message from the modem for up to 64 
  1196. seconds. The S7 register of the modem must also be set to a value at least as 
  1197. great as the dial timeout value. This can be done by issuing the following 
  1198. command to the modem: ATS7=30. This would set the modem to timeout after 30 
  1199. seconds. Setting the dial timeout to a value greater then 30 would not be 
  1200. effective because the modem would still timeout after 30 seconds. The default 
  1201. timeout value for Pmcomm is 60 seconds. 
  1202.  
  1203.  
  1204. ΓòÉΓòÉΓòÉ 8.4. Protocols ΓòÉΓòÉΓòÉ
  1205.  
  1206. The options under protocols are: 
  1207.  
  1208.  Auto Zmodem Download. 
  1209.  
  1210.  Zmodem file recovery. 
  1211.  
  1212.  Zmodem CRC-32. 
  1213.  
  1214.  Zmodem CRC-16. 
  1215.  
  1216.  Auto CISB Transfer. 
  1217.  
  1218.  CISB file recovery. 
  1219.  
  1220.  Import File line delay. 
  1221.  
  1222.  Force 8 bit transfer. 
  1223.  
  1224.  End of line character. 
  1225.  
  1226.  Control quote character. 
  1227.  
  1228.  Number of pad characters. 
  1229.  
  1230.  Pad character. 
  1231.  
  1232.  IND$FILE. 
  1233.  
  1234.  Auto Zmodem makes Pmcomm check for a Zmodem start sequence. When received, 
  1235.  Pmcomm automatically starts receiving the file. Zmodem file recovery allows 
  1236.  Zmodem to resume a file transfer that was previously aborted. CRC-32 has 
  1237.  improved error correction but is slightly slower. If CRC-32 is not available 
  1238.  Pmcomm will switch to CRC-16. Zmodem is only available on commercial versions. 
  1239.  Auto CISB is similar to Auto Zmodem except that both uploads and downloads can 
  1240.  be started this way. This feature is for the CISB file transfer protocol. CISB 
  1241.  file recovery allows CISB to resume a file transfer that was previously 
  1242.  aborted. The IND$FILE protocol may also be selected for downloads. 
  1243.  
  1244.   CAUTION:
  1245.  The IND$FILE file transfer protocol in Pmcomm, currently, does not support any 
  1246.  error detection. 
  1247.  
  1248.  The rest are Kermit options and should be made to match your host. 
  1249.  
  1250.  
  1251. ΓòÉΓòÉΓòÉ 8.5. Paths ΓòÉΓòÉΓòÉ
  1252.  
  1253. The download path allows you to have the files that you download put into a 
  1254. different directory. The script path is where Pmcomm looks for the scripts 
  1255. listed in the dialing directory. The startup script is a script that will be 
  1256. executed each time Pmcomm is started. The default name is startup.scr. The 
  1257. capture path is where all screen captures are stored. These paths must contain 
  1258. a valid directory. It defaults to the directory that Pmcomm was started from. 
  1259. There is also a call logging option here which when turned on will start call 
  1260. logging as soon as Pmcomm is run. 
  1261.  
  1262.  
  1263. ΓòÉΓòÉΓòÉ 8.6. Macros Setup ΓòÉΓòÉΓòÉ
  1264.  
  1265. There are 10 user definable keyboard macros. These can be invoked by holding 
  1266. down the Alt key and pressing 0-9. Use ^M to send a carriage return. When the 
  1267. macro is invoked it will send the string that you have defined to the modem. 
  1268. Once you  have setup the macro string, it can also be selected from the main 
  1269. menu using a mouse. Other special characters are: ^H = tab character. 
  1270.  
  1271.  ^J = carriage return without a line feed. 
  1272.  
  1273.  ^L = form feed. 
  1274.  
  1275.  ^[ = escape character (Ascii 27) 
  1276.  
  1277.  ^C = send the Ctrl-C character (Ascii 3) 
  1278.  
  1279.  ^K = XON character 
  1280.  
  1281.  ^S = XOFF character 
  1282.  
  1283.  ~  = sleep for half a second 
  1284.  
  1285.  You can also send any other special character by holding down the Alt key and 
  1286.  typing in the Ascii number on the numeric key pad. For example, if you want to 
  1287.  enter the escape character into a macro you could hold down the Alt key and 
  1288.  then press the two and the seven on the numeric key pad (while still holding 
  1289.  down the Alt key). When you then release the Alt key the escape character 
  1290.  would be inserted into the macro. Scripts can be executed from macros by using 
  1291.  the shell command. An example of this would be: 
  1292.  
  1293.  shell("c:\pmcomm\plane.cmd"); 
  1294.  
  1295.  This would execute the REXX script called plane.cmd. This allows you a quick 
  1296.  and easy way to execute often used scripts. 
  1297.  
  1298.  
  1299. ΓòÉΓòÉΓòÉ 8.7. Screen ΓòÉΓòÉΓòÉ
  1300.  
  1301. This command allows you to tailor the screen handling to your tastes. The best 
  1302. thing to do is try them to see if you like them. Some features like the 
  1303. automatic horizontal scroll will probably only be used when typing messages and 
  1304. chatting. 
  1305.  
  1306.  
  1307. ΓòÉΓòÉΓòÉ 8.7.1. Font ΓòÉΓòÉΓòÉ
  1308.  
  1309. Allows you to select from a list of font sizes. The sizes depend on the display 
  1310. adapter and version of OS/2 your are using. Pmcomm queries the video device 
  1311. driver to see what font sizes it supports and lists them for you to select. 
  1312.  
  1313.  
  1314. ΓòÉΓòÉΓòÉ 8.7.2. Foreground ΓòÉΓòÉΓòÉ
  1315.  
  1316. Sets up the color to be used for the text used in the Pmcomm window. There are 
  1317. 16 different background and foreground colors available, allowing for 256 
  1318. different color combinations. 
  1319.  
  1320.  
  1321. ΓòÉΓòÉΓòÉ 8.7.3. Background ΓòÉΓòÉΓòÉ
  1322.  
  1323. Sets up the color to be used for the Pmcomm window background. There are 16 
  1324. different background and foreground colors available, allowing for 256 
  1325. different color combinations. 
  1326.  
  1327.  
  1328. ΓòÉΓòÉΓòÉ 8.7.4. Hide Window While Dialing ΓòÉΓòÉΓòÉ
  1329.  
  1330. The hide window while dialing option will make the screen less "busy" while 
  1331. dialing. 
  1332.  
  1333.  
  1334. ΓòÉΓòÉΓòÉ 8.7.5. Hide Window During a File Transfer ΓòÉΓòÉΓòÉ
  1335.  
  1336. The hide window during a file transfer option will make the screen less "busy" 
  1337. while executing a file transfer. 
  1338.  
  1339.  
  1340. ΓòÉΓòÉΓòÉ 8.7.6. Automatic Vertical Scroll ΓòÉΓòÉΓòÉ
  1341.  
  1342. The Automatic vertical scroll option will make Pmcomm keep the cursor 
  1343. vertically in the Pmcomm window. 
  1344.  
  1345.  
  1346. ΓòÉΓòÉΓòÉ 8.7.7. Automatic Horizontal Scroll ΓòÉΓòÉΓòÉ
  1347.  
  1348. The Automatic horizontal scroll option will keep the cursor horizontally in the 
  1349. Pmcomm window. 
  1350.  
  1351.  
  1352. ΓòÉΓòÉΓòÉ 8.7.8. Retain Dialing Dialog's Position ΓòÉΓòÉΓòÉ
  1353.  
  1354. The retain dialing dialog's position option will make Pmcomm restore the last 
  1355. position of the dialing dialog each time it is invoked. If this option is not 
  1356. selected then OS/2 will decide where to place the dialog boxes. 
  1357.  
  1358.  
  1359. ΓòÉΓòÉΓòÉ 8.7.9. Retain Transfer Dialog's Position ΓòÉΓòÉΓòÉ
  1360.  
  1361. The retain transfer dialog's position option will make Pmcomm restore the last 
  1362. position of the transfer dialog each time it is invoked. If this option is not 
  1363. selected then OS/2 will decide where to place the dialog boxes. 
  1364.  
  1365.  
  1366. ΓòÉΓòÉΓòÉ 8.7.10. Show Dial Message Box ΓòÉΓòÉΓòÉ
  1367.  
  1368. The Show Dial Message Box option makes Pmcomm display a message box and beeps 
  1369. at the user, when Pmcomm obtains a remote connection, until the OK button is 
  1370. pressed. This will make sure you notice that Pmcomm has a remote connection. 
  1371.  
  1372.  
  1373. ΓòÉΓòÉΓòÉ 8.7.11. Local Echo On ΓòÉΓòÉΓòÉ
  1374.  
  1375. The local echo on option will make Pmcomm echo all keystrokes to the local 
  1376. screen as well as to the remote computer. 
  1377.  
  1378.  
  1379. ΓòÉΓòÉΓòÉ 8.7.12. Turn Sound On ΓòÉΓòÉΓòÉ
  1380.  
  1381. The turn sound on option will make Pmcomm alert the user when certain functions 
  1382. have been completed. The sound must also be turned on in OS/2 for this option 
  1383. to work. This can be done through the control panel. 
  1384.  
  1385.  
  1386. ΓòÉΓòÉΓòÉ 8.8. Status Line ΓòÉΓòÉΓòÉ
  1387.  
  1388. This option will activate Pmcomm's Status Line. The Status Line allows you, at 
  1389. a glance, to view which options are currently running. 
  1390.  
  1391. Phone Icon 
  1392.  
  1393. There are many options that can be accessed by the Phone Icon. If the telephone 
  1394. is on-hook (hung up) and you click on the icon, Pmcomm will dial any numbers 
  1395. that you have selected in the dialing directory. If there aren't any numbers 
  1396. selected, Pmcomm will "pop" up the dialing directory. 
  1397.  
  1398. If you select a dialing directory in File Manager and hold down the right mouse 
  1399. button you can drag the dialing directory to the phone icon. Once the button is 
  1400. released over the phone icon, Pmcomm will dial any selected numbers. If there 
  1401. aren't any numbers selected, Pmcomm will "pop" up the dialing directory. 
  1402.  
  1403. Once online the phone icon will be taken off-hook. If the phone is off-hook and 
  1404. you click on the icon Pmcomm will hang-up. If Monitor DCD is turned off and you 
  1405. click on the icon, Pmcomm will dial any selected numbers in the dialing 
  1406. directory. If there aren't any numbers selected, Pmcomm will "pop" up the 
  1407. dialing directory. 
  1408.  
  1409. If Monitor DCD is turned off the telephone will appear with a question mark 
  1410. imposed over the top of it. 
  1411.  
  1412. Disk Drive Icon 
  1413.  
  1414. The Disk Drive Icon allows a quick and easy way to turn the Capture option on 
  1415. and off. If the disk drive icon light is green and you click on the icon Pmcomm 
  1416. will will then prompt you for the filename of the capture file. If the disk 
  1417. drive icon light is red Pmcomm is already executing the Capture command. If you 
  1418. click on the icon while the disk drive icon light is red, Pmcomm will cancel 
  1419. the Capture command. 
  1420.  
  1421. Log Icon 
  1422.  
  1423. By clicking on the log icon, Pmcomm will turn logging on. When logging is on, 
  1424. the log will appear with logging equipment (cross-cut saw and an axe), if you 
  1425. click on this icon Pmcomm will turning logging off. 
  1426.  
  1427. Printer Icon 
  1428.  
  1429. By clicking on the Printer Icon you can print any selected text. If there isn't 
  1430. any selected text, Pmcomm will execute the Print Continuous command. Clicking 
  1431. on the icon again will turn the Print Continuous command off. 
  1432.  
  1433. Generator Icon 
  1434.  
  1435. Clicking on the Generator Icon will turn on the Script Generator. Pmcomm will 
  1436. then prompt you for a filename for the script. If you click on the icon again, 
  1437. Pmcomm will turn off the Script Generator. The Generator Icon will have 
  1438. lightning bolts about it when a script is being generated. 
  1439.  
  1440. Book Icon 
  1441.  
  1442. Clicking on the the Book Icon will execute a script. If Pmcomm is executing a 
  1443. script, clicking on the icon will cancel the script. You can also use the drag 
  1444. and drop feature of Pmcomm to select any executable file (extensions .exe, .cmd 
  1445. and .scr) from the File Manager and executing that file by dragging and 
  1446. dropping the file on the Book Icon. 
  1447.  
  1448. Com Port Statistics 
  1449.  
  1450. This line in the Status Line shows which com port you are using, the baud rate, 
  1451. data bits, parity, and stop bits that Pmcomm is currently using. Clicking on 
  1452. this line with a mouse will "pop" up the port setup dialog box. 
  1453.  
  1454. Elapsed Timer 
  1455.  
  1456. The Status Line also has an elapsed timer that starts as soon as you are 
  1457. connected to another computer. The timer displays the elapsed time in hours and 
  1458. minutes. You may also set two warning levels. The first will change the connect 
  1459. time to yellow and the second level will turn the connect time red. These 
  1460. warning levels are useful to keep track of how of the time you are connected to 
  1461. a remote computer. The elapsed timer will only be displayed if Monitor DCD is 
  1462. turned on. If Monitor DCD is turned off the time of day will be displayed. 
  1463. Clicking on this line will toggle between the time of day and the connect time. 
  1464. The of day will be displayed as default. 
  1465.  
  1466.  
  1467. ΓòÉΓòÉΓòÉ 8.8.1. Show Status Line ΓòÉΓòÉΓòÉ
  1468.  
  1469. The "Show status line" option will display Pmcomm's Status Line at the bottom 
  1470. of the Pmcomm window. For more information see Status_Line. 
  1471.  
  1472.  
  1473. ΓòÉΓòÉΓòÉ 8.8.2. Connect time for first warning ΓòÉΓòÉΓòÉ
  1474.  
  1475. After the amount of time specified in this option expires, Pmcomm will turn the 
  1476. connect time yellow. The time must be specified in the hh:mm format. 
  1477.  
  1478.  
  1479. ΓòÉΓòÉΓòÉ 8.8.3. Connect time for second warning ΓòÉΓòÉΓòÉ
  1480.  
  1481. After the amount of time specified in this option expires, Pmcomm will turn the 
  1482. connect time red. The time must be specified in the hh:mm format. 
  1483.  
  1484.  
  1485. ΓòÉΓòÉΓòÉ 8.9. Terminal ΓòÉΓòÉΓòÉ
  1486.  
  1487. Terminal allows you to select which emulation you wish to use. There are also 
  1488. some options for the different emulations. 
  1489.  
  1490.  
  1491. ΓòÉΓòÉΓòÉ 8.9.1. TTY emulation ΓòÉΓòÉΓòÉ
  1492.  
  1493. The TTY emulation makes Pmcomm act as a teletype device. Generally this is the 
  1494. least used emulation, however, it is also the fastest. The reason for this is 
  1495. that there are very few special commands that Pmcomm has to process. None of 
  1496. the special ANSI control codes are processed. 
  1497.  
  1498.  
  1499. ΓòÉΓòÉΓòÉ 8.9.2. ANSI emulation ΓòÉΓòÉΓòÉ
  1500.  
  1501. The ANSI emulation is probably the most used. It will execute the special ANSI 
  1502. screen control commands. This allows the remote program to be able to clear the 
  1503. screen, position the cursor and change the colors. There are other screen 
  1504. control commands but these are the most commonly used ones. There are also 
  1505. options to have Pmcomm ignore the ANSI color changes so that you can use the 
  1506. colors you want, instead of the ones the remote computer uses, and to send the 
  1507. ANSI cursor position commands with the arrow keys. When using the ANSI 
  1508. emulation you can also have Pmcomm strip off the ANSI commands before saving 
  1509. the information into a capture file. This will make the capture file much more 
  1510. readable. You can also change the length of the page, to correspond to the size 
  1511. of your screen. The default for the ANSI page length is 25 lines, and under 
  1512. most cases should be left there. 
  1513.  
  1514.  
  1515. ΓòÉΓòÉΓòÉ 8.9.3. VT100 and VT220 emulation ΓòÉΓòÉΓòÉ
  1516.  
  1517. In VT100 and VT220 emulation, some keys have been changed to try to more 
  1518. closely emulate the VT100 keyboard. F1-F4 are now the PF keys. Because of this 
  1519. the F1 key will not display the normal help and F3 will not exit the program. 
  1520. The PF keys will send the following characters: 
  1521.  
  1522.    F1 = ESCOP 
  1523.  
  1524.    F2 = ESCOQ 
  1525.  
  1526.    F3 = ESCOR 
  1527.  
  1528.    F4 = ESCOS 
  1529.  
  1530.  Where ESC is equal to the ASCII character hex 1B. All other hot keys will not 
  1531.  be available. When the num lock key is off, the numerical key pad will be in 
  1532.  the application mode. If you are connecting to a VT220 Host you can use these 
  1533.  keys to send the VT220 PF key values. For example pressing the 1 on the 
  1534.  numeric key pad will send the VT220 PF1 key. Pressing the 3 on the numeric key 
  1535.  pad will send the VT220 PF3 key, and so on. With the num lock on the numbers 
  1536.  will be sent. The plus key has been re-mapped to be a comma, again to be 
  1537.  compatible with the VT100 keyboard. In most cases it is best to tell the host 
  1538.  that you are a VT220 terminal. The VT100 emulation of Pmcomm supports most of 
  1539.  the VT220 commands, and will allow you to use the extra support that VT220 
  1540.  allows. If you tell the host that you are a VT220 terminal, for example, you 
  1541.  will be able to use the Ctrl-R for reset and the Ctrl-C for clear. These are 
  1542.  just a couple of examples of the additional benefit that you can get from 
  1543.  VT220. 
  1544.  
  1545.  The send DEL for backspace option is the default for many VT100 keyboards. 
  1546.  When this is selected, Pmcomm will send a hex 7f character instead of the 
  1547.  backspace character. You can still send a backspace character by pressing 
  1548.  Ctrl-Backspace. This allows you to have both these characters available at one 
  1549.  time. 
  1550.  
  1551.  The translate CR/LF for LF option will act as if it received a carriage return 
  1552.  and a line feed, each time it receives a line feed. 
  1553.  
  1554.  The line wrap option will make Pmcomm wrap the line if the line is longer than 
  1555.  the page width. If this option is off the line will be truncated. 
  1556.  
  1557.  The Insert mode option will allow you to insert characters into the middle of 
  1558.  a line and the rest of the line will be shifted to the right to allow room for 
  1559.  the new characters. 
  1560.  
  1561.  The cursor visible option determines if the cursor will be shown on the screen 
  1562.  or not. 
  1563.  
  1564.  The Screen origin relative option determines if Pmcomm will keep everything on 
  1565.  a 25 line screen or allow it to use the scroll back buffer. In most cases this 
  1566.  option should be selected. 
  1567.  
  1568.  The last two options are to set the width of the screen. Either 80 or 132 
  1569.  columns are supported. 
  1570.  
  1571.  Most of these options can be changed from the host. The default setup should 
  1572.  work for most applications, and the host can change the options to meet 
  1573.  different needs. 
  1574.  
  1575.  
  1576. ΓòÉΓòÉΓòÉ 8.10. Chat ΓòÉΓòÉΓòÉ
  1577.  
  1578. This sets up Pmcomm to "chat" when connected to another computer that is also 
  1579. running Pmcomm. This mode automatically sets Pmcomm to echo characters locally 
  1580. and to send a carriage return line feed combination when the enter key is 
  1581. pressed. 
  1582.  
  1583.  
  1584. ΓòÉΓòÉΓòÉ 9. Macros ΓòÉΓòÉΓòÉ
  1585.  
  1586. Allows you to pick, with a mouse, the macro you wish to send. Can also be 
  1587. selected with an Alt+corresponding number keystroke. Pmcomm allows you to set 
  1588. up ten different macros. Scripts can be executed from macros by using the shell 
  1589. command. An example of this would be: 
  1590.  
  1591. shell("c:\pmcomm\plane.cmd"); 
  1592.  
  1593. This would execute the REXX script called plane.cmd. This allows you a quick 
  1594. and easy way to execute your most popular scripts. 
  1595.  
  1596.  
  1597. ΓòÉΓòÉΓòÉ 10. Script Syntax ΓòÉΓòÉΓòÉ
  1598.  
  1599. Both, internal and REXX, syntaxes are described in this section. 
  1600.  
  1601.  
  1602. ΓòÉΓòÉΓòÉ 10.1. REXX Functions ΓòÉΓòÉΓòÉ
  1603.  
  1604. This describes the function calls that are available in the rxpmcomm.dll. 
  1605. Before using any of these calls you must include these lines in your REXX 
  1606. program: 
  1607.  
  1608.  Call RxFuncadd " init_dll ","RxPmcomm","init_dll" 
  1609.  
  1610.  Parse arg port portname screen_handle dde_output dde_input semaphore 
  1611.  
  1612.  Call init_dll 
  1613.  
  1614.  The rxpmcomm.dll must reside in a directory listed in your LIBPATH statement 
  1615.  in config.sys. One of the default directories is \os2\dll. These functions are 
  1616.  designed to make it easier to preform tasks necessary when writing scripts for 
  1617.  asynch communications. To invoke a REXX program from a script, use the shell( 
  1618.  ) function in the script. The format of the shell function is as follows: 
  1619.  
  1620.  shell("\path\filename.cmd"); 
  1621.  where filename.cmd is your REXX program. These functions have been tested with 
  1622.  the REXX that comes with OS/2 1.2 EE, but should work with any totally 
  1623.  function compatible REXX. There are some sample REXX programs included. 
  1624.  
  1625.  
  1626. ΓòÉΓòÉΓòÉ 10.1.1. init_dll ΓòÉΓòÉΓòÉ
  1627.  
  1628. The init_dll function will register the functions in the rxpmcomm.dll, with 
  1629. REXX. This function must be called before any other rxpmcomm.dll function is 
  1630. called. The RxFuncadd must be called before init_dll to register this function 
  1631. with REXX. 
  1632.  
  1633.  
  1634. ΓòÉΓòÉΓòÉ 10.1.2. os2_shell ΓòÉΓòÉΓòÉ
  1635.  
  1636.  os2_shell port,port 
  1637.  
  1638.  Example 
  1639.  
  1640.  Call os2_shell port,port 
  1641.  
  1642.  Description 
  1643.  
  1644.  This command will allow a caller to shell to OS/2, remotely. The first 
  1645.  parameter is the input handle and the second is the output handle. In the 
  1646.  example above, the command will receive and send the information to the com 
  1647.  port. 
  1648.  
  1649.  Returns 
  1650.  
  1651.  1 if successful and 0 if unsuccessful. 
  1652.  
  1653.  
  1654. ΓòÉΓòÉΓòÉ 10.1.3. set_download_path ΓòÉΓòÉΓòÉ
  1655.  
  1656.  set_download_path directory,dde_output 
  1657.  
  1658.  Example 
  1659.  
  1660.  Call set_download_path "c:\pmcomm",dde_output 
  1661.  
  1662.  Description 
  1663.  
  1664.  The above example will set the download path to c:\pmcomm. This will store all 
  1665.  of the files received in that directory. The dde_output, is the dde_output 
  1666.  value passed on the command line. 
  1667.  
  1668.  Returns 
  1669.  
  1670.  1 if successful and 0 if unsuccessful. 
  1671.  
  1672.  
  1673. ΓòÉΓòÉΓòÉ 10.1.4. setcom ΓòÉΓòÉΓòÉ
  1674.  
  1675.  setcom baud,parity,data_bit,stop_bits,port 
  1676.  
  1677.  Example 
  1678.  
  1679.  Call setcom "2400","N","8","1",port 
  1680.  
  1681.  Description 
  1682.  
  1683.  This would set the com port to 2400 baud, no parity, 8 data bits, 1 stop bit. 
  1684.  Baud can be from 300 to 19200 with the standard OS/2 device driver. Parity can 
  1685.  be N(none), O(odd), E(even), M(marked), or S(spaced). Data bits can be 5, 6, 7 
  1686.  or 8. Stop bits can be 1 or 2 (2 can only be used with 5 data bits). If a 
  1687.  parameter is an empty string (i.e. setcom "","E","7","1",port) this leaves the 
  1688.  baud at the current rate but set the line characteristics to 7, Even, 1. 
  1689.  
  1690.  Returns 
  1691.  
  1692.  1 if successful and 0 if unsuccessful. 
  1693.  
  1694.  
  1695. ΓòÉΓòÉΓòÉ 10.1.5. sendb ΓòÉΓòÉΓòÉ
  1696.  
  1697.  sendb length,port 
  1698.  
  1699.  Example 
  1700.  
  1701.  Call sendb "300",port 
  1702.  
  1703.  Description 
  1704.  
  1705.  This call sends a break signal a certain time in milliseconds. The above 
  1706.  example would send a break signal for 300 milliseconds. This call is mostly 
  1707.  used to establish direct connects (not using a modem). Three hundred 
  1708.  milliseconds should be okay for most situations. 
  1709.  
  1710.  Returns 
  1711.  
  1712.  1 if successful and 0 if unsuccessful. 
  1713.  
  1714.  
  1715. ΓòÉΓòÉΓòÉ 10.1.6. dcd ΓòÉΓòÉΓòÉ
  1716.  
  1717.  dcd port 
  1718.  
  1719.  Example 
  1720.  
  1721.  Call dcd port 
  1722.  
  1723.  Description 
  1724.  
  1725.  This call checks to see if there is a carrier detected on the modem. You can 
  1726.  use this to see if Pmcomm is still online to a remote computer. For this 
  1727.  information to be correct the modem must support dcd and the modem must be 
  1728.  configured to support dcd. To find the command refer to your owner's manual. 
  1729.  
  1730.  Returns 
  1731.  
  1732.  1 if carrier detected and 0 if no carrier. 
  1733.  
  1734.  
  1735. ΓòÉΓòÉΓòÉ 10.1.7. char_avail ΓòÉΓòÉΓòÉ
  1736.  
  1737.  char_avail port 
  1738.  
  1739.  Example 
  1740.  
  1741.  Call char_avail port 
  1742.  
  1743.  Description 
  1744.  
  1745.  This call checks to see how many characters are available in the device 
  1746.  driver's receive buffer. You can use this function to check to see if the 
  1747.  device driver has received any characters from the com port. 
  1748.  
  1749.  Returns 
  1750.  
  1751.  Number of characters in device driver receive queue. 
  1752.  
  1753.  
  1754. ΓòÉΓòÉΓòÉ 10.1.8. read_timeout ΓòÉΓòÉΓòÉ
  1755.  
  1756.  read_timeout timeout,port 
  1757.  
  1758.  Example 
  1759.  
  1760.  Call read_timeout 20000,port 
  1761.  
  1762.  Description 
  1763.  
  1764.  This call sets the length of time (in milliseconds) that wait_for, wait_fore, 
  1765.  Get_ch will wait for a character from the com port. The above example will 
  1766.  make the functions wait for 20 seconds. 
  1767.  
  1768.  Returns 
  1769.  
  1770.  1 if successful and 0 if unsuccessful. 
  1771.  
  1772.  
  1773. ΓòÉΓòÉΓòÉ 10.1.9. Get_ch ΓòÉΓòÉΓòÉ
  1774.  
  1775.  Get_ch port 
  1776.  
  1777.  Example 
  1778.  
  1779.  Call Get_ch port 
  1780.  
  1781.  Description 
  1782.  
  1783.  This call will get a character from the com port. If no character is available 
  1784.  by the time set with read_timeout the function will return with a value of -1. 
  1785.  Otherwise the function will return with the character read. 
  1786.  
  1787.  Returns 
  1788.  
  1789.  char value if successful and -1 if unsuccessful. 
  1790.  
  1791.  
  1792. ΓòÉΓòÉΓòÉ 10.1.10. ring_detect ΓòÉΓòÉΓòÉ
  1793.  
  1794.  ring_detect port 
  1795.  
  1796.  Example 
  1797.  
  1798.  Call ring_detect port 
  1799.  
  1800.  Description 
  1801.  
  1802.  This call can be used to inform a program if the phone is ringing. 
  1803.  
  1804.  Returns 
  1805.  
  1806.  1 if ring detected, 0 if no ring, and 2 if invalid number of parameters. 
  1807.  
  1808.  
  1809. ΓòÉΓòÉΓòÉ 10.1.11. drop_dtr ΓòÉΓòÉΓòÉ
  1810.  
  1811.  drop_dtr port 
  1812.  
  1813.  Example 
  1814.  
  1815.  Call drop_dtr port 
  1816.  
  1817.  Description 
  1818.  
  1819.  This call is usually used to make a modem hang up. The modem must be 
  1820.  configured to allow this. To find the command for your modem, check your 
  1821.  owner's manual. Dtr needs to be dropped for about 2-3 seconds to make sure the 
  1822.  modem sees the drop in DTR. After that length of time raise_dtr can be called 
  1823.  to bring DTR back up. On a Hayes 2400 the above command will also keep the 
  1824.  modem from doing an auto answer until you raise_dtr again. 
  1825.  
  1826.  Returns 
  1827.  
  1828.  1 if successful and 0 if unsuccessful. 
  1829.  
  1830.  
  1831. ΓòÉΓòÉΓòÉ 10.1.12. raise_dtr ΓòÉΓòÉΓòÉ
  1832.  
  1833.  raise_dtr port 
  1834.  
  1835.  Example 
  1836.  
  1837.  Call raise_dtr port 
  1838.  
  1839.  Description This call is usually used after drop_dtr to allow the modem to 
  1840.  process commands and enable it to answer the phone. 
  1841.  
  1842.  Returns 
  1843.  
  1844.  1 if successful and 0 if unsuccessful. 
  1845.  
  1846.  
  1847. ΓòÉΓòÉΓòÉ 10.1.13. Wait_for (REXX) ΓòÉΓòÉΓòÉ
  1848.  
  1849.  Wait_for string,string,string...,port 
  1850.  
  1851.  Example 
  1852.  
  1853.  Call Wait_for "first name?","last name?",port 
  1854.  
  1855.  Description 
  1856.  
  1857.  The above example would wait for either first name?, or last name?, from the 
  1858.  com port. The function will return the index of the  string that matched. For 
  1859.  example if the Wait_for received last name?, then the result would be 2. You 
  1860.  can specify any number of strings depending on memory available. 
  1861.  
  1862.  Returns 
  1863.  
  1864.  Index of matched string or zero if timeout or error. 
  1865.  
  1866.  
  1867. ΓòÉΓòÉΓòÉ 10.1.14. Wait_fore ΓòÉΓòÉΓòÉ
  1868.  
  1869.  Wait_fore string,string,string...,port,screen_handle 
  1870.  
  1871.  Example 
  1872.  
  1873.  Call Wait_fore "first name?","last name?",port,screen_handle 
  1874.  
  1875.  Call Wait_fore "first name?",port,1 
  1876.  
  1877.  Call Wait_fore "first name?","raw",port,1 
  1878.  
  1879.  Description 
  1880.  
  1881.  The first example would wait for either first name?, or last name?, from the 
  1882.  com port and echo the out_put to the Pmcomm screen. The second example would 
  1883.  do the same except it would write the out put to StdOut(value 1) which would 
  1884.  be the REXX screen. The third example would look for an exact match coming 
  1885.  accross the com port, including any ANSI sequences. 
  1886.  
  1887.  Returns 
  1888.  
  1889.  Index of matched string or zero if timeout or error. 
  1890.  
  1891.  
  1892. ΓòÉΓòÉΓòÉ 10.1.15. Put_s ΓòÉΓòÉΓòÉ
  1893.  
  1894.  Put_s string,port 
  1895.  
  1896.  Example 
  1897.  
  1898.  Call Put_s "first name",port 
  1899.  
  1900.  Description 
  1901.  
  1902.  This call will send string out to port. In the above example first name will 
  1903.  be sent to the com port. If port is not specified then 'string' will be sent 
  1904.  to the REXX screen. If screen_handle is specified instead of port then the 
  1905.  string will be sent to the Pmcomm screen. 
  1906.  
  1907.  Returns 
  1908.  
  1909.  Length of string actually written. 
  1910.  
  1911.  
  1912. ΓòÉΓòÉΓòÉ 10.1.16. Sleep (REXX) ΓòÉΓòÉΓòÉ
  1913.  
  1914.  Sleep time 
  1915.  
  1916.  Example 
  1917.  
  1918.  Call Sleep "1000" 
  1919.  
  1920.  Description 
  1921.  
  1922.  This call will delay the program for the amount of milliseconds specified. The 
  1923.  above example will delay the computer for one second. 
  1924.  
  1925.  Returns 
  1926.  
  1927.  Unconditionally 0. 
  1928.  
  1929.  
  1930. ΓòÉΓòÉΓòÉ 10.1.17. beep ΓòÉΓòÉΓòÉ
  1931.  
  1932.  beep frequency,duration 
  1933.  
  1934.  Example 
  1935.  
  1936.  Call beep 495,100 
  1937.  
  1938.  Description 
  1939.  
  1940.  The above example will beep the speaker. 
  1941.  
  1942.  Returns 
  1943.  
  1944.  1 if successful and 0 if unsuccessful. 
  1945.  
  1946.  
  1947. ΓòÉΓòÉΓòÉ 10.1.18. get_cursor_position ΓòÉΓòÉΓòÉ
  1948.  
  1949.  get_cursor_position axis,dde_output,dde_input 
  1950.  
  1951.  Example 
  1952.  
  1953.  Call get_cursor_position "column",dde_output,dde_input 
  1954.  
  1955.  Description 
  1956.  
  1957.  The above will return the column that the cursor is in. To get the current 
  1958.  row, you would issue this call with "row" instead of "column". The row value 
  1959.  that is returned is relative to the top of the scroll back buffer. The top row 
  1960.  of the scroll back buffer and the first column would be 0,0. 
  1961.  
  1962.  Returns 
  1963.  
  1964.  Cursor position. 
  1965.  
  1966.  
  1967. ΓòÉΓòÉΓòÉ 10.1.19. get_char_at ΓòÉΓòÉΓòÉ
  1968.  
  1969.  get_char_at row,column,number,dde_output,dde_input 
  1970.  
  1971.  Example 
  1972.  
  1973.  Call get_char_at 0,0,80,dde_output,dde_input 
  1974.  
  1975.  Description 
  1976.  
  1977.  The above will return the characters at the first line of the scroll back 
  1978.  buffer. It will return 80 characters, even if the characters are spaces. The 
  1979.  maximum number of characters that can be returned at one time is 200. 
  1980.  
  1981.  Returns 
  1982.  
  1983.  Character(s) at the specified row and column. 
  1984.  
  1985.  
  1986. ΓòÉΓòÉΓòÉ 10.1.20. REXX capture_on ΓòÉΓòÉΓòÉ
  1987.  
  1988.  capture_on filename,dde_output,dde_input 
  1989.  
  1990.  Example 
  1991.  
  1992.  Call capture_on "c:\pmcomm\cap.txt", dde_output, dde_input 
  1993.  
  1994.  Description 
  1995.  
  1996.  The above will turn capture on so that everything will be saved into a file. 
  1997.  If you have strip ANSI configured in Pmcomm then the text only will be saved 
  1998.  in ANSI, VT100, and VT220 terminal emulations. If the file already exists it 
  1999.  will be overwritten. 
  2000.  
  2001.  Returns 
  2002.  
  2003.  1 if successful and 0 if not. 
  2004.  
  2005.  
  2006. ΓòÉΓòÉΓòÉ 10.1.21. REXX capture_off ΓòÉΓòÉΓòÉ
  2007.  
  2008.  capture_off dde_output,dde_input 
  2009.  
  2010.  Example 
  2011.  
  2012.  Call capture_off dde_output,dde_input 
  2013.  
  2014.  Description 
  2015.  
  2016.  The above will turn capture off. The capture may have been started from a 
  2017.  script or from the menu. 
  2018.  
  2019.  Returns 
  2020.  
  2021.  1 if successful and 0 if not. 
  2022.  
  2023.  
  2024. ΓòÉΓòÉΓòÉ 10.1.22. xmodem_send ΓòÉΓòÉΓòÉ
  2025.  
  2026.  xmodem_send filename,dde_output,dde_input 
  2027.  
  2028.  Example 
  2029.  
  2030.  Call xmodem_send "filename.ext",dde_output,dde_input 
  2031.  
  2032.  Description 
  2033.  
  2034.  This call will invoke the Xmodem_CRC send routine, built into Pmcomm. Once 
  2035.  issued the call will not return until the transfer either finishes or is 
  2036.  aborted. Pmcomm will show the normal transfer dialog that it does when 
  2037.  uploading from the menu. 
  2038.  
  2039.  Returns 
  2040.  
  2041.  1 if call is successful and 0 if unsuccessful. 
  2042.  
  2043.  
  2044. ΓòÉΓòÉΓòÉ 10.1.23. xmodem_receive ΓòÉΓòÉΓòÉ
  2045.  
  2046.  xmodem_receive filename,dde_output,dde_input 
  2047.  
  2048.  Example 
  2049.  
  2050.  Call xmodem_receive "filename.ext",dde_output,dde_input 
  2051.  
  2052.  Description 
  2053.  
  2054.  This call will invoke the Xmodem_CRC receive routine, built into Pmcomm. Once 
  2055.  issued the call will not return until the transfer either finishes or is 
  2056.  aborted. Pmcomm will show the normal transfer dialog that it does when 
  2057.  downloading from the menu. The file will be downloaded into the download 
  2058.  directory. The file name specified must not include a path. 
  2059.  
  2060.  Returns 
  2061.  
  2062.  1 if call is successful and 0 if unsuccessful. 
  2063.  
  2064.  
  2065. ΓòÉΓòÉΓòÉ 10.1.24. xmodem_chk_send ΓòÉΓòÉΓòÉ
  2066.  
  2067.  xmodem_chk_send filename,dde_output,dde_input 
  2068.  
  2069.  Example 
  2070.  
  2071.  Call xmodem_chk_send "filename.ext",dde_output,dde_input 
  2072.  
  2073.  Description 
  2074.  
  2075.  This call will invoke the Xmodem_Checksum send routine, built into Pmcomm. 
  2076.  Once issued the call will not return until the transfer either finishes or is 
  2077.  aborted. Pmcomm will show the normal transfer dialog that it does when 
  2078.  uploading from the menu. 
  2079.  
  2080.  Returns 
  2081.  
  2082.  1 if call is successful and 0 if unsuccessful. 
  2083.  
  2084.  
  2085. ΓòÉΓòÉΓòÉ 10.1.25. xmodem_chk_receive ΓòÉΓòÉΓòÉ
  2086.  
  2087.  xmodem_chk_receive filename,dde_output,dde_input 
  2088.  
  2089.  Example 
  2090.  
  2091.  Call xmodem_receive "filename.ext",dde_output,dde_input 
  2092.  
  2093.  Description 
  2094.  
  2095.  This call will invoke the Xmodem_Checksum receive routine, built into Pmcomm. 
  2096.  Once issued the call will not return until the transfer either finishes or is 
  2097.  aborted. Pmcomm will show the normal transfer dialog that it does when 
  2098.  downloading from the menu. The file will be downloaded into the download 
  2099.  directory. The file name specified must not include a path. 
  2100.  
  2101.  Returns 
  2102.  
  2103.  1 if call is successful and 0 if unsuccessful. 
  2104.  
  2105.  
  2106. ΓòÉΓòÉΓòÉ 10.1.26. xmodem_1k_send ΓòÉΓòÉΓòÉ
  2107.  
  2108.  xmodem_1k_send filename,dde_output,dde_input 
  2109.  
  2110.  Example 
  2111.  
  2112.  Call xmodem_1k_send "filename.ext",dde_output,dde_input 
  2113.  
  2114.  Description 
  2115.  
  2116.  This call will invoke the 1K-Xmodem send routine, built into Pmcomm. Once 
  2117.  issued the call will not return until the transfer either finishes or is 
  2118.  aborted. Pmcomm will show the normal transfer dialog that it does when 
  2119.  uploading from the menu. 
  2120.  
  2121.  Returns 
  2122.  
  2123.  1 if call is successful and 0 if unsuccessful. 
  2124.  
  2125.  
  2126. ΓòÉΓòÉΓòÉ 10.1.27. xmodem_1k_receive ΓòÉΓòÉΓòÉ
  2127.  
  2128.  xmodem_1k_receive filename,dde_output,dde_input 
  2129.  
  2130.  Example 
  2131.  
  2132.  Call xmodem_1k_receive "filename.ext",dde_output,dde_input 
  2133.  
  2134.  Description 
  2135.  
  2136.  This call will invoke the 1K-Xmodem receive routine, built into Pmcomm. Once 
  2137.  issued the call will not return until the transfer either finishes or is 
  2138.  aborted. Pmcomm will show the normal transfer dialog that it does when 
  2139.  downloading from the menu. The file will be downloaded into the download 
  2140.  directory. The file name specified must not include a path. 
  2141.  
  2142.  Returns 
  2143.  
  2144.  1 if call is successful and 0 if unsuccessful. 
  2145.  
  2146.  
  2147. ΓòÉΓòÉΓòÉ 10.1.28. ymodem_send ΓòÉΓòÉΓòÉ
  2148.  
  2149.  ymodem_send filename,dde_output,dde_input 
  2150.  
  2151.  Example 
  2152.  
  2153.  Call ymodem_send "filename.ext",dde_output,dde_input 
  2154.  
  2155.  Description 
  2156.  
  2157.  This call will invoke the Ymodem send routine, built into Pmcomm. Once issued 
  2158.  the call will not return until the transfer either finishes or is aborted. 
  2159.  Pmcomm will show the normal transfer dialog that it does when uploading from 
  2160.  the menu. You may send multiple files by specifying more than file name. 
  2161.  
  2162.  Returns 
  2163.  
  2164.  Number of files transferred. 
  2165.  
  2166.  
  2167. ΓòÉΓòÉΓòÉ 10.1.29. ymodem_receive ΓòÉΓòÉΓòÉ
  2168.  
  2169.  ymodem_receive dde_output,dde_input 
  2170.  
  2171.  Example 
  2172.  
  2173.  Call ymodem_receive dde_output,dde_input 
  2174.  
  2175.  Description 
  2176.  
  2177.  This call will invoke the Ymodem receive routine, built into Pmcomm. Once 
  2178.  issued the call will not return until the transfer either finishes or is 
  2179.  aborted. Pmcomm will show the normal transfer dialog that it does when 
  2180.  downloading from the menu. The file will be downloaded into the download 
  2181.  directory. This one call will receive multiple files. The filenames used are 
  2182.  the ones sent from the remote computer. 
  2183.  
  2184.  Returns 
  2185.  
  2186.  Number of files transferred. 
  2187.  
  2188.  
  2189. ΓòÉΓòÉΓòÉ 10.1.30. ymodemg_send ΓòÉΓòÉΓòÉ
  2190.  
  2191.  ymodemg_send filename,dde_output,dde_input 
  2192.  
  2193.  Example 
  2194.  
  2195.  Call ymodemg_send "filename.ext",dde_output,dde_input 
  2196.  
  2197.  Description 
  2198.  
  2199.  This call will invoke the Ymodem-g send routine, built into Pmcomm. Once 
  2200.  issued the call will not return until the transfer either finishes or is 
  2201.  aborted. Pmcomm will show the normal transfer dialog that it does when 
  2202.  uploading from the menu. You may send multiple files by specifying more than 
  2203.  file name. 
  2204.  
  2205.  Returns 
  2206.  
  2207.  Number of files transferred. 
  2208.  
  2209.  
  2210. ΓòÉΓòÉΓòÉ 10.1.31. ymodemg_receive ΓòÉΓòÉΓòÉ
  2211.  
  2212.  ymodemg_receive dde_output,dde_input 
  2213.  
  2214.  Example 
  2215.  
  2216.  Call ymodemg_receive dde_output,dde_input 
  2217.  
  2218.  Description 
  2219.  
  2220.  This call will invoke the Ymodem-g receive routine, built into Pmcomm. Once 
  2221.  issued the call will not return until the transfer either finishes or is 
  2222.  aborted. Pmcomm will show the normal transfer dialog that it does when 
  2223.  downloading from the menu. The file will be downloaded into the download 
  2224.  directory. This one call will receive multiple files. The filenames used are 
  2225.  the ones sent from the remote computer. 
  2226.  
  2227.  Returns 
  2228.  
  2229.  Number of files transferred. 
  2230.  
  2231.  
  2232. ΓòÉΓòÉΓòÉ 10.1.32. zmodem_send ΓòÉΓòÉΓòÉ
  2233.  
  2234.  zmodem_send filename,dde_output,dde_input 
  2235.  
  2236.  Example 
  2237.  
  2238.  Call zmodem_send "filename.ext",dde_output,dde_input 
  2239.  
  2240.  Description 
  2241.  
  2242.  This call will invoke the Zmodem send routine, built into Pmcomm. Once issued 
  2243.  the call will not return until the transfer either finishes or is aborted. 
  2244.  Pmcomm will show the normal transfer dialog that it does when uploading from 
  2245.  the menu. You may send multiple files by specifying more than file name. 
  2246.  
  2247.  Returns 
  2248.  
  2249.  Number of files transferred. 
  2250.  
  2251.  
  2252. ΓòÉΓòÉΓòÉ 10.1.33. zmodem_receive ΓòÉΓòÉΓòÉ
  2253.  
  2254.  zmodem_receive dde_output,dde_input 
  2255.  
  2256.  Example 
  2257.  
  2258.  Call zmodem_receive dde_output,dde_input 
  2259.  
  2260.  Description 
  2261.  
  2262.  This call will invoke the Zmodem receive routine, built into Pmcomm. Once 
  2263.  issued the call will not return until the transfer either finishes or is 
  2264.  aborted. Pmcomm will show the normal transfer dialog that it does when 
  2265.  downloading from the menu. The file will be downloaded into the download 
  2266.  directory. This one call will receive multiple files. The filenames used are 
  2267.  the ones sent from the remote computer. 
  2268.  
  2269.  Returns 
  2270.  
  2271.  Number of files transferred. 
  2272.  
  2273.  
  2274. ΓòÉΓòÉΓòÉ 10.1.34. kermit_send ΓòÉΓòÉΓòÉ
  2275.  
  2276.  kermit_send filename,dde_output,dde_input 
  2277.  
  2278.  Example 
  2279.  
  2280.  Call kermit_send "filename.ext",dde_output,dde_input 
  2281.  
  2282.  Description 
  2283.  
  2284.  This call will invoke the Kermit send routine, built into Pmcomm. Once issued 
  2285.  the call will not return until the transfer either finishes or is aborted. 
  2286.  Pmcomm will show the normal transfer dialog that it does when uploading from 
  2287.  the menu. You may send multiple files by specifying more than file name. 
  2288.  
  2289.  Returns 
  2290.  
  2291.  Number of files transferred. 
  2292.  
  2293.  
  2294. ΓòÉΓòÉΓòÉ 10.1.35. kermit_receive ΓòÉΓòÉΓòÉ
  2295.  
  2296.  kermit_receive dde_output,dde_input 
  2297.  
  2298.  Example 
  2299.  
  2300.  Call kermit_receive dde_output,dde_input 
  2301.  
  2302.  Description 
  2303.  
  2304.  This call will invoke the Kermit receive routine, built into Pmcomm. Once 
  2305.  issued the call will not return until the transfer either finishes or is 
  2306.  aborted. Pmcomm will show the normal transfer dialog that it does when 
  2307.  downloading from the menu. The file will be downloaded into the download 
  2308.  directory. This one call will receive multiple files. The filenames used are 
  2309.  the ones sent from the remote computer. 
  2310.  
  2311.  Returns 
  2312.  
  2313.  Number of files transferred. 
  2314.  
  2315.  
  2316. ΓòÉΓòÉΓòÉ 10.1.36. ascii_send ΓòÉΓòÉΓòÉ
  2317.  
  2318.  ascii_send filename,dde_output,dde_input 
  2319.  
  2320.  Example 
  2321.  
  2322.  Call ascii_send "filename.ext",dde_output,dde_input 
  2323.  
  2324.  Description 
  2325.  
  2326.  This call will invoke the ASCII send routine, built into Pmcomm. Once issued 
  2327.  the call will not return until the transfer either finishes or is aborted. 
  2328.  Pmcomm will show the normal transfer dialog that it does when uploading from 
  2329.  the menu. 
  2330.  
  2331.  Returns 
  2332.  
  2333.  1 if call is successful and 0 if unsuccessful. 
  2334.  
  2335.  
  2336. ΓòÉΓòÉΓòÉ 10.1.37. ascii_receive ΓòÉΓòÉΓòÉ
  2337.  
  2338.  ascii_receive filename,dde_output,dde_input 
  2339.  
  2340.  Example 
  2341.  
  2342.  Call ascii_receive "filename.ext",dde_output,dde_input 
  2343.  
  2344.  Description 
  2345.  
  2346.  This call will invoke the ASCII receive routine, built into Pmcomm. Once 
  2347.  issued the call will not return until the transfer either finishes or is 
  2348.  aborted. Pmcomm will show the normal transfer dialog that it does when 
  2349.  downloading from the menu. The file will be downloaded into the download 
  2350.  directory. The file name specified must not include a path. 
  2351.  
  2352.  Returns 
  2353.  
  2354.  1 if call is successful and 0 if unsuccessful. 
  2355.  
  2356.  
  2357. ΓòÉΓòÉΓòÉ 10.1.38. cisb_send ΓòÉΓòÉΓòÉ
  2358.  
  2359.  cisb_send filename,dde_output,dde_input 
  2360.  
  2361.  Example 
  2362.  
  2363.  Call cisb_send "filename.ext",dde_output,dde_input 
  2364.  
  2365.  Description 
  2366.  
  2367.  This call will invoke the CISB send routine, built into Pmcomm. Once issued 
  2368.  the call will not return until the transfer either finishes or is aborted. 
  2369.  Pmcomm will show the normal transfer dialog that it does when uploading from 
  2370.  the menu. 
  2371.  
  2372.  Returns 
  2373.  
  2374.  1 if call is successful and 0 if unsuccessful. 
  2375.  
  2376.  
  2377. ΓòÉΓòÉΓòÉ 10.1.39. cisb_receive ΓòÉΓòÉΓòÉ
  2378.  
  2379.  cisb_receive filename,dde_output,dde_input 
  2380.  
  2381.  Example 
  2382.  
  2383.  Call cisb_receive "filename.ext",dde_output,dde_input 
  2384.  
  2385.  Description 
  2386.  
  2387.  This call will invoke the CISB receive routine, built into Pmcomm. Once issued 
  2388.  the call will not return until the transfer either finishes or is aborted. 
  2389.  Pmcomm will show the normal transfer dialog that it does when downloading from 
  2390.  the menu. The file will be downloaded into the download directory. The file 
  2391.  name specified must not include a path. 
  2392.  
  2393.  Returns 
  2394.  
  2395.  1 if call is successful and 0 if unsuccessful. 
  2396.  
  2397.  
  2398. ΓòÉΓòÉΓòÉ 10.2. Internal Functions ΓòÉΓòÉΓòÉ
  2399.  
  2400. These are script functions that are built into Pmcomm. 
  2401.  
  2402.  
  2403. ΓòÉΓòÉΓòÉ 10.2.1. wait_for (internal) ΓòÉΓòÉΓòÉ
  2404.  
  2405.  wait_for("string"); 
  2406.  
  2407.  This will wait until the word 'string' is received. One use of this is when 
  2408.  logging onto a BBS you can have it wait until prompted for a first name. 
  2409.  
  2410.  
  2411. ΓòÉΓòÉΓòÉ 10.2.2. puts ΓòÉΓòÉΓòÉ
  2412.  
  2413.  puts("string"); 
  2414.  
  2415.  This will send string to the comport. The 'C' language special character 
  2416.  '\r','\n','\b',and '\a' can also be used. 
  2417.  
  2418.  The \r means carriage return. 
  2419.  
  2420.  The \n means carriage return and line feed combination. 
  2421.  
  2422.  The \b means backspace. 
  2423.  
  2424.  The \a means alert (Pmcomm will beep). 
  2425.  
  2426.  
  2427. ΓòÉΓòÉΓòÉ 10.2.3. sleep (internal) ΓòÉΓòÉΓòÉ
  2428.  
  2429.  sleep(1000); 
  2430.  
  2431.  This will wait for the number of milliseconds specified. In this example it 
  2432.  would sleep for one second. 
  2433.  
  2434.  
  2435. ΓòÉΓòÉΓòÉ 10.2.4. call ΓòÉΓòÉΓòÉ
  2436.  
  2437.  call("filename"); 
  2438.  
  2439.  This allows you to nest scripts. If you put the name of the script that you 
  2440.  want to execute where it says filename, it will execute that script and then 
  2441.  continue. The limit on number of nested scripts is only by available stack 
  2442.  space. 
  2443.  
  2444.  
  2445. ΓòÉΓòÉΓòÉ 10.2.5. capture_on ΓòÉΓòÉΓòÉ
  2446.  
  2447.  capture_on("filename"); 
  2448.  
  2449.  Captures all screen output to a file. Replace filename with the name of the 
  2450.  file you want the output written to. The capture file will be automatically 
  2451.  closed when you log off, if you have Monitor_DCD selected. 
  2452.  
  2453.  
  2454. ΓòÉΓòÉΓòÉ 10.2.6. capture_off ΓòÉΓòÉΓòÉ
  2455.  
  2456.  capture_off(); 
  2457.  
  2458.  Stops screen capture and closes the capture file. You can also close the 
  2459.  capture file from the menu. 
  2460.  
  2461.  
  2462. ΓòÉΓòÉΓòÉ 10.2.7. shell ΓòÉΓòÉΓòÉ
  2463.  
  2464.  shell("\path\filename.ext"); 
  2465.  
  2466.  Allows you to call an external program to run from a script. 
  2467.  
  2468.  
  2469. ΓòÉΓòÉΓòÉ 10.3. 'C' Functions ΓòÉΓòÉΓòÉ
  2470.  
  2471. These are the functions that are included in the cpmcomms and cpmcomml 
  2472. libraries. The cpmcomms.lib is a small model library and the cpmcomml.lib is a 
  2473. large model library. The cpmcomm.h file has function definitions and should be 
  2474. included in any program that uses the cpmcomm libraries. The function init_lib 
  2475. must be called before any other of the library routines are used. 
  2476.  
  2477.  
  2478. ΓòÉΓòÉΓòÉ 10.3.1. wait_for ΓòÉΓòÉΓòÉ
  2479.  
  2480.  USHORT wait_for(USHORT argc,CHAR **argv,HFILE port); 
  2481.  
  2482.  Example 
  2483.  
  2484.  USHORT result; 
  2485.  
  2486.  CHAR *argv[2]; 
  2487.  
  2488.  CHAR string1[80]; 
  2489.  
  2490.  CHAR string2[80]; 
  2491.  
  2492.  strcpy(string1,"first name?"); 
  2493.  
  2494.  strcpy(string2,"last name?"); 
  2495.  
  2496.  argv[0] = string1; 
  2497.  
  2498.  argv[1] = string2; 
  2499.  
  2500.  result = wait_for(2,argv,port); 
  2501.  
  2502.  Description 
  2503.  
  2504.  The above example would wait for either first name?, or last name?, from the 
  2505.  com port. The function will return the index of the  string that matched. For 
  2506.  example if the wait_for received last name?, then the result would be 2. You 
  2507.  can specify any number of strings depending on memory available. 
  2508.  
  2509.  Returns 
  2510.  
  2511.  Index of matched string or zero if timeout or error. 
  2512.  
  2513.  
  2514. ΓòÉΓòÉΓòÉ 10.3.2. wait_fore ΓòÉΓòÉΓòÉ
  2515.  
  2516.  USHORT wait_fore(USHORT argc,CHAR **argv,HFILE port, HFILE screen_handle); 
  2517.  
  2518.  Example 
  2519.  
  2520.  USHORT result; 
  2521.  
  2522.  CHAR *argv[2]; 
  2523.  
  2524.  CHAR string1[80]; 
  2525.  
  2526.  CHAR string2[80]; 
  2527.  
  2528.  strcpy(string1,"first name?"); 
  2529.  
  2530.  strcpy(string2,"last name?"); 
  2531.  
  2532.  argv[0] = string1; 
  2533.  
  2534.  argv[1] = string2; 
  2535.  
  2536.  result = wait_for(2,argv,port,screen_handle); 
  2537.  
  2538.  Description 
  2539.  
  2540.  The first example would wait for either first name?, or last name?, from the 
  2541.  com port and echo the out_put to the Pmcomm screen. 
  2542.  
  2543.  Returns 
  2544.  
  2545.  Index of matched string or zero if timeout or error. 
  2546.  
  2547.  
  2548. ΓòÉΓòÉΓòÉ 10.3.3. put_s ΓòÉΓòÉΓòÉ
  2549.  
  2550.  USHORT put_s(char *string,HFILE port); 
  2551.  
  2552.  Example 
  2553.  
  2554.  put_s("first name",port); 
  2555.  
  2556.  Description 
  2557.  
  2558.  This call will send string out to port. In the above example first name will 
  2559.  be sent to the com port. If screen_handle is specified instead of port then 
  2560.  the string will be sent to the Pmcomm screen. 
  2561.  
  2562.  Returns 
  2563.  
  2564.  Length of string actually written. 
  2565.  
  2566.  
  2567. ΓòÉΓòÉΓòÉ 10.3.4. sleep ΓòÉΓòÉΓòÉ
  2568.  
  2569.  VOID sleep(ULONG time); 
  2570.  
  2571.  Example 
  2572.  
  2573.  sleep(1000L); 
  2574.  
  2575.  Description 
  2576.  
  2577.  This call will delay the program for the amount of milliseconds specified. The 
  2578.  above example will delay the computer for one second. 
  2579.  
  2580.  Returns 
  2581.  
  2582.  None. 
  2583.  
  2584.  
  2585. ΓòÉΓòÉΓòÉ 10.3.5. beep ΓòÉΓòÉΓòÉ
  2586.  
  2587.  VOID beep(USHORT frequency,USHORT duration); 
  2588.  
  2589.  Example 
  2590.  
  2591.  beep(495,100); 
  2592.  
  2593.  Description 
  2594.  
  2595.  The above example will beep the speaker. 
  2596.  
  2597.  Returns 
  2598.  
  2599.  None. 
  2600.  
  2601.  
  2602. ΓòÉΓòÉΓòÉ 10.3.6. os2_shell ΓòÉΓòÉΓòÉ
  2603.  
  2604.  VOID os2_shell(HFILE port,HFILE port); 
  2605.  
  2606.  Example 
  2607.  
  2608.  os2_shell(port,port); 
  2609.  
  2610.  Description 
  2611.  
  2612.  This command will allow a caller to shell to OS/2, remotely. The first 
  2613.  parameter is input handle and the second is the output handle. In the example 
  2614.  above, the command will receive and send the information to the com port. 
  2615.  
  2616.  Returns 
  2617.  
  2618.  None. 
  2619.  
  2620.  
  2621. ΓòÉΓòÉΓòÉ 10.3.7. init_lib ΓòÉΓòÉΓòÉ
  2622.  
  2623.  USHORT init_lib(int argc,char **argv); 
  2624.  
  2625.  Example 
  2626.  
  2627.  main(argc,argv) 
  2628.  
  2629.  { 
  2630.  
  2631.  init_lib(argc,argv); 
  2632.  
  2633.  ... 
  2634.  
  2635.  } 
  2636.  
  2637.  The init_lib function will initialize some global variables that are passed on 
  2638.  the command line. These variables are: 
  2639.  
  2640.  USHORT port; 
  2641.  
  2642.  CHAR portname[15]; 
  2643.  
  2644.  HFILE dde_output,dde_input; 
  2645.  
  2646.  HFILE screen_handle; 
  2647.  
  2648.  This function must be called before any other library function is called. 
  2649.  
  2650.  Returns 
  2651.  
  2652.  1 if sucessful and 0 if not. 
  2653.  
  2654.  
  2655. ΓòÉΓòÉΓòÉ 10.3.8. 'C' set_download_path ΓòÉΓòÉΓòÉ
  2656.  
  2657.  VOID set_download_path(char *path); 
  2658.  
  2659.  Example 
  2660.  
  2661.  set_download_path("c:\pmcomm"); 
  2662.  
  2663.  Description 
  2664.  
  2665.  The above example will set the download path to c:\pmcomm. This will store all 
  2666.  of the files received in that directory. 
  2667.  
  2668.  Returns 
  2669.  
  2670.  None. 
  2671.  
  2672.  
  2673. ΓòÉΓòÉΓòÉ 10.3.9. setcom ΓòÉΓòÉΓòÉ
  2674.  
  2675.  SHORT setcom(char *baud,UCHAR parity,UCHAR data_bit,UCHAR stop_bits,HFILE 
  2676.  port); 
  2677.  
  2678.  Example 
  2679.  
  2680.  setcom("2400",'N',8,1,port); 
  2681.  
  2682.  Description 
  2683.  
  2684.  This would set the com port to 2400 baud, no parity, 8 data bits, 1 stop bit. 
  2685.  Baud can be from 300 to 19200 with the standard OS/2 device driver. Parity can 
  2686.  be N(none), O(odd), E(even), M(marked), or S(spaced). Data bits can be 5, 6, 7 
  2687.  or 8. Stop bits can be 1 or 2 (2 can only be used with 5 data bits). If the 
  2688.  baud parameter is an empty string i.e. setcom("",'E',7,1,port) this leave the 
  2689.  baud at the current rate but set the line characteristics to 7, Even, 1. 
  2690.  
  2691.  Returns 
  2692.  
  2693.  1 if successful and 0 if unsuccessful. 
  2694.  
  2695.  
  2696. ΓòÉΓòÉΓòÉ 10.3.10. sendb ΓòÉΓòÉΓòÉ
  2697.  
  2698.  VOID sendb(LONG length,HFILE port); 
  2699.  
  2700.  Example 
  2701.  
  2702.  sendb(300L,port); 
  2703.  
  2704.  Description 
  2705.  
  2706.  This call sends a break signal a certain time in milliseconds. The above 
  2707.  example would send a break signal for 300 milliseconds. This call is mostly 
  2708.  used to establish direct connects (not using a modem). Three hundred 
  2709.  milliseconds should be okay for most situations. 
  2710.  
  2711.  Returns 
  2712.  
  2713.  None. 
  2714.  
  2715.  
  2716. ΓòÉΓòÉΓòÉ 10.3.11. dcd ΓòÉΓòÉΓòÉ
  2717.  
  2718.  USHORT dcd(HFILE port); 
  2719.  
  2720.  Example 
  2721.  
  2722.  dcd(port); 
  2723.  
  2724.  Description 
  2725.  
  2726.  This call checks to see if there is a carrier detected on the modem. You can 
  2727.  use this to see if Pmcomm is still online to a remote computer. For this 
  2728.  information to be correct the modem must support dcd and the modem must be 
  2729.  configured to support dcd. To find the command refer to your owner's manual. 
  2730.  
  2731.  Returns 
  2732.  
  2733.  1 if carrier detected and 0 if no carrier. 
  2734.  
  2735.  
  2736. ΓòÉΓòÉΓòÉ 10.3.12. char_avail ΓòÉΓòÉΓòÉ
  2737.  
  2738.  USHORT char_avail(HFILE port); 
  2739.  
  2740.  Example 
  2741.  
  2742.  char_avail(port); 
  2743.  
  2744.  Description 
  2745.  
  2746.  This call checks to see how many characters are available in the device 
  2747.  drivers receive buffer. You can use this function to check to see if the 
  2748.  device driver has received any characters from the com port. 
  2749.  
  2750.  Returns 
  2751.  
  2752.  Number of characters in device driver receive queue. 
  2753.  
  2754.  
  2755. ΓòÉΓòÉΓòÉ 10.3.13. read_timeout ΓòÉΓòÉΓòÉ
  2756.  
  2757.  read_timeout(USHORT timeout,HFILE port); 
  2758.  
  2759.  Example 
  2760.  
  2761.  read_timeout(20000,port); 
  2762.  
  2763.  Description 
  2764.  
  2765.  This call sets the length of time (in milliseconds) that wait_for, wait_fore, 
  2766.  get_ch will wait for a character from the com port. The above example will 
  2767.  make the functions wait for 20 seconds. 
  2768.  
  2769.  Returns 
  2770.  
  2771.  1 if successful and 0 if unsuccessful. 
  2772.  
  2773.  
  2774. ΓòÉΓòÉΓòÉ 10.3.14. get_ch ΓòÉΓòÉΓòÉ
  2775.  
  2776.  CHAR get_ch(HFILE port); 
  2777.  
  2778.  Example 
  2779.  
  2780.  ch = get_ch(port); 
  2781.  
  2782.  Description 
  2783.  
  2784.  This call will get a character from the com port. If no character is available 
  2785.  by the time set with read_timeout the function will return with a value of -1. 
  2786.  Otherwise the function will return with the character read. 
  2787.  
  2788.  Returns 
  2789.  
  2790.  char value if successful and -1 if unsuccessful. 
  2791.  
  2792.  
  2793. ΓòÉΓòÉΓòÉ 10.3.15. ring_detect ΓòÉΓòÉΓòÉ
  2794.  
  2795.  USHORT ring_detect(HFILE port); 
  2796.  
  2797.  Example 
  2798.  
  2799.  ring_detect(port); 
  2800.  
  2801.  Description 
  2802.  
  2803.  This call can be used to inform a program if the phone is ringing. 
  2804.  
  2805.  Returns 
  2806.  
  2807.  1 if ring detected, 0 if no ring. 
  2808.  
  2809.  
  2810. ΓòÉΓòÉΓòÉ 10.3.16. drop_dtr ΓòÉΓòÉΓòÉ
  2811.  
  2812.  VOID drop_dtr(HFILE port); 
  2813.  
  2814.  Example 
  2815.  
  2816.  drop_dtr(port); 
  2817.  
  2818.  Description 
  2819.  
  2820.  This call is usually used to make a modem hang up. The modem must be 
  2821.  configured to allow this. To find the command for your modem, check your 
  2822.  owner's manual. Dtr needs to be dropped for about 2-3 seconds to make sure the 
  2823.  modem sees the drop in DTR. After that length of time raise_dtr can be called 
  2824.  to bring DTR back up. On a Hayes 2400 the above command will also keep the 
  2825.  modem from doing an auto answer until you raise_dtr again. 
  2826.  
  2827.  Returns 
  2828.  
  2829.  None. 
  2830.  
  2831.  
  2832. ΓòÉΓòÉΓòÉ 10.3.17. raise_dtr ΓòÉΓòÉΓòÉ
  2833.  
  2834.  VOID raise_dtr(HFILE port); 
  2835.  
  2836.  Example 
  2837.  
  2838.  raise_dtr(port); 
  2839.  
  2840.  Description This call is usually used after drop_dtr to allow the modem to 
  2841.  process commands and enable it to answer the phone. 
  2842.  
  2843.  Returns 
  2844.  
  2845.  None. 
  2846.  
  2847.  
  2848. ΓòÉΓòÉΓòÉ 10.3.18. get_cursor_position ΓòÉΓòÉΓòÉ
  2849.  
  2850.  USHORT get_cursor_position(char *str); 
  2851.  
  2852.  Example 
  2853.  
  2854.  get_cursor_position("column"); 
  2855.  
  2856.  Description 
  2857.  
  2858.  The above will return the column that the cursor is in. To get the current 
  2859.  row, you would issue this call with "row" instead of "column". The row value 
  2860.  that is returned is relative to the top of the scroll back buffer. The top row 
  2861.  of the scroll back buffer and the first column would be 0,0. 
  2862.  
  2863.  Returns 
  2864.  
  2865.  Cursor position. 
  2866.  
  2867.  
  2868. ΓòÉΓòÉΓòÉ 10.3.19. get_char_at ΓòÉΓòÉΓòÉ
  2869.  
  2870.  VOID get_char_at(USHORT row,USHORT col,USHORT num,char *returnstr); 
  2871.  
  2872.  Example 
  2873.  
  2874.  get_char_at(0,0,80,str); 
  2875.  
  2876.  Description 
  2877.  
  2878.  The above will return the characters at the first line (stored in str) of the 
  2879.  scroll back buffer. It will return 80 characters, even if the characters are 
  2880.  spaces. The maximum number of characters that can be returned at one time is 
  2881.  200. 
  2882.  
  2883.  Returns 
  2884.  
  2885.  None. 
  2886.  
  2887.  
  2888. ΓòÉΓòÉΓòÉ 10.3.20. 'C'capture_on ΓòÉΓòÉΓòÉ
  2889.  
  2890.  USHORT capture_on(filename); 
  2891.  
  2892.  Example 
  2893.  
  2894.  capture_on("c:\pmcomm\cap.txt"); 
  2895.  
  2896.  Description 
  2897.  
  2898.  The above will turn capture on so that everything will be saved into a file. 
  2899.  If you have strip ANSI configured in Pmcomm then the text only will be saved 
  2900.  in ANSI, VT100, and VT220 terminal emulations. 
  2901.  
  2902.  Returns 
  2903.  
  2904.  1 if successful and 0 if not. 
  2905.  
  2906.  
  2907. ΓòÉΓòÉΓòÉ 10.3.21. 'C' capture_off ΓòÉΓòÉΓòÉ
  2908.  
  2909.  VOID capture_off(VOID); 
  2910.  
  2911.  Example 
  2912.  
  2913.  capture_off(); 
  2914.  
  2915.  Description 
  2916.  
  2917.  The above will turn capture off. The capture may have been started from a 
  2918.  script or from the menu. 
  2919.  
  2920.  Returns 
  2921.  
  2922.  1 if successful and 0 if not. 
  2923.  
  2924.  
  2925. ΓòÉΓòÉΓòÉ 10.3.22. xmodem_send ΓòÉΓòÉΓòÉ
  2926.  
  2927.  USHORT xmodem_send(char *filename); 
  2928.  
  2929.  Example 
  2930.  
  2931.  xmodem_send("d:\path\filename.ext"); 
  2932.  
  2933.  Description 
  2934.  
  2935.  This call will invoke the Xmodem_CRC send routine, built into Pmcomm. Once 
  2936.  issued the call will not return until the transfer either finishes or is 
  2937.  aborted. Pmcomm will show the normal transfer box that it does when download 
  2938.  is selected from the menu. 
  2939.  
  2940.  Returns 
  2941.  
  2942.  1 if the transfer is successful and 0 if unsuccessful. 
  2943.  
  2944.  
  2945. ΓòÉΓòÉΓòÉ 10.3.23. xmodem_receive ΓòÉΓòÉΓòÉ
  2946.  
  2947.  USHORT xmodem_receive(char *filename); 
  2948.  
  2949.  Example 
  2950.  
  2951.  xmodem_receive("d:\path\filename.ext"); 
  2952.  
  2953.  Description 
  2954.  
  2955.  This call will invoke the Xmodem_CRC receive routine, built into Pmcomm. Once 
  2956.  issued the call will not return until the transfer either finishes or is 
  2957.  aborted. Pmcomm will show the normal transfer box that it does when uploading 
  2958.  from the menu. The file name specified must include a path. 
  2959.  
  2960.  Returns 
  2961.  
  2962.  1 if transfer is successful and 0 if unsuccessful. 
  2963.  
  2964.  
  2965. ΓòÉΓòÉΓòÉ 10.3.24. xmodem_chk_send ΓòÉΓòÉΓòÉ
  2966.  
  2967.  USHORT xmodem_chk_send(char *filename); 
  2968.  
  2969.  Example 
  2970.  
  2971.  xmodem_chk_send("d:\path\filename.ext"); 
  2972.  
  2973.  Description 
  2974.  
  2975.  This call will invoke the Xmodem_Checksum send routine, built into Pmcomm. 
  2976.  Once issued the call will not return until the transfer either finishes or is 
  2977.  aborted. Pmcomm will show the normal transfer box that it does when download 
  2978.  is selected from the menu. 
  2979.  
  2980.  Returns 
  2981.  
  2982.  1 if transfer is successful and 0 if unsuccessful. 
  2983.  
  2984.  
  2985. ΓòÉΓòÉΓòÉ 10.3.25. xmodem_chk_receive ΓòÉΓòÉΓòÉ
  2986.  
  2987.  USHORT xmodem_chk_receive(char *filename); 
  2988.  
  2989.  Example 
  2990.  
  2991.  xmodem_chk_receive("d:\path\filename.ext"); 
  2992.  
  2993.  Description 
  2994.  
  2995.  This call will invoke the Xmodem_Checksum receive routine, built into Pmcomm. 
  2996.  Once issued the call will not return until the transfer either finishes or is 
  2997.  aborted. Pmcomm will show the normal transfer box that it does when uploading 
  2998.  from the menu. The file name specified must include a path. 
  2999.  
  3000.  Returns 
  3001.  
  3002.  1 if transfer is successful and 0 if unsuccessful. 
  3003.  
  3004.  
  3005. ΓòÉΓòÉΓòÉ 10.3.26. xmodem_1k_send ΓòÉΓòÉΓòÉ
  3006.  
  3007.  USHORT xmodem_1k_send(char *filename); 
  3008.  
  3009.  Example 
  3010.  
  3011.  xmodem_1k_send("d:\path\filename.ext"); 
  3012.  
  3013.  Description 
  3014.  
  3015.  This call will invoke the 1K-Xmodem send routine, built into Pmcomm. Once 
  3016.  issued the call will not return until the transfer either finishes or is 
  3017.  aborted. Pmcomm will show the normal transfer box that it does when download 
  3018.  is selected from the menu. 
  3019.  
  3020.  Returns 
  3021.  
  3022.  1 if transfer is successful and 0 if unsuccessful. 
  3023.  
  3024.  
  3025. ΓòÉΓòÉΓòÉ 10.3.27. xmodem_1k_receive ΓòÉΓòÉΓòÉ
  3026.  
  3027.  USHORT xmodem_1k_receive(char *filename); 
  3028.  
  3029.  Example 
  3030.  
  3031.  xmodem_1k_receive("d:\path\filename.ext"); 
  3032.  
  3033.  Description 
  3034.  
  3035.  This call will invoke the 1K-Xmodem receive routine, built into Pmcomm. Once 
  3036.  issued the call will not return until the transfer either finishes or is 
  3037.  aborted. Pmcomm will show the normal transfer box that it does when uploading 
  3038.  from the menu. The file name specified must include a path. 
  3039.  
  3040.  Returns 
  3041.  
  3042.  1 if transfer is successful and 0 if unsuccessful. 
  3043.  
  3044.  
  3045. ΓòÉΓòÉΓòÉ 10.3.28. ymodem_send ΓòÉΓòÉΓòÉ
  3046.  
  3047.  USHORT ymodem_send(USHORT num_files,CHAR **filearray); 
  3048.  
  3049.  Example 
  3050.  
  3051.  USHORT result; 
  3052.  
  3053.  CHAR *filearray[2]; 
  3054.  
  3055.  CHAR string1[80]; 
  3056.  
  3057.  CHAR string2[80]; 
  3058.  
  3059.  strcpy(string1,"pmcom106.zip"); 
  3060.  
  3061.  strcpy(string2,"pmcom107.zip"); 
  3062.  
  3063.  filearray[0] = string1; 
  3064.  
  3065.  filearray[1] = string2; 
  3066.  
  3067.  result = ymodem_send(2,filearray); 
  3068.  
  3069.  Description 
  3070.  
  3071.  This call will invoke the Ymodem send routine, built into Pmcomm. Once issued 
  3072.  the call will not return until the transfer either finishes or is aborted. 
  3073.  Pmcomm will show the normal transfer box that it does when download is 
  3074.  selected from the menu. As many as 8 files can be sent at one time. 
  3075.  
  3076.  Returns 
  3077.  
  3078.  Number of files successfully transferred. 
  3079.  
  3080.  
  3081. ΓòÉΓòÉΓòÉ 10.3.29. ymodem_receive ΓòÉΓòÉΓòÉ
  3082.  
  3083.  USHORT ymodem_receive(VOID); 
  3084.  
  3085.  Example 
  3086.  
  3087.  ymodem_receive(); 
  3088.  
  3089.  Description 
  3090.  
  3091.  This call will invoke the Ymodem receive routine, built into Pmcomm. Once 
  3092.  issued the call will not return until the transfer either finishes or is 
  3093.  aborted. Pmcomm will show the normal transfer box that it does when uploading 
  3094.  from the menu. Only a single file at a time will be accepted. 
  3095.  
  3096.  Returns 
  3097.  
  3098.  1 if call is successful and 0 if unsuccessful. 
  3099.  
  3100.  
  3101. ΓòÉΓòÉΓòÉ 10.3.30. ymodemg_send ΓòÉΓòÉΓòÉ
  3102.  
  3103.  USHORT ymodemg_send(USHORT num_files, CHAR **filearray); 
  3104.  
  3105.  Example 
  3106.  
  3107.  USHORT result; 
  3108.  
  3109.  CHAR *filearray[2]; 
  3110.  
  3111.  CHAR string1[80]; 
  3112.  
  3113.  CHAR string2[80]; 
  3114.  
  3115.  strcpy(string1,"pmcom106.zip"); 
  3116.  
  3117.  strcpy(string2,"pmcom107.zip"); 
  3118.  
  3119.  filearray[0] = string1; 
  3120.  
  3121.  filearray[1] = string2; 
  3122.  
  3123.  result = ymodemg_send(2,filearray); 
  3124.  
  3125.  Description 
  3126.  
  3127.  This call will invoke the Ymodem-g send routine, built into Pmcomm. Once 
  3128.  issued the call will not return until the transfer either finishes or is 
  3129.  aborted. Pmcomm will show the normal transfer box that it does when 
  3130.  downloading from the menu. As many as 8 files can be sent at one time. 
  3131.  
  3132.  Returns 
  3133.  
  3134.  Number of files successfully transferred. 
  3135.  
  3136.  
  3137. ΓòÉΓòÉΓòÉ 10.3.31. ymodemg_receive ΓòÉΓòÉΓòÉ
  3138.  
  3139.  USHORT ymodemg_receive(VOID); 
  3140.  
  3141.  Example 
  3142.  
  3143.  ymodemg_receive(); 
  3144.  
  3145.  Description 
  3146.  
  3147.  This call will invoke the Ymodem-g receive routine, built into Pmcomm. Once 
  3148.  issued the call will not return until the transfer either finishes or is 
  3149.  aborted. Pmcomm will show the normal transfer box that it does when uploading 
  3150.  from the menu. Only one file at a time can be received. 
  3151.  
  3152.  Returns 
  3153.  
  3154.  1 if call is successful and 0 if unsuccessful. 
  3155.  
  3156.  
  3157. ΓòÉΓòÉΓòÉ 10.3.32. zmodem_send ΓòÉΓòÉΓòÉ
  3158.  
  3159.  USHORT zmodem_send(USHORT num_files, CHAR **filearray); 
  3160.  
  3161.  Example 
  3162.  
  3163.  USHORT result; 
  3164.  
  3165.  CHAR *filearray[2]; 
  3166.  
  3167.  CHAR string1[80]; 
  3168.  
  3169.  CHAR string2[80]; 
  3170.  
  3171.  strcpy(string1,"pmcom106.zip"); 
  3172.  
  3173.  strcpy(string2,"pmcom107.zip"); 
  3174.  
  3175.  filearray[0] = string1; 
  3176.  
  3177.  filearray[1] = string2; 
  3178.  
  3179.  result = zmodem_send(2,filearray); 
  3180.  
  3181.  Description 
  3182.  
  3183.  This call will invoke the Zmodem send routine, built into Pmcomm. Once issued 
  3184.  the call will not return until the transfer either finishes or is aborted. 
  3185.  Pmcomm will show the normal transfer box that it does when downloading from 
  3186.  the menu. As many as 100 files may be transferred at one time. 
  3187.  
  3188.  Returns 
  3189.  
  3190.  Number of files successfully transferred. 
  3191.  
  3192.  
  3193. ΓòÉΓòÉΓòÉ 10.3.33. zmodem_receive ΓòÉΓòÉΓòÉ
  3194.  
  3195.  USHORT zmodem_receive(VOID); 
  3196.  
  3197.  Example 
  3198.  
  3199.  zmodem_receive(); 
  3200.  
  3201.  Description 
  3202.  
  3203.  This call will invoke the Zmodem receive routine, built into Pmcomm. Once 
  3204.  issued the call will not return until the transfer either finishes or is 
  3205.  aborted. Pmcomm will show the normal transfer box that it does when uploading 
  3206.  from the menu. Only one file at a time can be received. 
  3207.  
  3208.  Returns 
  3209.  
  3210.  The number of files transferred. 
  3211.  
  3212.  
  3213. ΓòÉΓòÉΓòÉ 10.3.34. kermit_send ΓòÉΓòÉΓòÉ
  3214.  
  3215.  USHORT kermit_send(USHORT num_files, CHAR **filearray); 
  3216.  
  3217.  Example 
  3218.  
  3219.  USHORT result; 
  3220.  
  3221.  CHAR *filearray[2]; 
  3222.  
  3223.  CHAR string1[80]; 
  3224.  
  3225.  CHAR string2[80]; 
  3226.  
  3227.  strcpy(string1,"pmcom106.zip"); 
  3228.  
  3229.  strcpy(string2,"pmcom107.zip"); 
  3230.  
  3231.  filearray[0] = string1; 
  3232.  
  3233.  filearray[1] = string2; 
  3234.  
  3235.  result = kermit_send(2,filearray); 
  3236.  
  3237.  Description 
  3238.  
  3239.  This call will invoke the Kermit send routine, built into Pmcomm. Once issued 
  3240.  the call will not return until the transfer either finishes or is aborted. 
  3241.  Pmcomm will show the normal transfer box that it does when downloading from 
  3242.  the menu. As many as 100 files may be transferred at one time. 
  3243.  
  3244.  Returns 
  3245.  
  3246.  Number of files successfully transferred. 
  3247.  
  3248.  
  3249. ΓòÉΓòÉΓòÉ 10.3.35. kermit_receive ΓòÉΓòÉΓòÉ
  3250.  
  3251.  USHORT kermit_receive(VOID); 
  3252.  
  3253.  Example 
  3254.  
  3255.  kermit_receive(); 
  3256.  
  3257.  Description 
  3258.  
  3259.  This call will invoke the Kermit receive routine, built into Pmcomm. Once 
  3260.  issued the call will not return until the transfer either finishes or is 
  3261.  aborted. Pmcomm will show the normal transfer box that it does when uploading 
  3262.  from the menu. Only one file at a time can be received. 
  3263.  
  3264.  Returns 
  3265.  
  3266.  Number of files transferred. 
  3267.  
  3268.  
  3269. ΓòÉΓòÉΓòÉ 10.3.36. ascii_send ΓòÉΓòÉΓòÉ
  3270.  
  3271.  USHORT ascii_send(char *filename); 
  3272.  
  3273.  Example 
  3274.  
  3275.  ascii_send("d:\path\filename.ext"); 
  3276.  
  3277.  Description 
  3278.  
  3279.  This call will invoke the ASCII send routine, built into Pmcomm. Once issued 
  3280.  the call will not return until the transfer either finishes or is aborted. 
  3281.  Pmcomm will show the normal transfer box that it does when downloading from 
  3282.  the menu. 
  3283.  
  3284.  Returns 
  3285.  
  3286.  1 if transfer is successful and 0 if unsuccessful. 
  3287.  
  3288.  
  3289. ΓòÉΓòÉΓòÉ 10.3.37. ascii_receive ΓòÉΓòÉΓòÉ
  3290.  
  3291.  USHORT ascii_receive(filename); 
  3292.  
  3293.  Example 
  3294.  
  3295.  ascii_receive("d:\path\filename.ext"); 
  3296.  
  3297.  Description 
  3298.  
  3299.  This call will invoke the ASCII receive routine, built into Pmcomm. Once 
  3300.  issued the call will not return until the transfer either finishes or is 
  3301.  aborted. Pmcomm will show the normal transfer box that it does when uploading 
  3302.  from the menu. The file name specified must not include a path. 
  3303.  
  3304.  Returns 
  3305.  
  3306.  1 if transfer is successful and 0 if unsuccessful. 
  3307.  
  3308.  
  3309. ΓòÉΓòÉΓòÉ 10.3.38. cisb_send ΓòÉΓòÉΓòÉ
  3310.  
  3311.  USHORT cisb_send(char *filename); 
  3312.  
  3313.  Example 
  3314.  
  3315.  cisb_send("d:\path\filename.ext"); 
  3316.  
  3317.  Description 
  3318.  
  3319.  This call will invoke the CISB send routine, built into Pmcomm. Once issued 
  3320.  the call will not return until the transfer either finishes or is aborted. 
  3321.  Pmcomm will show the normal transfer box that it does when download is 
  3322.  selected from the menu. 
  3323.  
  3324.  Returns 
  3325.  
  3326.  1 if the transfer is successful and 0 if unsuccessful. 
  3327.  
  3328.  
  3329. ΓòÉΓòÉΓòÉ 10.3.39. cisb_receive ΓòÉΓòÉΓòÉ
  3330.  
  3331.  USHORT cisb_receive(char *filename); 
  3332.  
  3333.  Example 
  3334.  
  3335.  cisb_receive("d:\path\filename.ext"); 
  3336.  
  3337.  Description 
  3338.  
  3339.  This call will invoke the CISB receive routine, built into Pmcomm. Once issued 
  3340.  the call will not return until the transfer either finishes or is aborted. 
  3341.  Pmcomm will show the normal transfer box that it does when uploading from the 
  3342.  menu. The file name specified must include a path. 
  3343.  
  3344.  Returns 
  3345.  
  3346.  1 if transfer is successful and 0 if unsuccessful. 
  3347.  
  3348.  
  3349. ΓòÉΓòÉΓòÉ 10.4. Sample Scripts ΓòÉΓòÉΓòÉ
  3350.  
  3351. These are scripts to help you, when you start to write your own scripts. 
  3352.  
  3353.  
  3354. ΓòÉΓòÉΓòÉ 10.4.1. REXX Sample ΓòÉΓòÉΓòÉ
  3355.  
  3356.  /* Sample Script*/ 
  3357.  
  3358.  /* This script will allow you to log on to Compu-Plane once you change the 
  3359.  strings stored in the variables called name and pass. Enter the sample.scr 
  3360.  name for the script name of the Compu-Plane phone number, and change the name 
  3361.  in the shell( ) function to the path and filename of this file.*/ 
  3362.  
  3363.  Call RxFuncadd "init_dll","RxPmcomm","init_dll" 
  3364.  
  3365.  /* This function registers the init_dll function with REXX. The init_dll 
  3366.  function will register the rest of the functions in the rxpmcomm.dll. */ 
  3367.  
  3368.  Parse arg port portname screen_handle dde_output dde_input semaphore 
  3369.  
  3370.  /*These are the values that Pmcomm passes on the command line to an external 
  3371.  program. These values can then be used in different REXX functions along with 
  3372.  the rxpmcomm.dll functions. Following is the description of each value: */ 
  3373.  
  3374.  /* port = The handle of the open com port in Pmcomm */ 
  3375.  
  3376.  /* portname = The name of the opened com port ie.. COM1*/ 
  3377.  
  3378.  /* screen_handle = Anything written to the handle will be printed on the 
  3379.  Pmcomm screen. */ 
  3380.  
  3381.  /* dde_input = This must be passed to most functions. It allows the 
  3382.  rxpmcomm.dll function to communicate with Pmcomm. */ 
  3383.  
  3384.  /* dde_output = This must be passed to most functions. It allows the 
  3385.  rxpmcomm.dll function to communicate with Pmcomm. */ 
  3386.  
  3387.  /* semaphore = This also must be passed to any file transfer function. It 
  3388.  makes your REXX program wait until the transfer has been completed. */ 
  3389.  
  3390.  Call init_dll 
  3391.  
  3392.  /* Required before any other rxpmcomm.dll functions are called. */ 
  3393.  
  3394.  /* Setup variables  */ 
  3395.  
  3396.  name = 'first;last'  /* where first is your first name and last is*/ 
  3397.  pass = 'password'   /* your last name and password is your password.*/ 
  3398.  cr  = '0d'x 
  3399.  
  3400.  Call read_timeout '20000',port 
  3401.  
  3402.  /* This sets the read timeout for 20 seconds. This is used in the Wait_for, 
  3403.  Wait_fore, and the Get_ch functions. */ 
  3404.  
  3405.  Say 'Waiting for first name ...' 
  3406.  
  3407.  /* This will be printed on the REXX screen. */ 
  3408.  
  3409.  Do Forever 
  3410.  
  3411.  Call Wait_fore 'name', 'password', 'continue?','?->', port, screen_handle 
  3412.  
  3413.  /* This call will echo all characters to the Pmcomm screen that come from the 
  3414.  open com port. When one of the strings are matched the function will return 
  3415.  the index of the matched string in the variable result. For example if it 
  3416.  receives the string password then the result will be equal to 2. If the 
  3417.  function waits longer then the read timeout value then result will be equal to 
  3418.  0. */ 
  3419.  match = result 
  3420.    Select 
  3421.     When match=1 then 
  3422.      Do 
  3423.       Call Put_s name||cr,port 
  3424.       Say 'Waiting for password ...' 
  3425.      End 
  3426.     When match=2 then Call Put_s pass||cr,port 
  3427.     When match=3 then Call Put_s cr,port 
  3428.     When match=4 then Exit 
  3429.    Otherwise nop 
  3430.    End 
  3431.  End 
  3432.  Say 'Script ended  -' date( ) time( ) 
  3433.  Exit 
  3434.  
  3435.  
  3436. ΓòÉΓòÉΓòÉ 10.4.2. Internal Sample ΓòÉΓòÉΓòÉ
  3437.  
  3438. An example script to log onto a Multi-Net Communications BBS could be: 
  3439.  
  3440.           wait_for ("first name"); 
  3441.           puts ("john\n"); 
  3442.  wait_for("last name"); 
  3443.  puts("doe\n"); 
  3444.  wait_for("password"); 
  3445.  puts("password\n"); 
  3446.           sleep (1000); 
  3447.  puts("\n"); 
  3448.  
  3449.  Scripts can be executed automatically when logging onto a BBS by specifying 
  3450.  the script filename in the dialing directory for that phone number. You can 
  3451.  execute a script from the  File menu at anytime. 
  3452.  
  3453.  
  3454. ΓòÉΓòÉΓòÉ 11. Installing Pmcomm Host Mode ΓòÉΓòÉΓòÉ
  3455.  
  3456. To install Pmcomm's Host Mode, change to the Pmcomm directory and run the 
  3457. host.exe program. The first prompt will ask you to enter the maximum baud rate 
  3458. of your modem. At the next prompt you must enter the number of selection that 
  3459. matches your modem the closest. If you are unsure of which selection to make, 
  3460. choose the Hayes 2400 modem as your selection. Next, you must enter the path, 
  3461. including drive, of where you wish to install the Host Mode. When prompted, 
  3462. enter your first name, last name, and password. The install program 
  3463. automatically creates a password file in the necessary format. If this is an 
  3464. "open" system new users will be stored in this file automatically. If this is a 
  3465. "closed" system only the people that are registered in this file will be able 
  3466. to access the Host Mode. 
  3467.  
  3468. The six files that the install program creates are HOSTPASS.FLE, HOSTDIR.FLE, 
  3469. HOSTHEAD.FLE, HOST.SCR, HOSTNEWU.FLE, and HOSTHELP.FLE. The HOSTPASS.FLE file 
  3470. is where all of the users' names, passwords, securities, and last time on are 
  3471. stored. The HOSTDIR.FLE file is a list of the directories that have been 
  3472. created for the host mode. The HOSTHEAD.FLE file is the file that is displayed 
  3473. to users when they logon. The HOST.SCR file is the main executable script. The 
  3474. HOSTNEWU.FLE file is the file that is displayed to new users. In order for a 
  3475. user to be able to receive help from the menu, the HOSTHELP.FLE must contain 
  3476. the information that will be displayed. 
  3477.  
  3478.  
  3479. ΓòÉΓòÉΓòÉ 12. How To... ΓòÉΓòÉΓòÉ
  3480.  
  3481. This section gives you examples of how to set Pmcomm up to do different things. 
  3482.  
  3483.  
  3484. ΓòÉΓòÉΓòÉ 12.1. How to make Pmcomm receive incoming calls. ΓòÉΓòÉΓòÉ
  3485.  
  3486. To make Pmcomm receive an incoming call without using the Host Mode, send the 
  3487. following command to the modem. 
  3488.  
  3489.  ATS0=1 
  3490.  
  3491.  
  3492. ΓòÉΓòÉΓòÉ 12.2. How to Use Pmcomm with a modem pool. ΓòÉΓòÉΓòÉ
  3493.  
  3494. Because Pmcomm does not use ACDI, and will allow you to enter any valid 12 
  3495. character name for a device, it will work with a shared serial port modem pool. 
  3496. This allows you to have modems on a server that users can access from their 
  3497. workstations. This can save a considerable about of money. 
  3498.  
  3499. First the ibmlan.ini file, on the Server and the Requesters, must be edited in 
  3500. order to operate Pmcomm in a modem pool. The "charwait" variable must be 
  3501. changed from it's default setting of 3600 to a setting of 3 and then re-boot 
  3502. the Server and all of the Requesters. 
  3503.  
  3504. The following is a flash from IBMLink on how to setup a modem pool using Pmcomm 
  3505. and Lan Server. 
  3506.  
  3507. The rest of this scenario concerns the OS/2 LAN Server definitions. When LAN 
  3508. Server definitions and actions are complete, defined users at any OS/2 
  3509. Requestor can run the program from the OS/2 Public Applications Window. The 
  3510. serial port and modem at the LAN Server will be shared. To begin, logon as an 
  3511. administrator in the proper domain. Then follow instructions for the following: 
  3512.  
  3513.  
  3514.  a. Defining the shared modem 
  3515.  b. Defining the shared program files 
  3516.  c. Defining the program as a public OS/2 application 
  3517.  d. Defining the working directory 
  3518.  e. Sharing the modem and the program 
  3519.  f. Assigning the modem and the program to the users as they log on. 
  3520.  
  3521.  DEFINING THE SHARED MODEM 
  3522.    Follow this sequence: 
  3523.  
  3524.    DEFINITION 
  3525.    ALIASES 
  3526.    SERIAL DEVICES 
  3527.    --NEW-- (With cursor on --NEW--, press space bar to 
  3528.    choose, press enter or click on ACTION) 
  3529.    CREATE(Create a serial device alias - I used an 
  3530.        alias of MODEM1, chose COM1 from the device 
  3531.        pool using F4 for the list, and choose to 
  3532.        share the port at server startup) 
  3533.  
  3534.  
  3535.  *-----------------------------------------------------------* 
  3536.  
  3537.                Create Alias - Serial Device 
  3538.  
  3539.    Complete the panel; then Enter. 
  3540.  
  3541.    Alias . . . . . . . . . . . . . . . MODEM1 
  3542.    Description . . . . . . . . . . . . Shared modem 
  3543.    Server Name . . . . . . . . . . . . Chosen with the F4 key 
  3544.    Server Device Pool. . . . . . . . . COM1 
  3545.    Priority. . . . . . . . . . . . . . 5 (chosen arbitrarily) 
  3546.    Maximum number of users . . . . . . (Number of shared serial ports) 
  3547.    When shared . . . . . . . . . > At server startup 
  3548.  
  3549.  |-----------------------------------------------------------| 
  3550.  
  3551.    ENTER  Escape=Cancel  F1=Help  F4=List 
  3552.  
  3553.  *-----------------------------------------------------------* 
  3554.  
  3555.  DEFINING THE SHARED PROGRAM FILES 
  3556.  Follow this sequence: 
  3557.    DEFINITION 
  3558.    ALIASES 
  3559.    FILES 
  3560.    --NEW-- (With cursor on --NEW--, press space bar to 
  3561.        choose, press enter or click on ACTION) 
  3562.    CREATE (Create the file alias) 
  3563.  
  3564.  *---------------------------------------------------------* 
  3565.  
  3566.                Create Alias - Files 
  3567.  
  3568.    Complete the panel; then Enter. 
  3569.  
  3570.    Alias . . . . . . . . . . . . . . . PMCOMM 
  3571.    Description . . . . . . . . . . . . Program to access shared modem 
  3572.    Server Name . . . . . . . . . . . . Chosen with the F4 key 
  3573.    Server Path to Directory. . . . . . :OS2:ASYNC:PMCOMM 
  3574.  
  3575.    Maximum number of users . . . . . . (left blank) 
  3576.    When shared . . . . . . . . . > At server startup 
  3577.  
  3578.  |---------------------------------------------------------| 
  3579.  
  3580.    ENTER  Escape=Cancel  F1=Help  F4=List 
  3581.  
  3582.  *---------------------------------------------------------* 
  3583.  
  3584.  DEFINING THE PROGRAM AS A PUBLIC OS/2 APPLICATION 
  3585.  Follow this sequence: 
  3586.    DEFINITION 
  3587.    APPLICATION 
  3588.    PUBLIC OS/2 APPLICATION 
  3589.    --NEW-- (With cursor on --NEW--, press space bar to 
  3590.      choose, press enter or click on ACTION) 
  3591.    CREATE 
  3592.  
  3593.  *----------------------------------------------------------* 
  3594.  
  3595.                Create OS/2 Application Details 
  3596.  
  3597.    Complete the panel; then Enter. 
  3598.  
  3599.    Application ID. . . . . . . . . . . PMCOMMX 
  3600.    Description . . . . . . . . . . . . Shared modem communications 
  3601.    Program location. . . . . . . . . . Remote 
  3602.    Drive or alias. . . . . . . . . . . PMCOMM 
  3603.    Remaining path to program . . . . . : 
  3604.    Command line. . . . . . . . . . . . PMCOMM.EXE 
  3605.    Prompt used for parameters? . . . . NO 
  3606.    Program type. . . . . . . . . . . . OS/2 PM 
  3607.  
  3608.  |----------------------------------------------------------| 
  3609.  
  3610.    ENTER  Escape=Cancel  F1=Help  F4=List 
  3611.  
  3612.  *----------------------------------------------------------* 
  3613.  
  3614.  DEFINING THE WORKING DIRECTORY 
  3615.  
  3616.  PMCOMM has support files that should reside in the working directory at 
  3617.  the server. If this directory is not assigned, each user must have these 
  3618.  files on their own  disk. 
  3619.  
  3620.    Follow this sequence: 
  3621.    DEFINITION 
  3622.    APPLICATION 
  3623.    PUBLIC OS/2 APPLICATION 
  3624.    --PMCOMMX-- (With cursor on --PMCOMMX--, press space 
  3625.      bar to choose, press enter or click on 
  3626.      ACTION) 
  3627.    WORKING DIRECTORY 
  3628.  
  3629.  *---------------------------------------------------------* 
  3630.  
  3631.                    Working Directory 
  3632.  
  3633.    Complete the panel; then Enter. 
  3634.  
  3635.    Working Directory . . . . . . . . . REMOTE 
  3636.    Drive or alias. . . . . . . . . . . PMCOMM 
  3637.    Remaining path to program . . . . . : 
  3638.    Assigned Drive. . . . . . . . . . . P (chosen arbitrarily) 
  3639.  
  3640.  |---------------------------------------------------------| 
  3641.  
  3642.    ENTER  Escape=Cancel  F1=Help  F4=List 
  3643.  
  3644.  *---------------------------------------------------------* 
  3645.  
  3646.  SHARING THE PROGRAM AND THE MODEM 
  3647.    Follow this sequence: 
  3648.    ACTION 
  3649.    RESOURCE SHARING 
  3650.    --PMCOMM-- (With cursor on --PMCOMM--, press spacebar 
  3651.        to choose, press enter or click on ACTION) 
  3652.    START SHARING 
  3653.    --MODEM1-- (With cursor on --MODEM1--, press spacebar 
  3654.        to choose, press enter or click on ACTION) 
  3655.    START SHARING 
  3656.  
  3657.  ASSIGNING RESOURCES TO USERS AS THEY LOG ON 
  3658.  
  3659.    Follow this sequence for each user, to assign MODEM1 as a user 
  3660.        logs on: 
  3661.    DEFINITION 
  3662.    USERS 
  3663.    -- User -- (With cursor on the user name, press F10) 
  3664.    LOGON 
  3665.    SERIAL DEVICE ASSIGNMENTS 
  3666.    Assign MODEM1 to a COM port 
  3667.  
  3668.    Follow this sequence for each user, to copy the program to the user's 
  3669.  
  3670.    START PROGRAMS window: 
  3671.    DEFINITION 
  3672.    USERS 
  3673.    -- User -- (With cursor on the user name, press spacebar 
  3674.        to choose, press enter or click on ACTION) 
  3675.    PROGRAM STARTER 
  3676.    --PMCOMMX-- (With cursor on --PMCOMMX-- press the 
  3677.        spacebar to choose) 
  3678.  
  3679.  
  3680. ΓòÉΓòÉΓòÉ 12.3. How to Use Pmcomm with IBMLink. ΓòÉΓòÉΓòÉ
  3681.  
  3682. If you have access to IBMLink (ask an IBM SE) you can use Pmcomm to call. The 
  3683. first thing you will need is a phone number that will work with Pmcomm. This 
  3684. type of number is call, an SS/EFS number. This stands for, Start Stop Enhanced 
  3685. Full Screen. It allows access to IBMLink through a 3708 protocol converter. To 
  3686. find a number in your area, ask your IBM SE, or order book number GC-34-22-34. 
  3687. It has a current list of all the public IBMLink phone numbers in it. 
  3688.  
  3689. Once you have the required phone number, you can add it to the Pmcomm dialing 
  3690. directory. You should set the Parity to Even,the Data bits to 7, and the Stop 
  3691. bits to 1. The terminal type should be set to VT220. Once connected you will 
  3692. see a prompt that asks you for your terminal type. If you press enter now it 
  3693. will display a list of available terminals. The best choice here is to select 
  3694. VT220, which is selection 18. By selecting VT220 you are able to use additional 
  3695. commands that are not available with VT100. If you select VT220 the first nine 
  3696. PF keys will be the numeric key pad keys (the num lock must be off). For 
  3697. example, PF1 will be the 1 on the key pad, PF2 will be 2 and so on. For PF10 it 
  3698. will be the F1 key, PF11 will be the F2 key and PF12 will be the F3 key. To do 
  3699. a reset press the Ctrl-R and to do a clear press the Ctrl-C. 
  3700.  
  3701. Once logged onto IBMLink just follow the prompts and you shouldn't have any 
  3702. problem. 
  3703.  
  3704.  
  3705. ΓòÉΓòÉΓòÉ 12.4. How to Use Pmcomm with ESDTools. ΓòÉΓòÉΓòÉ
  3706.  
  3707. Once you are logged onto ESDTools and have selected the files you wish to 
  3708. receive, press the PF9 key (using VT220 this is the 9 on the numeric keypad). 
  3709. ESDTools will then ask you which drive you will be receiving the file to. 
  3710. Choose any drive as this parameter will be ignored by Pmcomm. You will then be 
  3711. prompted for the operating system, select OS/2. The last selection will be for 
  3712. the type of connection (i.e. Asynch ect...), select the appropriate connection 
  3713. type. ESDTools will then tell you not to press the enter key until prompted to 
  3714. do so by your communications software. At this time select Transfer, Download 
  3715. from the Pmcomm menu. Once the transfer has completed you can then press the 
  3716. enter key to return to the file list menu. 
  3717.  
  3718.  
  3719. ΓòÉΓòÉΓòÉ 12.5. How to Use a REXX program as a script. ΓòÉΓòÉΓòÉ
  3720.  
  3721. A REXX program can be executed from Pmcomm by entering the name of the program 
  3722. name directly into the dialing_directory or from the start script menu. A REXX 
  3723. program can also be started by using the shell command in a macro. An example 
  3724. of this would be: 
  3725.  
  3726. shell("c:\pmcomm\plane.cmd"); 
  3727.  
  3728. This would execute the REXX script called plane.cmd. This allows you a quick 
  3729. and easy way to execute often used scripts. 
  3730.  
  3731.  
  3732. ΓòÉΓòÉΓòÉ 12.6. How to Use drag and drop. ΓòÉΓòÉΓòÉ
  3733.  
  3734. When files are dragged from the file manager and dropped onto Pmcomm's terminal 
  3735. emulation screen, the transfer protocol that is listed for that phone number 
  3736. will be invoked and the file(s) will be sent to the remote computer. If you 
  3737. have Monitor_DCD selected then drag options will not be allowed until connected 
  3738. with another computer. 
  3739.  
  3740. To drag files from the file manager, select a file (or files) and then click on 
  3741. the selected file(s) with the RIGHT mouse button and hold the button down. Once 
  3742. you have begun to drag the files with the mouse the mouse pointer will change 
  3743. shape. If the mouse pointer is over a program that does not accept drag and 
  3744. drop the pointer will again change shape. When the mouse pointer is over any 
  3745. part of Pmcomm you can release the right mouse button. This will drop the files 
  3746. onto Pmcomm and Pmcomm will send them. This will even work if Pmcomm is an 
  3747. icon. 
  3748.  
  3749. To change the protocol for the current phone number, select upload from the 
  3750. menu and then select the protocol you want (make sure that the save to dialing 
  3751. directory is selected). After pressing the OK button the file open dialog box 
  3752. will be displayed. Just press cancel and you can now use the drag and drop with 
  3753. the new protocol. 
  3754.  
  3755. If a file is dropped onto Pmcomm while it is an icon in a group menu, this file 
  3756. will be used as a setup file, and Pmcomm will be invoked. 
  3757.  
  3758. The drag and drop feature is also available for two of the icons on the Status 
  3759. Line. For more information see Status_Line. 
  3760.  
  3761.  
  3762. ΓòÉΓòÉΓòÉ 13. Troubleshooting. ΓòÉΓòÉΓòÉ
  3763.  
  3764. Following are some problems that may occur when using Pmcomm. 
  3765.  
  3766.  
  3767. ΓòÉΓòÉΓòÉ 13.1. Device Open error. ΓòÉΓòÉΓòÉ
  3768.  
  3769. This message is displayed if Pmcomm can not open the specified device. If you 
  3770. are trying to open COM1, for example, and another program already has it open 
  3771. then this message will be displayed. If you are using the com ports on the 
  3772. machine you are running Pmcomm on (not across a LAN). Then you must have the 
  3773. com port device driver installed. There are two device drivers supplied with 
  3774. OS/2, com02.sys (for IBM PS/2's), and com01.sys for AT class machines. If you 
  3775. are running a PS/2, for example, you should have a statement in your config.sys 
  3776. file, DEVICE=C:\OS2\COM02.SYS. If not you will get the device open error. The 
  3777. default when installing OS/2 is not to install the device driver, so make sure 
  3778. that you either have, DEVICE=C:OS2\COM02.SYS or DEVICE=C:\OS2\COM01.SYS in your 
  3779. config.sys file. 
  3780.  
  3781. If you get this message when trying to access a com port on a server, refer to 
  3782. the Modem_Pool section. One of the common problems is not first logging onto 
  3783. the network before trying to access the com port. Also make sure you use Alias 
  3784. names that don't conflict with names on the local machine. For example don't 
  3785. try to use the name COM1 for the name of the remote com port, if you have a 
  3786. COM1 on your local machine. Instead use a name like COM5, which normally will 
  3787. not be used on your local machine. 
  3788.  
  3789.  
  3790. ΓòÉΓòÉΓòÉ 13.2. File transfers not available. ΓòÉΓòÉΓòÉ
  3791.  
  3792. If you have Monitor_DCD turned on under Port Options and Pmcomm does not detect 
  3793. DCD then the upload and download options will be greyed out. You can turn the 
  3794. Monitor DCD option off and you will then be able to transfer files. Some common 
  3795. reasons for Pmcomm not being able to detect are: 
  3796.  
  3797.  Serial cable that does not support the DCD line. 
  3798.  Modem not configured to have DCD follow the state of the phone line. 
  3799.  Modem does not support DCD. 
  3800.  
  3801.  The monitor DCD option should also be turned off if using Pmcomm with a modem 
  3802.  pool. 
  3803.  
  3804.  
  3805. ΓòÉΓòÉΓòÉ 13.3. Pmcomm will not dial out. ΓòÉΓòÉΓòÉ
  3806.  
  3807. The most common cause of this is a DOS program that has corrupted the com port. 
  3808. Compiled basic program that are executed in the DOS box, for example, will 
  3809. sometime poll the available devices. When this happens the com device driver is 
  3810. effected and Pmcomm will not be able to send information to the com port. When 
  3811. this happens you will have to IPL (boot) the computer. 
  3812.  
  3813.  
  3814. ΓòÉΓòÉΓòÉ 13.4. Typed characters do not echo to the screen. ΓòÉΓòÉΓòÉ
  3815.  
  3816. Some electronic information services, such as Genie, run in what is called 
  3817. "half-duplex" mode. When in this mode the typed characters are not echoed to 
  3818. the screen. Pmcomm's default mode is "full duplex" which lets the services, 
  3819. like Genie, echo the characters to the screen. To make Pmcomm echo the typed 
  3820. characters to the screen, select the Screen dialog box under the main Options 
  3821. menu and check local echo on. 
  3822.  
  3823.  
  3824. ΓòÉΓòÉΓòÉ 13.5. Help not available. ΓòÉΓòÉΓòÉ
  3825.  
  3826. This message will be displayed if Pmcomm can not find the pmcomm.hlp file in 
  3827. the current directory. If you have Pmcomm installed in a Group menu make sure 
  3828. that you have the working directory set to the directory that Pmcomm is 
  3829. installed in. 
  3830.  
  3831.  
  3832. ΓòÉΓòÉΓòÉ 13.6. Pmcomm locks with a shared serial port. ΓòÉΓòÉΓòÉ
  3833.  
  3834. If Pmcomm locks up when trying to access a shared serial port you must edit the 
  3835. ibmlan.ini file in the Server well as all of the Requesters. Change the 
  3836. variable "charwait" from its default of 3600, to 3 and then re-boot the Server 
  3837. and all of the Requesters.