STalker¿ 3.01 to 3.02 Patch Program This program will upgrade STalker version 3.01 to version 3.02. It will ONLY upgrade version 3.01. This program is copyright ½ 1992 by Gribnif Software. All rights are reserved. This program may be freely distributed to all legitimate registered users of STalker 3. Any questions or comments, please contact us at: Gribnif Software, P.O. Box 350, Hadley, MA 01035, USA Tel: (413) 584-7887, Fax: (413) 584-2565 GEnie: GRIBNIF What is needed to upgrade ========================= 1. An un-modified, registered, STalker 3 Master Disk, version 3.01. 2. A hard disk or a blank formatted floppy disk (to place the PATCH302.PRG and PATCH302.DAT on). How to upgrade your STalker version 3.01 to version 3.02 ========================================================= 1. Make sure you have made a backup copy of the STalker 3 Master Disk. 2. Place the PATCH302.PRG and PATCH302.DAT on your hard disk or on the blank floppy disk (it may need the extra disk space to write some temporary files, depending on free memory.) 3. Run the PATCH302.PRG and follow the on-screen prompts. 4. Once you have finished upgrading your master disk to version 3.02, make a backup copy of this newer version. ** VERY IMPORTANT STEP, READ CAREFULLY ** 5. To install the newer version on your system, you MUST replace the following STalker 3.01 files in your system with the 3.02 version files from the newly upgraded disk: \STALKER.ACC \STALKER.PRG \STALKER.RSC \BACKTALK\BACKTALK.PRG \BACKTALK\SCRIPTS\PREFIX.BTS \BACKTALK\SCRIPTS\PREFIX.BTK \BACKTALK\SCRIPTS\STALKER.BTH These files were also included with the patch program. They should be copied as well: \BACKTALK\SCRIPTS\BPLUS.BTS \BACKTALK\SCRIPTS\BPLUS.BTK \BACKTALK\SCRIPTS\BPLUS.TTP If you get an error message =========================== If your STalker 3 Master Disk has been modified in any way (including moving files around), the patch program will not be able to perform the upgrade. You will get an error message indicating that this has happened. In this case, you should mail us the disk so that we can upgrade it. To have your disk upgraded by us, you need to: 1. Send in your original, registered, STalker 3.01 Master Disk. 2. Enclose a U.S. check for $5 + $2 shipping & handling ($7 total). 3. Enclose a note with your name, address, and daytime phone number. In return you will receive the upgraded 3.02 Master Disk. If you have already purchased this patch disk from us for $5, please just include your original disk and $2. Helpful Hints ============= o If you are having trouble with lost characters, the very first thing to do is try running AUXINIT.PRG. o When using high speed modems (9600 baud or greater) you will have to use hardware (RTS/CTS) flow control, rather than XON/XOFF flow control. Several pointers: o Make sure STalker has been configured for RTS/CTS in the Port Settings dialog for each service you plan to connect to at high speed. o Make sure your modem is configured for RTS/CTS. This varies from modem to modem; some use an AT command, others a DIP switch. Consult your modem's manual for more information. o Run the appropriate combination of patch programs. These can be found in the EXTRAS folder of your STalker disk: TOS version Port Program(s) 1.0-1.6x ST-compatible SERIALFX 2.00-2.05 ST-compatible SERIALFX and SERIALFX other SERPTCH 2.06 ST-compatible SERIALFX other none needed 3.00-3.05 ST-compatible SERIALFX and SERIALFX other SERPTCH 3.06 ST-compatible SERIALFX other none needed o If, after dialing a service, you notice that you cannot access any of STalker's functions and the "Dial" menu title is still selected, then this most likely means that there is a problem with your autologin sequence for that service. Press Undo to cancel the autologin and then check the appropriate entry in the Autodialer Directory. Changes for STalker 3.02 - Jun. 7th 1992 ======================================== This version contains the following enhancements: ................................................ - A new protocol setting was added: "CIS B-Plus". If the protocol is set to B-Plus, STalker will respond to the CompuServe initiation character by attempting to invoke a script called BPLUS from the script directory. Enclosed with this new version of STalker is a BPLUS.BTK, which simply runs BPLUS.TTP (the actual file transfer program). BPLUS.TTP must reside in the script directory in order for this feature to work. - Baud rates greater than 19,200 are now supported on the MSTe/TT Serial 2 and Modem 2 ports. Due to the way the hardware works, the extra speeds aren't the same between the two ports. Serial 2 has the normal progression of speeds: 38400, 57600, 115200, and 230400. Modem 2 is a bit odd though: 38400, 76800, and 153600. While testing these between a TT and a PC, the system was usually getting a maximum ZModem throughput of just over 4100 cps. A system with TT-RAM may do a little better, but it should be pointed out that it's not realistic to expect to get close to 100% efficiency once you go higher than 38400. - Capture and Printer status are now reflected in the window title. If Capture is on, a black dot appears to the left of the window title text where a space would normally be. Similarly, if the Printer is on, a dot appears to the right of the text. - The limit on the number of lines in the scroll-back buffer has been increased to 9999. Unless you've got a very fast machine, at some point the number of lines may start to make a noticeable decrease in scrolling speed, as the buffer fills up. - The Terminal settings dialog now has a "Swap Backspace & Delete" option for VT100/PC-ANSI emulations. If you use a VAX with VMS, you've probably been wishing for this since VMS uses Delete the way most other systems use Backspace. - The speed of scrolling in a VT100 / PC-ANSI scrolling region has been significantly improved. This new method will only be used, however, if STalker's window is on top or is not obscured by another window. - The path for the "Open configuration..." and "Save configuration as..." commands is now remembered, although it doesn't get saved with the configuration. STalker will remember any changes you make to either path for the rest of the session, and the upload path will not be affected. - Older versions of STalker would put the menu bar inside the window if you held down the Alt key while launching them as a .PRG. Since this could be done by accident, it has been removed for the new version. If you really want to have the menu bar inside the window, you can give STalker "-m" or "-M" as the first parameter in its command line. - Control+Keypad can now be used as an alternative to Alt+Keypad to run scripts. TOS 2.06/3.06 intercepts Alt+KeypadDigit keystrokes, which made it impossible to invoke scripts in that fashion. - The '@' character can now be used in logon strings and other dialogs. The GEM dialog handler treats the '@' character in a special way if it is the first character of an editable field - it makes the entire field empty (try it with any GEM program!). To get around this, the '@' character is mapped to one of the Hebrew characters that vaguely resembles an @, 'Ò' to be specific (hex D2). STalker then translates this Hebrew character to the '@' character when the setting is used in the program. - The alert that appears when a missing or bad .INF file is loaded has been split into two alerts. One now indicates that the file could not be found, the other indicates that the file was not a valid STalker configuration file. - STalker now ensures that DTR is enabled when it starts up and any time the current port is changed. This was necessary because many other German comm. programs leave DTR disabled when they exit. Note that STalker leaves DTR active even if you quit the PRG version. If this is a problem, you could always write a small script that just does a "port_dtr(FALSE);" call and name it STK_EXIT.BTK. - If STalker is idle for a few seconds and there is no modem activity, it will automatically use fewer timer events. This essentially means that there will be less of a system slowdown when STalker is open but not doing anything. - The script buffer can now be up to 64K. - STalker will look for and execute a script called "STK_EXIT.BTK" when it exits in .PRG mode. Note that this will fail (and hence be ignored) if the exit is due to a script issuing the exit_program() call. - The BackTALK compiler will now handle a Control+Tab keystroke by invoking either STalker or STeno, which ever one invoked it last (Control+Tab will be added to the next STeno version, it's not in 2.00). If the compiler hasn't been invoked by either STalker or STeno since startup, it will ignore the Control+Tab keystroke. - The BackTALK compiler has had its object file size limit increased. As a consequence, more memory is consumed by the compiler *while it is compiling*. Note that this change does not affect the memory consumption of the compiler when it is idle - it only allocates memory to hold the compiled file when it is ready to start a compilation. - Some new BackTALK routines were added: APPL_FIND --------- FUNCTION appl_find(STRING appl_name) RETURNS INT; This is analagous to the GEM appl_find() call. As with the GEM version, the 'appl_name' must be padded with blanks to be exactly 8 characters long. Do not include the .PRG/.ACC extension. A value of -1 is returned if the application is not presently executing. Example: int neo_cli_id; neo_cli_id = appl_find("NEO_CLI "); if neo_cli_id == -1 then puts("Neo CLI not present!\r\n"); else // Do some fancy stuff with the Neo CLI endif GLOBAL_ADDRESS -------------- FUNCTION global_address(STRING local_address) RETURNS INT; This routine converts a BackTALK address (which is relative to the start of the script execution buffer) to a "global" physical system address suitable for passing to another GEM application. Example: int string_address; // Pass a null-terminated string in two halves using // words 3 and 4 of the GEM message. string_address = global_address("My dog has fleas"); appl_write(neo_cli_id, 9876, string_address, string_address >> 16, 0, 0, 0); PORT_DTR -------- FUNCTION port_dtr(INT raise_dtr); // No return value This routine lets you explicitly control the DTR signal. If 'raise_dtr' is TRUE, the DTR signal is asserted, otherwise it is lowered. Example: // Do the same thing as port_drop_dtr() port_dtr(FALSE); // Drop DTR wait(7, FALSE); // Wait a bit port_dtr(TRUE); // Bring it back up again. SET_DUPLEX ---------- FUNCTION set_duplex(INT requested_mode) RETURNS INT; This function sets the echo mode. It takes one integer parameter (the constants DUPLEX_FULL, DUPLEX_ECHO, and DUPLEX_LOCAL are defined for the get_duplex() call) and sets the current duplex mode. The resulting mode is returned, which may differ from the requested mode if the requested mode is invalid. Example: int old_duplex; old_duplex = set_duplex(DUPLEX_FULL); // Get old mode // Do some stuff here... set_duplex(old_duplex); // Reset - At the request of a few users, an option to ignore Clear/Home requests has been added. This prevents the scroll-back buffer from being cleared under host control. To control the "ignore clear/home" setting, you must use a script function: set_int_param(MISC_PARAM, 666, TRUE); // To ignore clear/home set_int_param(MISC_PARAM, 666, FALSE); // To obey clear/home The get_int_param() call works similarly for retrieving the current setting. The clear/home sequence doesn't actually get completely ignored - it causes the cursor to move down a line, just as if a CR/LF combo were received. I felt this was necessary since the host expects to be on a fresh line after sending a clear/home. Note that this is only effective in VT52 and PC-ANSI mode. A VT100 uses two separate sequences to do a clear/home (one to clear the entire screen and another to home the cursor). Since they can be sent in any order and may in fact not be used together (the cursor could be homed without clearing the screen) it would be difficult to try to detect and ignore the combination. - An option has been added to control the method STalker uses when passing strings from STeno to the modem. There's a new option for get/set_int_param() and a corresponding literal in STALKER.BTH: set_int_param(MISC_PARAM, TYPEAHEAD_STYLE, ); Don't let the name mislead you though - it affects both typeahead and the "Transmit Line/Selection" command in STeno (in short, any text that STeno passes to STalker without using the clipboard). If you turn this option on (TRUE), STalker will follow the current ASCII upload settings. With it off (FALSE) STalker just sends the string at full speed. With the option on, STalker does the following: 1: Expand the line to the "expand blank lines" string, if necessary. 2: Send the string. If the text being sent ends with a carriage return, it then does the following: 3: Wait for the specified prompt for up to 5 seconds. 4: Wait for the specified "line wait" time. Note that this setting is saved along with the rest of the configuration when you use the "Save configuration [as...]" command, hence you'll only have to do it once if you want it to always work a certain way. The default value for old .INF files is OFF. If you need the setting to act differently for different hosts, you'll need to write two scripts; one that turns it on and another that turns it off (or maybe one script that prompts you with an alert box), and then specify the appropriate script for each dialer entry. The following problems are addressed in this version: .................................................... - The shifted F2 function key entry is usable. - The 3.01 problem in the script writing code (invoked by WRITESCR.BTS) that caused FKey numbers to be in hex rather than decimal has been fixed. - There was a bug in file_printf() that made it print only one character. - file_gets() will now return all of the file data before returning an FERR_EOF error code. Previously, it would return the error condition too soon if the file being read did not end with a carriage return. - The "$$/Hr" and "Limit" fields in the Autodialer dialog handle input in a friendlier manner now. You no longer have to add extra zeros and fill the field to get the proper result. - A bug in the handling of VT100/PC-ANSI cursor movement commands in conjunction with scrolling regions was found and fixed. - Dropping DTR used to mess up the SCC ports (Modem 2 and Serial 2) if you were using either 7 bits + zero parity or 7 bits + mark parity. This is now fixed. - Flow control is now handled in a better fashion. The TOS Rsconf() call in some versions didn't seem to like the "Both" value for flow control, even though the rest of the serial routines seem happy with XON/XOFF and RTS/CTS being enabled at the same time. The result was that Rsconf() would ignore any request by STalker to set flow control to "Both", leaving the setting it at its previous value. STalker now forces TOS to accept its value, and RTS/CTS now seems to be properly enabled. - Sending a BREAK signal now works from the Modem 2 and Serial 2 ports. - The BackTALK run_program() function is now only allowed if STalker is running as a program, or if MiNT or NeoDesk is present. If none of the above conditions is true, the run_command() will simply return an error code of -31006. - STalker now deletes its window handle once it completes its startup tasks. - A minor change was made to the handling of VT100 cursor up/down escape sequences in conjunction with scrolling regions. - The shifted F2 function key entry is usable. - The 3.01 problem in the script writing code (invoked by WRITESCR.BTS) that caused FKey numbers to be in hex rather than decimal has been fixed. - A 32K or larger file transfer buffer used to cause a Paste operation to do nothing. This has been fixed. - All of the "cursor blotch" problems should now be gone. - Disk full and other errors are now properly detected when saving a dialer (.DLR) or function key (.FKY) file. - The Autodialer dialog now redraws properly after you load a .DLR file. - Clicking on the grey background of the baud rate selection box in the Remote Mode dialog used to cause GEM to crash. - YModem-G downloads used to abort if a timeout occurred during the initial handshake. This has been fixed and now it will take the usual 10 errors to cause it to fail. - The PREFIX.BTS script has been corrected to deal with files that have an incomplete last line. - The STalker window will now scroll when you're selecting text and the mouse pointer gets close to one of the screen edges. It previously only scrolled if you went outside of the window borders. Notes ----- - On many Unix hosts, or on networked machines in general, it's a good idea to initiate a download with a limit on the ZModem "window size". For the standard Unix "sz" program, use a command such as the following: sz -w 16384 files... This will make the host request an explicit ACK every 1/4 window size (4K in this example). The host will send ahead up to 1/2 the window size before it will wait for an ACK. This has the effect of throttling the host which, with an unlimited window, would otherwise send data as quickly as possible. On networked systems or hosts with lots of buffering, the sender can get way ahead of the receiver due to all of the data that gets buffered along the way. This makes error recovery slower, and in extreme cases can even cause the transfer to fail. The latter can happen for larger files since the sender will output all of the data, only to have a lot of it still buffered along the way to the receiver. Once it thinks it has finished transmitting the file, the sender will sit and wait for the receiver to ACK the end of file. Meanwhile, much of the file data is still being transmitted to the receiver. If enough buffering takes place, the sender may timeout before the receiver even finishes receiving the file data.