NComm V2.0: Released the 9th of Mars 1992. ========================================== This is the first official ShareWare release of NComm. Some persons probably wonder why NComm suddenly has turned into ShareWare: First: We've all spent a lot of time and money making new versions of NComm. After four years of continuous development, I think it's about time that both Daniel, Trym and I get a little back for the effort and money we have put into NComm. Second: This will hopefully insure continued development of this program. It's a lot more inspiring to work on NComm if you can earn a few pennys on it. I have got a lot of plans for NComm. A few of the things I currently want to implement are: o A complete VT220 emulation o Custom font support, eliminating the need for special NComm fonts o An even better script language with numeric variables, arithmetics and string functions etc. (Any additional suggestions will off course be highly appreciated). I would also like to do a major code clean-up, minimizing the use of memory and making a better interface/look when using OS 2.0. This will hopefully also make NComm run a little faster. However, since I no longer intend to work for free, neither of these things will be realized unless you pay for your version of NComm. If you want to keep "developers developing", please register your version of NComm. The money that we get for NComm will off course be shared just between Daniel Bloch, Trym Hansen and I. The price for the registered version of NComm 2.0 is $35 or 215 NOK. Upgrades can be received freely by calling the NComm Support BBS. Snail-mail upgrades can be received by sending $6 or 35 NOK for each upgrade. Please refer to the NComm.doc file for more information. PS: NComm V1.95 BETA is a version that was never meant to be released to the public. STAY AWAY FROM THIS ILLEGAL VERSION! It's FULL of bugs and also lacks many of the features in V2.0. PPS: Also stay away from the FAKE version V2.003. Bugfixes since V1.921 --------------------- o The ANSI auto detection code ESC[6n sometimes crashed NComm o Zoom'ing the scrollback window on the WorkBench screen crashed NComm when using OS 1.3 (and it wasn't even a bug in 1.3 :-) o Terminal emulation has been improved. ESC[...A, ESC[...B, ESC[...C, ESC...D and ESC...;...H now stop at the correct margins. Previously they didn't, and due to a serious bug in the console.device this also crashed NComm from time to time. o NComm would previously not work with the A2232 serial card at any other speeds than 2400 baud. This has been fixed and probably fixes some problems with other device-drivers too. o 7E1 (7 data-bits, even parity, 1 stop bit) did not work if it had also been turned on in Preferences. o NComm restarts the script timer after a download/upload. Previously you had to enter "timeout 0" before a upload or download to prevent the script timer from messing things up after an upload/download. o OS 2.0 snapping could sometimes be selected even when using 1.3. o It's no longer possible to dial more than one unlisted number from the menu by using the Dial Number function. (Unless you have seperated the numbers with a '|') This caused several problems. o You may no longer delete an entry from the phonebook if it exists in the dialling queue (this caused some *very* funny problems :-) o NComm didn't remove the status window on WB completely (if you were using a WB pattern you would see a small area without a pattern) o The phonebook script now starts as soon as a connection is established. Previously the script was started too late. o Spaces were not allowed in path name when downloading with Zmodem. This is a bug in the XPRZmodem.library but anyway, I fixed the problem. o Fixed a problem with the ESC[17x G&R command. o The "PRINTER" script command was broken. o The "disk full" message sometimes popped up when it shouldn't... o Uploading/downloading to another dir than the default upload/download directory did not work when using EXPR or Kermit. o Hopefully fixed some more bugs in the timer.device dialling routines o Did not open terminal window on WB screen when loading a config file o Colors will be translated correctly when echoed locally o The padding function did not work if the ASCII file started with a CR (this has been a bug since MsgSend was included :-) o Menus and text do no longer get garbled when running NComm on the WB screen and using large screen fonts (set via the OS 2.0 font" program) o Fixed problems with the XON/XOFF handshaking. o Fixed several scrollback display bugs Script changes ~~~~~~~~~~~~~~ o The script execution is now up to 20 times faster than previously. NOTE: This also means that "label: goto label:" will tie up your system 20 times more than before so use WAIT "foobar" or the DELAY command if you want the script to wait forever... Many new commands have been added to the script language; o The CHAIN command now remembers variables. Use the command "CLEARVARS" if you want to clear all variables. o The DUMP command now takes a filename as an optional parameter. If you specify a filename, output will be appended to that file instead of displaying the contents on screen... Example: DUMP "t:debug_info" o Added script command "DORX" that executes an ARexx command/script. Example: DORX "ncomm:scripts/rxread1.ncomm" o Added RING command that checks the Ring Indicator signal (hardware) Example: Loop: delay 1 ;Wait one second if RING then goto Send_ATA goto Loop ;Repeat the loop o Added CARRIER command that checks the Carrier signal (hardware). Example: Loop: delay 1 ;Wait one second if CARRIER then goto Connect goto Loop ;Repeat the loop o Added MENUSELECT function that selects a function from the menu. Example: MENUSELECT SYSTEM 0 ;Open About Window MENUSELECT TRANSFER 6 2 ;Selects KERMIT CD o The character set can be changed from scripts via the variable $charset. Example: SET $charset = "IBN" MESSAGE $charset o Most serial-port parameters can now be set via the variables $length, $parity and $stopbits. Example: SET $length = "8" ;8 data bits SET $parity = "N" ;no parity SET $stopbits = "1" ;1 stop bit o Variables can now be read from files via the commands VARFILE/READVAR. VARFILE "filename" ;open file for input VARFILE CLOSE ;close varfile READVAR $var ;read line from varfile into $var Example: VARFILE "s:startup-sequence" READVAR $firstline READVAR $secondline VARFILE CLOSE MESSAGE $firstline"\n"$secondline"\n" o You may now delete any WHEN that you like with the command DWHEN. Specify the WHEN search string as a parameter. Example: WHEN "abc" SEND "abc" WHEN "bcd" SEND "bcd" [...] DWHEN "abc" ;remove "abc" when checking o Added REDIAL command that enables/disables redialling o Added AUTOUP/AUTODOWN/AUTOXFER/RESUME/PADLINES commands that enable/ disable Zmodem auto-upload/Zmodem auto-download/G&R Commands/ Zmodem resume/Pad Blank Lines All req.library requesters can now be accessed from the script language: o The script command PALETTE opens up the palette requester. o The file requester may be accessed via the variable $FILEREQ. Example: SET $filename = $FILEREQ IF $filename != "" config $filename o The string requester may be accessed via the variable $STRINGREQ. Example: Set $baud = $STRINGREQ o You may open simple text requesters with the command SimpleReq. Example: SimpleReq "You selected: "$filename"\n" o The TwoGadRequest() function can be accessed by using the BOOLEAN expression SELECTFALSE (you may of course also use the ! (NOT) operator if necessary) Example: IF SELECTFALSE "Fast modem?" THEN SET $baud = 300 ARexx Interface added ~~~~~~~~~~~~~~~~~~~~~ I've finally added an ARexx interface. Thanks to Radical Eye Software for their MinRexx module. The ARexx interface offers you all the same possibilities as with the new internal script language. I've also included a few extra goodies that should make it possible to write very powerful scripts or even an advanced BBS-system in ARexx. The ARexx interface totally adds less than 13K to the code so I did not bother to make a special non-ARexx version of NComm. The port name for the first copy of NComm is 'ncomm', further copy's will use the port name 'NComm-X', X is 1 or more. The default extension for ARexx scripts that are used by NComm is .ncomm. You may use the CLI command line option '-r' to start an ARexx file/ command with parameters. Note that this must be the last option specified! There are several other ways to start ARexx scripts. Apart from using the CLI "RX" command, you may start an ARexx script from the menu (Amiga-$). You may also start an ARexx script from a macrokey by entering {arexx} followed by the path/filename. ARexx scripts may also be executed from the phonebook, just like normal scripts. Enter the path/filename in the "ARexx" string gadget. Information about the script will be displayed while dialling and the script will execute as soon as you are connected to the system. Please see the ARexx.doc for more information. Also take a look at the few example scripts that have been supplied with this package. Serial changes ~~~~~~~~~~~~~~ o Added support for the UUCP function "getty" by including a "Lock Serial" option. If selected, this function will lock the serial port when starting NComm and unlock the port when quitting. o You may now select mark or space parity from the menu. o I've added a command line option '-e' that enables CTS/DSR checking. This function was actually included for debugging purposes but I didn't bother to remove it :-). If this option is specified NComm will warn you if CTS or DSR is low when opening the port. Serial.device requires these two signals to be on when opening the port. If these signals are low, CTS/RTS may not work. o 1200/75 baud (split speed) support has been added. Thanks to David A. Varley for sending me the 75-baud output routine. The code jumps directly on the hardware and shifts out one bit at a time with precise timing. This unfortunately also means that this function will only work with the internal serial port. I've included an option that makes it possible to set the delay between each bit that is sent since the timing may differ from machine to machine... o Shared mode and CTS/RTS handshaking may now be used simultaneously. However, use this feature with care! Some *NASTY* gurus will appear if you try to run more than two NComm-copies simultaneously. As far as I can see, this is due to a bug in the serial.device. Dialling changes ~~~~~~~~~~~~~~~~ o Messages from the modem are now displayed in a seperate field in the Dial window. o I've changed the dialling routine totally. NComm now only aborts if the code that is received is identified as an "abort code". I've included codes for "VOICE", "NO DIALTONE", "ERROR", "RINGING", "NO ANSWER", and "RING" (remote ring). You may also adjust NComm's tolerance for these codes in the modem setup requester. o If the script file that is specified in the phonebook does not exist in the current directory, NComm will check if it exists in the NComm: directory. o Info about last logon-time/date will be stored in the phonebook each time you connect to a board. The info will be displayed in the dial window or when editing phonebook entries. The phonebook will automatically be saved to disk at CONNECT if the "log calls" option has been turned on. o Added "Redial at logoff" option. If turned on, NComm will start dialling the rest of the boards that are selected in the phonebook after logging out from the current system. NComm automatically deselects boards in the PhoneBook when you connect to them. o If the entry that you are dialling contains multiple numbers seperated by a '|', NComm will display info about the call in progress, for example "(1 of 2)". o I've added nodelist support via the traplist.library. You may dial any number from the nodelist by entering a node number instead of a telephone number. Node numbers may be entered *anywhere* where telephone numbers are accepted. You may for example enter "2:502/15" as a number in the phonebook. Use the "Change TrapList Dir" function to change the nodelist directory. Modem setup changes ~~~~~~~~~~~~~~~~~~~ o As mentioned previously, most modem result codes may now be entered in the modem setup menu. These fields also have a "Max" option that makes it possible to adjust NComm's tolerance for these codes. Please see the documentation for more information. o Added option for turning off "Modem not responding" checking. Note: Normally this is a fatal error and means that your modem did not respond to the command that was sent by NComm. Please check your complete modem setup rather than just turning off this option. o Included option for hardware CARRIER / NO CARRIER checking. NComm waits for DCD to go on when dialling and waits for DCD to go off before logout. This is more reliable than just looking for the NO CARRIER string (if it shows up in a message, NComm will assume that the call has ended). NOTE: Your modem must track TRUE CARRIER. This means that the DCD signal must be "low" (off) in command state and should not go "high" (on) until a connection has been established. o Added a "Loop Delay" gadget. This delay-time controls how long NComm is supposed to wait before repeating the dial loop. o Changed the text "Auto-Speed" to "Locked Rate" since many people misunderstood what this function was actually doing. Normally, the locked rate option should be turned on! If this function is turned off, NComm will look for the number that is specified after the CONNECT message and automatically switch to that speed. Macrokeys changes ~~~~~~~~~~~~~~~~~ o Added four extra gadgets that makes it possible to configure what the cursor-keys should send when shifted. This can be very handy for installing Home, End, PgUp and PgDown. Suggestions for the MBBS FSE... Shift-Up: CTRL-R Shift-Down: CTRL-C Shift-Left: ESC [ H Shift-Right: ESC [ K o Added '\i' command that sends out the modem init string (this may of course also be used in scripts). o Added support for '\xHEXNUMBER' and '\NUMBER' in macrokeys (can also be used in scripts). This makes it possible to send codes like '\x1b' (escape) and '\32' (space) from macrokeys. Scrollback changes ~~~~~~~~~~~~~~~~~~ o The snapping has been much improved. Previously you had to mark a whole line even if you just wanted to mark a single word. You may now set vertical positions where the block should start and end (like the Mark Block function in CygnusEd Pro). o The search function will now only mark the word that you are searching for and not the complete line. o The scrollback is now much faster when you use the proportional gadget for moving between lines with a long distance between them. This also means that the "move to end" function now takes no time at all. The speed increase depends on distance and position in scrollback. o The scrollback now displays the end of the buffer as soon as the window opens up. o IBM graphics that are saved with the "Save block" function will now be translated to "real IBM". o Added "Clear scrollback" function. o The scrollback save functions now asks if they should Append/OverWrite/Cancel if file exists. Phonebook changes ~~~~~~~~~~~~~~~~~ o Added two gadgets for moving to next/previous record while in "edit" mode. I.e, you don't have to return to the main menu if you want to edit any other records... o The 'Edit' function has been much improved. If you want to edit multiple entries, simply select all the entries that you want to edit and then press the 'Edit' button. When clicking on the 'OK' gadget, the edit function will automatically display the next entry that was selected. o Added a combined "Mark All" / "Clear All" button. If any entries have been selected, this function will deselect all entries. If no entries have been selected, this function will mark all entries. o Added a swap command that swaps two entries. Click on two entries and then on "Swap" if you want them to change place. o If an ARexx script should automatically be started at connect you may enter the path to the ARexx script in the new gadget field called "ARexx" while in edit mode. o "Last dialled" information will be displayed while in edit mode. Turn on the "log calls" option if the phonebook should automatically be saved when a connection has been established. Transfer changes ~~~~~~~~~~~~~~~~ o Added support for the Compuserve Quick-B and Jmodem protocols. The protocols can be referred to as 'Q' and 'J' in the script language. These protocols use the "xprquickb" and the "xprjmodem" libraries (not included in this package). Please note that I have not actually been able to test these protocols with NComm, but they should work without problems if they follow all the XPR-specifications. o You will now get a graphic display of how much of the transfer that is finished when uploading or downloading (if supported by the protocols). The CPU loss is kept at a minimum but anyway I've added an option that makes it possible to turn this feature off. o NComm now checks at startup if the upload and download directories exist. If they don't exist, you will get a warning. o From now on, a file-requester will pop-up if you want to select an External-XPR library. The pattern "xpr*.library" assures that only valid XPR libraries can be selected. o I've added an "Add filenote" option. If selected, NComm will add a filenote to the file after a download. The filenote consists of either the boardname or the telephone-number to the board where the file was collected from. Such a filenote will also be added when doing an ASCII Capture or when saving the scrollback. o Added an option for setting the Zmodem buffer size. The recommended value is 16K but you may enter any values between 1 and 1024 (1MB). o The "internal multitasking" has been *much* improved when downloading. When using a 14400 bps modem, the Scrollback is now almost "real-time" when downloading or uploading... Terminal changes ~~~~~~~~~~~~~~~~ o Added "Flashing text" option. Text will be displayed as "flashing" if ESC[5m is received. If this option has been turned off, the text will be displayed in italics if the style command has been turned on. This function uses an extra bitplane for flashing the text so the text display will slow down a little when this function has been enabled. NOTE: Due to limitations within the console.device, flashing text can not be used when using 8 colors. EXTRA BONUS FEATURE: The cursor will flash too... This is also due to limitations within the console.device (it's not possible to change the color used for displaying the cursor). o I've added an option that forces a window that is 80 character wide and 24 characters high (80 x 24). Some bulletin board systems seem to require such a display. o NComm now understands the codes used for ANSI detection (cursor position report, terminal report and terminal state) and responds with the correct codes for a VT100 terminal. o Added "Line Wrap" option. When this option has been turned off, text will not move to the next line when hitting the right edge of the window. This is according to the VT220 specs, so normally this function should be turned off. Other changes ~~~~~~~~~~~~~ Added an OS 2.0 version string. You can now use the CLI 'version' command for checking your NComm revision. A new host script has been included, made by Nils-Arne Dahlberg. It uses many of the new features in NComm V2.0's script language. The CLI '-u' option shows who owns this copy. Hopefully YOUR name is displayed, if not you had better report this to me as soon as possible. ========================================================================== NComm V1.92 was released in a hurry and had not been tested very well (the beta-testers deserve a large flame :-) Many bugs were unfortunately still left in the code. NComm V1.921 fixes all the bugs that were reported. o CTS/RTS only worked if it had been turned on in Preferences (I can see that JrComm 1.01 has the same problem). The serial device settings are now completely independent of the settings in preferences. o Since the input.device (the device that handles all input events) runs at priority 20, it would be fatal to set the NComm priority to 20 or higher. The maximum allowed priority is now 19. Another very naughty thing: The A590 harddisk sometimes changes the input.device priority to 5, so a priority of 5 or more could cause problems too. When running NComm at a higher priority than input.device, the scrollback up/down-gadgets never received an IDCMP message when releasing the left mouse button. Finally, you had to reset your machine :-( To prevent such hangs, NComm now checks if input.device runs at a lower priority than NComm and changes the input.device priority if necessary. Note: Be careful with setting a high priority! High priorities often cause big problems, dead locks and so on... The filesystem normally runs at priority 10, which means that you could get into trouble when setting the priority to 10 or higher. I personally run NComm at priority 15 (on an A3000) and have experienced no problems, but the general rule is: If you experience problems, try setting a lower priority. o XPRZmodem library V2.10 should now work with NComm (The serial input routine returned -1 on timeout so V2.10 did not work. Thanks to Geir-Inge Høsteng for locating the bug!). NComm V1.9 contains the same bug. o The download warning message "Not enough disk space" was unfortunately brought up during uploads when uploading from a disk that was almost full, or when using Xmodem/Ymodem :-/ o "Next board" msg was misplaced when dialing multiple boards. o (Due to a bug in AmigaDOS 1.3): It was almost impossible to choose any options in the "Protocol options" submenu. o The ANSI mouse function turned itself off when changing resolution. o Numbers dialled with the "Dial #" function were not dialled immediately if a Dial window already was open. The window had to be shut down first. o Many users experienced hangs when dialling entries in the phonebook. This normally happened when closing down the transfer window or pressing any of the gadgets. This bug is probably caused by a problem with some very old timer routines, so I guess it has existed for quite a long time. Anyway, I added some lines of code that should prevent the timer functions from messing things up. Hope most of the problems are gone now (everything seems to work nicely with OS 2.0) o Even parity is not handled correctly by the serial.device. I have added some code which should make 7-Even-1 work correctly. (thanks to Jack Radigan for supplying me with the code originally written by Dave Wecker). o Upload requester was sometimes brought up twice when using the Zmodem "Auto Upload" function. o The "Save Scrollback" function did not save the complete buffer if the buffer had been filled up. o Tried to fix the OpenDevice() bug when using OS 2.0. I'm not 100% sure if it's gone, but anyway, thanks to Willy Langeveld for pointing out a few things that could be wrong! o Smashed a tricky bug when using "EXPR protocols". If an EXPR transfer was aborted, this would disable the "auto-activate transfers" feature for that protocol. o Amiga-X could not be used within gadgets since this hotkey was used by the ASCII capture function. The new hotkey for the ASCII capture function is now Amiga-J. o ANSI-mouse escape codes will not be sent when closing the "About" window with a mouseclick. o Fixed a problem with international keyboards in the scrollback. o If a script is already running when dialling a new board, the script configured for use with that board will not be started. o The 'SCR' and 'CAP' fields were not removed properly from the status line. o There is a problem with the 2.0 console device when using snapping. NComm uses two fonts for supporting IBM graphics: the problem occurs when characters drawn with the second font get overlapped by another window. The 2.0 console device will then redraw these characters with the current font, and the whole thing will look garbled. Until this gets fixed, NComm will only turn on the snapping flag when the "2.0 snapping" function has been selected. This also fixes the problem with screen-flashing when using Emacs. Unfortunately, this also means that NComm will have to close the terminal window when selected. o "ANSI mouse" escape codes were sent when clicking on the file requester 'OK' and 'Cancel' gadgets. o 16 color ANSI graphics didn't work and still won't work due to limitations within the console.device. We will probably have to get rid of the console.device before we can implement a complete ANSI emulation. I have decided to leave these things unchanged until a better VT100 emulation has been added. o The GURU appeared if the download/upload directory-name was more than 80 chars. o By pushing the "Quit NComm" window to the back of the 'About' window, you would put yourself into a "dead end". NComm now closes the About window before putting up this requester. o NComm would crash if 'NComm:' had not been assigned and the current directory path was > 30 chars long. o A "Sysop" directory was missing in the Host directory. The format should be the same as the CoSysOp directory. o When using the program ConClip, the OS does not automatically paste text to level III console.device windows. Instead, Amiga-V results in an escape kode. This escape code much resembles the code sent when pressing the first function key, so actually, the first macro key was sent to the serial port when pressing Amiga-V. NComm now reads the contents of the clipboard when the correct escape sequence is received (another 2K of code, sigh...) o The mark in PhoneBook will be removed when choosing 'Del/Remove' o Various internal buffers will now be updated when calling a new board. New functions/features ---------------------- o Added support for Kermit Finish/Bye/CD server commands. o Will no longer create a default 'show' field (based on the previous filename) in the file-requester when uploading or downloading. o Possible to expand scrollback window to full screen size with "Z" (zoom) key. o Added support for skipping a single file during an XPR-transfer. I don't know about any protocols that support this yet, so watch it! By pressing the xfer-window gadget you will probably abort the complete transfer. o The "print" function will now ask which device you want to use as output (you may for example select PAR: or SPEAK:) o Styles will get turned off at CONNECT ---------------------------------------------------------------------- NComm 1.92 is a vastly modified and enhanced version of NComm V1.9. It corrects all known bugs of the earlier version. Some changes and additions have also been made. Just to make a few things clear... ---------------------------------- NComm V1.92 does NOT contain an ARexx interface NComm V1.92 does NOT contain an improved VT100 emulation NComm V1.92 does NOT contain an improved script language (numeric variables etc.) If you really need any of these fixes, you will probably be disappointed, and should look somewhere else. Any of the above features will take a lot of time to realize. Currently, Daniel and I don't have much time for working on NComm. Hopefully, the ARexx interface will be ready within a few months. Anything else will have to wait for a long time: Don't expect to see all these features implemented until 1992. Remember: NComm is just a hobbie, we don't earn a single penny on it. Just forget every rumour you have heard about NComm V2.0! However: If you are pretty satisfied with V1.9, this version will hopefully suit you well. It corrects several serious bugs, and also adds some features that will make NComm much more comfortable to use. The NComm Host Script has also been enhanced and should even make it possible to run a small BBS. ----------------------------------------- *** What has been changed from V1.9 to V1.92? *** ----------------------------------------- - Windows have been customized for use with OS 2.0. Text can be pasted to the console.window using Right-Amiga-V. The hidden depth gadgets are now compatible with OS 2.0. A "close gadget" will be added to the NComm CLI window when running 2.0. Added optional "2.0 snapping support", allows 2.0 users to snap text from the NComm terminal screen using Right-Amiga-C. - NComm may now be run on WorkBench, and will then use the new 2.0 gadget flags if used. NComm may be "iconified" with the new 2.0 window iconify gadget. - Added 4 and 16-color ANSI color modes (16 colors will run awfully slow and should only be used at 2400 baud and below. If you own a 68030 machine, I recommend using the program CpuBlit by Eddy Carroll for dramatically increasing the screen display performance). - Added "Close Workbench" option, saves memory. - More options may now be specified at the CLI prompt; o -cFILE; Load config file with name "FILE" o -mFILE; Load macro file with name "FILE" o -pFILE; Load phonebook with name "FILE" o -sFILE; Load "FILE" into scrollback o -d; Disable scrollback adding - Many new serial.device options have been added. The serial unit and device may now be selected from the menu. The serial.device can now be run in "Shared" mode. Baud rates from 300 to 115200 baud can be selected (but M68000-Amiga's still only handle a maximum of 31250 baud...) An "adjust" option allows you to "fine tune" the baud rate (old versions of the serial.device miscalculate the baud rate, and this causes problems with some high speed modems, like the US Robotics HST). Added "DTR hangup" option for dumb modems. - "Req.library" is now used for most requesters. This makes NComm much more comfortable to use. All requesters are started as seperate processes, and will therefore multitask! - NComm now has a *complete* XPR library implementation, and even supports all extension fields (NComm previously only had the minimum of functions necessary for running XPRZmodem). - Added support for XPRKermit.library (Kermit protocol) and External (custom) XPR libraries. Options may be be entered via an init string or by query. New protocol flags in script language (K == Kermit, E == EXPR). - The download/upload window will no longer be activated when opened. - NComm will put up a warning if there is not enough space for receiving a file onto the current device when an Ymodem-Batch/Ymodem-G/XPR download is initialized. - Added Ymodem-Batch/Ymodem-G/XPR support for batch uploads (hold down SHIFT in filerequester for selecting multiple files). - Zmodem autodownload is now (optionally) available for use with any bulletin board system. NComm will automatically jump into receive mode when the Zmodem header is detected. A Zmodem autoupload option has also been added (not yet supported by the xprzmodem.library). This option will automatically bring up a file requester when the Zmodem upload header is detected. - Optional icon creation for files downloaded. - It should now even be possible to multitask internally when uploading or downloading (Although it works, this is not recommended due to problems with serial.device and hogging of the CPU) - New ASCII send option: Pad out blank lines. Will send CR-Space-CR when CR-CR is detected. This is very handy when uploading a textfile into a text editor that returns to the command prompt when CR is pressed on a blank line. - "ANSI capture" option allows ASCII capture of ESCape codes (were previously filtered out). - The scrollback (review buffer) has been greatly enhanced. Added "mark", "paste", "search" and "save block" options. "Load scrollback" option allows you to load a textfile into the scrollback. If you "disable scrollback input", the scrollback may be used as a normal text viewer. Text may still be marked and pasted. The "load config" function will no longer delete the scrollback buffer if the sizes don't vary. Improved the adding of characters to scrollback a bit (GotoXY sequences and TAB's should work a little better now). The IBM font will be used in the scrollback if an IBx character set is being used. Much nicer "up/down" gadgets added. Added "left justify" proportional gadget, makes it possible to see text that does not fit on a single line. All proportional gadgets now support "real time scrolling". Scrollback text routines rewritten, cause faster screen updates. Hotkeys ('/', 'N', 'L', 'S', 'B', ' ') available. - When you connect to a board, the phonebook selections for that board will be removed. When you dial boards via the "Dial menu", the chosen entries will become selected in the phonebook. Information about "config" and "macro" files will be displayed in the "Dial window" requester. - The NComm logfile directory may now be changed (NComm previously always saved the logfile as NComm:NComm.log) - Optimized phonebook "Sort" routine, should be almost twice as fast now, and also consumes less memory. The "Print" function no longer truncates multiple numbers when printing. Transfer protocol and "Del/BS" swapping can now be selected in phonebook (please observe: all V1.9 phonebook files will now default to Xmodem, and should probably be changed using PbConvert.) - New macrokey option: {script}FILE will execute the script "FILE" when the macrokey is pressed. - Added ANSI mouse option (use the mouse for pointing at a specific location that you will move to). - Cursor blinking is available as an option. - Modem Setup window made larger, it is now easier to see which setup that is being used. - New translation option: "Destructive backspace". Will translate incoming backspace codes as BS-SPACE-BS. Assures deletion of the character to the left of the cursor. - "Quit verify requester" before quitting NComm. - A new enhanced NComm Host Script has been included. It was made by Nils-Arne Dahlberg, and now supports such things as private messages for all users, private user passwords, more message areas, packing and download of messages, UL/DL checking, grabbing of bulletins etc. - Many bugs have been corrected; o CTS/RTS handshaking now finally *works*! This important option has not been working in any of the previous NComm versions. o Zmodem ACKnowledge was always turned on during Zmodem transfers! This caused a dramatic loss of speed when using modems with a slow back-channel, i.e HST modems. So the Zmodem protocol in V1.9 was really quite slow :-( ACK will now only be set when transferring to floppy disks, but can be turned on manually in the options menu. o Smashed ten Enforcer traps, some of them serious. o Fixed SERIOUS bug that made NComm jump into "AMIGA_FIREWORKS_MODE" if boardname was longer than 24 chars. o Did a complete rewrite of most of the console.device routines and all the split-screen routines. This was necessary for adding extended 2.0 support. At the same time, I fixed some bugs in the previous console.device implementation (NComm would crash if it had no memory for opening a console.device, and the cursor sometimes got trashed when running OS2) o NComm no longer fragments memory! Found a bug in the clock routines, causing a loss of 40 bytes each time you started and ended NComm. o Fixed a bug in the "Save scrollback" function (would not save files larger than 32K). o 7-bit character sets were not loaded from the NComm.config file (previously used US7, but displayed something else in the status line :-/ ) o It is no longer possible to load a new phonebook during dialing, since the dialled entry then would become invalid in the meantime. o Fixed a few bugs in the IBP and IBM translation tables. o CLI window that NComm was started from may now be closed. o Removed View Transfer window. This function crashed 2.0 and was rarely used. o Caps Lock can now be turned on while using the Scrollback. Made an attempt to fix a bug that disabled Shift-Up / Shift-Down. o The Zmodem Resume flag is now updated when loading a new configuration (this caused many problems). o Modem Setup "cancel" did not restore Auto-baud flag. o It is now possible to pick items in the menus from all windows. Known quirks ------------ 1. Some of the req.library requesters look rather ugly (yellow) due to limitations in the req.library. Since all requesters are started as seperate processes, a problem occurs when you want to close the screen (or quit NComm). Most requesters that are open must then be shut down manually. This is also due to missing features in the req.library (signalling) and hopefully this will also get fixed in a later version of this library. The final problem with req.library is that the req.lib filerequester sometimes trashes the NComm window pointer (this can be proved by using for example ARTM). Hope to see a new version of req.library really soon! 2. If the serial device can not be opened when changing device/unit, NComm will try to open the previous device and/or unit. Sometimes this second OpenDevice() call causes a crash when using OS 2.0. The problem seems to be caused by the Amiga operating system, since this does not happen when using AmigaDOS 1.3. I rewrote the init serial routine from scratch but have not found any bugs in NComm's handling of the serial.device. ---------------------------------------- *** What has been changed from V1.8 to V1.9? *** ---------------------------------------- - The NComm.config file format has been changed. When upgrading to the new version, remember to delete all configuration files. The format has also been prepared for future expansion. - The NComm.phone phonebook format has been changed due to a new macrokeys field. Convert your phonebooks to the new format using the program PbConvert. The format has been prepared for future expansion. - FAST Zmodem protocol added, using the external XPRZmodem.library created by Rick Huebner. NComm now has the fastest Zmodem protocol available in ANY comms programs - actually faster than VLT, which uses the same library ;-) Maximum troughput close to 19200 baud using the serial.device that comes with Workbench 1.3.2. A new transfer window displays lots of information. - The Xmodem and Ymodem protocols have been completely rewritten, and are now ultrafast. Ymodem-Batch and Ymodem-G protocols have been added (please consult the documentation before using Ymodem-G with high speed modems). - Scrollback feature (review buffer) added. Buffer size can be set from 0 - 512K. View or save text that previously has been displayed on screen! - A portuguese IBM character set has been added. - Advanced NComm Host System using script file. Supports two security levels, bulletin menu, up and download with user selectable protocol, configurable up and download directories, immediate access to uploaded files (optional), message area with both public and private messages, chat function, hold directory with ZOO support, logfile, sysop menu with possibility for execution of DOS commands, sleep disconnect, detection of NO CARRIER... - NComm now works with multiple serial ports. The serial port device name and unit is set using an environment variable. - G&R Host Mode added. Control file transfers from a single machine, when communicating with programs that support the G&R protocol. - Macrokeys window has been made better. Step trough the string gadgets by pressing RETURN, loading a new file won't close the window. The maximum text length is now 512 characters. - It is now possible to change resolution and exit NComm when using the file requester. The requester is now really proportional. - The modem abort code has been changed for compability with all hayes compatible modems. - The windows won't blank out when using Dmouse (actually a bug in Dmouse but who cares...) - A problem with redial has been fixed. - Error messages are displayed if there isn't enough memory for NComm to open a window. - NComm now works with an overscan WorkBench screen. - The files NComm.phone, NComm.keys and NComm.config will be loaded before libraries and devices are opened. This should make it more comfortable to use NComm with a single drive machine. - More hot keys have been added. - Phonebook settings now have higher priority than settings found in configuration files used in PB. An error message will be displayed if the config file can not be found. - Chopping will be disabled for .ZIP files. - A lot of changes has been made to the script language. NComm now has one of the most advanced SL's available; o New Command; SET - assigns a text (or an earlier defined variable) to a variable. The pre-defined variable $date contains the current date and time, $ncomm contains the current version number and the variable $baud contains the current baudrate. o New Command; IF ... THEN ... - checks a variable for a specific string and performs the following function if TRUE/FALSE. Can also check whether a file exists or not. o New Command; INPUT - reads input from the serial port and places it in a variable until a specific string has been read. The timeout function can be used to define how long NComm should wait for the terminating string. o New Command(s); REPEAT<->UNTIL ... - performs what is situated between REPEAT and UNTIL. If the expression is TRUE/FALSE, the procedure will be repeated. Can also check whether a file exists or not. o New Command(s); WHILE ... DO<->ENDWHILE - performs what is situated within DO and ENDWHILE until the expression is TRUE/FALSE. Can also check whether a file exists or not. o New Command; CLRSTACK - clears the RETURN stack, forgets active subroutine calls (gosubs...) o New Command; DLWHEN - deletes the last defined when command. Repeated usage will succesive delete the "previous" WHEN command. o New Command; DUMP - used for debugging of scripts, dumps a list of all variables and what they contain. o New Command; ECHO - defines if characters read by the INPUT command shall be echoed. If echo is ON, text sent by the functions ASCSEND and SEND will be echoed locally. The output from the CLI command will be sent to the serial port if ECHO has been turned on. o New Command; WRITE - opens a file and appends the following string to the file. o TIMEOUT now also concerns ASCSEND. If ASCSEND is halted by a ^S and no ^Q has been received within the timelimit specified by TIMEOUT, the script will go on with the next command. o 20 WHEN commands may now be active simultaneosly. o Control characters now work well in WAIT, CONVERSE and WHEN commands (guess there were some problems with this in V1.8) o WHEN command fixed to "override" previous WHEN commands containing same string... Variables can be used everywhere where strings are expected. It is also possible to concatenate several variables and/or literals. - Yeah, we fixed some bugs. o Changing resolution while using "view transfers" doesn't call guru o The file transfer block counter is no longer reset at block 255 o A long redial delay won't make NComm hang o Status line is updated while dialling o The palette should no longer display strange values o G&R paths are updated immediately after loading new configuration o The CLI command will (hopefully) not make NComm hang o Fixed a small bug in the IBM font FONTS:NComm1/8 o G&R filenames will be translated correctly before usage o Fixed an irritating problem with detection of NO CARRIER! o The 13th entry in the phonebook no longer disappears when using the "New" command. o Clearing screen while using "split screen" doesn't clear reference line... \\\ Thanks to all persons who sent us ideas and bug reports! /// /// More ideas, (bug) reports and source code heavily wanted \\\ ----------------------------------------- *** What has been changed from V1.01 to V1.8? *** ----------------------------------------- 1. Main New Features. --------------------- - Scripts. NComm now has an integrated, advanced script language, which, among other things, enables you to fully automate your online sessions. Unattended operation is also a possibility. However, decrease of time used online and thus, online costs, is perhaps the most common utilization of the power a script language gives you. - Logfile. By enabling this option, NComm will maintain a log of all succesful connects. The "Callinfo" utility, which is a standalone utility, uses this to estimate the phone bill, display statistics, etc. - NComm now supports the Ymodem file transfer protocol. - The G & R protocol has been added. This is an auto up/download protocol for use with the MBBS system. Automatic up/download without entering filenames and so on is the virtue of this feature. - Load / save configuration. By saving your personal program settings in the file NComm.config, those settings will be used as a default for subsequent sessions. Also, NComm can be set up to load special config files when connecting to certain hosts. - Phonebook. Limited only by available memory, the Phonebook allows easy keeping, editing, sorting, printing and dialling of all your phone numbers. 2. Display. ----------- - Both two and eight colour modes are now supported with full ANSI colour emulation when using eight colours. However, the two colour mode may give faster screen I/O on some systems. - The colours used by the program can be easily adjusted with a built-in colour palette. Each screen mode has its own palette. - Interlace mode can be toggled from the 'Screen' menu. - Status line with On-screen 24-hour clock, showing current time and time used online, respectively. Setup displayed when not online. - ANSI x3.64 / vt100 emulation has been improved. Most notably, the Clear Screen and Set Scroll Region commands have been implemented. The cursor keys also send the proper codes. As a result of this, NComm will now work with many screen-oriented programs, e.g. full screen editors, games, etc. - NComm can be set to ignore the ANSI control codes for boldface, italics and underline. Some bulletin boards tend to overuse these styles. - The ASCII BELL code can be configured to either flash the screen, make an audible beep, pop the screen to front, or do all or even none of the above. - Reset screen function. This function will clear the screen, turn of all style settings and reset the colors. - The program will now work in PAL mode even when using Kickstart 1.3. - The requester for editing macrokeys now gives you an overview of all 20 keys. This makes editing a much easier task than with previous versions of NComm. - Dial requester for dialling phone numbers not in the phonebook. - Modem setup requester. This lets you customize NComm for use with a wide variety of modems. - The file requester has been made much better. Eight devices will be displayed, with non-available devices 'ghosted'. Ten entries and disk space free will also be displayed. Parent and pattern functions are available. 3. Translation. --------------- - Twelve translation modes are available (both 7 and 8 bits); ISO, IBM, IBN, US7, UK7, GE7, FR7, SP7, IT7, NO7, SF7 and DE7. If you choose the IBM or the IBN translation, an IBM PC font will be used. All special IBM characters will be displayed and translated correctly. This is also true when using ASCII receive/send, if not the "ISO" translation selected. - The program now uses the current Workbench/CLI/Shell keymap, i.e. NComm now supports all keyboards supported by Commodore-Amiga. - Eight bit characters are no longer truncated. - The "Show HEX chars" option is now made easily available. - The DEL key can be mapped to the Backspace key and vice versa. Handy when using host systems which expect a VT terminal. This might be the case when the remote machine runs Unix, VMS or Tops-20, amongst others. 4. Other changes/new features ----------------------------- - The program now has a "message upload" facility for uploading mail to bulletin board systems. This is useful when the message editor on the BBS does strange things with your message. - Redial function has been implemented. This makes NComm dial a number repeatedly until a connection has been established. Alternate phone numbers for a system can be specified, in which case all numbers will be tried before starting all over again. It is also possible to set up a dial queue of several host machines, each of which may have several phone numbers. - The serial buffer has been increased from 1K to 4K, in order to reduce the probability of loss of data when screen I/O is temporarily suspended. This may be the case when holding down the right mouse button for a long while, or when printing incoming text. - NewCli function. By selecting this menu option, NComm will start up a new CLI on the Workbench screen. - 7-wire handshaking (RTS/CTS) is now supported. - 600 baud option has been added. - The invisible close gadget in the main window has been removed, as well as the "windowed xmodem" protocol. - The status window is available from the menu. 5. Known quirks. ---------------- - The ANSI 'blink' command is not fully implemented. Instead the line is shown in italics.