Changes in v3.6.1 ================= - The window status line is no longer `misplaced' under Kickstart v2.x. - Font, file and screen requesters are no longer quite so tiny. - The serial preferences editor `Quantum' settings are no longer `one off', hitting a negative value at the extreme right slider position. - Different font scales as by the VT100 specs (half width, double width, top double size, bottom double size) work again. - Zooming & unzooming the transfer protocol window no longer results in a `division by zero' error. - ARexx command `send local' no longer knocks out the cursor. - Shared access to the serial driver no longer locks the device via `OwnDevUnit.library' for exclusive access. In fact it does not lock it at all. - All memory allocations now go through memory pools, reducing memory fragmentation greatly. Note: Kickstart 3.x owners *should* have SetPatch 40.16 installed as the memory pool code might have trouble freeing empty memory pools until the program exits. This memory allocation scheme should also help to get `term' to work with certain virtual memory system extensions. - Most windows are simple refresh now, this helps to conserve memory and - sometimes - makes onscreen rendering a tad faster. - In the XPR transfer window the error/message list will no longer hold more than 100 entries in order to save memory. I have received reports of users who ran large file transfers overnight and when getting up in the next morning the transfer error/message list had accumulated so much memory it was no longer possible to move the mouse: Intuition was unable to allocate enough memory to create new input events. If 100 messages have accumulated and a new one is about to be added the first and oldest entry will be removed. - The status line display now properly reflects the name of the current file transfer protocol. - The quick dial menu checkmarks would get cleared only on some rare occasions, i.e. if the first phonebook entry had the `Quick dial menu' feature set. Now it gets the job done no matter which phonebook entry is the first one in the quick dial menu. - For technical reasons the status window no longer has a menu strip attached and will no longer pass keypresses through to the serial line. - The main window menus used to have the command shortcut `W' assigned twice. - If running on the Workbench dropping icons on the `term' window would ask for the type of file transfer (text or binary), but it would get the selection wrong, i.e. if you chose text you got a binary upload and the other way round. This has been fixed. - When in zoomed state the XPR transfer window will display the name of the file currently being transferred and how much of it has already been transferred (if available). This display will be updated about once a second. - If icons are to be created for files downloaded it is no longer necessary to turn on file type identification to actually get the icons attached. - Freezing the text buffer contents now properly updates the text processing routine variables. - Calling the `Print clipboard' function twice will no longer result in a general system lockup. - The double-buffered I/O routines now let you configure the buffer size to use. The memory allocation also is a lot more `forgiving' than it used to be: if necessary it will shrink the buffer size until it can allocate enough space. - To keep naughty applications from switching the cursor key and numeric keymap into applications mode you can lock both key sets now, so they will not to change their current modes. - The old AmigaGuide release (v34 to be accurate) is supported now, but with limited functionality. The help text is not context sensitive and you need to shut down the AmigaGuide server manually (by closing the AmigaGuide window) if the screen its window resides upon is to be closed. - `RING' and `CONNECT' messages from the modem are now reported along with the time when they came in. - The program now complains loudly about outdated catalog files and incorrectly installed locale.library. - The hotkey settings panel now checks each hotkey description text after it is entered and complains if it is unuseable. - The `QUIET' command line option (makes `term' start up iconified) no longer crashes if Workbench isn't running. - The program now features an all-new user interface. Changes in v3.6.2 ================= - There is a new command line option called `BEHIND' which causes the main screen to stay in the background and the main window not to become active upon startup. - If `term' fails to open a screen and finds out that the requested screen display mode is unavailable it will copy the screen mode the default public screen is in and retry. - No more trouble with mixed-case device and library names. As you pick them from the list the files are validated, i.e. `term' tries to load the file in question and hunts for the library/device resident tag included. If the tag is found the `real' device/library name is copied from it, replacing the original name the file was opened with. This means that you can select `XPRZModem.Library' using the file requester and `term' will look into the file to find out that the library wants to be opened under the name of `xprzmodem.library'. Also included are a type check (i.e. if a library is to be opened only files with a library type resident tag are included in the list) and a brief name comparison (i.e. only name case differences are allowed, so `XPRZModem.Library' = `xprzmodem.library', but `foo.device' != `bar.device'). - The external emulation and the external protocol support routines no longer share the same code and the same set of error messages/options texts. - A transfer protocol such as xprkermit.library will no longer leave `term' in a `half-dead' state if it opens a new window in the protocol setup phase. In previous releases this window was never closed. - The label text of XPR/XEM command options which accept a parameter and thus cause the settings window to be closed after text is entered is now drawn in the current highlight colour. This helps to distinguish regular string gadgets and command option parameters. - If `term' fails to set up the XPR protocol properly, i.e. the setup routine does not flag success, the library is closed right away. This is how it has always been in previous `term' releases. But this time the main menu is also updated to keep you from starting a file transfer or changing the transfer options while the library base pointer is invalid. - In order to support external protocols which write data to or read data from the serial line serial I/O processing is temporarily disabled while the corresponding setup routines are running. Although this behaviour isn't quite that nice it should avoid serious trouble with xprkermit.library which could otherwise disrupt the serial device request queue. - There are now three buttons in the file transfer panel which correspond to different abort levels: * Skip current file Skips just the file currently being in transfer (level 2) * Abort transfer batch Cancels the entire batch transfer (level 1) * Abort entire transfer Emergency abort (level -1) These abort levels are supported by xprkermit.library and a number of other file transfer protocols. - Opening the transfer protocol settings editor will cause the currently selected default XPR protocol to be reopened in case it is not open yet. - Holding down the control key and clicking with the mouse on a space character will now correctly send it. - Double-clicking on a phonebook entry will no longer start dialing if the program is still online, i.e. if the regular `Dial' button is disabled. - If the line is hung up or the carrier is lost the call log file (human readable, not the one that is intended for postprocessing using call log analyzers) will include the costs for the call. In previous releases `term' would only look for the `NO CARRIER' message. - The destructive backspace option now removes the character to the left of the cursor but does not move the rest of the line one step to the left. This makes the terminal emulation behaviour more consistent with how real video terminals handle this job. - The translation table settings panel now features a `Default' button which resets the current translation settings to defaults. - Just like the text buffer screen the review buffer window is handled by a coprocess now. - The packet window now supports function keys. - For technical reasons I dropped the string gadget clipboard support. I suggest that you use StringClip or a similar program instead. - Clipboard pasting from the review buffer window no longer requires that you activate the main window. - In the phonebook the edit list (right hand side listview display) indicates whether an entry uses default settings or whether it actually uses custom settings. Custom settings are indicated by asterisks (`*'). - The packet window now uses the current terminal text font. - Pressing Amiga+- in the packet window no longer transmits the current string but changes to the main window while leaving the current string intact. - Fixed a potential bug in the generic list management module. - With some file requester patches installed, such as old ReqTools or MFR, the file requester code could fail to notice if a single file was selected in multiselect mode. - The phone rates are now reported according to the current locale settings, i.e. they take the grouping and special attributes of the local currency into account. - The IFF-8SVX sound file player code now handles stereo and compressed sound files gracefully (all flavours including uncompressed stereo, compressed stereo, uncompressed mono and compressed mono). - The ARexx `WAIT' command could fail to report how many characters it pulled from the data stream when a matching string was found. This could result in random characters showing up in the terminal text output. - The routine to attach the wait mouse pointer to windows and to block input to them was easily losing track of its nesting count. In theory the nesting count could have wrapped around, locking you out. The harmless side-effect was that sometimes windows would not get blocked. - The ARexx `WAIT' command argument and the wait list may include control sequences now. These are expanded as soon as they go into the list. This feature makes it possible to wait for sequences such as `login:\rpassword\r' but will return result strings which include control characters, so watch out! - The ARexx `READ' command now allows you to combine the `CR' and `NUM' options. Also, the maximum number of characters to read with the `CR' option is no longer limited to 255 characters. - The file transfer window will at startup display the name of the currently selected transfer protocol. It displays a default value, leaving the protocol identification to the XPR library. - The ARexx `GETATTR' command would run into serious trouble if told to put information into a stem variable. The result would be Enforcer hits or crashes. - If you put `term' into iconified state and press the hotkey combination to bring its screen to the front you will no longer get an Enforcer hit. Instead `term' will exit its iconified state and return to normal action. - The status line display now coexists much nicer with MagicMenu and the like. - The status line no longer displays what text mode the terminal window is in (this was rather a silly feature) but rather if the text buffer is currently recording or if it's frozen. - The status line looks a bit different now (there is a proper separation bar now instead of the hair line). - Just like the v3.0 preferences palette editor `term' now permits to select the screen rendering pens. This will *not* work under v2.04 since gadtools.library v37 cannot handle it (actually it can, but the default glyphs do not support it). This feature permits you to change the screen colours while you can still keep the window new look. - The ARexx `READ' command could return random characters since the return buffer was not set up correctly. - Both the ARexx `READ' and `WAIT' commands now allow you type text on the local console and have it sent across the line. As for the `WAIT' command this is of great help if the script `hangs'. Note: halting scripts and and such still requires pressing the `Shift + Shift + Esc' key combination. - The ARexx `READ' command would, if used with the `NUM' option, always return a NULL-terminated string, no matter what kind of data came in. It now returns the entire amount of data transferred, including NULL-bytes. - The phonebook list now clearly shows which entries are selected for dialing and which are not (it flips the background and text colours). Note: this works only with Kickstart 3.0 and above. - I increased the possible number of dial retries in the modem panel to 1000. In addition to that you can set the number of dial retries to `unlimited' now. - For those nasty MS-DOS based file transfer protocols which choke on file names longer than 12 characters (eight for the name, one for the dot, three for the extension) the file transfer options now permit to have filenames shrunken before they are handed to the transfer protocol. Internally, the XPR interface will still refer to the file under its original name. The routine responsible for shrinking the file names also takes care of the extension separator dot. If there is more than one dot in the file name all the others get replaced by underscore characters. Also, if there is no dot extension it will be added. - The packet window is handled by a coprocess now. - If you're bold and daring you can make `term' handle the terminal output on the schedule of a terminal emulation task (actually a process, but who cares ;-). Please note that this requires additional memory and will slow down the emulation if your memory is fragmented. But on the other hand the coprocess will stop serial input getting munged before it arrives in the terminal emulation output buffer. Such things can happen with systems which experience heavy DMA bus or task loading Changes in v3.6.3 ================= - Turning on the `faster layout feature' no longer drops the screen & window newlook. - Due to an oversight the terminal emulation process could get enabled even when using an external emulation, this has been fixed. - The ARexx command `SENDFILE' would never remove the names of files transferred from the upload list. - Yet another new option: by default the dialer sends a `\r' string when skipping an entry and when hanging up the line. You can change this behaviour via the `Dialer abort hangs up' option now. If enabled the dialer will go through the routine hang up procedure (dropping the DTR signal, sending the hangup string, you name it). This should convince even the most stubborn modems to stop doing what they are currently thinking to be fun and to return to normal operation. - Clicking on the main window in order to activate it will no longer trigger the character snapping function. - Rewrote the ARexx `WAIT' routine to a great deal. It could easily forget to turn serial input processing back on for the main program. After a script would exit you would get stuck with data coming in from the serial line, but none of it would be displayed or worked upon. - Clicking on the text buffer screen window in order to activate it will no longer trigger the character snapping function. Since there is no safety catch, i.e. the clipboard contents are immediately replaced by what you selected after you let go of the mouse button, this will reduce the chance of losing your current clipboard contents. - Subtle change in the dialer procedure: if an entry would use the default serial settings they did not replace the current serial settings, even if the previous dial list entry had altered them. However, the original purpose of the default settings was to use the unmodified global settings. The dialer behaviour now respects this, changing the current serial settings back to the global settings, not keeping the changes the previous dial list entry had made. - In previous program releases trying to make certain phone book entries not use the default settings was somewhat difficult: you had to change the corresponding settings entries to something different from the global defaults. Things are much easier now, just open the settings editor and click on the `Use' button. - The `Startup/Login macro' has been split into a startup macro and a login macro. The dialing routine will first invoke the login macro and then the startup macro. Only the dialing routine makes use of the login macro. - Small cosmetic changes to the user interface code: cycle gadgets are a few pixels wider now in order to keep `CycleToMenu' happy. - When hanging up the line the logoff macro was never executed. - Finally discovered why the serial read quantum and all the scheduled events were never processed again once they reported that no further data was available. Now the event response loop updates the signal mask again when it reaches the bottom of the loop to see if any new data came in. - You can now configure the screen depth, permitting to use the Picasso II chunky display mode with `term'. Note: asl.library v38-v40 fails to handle nonstandard background pen colours correctly, i.e. the depth slider text may be illegible. - External emulation libraries, namely xemvt340.library, should work again. I changed the memory allocation call for the XEM support interface, but I have no idea why it did the trick. - The status window is handled by a coprocess now. - Some ARexx interface commands now run asynchronously. - Yet another visual gimmick (sorry, couldn't resist): menu checkmarks and Amiga keys are now scaled according to the current screen display ratio. Note: not really compatible with utilities such as MagicMenu or Silicon Menus. Although the programs will run the menu layout may look odd. - The phonebook list can be scrolled with cursor keys now. You also get a visual feedback if running under Kickstart 3.x. - Fixed a nasty bug in the user interface code to pick the gadget shortcuts: it would prefer to pick the last letter of gadget labels and ignore any preceding letters. - Scrolling lists such as the phonebook list will size-adapt to the screen `real estate' available. - The screen settings now give you full access over display overscan mode and screen dimensions. Note that asl.library v38 or higher is required to use these features. - Changed the cursor key control in listviews, making it possible to use the Shift/Alt/Control qualifier keys in Style Guide compatible fashion. - Rewrote certain dos.library related parts of the user interface code, permitting plain tasks to call the routines. Consequently, a number of coprocess-driven routines was rewritten to run on the schedule of a task. Note: this may conflict with the ChangeScreen utility included in the Picasso II distribution. - Old style XPR settings entered using the old style prefs interface (i.e. those that would pop up a text entry requester) were never saved. - The transfer library selection panel now allows you change the settings of all selected protocols, you no longer need to select all individual protocols as the default protocol and invoke the `Protocol settings...' menu function on them. - The text and review buffer search requesters maintain backlogs of the previous search patterns now (use the cursor keys to scroll through the patterns). Use the capture settings to change the number of patterns to keep. - The text buffer search function no longer enforces a case-insensitive search. - Most time and date displays now use the current locale settings. It did not make sense to make all such displays use this text formatting scheme. All remaining displays will use the common dos date/time formatting parameters. Changes in v3.6.4 ================= - Modified OwnDevUnit.library support: if another task wants to gain access to the locked device `term' will release it unless the modem is still online. The device is released by calling the `Release serial device...' menu entry. - Oops... the XPR options editing code did not flag changes in numeric arguments to the main program. Also, old style XPR options were always reported as `changed'. - Not all memory allocations went through memory pools, this has been fixed. - The `Printer control enabled' switch was omitted from the emulation panel, sorry about that. - Some windows would not be moved into the foreground when opened, so you had to play `hide and seek' to see on which screen they appeared. - With display aspect ratios that aren't even remotely square incrementer arrows for integer gadgets are no longer larger than their container boxes. - The program no longer crashes if the XPR protocol feels about displaying a message before any other window is open. - By public demand the highlighting scheme in the phone book window was changed to yield better contrast. - The speech volume is given in percent now, but the ARexx interface `GETATTR' command did not reflect this. - The sound settings now sport a volume slider which affects all sounds played. Suppose a sound is to be played at maximum volume, i.e. 64 for the current Amiga hardware and the volume slider is set to 25%, then the sound will be played at volume level 16. Setting the volume slider to 0 will cause `term' not to produce any sound. - The transfer panel message list dimensions are now auto-adjusted to the screen size. The layout code also tries hard not to make the window overlap the status line. - Added some bells & whistles to the phone book window. I hope it still works. Changes in v3.7.0 ================= - Moved the user interface code into a shared library in order to make things more complicated. - The OwnDevUnit feature is no longer linked to the `Shared access' option. - All sounds are now replayed in the same fashion as the bell sound, i.e. if a sound is currently being played a request to play another sound will not be satisfied. - Important file transfer notification messages are now printed in the current highlight colour. - The destructive backspace mode now offers three choices: off, overstrike and shift. Overstrike mode clears the character below the cursor and shift mode will shift the line contents to follow the cursor to the left. - The screen panel now features some more options which permit to open the main window on a custom screen as though it were a public screen and an option to split the status line from the main window. - Tried to squeeze some space out of the control panels with mixed results. - The text buffer screen no longer uses the main screen display mode by default, it is possible to select the display mode now. - The built-in ASCII file transfer routines no longer draw upon the current clipboard settings to determine how to send and receive text. There is an all-new preferences editor for this purpose now. - Added an upload list editor, permitting to collect the files to be transmitted in a list before the transfer is started. You can enter the file names, drop icons on the editor window or on the AppIcon. When you are finished, just press the upload button. - The packet window string gadget now has room for more than 1000 characters. Note: the `Load history' command only supports 255 characters per line. Changes in v3.7.1 ================= - Added a prescroll option to the emulation settings. The system is not very smart but should get the job done rather quickly; if the cursor is positioned at the last terminal line the number of line feeds in the input data stream is counted. The number of line feeds or the max.prescroll number (whatever is smaller) will determine how many lines to scroll the screen contents up. - With an empty phonebook loading a new phonebook file would not enable the phonebook list, this has been fixed. - Added another option to complement the prescroll settings. Testing revealed that the conditions leading to the prescroll feature to be used were met only rarely. The "max. jump" option will give you roughly the same functionality as the "max. prescroll" option, the difference is in the handling of the input data stream: the prescroll option counts the number of line feeds, the jump option only looks for a single line feed and then scrolls up the screen the given number of lines. - The program now remembers the window position and size before going into iconified state. When the window is reopened it will reappear at the position and in the size remembered - The ARexx "ADDITEM" command supports a new keyword "RESPONSE" to be used for entries added to the wait list. Suppose you want all "More (Y/n)?" prompts of the BBS login procedure to be skipped during your auto-login script. Then you would call `ADDITEM TO wait NAME "More (Y/n)?" RESPONSE "\r"', add the other keywords you would want to wait for and then finally call "WAIT". Whenever the "More (Y/n)" prompt shows up the "WAIT" command will all by itself send the "\r" string (or in other words, the carriage return character) without exiting until the login string it was watching for is found. Please note that this feature only makes sense with the wait list but not with the "WAIT" command itself.