NComm V3.0: Released the 1st of October 1993
It is finally here, and this time it's not a fake... :-)
I have to apologize for the long time it has taken to develop this new
version of NComm. It took quite a lot of time to make NComm look and
feel like a real OS 2.0 program. A lot of care had to be taken to
still keep the program compatible with OS 1.3. Actually, NComm will
look just as good under 1.3 as it does with OS 2.0 or 3.0. This is
much thanks to Nico François and his ReqTools.library.
You will quickly notice that this is not a complete version of NComm.
NComm 2.0 was cracked the same day as it was released and I have
certainly lost a lot of registrations on that. Even if the copy
protection had been better, some persons would certainly have managed
to crack it after some time. A new step has therefore been taken with
NComm 3.0. Unfortunately, I had to remove the code for a few
important functions. This will hopefully encourage users to register
and certainly makes it impossible to turn the unregistered version
into a registered version. If you want to have a complete version of
NComm, you should register (or pay your upgrade fee if you are already
a registered user).
EXTREMELY IMPORTANT: Cheques (except from EuroCheques written out in
norwegian kroners) will no longer be excepted as payment for NComm due
to very expensive cashing fees ... Also, the general pricing has
changed, please refer to the "Register.doc" file for further
information about registering or upgrading.
Apart from the OS 2.0 look and the new OS 2.0 support functions, some
persons will probably not notice an enormous difference between NComm
2.0 and NComm 3.0...at first. The underlying changes are, however,
quite big. Several bugs have been fixed and a lot of changes have
been made. This especially goes for the script language. Numeric
variables and arithmetics are a few of the things that have been
added. Please see below for a complete list of changes in NComm since
Two versions of the reqtools.library have been included, one for OS
1.3 and one for OS 2.0 and above. Click on the "Install13" icon if
you want to install NComm for use with 1.2/1.3, otherwise click on the
"Install20" icon. A custom IBM font has also been included, in some
cases it may be preferable to use this font instead of the NComm font.
I have not included all the XPR-protocols listed in the protocol menu.
This is mainly because most people don't want to download a few 100K
extra because of some protocols they never use. When registering your
version of NComm, please specify if you want additional protocols
installed on your NComm 3.0 disk... (all will not fit).
There have been a lot of demands about improving the terminal
emulation in NComm. Not many changes have been made to that part of
the program, although it certainly can be much improved and made quite
a lot faster. I have unfortunately been quite busy lately and also
lack specific information about the different emulation protocols.
However, if you keep on supporting this product, I will probably
include this and several other things (like XEM support) in the
future. The custom font support will probably also be improved a bit.
If you have suggestions or source code for future versions of NComm,
it is certainly welcome. Bugreports are also very much appreciated.
Please note that the email addresses mentioned in the previous version
of NComm are no longer valid. The best way to reach me is via the
Rodeløkka (M)BBS, which is also the new support BBS for NComm. Refer
to the "doc/NComm.doc" file for further information.
Note: NComm 3.0 will probably not work on a 512K machine anymore
(unless you are using a two color config file). It is recommended
that at least 600K of memory is available when starting NComm.
Below, you will find a list of things that have been fixed or added in
this version of NComm:
o XPR protocols that attempted to call any of the four XPR extension
functions would crash NComm. This was a really dangerous bug and
is also the reason why Jmodem crashed when using NComm 2.0. I
must say that it is a miracle that Zmodem worked at all... :-)
o XPR protocols that attempted to do a serial read after flushing the
serial input would crash NComm. This bug could actually cause
crashes whem using any XPR protocol, including Zmodem.
o Icons were not created for Xmodem / Ymodem / txt files when downloading
o Auto-activated downloads performed with EXPR protocols would be placed
in the current system directory instead of the current download directory.
o NComm crashed if it received characters after receiving the error message
"Unable to open XPR library".
o Error messages during transfer are now cut off so they fit in window.
o The "Use WB Screen" option in the menu was not ghosted during downloads.
If you tried selecting it during a transfer, NComm would crash if you
were using KickStart 1.2 / 1.3 ...
o When using the 80 x 24 mode, the status line covered the last three
pixels of the main terminal window. Reported by several persons :-)
o NComm sent the x,y coordinates in wrong order when a VT100 terminal
asked for a query. The results were unpredictable :-)
o The "Destructive BackSpace" option now works when using half duplex.
o Terminal colors were mapped wrong when using 4 colors.
o The main terminal window will keep its original size if NComm is unable
to open a split window (the size was previously halfed)
o It was difficult to select the IBP character set. Although currently
in use, it would not be checkmarked in the menu.
o Flashing text didn't work if you cleared the screen when using text
snapping (previously called OS2 snapping)
o When using ConClip and pasting the clipboard, NComm sent a null
('\0') to many. Was normally harmless, unless using emacs :-)
o The serial port crashed if the "max ringing" number was set to
something different from zero and "RINGING" was received.
o When connecting to a bulletin board, config and several other things
will be loaded before starting the attached script. This fixes problems
with script commands being overridden by phonebook settings.
o NComm now restores the "Redial at logoff" menu flag after loading
a new configuration file.
o The scrollback previously only sent and remembered text currently
visible on screen when marking a long line.
o NComm would refuse to append to a Scrollback or Capture file. The
original file would be overwritten.
o NComm now ghosts the "View Scrollback" functions if buffer is empty.
o Amiga System Shortcuts entered while positioned in the scrollback will
no longer be threated as commands to the scrollback window.
o The "CONVERSE" command now has higher priority than the "WHEN" command
when waiting for a string that is also searched for with a WHEN command.
This fixes problems with the error message "Unknown Command ''".
o The ARexx "message" function crashed when displaying a very long line.
o The ARexx "menuselect" function did not handle subitems
o The script language "DORX" command didn't do anything :-)
o NComm didn't clean up nicely if it was unable to open a screen/window
o The serial port stayed open if there wasn't enough memory to start.
o The phonebook "sort" function was unable to sort within a specific area.
The sort function now works as mentioned in the documentation.
o The OS2 Snapping option (now called "Text Snapping") was not always
ghosted when using KickStart 1.2/1.3. If selected when using 1.2/1.3,
the results were unpredictable :-)
o Changing any of the default transfer directories caused enforcer hits
(and sometimes trashed memory).
OS 2.0/3.0 changes
o Added Reqtools.library support. Reqtools.library looks much nicer
than the previous req.library. It has full 1.2/1.3 and 2.0/3.0
support and looks good with both versions of the operating system.
All the ReqTools requesters in NComm support automatic shutdown.
This avoids the highly irritating "Please close the current requester"
messages. Note: Magic FileRequester does not patch the reqtools.library
correctly when using the ShareIDCMP and ReqHandler features!
NComm checks for the existance of MFR and will disable automatic
shutdown of the file requester if present (this avoids crashes).
o All NComm windows now have a much nicer 2.0 look that much resembles
the look of the requesters in the reqtools.library.
o Support has been added for all 2.0/3.0 screenmodes via the reqtools lib
ScreenMode requester. You may now run NComm in for example DoublePAL
or Productivity Mode. This also means that NComm will no longer
phreak out if you are using DoublePAL on the WorkBench screen.
o NComm now uses interleaved BitMaps (supported by OS 3.0 and above).
This avoids flashing when scrolling and even speeds up text output.
If you are using OS 3.0, you don't need CpuBlit anymore.
o When using OS 3.0, menus will get the "New Look" (light background).
o All NComm windows that are displayed will be centered on the screen
(unless the window is snapshot).
o Full Public Screen support has been added. The public screen name is
the same as the rexx port name, i.e. "NComm" for the first copy of
NComm and "NComm_#" for additional copies (# is 1 or more).
When selecting a Public Screen, NComm asks if it should "shanghai"
windows. If you turn this option on, NComm will steel any windows
that would normally open on the WorkBench screen. By using this
option, you may for example easily run a Shell window on the
same screen as NComm...
o The "NEWCLI" environment variable has been renamed to "NEWSHELL"
which is more according to the 2.0 style guide :-) The same thing
goes for the system menu.
o It is now possible to Shift-Select a script icon when starting
NComm from WorkBench. NComm will automatically detect if this is
an ARexx file or a normal script file.
o NComm now uses '|' instead of ',' as a seperator between ARexx
telephone numbers (',' is used as a modem delay command).
o Upto 60 characters (previously 40) can be entered in a requester
brought up with the ARexx "STRINGREQ" function. The same thing
also goes for the normal script language.
o A "NCommToFront" command has been added. It simply brings the NComm
screen to front. The same thing goes for the normal script language.
o New "GetBoardName" command returns the name of the current board.
o New "GetBoardNum" command returns the current board phone number.
o New "GetLogTime" command returns the current logon time.
o New "GetDlDir" command returns the current download dir.
o New "GetUlDir" command returns the current upload dir.
o The 80 x 24 option will now open a screen that is 640 x 204 pixels.
This reduces memory and also looks better.
o Several finnish and swedish users have requested a character set that
both receives IBM and SF7 correctly (all 8-bits) but sends SF7
(7-bits). This is supported when using the new "S87" character set.
o The script language has been much improved and now has numeric
variables (sort of) and arithmetics (+, -, *, /, %, ^). Numbers
are completely compatible with text strings and you may therefore
easily convert back and forth between text and numbers. A part
of a text string can be used as a numeric argument by using the
"STRPART" function. A "STRLEN" function has also been added, it
returns the string length. Off course, you may also use numbers
for making do/while/repeat loops. In general, the NComm script
language is now almost as powerful as ARexx...
o I have a added a $RAND variable that returns a random number
between 0 and 65535. To get a number within a specific range,
multiply with (range + 1) and divide with 65536.
o The new variable $Boardname contains the name of the current board.
o The new variable $Boardnum contains the current board phone number.
o The new variable $Logtime contains the current logon time.
o The new variable $Dldir contains the current download dir.
(Note: Change IRIS scripts that refer to standard variable with same name)
o The new variable $Uldir contains the current upload dir.
(Note: Change IRIS scripts that refer to standard variable with same name)
o The "Start Script" option in the menu works as a toggle but the
text in the menu did not reflect this. NComm now displays "Stop
Script" in the menu if a script is running.
o Added "Use WB Palette" option that automatically gives you the same look
in NComm (on a custom screen) that you have on your WorkBench screen.
A nice feature is that you may grab and modify the WorkBench palette by
entering the palette requester and clicking on "OK". If you turn off
the "WB Palette" option, the modified palette will be used.
o Custom font support has been added. The translation menu still selects
which type of translation that should be performed. If you are
using an IBM font, you should normally set the translation to ISO (no
translation). Custom fonts are unfortunately not _fully_ supported since
the console device is not able to display characters in the range 0x80
to 0x9f... These characters will appear as blanks. I hope to add some
functionality in the next version of NComm that makes it possible to
display these characters by using custom text routines. It may be
preferable to use the inbuilt NComm IBM emulation if you need these
characters but normally you won't notice much of a difference.
o I've added a "Line Editing" option that puts outgoing split screen
characters in a buffer until carriage return is pressed. You may in
other words edit the line by using "backspace" before sending it off.
o A sample option has been added to the list of "beep" options. Any 8SVX
sample may be loaded and will be played back when a beep (Ctrl-G)
is received (OS 2.0/3.0 has the same option when a DisplayBeep is
performed. You may want to disable either "DisplayBep" or the
"Sample" option in NComm if you're not running 1.2/1.3) ...
o The terminal, split screen and scrollback windows will automatically
be snapshot when saving the config and will remember their previous
positions when starting NComm the next time.
o I've added an "ANSI Pens" option that arranges the screen pens so that
NComm 3.0 will look as good as possible with the original NComm ANSI
palette. The palette may need a few modifications, though. If you
are using a normal OS 2.0 palette, you should turn this option off.
o NComm no longer starts a background process (with cback.o) since
many programs depend on NComm being sticky. If want NComm to work
the old way, I recommend inserting "alias NComm run >NIL: <NIL: NComm"
in your "S:Shell-Startup file". Note: This change also means that
NComm is depending on the Shell stack size. Set your stack size to at
least 10000 bytes. NComm will refuse to start if the stack is too small.
Add "stack 10000" to the "S:Shell-Startup" file if necessary.
o NComm now puts up an intelligent requester on the WorkBench screen if
it for some reason is unable to start. Previously, NComm just flashed
the screen and just about everything could be wrong :-)
o Several persons want to disable the NComm "Quit (Yes/No)" requester.
This has now been made an option via the environment variable
"NCOMM_NOQUITREQ". If you want to disable the Quit requester, add the
following line to your "S:User-Startup" file: SETENV NCOMM_NOQUITREQ "TRUE"
o The LockSerial option has been removed. Since NComm from now on is
sticky, there is no need for such a function. I also saved a few K
by removing it. This function was as far as I know quite buggy.
o NComm now expunges the current serial device when starting up or
when changing the device driver. This makes it possible to switch
between devices that both use the cia.resource, i.e. devices that
both handle the internal serial port...
o NComm now tries opening the current serial device in "shared mode"
before giving up.
o A copy of NComm can be started even if the serial port will not open.
This is extremely handy if you want to edit the phonebook, macrokeys
or modem setting while another program is currently using the port.
If the serial port listed in the config file is faulty, you will no
longer be "dead locked", simply enter NComm and change the device.
o A "Serial Open" option has been added to the menu. If the serial port
did not open, you may try opening it again later. You may also choose
to close the serial port if another program needs it.
o When logged on, NComm will not attempt to dial entries selected
from the dial menu. Instead, they will be marked as selected in
the phonebook and will be dialled after logoff if the "Redial
after logoff" option is turned on.
o NComm now displays "Next: Unlisted number" before dialling a
number that is not listed in the phonebook.
o The phonebook is stored at connect for updating the "last on /
# of times on" info. Persons who are using a disk-drive or have
temporarily modified the phonebook may want to disable this
functionality by turning off the new "Log Phone-Info" option.
o The dial window now also shows information about your username
on this board and the number of times logged on (Note: The
Escape, Delete and Space hotkeys are still valid although
not listed in the window anymore).
o NComm now clears the "Last Error" field in the xfer window
when reading/writing a new file. This avoids a lot of confusion.
o If the "File Comments" option has been turned on, NComm
will also add the final CPS rate to the file note :-)
o Four new XPR protocols have been added to the menu: Bimodem,
Bmodem Plus, VMS and Uue-Ascii. The script shortcuts are
"i", "p", "v" and "u", accordingly.
o The phonebook edit and select modes are now handled via two seperate
windows. Both windows will be visible when editing. This makes it
much easier to edit multiple records or to look up current phonebook
settings (if you click in the select window while the edit window is
open, your changes, if any, will be saved and you will move to the
new entry). It is highly recommended that NComm is set to use
overscan width if you want both windows to be completely visible
at the same time. Otherwise, the windows will overlap.
o Each phonebook entry now has a "Show In Menu" selector that defines
if this entry should show up in the quick dial menu. This makes it
possible to keep the phonebook sorted and at the same time mask out
entries that are rarely dialled from the dial menu...
o Phonebook entries can now use any of the four dial prefixes defined
in the modem setup menu for dialling the bulletin board. This is
very useful when dialling boards that need special init strings.
o I've added a "PB Password" option that makes it possible to protect
your phonebook with a password. You always have to enter the password
when loading the phonebook. The passwords stored in the phonebook will
be encoded to illegible gibberish..
o A "username" can be defined for each phonebook entry, making it
possible to send of the username from a script or a macrokey with
the '\u' string...
o The phonebook now also shows the number of times you have connected to
this board (if the log phone-info option has been turned on).
o Double-clicking on a phonebook entry will bring up edit window
o The scrollback only shows the end of the scrollback buffer the
_first_ time you open the window. It will remember the previous
scrollback position if you bring it up multiple times.
o When saving the scrollback (or doing a capture), you previously had
to respond to two requesters if the file existed. NComm now brings
up a combined "Delete / Append / Cancel" requester.
o It is now possible to print the scrollback or a scrollback block
by selecting save from the menu and entering "PRT:" in the
filename gadget (leave the directory field blank).
Modem Setup changes
o A part of the Norwegian state called "Statens Teleforvaltning" (normally
called Statens Tulleforvaltning --- the department of jokes) has decided
that it shall not be possible to redial a telephone number from a modem
more than three times within a minute. After some time you won't be allowed
to dial the number again at all (it will be added to a blacklist). This is
totally unacceptable if you want to quickly connect to a bulletin board. In
general, the blacklist system makes redialling a pain in the a**. I have
added an option to NComm's modem setup menu that tries to work its way
around these limitations. It is called "Avoid Blacklist" and off course
does nothing illegal or dangerous. Unfortunately, this work-around will
only work with some telephone centrals. I will not inform anyone about
how it works in detail since I don't want S.T.F. to get this knowledge,
but, as mentioned, it does nothing illegal. If you have purchased a modem
that spits out "DELAYED" or "BLACKLISTED" messages, try turning this option
on and see if it helps. With most telephone centrals, it will totally solve
your problems with these messages.
o If case the work-around above doesn't work at your place, I have added a
"DELAYED" string gadget that makes it possible to define the string that
is reported by your modem if a call is delayed. The default action is
to dial the next number in the queue (or redial this number) until the
number can be dialled again. A "max delayed" gadget makes it possible
to define the number of "DELAYED" messages that will be accepted before
aborting dialling completely (if set to zero, NComm will never abort).
o Three more init string gadgets have been added. This makes it possible
to have different init strings for different types of boards or modems.
This is extremely useful if you want to connect to a modem that won't
handshake correctly unless you use a special init string.
That's it folks... Comments, suggestions and bug-reports are welcome!