Uncategorized Release Notes

From Br Wiki
Jump to: navigation, search

4.02jx / 4.12jx / 4.03jx / 4.13jx Changes - 12/05/2004


COPY from the client is now supported.

COPY @:filename1 { filename2 }

You can now direct where ctrl-P printscreen images will print:


When REWRITING REC=, or just REWRITE after a READ REC=, to a file with indexes open, the indexes will be maintained. Previously REC= processing ignored indexes on a rewrite.

New Function - MSG() - without the dollar sign - Windows & CS only

You can now directly control the keyboard under the Windows client from within a BR program by issuing a function call to:

MSG("KB",string) ! send string to keyboard MSG("sleeptime",seconds) ! specify MSG keystroke time interval

Notice there is no dollar sign on this function name. This is useful for redisplaying Windows menus upon returning to a menu program from an application program. MSG() has no affect on Unix or Linux *terminal* sessions, but works under Client / Server with Unix the same as WINDOWS. The first parameter ("KB" or "kb") is case insensitive.

Two new Error Codes are defined in support of this function:

0412 Invalid Action Code - The first parameter is not recognized. 0413 Window Not On Top - A KB message was sent to a task which is different from the one that currently owns the keyboard.

Special Keystroke Values

This facility operates through the operating system, so it does not utilize BR scancodes. If you need to send a special character (which in turn may cause BR to generate its scancodes), you will need to emulate the corresponding keyboard activity.

Example 1: If you want to send ctrl+c, you must send the following string : "|CTRL+|c|CTRL-|". This say that you want depress the "CTRL" key, type "c", and then release "CTRL".

Example 2: MSG("KB",'|CTRL+|p|CTRL-|') will input the CTRL-P character, which causes BR to perform a printscreen operation.

Special Character List: (each char must be enclosed in pipes - |xxx|)

|ALT+| press ALT - see note below |ALT-| release ALT

|CTRL+| press CTRL |CTRL-| release CTRL

|SHIFT+| press SHIFT |SHIFT-| release SHIFT

|TAB| press the tabulation key |RET| press the return key |ESC| press the escape key

|BACK| press the backward key |DEL| press the delete key |INS| press the insert key |HELP| press the help key

|LEFT| send the cursor to the left (left arrow) |RIGHT| send the cursor to the right (right arrow) |UP| send the cursor up (up arrow) |DOWN| send the cursor down (down arrow)

|PGUP| press the page up key |PGDN| press the page down key |HOME| press the home key |END| press the end key

|F1| press the function key F1 |F2| press the function key F2 |F3| press the function key F3 |F4| press the function key F4 |F5| press the function key F5 |F6| press the function key F6 |F7| press the function key F7 |F8| press the function key F8 |F9| press the function key F9 |F10| press the function key F10 |F11| press the function key F11 |F12| press the function key F12

|NUM0| press the 0 on the key pad |NUM1| press the 1 on the key pad |NUM2| press the 2 on the key pad |NUM3| press the 3 on the key pad |NUM4| press the 4 on the key pad |NUM5| press the 5 on the key pad |NUM6| press the 6 on the key pad |NUM7| press the 7 on the key pad |NUM8| press the 8 on the key pad |NUM9| press the 9 on the key pad

|NUM*| press the * on the key pad |NUM+| press the + on the key pad |NUM-| press the - on the key pad |NUM,| press the , on the key pad |NUM/| press the / on the key pad

To send the pipe character specify |||

MSG("sleeptime",seconds) specifies the number of seconds to wait before issuing each string and each control character. Seconds may also be expressed with *up to three decimal digits* The default value is 0.2 seconds.

Please note that under Windows messaging, the ALT key needs to be depressed and released (|ALT+| and |ALT-|) for every Alt-character specified.

|alt+|m|alt-||alt+|b|alt-| works

|alt+|mb|alt-| fails

|alt+|m|down||alt-| works

This is because keyboard entries via Windows messaging doesn't interpret more than one letter as an alt value properly like it does via the keyboard itself. However it will honor arrow keys while the alt key is held down.

DIR was sped up.

