PROBE2 1.4.042 - Change Log

1.4.042 20010707
The ALT-Z button used to change to the next window. It now invokes the scope window, instead.

When the baud rate of any scoped channel is changed, the scope window now clears and shows the latest comms channel information.

A bug was fixed concerning the displaying, in the scope window, of baud rate information relating to non-scoped channels. This occurred when the speed of a non-scoped channel was changed.

A bug was fixed that caused P2 to crash when ludicrously high baud rates were entered.

The scope window now acts more like the "normal" comms channel windows: when the scope window is invoked using a short-cut button, the window may be opened or selected depending on it's current state but it will no longer be closed if the button is pushed when the scope window already has focus.

1.4.000 20010523
The old MSdos timer code has been put back into P2. While the new timer code ran much better under Win95 (if one used "OS=WIN95") and ran at all under WinNT (if one used "OS=WINNT"), it appeared that the code did not run better under MSdos. Hence, there are now three different timer service providers that get selected via the "OS" keyword.

The program will now detect when the Windows timer function is not accessible and "fall back" to using the MSdos timer service.

The WinNT timer service has been slowed down by a factor of two. The default "MILLITICK" value (see the next paragraph) is now the same as for the MSdos timer service.

It appears that some computers have timers that run at a different rate to the "norm". Hence, a new key-word, "MILLITICK" has been added that allows the user to "tune" the MSdos and WinNT timer services. The default rate is "1193" and, for example, if your P2 timers appear to be running at twice the speed that they should, you'd use something like "MILLITICK=2386". (The Win95 timer does not suffer from this problem and, hence, is not configurable.) Note that like the "OS" key-word, the MILLITICK value is not saved in the configuration file.

1.3.000 20010425
Since the ASCII table and calculator facilities don't seem terribly useful, these have been removed. The benefit is an extra 10 KB of heap space - now that's much more useful, IMHO...
1.2.043 20010424
P2 now uses a more reliable timer strategy and, as a result of these changes, it will now also run happily under WinNT. In addition, one can now select an improved Windows-based timer strategy if one is running under Win95 or Win98. (This new scheme does not work under WinNT.)

As a result of these changes, P2 will now accept an extra configuration parameter that allows the user to invoke any special code that only works under one operating system or another. (At present, only the timer code makes use of this new parameter.)

The new key-word is "OS" and possible values are "MSDOS", "WIN95", "WIN98" and "WINNT". (For example, "P2 OS=WIN95".) These may be expanded at a later date. You are advised, for best performance and reliability, to always employ the correct operating system parameter.

This new parameter is not saved when the system configuration is written to a .INI file since one may want to share a .INI file between a P2 running under different operating-systems. (You are advised to let it default to MSDOS when running under MSdos and place the corresponding item in .LNK or .PIF files when running under Windows.)

1.1.002 20010311
Adopt the new "standard" format for the files that keep track of the program's version number. This will allow easy generation of the current version of the program and, in particular, the web site can automatically generate a list of current program version numbers.
1.0e02 19990805
Added short-cut key help pages.

1.0e01 19990526
Added an extra hex mode. Mode three displays a character as in mode zero, unless it lies between 0x00 and 0x1F, in which case it displays the character's ASCII name. (Try it...)

1.0d01 19990316
As well as being able to capture a snap-shot of the script window, you can now "log" it as well. (The former captures the current buffer on a once-only basis; the latter continuously logs to a named file until you stop it or the program is terminated.)

1.0c03 19990219
Added a little more help; this time, it was about tab stops.

1.0c02 19990218
A little cosmetic change to the help context of the comms and scope windows. Also, a little text was added to the help system with reference to the Configs / All dialogue box.

1.0c01 19990214
The "last typed" field is only retained in a string history list saved if it is equal to or longer than a minimum length. In previous versions, this length has been four characters. In this version, however, this can be changed by using the Config / All dialogue. This value is saved as part of the configuration file.

While on the subject of the "last typed" history, the program now applies back-space character processing to the last typed command before placing it into the command history. The above-mentioned length test is done after this back-space processing is carried out, so it the final length of the string that is important. This behaviour now defaults "on" but can be disabled via Config / All.

1.0b29 19990206
Altered the trigger edit dialogue to remember which trigger was the last to be edited (on a per-channel basis) and make the dialogue box display that trigger the next time that it is opened.

