Changes in v4.4.1 ================= - Added a bunch of new OwnDevUnit options: - Do not use if device is in shared mode This used to be the default in v4.4. I've had a few good ideas in my life, this wasn't one of them. Now it's a configurable option [Andreas Kirchwitz]. - Release device when online The default behaviour used to be not to let go of the device if you are still online. But perhaps this is just what you want. Now you can. - Release device when dialing If your uucp netcall catches you off guard while `term' is still dialing and not getting anywhere, this switch will tell `term' to let go of the device driver. Please note that `term' will not start to redial when the device becomes available again. - The OwnDevUnit choices are now radio buttons rather than one wide cycle gadget [Chris Hanson]. - The character conversion tables now show the numeric codes of the characters in several flavours (binary, octal, hex, you name it) [Chris Hanson]. - The text buffer screen now gets the colours right even if it opens in 32K/64K/16M colours [Frank Mariak]. - The "RTS/CTS (DSR)" handshaking mode now causes the device to be opened with RTS/CTS handshaking enabled before the DSR signal is checked. As it turns out, it didn't work the other way round. - Major new addition: for easy debugging and the shocking good looks of it, there is a new window to enter single characters graphically. It's called "Single character entry" and sports a button for every ISO-8859-1 character on this world. Click on the character you want (yes, there's a neat BOOPSI gadget behind it) to get it sent [Chris Hanson]. - The XPR interface now uses a different approach to read data from the serial line. The overhead involved is much lower than in all previous `term' releases. - The dialer sent the modem exit commands on very rare occasions only, it now does it consistently. - Lots of minor changes in the user interface code. Changes in v4.4.2 ================= - The single character entry window came out black on black in 16 colour mode [Frank Dürring]. - While I was updating the single character entry window I added a code display. While you pick the character its code appears in decimal, hexadecimal, octal and binary in the window title bar. - The "SEND LITERAL" ARexx command now works as it should [Maxwell Daymon]. - The windows menu now gets properly updated after the main screen/window is closed and reopened. - Freezing the buffer via the capture settings and saving them as your default settings never caused `term' to start up with the buffer frozen, it now does [Geoff Seeley]. - There are now two different ways of getting data into the capture buffer. The old way of doing things (data flow) and a special procedure that stores all the data that gets scrolled or erased from the screen (review). The latter is more faithful to the general concept of a review buffer, but the catch is that you won't see the current contents of the main window. Not all the hooks & lines are in there yet, for example erasing characters in a single line is something the buffer does not track. The code is already in there, but it's commented out. Please let me know if you need it. - Another addition to the modem settings: if your phonebook entries don't use special modem configurations (in other words, they use the main modem configuration) and you have some modem initialization and cleanup commands in the main modem configuration you do not want the modem to receive while it is dialing, you can now tell `term' not to send them. - Mucked around some more with the character raster code that backs cut & paste in the main window. Some optimizations in the code, responsible for clearing the screen when scrolling or erasing text, were not that reliable. - The dialer was releasing the device driver by request of the OwnDevUnit.library even if it had been configured not to yield it. Even worse, the dialer did not pay attention to whether it should release the device on request while dialing or not [Andreas Kirchwitz]. - Another one bites the dust: the text cut & paste feature supported by the main window no longer gets the terminal emulation into trouble when double-clicking on a word while there is still text selected [Andreas Kirchwitz]. Changes in v4.4.3 ================= - The transfer panel now finds resident commands given for the external transfer protocol programs to invoke [Andreas Wolff]. - The transfer menu no longer gets ghosted if the default protocol is not an XPR library but an external transfer protocol [Andreas Wolff]. - The `Upload' buttons found in the upload queue window now cause the current transfer queue to be sent even if it consists of only a single file [Andreas Wolff]. - Changing the default transfer protocol from xpr library to external program can no longer bring the machine down. - `term' no longer bangs its head if you accidentally pick an external transfer program and leave the type of transfer protocol set to "XPR library". It now manages to display the error requester without crashing or trashing its own stack [Sven Reger]. - The `improved' XPR serial I/O code was pulling far too much CPU time. Bob Maple reported about 45%, on my setup it was about 25% which I thought was pretty normal. I went back to the old code and streamlined it a bit, it's now down to about 5%, so the 25% were not that normal after all [Bob Maple]. - `term' no longer tells you that the function keys, translation tables, cursor keys or hotkeys have been changed on exit if this is not really the case [John Yeung]. - The translation table editor lost the "Cancel" gadget, there really was no code backing it and thus Use and Cancel always got the same treatment. - Finally fixed the "No DSR signal detected" problem. I promise. - The modem dialing prefs now sport two new options which will hopefully simplify dialing through a local PBX. The "PBX dial command" will get inserted between dial prefix and phone number if the "Use PBX dial command" switch is enabled. By default the PBX dial command is set to "0,,," which will first send a 0 to dial out, then wait about six seconds (each comma tells the modem to wait a certain number of seconds; exactly how many seconds to wait can be configured through a modem register, on the ZyXEL U-1496 this is register S8 which is by default set to 2) before starting to dial the `real' phone number. - Renamed "Verbose dialing" (silly name) to "Show modem responses". - Another rogue attempt at improving data throughput in the XPR sread routine. I'm wondering if this has any positive effects, or as usual does not work as reliably as it really should. Changes in v4.4.4 ================= - Caught some more cases in which the return code of ModifyIDCMP() was plainly ignored. Now all of them are covered. - The transfer performance window now gets properly backfilled, especially if the window opens on a 16 colour screen under Kickstart 3.x. - The Fast! macro window now always opens in a useable state. This was not always the case in previous releases if the main window had the wait pointer set while the new window was about to get opened [Andreas Wolff]. - Put the old code back into xpr_sread. Somehow none of my attempts to improve things in this area seem to bear any fruit [Martin Berndt]. - Fixed the delete line ("Esc [ L") and insert line ("Esc [ M") commands which were really broken in one special case, which is if more lines were to be deleted/inserted than the current scrolling region would hold. This code never worked in all previous `term' releases (it would clear the entire screen, not just the part covered by the scrolling region), but this time it really crashed [Andreas Kirchwitz]. - Unified review buffer and text buffer. Both services now share the same code and more or less the same features. This has its drawbacks and advantages. I really don't want to return to the old console.device style review buffer implementation, so you better get used to the new way of doing things ;) - Changed the layout of the translation panel buttons [Stellan Klebom]. - When using an external transfer protocol program, prefixing the program name with "run" no longer causes the name of the transfer protocol to be reported as "Run". The "run" command is now skipped, hopefully causing the name of the program to be executed to show up. - The transfer configuration now by default gets the standard Hydra invocation commands copied into the binary protocol entries. - Changing the default transfer protocol to an external program did not always cause an immediate update of the status line, it does now. - Better ARexx script recognition within the transfer settings control panel. Previously, in order to have ARexx scripts recognized they had to have their executable file protection bits cleared. Changes in v4.4.5 ================= - Changed the way the default buttons look like. Now, what do you think? - Removed some historic rubble from the screen settings editor which caused screen display modes to be sorted out that would offer less than 640 columns in their default resolution [Russ LeBar]. - Shuffled the controls in the serial and modem settings editor a bit [Russ LeBar]. - New sort algorithm for phonebook and friends. - All new phonebook. This change is massive and most likely to attract the usual kind of trouble. No documentation exists for this new part of the program yet, sorry. I haven't decided yet how to implement certain features, such as what the checkbox next to the "Rates" settings will do. - Fixed another load of bugs in the user interface support library. Changes in v4.4.6 ================= - If the single character entry window fails to open, the checkmark near the menu item gets cleared. - The phonebook now uses the brand new popup gadgets. - Reassigned some keys in the phonebook [Russ LeBar]. - Brought back the v4.3 style xpr_sread routine. Please give this a test and tell me if file transfer reliability improves. - The phonebook window will no longer expand to display 20 lines of text if there are less than these few entries in the phonebook list [Chris Hanson]. - The phonebook window will grow in the horizontal direction to make more room for the single phonebook entries [Andreas Kirchwitz]. - Just for fun, added support for VT52 escape sequences. Except for "^" and "_" all should be properly implemented. - Duplicating an entry in the phonebook would discard special item tracking information in the new entry created, this has been fixed. - When saving a phonebook file, the currently highlighted group will be saved along with it. The next time the file is loaded, this very group will appear in the listview as the active group again. - `term' now reads the system screenmode, serial and font preferences to establish its power-up defaults. Changes in v4.4.7 ================= - The RECEIVEFILE ARexx command never paid any attention to the file name you could optionally provide, now it does [Stefan Falke]. - If the serial device driver is released on request by OwnDevUnit.library you now get the choice to return to `term', to iconify `term' and to quit the program [Christian Hechelmann]. - New options for the phonebook: you can now define which phonebook entries should go into an auto-dial list which `term' will start dialing right after startup. In addition to that, you can also tell `term' to keep redialing each entry in the list until it hits the last entry, which will cause it to exit. In order to stop this, either hit cancel in the dialing window, or turn off the "auto exit" feature in the phonebook/clear the dialing list. Last but not least there are new command line options/tooltypes to select a particular phonebook file to use and to turn on the auto dial and auto exit features even if the phonebook was saved without having these enabled [Don Schmelling]. - The emulation settings now allow you to select how `term' responds to device attributes and identify commands. The options include VT200 (the default), VT102, VT101 and VT100. This option does in no way affect how the terminal emulation operates, i.e. if you switch to VT100 `term' won't ignore VT220 commands. Only the responses are affected [Rich Jesse]. - Phonebook loading severly broken when using file prefs, fixed now [Martin Berndt]. - With the phonebook file format changes the XPR library name was left blank. This in turn caused an unsigned counter variable to flip, and `term' enventually started to spin into the void... Fixed. Changes in v4.4.8 ================= - Changed the look of default buttons again. They are no longer quite that bold, but now the label text is. - Creating a new group now also updates the group label. - Page #3 of the emulation settings was missing, it's back again now. - Changed the layout of the phonebook buttons again [Chris Hanson]. - Moved the phonebook sort options into a separate control panel [Russell LeBar]. - Added memory allocation debugging code. To enable it, do the following: setenv termprealloc setenv termpostalloc For insert the number of bytes to put before and behind all memory allocations `term' makes. The numbers will be rounded to multiples of 16. Please note that if you don't choose a prealloc value, the debugging code won't kick in. If you omit the termpostalloc but specify a prealloc value, `term' will use a default of 16 bytes as the postalloc value. To make things more interesting, once you've enabled the debugging code `term' will fill all its memory chunks not allocated with MEMF_CLEAR with $DEADBEEF. When using the debugging code, please run SegTracker and Sushi (preferably with a 128K buffer) in the background and capture its output to a file. Oh, by the way, `term' will also remember the largest and smallest allocation made. I plan to add texture mapping to the spheres in the future. - Implemented DECANM and VT52 "Enter ANSI mode" commands. Both the VT52 and the VT220 emulation use the "H" command for different purposes. The implementation now honors the mode in which the emulation operates [Andreas Kirchwitz]. - `term' no longer forgets about the location of the cursor key, translation, etc. files and assumes that they are to be found in the default locations [Andreas Kirchwitz]. - Added a new raw file capture mode, so one can make verbatim file captures without having to go through the capture settings and locate the right switch. - Phonebook entries tagged to go into the quickdial menu which are placed in groups now appear in submenus of the quickdial menu. If all the entries come from just one single group, however, no submenus will be created. - Fixed some more bugs in the popup and menu layout code. - You can now rename groups by tagging all members of the group and clicking the "Make group" button. In the requester to pop up, enter the new name of the group [Russell LeBar]. Changes in v4.4.9 ================= - The text buffer display code crashed under v2.04. After chasing it for three hours it finally surfaced in the scrollbar creation code. Thanks go to Peter Banville for being so persistant :) - The XPR init code was throwing the wrong library names in case the setup went wrong. Fixed. - In the phonebook, clicking on the "rates" settings checkbox now does something sensible. If the button gets ticked, it will receive default rates settings. If the checkmark is cleared, all the rates settings associated with it will get zapped. Changes in v4.4.10 ================== - "Dial" is now the default button for the phonebook user interface, I also edited some phonebook gadget labels a bit [Chris Hanson]. - The phonebook window title now keeps track of the number of phonebook entries and those which are tagged [Andreas Kirchwitz]. - The "Select by pattern" code had the selection mode reversed, i.e. "tag matching entries" would untag entries, even if they weren't tagged -- with all the usual consequences (can you say "BANG"?). - Sorting single groups would trash large amounts of memory (Russ was right), as the array to be sorted would hold only a single entry, a memory allocation of the wrong size took place. - The editing window now responds to the cursor left/right keys, hold down any shift key to move to the beginning or the end of the list. - "Sort" is now the default button for the phonebook sort panel, this used to be "Sort+Close". - Rebuilding the main menu did not protect itself well enough against changes in the quick dial menu area, which could cause lots of Enforcer hits and worse. - The menu builder would depend on the order of phonebook entries to go into groups. It no longer does, I also removed the limitation of the maximum number entries to go into the quick dial menu. Watch out, if `term' runs out of space it will fall back to the default menu layout without telling you what went wrong. - The phonebook entry edit window now sports a "Hide" checkbox which is by default checked. If checked, the window won't display or let you edit the user name and password [Russell LeBar]. - Cleared out a lot of dead code, this cut the program size a bit. - In sixteen colour mode the default text rendering colour is now colour #7, this used to be #15 (i.e. #7 with highlighting). This makes colouring more consistent with the ANSI specs and avoids silly "white on white" rendering. - `term' now requires gtlayout.library v24 to run, so make sure you have it installed. - Replaced all cycle gadgets that were acting as page selectors by the new tab gadgets. I'm still not entirely happy with the visual design of these, point & click is also a bit difficult if the tabs are overlapping one another. The [Tab] key still moves you through the single pages, plus there is a new feature known as "strumming", i.e. you can hold down the mouse button and drag the pointer across all tab tags to see which choices are available. The tags will appear to be plucked out a bit while you review them. When you let go of the mouse button the tag you are currently viewing will become the active tag and the page will be rebuilt. FYI, the tab gadgets will eat a lot of chip memory, please keep an eye on this and let me know if this is a problem for you. Changes in v4.4.11 ================== - At the end of an upload through the built-in ASCII transfer routines `term' would invoke the download macro [Mirko Lukas]. - Flipping through groups in the phonebook did not update the "current" entry counter, in fact the code was forgetting about it but did not show this in the user interface. - No longer uses buffered I/O when talking to the printer device. - Shuffled the buttons in the phonebook window again [Russell LeBar]. - The tab key wasn't flipping pages properly in the transfer protocol editor panel [Russell LeBar]. The same was true for the internal ASCII send/receive setup panel. - More label and menu changes to support the tab gadgets [Russell LeBar]. - Small visual changes to the tab gadget tags; there are now fine separators lines around the edges. - Added a shortcut to the emulation settings to make the emulation BBS-ANSI compliant. Just hit the checkbox to have the relevant options updated. It ought to update the terminal options as well, as a typical BBS-ANSI display measures 80x25 characters and most likely uses the IBM PC style font. However, it doesn't since this goes beyond the scope of this settings editor. - The menu layout code did not handle submenu items properly that would end up at the end of the menu list and would need to be shifted around in order to avoid having their hit boxes hang over the right screen border. This was tough to fix and even tougher to find in the first place... - Finally (!) caught the not-quite-that-rare-but-still-very-surprising case in which the font sensitive layout gadget procedure within gtlayout.library would loop forever without getting anywhere. This was happening frequently when using topaz/8 as the user interface font and with screen resolutions that did not support overscan. Note that `term' will try to open a screen in the right size, but if the requested screen size is unavailable, it may decide to open the window anyway, even if this causes gadgets to hang over the window borders. Much better than not opening the window at all, or what do you think? - The tapedeck control button images now have a minimum size limit, so they look proper on low resolution displays. - The single menu strips are once again placed closer together. A total of two pixels in between neighbouring strips is used. - Fixed the other control sequence that was used both by the VT220 emulation and the VT52 code (" D") [Matthias Scheler]. - Caught a very rare bug in the phonebook. If no phonebook file was loaded, and if you were loading a new phonebook file to include groups, using a special default group, `term' did not get the group display and the phonebook list right. Hitting any entry would invariably cause two more or less harmless Enforcer hits. - The screen displaymode picker revisited. I killed the filter, but the minimum size tags remained. - The commands to change the text size (DECHDL through DECDWL) could enable the text cursor too early, which would leave ugly artifacts on the screen. This would rarely happen in real life as the speed at which data had to be fed into the emulation was far beyond 100,000 chars/second to make the bug manifest itself. Changes in v4.4.12 ================== - Alas, more changes. This time I combed the screen settings editor for dead code and indeed found a lot, plus certain routines I must have written while I apparently was not fully conscious. The editor frequently cancelled the wrong pages, did not update the colour palette when switching colour modes and moved in utterly strange and mysterious ways when trying to determine whether the user should be allowed to change the colour palette. In a nutshell, your basic waste of code, time & reliability. - Minor changes to the serial and terminal settings editors. - Part of the list management was badly broken, this affected in particular the upload list handling (the ARexx upload list, not the upload queue that has its own window). I'm not absolutely certain, but after going through the code for more than three hours I am no longer able to get the machine to crash through the ARexx "SENDFILE" command. It appears that the bug is fixed. Could you give this a try, Chris? - Caught some more cases in which list and node management routines could corrupt memory. - The ARexx "SENDFILE" command was sending the upload macro twice on exit. - Some text buffers handed over to dos.library in order to retrieve file names were not quite as long as `term' told dos they were. This could cause the usual kind of trouble, but only with very long file names. - The dialer did not update its OwnDevUnit watcher status when the serial device driver or the ODU options were changed. - Untag/tag by pattern was still broken, leading to weird select states in the phonebook. - Swapped the "Use" and "Copy" buttons in the phonebook [Chris Hanson]. - Made the left button row of the phonebook a little smaller by changing the "Exit when finished" checkbox label to "Auto exit". Not that elegant and doesn't even avoid that the phonebook comes up on its own screen with a 640x200 sized display, but at least there is no longer so much of the window hidden from view. The only way to make the window a bit smaller would be to rename "Pattern..." to "Select..." or something, but I cannot do this anymore as the catalogs have been sent to the translators already :( Changes in v4.4.13 [final] ========================== - The checksumming code did not hit a nul-character, causing the startup to take much longer than necessary. It could also cause `term' to crash upon startup for no apparent reason. - Finally (!) managed to fit the phonebook on a 640x200 sized screen. The button size precalculation was using the wrong button data. It did not take the modifications of the phonebook button arrangement into account that took place in the previous betas. - Squeezed a few more bytes out of the user interface support library code. - Fixed non-reentrancy problem with the user interface support library. - Gave `term' a test on an old A500plus. It runs on an 68k Amiga with 2 MBytes of main memory, but not very comfortably. - The grouping window in the phonebook did not always close when it had better closed down. Now it does. - Removed the font scale button from the emulation setings which came back when I restored page #3. - Changed the way window backfilling is done. - Made some windows to simplerefresh, which is both faster and uses less memory. Due to a bug in asl.library v40 I couldn't do this for all windows... - Updated ASL tags and references throughout the program to use the v38 names. - Saved some LT_LockWindow..LT_UnLockWindow pairs. - Squeezed the user interface library some more. - Changed the default modem commands a bit and shuffled some few user interface items around.