home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / packet / kmtrm120.zip / KAMTERM.DOC < prev    next >
Text File  |  1993-03-12  |  94KB  |  2,042 lines

  1. KAMterm:  Copyright 1992,1993 by Jim Graham, N5IAL (All Rights Reserved)
  2.  
  3. PREFACE
  4.  
  5. As part of their more recent firmware in their TNCs, Kantronics offers
  6. a special mode of operation known as Host Mode.  Host Mode differs from
  7. the ``normal'' operating mode in many respects, and offers a great
  8. deal of additional capabilities when using Host Mode terminal software.
  9.  
  10. This section is a general introduction to what Host Mode is and how it
  11. operates, what it buys you, and some special considerations for using
  12. Host Mode as opposed to the normal command mode.
  13.  
  14. What Is Host Mode?
  15.  
  16. Before going into any detail on the benefits of using Host Mode, it
  17. is important to first have a general idea of what Host Mode actually
  18. is, and how it operates, as opposed to the normal command mode you are
  19. probably more accustomed to using.  It is not necessary that you fully
  20. understand the details behind this, but you should have somewhat of a
  21. feel for what's going on behind the scenes.  The detailed description of
  22. the data format is in the Kantronics documentation, and only a general
  23. summary will be listed here.
  24.  
  25. In normal command mode on TNCs, the text you type is transmitted
  26. directly to the TNC exactly as you typed it.  This does not require any
  27. special software on your computer other than a simple dumb terminal
  28. emulator.  In fact, in normal command mode, you can attach a plain
  29. terminal (as opposed to a computer running terminal emulation software)
  30. to the TNC.
  31.  
  32. In Host Mode, however, the text you type is not transferred to the TNC
  33. directly.  It is first enclosed in blocks of data, which include a
  34. header indicating the type of data being transmitted (commands, data to
  35. be transmitted, etc.) and the port and stream to which the data is
  36. addressed, and a flag marking the end of the data block.
  37.  
  38. WHEN THE TNC IS IN HOST MODE, A SIMPLE TERMINAL EMULATOR WILL NOT
  39. BE ABLE TO COMMUNICATE WITH THE TNC DIRECTLY, AS IT WILL NOT PUT THE
  40. DATA IN THE REQUIRED DATA BLOCKS.  Likewise, when the TNC is in normal
  41. command mode, software attempting to run Host Mode communications to
  42. the TNC will also fail to function.
  43.  
  44. The data format used within Host Mode is actually very simple when
  45. compared to that used in other data communications protocols (such as
  46. X.25, AX.25, TCP/IP, etc.).  The blocks of data are delimited by a
  47. flag, called a FEND (C0H, or decimal 192).  In most types of data
  48. blocks, the first FEND is followed by 3 characters, indicating the
  49. type of block, the port, and the stream, respectively.  This is
  50. followed by the actual data, and finally another FEND which signals
  51. the end of the block.
  52.  
  53. What Does Host Mode Buy You?
  54.  
  55. First, you can (assuming you have the KAM, as opposed to the KPC, etc.)
  56. operate in a non-packet mode on HF, while operating packet on VHF.
  57. (Without Host Mode, attempting to operate non-packet modes on HF while
  58. connected on VHF packet will get you a ``NOT WHILE CONNECTED'' response
  59. from the KAM.)
  60.  
  61. In addition, regardless of the type of Kantronics TNC, the special block
  62. format of Host Mode allows you to do many things in Host Mode that can
  63. not be done in normal command mode.
  64.  
  65. For example, in normal command mode, all data, regardless of the
  66. port/stream it is from, is simply dumped to your screen, and each time
  67. you wish to change streams, you must issue a command to the TNC to
  68. change it to the new stream.
  69.  
  70. In Host Mode, however, the data block identifies the stream from which
  71. incoming data is arriving, which provides for the design of a windowed
  72. environment, such as KAMterm.  In such an environment, the data for
  73. each stream can be given its own window, thus keeping things cleaner on
  74. the screen.  In KAMterm, you need not keep telling the TNC which stream
  75. you wish to work with---the Host Mode data format takes care of this
  76. for you.  Outgoing data is automatically set to the port/stream
  77. associated with the window you are currently viewing.
  78.  
  79. A related feature is the ability to have an entirely separate screen
  80. for command entry (same as you would have with the TNC at the cmd:
  81. prompt) and for monitor output, once again keeping the screen much more
  82. organized.
  83.  
  84. All of this boils down to being able to have multiple connections open,
  85. with a different screen for everything.  To change from one conversation
  86. to another, you simply move to the next screen and the software takes
  87. care of the rest for you automatically.
  88.  
  89. There are other features derived from this in KAMterm, such as the
  90. ability to keep an eye on one stream while in another stream's window,
  91. the AMTOR XMITECHO window (which displays the text as it is transmitted
  92. without interfering with other operations).  These and other features
  93. will be described in more detail later.
  94.  
  95. Special Considerations When Using Host Mode
  96.  
  97. In general, Host Mode can make things much simpler for you, but there
  98. are a few things you need to keep in mind, or you may find yourself in
  99. some confusing situations.
  100.  
  101. First, and most important, if the TNC is set to use normal command mode,
  102. and the software is trying to use Host Mode (or vice-versa), neither one
  103. will recognize the other.  While you are in KAMterm, if you change
  104. between Host Mode and normal command mode, KAMterm will take care of
  105. changing the TNC's setting for you.  If you also run other terminal
  106. software, however, it is important to keep this in mind when configuring
  107. and using KAMterm.
  108.  
  109. In general, if you expect to use any other terminal program, possibly
  110. including other Host Mode software, you should configure KAMterm *NOT*
  111. to automatically start and exit in Host Mode.  This is, therefore,
  112. the default configuration.
  113.  
  114. For example, if you exit from KAMterm and leave the TNC in Host Mode,
  115. and then try to use a plain terminal program, it simply will not work,
  116. because the TNC is expecting Host Mode data blocks, and the terminal
  117. program is not providing them.  To prevent this situation, do not leave
  118. the TNC in Host Mode if you expect to use a regular terminal program.
  119.  
  120. Similarly, if you have instructed KAMterm to immediately start off in
  121. Host Mode (see the section on the configuration file for details), and
  122. the TNC is in normal command mode, KAMterm will be presenting Host
  123. Mode data to the TNC, and the TNC will not recognize the data format.
  124. You can re-establish communications with the TNC by telling KAMterm to
  125. return to normal mode.
  126.  
  127. NOTE:  It has come to my attention that the HostMaster software from
  128. Kantronics automatically returns the TNC to normal command mode when
  129. it exits, so if you use KAMterm after using HostMaster, do not
  130. assume that the TNC is in Host Mode---it probably isn't.
  131.  
  132. A second thing to keep in mind is the fact that the command screen is
  133. always associated with some port/stream combination.  If you are
  134. connected on streams A, B, and C on the VHF port, and you wish to
  135. disconnect stream C (using the DISCONNECT command), you would return to
  136. the command screen and enter that command.  You must, however, make sure
  137. that the command screen is pointing to VHF Stream C, or you might end
  138. up disconnecting the wrong stream!  The status bar will always indicate
  139. the port/stream associated with each window.
  140.  
  141. A third thing to keep in mind is the fact that when you make a
  142. connection from the command screen, you will see a status message
  143. informing you of the connect, but from that point on, all data from
  144. that connection will be displayed on a different screen.  This differs
  145. from what you would expect when using normal command mode, where the
  146. data from the connect is dumped straight to the same screen (the only
  147. screen).
  148.  
  149.  
  150. 1.0)  INTRODUCTION
  151.  
  152. KAMterm is the result of my not being able to find a terminal program
  153. that take advantage of the KAM's host mode functionality and maintain a
  154. friendly user interface, without sinking large amounts of cash to get
  155. it.  So, after getting tired of being told (by the KAM) that I can't do
  156. this or that while connected, I decided it was time to do something
  157. about it.  So here it is!
  158.  
  159. KAMterm is my answer to this problem.  I've included a lot of the standard
  160. bits that you see in most terminal programs (i.e., split-screen, scrollback
  161. buffers, logging to a file, etc.).  I've also added a lot of things that,
  162. in my opinion, have been seriously lacking in everything I've tried for
  163. packet terminal programs.
  164.  
  165. KAMterm is designed around several basic concepts:
  166.  
  167. *) Each active stream has its own window.
  168.  
  169. *) There is a separate screen for command mode and for monitor mode.
  170.  
  171. *) You can switch between screens with a single keystroke.
  172.  
  173. *) There is a ``priority window'' that you can use to display any
  174.    incoming data on a given stream while working with another stream.
  175.  
  176. *) KAMterm is designed to be extremely simple to operate.
  177.  
  178. *) KAMterm will NOT modify your TNC's parameters unless you ask it to.
  179.  
  180. *) If you choose to do so, you have the ability to create startup and/or
  181.    exit command files that will configure the KAM for you.
  182.  
  183. *) When logging to a file, KAMterm will try to keep things organized by
  184.    adding a line above any text it logs indicating who said what.
  185.  
  186. *) In some menus, if you have a mouse, the mouse can be used for those
  187.    menus.
  188.  
  189. *) Normally, host mode does not have some of the things normal command
  190.    mode does---these are ``faked'' in KAMterm, and the appropriate
  191.    action is taken.  These include:
  192.  
  193.   *) fake command prompt (hcmd:)
  194.   *) |n to switch to VHF stream n for command window i/o commands
  195.   *) ~n---same idea, except for HF
  196.   *) a simple [CR] will result in new hcmd prompt (for aesthetics only)
  197.  
  198. *) Scrollback buffers are setup for each window if memory permits. Size
  199.    is adjustable via configuration file (kamterm.cfg).
  200.  
  201. *) KAMterm will notify you of incoming connects no matter where you
  202.    happen to be at the time.
  203.  
  204. *) Programmable function keys---[F1] is reserved for HELP, but
  205.    otherwise, any of the function keys ([F1] through [F10]) can be used
  206.    alone or in combination with [SHIFT], [ALT], and/or [CTRL] for your
  207.    own macros, etc.  The limitation here is that the string is limited
  208.    to 80 chars.
  209.  
  210. *) Macro command files---just as you can have setup files for start
  211.    and exit, you can send macro command files to the KAM at any time
  212.    while running KAMterm.
  213.  
  214. *) ``Brag'' files are supported, too.  You will be asked for the name of
  215.    the file you wish to transmit.
  216.  
  217.  
  218. 2.0)  DISCLAIMER
  219.  
  220. KAMterm is provided AS IS with no warranty, expressed, written, or
  221. implied.  While every effort has been made to keep KAMterm free of bugs,
  222. individual systems do vary, and it is beyond the author's ability to
  223. test KAMterm in all possible system configurations.  Under no
  224. circumstances shall KAMterm's author be liable for incidental or
  225. consequential damages that may be incurred by the performance or use of
  226. this product.
  227.  
  228. 3.0)  DISTRIBUTION
  229.  
  230. You are free to distribute UNMODIFIED copies of KAMterm, providing
  231. that all documentation, sample files, and other related files are
  232. also distributed unmodified.  This applies ONLY to the shareware
  233. distribution---registered versions of KAMterm, as well as the
  234. typeset documentation, are not to be distributed, period.
  235.  
  236. KAMterm may, if needed, be re-packaged by another archiving program
  237. (e.g., ZIP, ZOO, ARJ, etc.) for distribution.  This represents the only
  238. acceptable ``modification'' for its distribution.
  239.  
  240. Under *NO* circumstances is the Copyright notice within the program
  241. or its documentation to be altered in any way or removed.
  242.  
  243.  
  244. 4.0)  NS16550AN/AFN  SUPPORT
  245.  
  246. KAMterm provides full support for the NS16550AN and NS16550AFN UARTs.
  247. These UARTs (made by National Semiconductor), provide a much greater
  248. degree of reliability at higher speeds (the definition of which depends
  249. on the speed of the computer, and ranges from 4800 bps in severe cases
  250. to 38,400 bps or higher on faster computers).
  251.  
  252. The 16550 does this in two ways.  First, it provides a 16 character FIFO
  253. buffer, as opposed to the 1 character FIFO in older UARTs such as the
  254. 8250.  This provides some breathing room for your program. The second
  255. thing the 16550 does is to allow a single interrupt for multiple
  256. characters.  In other words, with only one interrupt, a communications
  257. program can read several characters from the port at a time.  This
  258. substantially reduces the interrupt loading on the computer, and thus
  259. improves performance of serial I/O.
  260.  
  261. KAMterm automatically detects either the NS16550AN or NS16550AFN if it
  262. exists, and takes advantage of the FIFO and the modified interrupt
  263. structure described above.
  264.  
  265. Note, however, that while KAMterm does support speeds up to (and
  266. including) 115,200 bps, most TNCs currently only support speeds up to
  267. 9600 bps.
  268.  
  269. If you do not have 16550 UART (you would know if you did---they are
  270. more expensive, and are not standard stock in most serial cards), and
  271. particularly if you have a slower computer, you may run into problems
  272. running at 9600 bps.  If you're seeing dropped characters (normally only
  273. a problem when there is a continuous stream of incoming data), try
  274. dropping the speed down to, say, 4800 bps or lower.  Remember to change
  275. the speed on the TNC (this requires a reset) before changing KAMterm.
  276.  
  277. 5.0)  KAMterm  OPERATIONS
  278.  
  279. This section will describe some operational aspects of KAMterm.  These
  280. include startup options, screen layout, and what happens internally when
  281. new connects become active in Host Mode.
  282.  
  283. One thing worth mentioning, even though this is not a function of
  284. KAMterm, is the TNC's handling of the LEDs in Host Mode.
  285.  
  286. In version 4.x of the firmware, some LEDs function differently in Host
  287. Mode than they do in normal command mode.  The CON LED on the VHF side
  288. indicates that data is being transmitted from the TNC to the computer,
  289. and the STA LED on the VHF side indicates that data is being received
  290. from the computer.  The normal command mode functions of these LEDs does
  291. not apply in Host Mode.  This includes the usage of the STA LED to
  292. indicate the status of the PBBS.
  293.  
  294. It is my understanding that in version 5 of the firmware, PBBS status,
  295. and possibly even connect status and outstanding packet status are
  296. available from the LEDs even under Host Mode.  More information on this,
  297. and if needed, updates to KAMterm, will be added once I get the new
  298. firmware.
  299.  
  300. 5.1)  STARTUP  OPTIONS
  301.  
  302. There is only one startup option:  -h   (start immediately in Host Mode).
  303.  
  304. This assumes that the TNC is already in Host Mode, and does not send the
  305. commands to the TNC to initialize Host Mode.  This overrides the
  306. STARTHOST parameter in the kamterm.cfg configuration file (described
  307. later), and starts in Host Mode regardless of its setting.  This is
  308. primarily intended for times where you have left the TNC in Host Mode,
  309. but normally do not do so.
  310.  
  311. 5.2)  SCREEN  LAYOUT
  312.  
  313. The physical screen is divided into 2 regions.  The first is the main
  314. output window.  This takes the majority of the screen.  The second is
  315. the local window, which is the first place where the text you type will
  316. be echoed. The format shouldn't be new to anyone who has used popular
  317. terminal programs for packet radio.  The status bar in between these
  318. which indicates the stream, who (if anyone) that stream is connected to,
  319. etc.
  320.  
  321. 5.2.1)  THE  SCREEN  ITSELF
  322.  
  323. When you first start KAMterm (assuming you start in non-Host Mode), you
  324. will see a screen which looks something like the following:
  325.  
  326. ╔════════════════════════════════ TOP OF SCREEN ══════════════════════════════╗
  327. ║                                                                             ║
  328. ║ This is the MAIN WINDOW.  All text coming FROM the TNC is placed in this    ║
  329. ║ window, as is the local echo (if it is turned on).                          ║
  330. ║                                                                             ║
  331. ║ This window uses lines 0 through 19 on the screen.                          ║
  332. ║                                                                             ║
  333. ║                                                                             ║
  334. ║                                                                             ║
  335. ║                                                                             ║
  336. ║                                                                             ║
  337. ║                                                                             ║
  338. ║ The line below (it is only one line in the program) is line 20, which is    ║
  339. ║ the STATUS LINE.                                                            ║
  340. ───────────────────────────────────────────────────────────────────────────────
  341. F1=HELP COM1 9600 8N1             NORMAL MODE             09 May 1992  12:33:37
  342. ───────────────────────────────────────────────────────────────────────────────
  343. ║                                                                             ║
  344. ║ This is the LOCAL WINDOW.  Text you type goes here.  This window uses       ║
  345. ║ lines 21 through 24 on the screen.                                          ║
  346. ║                                                                             ║
  347. ╚══════════════════════════════ BOTTOM OF SCREEN ═════════════════════════════╝
  348.  
  349. So, with that picture in mind, let's take a look at what we've got.
  350.  
  351. First, the main window contains all text coming in from the TNC for the
  352. stream assigned to the current window.  Because the TNC is not yet in
  353. Host Mode, this means all data coming in from the TNC, period.
  354.  
  355. The last window on the screen is the local window.  This is where text
  356. you type is first echoed.  In here, you can edit a line of text to send
  357. to the TNC before actually sending the data.  If the line exceeds 78
  358. characters, everything that has been typed to that point will be
  359. transmitted to the TNC.  Word wrap is not currently implemented.
  360.  
  361. 5.2.2)  THE  STATUS  BAR
  362.  
  363. The status window provides some information as to where you are, how
  364. things are configured, etc.  Reading from left to right, we first see a
  365. reminder that F1 can be used for HELP.  Next, we see that the serial
  366. port is configured for COM1, 9600 bps, 8 data bits, No parity, and 1
  367. stop bit.
  368.  
  369. Off to the right a bit in the status bar, we see an indication that we
  370. are in normal mode, as opposed to Host Mode.  Note that this does not
  371. indicate the TNC's configuration, i.e., the TNC may really be in Host
  372. Mode.  If there is a mis-match between KAMterm and the TNC, things won't
  373. work.
  374.  
  375. At the far right of the status bar we have the current date and time,
  376. according to your computer's clock.
  377.  
  378. When you enter Host Mode, the status bar will be modified, and you will
  379. see the following:
  380.  
  381. ───────────────────────────────────────────────────────────────────────────────
  382. F1=HELP COM1 9600 8N1          HOST CMD:  VHF/A           09 May 1992  12:33:37
  383. ───────────────────────────────────────────────────────────────────────────────
  384.  
  385. This is now telling us that we are in Host Mode.  Furthermore, this is
  386. the HOST COMMAND WINDOW, which is where we issue actual commands to the
  387. TNC (e.g., CONNECT FOO-BBS).  It then tells us that commands typed here
  388. are currently affecting VHF stream A.  For many commands, this is not
  389. important (e.g., DAYTIME, MYCALL, MONITOR, etc.), but for others (e.g.,
  390. CONNECT, DISCONNECT, etc.), this does matter.  In addition, if you
  391. intend to set the KAM's HF port to a non-packet mode (RTTY, CW, etc.),
  392. the port needs to be HF, not VHF.  See the section on Host Mode commands
  393. for more information about changing the current stream, etc.
  394.  
  395. If you have told KAMterm that you are using a Kantronics TNC other than
  396. the KAM, your status bar will differ slightly, depending on the type of
  397. TNC you have.  Basically, instead of using VHF and HF, it will refer to
  398. Port 1 (and Port 2, where applicable) just as your TNC does.
  399.  
  400. From here, if you hit [PgDn], you will see the following:
  401.  
  402. ───────────────────────────────────────────────────────────────────────────────
  403. F1=HELP COM1 9600 8N1            HOST MONITOR             09 May 1992  12:33:37
  404. ───────────────────────────────────────────────────────────────────────────────
  405.  
  406. This window is the HOST MONITOR WINDOW, and all monitor output will be
  407. placed in this window.
  408.  
  409. From here, if you hit [PgDn] again (assuming there are no other windows
  410. opened), you will go back to the HOST COMMAND WINDOW.  If, on the other
  411. hand, you have a connection open (let's say your connected to my PBBS,
  412. N5IAL-1, on VHF stream A), you would see the following:
  413.  
  414. ───────────────────────────────────────────────────────────────────────────────
  415. F1=HELP COM1 9600 8N1           VHF/A (N5IAL-1)           09 May 1992  12:33:37
  416. ───────────────────────────────────────────────────────────────────────────────
  417.  
  418. The TNC is indicating here that the current stream is VHF stream A, and
  419. that it is connected to N5IAL-1 (or at least, KAMterm thinks it is).  If
  420. you were to then disconnect from N5IAL-1, the status bar would change to
  421. the following:
  422.  
  423. ───────────────────────────────────────────────────────────────────────────────
  424. F1=HELP COM1 9600 8N1                VHF/A                09 May 1992  12:33:37
  425. ───────────────────────────────────────────────────────────────────────────────
  426.  
  427. This indicates that the current stream is VHF stream A, and as far as
  428. KAMterm knows, this stream is not connected to anyone.
  429.  
  430. KAMterm attempts to keep track of who you are really connected to at all
  431. times.  So, for example, if you connect to a local digipeater node (we'll
  432. call it FOO-DIGI), and then from there, you connect to a local BBS (we'll
  433. call it FOO-BBS), you would see the status bar change to indicate the new
  434. callsign you're connected to.  This assumes, however, that the format of
  435. the status message from FOO-DIGI is along the lines of:
  436.  
  437. FOO-DIGI:callsign} Connected to FOO-BBS
  438.  
  439. The only thing that is really important is that the FOO-DIGI string
  440. appear in the first string on the line, and that the next bits are the
  441. ``Connected to'' message, followed by the new callsign/alias.  This is
  442. NOT case sensitive.
  443.  
  444. It is possible, however, that KAMterm will miss one of these status
  445. messages and not correctly track who you are connected to.  If this is
  446. the case, you can use the [ALT][Z] command to correct it.  This command
  447. is described later.
  448.  
  449. When you change screens, the main window and the status bar will be
  450. updated, but the local window will remain the same.  This way, you can
  451. type the connect command, etc., while still looking at the information
  452. on the screen.
  453.  
  454. 5.2.3)  LOCAL  ECHO  vs.  INCOMING  TEXT
  455.  
  456. KAMterm allows you to use a different color for locally echoed text than
  457. that used for incoming text from the TNC.  This is defined in the
  458. configuration file, kamterm.cfg, which is discussed later. The default
  459. is to use YELLOW for locally echoed text, and LIGHTBLUE, RED, OR GREEN
  460. for incoming text in the COMMAND WINDOW, MONITOR WINDOW, and STREAM
  461. WINDOWS, respectively.  These are also configured in the configuration
  462. file.
  463.  
  464. 5.3)  NEW  CONNECTS  (Host  Mode  ONLY)
  465.  
  466. In Host Mode, a new connect will cause a new window to be created if the
  467. stream connected is not currently allocated to an active window.  So,
  468. for example, if the only windows open are the COMMAND WINDOW and the
  469. MONITOR WINDOW, and you connect to someone, a new window will
  470. automatically be created to handle that stream.  If, on the other hand,
  471. you made the connect on, say, VHF stream A, and a window was already
  472. active on VHF stream A, no window would need to be created.  This
  473. applies for incoming connects as well.
  474.  
  475. In addition to this, KAMterm will notify you of incoming connects.  This
  476. requires that the TNC parameter RING be set to ON (the ^G characters
  477. sent from the TNC on incoming connects are used as the indicator that
  478. the connect was not originated by you).
  479.  
  480. 6.0)  KAMterm  COMMANDS
  481.  
  482. 6.1)  GENERAL  COMMANDS
  483.  
  484.  
  485. In KAMterm, some commands are available all of the time, and others are
  486. available only while in Host Mode operation.  In this section, those
  487. commands which are available at all times will be discussed.  They are
  488. covered in order by the key that calls them (i.e., [ALT][B] will be
  489. covered before [ALT][F], etc.).
  490.  
  491. 6.1.1)  [ALT][B]
  492.  
  493. This command is used to transmit a ``brag file'' to the connected
  494. station. A window will popup and ask you for the name of the file you
  495. wish to transmit.  If this file is found, it will be transmitted just as
  496. if you had typed the information.  If, on the other hand, it is not
  497. found, KAMterm will complain about not finding the file, and return to
  498. normal operation.
  499.  
  500. During each phase of the file transmission, KAMterm will check to see
  501. that the transmit buffers have been cleared before proceeding to the
  502. next part of the file.  This is to help insure that the buffers in the
  503. KAM are not overrun by trying to send information faster than it can
  504. transmit it to the remote station.  If the KAM's buffers fill up, and it
  505. tells your computer to stop sending data, the buffers within KAMterm
  506. will not empty, and KAMterm will wait until it can move on.
  507.  
  508. This function is not really intended for use to upload large text files
  509. to a BBS, etc., though it could probably be used for such applications.
  510. It is intended for short files describing your station, and does not
  511. implement any error control with the remote station, and assumes that if
  512. the KAM is happy, the remote end is happy.
  513.  
  514. Functionality for uploading actual files will be added when I get the
  515. protocol specifications for file transfer programs used on packet BBS
  516. systems.
  517.  
  518. 6.1.2)  [ALT][C]
  519.  
  520. This command clears the screen in the current window.
  521.  
  522. 6.1.3)  [ALT][E]
  523.  
  524. This command toggles the local echo of characters to the screen (from
  525. KAMterm, not from the KAM).  Local echo from KAMterm is normally used
  526. when the KAM is not echoing characters you type.  In its normal
  527. operating mode, the KAM uses the ECHO command to determine whether or
  528. not you want input echoed back.  In Host Mode, the KAM does not echo
  529. characters back to you.  Therefore, KAMterm's default action is to echo
  530. characters back only in Host Mode operations.
  531.  
  532. It is important to note that this command affects the current operating
  533. mode only.  That is, the setting of the local echo parameter for normal
  534. mode and for Host Mode are two different settings.  [ALT][E] toggles the
  535. setting for the mode you are in when you use this command, without
  536. changing the other mode's value for this parameter.
  537.  
  538. The default values for echo in both normal and Host Mode operations can
  539. be set from the configuration file, as well.  This is discussed later.
  540.  
  541. 6.1.4)  [ALT][F]
  542.  
  543. This command is used to send a macro command file to the KAM.  You will
  544. be asked for the name of the file you wish to send to the KAM (the
  545. default will be the name of the startup command file, if one is
  546. defined).  This command can be used to change the KAM's configuration
  547. while running KAMterm, if desired.
  548.  
  549. The format of the macro file is the same as that for the startup and/or
  550. exit command files, which will be discussed later.
  551.  
  552. 6.1.5)  [ALT][G]
  553.  
  554. This command is used to call KAMterm's internal QSO logger (or,
  555. alternatively, an external logging program).  In the log function, you
  556. will be asked for the normal items you would enter in a logbook, such as
  557. the person's callsign, the start/end times for the QSO, the frequency,
  558. and so on.  If you are in Host Mode, KAMterm will maintain a different
  559. set of log information for each window.
  560.  
  561. The internal log function for KAMterm is far from elegant.  It is
  562. primarily intended as a quick and easy way to document the QSO
  563. information without having to switch between a note pad, a logbook, and
  564. the keyboard.
  565.  
  566. When entering QSO log information in the internal logger, do not save
  567. it to a file until the entry is complete.  Once you save an entry to
  568. disk, KAMterm assumes that you have completed that entry, and the next
  569. time you access the log in that window, it will be blank.
  570.  
  571. If you wish to set a default filename for the logfile, you can do so via
  572. the configuration file, kamterm.cfg.  This is also where you can
  573. instruct KAMterm to use an alternate logging program.  See the section
  574. on the configuration file for more details.
  575.  
  576. 6.1.6)  [ALT][H]
  577.  
  578. This command toggles between normal mode and Host Mode.  This command
  579. DOES change the KAM's configuration, as this is REQUIRED to change
  580. to/from Host Mode.
  581.  
  582. IMPORTANT NOTE:  Changing the KAM's state to/from Host Mode requires a
  583. reset, which will DROP ANY ACTIVE CONNECTS!!!
  584.  
  585. While in Host Mode, KAMterm keeps track of which windows' streams are
  586. connected, and will warn you if it knows you have connects active.  In
  587. normal mode, KAMterm doesn't know you're connected, and will NOT WARN
  588. YOU.  Also, if you have entered the program in Host Mode, you may have
  589. connects active that KAMterm hasn't detected, and it will not warn you
  590. if this is the case.  It is also quite probable that the reset will drop
  591. any connection to your PBBS that is active.
  592.  
  593. YOU ARE THEREFORE ADVISED to use the STATUS command to check to see if
  594. there are any connects active before using this command.  STATUS will
  595. tell you if any connects are active, including connects to your PBBS.
  596.  
  597. 6.1.7)  [ALT][I]
  598.  
  599. This command provides some general information about KAMterm,
  600. registration, etc.
  601.  
  602. 6.1.8)  [ALT][K]
  603.  
  604. This command brings up a menu which allows you to change the function
  605. key definitions.  The menu will appear in the upper left corner of the
  606. screen, and its exact nature will vary, depending on whether or not a
  607. mouse was detected on the system.  The items in the menu are as follows:
  608.  
  609.                 ┌────────────────────────────┐
  610.                 │ F2 through F10             │
  611.                 ├────────────────────────────┤
  612.                 │ ALT F1 through ALT F10     │
  613.                 ├────────────────────────────┤
  614.                 │ CTRL F1 through CTRL F10   │
  615.                 ├────────────────────────────┤
  616.                 │ SHIFT F1 through SHIFT F10 │
  617.                 ├────────────────────────────┤
  618.                 │ Load new function key file │
  619.                 ├────────────────────────────┤
  620.                 │ Save function keys to file │
  621.                 ├────────────────────────────┤
  622.                 │ Exit                       │
  623.                 └────────────────────────────┘
  624.  
  625. The first four options allow you to change the characters that will be
  626. sent to the KAM for the function keys themselves.  Note that plain [F1]
  627. is not included in this list---[F1] itself is reserved for HELP.
  628.  
  629. The fifth option, ``Load new function key file'', allows you to load a
  630. new set of function key definitions from a file.  You will be asked for
  631. the name of the file, and if it exists, it will be loaded.  Function key
  632. macro files can either be created through the program, or manually.
  633.  
  634. The sixth option, ``Save function keys to file'', allows you to save the
  635. function key definitions you have defined to a file.  You will be asked
  636. for the name of the file.   The results will then be stored to that
  637. file.
  638.  
  639. The last option simply exits the menu.  Pressing [ESC] will do the same
  640. thing.
  641.  
  642. The format for the function key file will be discussed in the section
  643. entitled FUNCTION KEY DEFINITION FORMAT.
  644.  
  645. 6.1.9)  [ALT][L]
  646.  
  647. This command toggles logging of the current window to a file.  If
  648. logging on the current window is not active, you will be asked for the
  649. name of the file to log to.
  650.  
  651. If the current window is being logged to a file, the far-left section of
  652. the status bar, which normally indicates the communications port
  653. parameters, will now show the filename that all data is being recorded
  654. into, and will be reverse-video relative to the remainder of the status
  655. bar.
  656.  
  657. In Host Mode, KAMterm will attempt to keep things organized in the log
  658. file by indicating who said what.  It will use the callsign it last
  659. detected as the current connected call for the remote end, and the
  660. callsign you defined (if any) in the configuration file.  If you have
  661. not defined a callsign, it will simply use ``YOU'' to refer to you.  If
  662. KAMterm doesn't know who you are connected to, this will not happen.
  663. You can manually define the callsign of the station you are connected to
  664. (if you need to) by using the [ALT][Z] command (discussed in the Host
  665. Mode Commands section).
  666.  
  667. 6.1.10) [ALT][M]
  668.  
  669. This gives a quick snapshot of the amount of memory available to KAMterm
  670. on your system.
  671.  
  672. 6.1.11)  [ALT][P]
  673.  
  674. This command allows you to change the communications parameters from
  675. within KAMterm.  You will be given the following list of options:
  676.  
  677.          ┌─────────────────────────────────────────────────┐
  678.          │         Port [1-4]:                             │
  679.          │         Port Speed:                             │
  680.          │ The KAM's Host Mode *REQUIRES a port setting    │
  681.          │ of N81 and bidirectional hardware flow control. │
  682.          └─────────────────────────────────────────────────┘
  683.  
  684. The port option selects the communications port, and valid inputs are
  685. [1], [2], [3], and [4], for COM1, COM2, COM3, and COM4, respectively.
  686.  
  687. The port speed option is just that---port speed.  The KAM does not
  688. support port speeds greater than 9600 bps.  KAMterm will, however, allow
  689. speed settings up to (and including) 115,200 bps.
  690.  
  691. Parity, data bits, and stop bits are automatically set at No Parity, 8
  692. bits per character, and 1 stop bit.  These settings are required for the
  693. KAM's Host Mode.
  694.  
  695. In addition, the KAM's Host Mode requires that flow control be in the
  696. form of bidirectional hardware flow control.
  697.  
  698. In this mode of flow control, the CTS (Clear To Send) control line is
  699. used to inform the computer that the KAM is ready to receive data, if
  700. the computer has any to transmit, and the RTS (Request To Send) control
  701. line is used by the computer to inform the KAM that it is ready to
  702. receive data, if any is available.  These operate independently of each
  703. other.  This mode of flow control is the preferred mode for use with
  704. high-speed modems, etc., as it adds the ability for the computer to stop
  705. data flow from the connected device when it is not ready.
  706.  
  707. 6.1.12)  [ALT][R]
  708.  
  709. This command allows you to execute an external DOS command.  You will
  710. be asked for the name of the command you wish to execute.  If you simply
  711. press [CR], you will simply shell out to DOS.  If you decide not to do
  712. anything here, simply press [ESC] to abort.
  713.  
  714. 6.1.12.A)  [ALT][V]
  715.  
  716. This command puts KAMterm in a mode in which characters you type are
  717. immediately transmitted to the TNC, instead of allowing you to enter an
  718. entire line, editing it as needed, and then sending the line only after
  719. you press [CR].
  720.  
  721. The primary use for this command is expected to be sending a '*' to the
  722. TNC for autobaud purposes.  An alternate application of this mode would
  723. be the non-packet HF modes (AMTOR, RTTY, CW, etc.) on the KAM.
  724.  
  725. There are, however, some substantial side-effects of this command under
  726. Host Mode operations.  When operating packet in Host Mode, using this
  727. mode would result in an AX.25 packet for each individual character you
  728. type!  This, obviously, would make throughput on the frequency virtually
  729. nil, exactly the same as if you had set PACLEN=1.
  730.  
  731. As a result of the above potential side-effects, this mode is only
  732. available under certain conditions.  Under normal mode, this command can
  733. be used at any time, and does not interfere with packet operations.
  734. Under Host Mode, however, this can only be used for HF Stream 0 with a
  735. KAM (i.e., for non-packet modes).
  736.  
  737. When this mode is in effect, the center portion of the status bar (which
  738. identifies the current window) will go into reverse-video, relative to
  739. the remainder of the status bar.  In Host Mode, this will only have any
  740. effect on HF Stream 0's window---all other streams' windows will
  741. function normally.
  742.  
  743. Note that when using this mode under Host Mode, special macro functions
  744. such as @amtor, @lamtor, @fec, etc., will not function---each
  745. character typed will be transmitted to the remote station as if it were
  746. any other data.  Also, you will not be able to edit any typos, etc., in
  747. this mode.  Once you type it, it's gone.
  748.  
  749. 6.1.13)  [ALT][X]
  750.  
  751. Exit KAMterm.  If you are in Host Mode, and have connects active (and if
  752. KAMterm knows about them) you will be asked if you REALLY want to exit.
  753. If you are in Host Mode, regardless of whether or not you have connects
  754. active, you will be given the option of leaving the KAM in Host Mode
  755. (press [h]).
  756.  
  757. 6.1.14)  [ALT][Y]
  758.  
  759. This command is used to set the date/time on the KAM.  It uses the
  760. current date and time setting on your computer.
  761.  
  762. 6.1.15)  [F1]
  763.  
  764. View HELP SCREEN.
  765.  
  766. 6.1.16)  [UP-ARROW]
  767.  
  768. If scrollback is enabled, and if scrollback buffers could be allocated
  769. to the current window, this will pull up the scrollback buffer for the
  770. current window.  Within scrollback, [PgUp], [PgDn], [HOME], [END], [UP],
  771. and [DOWN] will move you around in the scrollback buffer. [ESC] exits
  772. back to KAMterm's normal operation.
  773.  
  774. In addition, if you wish to save the entire scrollback buffer to a file,
  775. press [S].  KAMterm will then ask you for the filename that you wish to
  776. save the buffer to.  Press [ESC] instead of entering a filename to abort
  777. this operation.
  778.  
  779.  
  780.  
  781. 6.2)  HOST  MODE  COMMANDS
  782.  
  783. In KAMterm, some commands are available only while in Host Mode
  784. operation. In this section, those commands which are available only
  785. while in Host Mode be discussed.
  786.  
  787. 6.2.1)  [ALT][A]
  788.  
  789. This command loads a primative protocol analyzer.  This function was
  790. originally built for testing purposes within the program, but users may
  791. find it interesting, and as a result, it has remained in the program
  792. code.
  793.  
  794. 6.2.2)  [ALT][D]
  795.  
  796. This command will delete the current window.  It cannot be used on
  797. either the COMMAND WINDOW or the MONITOR WINDOW.  If KAMterm is under
  798. the impression that the stream associated with window you wish to remove
  799. is connected, it will ask you if you are really sure you want to delete
  800. it. Doing so will not affect the connect itself, but as soon as
  801. information is received for that stream, the window will be created once
  802. again (except that it will no longer have the connected callsign
  803. associated with it, and will not even show up as being connected in the
  804. STATUS BAR).
  805.  
  806. 6.2.3)  [ALT][N]
  807.  
  808. This command allows you to change the stream associated with the current
  809. window.  If the stream associated with that window is connected (or at
  810. least, if KAMterm believes it is), you will be warned that a connect is
  811. active, and asked if you really want to do this.
  812.  
  813. This command can be used under the COMMAND WINDOW, but you will probably
  814. find it easier to use the ``faked'' TNC stream switch commands (see the
  815. information on faked commands later in this section).
  816.  
  817. 6.2.4)  [ALT][S]
  818.  
  819. This command is used to send special non-packet HF port commands to the
  820. KAM.  This is needed due to the fact that in Host Mode, the KAM does not
  821. use the normal CTRL-C,n directives.  This will bring up a menu of the
  822. directives you can send.  All non-packet HF port directives documented
  823. for Host Mode (currently, Kantronics firmware versions 4.0 through 6.0)
  824. are implemented.
  825.  
  826. 6.2.5)  [ALT][T]
  827.  
  828. In Host Mode, the KAM does not use the PACLEN parameter as it would in
  829. normal command mode.  Instead, the length of transmitted packets is
  830. determined by the block size of Host Mode data blocks.
  831.  
  832. KAMterm uses two parameters (defined in the configuration file, and
  833. discussed in the section on setting up the configuration file) called
  834. VHFPACLEN and HFPACLEN to determine the default packet length to be
  835. transmitted.  This option allows you to override the default values you
  836. select for a given window.
  837.  
  838. You will be asked for the new value to be used within this window when
  839. you use this command.  The current maximum is 78, as this is the maximum
  840. number of characters you can type on one line in KAMterm.  If you ask
  841. for a higher number, KAMterm will currently back it off to 78. When the
  842. ability to transmit entire files using the various protocols used on
  843. packet BBS systems is added, this will be modified accordingly to avoid
  844. artificially limiting the efficiency of such transfers.
  845.  
  846. 6.2.6)  [ALT][W]
  847.  
  848. This command is used to create a new STREAM WINDOW. If you already have
  849. too many windows open, KAMterm will complain if you (or an incoming
  850. connect) try to open another window.  Also, if a STREAM WINDOW is
  851. already open for the port/stream combination you request, the window
  852. will not be created. Otherwise, the window will be created with the
  853. information you give it.
  854.  
  855. BE ADVISED, however, that as you open more windows, things slow down a
  856. bit when switching from one window to another.  On the system where this
  857. was developed (20 MHz 386 w/ 2 Meg RAM, running Digital Research Dos
  858. 6.0), this did not become noticeable until about 8 to 10 windows were
  859. open (this includes the COMMAND WINDOW and the MONITOR WINDOW).  If
  860. things get too slow, and you have inactive windows, you may wish to
  861. close them.
  862.  
  863. 6.2.7)  [ALT][Z]
  864.  
  865. This command is used to manually override KAMterm's concept of who you
  866. are connected to on a given stream, or even whether or not you are
  867. connected at all.  You will first be asked if the window's stream is
  868. connected.  If you respond NO ([N]), all connect information for that
  869. window will be cleared.  If, on the other hand, you respond YES ([Y]),
  870. you will then be asked for the correct callsign of the person/bbs you
  871. are connected to.
  872.  
  873. This command is primarily intended for either of two purposes.  First,
  874. if you start KAMterm in Host Mode, and there is already a connect
  875. active, KAMterm will not see the incoming status message, and will not
  876. register the connect---this allows you to manually correct for this
  877. problem. Second, if (and I have never seen this happen, but it is
  878. possible) KAMterm should miss an incoming connect message from a
  879. digipeater, you can insert the correct information yourself.
  880.  
  881. 6.2.8)  [ALT][=]
  882.  
  883. This command is used to tell KAMterm that the window you are currently
  884. in is the PRIORITY stream, and that you want to keep tabs on what is
  885. going on in that window.  Using this command will create a PRIORITY
  886. WINDOW, which uses the top four lines of the screen when any other
  887. window is displayed on the screen to display incoming text that is being
  888. displayed on the window you have defined to be your PRIORITY stream.
  889.  
  890. This could be used, for example, for sitting on a DX cluster while
  891. working packet, RTTY, etc., over in another window.  With the PRIORITY
  892. WINDOW, you don't have to check the other window every few minutes to
  893. see if anything interesting has come in---you can have a smaller
  894. version of that window at the top of your screen to keep an eye on.
  895.  
  896. This command can also be used when the PRIORITY WINDOW is active to
  897. CHANGE the stream that it monitors (i.e., you don't have to delete an
  898. existing PRIORITY WINDOW just to change the stream you wish to keep tabs
  899. on).
  900.  
  901. 6.2.9)  [ALT][-]
  902.  
  903. This command is used when you want to temporarily hide the PRIORITY
  904. WINDOW, but you still want to keep it active.  This simply toggles
  905. whether or not the priority window is actually displayed on the screen.
  906.  
  907. 6.2.10)  [ALT][0]
  908.  
  909. This command completely deletes the PRIORITY WINDOW.
  910.  
  911. 6.2.11)  [ALT][1]
  912.  
  913. This command creates the AMTOR XMITECHO WINDOW.  This window also
  914. applies for PacTOR, under Kantronics firmware at version 6 and above.
  915.  
  916. This is the result of another addition in version 5 of the KAM's
  917. firmware, the ability to use the XMITECHO parameter on the KAM when
  918. running AMTOR under Host Mode. If this window is active, it will display
  919. the KAM's status on transmitting the text you type.  Unlike normal mode
  920. operations, this does not impact the normal echoing of characters to the
  921. screen as you type them.  Instead, this will take the form of a small
  922. window in the upper portion of the screen (just like the PRIORITY WINDOW
  923. described earlier).
  924.  
  925. This option requires that the KAM's XMITECHO parameter be turned on to
  926. operate.
  927.  
  928. This option is not documented in the version 4 documentation, but may
  929. work there as well.  It is, therefore, not restricted within
  930. KAMterm to version 5 firmware or above.
  931.  
  932. To create this window, you press [ALT][1].  The port/stream of the
  933. current window must be HF/0 (HF PORT 0).  This small window will not be
  934. displayed in other streams' windows.  If the PRIORITY WINDOW is also
  935. active, this will override that window.
  936.  
  937. If the AMTOR XMITECHO WINDOW does not exist, and XMITECHO is turned on,
  938. incoming data blocks identified as XMITECHO data will be treated as any
  939. other data coming from the KAM, and displayed in the appropriate window
  940. along with other incoming text.
  941.  
  942. 6.2.12)  [ALT][2]
  943.  
  944. This command is used when you want to temporarily hide the AMTOR
  945. XMITECHO WINDOW, but you still want to keep it active.  This simply
  946. toggles whether or not the AMTOR XMITECHO window is actually displayed
  947. on the screen.
  948.  
  949. 6.2.13)  [ALT][3]
  950.  
  951. > This command completely deletes the AMTOR XMITECHO WINDOW.
  952.  
  953. 6.2.14)  [HOME]
  954.  
  955. This command takes you immediately to the COMMAND WINDOW.  It will also
  956. set the stream and port associated with the COMMAND WINDOW to that which
  957. is associated with the window you were in when you used the HOME key.
  958. (This last bit does not, however, apply to the MONITOR WINDOW, or the
  959. PROTOCOL ANALYZER window if it is open, as these have no actual
  960. stream/port association.  In this case, the stream/port associated with
  961. the COMMAND WINDOW is left as it was.)
  962.  
  963. 6.2.15)  [PgDn]
  964.  
  965. This takes you to the next window active in KAMterm.  If you are at the
  966. last window, it will wrap you around to the COMMAND WINDOW.
  967.  
  968. 6.2.16)  [PgUp]
  969.  
  970. This takes you to the previous window active in KAMterm.  If you are at
  971. the COMMAND WINDOW, it will wrap you around to the last active window.
  972.  
  973. 6.2.17)  ``Faked''  Commands
  974.  
  975. Normally, Host Mode doesn't have some of the things normal command mode
  976. does, and this can be rather annoying at times.  To make things easier,
  977. KAMterm ``fakes'' some of these things, and takes the appropriate action
  978. for you.  These pseudo-commands are only effective in the COMMAND
  979. WINDOW.
  980.  
  981. Fake command prompt (hcmd:)
  982.  
  983. Normally, the TNC gives you a cmd: prompt telling you it is ready to
  984. accept commands.  When you are used to this, it can be distracting to
  985. simply get a blank screen staring at you in Host Mode.  To eliminate
  986. this problem, KAMterm generates its own prompt, hcmd: (the 'h' is added
  987. to avoid confusion with the real cmd: prompt). A simple [CR] will result
  988. in new hcmd prompt.  This is done for aesthetics only, and has no impact
  989. or interaction with the TNC.
  990.  
  991. |n and ~n
  992.  
  993. In Host Mode, the KAM does not respond to the stream switch commands as
  994. it does in normal command mode, because each block of data transmitted
  995. to and from the KAM contains its own stream/port information, and
  996. setting the KAM to a stream/port would have no meaning.
  997.  
  998. KAMterm will, however, allow you to use the stream switch commands as if
  999. you were in normal command mode.  The difference here is the result.  In
  1000. normal command mode, using these changes all I/O with the KAM over to
  1001. another stream, which will be affected by what you type.  In Host Mode,
  1002. KAMterm uses these commands internally to change the stream/port
  1003. combination associated with the COMMAND WINDOW.  This will have
  1004. basically the same effect, since your commands will now impact the new
  1005. stream you have selected---it is simply handled within KAMterm instead
  1006. of by the TNC.
  1007.  
  1008. 6.2.18)  AMTOR  SPECIAL  COMMANDS
  1009.  
  1010. To make working AMTOR a bit simpler, three special commands have been
  1011. created in KAMterm.  These are @AMTOR, @FEC, and @LAMTOR.  These special
  1012. commands are entered directly as if they were text to be transmitted
  1013. (i.e., in the LOCAL WINDOW---similar to the faked commands '|n' and
  1014. '~n'), and will only work under the following conditions:
  1015.  
  1016.    *) You must be in Host Mode
  1017.    *) The current port/stream must be HF/0
  1018.    *) You are assumed to be planning to work AMTOR
  1019.  
  1020. Note that these commands are not implemented as function key macros at
  1021. this time, nor are they in effect when transmitting macro files. This
  1022. may be added in the future, if there are requests to do so.
  1023.  
  1024. Normally, when working AMTOR, you might listen for a CQ using the KAM's
  1025. LAMTOR command, and then call the remote station using either Mode A
  1026. (ARQ) or Mode B (FEC).  To do this, however, you must first put the KAM
  1027. back into packet mode (to remove it from LAMTOR mode), and then go to
  1028. the COMMAND window and enter either ``AMTOR selcal'' or ``FEC selcal''
  1029. to connect to the remote station.
  1030.  
  1031. These special commands allow you to switch from whatever mode you might
  1032. be in to the appropriate AMTOR mode, unless you are already connected on
  1033. an HF packet stream (in which case, the KAM will probably not allow you
  1034. to do this).
  1035.  
  1036. @AMTOR is used to immediately enter ARQ mode.  If it is followed by the
  1037. SELCAL of the remote station you wish to connect with, it will cause the
  1038. KAM to attempt to connect to that station.  If it is not followed by any
  1039. additional arguments, it will simply place the KAM in ARQ mode.
  1040.  
  1041. Likewise, @FEC can either be used to connect with another station in
  1042. AMTOR FEC mode, or simply to enter that mode.
  1043.  
  1044. @LAMTOR takes no arguments---it simply puts you into the LAMTOR mode,
  1045. where you can monitor both ARQ and FEC transmissions, but cannot enter
  1046. transmit mode.
  1047.  
  1048. 6.2.19)  PacTOR  SPECIAL  COMMANDS
  1049.  
  1050. To make working PacTOR (version 6 or higher firmware required) a bit
  1051. simpler, two special commands have been created in KAMterm.  These
  1052. are @PACTOR and @PTLISTEN.  These special commands are similar to the
  1053. AMTOR special commands, @amtor, @fec, and @lamtor, and work as
  1054. described below.
  1055.  
  1056. @PACTOR is used to immediately enter PacTOR mode.  If it is followed by
  1057. the callsign of the remote station you wish to connect with, it will
  1058. cause the KAM to attempt to connect to that station.  If it is not
  1059. followed by any additional arguments, it will simply place the KAM in
  1060. PacTOR standby mode.
  1061.  
  1062. @PTLISTEN takes no arguments---it simply puts you into the PacTOR
  1063. LISTEN (PTLISTEN) mode, where you can monitor PacTOR transmissions, but
  1064. cannot enter transmit mode.
  1065.  
  1066.  
  1067. 7.0)  THE  CONFIGURATION  FILE
  1068.  
  1069. KAMterm uses a configuration file called kamterm.cfg, which allows you
  1070. to change most aspects of its configuration.  This file must exist,
  1071. however, it need not have all configuration options in it (or any of
  1072. them, for that matter).  Any options which are not set within this file
  1073. simply revert to their default values.  If the file is not found at all,
  1074. the system will create one for you with only the communications
  1075. parameters.
  1076.  
  1077. Within the configuration file, anything following a '#' character is
  1078. treated as a comment, blank lines will be ignored, and commands within
  1079. the file are not case-sensitive.  Only one command is allowed per line
  1080. in the file.  In the examples shown below (and in the sample
  1081. configuration file), a colon follows the field name---this is
  1082. optional, and is included for readability only.  KAMterm ignores this
  1083. completely.
  1084.  
  1085. Throughout this section, example commands will be represented as:
  1086.  
  1087.         INITFILE:  startup.kam
  1088.  
  1089. There may be several commands grouped together, but the groups of
  1090. commands (or the command) will have a blank space above and below it,
  1091. and will be indented.  If KAMterm does not understand the input in any
  1092. line, it will advise you of this, and tell you the offending line number
  1093. within the configuration file.
  1094.  
  1095. 7.1)  GENERAL  OPTIONS
  1096.  
  1097. There are several types of options which may be set from the
  1098. configuration file.  This section will cover those which are general in
  1099. nature, and don't apply to any specific grouping.
  1100.  
  1101. 7.1.1)  EXPERTMODE
  1102.  
  1103. Define EXPERTMODE (uncomment it) if you are familiar with KAMterm and
  1104. pretty much know your way around.  If this isn't defined, you will get
  1105. the odd pointer here and there telling you what's going on, and how to
  1106. deal with it.  This functionality is very new right now, but it will no
  1107. doubt grow in the future.  YOU TELL ME.
  1108.  
  1109. 7.1.2)  CAPBUFF
  1110.  
  1111. CAPBUFF is the size of the scrollback buffer for EACH WINDOW.  Take care
  1112. when increasing this number---remember that each stream will have this
  1113. allocated to it, and that eats memory.  I suggest you start with the
  1114. default (100 lines) and gradually increase.  If a window is opened, and
  1115. there isn't room to allocate this number of lines, that window will not
  1116. have a scrollback buffer, but will be opened (provided there is enough
  1117. memory left to do so).
  1118.  
  1119. Here are some sizes for 100 line increments of the scrollback buffer
  1120. (note that there is clearly a pattern here):
  1121.  
  1122.       0 lines:  scrollback disabled
  1123.     100 lines:  18,400 bytes per active window
  1124.     200 lines:  28,400 bytes
  1125.     300 lines:  38,400 bytes
  1126.      ......      .......
  1127.     800 lines:  88,400 bytes
  1128.  
  1129. The example below sets the scrollback buffer size to 200 lines.
  1130.  
  1131.         CAPBUFF: 200
  1132.  
  1133. 7.1.3)  INITFILE  and  EXITFILE
  1134.  
  1135. These options set the filenames for the optional command (macro) files
  1136. to be sent to the KAM when starting and exiting KAMterm.  In the
  1137. following example, when KAMterm is loaded, it will transmit all commands
  1138. in the file called startup.kam to the TNC, and right before exiting,
  1139. will do the same for the file finish.kam.
  1140.  
  1141.         INITFILE:  startup.kam
  1142.         EXITFILE:  finish.kam
  1143.  
  1144. The filenames can be anything you choose, provided of course that it is
  1145. a legal dos filename, and that the total length of the path/filename
  1146. does not exceed 80 characters.  The format for these files will be
  1147. covered in the section called FORMAT FOR INIT/EXIT COMMAND FILES.
  1148.  
  1149. 7.1.4)  QSO LOG OPTIONS
  1150.  
  1151. There are several options which can be used to customize the operation
  1152. of the QSO logging functionality in KAMterm.  These include setting a
  1153. default file to log information to, setting up an external logging
  1154. program, asking KAMterm to automatically (and silently) record the times
  1155. for connects and disconnects, etc.
  1156.  
  1157. The first option is LOGFILE.  This sets the default filename that
  1158. KAMterm will use when logging QSOs to a file.  You will still be asked
  1159. for a filename, and can choose an alternate file if you so desire. This
  1160. is optional, and if this is not found in your configuration file,
  1161. KAMterm will simply present a blank field when asking for the filename.
  1162.  
  1163. The next option is AUTOLOGFILE, which tells KAMterm the name of the file
  1164. to which connect/disconnect times will be (silently) recorded. If this
  1165. option is not included, this information simply will not be recorded.
  1166.  
  1167. In the following example, the default filename to use for manually
  1168. entered logs is kamterm.log, and the filename for the automatic
  1169. recording of start/end times is autolog.kam.
  1170.  
  1171.          LOGFILE: kamterm.log
  1172.          AUTOLOGFILE: autolog.kam
  1173.  
  1174. In addition to these options, if you wish to use an external logging
  1175. program, you would identify it to KAMterm by using the LOGGER option.
  1176. With this option, when you press [ALT][G], you will execute the external
  1177. logging program, and when you exit from it, you will return to KAMterm.
  1178. If you want KAMterm to check with you before calling the external
  1179. logging program (e.g., if you sometimes use the internal logger), you
  1180. can use the ASKLOGGER option.  If ASKLOGGER is not used in your
  1181. configuration file, KAMterm will run the external logging program every
  1182. time you press [ALT][G].
  1183.  
  1184. In the following example, the external logging program is called by the
  1185. command ``mylogger logfile.txt'' and we do want KAMterm to ask before
  1186. calling the external logger.
  1187.  
  1188.          LOGGER: mylogger logfile.txt
  1189.          ASKLOGGER: YES
  1190.  
  1191. 7.1.5)  MORSESPEED
  1192.  
  1193. KAMterm uses Morse code for a few minor status messages and error
  1194. messages. This option allows you to determine the code speed at which
  1195. Morse code messages will be sent from within KAMterm.  The default is 20
  1196. WPM. If this parameter is set to 0 (zero) words per minute, Morse
  1197. messages will be disabled.
  1198.  
  1199. The example below shows the default setting of 20 WPM:
  1200.  
  1201.         MORSESPEED: 20
  1202.  
  1203. NOTE:  According to the documentation for Turbo C++, the functions used
  1204. for determining the delays used in generating the Morse code messages do
  1205. not vary with the CPU speed of the computer the program is run on. Tests
  1206. run on multiple computers have verified this, however, if you should
  1207. happen to find this to be in error, you may need to experiment a bit.
  1208.  
  1209. 7.1.6)  MORSETONE
  1210.  
  1211. This option allows you to change the frequency of the tones used for
  1212. Morse code messages.  The default is 600 Hz, as represented in the
  1213. example below:
  1214.  
  1215.         MORSETONE: 600
  1216.  
  1217. 7.1.7)  MYCALL
  1218.  
  1219. MYCALL is the callsign that will be used for logging to a file. This
  1220. does not affect the value in the TNC in any way.  The example below sets
  1221. MYCALL to N5IAL.
  1222.  
  1223.         MYCALL: N5IAL
  1224.  
  1225. 7.1.8)  NORMALECHO  and  HOSTECHO
  1226.  
  1227. NORMALECHO and HOSTECHO are used to determine if KAMterm should default
  1228. to echoing text locally in normal command mode and Host Mode,
  1229. respectively.  The values selected for these must be either 1 for on or
  1230. 0 (zero) for off.
  1231.  
  1232. The default for normal mode is NOT to echo text locally, and the default
  1233. for Host Mode is to echo text.  The examples shown below illustrate how
  1234. those parameters would be set if they were included in the startup file.
  1235.  
  1236.         NORMALECHO: 0
  1237.         HOSTECHO: 1
  1238.  
  1239. 7.1.9)  P1PACLEN  and  P2PACLEN
  1240.  
  1241. These options are exactly the same as VHFPACLEN and HFPACLEN,
  1242. respectively, but are provided for the non-KAM multi-port TNCs, who do
  1243. not refer to ports as VHF and HF, but rather, as PORT 1 and PORT 2.
  1244.  
  1245. Internally, KAMterm will not know the difference between P1PACLEN or
  1246. VHFPACLEN, and P2PACLEN or HFPACLEN, regardless of the type of TNC you
  1247. are using.  These new options are for basically for aesthetic purposes
  1248. and to avoid confusion for non-KAM users.
  1249.  
  1250. 7.1.10)  VHFPACLEN  and  HFPACLEN
  1251.  
  1252. In Host Mode, the KAM does not use the settings defined by its PACLEN
  1253. setting.  This is left up to the Host Mode software.  Therefore, KAMterm
  1254. provides two parameters, VHFPACLEN and HFPACLEN, which correspond to the
  1255. VHF and HF portions of the PACLEN setting, respectively.
  1256.  
  1257. In KAMterm, a line of text is limited to 78 characters (limited by the
  1258. screen size), and the maximum setting for each of these options is,
  1259. therefore, 78 (a higher value would have no meaning).  When the various
  1260. file transfer protocols used on packet BBS systems is added, this will
  1261. be changed to avoid artificially limiting the throughput on file
  1262. transfers. Currently, the default for each of these settings is 78
  1263. characters, as shown in the examples below.
  1264.  
  1265.         HFPACLEN:  78
  1266.         VHFPACLEN:  78
  1267.  
  1268. 7.1.11)  MARGINBELL
  1269.  
  1270. If you choose to do so, you can activate a margin bell that will sound
  1271. when you reach the specified number of characters from the left margin
  1272. (similar to the margin bell on actual mechanical typewriters).  The
  1273. default option is for this to be turned off, and if nothing is setup
  1274. in the configuration file, there will be no bell.  If, however, you wish
  1275. to set the margin bell to sound at a given column, you would setup
  1276. something like the example below, which assumes you want the bell to
  1277. sound 5 spaces from the right margin (the right margin is at column 78,
  1278. therefore, you would want it to sound when you hit column 73):
  1279.  
  1280.         MARGINBELL:  73
  1281.  
  1282. 7.1.12)  TNCTYPE
  1283.  
  1284. This parameter tells KAMterm what type of TNC you are using, and
  1285. allows it to taylor its operation to fit your needs.  Valid options
  1286. are as follows:
  1287.  
  1288. *) KAM---tells KAMterm you are using the Kantronics All Mode (KAM).
  1289.    All features of KAMterm will be available to you (within the
  1290.    limits of your firmware revision---see KAMVERSION).
  1291. *) MPORT---tells KAMterm you are using a multi-port Kantronics
  1292.    TNC other than the KAM (e.g., the KPC-4).  All KAMterm features
  1293.    will be enabled except those dealing with non-packet HF modes.
  1294.    Port names will refer to PORT 1 and PORT 2, instead of VHF and HF.
  1295. *) SPORT---tells KAMterm you are using a single-port Kantronics
  1296.    TNC (e.g., the KPC-2, KPC-2400, and KPC-1).  With this option, there
  1297.    are no references to ports at all---only the stream is identified.
  1298. *) OTHER---tells KAMterm that you are not using a Kantronics TNC
  1299.    at all.  At the present time, only the Kantronics Host Mode
  1300.    interface protocol is supported.  When this option is in effect,
  1301.    KAMterm will not allow you to use any Host Mode operations.
  1302.  
  1303. NOTE:  If your TNC does support Host Mode, and you would like to see it
  1304. supported under KAMterm, please contact me---I would like to expand
  1305. KAMterm to support other Host Mode interface protocols for a future
  1306. revision.  You might also want to take a look at KTterm, which is geared
  1307. toward non-Host operations specifically.
  1308.  
  1309. If nothing is listed under this parameter, the default is to assume that
  1310. you have a KAM attached.
  1311.  
  1312. 7.1.13)  STARTHOST and ENDHOST
  1313.  
  1314. These options control whether or not KAMterm assumes it is supposed
  1315. to startup and/or exit in Host Mode.
  1316.  
  1317. If you have STARTHOST defined in the configuration file, KAMterm will
  1318. assume that your TNC is already in Host Mode when it starts up, and
  1319. will immediately initialize itself in Host Mode.  If, in fact, the TNC
  1320. is not already in Host Mode, KAMterm and your TNC will not be able
  1321. to communicate.  You can solve this problem by using [ALT][h] to leave
  1322. Host Mode (within KAMterm), and then use it again to go right back into
  1323. Host Mode (taking the TNC with you).
  1324.  
  1325. If you have ENDHOST defined in the configuration file, and if you are
  1326. in Host Mode when you exit (i.e., you haven't dropped into normal mode
  1327. first), KAMterm will leave your TNC in Host Mode when it exits.  If
  1328. you try to use a plain (i.e., dumb) terminal program after that, it will
  1329. not be able to communicate with your TNC, because the TNC is still
  1330. expecting Host Mode data blocks.
  1331.  
  1332. These parameters are generally used if you only use Host Mode with your
  1333. TNC.  They are important in this case, because changing in and out of
  1334. Host Mode requires a soft reset on the TNC, which will drop any active
  1335. connections (including connects to your PBBS).  However, if you plan to
  1336. use other terminal programs with your TNC, use them with care (i.e.,
  1337. make sure you know what you're doing)!
  1338.  
  1339. 7.1.14   KAMVERSION
  1340.  
  1341. In order to prevent problems with TNCs running older versions of the
  1342. firmware, KAMterm requires that you specifically tell it if you are
  1343. running revisions above 4.x.  To do this, use the following in the
  1344. configuration file:
  1345.  
  1346.         KAMVERSION: 5
  1347.  
  1348. The above tells KAMterm that you are running under version 5 of the
  1349. firmware.  This number must be an integer number (i.e., do not use 5.1,
  1350. etc.).  If you are not running version 5 of the firmware (or higher),
  1351. this need not be included, as the default is to assume that you are
  1352. running firmware prior to version 5.
  1353.  
  1354. One of the nice things that version 5.0 of the KAM firmware added is
  1355. the ability of the LEDs on the front panel to act as they would in
  1356. normal command mode.  So, for instance, CON now indicates that the
  1357. currently active stream is connected.  KAMterm will send an update
  1358. command to the KAM when you change windows to cause it to show the
  1359. current status for the stream associated with the window you change
  1360. to.  This does not, however, apply to the MONITOR window or to the
  1361. PROTOCOL ANALYZER windows, as these have no stream associated with
  1362. them.  When changing to these windows, the KAM will remain on the
  1363. last active stream.
  1364.  
  1365. Version 6, of course, adds PacTOR to the KAM, and KAMterm has some
  1366. internal macros for PacTOR (like AMTOR), that can reduce the time
  1367. required to change modes, etc., if you have told KAMterm that you
  1368. have version 6 firmware (otherwise, these macros are disabled).
  1369.  
  1370. 7.2)  COMMUNICATIONS  PARAMETERS
  1371.  
  1372. This section discusses the communications parameters that can be set
  1373. from the configuration file.
  1374.  
  1375. 7.2.1)  COMMPORT
  1376.  
  1377. COMMPORT sets the default serial port which KAMterm will use, and must
  1378. be one of 1, 2, 3, or 4, for COM1 through COM4, respectively.  In the
  1379. example below, COM1 (the default) is selected.
  1380.  
  1381.         COMMPORT: 1
  1382.  
  1383. 7.2.2)  PORTSPEED
  1384.  
  1385. PORTSPEED sets the default serial port speed which KAMterm will use.  As
  1386. this is being written, the KAM does not allow port speeds higher than
  1387. 9600 bps (KAMterm will support anything up to and including 115,200 bps).
  1388. The example below shows the default setting, 9600 bps, and how it would
  1389. be set in the file.
  1390.  
  1391.         PORTSPEED: 9600
  1392.  
  1393. 7.2.3)  NONSTDPORT (for non-standard serial ports)
  1394.  
  1395. This command is used for serial ports that are not using the
  1396. ``standard'' base address and interrupt (IRQ) combinations shown
  1397. in the following table:
  1398.  
  1399.           ╔══════════╤═════════════╤══════════════╗
  1400.           ║ COM PORT │ IRQ CHANNEL │ BASE ADDRESS ║
  1401.           ╠══════════╪═════════════╪══════════════╣
  1402.           ║     1    │      4      │ 0x3f8 (3F8H) ║
  1403.           ╟──────────┼─────────────┼──────────────╢
  1404.           ║     2    │      3      │ 0x2f8 (2F8H) ║
  1405.           ╟──────────┼─────────────┼──────────────╢
  1406.           ║     3    │      4      │ 0x3e8 (3E8H) ║
  1407.           ╟──────────┼─────────────┼──────────────╢
  1408.           ║     4    │      3      │ 0x2e8 (2E8H) ║
  1409.           ╚══════════╧═════════════╧══════════════╝
  1410.  
  1411. If your serial port uses an IRQ channel and/or base address other than
  1412. those listed in the table above, you must use this parameter to tell
  1413. KAMterm where your port actually is.
  1414.  
  1415. While this does provide a great deal more flexibility, there are still
  1416. limitations on what can be supported (for now, at least---I hope to
  1417. change this).  Only COM1--COM4 are supported, and the interrupt (IRQ)
  1418. line must be between IRQ3 and IRQ7, inclusive.  Anything outside of
  1419. this range will fail.  If you give KAMterm an incorrect base address,
  1420. it may think it's correctly initialized the port, but it will never see
  1421. CTS go high, and you won't get beyond a warning telling you that CTS is
  1422. low.  Use this command with care, and make sure you know what you're
  1423. doing.
  1424.  
  1425. The following example shows how this command would be used to specify
  1426. a serial port that is COM1 (first argument is '1'), uses IRQ6 (the
  1427. second argument is '6'), and has a base address of 0x3f8 (the third
  1428. argument).
  1429.  
  1430.         NONSTDPORT 1 6 0x3f8
  1431.  
  1432. If all three arguments are not present, this command will fail.  Note
  1433. that a ``-1'' (negative one) may be used in cases where the argument
  1434. is, in fact, the default.  So, for the above, we see that the default
  1435. base address for COM1 is 0x3f8, and that's what our example serial
  1436. port uses, so this could have also been written as shown below.
  1437.  
  1438.         NONSTDPORT 1 6 -1
  1439.  
  1440. Again, make sure you know what you are doing here.  This is one area
  1441. where a simple error could easily lock up your machine.  If you use
  1442. anything other than the standard configurations (as in the table above),
  1443. I suggest that you keep a table showing your system's configuration
  1444. (both interrupt line and base address) for every serial port, mouse,
  1445. soundboard, etc., that you have installed.  This helps prevent not only
  1446. software errors, but errors when installing new hardware, as well.[1]
  1447.  
  1448. ---------
  1449. [1]  Actually, this is a good idea, period, even if your hardware uses
  1450.      only standard configurations.  I have saved myself a lot of time
  1451.      that would have been spent digging in manuals for boards that
  1452.      aren't properly labelled, etc., by using a simple table containing
  1453.      this information, and always keeping it up-to-date (which, of
  1454.      course, is obviously required).
  1455.  
  1456.  
  1457. 7.3)  COLOR  SETTINGS
  1458.  
  1459. COLOR commands take exactly 2 arguments, and they must be in the right
  1460. order.  The first argument is the parameter which we wish to associate
  1461. the color with, and the second is the color itself.
  1462.  
  1463. A setup program is included which will allow you to easily configure
  1464. the colors to be used by KAMterm, as well as the other configuration
  1465. options.  It is recommended that you use this configuration program,
  1466. as it will let you change color definitions with one keystroke and
  1467. immediately see the result on the screen.
  1468.  
  1469. Monochrome users will only see different shades of gray with these
  1470. colors, but they can still gain a lot by going through this
  1471. configuration process.
  1472.  
  1473. Monochrome VGA users (e.g., those with laptop LCD screens) may need to
  1474. use the {mode bw80} command to specifically force monochrome mode in
  1475. order to get the window manager to use gray-scale instead of actual
  1476. colors.
  1477.  
  1478. Choices for colors are as follows:
  1479.  
  1480.          BLACK         DARKGRAY
  1481.          BLUE          LIGHTBLUE
  1482.          GREEN         LIGHTGREEN
  1483.          CYAN          LIGHTCYAN
  1484.          RED           LIGHTRED
  1485.          MAGENTA       LIGHTMAGENTA
  1486.          BROWN         YELLOW
  1487.          LIGHTGRAY     WHITE
  1488.  
  1489.  
  1490. The first set of color parameters deal with the colors assigned to the 3
  1491. key areas of the screen in normal operations (i.e., not in a menu,
  1492. etc.). The second set of color parameters deal with the colors used for
  1493. popup windows, menus, text entry (e.g., when you are asked for a
  1494. filename), and so on.  These are shown in the following tables.
  1495.  
  1496.     ╔═════════════════════════════════════════════════════════════════╗
  1497.     ║          Screen Colors for Normal Operations                    ║
  1498.     ╠══════════════════════╤══════════════════════════════════════════╣
  1499.     ║  STATFG              │  STATUS LINE foreground                  ║
  1500.     ╟──────────────────────┼──────────────────────────────────────────╢
  1501.     ║  STATBG              │  STATUS LINE background                  ║
  1502.     ╟──────────────────────┼──────────────────────────────────────────╢
  1503.     ║  PRIFG               │  PRIORITY WINDOW foreground              ║
  1504.     ╟──────────────────────┼──────────────────────────────────────────╢
  1505.     ║  PRIBG               │  PRIORITY WINDOW background              ║
  1506.     ╟──────────────────────┼──────────────────────────────────────────╢
  1507.     ║  LOCALFG             │  LOCAL WINDOW foreground                 ║
  1508.     ╟──────────────────────┼──────────────────────────────────────────╢
  1509.     ║  LOCALBG             │  LOCAL WINDOW background                 ║
  1510.     ╟──────────────────────┼──────────────────────────────────────────╢
  1511.     ║  MAINFG              │  MAIN COMMAND WINDOW foreground          ║
  1512.     ╟──────────────────────┼──────────────────────────────────────────╢
  1513.     ║  MAINBG              │  MAIN COMMAND WINDOW background          ║
  1514.     ╟──────────────────────┼──────────────────────────────────────────╢
  1515.     ║  MONFG               │  MONITOR WINDOW foreground               ║
  1516.     ╟──────────────────────┼──────────────────────────────────────────╢
  1517.     ║  MONBG               │  MONITOR WINDOW background               ║
  1518.     ╟──────────────────────┼──────────────────────────────────────────╢
  1519.     ║  STREAMFG            │  STREAM WINDOW(s) foreground             ║
  1520.     ╟──────────────────────┼──────────────────────────────────────────╢
  1521.     ║  STREAMBG            │  STREAM WINDOW(s) background             ║
  1522.     ╟──────────────────────┼──────────────────────────────────────────╢
  1523.     ║  ECHOFG              │  local echo foreground (any window)      ║
  1524.     ╟──────────────────────┼──────────────────────────────────────────╢
  1525.     ║  ECHOBG              │  local echo background (any window)      ║
  1526.     ╚══════════════════════╧══════════════════════════════════════════╝
  1527.  
  1528. ╔════════════════════════════════════════════════════════════════════════════╗
  1529. ║                     Popup Menu/Window Colors                               ║
  1530. ╠═══════════════════════════╤════════════════════════════════════════════════╣
  1531. ║  POPUPFG                  │ popup window foreground                        ║
  1532. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1533. ║  POPUPBG                  │ popup window background                        ║
  1534. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1535. ║  HELPFG                   │ help screen foreground                         ║
  1536. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1537. ║  HELPBG                   │ help screen background                         ║
  1538. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1539. ║  SBFG                     │ scrollback screen foreground                   ║
  1540. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1541. ║  SBBG                     │ scrollback screen background                   ║
  1542. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1543. ║  MENUFG                   │ menu foreground                                ║
  1544. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1545. ║  MENUBG                   │ menu background                                ║
  1546. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1547. ║  MENUBDRFG                │ menu border foreground                         ║
  1548. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1549. ║  MENUBDRBG                │ menu border background                         ║
  1550. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1551. ║  MENUSELFG                │ menu selected item foreground                  ║
  1552. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1553. ║  MENUSELBG                │ menu selected item background                  ║
  1554. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1555. ║  MENUFIRSTFG              │ foreground for highlighted single key in menu  ║
  1556. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1557. ║  MENUFIRSTBG              │ background for highlighted single key in menu  ║
  1558. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1559. ║  ENTRYFG                  │ text entry foreground                          ║
  1560. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1561. ║  ENTRYBG                  │ text entry background                          ║
  1562. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1563. ║  ENTRYKEY                 │ text entry key text (labels)                   ║
  1564. ╟───────────────────────────┼────────────────────────────────────────────────╢
  1565. ║  ENTRYMSG                 │ text entry message text (messages to user)     ║
  1566. ╚═══════════════════════════╧════════════════════════════════════════════════╝
  1567.  
  1568.  
  1569. The examples below show the default assignments for each of these items.
  1570.  
  1571.         COLOR: STATBG LIGHTGRAY
  1572.         COLOR: PRIFG BLUE
  1573.         COLOR: PRIBG LIGHTGRAY
  1574.         COLOR: LOCALFG GREEN
  1575.         COLOR: LOCALBG BLACK
  1576.         COLOR: MAINFG LIGHTBLUE
  1577.         COLOR: MAINBG BLACK
  1578.         COLOR: MONFG LIGHTRED
  1579.         COLOR: MONBG BLACK
  1580.         COLOR: STREAMFG LIGHTGREEN
  1581.         COLOR: STREAMBG BLACK
  1582.         COLOR: ECHOFG YELLOW
  1583.         COLOR: ECHOBG BLACK
  1584.         COLOR: POPUPFG YELLOW
  1585.         COLOR: POPUPBG BLUE
  1586.         COLOR: HELPFG LIGHTGREEN
  1587.         COLOR: HELPBG DARKGRAY
  1588.         COLOR: SBFG YELLOW
  1589.         COLOR: SBBG BLACK
  1590.         COLOR: MENUFG BLACK
  1591.         COLOR: MENUBG LIGHTGRAY
  1592.         COLOR: MENUBDRFG RED
  1593.         COLOR: MENUBDRBG LIGHTGRAY
  1594.         COLOR: MENUSELFG YELLOW
  1595.         COLOR: MENUSELBG CYAN
  1596.         COLOR: MENUFIRSTFG RED
  1597.         COLOR: MENUFIRSTBG LIGHTGRAY
  1598.         COLOR: ENTRYFG YELLOW
  1599.         COLOR: ENTRYBG LIGHTGRAY
  1600.         COLOR: ENTRYKEY BLUE
  1601.         COLOR: ENTRYMSG RED
  1602.  
  1603. If the color selected or the parameter to assign that color to are not
  1604. valid, KAMterm will advise you that it did not recognize what you were
  1605. trying to do, and the line number in the configuration file where the
  1606. mistake was found.
  1607.  
  1608. 8.0)  FUNCTION  KEY  DEFINITION  FORMAT
  1609.  
  1610. If you are creating a file containing function key definitions by hand,
  1611. it must follow a specific format.  First, in most cases, anything
  1612. following a '#' character is treated as a comment, and ignored by the
  1613. program.  The only exception to this is the line of text associated with
  1614. the function key, where the '#' character is treated as any other
  1615. character would be.
  1616.  
  1617. 8.1)  GENERAL  FILE  FORMAT
  1618.  
  1619. When definining text to be transmitted, the ']' character is used for a
  1620. carriage return.  This is not required at the end of the line, as a [CR]
  1621. will automatically be sent at the end of the macro key.  It is primarily
  1622. used for multiple commands being placed within one macro key. At this
  1623. time, the notation '^n' to send a CTRL-n key sequence is not supported.
  1624.  
  1625. To define the text to be sent to the KAM when a function key is pressed,
  1626. you first need to tell KAMterm what key you are defining.  To do this,
  1627. simply enter one of the following on a line by itself:
  1628.  
  1629.         {KEY Fn}
  1630.         {KEY ALT Fn}
  1631.         {KEY CTRL Fn}
  1632.         {KEY SHIFT Fn}
  1633.  
  1634. where 'n' is a number from 2 to 10 for the function keys by themselves,
  1635. or from 1 to 10 for [ALT], [CTRL], or [SHIFT] and the function key.
  1636. Again, [F1] is reserved for the HELP command within KAMterm.
  1637.  
  1638. The next line of text is the text that will be sent to the KAM when you
  1639. press that function key.  If the next line of text is blank, it will be
  1640. ignored.  Function key definitions cannot extend beyond one line, and
  1641. are limited to 80 characters.  In this line, the '#' character is NOT
  1642. treated as a comment.
  1643.  
  1644. So, for example, if we want to define [F2] to connect to FOO-BBS via
  1645. FOO-DIGI, we would enter something like the following:
  1646.  
  1647.                   ┌──────────────────────┐
  1648.                   │ KEY F2               │
  1649.                   │ C FOO-BBS v FOO-DIGI │
  1650.                   └──────────────────────┘
  1651.  
  1652. As for comments within the above, take a look at the following example:
  1653.  
  1654.           ┌──────────────────────────────────────────────────┐
  1655.           │ # This is a valid comment, and is ignored        │
  1656.           │ KEY F2     # This is also a valid comment        │
  1657.           │ C FOO-BBS v FOO-DIGI    # This is NOT a comment! │
  1658.           └──────────────────────────────────────────────────┘
  1659.  
  1660. In the above example, pressing [F2] would result in the following
  1661. being transmitted to the KAM:
  1662.  
  1663.      ``C FOO-BBS v FOO-DIGI    # This is NOT a comment!<CR>''
  1664.  
  1665. Note that the <CR> is automatically added at the end of the line.  If
  1666. the connect string itself had been followed by a ']' character, (i.e.,
  1667. ``C FOO-BBS v FOO-DIGI]''), an additional <CR> would have been inserted
  1668. there, as well, thus sending TWO commands to the TNC (the second of
  1669. which would be ``# This is NOT a comment!'').
  1670.  
  1671. 8.2)  INTERNAL  COMMAND  MACROS
  1672.  
  1673. Function key definitions within KAMterm can, to some degree, call
  1674. internal functions within KAMterm and thus provide single-key access
  1675. to some commands.  These are primarily intended to simplify operations
  1676. used while in a QSO, where you may often use the same command with the
  1677. same parameters (e.g., sending a ``brag'' file), or where using the
  1678. menu structure may be considered inconvenient or overly time-consuming.
  1679.  
  1680. As with any other command in the configuration files, these options are
  1681. not case-sensitive.  Only one internal command macro is allowed for a
  1682. function key---if more exist on the line, they will not be recognized
  1683. by KAMterm.
  1684.  
  1685. Some of these macros are available only in Host Mode.  If you attempt
  1686. to use them in normal command mode, KAMterm will respond with an 'H'
  1687. in Morse Code, reminding you of this (assuming you have not disabled
  1688. Morse messages).
  1689.  
  1690. 8.2.1)  @BRAG
  1691.  
  1692. This macro is used to transmit a ``brag'' file, as if you had entered
  1693. the [ALT][B] command.  This command takes one optional argument, the
  1694. filename for the ``brag'' file to be transmitted.  If the filename is
  1695. not given, you will be asked to provide the filename.
  1696.  
  1697. 8.2.2)  @MACRO
  1698.  
  1699. This macro is used to transmit a macro command file to the KAM, as if
  1700. you had entered the [ALT][M] command.  This command takes one optional
  1701. argument, the filename for the macro file.  If the filename is not
  1702. given, you will be asked to provide the filename.
  1703.  
  1704. 8.2.3)  @DAYTIME
  1705.  
  1706. This macro is used to set the time and date on the KAM, as if you had
  1707. entered the [ALT][Y] command.  It accepts no arguments.
  1708.  
  1709. 8.2.4)  @EXEC
  1710.  
  1711. This macro is similar to the [ALT][R] command.  The difference here,
  1712. is that you specify the command you wish to execute directly in the
  1713. function key macro line.  Like the [ALT][R] command, if you do not
  1714. provide a command to execute, you will simply shell out to dos.
  1715.  
  1716. 8.2.5)  @SHELL
  1717.  
  1718. This macro is used to immediately shell out to DOS.  It takes no
  1719. arguments.
  1720.  
  1721. 8.2.6)  @SET_PRIWIN
  1722.  
  1723. This macro is the equivalent of the [ALT][=] command, which sets the
  1724. PRIORITY WINDOW to the current stream.  It accepts no arguments. This
  1725. internal macro is only available in Host Mode.
  1726.  
  1727. 8.2.7)  @TOGGLE_PRIWIN
  1728.  
  1729. This macro is the equivalent of the [ALT][-] command, which toggles the
  1730. display of the PRIORITY WINDOW.  It accepts no arguments. This internal
  1731. macro is only available in Host Mode.
  1732.  
  1733. 8.2.8)  @DELETE_PRIWIN
  1734.  
  1735. This macro is the equivalent of the [ALT][0] command, which deletes
  1736. the PRIORITY WINDOW.  It accepts no arguments. This internal macro is
  1737. only available in Host Mode.
  1738.  
  1739. 8.2.9)  @SET_AMTORWIN
  1740.  
  1741. This macro is the equivalent of the [ALT][1] command, which sets the
  1742. AMTOR XMITECHO WINDOW to the current stream.  It accepts no arguments.
  1743. This internal macro is only available in Host Mode.
  1744.  
  1745. 8.2.10)  @TOGGLE_AMTORWIN
  1746.  
  1747. This macro is the equivalent of the [ALT][2] command, which toggles the
  1748. display of the AMTOR XMITECHO WINDOW.  It accepts no arguments. This
  1749. internal macro is only available in Host Mode.
  1750.  
  1751. 8.2.11)  @DELETE_AMTORWIN
  1752.  
  1753. This macro is the equivalent of the [ALT][3] command, which deletes the
  1754. AMTOR XMITECHO WINDOW.  It accepts no arguments. This internal macro is
  1755. only available in Host Mode.
  1756.  
  1757.  
  1758. 8.2.9)  @HFSPECIALS  Macros
  1759.  
  1760. These internal macros duplicate the functionality of selections under
  1761. the [ALT][S] menu, which transmits non-packet HF port directives to the
  1762. KAM in Host Mode.  These macros are, therefore, only available in Host
  1763. Mode.  There are five parameters which can be used with @HFSPECIALS.
  1764. These are XMIT, RCVE, RCVI, PACKET, and CLRXMIT.  If you use any other
  1765. parameter with this macro, KAMterm will respond with a '?' in Morse
  1766. Code, indicating that it doesn't understand what you want it to do
  1767. (assuming you have not disabled Morse messages).
  1768.  
  1769. @HFSPECIALS XMIT
  1770.  
  1771. This command causes the KAM to enter transmit mode.
  1772.  
  1773. @HFSPECIALS RCVE
  1774.  
  1775. This command causes the KAM to enter receive mode when the transmit
  1776. buffer is empty.
  1777.  
  1778. @HFSPECIALS RCVI
  1779.  
  1780. This command causes the KAM to enter receive mode immediately.
  1781.  
  1782. @HFSPECIALS PACKET
  1783.  
  1784. This command causes the HF port on the KAM to return to packet mode.
  1785.  
  1786. @HFSPECIALS CLRXMIT
  1787.  
  1788. This command clears the transmit buffer for the KAM's HF port.
  1789.  
  1790. @HFSPECIALS PTABORT
  1791.  
  1792. This command, which requires firmware revision 6 or higher, immediately
  1793. aborts a PacTOR connection.
  1794.  
  1795. @HFSPECIALS PTDISCONNECT
  1796.  
  1797. This command, which requires firmware revision 6 or higher, causes a
  1798. controlled disconnect of a PacTOR connection.
  1799.  
  1800. @HFSPECIALS PTAUTOBAUD
  1801.  
  1802. This command, which requires firmware revision 6 or higher, sets the
  1803. PacTOR link to the autobaud mode (recommended).
  1804.  
  1805. @HFSPECIALS PT100BAUD
  1806.  
  1807. This command, which requires firmware revision 6 or higher, attempts to
  1808. force the PacTOR link to use 100 baud.  This may not work with some
  1809. non-KAM PacTOR controllers on the other end of the link.
  1810.  
  1811. @HFSPECIALS PT200BAUD
  1812.  
  1813. This command, which requires firmware revision 6 or higher, attempts to
  1814. force the PacTOR link to use 200 baud.  This may not work with some
  1815. non-KAM PacTOR controllers on the other end of the link.
  1816.  
  1817.  
  1818. 9.0)  FORMAT  FOR  INIT/EXIT  COMMAND  FILES
  1819.  
  1820. When using the startup and exit command files, there are only two key
  1821. things you must remember.  First, comments MUST have the '#' in the
  1822. first column on the line. This is done here in order to allow you to use
  1823. this character in TNC commands, if you so desire.
  1824.  
  1825. Second, if you wish to continue a command on to the next line (e.g., for
  1826. CTEXT), all you have to do is make sure the last character on the line
  1827. is a '\'.  This character is ignored anywhere else on the line, but in
  1828. this position, it will result in sending the ^V^M sequence to the KAM to
  1829. tell it to continue the command on the next line.
  1830.  
  1831. The following is a sample of what you might wish to place in the startup
  1832. file:
  1833.  
  1834.     ┌──────────────────────────────────────────────────────────┐
  1835.     │ CTEXT Howdy!  if I don't show, pse lv a msg on n5ial-1.\ │
  1836.     │ 73, de n5ial, Jim in Chicago.                            │
  1837.     │                                                          │
  1838.     │ CMSG ON                                                  │
  1839.     └──────────────────────────────────────────────────────────┘
  1840.  
  1841. This sets the connect text (CTEXT) to send the message shown, with the
  1842. ``73, de n5ial'' part starting on a new line, and then sets the TNC up
  1843. to send CTEXT on a new connect in the normal manner.
  1844.  
  1845. The following is a sample of what you might wish to place in the exit
  1846. file:
  1847.  
  1848.    ┌─────────────────────────────────────────────────────────────────────┐
  1849.    │ ctext Hmmm.....I don't seem to be around. pse lv a msg on n5ial-1.\ │
  1850.    │ 73, de n5ial, Jim in Chicago.                                       │
  1851.    │                                                                     │
  1852.    │ cmsg pbbs                                                           │
  1853.    └─────────────────────────────────────────────────────────────────────┘
  1854.  
  1855. This sets the connect text (CTEXT) to send the message shown, with the
  1856. ``73, de n5ial'' part starting on a new line, and then sets the TNC up
  1857. to send CTEXT on a new connect, and then transfer the user to the PBBS
  1858. if it is available.
  1859.  
  1860. 10.0)  DEVELOPMENT  ENVIRONMENT
  1861.  
  1862. For those who may be interested, the following is the environment under
  1863. which KAMterm was developed, and initially tested:
  1864.  
  1865.    *) COMPUTER / SOFTWARE
  1866.  
  1867.       *) 20 MHz 386 running Linux 0.99 and Digital Research Dos
  1868.          version 6.0
  1869.       *) Serial port uses National Semiconductor NS16550AFN UART
  1870.       *) Turbo C++ Version 1.0 and Turbo Assembler Version 2.0
  1871.       *) Windowing library is UltraWin Version 2.50, which is
  1872.          available from EnQue Software (BBS:  816-353-0991).[1]
  1873.       *) Communications library is Encom Version 1.50, which is
  1874.          also available from EnQue Software.
  1875.    *) Kantronics All Mode (KAM) with firmware version 6.00.
  1876.    *) Printed documentation formatted using emTeX version 3.0 [3A]
  1877.       and printed on Panasonic KX-P1124 24-pin impact dot matrix printer
  1878.       at 360 dpi (typical desktop laser printer is 300 dpi).
  1879.  
  1880. [1] This may seem strange to some, but I'd like to include a small advert
  1881.     for another shareware product, the UltraWin library.  For those who
  1882.     wish to use windowing type functions in any C code, check this library
  1883.     out!  It is very nicely done, and is very powerful.  Support from EnQue
  1884.     has been very good WITHOUT EXCEPTION, and has been very helpful here.
  1885.  
  1886. 11.0)  SUPPORT
  1887.  
  1888. I will provide support for problems, bug reports (what bugs?), and
  1889. suggestions to registered users via several modes:
  1890.  
  1891. 11.1)  ELECTRONIC  MAIL
  1892.  
  1893. The best and FASTEST way to reach me is via electronic mail.  My addresses
  1894. are as follows:
  1895.  
  1896.    *) INTERNET
  1897.       *) jim@n5ial.mythical.com
  1898.       *) j.graham@ieee.org
  1899.    *) UUCP: uunet!valinor!n5ial!jim
  1900.  
  1901. The last Internet address, j.graham@ieee.org, is an alias provided by the
  1902. Institute of Eletrical and Electronics Engineers (IEEE)---this will
  1903. follow me even if I move---if all else fails, use this.
  1904.  
  1905. NOTE:  support will NOT be available via Amateur Radio---the FCC would
  1906. probably have some very bad things to say about that.
  1907.  
  1908. 11.2)  LANDLINE
  1909.  
  1910. Another way to reach me is via landline.  This will probably be a bit more
  1911. difficult, as I'm not always around the phone, and don't currently have
  1912. an answering machine.  I now have an AT&T EasyReach number, which will
  1913. always point to my actual phone number, even if I move.  This number is
  1914. 0-700-JGRAHAM (0-700-547-2426).  Please note that this is *NOT* a
  1915. toll-free 800 number.
  1916.  
  1917. When you dial this, you will get an AT&T menu that will ask you to press
  1918. the # sign and then ask if you want to charge to call to the number
  1919. you're calling from or your AT&T calling card (if you have one).  If you
  1920. don't have a touch-tone phone, just wait a few seconds, and the system
  1921. will just charge the call to the number you're calling from.
  1922.  
  1923. When using this EasyReach number, there are a couple of things to keep
  1924. in mind.  First, you must dial 0-700, and not 1-700.  Second, if you
  1925. are not an AT&T subscriber, you must dial 10-288-0-700 (10-ATT-0-700)
  1926. to get an AT&T line.  Admittedly, this is a hassle, but at least you
  1927. will be able to reach me via telephone even if I move and change
  1928. phone numbers.
  1929.  
  1930. If you have questions or problems with the EasyReach number, you may
  1931. contact the AT&T EasyReach customer service department 24 hours/day
  1932. at 1-800-982-8480.
  1933.  
  1934. The number this points to is currently also my data number.  If you get
  1935. a busy signal, or if a modem answers, you'll want to try back later.
  1936.  
  1937. At times, the modem may be setup to receive incoming UUCP connects to
  1938. support e-mail and Usenet News.  If you have the ability to use UUCP or
  1939. UUPC, we can set you up there, too.
  1940.  
  1941. 11.3)  SNAIL  MAIL
  1942.  
  1943. If all else fails, send your questions to the snail mail address shown
  1944. in the REGISTRATION section.  This will take longer, as there will be a
  1945. delay involved.  I won't get it until my dad forwards it to me, but I
  1946. WILL get it.
  1947.  
  1948. I will keep registered users aware of my current mailing address, too.
  1949.  
  1950. 12.0)  REGISTRATION
  1951.  
  1952. If you received this documentation with your registration, this section
  1953. does not apply to you, and can be skipped.
  1954.  
  1955. KAMterm is the result of a large investment of time and money spent in the
  1956. development process, and is NOT freeware.  If you have not registered
  1957. this program, please send $ 25 (US) to:
  1958.  
  1959. Jim Graham
  1960. C/O James A. Graham (my Dad---this address is more stable than mine)
  1961. 519 Benning Dr.
  1962. Destin, FL 32541
  1963.  
  1964. US users, add $ 4 (US) shipping/handling.  International users, add
  1965. $ 9 (US) shipping/handling.
  1966.  
  1967. A few important things to remember:
  1968.  
  1969. *) Make check/money order payable to ``James D. Graham'' or to
  1970.    ``Jim Graham''.
  1971.  
  1972. *) Checks and money orders must be in US currency, and if at all
  1973.    possible, drawn on a US bank (my bank has serious problems
  1974.    otherwise, and yes, I am in the market for a new bank!).
  1975.  
  1976. If you would like a copy of the printed, bound documentation, please add
  1977. an additional $ 10 to your registration.  This is primarily to cover the
  1978. cost incurred at the printshop (would be much worse if I was giving them
  1979. anything less than camera-ready art) and the additional cost of mailing.
  1980.  
  1981. With your registration, you will receive the latest release of KAMterm,
  1982. as well as a registration program which can be used to automatically
  1983. register any new releases of KAMterm that you receive.  (Registered
  1984. users will also receive announcements of new releases in the mail.)
  1985. This registration program requires a set of ``keys'' which will be
  1986. provided with the program.
  1987.  
  1988. The copy of KAMterm that will be shipped with your registration will
  1989. not yet be registered---this is to allow you to distribute the most
  1990. current version as shipped to you if you care to do so.  You will,
  1991. therefore, need to register it upon its arrival.
  1992.  
  1993. By default, this will be shipped on a 360 k 5.25" disk.  If you prefer,
  1994. you can have the program shipped on a 1.44 Meg 3.5" disk.
  1995.  
  1996. In addition, you will be eligible for full support from me, and will get
  1997. priority for any enhancement requests you may have.
  1998.  
  1999. Please fill in the following form for my records---this will help me to
  2000. support you better.
  2001.  
  2002. ═════════════════════════════════════════════════════════════════════════════
  2003.  
  2004.         NAME: ___________________________  CALL: ____________
  2005.      ADDRESS: ___________________________
  2006.               ___________________________  PHONE (day):   (___) ___-____
  2007.               ___________________________  PHONE (eve.):  (___) ___-____
  2008.  
  2009.  
  2010. INTERNET E-Mail Address (if any):
  2011.  
  2012.  
  2013.  
  2014.  
  2015. OTHER E-Mail Addresses (specify type, e.g., UUCP, Compuserve, BITNET, etc.):
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021. ═════════════════════════════════════════════════════════════════════════════
  2022.  
  2023. E-mail addresses will currently only work if I can get to them via
  2024. INTERNET, but try anyways. You never know---I might even have access
  2025. to them right now. I am including a list of other networks which can
  2026. exchange e-mail with INTERNET sites.  This list is available for
  2027. anonymous FTP from ftp.msstate.edu (130.18.80.11), and is found in
  2028. ftp/pub/docs/internetwork-mail-guide.  Other methods of distribution
  2029. are described within the file as well.  In this distribution, the file
  2030. is named mail.gui.
  2031.  
  2032. Enjoy, folks!
  2033.    --jim
  2034.  
  2035. --
  2036. #include <std_disclaimer.h>                                 73 DE N5IAL (/4)
  2037. ------------------------------------------------------------------------------
  2038. INTERNET: jim@n5ial.mythical.com  |  j.graham@ieee.org     ICBM: 30.23N 86.32W
  2039. AMATEUR RADIO: n5ial@w4zbb (Ft. Walton Beach, FL)          AMTOR SELCAL: NIAL
  2040. ------------------------------------------------------------------------------
  2041.  
  2042.