1.0b28 19990128
Added the global option, "screen bliping". This defaults to "true" and, if enabled, will switch video modes, twice, on start up. This, for some reason, speeds up the display of characters on the screen. The downside to bliping is that if you want to start P2 on the MDA screen of a PC that has dual video cards, bad things may happen. Most of the time, of course, bliping causes no trouble and has a very beneficial effect. (The screen bliping has been carried out by P2 at start up for some time. It was only when I wanted to run it on an MDA screen when running under Windows 95 that I came across this problem and had to add this switch.)

1.0b27 19981026
The hex mode selected is now displayed on the status bar in the character translation field if the current translation mode is "hex".

1.0b26 19981022
The file history of the Configs / Write As dialogue has been changed so that is it not common with the file receive and transmit stuff. (See the following change for the justification for this.)

The capture, receive, transmit and script file names are now in separate histories and these histories and now persistent. That is, the file names are saved in the .INI file along with the rest of the configuration information. (I got fed up with typing in the same file names after I'd stopped and re-started P2...)

1.0b25 19981019
Changed the code so that, for comms windows only, tab characters (ASCII 0x09) are intercepted and sent to the associated output channel.

1.0b24 19981018
You can now set a tab stop value for a channel via the channel's options dialogue. Any tabs encountered in the input stream will be tab expanded if the tab stop value is greater than zero and the display mode is plain ASCII.

1.0b23 19981018
When the default channel associated with the script window is displayed, the channel's description is displayed rather than the channel's number.

1.0b23 19981016
When the default channel associated with the script window is displayed, it now displays the channel's name rather than the channel's number.

1.0b22 19981015
I have just found out why the script window takes up so much memory - the number of text lines in that window default to the maximum (400). I have, therefore, added an option to Configs / All that allows you to alter the number of text lines in the script window.

1.0b20 19981009
When the scope baud rate, data bits, stop bits or parity is altered, then the changes are now rippled through to all open channels that have the "scoping" attribute turned on. This means that if you are monitoring a couple of channels and they are running at the same speed, you can now change speed for both channels by altering the scope channel's speed. This also applies to the speed change short-cut keys. It should be noted that altering the speed of a particular (non-scope) channel will behave as before - that is, only that channel's speed will be affected.

The handling of the "scoping" switch has been altered. As a result of making the above change, I noticed that if one turned the scoping switch off when the channel already was being monitored by the scope window, that the channel's output would still appear in the scope window. This entailed a bit of fiddling with the main idle loop that handles incoming serial traffic and farms it out to the correct place(s).

1.0b19 19981004
Bind the toggling of scoping to control-F8, the toggling of beeping to alt-F8 and and the toggling of piping to control-F9. (All of these toggle the "per-channel" switches rather than the global switches.) Also, PROBE2 is now compiled using the '286 instruction set thus saving a little memory.

1.0b18 19981001
More help added plus the help now always comes up full-screen.

1.0b17 19980929

Yet more help added...

1.0b16 19980928
More help added...

1.0b15 19980927
Started to add the help pages. Also, removed the channel enable option from the facilities menu as it seemed a bit out of place and I don't think that users are likely to require that option much after the initial configuration on a particular machine.

1.0b11 19980926
Bind the alt-minus key to File / Resend Last and alt-equal (or alt-plus) to File / Resend Command.

1.0b10 19980926
Bind the grey plus key to do a "next window" command and the grey minus to do a "previous window" command.

1.0b09 19980926
Changed the code so that the text sent via a File / Resend Command was logged in such a way that it appears in the File / Resend Last history list.

1.0b08 19980926
Added code to set the line and character pacing after the dialogue that they appear on has been closed.

1.0b07 19980925
Changed the "freq" field of the trigger dialogue box to accept the frequency of the sound required rather than half the period in milli-seconds. Note that, at present, the highest frequency that can be emitted is actually only one kiloHertz due to the way that the speaker is handled. However, we hope to change the system timers such that the usable range is not limited by PROBE2 itself.

1.0b06 19980923
PROBE2 is now officially "P2".

1.0b05 19980919
Changed the text on the File / Run Script menu option.

1.0b04 19980913

A "right margin" channel variable has been added. Whereas the left margin variable is an offset from the start of line (that is, a zero left margin is the first character of the line), the right "margin" is actually the character offset where no characters will appear. That is, it actually sets the width of the formatted text. The default is the line buffer width for ASCII translation mode and the window width otherwise. Setting the margin too large or too small results in the default behaviour.

1.0b03 19980908
A new option has been added to all windows - the "tileable" flag. If this flag is not set, then a window will be unaffected by a Windows / Tile operation. By default, the scope, information and script windows are not tileable and all other windows are tileable. Note that while the comms windows (including the scope window) can have their tileable option set via a dialogue, the information and script windows cannot, although they can be set by editing the .INI file.

1.0b01 19980905
Added a little bit of code to save the last line a user types in and allow it to be entered. This is a bit like the "command line" functions of prior version except that the commands that you entered are not saved between PROBE2 sessions. Therefore, if you want a command to be saved, you must still invoke the Files / Resend Command option and type it in. If you've already typed it in, you can use Files / Resend Last, instead. Note that the key that invoked Resend Command is now used for Resend Last and that the latter facility may be a bit wobbly - I seem to have hit some sort of size limit on the main module again. This means that I won't be adding any further code until I've shifted something out of the main module.

The default size of the information window has been increased slightly to take into account the addition of a few extra items.

1.0a97 19980905
When opening the scope window, it sometimes (always?) corrupted the menu bar. This has been fixed. (For once, this was not my (MSD's) cock-up - a certain other person left some diagnostic code in one of their modules...)

1.0a96 19980904
Altered the "escaping" of command-line history strings to treat a trailing back-slash as a "space". Hence, if the last character in the command-line is a back-slash, a space character will be sent to the comms channel. Also, it doesn't, now, matter if you edit a command-line history string, in the .INI file, using an editor that strips trailing spaces because the back-slash escaping will put it back on when the string is executed.

1.0a95 19980904
Alter the "info box" messages to be centred.

1.0a94 19980904

Added the "thaw" (un-freeze) trigger action.

1.0a93 19980903

One problem with "freezing" a comms window is that you no longer have any indication when there is any "traffic" on that channel. I have now added a traffic indicator on the status line - if the currently focused channel has had any incoming traffic, then the channel "description" on the status line will turn red until the status line is next updated. (It will stay red if there is enough activity on the focused channel.)

1.0a92 19980902
Cured a bug in the capturing of the windows; the file was being opened as a "binary" file and, hence, the carriage-return / line-feed line terminator weren't being generated correctly. Also, while in that area of the code, the saving of trailing spaces on each line was inhibited.

1.0a91 19980831
The display of the CPS figures in the info window were incorrect - the "totals" field would often assume the value of the "in" or "out" fields. This has been fixed.

1.0a90 19980830
Fixed a little bug whereby non-printable characters were not being translated to full-stops, as I had intended, when a window's contents was captured to a text file.

1.0a89 19980830
Altered the file capture options to discard all blank lines until some text is found. This stops the file containing mostly blank lines when the text in a window hasn't yet scrolled far enough to start being lost off of the top of the window's text buffer.

1.0a88 19980827
The "beep" period and frequency is now kept on a per-trigger basis which means that you can make different types of beeps depending upon the trigger condition. For example, a short, high-frequency beep can be used as a "traffic" indicator with a longer, lower-frequency beep based upon a timed trigger meaning "no traffic".

1.0a86 19980826
A bit of fiddling was done to pretty up the trigger info window entries and also to add the "before lines", "after lines" and "mode" values to the display. This does mean, however, that the window must be "zoomed" full-screen before the "value" field can be seen.

1.0a85 19980825
A little bit of faffing around with date and time stamps in configuration files and captured comms, information and script window files.

1.0a84 19980825
Altered the trigger actions to be check boxes rather than radio buttons. That is, you can now do more than one action at the same time. However, the order in which the actions are performed depends upon the way that they are coded. At present, the actions are carried out in the order that they appear in the trigger dialogue.

Note that the "line feed" action has been removed since the same action can now be obtained by merely not selecting any actions. The "before lines" and "after lines" are carried out, regardless of the rest of the trigger's configuration, unless the relevant field is set to zero.

In addition, some of the start-up default values of the triggers, the comms channel switches and the global switches have been fiddled with - for example, all triggering switches now default to "enabled".

1.0a83 19980824
Added the "beep" trigger action.

1.0a82 19980824
The ctrl-backtick, alt-backtick and ctrl-backspace buttons now all cause a CMPREV instead of a CMNEXT command. This means that they will step onto the previous window rather than the next window. The reason for the change is that the CMPREV command processing in TurboVision appears to have a little bug whereby it brings the window selected to the top of the Z-order whereas CMNEXT does not. Therefore, when "bring to top" is switched off, one can still use CMPREV to bring a window to the top of the Z-order. Associating the aforementioned buttons makes this facility a little easier to access. (That is, it's a little easier to press those buttons using one hand than shift-F6.)

1.0a81 19980823
Addressed the problem of the program updating the screen much more than was necessary. There is now an extra timer in the system which, if set to a non-zero value, will make the program only update the screen when that timer expires. If the timer's value is set to zero, then the screen will be updated on the same basis as before. Namely, it will be updated when any part of the program requests it. (If debugging is on, then the idle loop counter and frame rate counter will be displayed as an extra line at the bottom of the info window.)

1.0a79 19980822
Added a facility whereby one can set the left margin of the channel windows. Also, an escape mechanism has been built into the "before lines" and "after lines" numbers of the trigger dialogue. If the lines requested is negative, then a margin release is done before the following text. Also, the meanings of the requested number of lines has changed. Now, a value of zero means that no new-lines are required, a value of one means that a new line is required and a value of N that N-1 blank lines is required. The best way to understand all of this drivel is to have a play with the settings and see what happens. A good setting to try on the scope window is a left margin of seven (the length of the string "[COMx:]") and, upon channel change trigger, "before" lines of -1 and "after" lines of zero - this will make channel changes pretty obvious because they will be "margin released" and appear at column zero of the scope text window.

1.0a78 19980822
Changed the trigger "flush" action onto a "date and time" action instead.

1.0a77 19980820
Added a new option: Configs/WriteAs. This option prompts for a configuration file name before saving the configuration information in that file. The entered name is also used as the default config name so any subsequent use of Config/Write, for example, will go to that newly-created file.

1.0a76 19980820
Changed the way that configuration files are handled. Now, if the program finds a "response" file name on the command-line, it will use that name for the configuration file and will save using that name when the configuration information is written away. (Two passes are now made over the parameters; the first gathers the response file name, the configuration information is read in and then the second actually executes the command-line arguments as if they'd come from a configuration file.)

1.0a75 19980820
Fixed a bug whereby timed triggers would still be triggered and their actions carried out even if the channel concerned had data turned off.

1.0a74 19980820
The freeze/thaw and data on/off button action used to check in the other was in the non-operative state before taken any action. (For example, if you pressed the "freeze" button and the channel was set to "data off", the freeze action would be ignored. This is no longer the case - you are assumed to know what you are doing and to be able to read the channel's status information line...

1.0a73 19980820
Altered to display the scope channel's RX file name, if any.

1.0a72 19980819
Clear window and clear line now work regardless of whether the window is frozen or not. A new option has been added, Facilities/ClearAll, that clears a window and does not display the status report. There are now three "value" fields associated with each trigger. The first, merely labelled "value" on the dialogue, is the trigger-type specific "on what?" field. (That is, the trigger character for character triggers, the milli-second time interval for timed triggers and so on.) The second and third fields, labelled "before" and "after" are the numbers of new-lines to be throw before and after any new text displayed upon the screen as a result of the trigger action. Note that leaving these both as zero when the action is "new-line" will the equivalent of a "flush" action; hence, the flush action is now spare and the functionality of action zero may change pretty soon...

1.0a71 19980818
Added a new trigger action that causes the channel's description to be sent out as "system text". This is used to identify channels in captured text from the scope window.

1.0a69 19980818
Fixed the F9 button - wasn't working on the scope channel.

1.0a68 19980817
Added an option which allows setting of the info window and status bar update rates. (Both times are in milli-seconds.)

1.0a66 19980817
Fixed timed triggers on the 'scope channel. (They would only trigger if the channel that the character came from had channel triggering enabled.)

1.0a65 19980816
Added a per-channel trigger enable/disable option. Other cosmetic changes.

1.0a63 19980816
Tidied up the "physical" and "options" dialogues. Also, some cosmetic changes to the info window.

1.0a61 19980815
Added the percentage load page to the info window.

1.0a60 19980812
A new trigger action has been added: "banner". This generates a system message in the triggered channel's window.

The "DISCARDED DATA" system message has been altered to display either "DATA ON" or "DATA OFF" as appropriate.

A new trigger type, "timed", has been added. The "value" field specifies the number of milli-seconds that must elapse on a channel before the channel is deemed to have timed out.

1.0a60 19980812
A new trigger action has been added: "banner". This generates a system message in the triggered channel's window.

The "DISCARDED DATA" system message has been altered to display either "DATA ON" or "DATA OFF" as appropriate.

1.0a59 19980811
Triggers may now occur due to channel changes on the 'scope channel. However, at present, they may only be set up via direct editing of the .INI file. (Use "TRIGTYP = 1".)

1.0a56 19980810
You can now specify the crystal speed of the UART. Also, the program now reports the actual speed (if different from the the requested speed) when the channel is opened.

1.0a55 19980803
Enabled triggers for scoping and extended info window to scope.

1.0a54 19980802
Added trigger dialogue and trigger before/after flags.

1.0a50 199807??
Added triggers.

1.0a48 19980722
Changed line pacing to work on CR as well as LF.