A new flag is supported:

DIR -U (unextended) displays directory content without the extended filenames

Client Server was sped up by reducing STATUSLINE network traffic.

BR's method for maintaining a keepalive connection was changed to not use UDP. So we're back to using only one type of IP protocol- We use TCP/IP only.. not UDP.

KSTAT$ has a second optional numberic parameter denoting the number of seconds to wait for each character. e.g. KSTAT$(1,10) waits up to 10 seconds for 1 character

An old function that was introduced long ago seems to be absent from BR documentation- MOD( numerator, denominator ) returns the remainder of the numerator divided by the denominator.

A new configuration OPTION is defined-

OPTION 36 - Enables the cursor during INPUT SELECT This option is needed for some hand held scanners that do not have the ability to display in reverse image.

A new error code is defined- 0853 - Hot key number out of range (acceptable ranges are 0-99 and 1000-10000 with 10000 denoting 'return 0 denoting Enter key)

The STEP mode function keys (F1-F4) have been reassigned from 'Ctrl-F1 -> Ctrl-F4' to 'Shift-F1 -> Shift-F4'. This was done primarily so extended function keys don't have to be defined for Unix terminal emulators.

Errors Corrected

PRINTER INIT statements that refer to a printer by name but have no PRN or WIN prefix, were not being recognized.

PRINTER statements that had the word INIT followed by a comma were being rejected as invalid.

Fixed a few bugs relating to extended locking (32 and 64 bit).

Status line processing in conjunction with custom DLL calls was causing disconnects and hanging tasks.

Inappropriate errors were being reported when a keyed file was read and an end-of-file condition occurred.

DLL calls were timing out client server connections. We made this process now operate as a separate thread. [[ RECL]] was influencing CPI when Native Windows Printing was invoked.

DEMO models were basing their timeouts on the number of loops. It now does so based on the timer. It runs for 30 minutes before entering step mode.

COPY dir\filename -N was failing to perform the copy and not issuing any indication of failure.

Opening a printer PRN: without a '/' on client server caused a disconnection.

The client-server keepalive handshake timeout was extended by a factor of ten. This may reduce disconnects.

INDEX VERIFY was not detecting missing keys in index files.

COPY would GPF if the displayed source filename was long enough to wrap at column 80.

Window on a field processing has been responding incorrectly to end-of-field conditions for some time now. This was corrected.

Status Locks 'filename' was leaving filename open. This potentially interfered with subsequent references to the file.

Previously Undocumented Error Code: (this code should have been in the original WB manual)

1135 Invalid variable name

The 512K limit on array size is now limited only by data size and no longer is limited by internal BR storage overhead.

3.92i / 4.02i / 4.12i Changes - 12/15/03

Note: NO FURTHER CHANGES ARE ANTICIPATED IN VERSION 3.9 unless a very onerous bug is discovered.


Extended File Sizes

BR 3.8 uses 31 bit locking. BR 3.9 heretofore used 30 bit locking to be compatible with CIFS / SMB products like Samba and SCO Vision. However this has proven to be an unacceptable limitation because files that are greater than 1 gigabyte can get random locked records for no apparent reason.

As of release levels 3.92i/4.02i/4.12i 31 bit locking is the default. This will take you to prox 1.8 GB without lockin conflicts.

32 bit locking gives access to about 3.6 GB.

Release 4.03 or 4.13 is required to go to 64 bit locking, and this is not possible on Windows 95, 98 and ME.

In versions 4.0 and above, new OPTION statement is provided to specify the number of bits to be used for locking:

OPTION 33 { 30 | 31 | 32 | 64 } (default is 31)

30 bit support is for compaibility with CIFS (e.g. Samba) when needed.

31 bit locking allows for data files up to about 1.8 gig depending on record size. The larger the record size, the higher the boundary.

32 and 64 BIT LOCKING ONLY WORK ON NT/W2K/XP systems. 32 bits support files up to prox 3.6 gig.

32 and 64 bit support is currently only available in releases 4.03 and 4.13.

BR will not start two sessions using different lock bit requirements. A message box is produced when that is attempted.

Abnormal Termination Error Logging-

A new logging capability is provided for handling BRSERVER failures. An error log file in the BRSERVER directory is appended to when a BRserver process is abnormally ended. Also, a client msgbox is displayed when an assertion failure or program crash occurs. On Unix systems, the system error log is also updated. Keepalive failures are also logged here.

NOTE: It is very useful to, under Windows, RUN DRWTSN32 -I This will set DR Watson as your defaULT application debugger. There is no way for BR to trap some errors under Windows. However, if DR Watson is activated we can tell a lot from the logs produced by Dr. Watson at the point of error.

Also running DRWTSN32 with no flags places it in a menu driven mode that can enable you to override the Dr. Watson log file directory.


Client_Current_Dir now supports @S

New Error Code

4185 - Cannot CD to client path

If a CLIENT_CURRENT_DIR statement is subsequently executed which specifies a directory (instead of @S) then no further attempt will be made to correlate client and server current directories.

New OPTION 34 sends print screen images to PRN:/10 instead of PRN:/SELECT.

STATUS FILES now indicates when a btree2 index is running with VERIFY ON.

The operator can no longer maximize the Splash Screen.

STATUS now shows clause number in addition to line number.

SPOOLCMD now supports the -w flag which avoids the use of a DOS shell command when calling Windows applications directly. The new SPOOLCMD syntax is:

  SPOOLCMD [@] [-w] command  parm-1 parm-2 ...

SPOOLCMD now honors BR drive substitution on the command itself. e.g. DRIVE J:,M:\myapp,j,\

      SPOOLCMD J:\mylib\spooler [SPOOLFILE] [COPIES]

This finds 'spooler' in M:\myapp\mylib.

A special hot-key value (trailing attribute spec in FIELDS operation) of 10000 denotes the Enter key, and generates a zero fkey value.

The WAIT= processing on FIELDS operations now uses a different technique for waiting for a keystroke. This was changed to try to improve performance under the standard unix model.

Errors Corrected

NWP now honors the pre-existing landscape/portrait settings.

OPTION 31 wasn't callable from the command line.

OPTION 32 wasn't always suppressing error 6245.

Config statement 'SHELL LIMIT -1' was being rejected.

Remote printing now supports 'COPIES='.

Remote printing overriding server side printing via PRN:@/ didn't contain carriage returns (had line feeds only).

Client side manual shell calls did not have the Continue flag.

Several file access errors (e.g. 4105) were being erroneously reported as file sharing (4148) errors. (??!) These errors are now being reported in their original form.

The WINDOS model would leave a hanging cursor occasionally, and the Field+ key was not being recognized as such.

Previously, this document stated that SPOOLCMD calls used the -M flag. This is incorrect. They use the -m flag (lower case) to enable batch file access for debugging purposes. -M calls do not appear on the task bar. -m calls do.

WINDOS was not recognizing the Field+ key.

BR was failing (hanging up) on Red Hat Linux version 9.

Multisession indexes had a work filename conflict.

Known Problems-

Alt-numpad characters cannot be generated from the keyboard in BR.

3.92h / 4.02h / 4.12h Changes - 08/14/03


Feature Deletion:

Formerly the FIELDS trailing attribute supported specification of an X'xx' scancode. This caused considerable confusion because the value produced was translated to its functional equivalent for fkey purposes (e.g. X'02' became fkey 90 - pgup).

This hex scancode capability has been removed as of this release.

THIS COULD AFFECT HOW YOUR PROGRAMS OPERATE. It will be necessary to specify only numeric values for trailing attribute hot key values. These values correspond to FKEY results that are produced by clicking on the hot field.

On the plus side, hot field fkey values may now be in the ranges:

  • 0-99

Note - 90-99 may be assigned special functions in BR.

  • 1000-9999

This is useful for hot key processing.


The VB GUI can be used in liu of the standard BR console.

A series of changes were made to support the new GUI, including support for CONFIG GUI SUPPRESS.

Pop-up windows can also be produced with the VB extensions.

TYPE now works on locked files.

When a short record is encountered while reading EXTERNAL files, error 4271 is produced as before. But now the data that was read is available in the buffer to be accessed with a REREAD. CNT tells how many bytes were actually read. The remainder of the input buffer is set to binary zero. Subsequent read attempts now yield an EOF error (4270) instead of additional 4271 errors.

BR programs being replaced now FREE the original file, after creating the BAK copy, as opposed to DROPping them before writing the replacement program edition. This causes operating systems with salvage turned on to save a copy of the original program.

The command:

COPY filename1 @:filename2

Causes filename1 to be copied to filename2 ON THE CLIENT in the client current directory.

The config statement:


Causes print.bat to be issued ON THE CLIENT in the client current directory.

Hot field fkey values may now be in the ranges:

  • 1-99
  • 1000-9999

This is useful for extended arrangements of hot key or hot image processing.

Errors Corrected

_______________________________________________________ TYPE was reviewed and debugged under various scenarios:

Output CR/LF printer [str] honor Device insertion substitution ^Z char ______ _________ _____________ _______

Screen after 80 no yes chars

File no no >> only ( honor ^Z only when concatenating files )

Printer no yes yes (note- TYPE skips the header portion of Internal files) _______________________________________________________

Buttonrows caused client server to hang.

COPY ... -S (share) was generating 4148 errors. The -S option has been restored and now works irrespective of any BR file locking on the source file.

Certain conditions would cause client server sockets to begin using 99% of the CPU time.

AIX client server was causing the client to GPF. This related to the difference in internal formats between RS6000 and Intel.

AIX client server was mixing up field attributes.

TYPE PRINT no longer inserts carriage returns in long print lines, unless they are going to the screen. This was fixed earlier for files. Now it is fixed for typing to printers as well.

On-Q can be executed if only ODBC is licensed. this feature was lost when licensing was revised for 4.1.

BRClient is now sending a keepalive packet every 10 seconds. BRSERVER will now terminate under all conditions if it does not receive a keepalive packet from the Client for 100 seconds.

The CONFIG CLIENT_CURRENT_DIR statement can now be issued dynamically.

A number of WINDOS fixes were made.

If the data structure passed between Client and Server don't match, the Client now displays its version in an error message, instead of hanging or GPFing.

A few critical fixes were made to 4.13 large file support.

The initial splash wait was reset to 20 seconds. This wait was unlimited in prior X.X2 releases.

COPY to a printer :DEVICE was being rejected. COPY to a PRN: or WIN: device is still illegal. (Use TYPE with redirection for PRN: and WIN:)

3.92g / 4.02g / 4.12g Changes - 06/04/03

Errors Corrected

In certain resolutions the margins of the screen contained residual junk when the window was maximized.

Ctrl-P with graphcal characters caused a GPF occasionally.

COPIES under SPOOLCMD was being ignored.

Under Unix shift F7 and shift F8 produced incorrect results.

3.92f / 4.02f / 4.12f Changes - 05/05/03

Important Licensing Change:

ADS has discovered serialization abuses in the field that stem back to a security leak that occurred a few years ago. Therefore we have changed our format for BRSERIAL.DAT files, effective with release 4.1. Older BR versions will work with the new licenses, but BR releases 412f and later will require the new license format.

All licenses issued for version 4.1 and above will be reissued, including dealer in-house licenses.

We apologize for this inconvenience. But we know of no other way to rectify this security leak.


Indexing and sorting were significantly improved with respect to speed.

A new configuration statement was added:

CLIENT_CURRENT_DIR {full_pathname_on_client}

This path will be passed to Windows as the Starting Directory during client shell calls. This statement can also be called dynamically with the CONFIG command.

Errors Corrected

The PRINTER_LIST function was failing under client server.

Remote (client server) printing was failing during init string processing.

Windows menuing was broken.

Btree2 was failing to properly perform record locking when updating.

A new error code is defined-

0731 - Invalid Seek method or position.

Notes on the WINDOS model... We have corrected the major bugs in this model, but it still contains a number of minor problems that we are aware of.

3.92e / 4.02e / 4.12e Changes - 03/31/03

New Features

The WBPLATFORM$ system function now returns WINDOWS when running unix / aix / linux client server when the config statement SHELL DEFAULT CLIENT is present. This allows programs that test for the Windows platform using WBPLATFORM$ to run in Windows mode in the client server environment. In this case, since shell calls occur on the client, and printing occurs on the client, the program's environment is that of the client's, even though the application and all file IO is actually running on the server.

Errors Corrected

Windows Native Printing didn't properly support the TAB character.

Ctrl-P was failing under Unix and Linux whith SPOOLCMD active.

RUN with redirection was failing.

The TYPE command was not allowing an interrupt with Ctrl-A.

Calls to ONQ were not working in the Client Server model.

Error 4606 (too many open files) was occuring inappropriately.

Ctrl-Y was not working in Client Server model.

3.92d / 4.02d / 4.12d Changes - 02/20/03

Two new error codes have been introduced.

Error 6245 indicates an invalid or unsupported (by BR) escape sequence has been printed under Native Windows Printing. Note that such escape sequences are not processed until the end of each print line. So lines that end with a semicolon typically will not generate this error. OPTION 32 suppresses this notification.

Error 6246 indicates that Windows printing failed in pass through mode.

Errors Corrected

Menu input processing was failing.

Print Screen under Client Server (4.12c) was causing BR to terminate.

TYPE PRINT with redirection was removing and reinserting carriage returns. This disturbed the positioning of carriage returns. It no longer does this only IF the redirection is to a file.

Chaining of escape sequences was not working properly for Native Windows Printing.

3.92c / 4.02c / 4.12c Changes - 01/25/03

BR 4.0 will only be released for the Windows platform. AIX, Unix / Linux will require 4.1 (client-server).

Printing was essetially rewritten to support Native Windows Printing and Remote Printing (available in 4.0 and 4.1).

WINDOS is now available, enabling the DOS console with Windows 32 bit processing.

Known Limitation

Ctrl-P only works at a command prompt or LINPUT statement. This means that users may have to ctrl-A, ctrl-P and type GO to activate ctrl-P in order to capture a screen.

New Features


Please see NWP.TXT for a description of Native Windows Printing escape sequences. Note that WIN: has new meaning with this release. It still overrides SPOOLCMD, but it also turns on NWP. See NWP.TXT for instructions on how to suppress NWP.

Timeout flag on shell calls - only works on client server model.

Use the config statement "SHELL LIMIT -1" to force unlimited waiting. See BR_CS.TXT for further details.

Programs now save as .BR files instead of .WB files. OPTION 29 can be specified to suppress this feature.

BRCONFIG.SYS is now searched for before looking for WBCONFIG.SYS. If BRCONFIG.SYS is found, no further searching is done.

A new BRconfig.sys statement is suported:

EXECUTE command...

This causes BR to execute the {command...} upon startup. In the event a command is already provided in the startup icon, this statement will be ignored. This enables the automatic startup of an application under client server and on the MAC.

Note that this statement, as well as any others can be conditioned on a specific login name by beginning the statement with:

@login_name (followed by whitespace)

where login_name is the applicable login name.

Ctrl-P in Windows (or the Windows client) directs the screen print to PRN:/SELECT.

The creation of indexes can be interrupted with Ctrl-A, and can then be resumed with GO.

ONQ4.EXE now calls ONQ.EXE only with serial number 12345. This enables the same ONQ.EXE binary to be used for all OnQ licensed customers.

Errors Corrected

STATUSLINE OFF was not working in Windows models.

BTREE2 was not verifying correctly.

LIST PRINT now utilizes printer initialization escape sequences.

COPIES= was being randomly set under Windows for ctrl-P and PRN:/10 in certain circumstances (OS dependent).

Corrected the frozen window appearance when indexing.

SLEEP(0) would cause an endless loop on selected platforms.

TYPE filename with redirection now avoids insertion of carriage returns.

DIR -b was corrupting filenames longer than 45 characters.

BRLISTENER (4.13) was changed to allow multiple label statements. It works in conjunction with a new build of the Client (4.12c).