Binary News Reader (BNR) for OS/2

Version 1.20
©1996,1997 Ralf Christen


Table of contents


1.0 Environments

The software was tested under OS/2 Warp 3 (Base, FixPak 17, Fixpak 22), OS/2 Warp 3 Connect (Base) and OS/2 Warp 4 (Base).

1.1 Warp 3 - FixPak 17

There is a general problem after installing Fixpack 17 that focused windows are displayed BEHIND all other windows or some dialog windows remain gray. This is an OS/2 problem and NOT a BNR problem. IBM opened an APAR for this problem which has number PJ21838. This is fixed in FixPak 22.

1.2 Warp 3 - FixPak 22

Users report that BNR works just fine with fixpak 22 installed. The window problem mentioned above, is fixed in FP 22.

1.3 Warp 3 - Connect

Warp Connect users should have fix pack IC12657 installed.
Click here to get the fix pack

1.4 Warp 4 - Merlin

You may know that Merlin has a new type of notebooks (they have coloured tabs on top). I'll try to convert the BNR notebook to this new type; Merlin doesn't use the new type as the default. However, there is no need to release a special Merlin version.

1.5 TCP/IP 3.0

BNR uses a TCP/IP interface called RXSOCK.DLL which has been published as a part of the IBM EWS-program. Version 1.3 of this interface is included in the BNR package. However, if you should have TCP/IP for OS/2 installed (is part of Warp Connect) you have a newer (and slightly faster) version of this DLL. This means, that you can delete the BNR delievered version. The 'About' screen then should show you Version 2.0 of the TCP/IP interface. Please note that this is the version of the DLL and NOT the TCP/IP version number.


2.0 Decoder software

You need an UUE-Decoder and a BASE64/Mime-Decoder installed. I suggest to use the combinded UUE- and BASE64/Mime-Decoder EMX runtime as well if you haven't already installed it on your system) or MUNPACK 1.5, (c) Carnegie Mellon University.
I have seen that it is much better to use a text-based Decoder (such as UUDEVIEW) because they don't pop up every time BNR calls them to decode an article (which takes you the keyboard/mouse focus away). If you use a combined UUE/BASE64 decoder, you should enable the 'General decoder' checkbox on the 'Decoder' page of the configuration notebook.


3.0 The newsserver

BNR supports up to 2 newsservers. You can configure them in the configuration notebook. There is also a checkbox called 'Use XOVER NNTP command' on this page. XOVER is an extended NNTP command which gives direct (and fast) access to subject headers. BNR uses this command to retrieve the subject headers from your newsserver. However, some newsservers don't support this command and you have to deselect this option. BNR then uses the slower XHDR command. Because we have to submit 3 XHDR commands to get all relevant information, you will notice that the red progression indicator goes from 0 to 100 percent three times.

How do I know if my server supports XHDR? Try to get a subject list with XOVER enabled. If there are no articles found, you should disable this option.

Some newsservers DO support XOVER but they use a different implementation. This can produce scrambled subject lists. In that case, you should also disable the XOVER commands.

If you want to try other public newsservers, you should visit the site at http://login.eunet.no/~kjetilm/news.htm which contains a directory of public newsservers.

3.1 Import/Export newsgroups

BNR can import and export NEWSRC compatible UNIX newsgroups files. This allows you to synchronize your subscribed newsgroups across different newsreaders or even platforms. The import and export functions are available on the menubar of the newsgroups manager.


4.0 Getting started

Perform these simple steps to get started after you copied the BNR files into a new directory and started the software the first time:
  1. Select 'Create desktop folder' from the 'Configure' Pulldown menu. This creates the necessary desktop objects for you.
  2. Go through the configuration notebook and modify your personal settings. Each notebook page contains a short function description. You should complete at least the two pages 'Decoder' and 'Servers'. All other pages contain default values you can use for your first start. If you use the recommended combined decoder software UUDEVIEW, you can enter the following decoder command: UUDEVIEW.EXE -i +d -p D:\DOWNLOAD % where D:\DOWNLOAD is the path you want to have the decoded files saved.
    Please note, that you can enter your own name on the 'Register' page without being registered. This information is used to reply to or post articles. After this, close your notebook. Chapter 5.2 contains a detailed description of all notebook settings.
  3. Connect to your newsserver (Ctrl+C)
  4. Go to the newsgroup manager and download the list of all available newsgroups (-> Load all). Please note that there is also a 'flat' newsgroup manager (-> Editor) if you should not like the hierarchical (tree) manager. There, you can subscribe to a newsgroup with a simple cut/paste operation of the newsgroup name. If you should have an other newsgroup reader which is able to export NEWSRC compatible files (such as NR/2) you can import this NEWSRC file into BNR without reloading the entire newsgroup list.
  5. After restarting the newsgroup manager, select (subscribe to) the newsgroups you want to work with, using the 'Add' button.


5.0 Normal work

Here's how you work with the BNR (after downloading the list of all available newsgroups):
  1. Connect to your newsserver (Ctrl+C)
  2. Get the newsgroups status to have an overview of the number of unread articles (Ctrl+S)
  3. Select a newsgroup from the drop-down-list. This will download the headers of all unread articles for this newsgroup (It's also possible to directly enter the name of a newsgroup in the drop-down-list. This receives the headers and automatically subscribes to this newsgroup).
  4. A doubleclick marks an article to be downloaded as the first (or only) part. If there are multipart articles you want to connect, mark the second, third etc part using the right mouse button. If you have the 'automatic subpart detection' feature enabled, BNR will automtically search for subparts and mark them for you (recommended).
  5. Press Ctrl+R to receive the selected articles (or press the button located at the upper right corner of the window). This puts the selected articles to the receiver job queue and downloads/decodes them automatically while you can go back to 4. and select the next few articles...
  6. Mark the articles you have seen 'as read' (Ctrl+M)

Please note:

5.1 Using the timer

There is a timer feature which is located on the menubar of the receiver job queue window. With this feature, you can

Please note:

5.2 The configuration notebook

Filters
"Filters" are used to select articles containing a specific piece of text. You can use them to drop unwanted articles headers which do not contain a required text (GIF, JPG, BMP, ZIP etc). That's a very effective way to reduce the number of received article headers to those you really want. The option "Override at runtime" allows you to override them prior to download the subject headers. A small popup window will come up at runtime where you can enter enter different filters for this specific download. The disabled option "Eliminate crossposted articles" isn't available yet.

Blocker
On this page you can maintain a list of e-mail identifications of authors you want to exclude (block) from your subject list. Articles from one of those authors won't be displayed on the screen. You can also add an author to the blocklist using the Ctrl+B command on the main window. There, you'll add the author of the currently selected article to the blocklist.

Hangup
This command is used to hang up when "Hangup now" or "Hangup after download" is selected on the main window. If you are connected to the Internet through a network (a leased line), you just can ignore this. Usually, the hangup command tells the dialer to hang up.

Decoder
These commands are used to decode the UUE- or BASE64-coded downloaded articles' content. Substitute a '%' for the name of the file to be decoded. A valid command could be 'DECODER.EXE -d %'. If you have a decoder which is able to decode both UUE- and BASE64-coded articles (such as UUDEVIEW) or if you want to write your own batchfile to decide which decoder shall be used, you can enable the "General decoder" option. If you have this option enabled, BNR doesn't analyze the received data, which can be slightly faster. Furthermore, BNR never calls the editor to display unrecognized articles. If you want to do so, you can select "Remove received articles from list". This removes received articles immediately from your subject list. If you do not select this option, received articles get a "REC" marker. You shouldn't remove downloaded articles from your list if you want to reply to one of them. You can automatically mark downloaded articles 'as read'. They won't be displayed the next time you reload the headers of this newsgroup (or they already have a "REC" marker). However, from time to time, you still have to mark the entire newsgroup 'as read' (up to a certain article number) to mark all unwanted articles as well.
If you use UUDEVIEW, you can use the following command: UUDEVIEW.EXE -i +d -p D:\DOWNLOAD % where D:\DOWNLOAD is the path you want to have the decoded files saved.

Encoder
This command is used to encode binary files you are uploading (posting) to a newsserver. Substitute a '%' for the name of the file to be encoded. If you do not want to upload your own binary files using the BNR you can ignore this page. UUE is the only supported encoder type.

Servers
You can specify the names of two newsgroup servers. They are used as a primary and alternate (backup) server. You can specify the name of the server or the IP-adress (in the format nnn.nnn.nnn.nnn) of the server. In the first case, BNR will ask the TCP/IP defined nameserver for the appropriate IP-address of your newsserver. If your newsserver doesn't listen at port 119, you can specify a different port using a server address like 'myserver.net:nnn' where nnn is your new port number. The option "Use XOVER NNTP command" should be checked if your server supports the XOVER command. If you can receive a correct subject list with XOVER enabled, you can leave it that way. If you get an empty (or scrambled) list, you can disable XOVER (which enables the usage of XDHR). For a detailed description see Chapter 3.0 'The newsserver'.

Posting
This information is used when sending (posting) articles to the server. Specify your real Mail-ID here! Your registration name is automatically added to your Mail-ID: "ralf.christen@ibm.net" gives ralf.christen@ibm.net (Ralf Christen)". If you want to have replies to a different address, you can specify this address in the "Reply to" field. If you want to have the name of your organization in the header information of your article, you can enter this in the "organization" field. The field "Timezone" is to specify the timezone of your location. Usually, you refer to the next known timezone (such as GMT, EST etc) and specify the appropriate offset (GMT+1, EST-1 etc). You can use test newsgroups (alt.test) to test your postings.

Prompt
If you receive an article which cannot be decoded, (neither UUE nor BASE64), you can display the content on the screen, using an editor of your choice. This function is used to display non-binary articles (maybe an announcement of an upcoming binary file) which contain text. Because BNR is a binary newsreader, this shouldn't be the usual case. However, there are 3 options: "Always display", "Display if automatic hangup is disabled" (to avoid the display of many articles while being in unattended mode) and "Never display". Valid OS/2 editor commands can be "E.EXE", "EPM.EXE" or any oder OS/2 editor which is currently installed on your system.

Register
Here's the place to fill in the registration information you have received from the BMT Micro Shareware Registration. If you have questions on how to register, see Chapter 9.0 'Registration'.

Display
You can use the OS/2 functions to customize to following objects of the BNR screens:

Select a font from the OS/2 font list and drop it on one of the objects mentioned above. The BNR will save those fonts and automatically reloads them after restarting. BNR also saves the size and position of both windows. If you want to restore the original size, you can press the "Restore window size" button on this screen. You should use the Binary Newsreader on a 1024x768 display.

Logon
Some servers require a user identification and password to log on. If you want to connect to one of those servers, you can enter the logon information on this screen. Newsservers of access providers do not require a login, because they test your IP adress to grant access. In that case you have to leave the fields blank!

Options
The BNR can ask you if you really want to quit. There are two options "Confirm leaving BNR" and "Confirm leaving BNR with jobs in queue" to enable this function. If you want to have a copy of the receiver job queue saved to disk, you should enable "Save reciever job queue to disk". Then, you can terminate and restart the BNR anytime and continue working with your receiver queue. Sometimes, the receiver task can fail due to a communication or server error. A "watchdog timer" checks the active connection every few minutes and restarts a failed receiver job.

5.3 Performance Considerations

Be aware, that some options impact the performance of your BNR
OptionImpactWhen
Eliminate crossposted articlesCPUReceiving headers
Mark received articles 'as read'HarddiskPut articles into queue
Use of XOVER disabledLineReceiving headers
Save receiver queue to diskHarddiskWhenever the queue changes


6.0 Starting the BNR

6.1 Command line parameters

There are some command line parameters you should be aware of:
/Cconnects automatically to the newsserver after starting
/Dstarts BNR in debug mode. Use this function if you have to submit an error report after one of these symptoms:
- BNR closes after an error without further information
- OS/2 issues SYS3175 (GUI problem).
/CSconnects automatically to the newsserver after starting AND gets the newsgroup status.
/I=Specify a different path for the internal BNR work files. The example /I=D:\DATA tells BNR to put the work files to the D:\DATA directory. Use this in a Client/Server environment (to force saving personal work files on the clinet) or to connect to different access providers with different newsservers.
/RRestarts a reloaded receiver queue automatically when starting BNR.
/SRemoved since V1.20

6.2 Using an automatic Dial-Up Connection

If you want the dialer to connect to your service provider when starting the BNR, you can add the BNR to your desktop as follows (replace d:\path with the path where you have BNR installed):

6.3 BNR Work files

BNR uses the following work files which are created automatically:
BNR.INIConfiguration settings, subscribed newsgroups
BNR.GRPPlain ASCII-file of all available newsgroups
BNR.MGPPlain ASCII-file of top level hierarchy of all newsgroups
BNR.MRKSingle marked articles
BNR.QUEPlain ASCII-file of the saved receiver job queue

You can redirect the path of those files using the /I command line parameter.


7.0 Scripts

BNR supports a simple script language which enables you to automate often used downloading procedures. You can do almost everything with a script you can do manually. Currently, there are no 'logical components' such as IF-THEN-ELSE or things like DO-WHILE etc in this script language. That's why a BNR script is always processed sequentially (top down). However, I think it's a nice tool to get binaries from selected newsgroups automatically.

7.1 Create a BNR script

I decided not to build a separate BNR script editor; therefore you have to use an OS/2 editor such as E.EXE or EPM.EXE to write a BNR script. A BNR script always has an extension of .BSC (which means Bnr SCript) and is stored in the same directory where BNR is located. I strongly recommend to use long filenames (on a HPFS disk) because this gives a nice description of your script for free. A valid BNR script filename would be 'My_first_script.BSC'.

7.2 Script command syntax

A BNR script contains script commands; always one command per line. And here is the complete list of commands:

CONNECT n
Connects you to your newsserver where 'n' can be 1 or 2. 1 means your primary server, 2 means your secondary server. If you omit 'n', you get connected to your primary server.

GROUP xxx
Switches to the newsgroup 'xxx' and receives the list of subject headers. You can even switch to newsgroups you are not subscribed to.

SELECT xxx yyy zzz ...
This selects articles to download from the subject headers which contain the string 'xxx' AND 'yyy' AND 'zzz' in their subject or author-id. You can specify as many strings as you want. If you have the 'auto subpart detect' feature enabled (what I recommend), this also selects all subparts to download. Be sure NOT to mark subparts; this will the mentioned 'auto subpart feature' do for you; therefore you should include a SELECT like '1/'. Please note that the parameters of this command are NOT case sensitive.

RECEIVE
Puts the selected articles to the receiver job queue

MARKREAD
Marks all articles in the article list 'as read'

WAIT
Waits until the receiver job queue is empty and all articles have been received. You can stop the execution using the appropriate option on the menubar (-> Scripts).

PAUSE
This command suspends the execution of your script and returns control to the BNR. You can continue or stop the execution using the appropriate options on the menubar (-> Scripts).

DISCONNECT
Disconnects you from your newsserver

HANGUP
Just hangs up

QUIT
This quits the BNR immediately. You should DISCONNECT from your newsserver before quitting.

7.3 Example

And here's an example:

CONNECT 1Connect to the primary newsserver
GROUP alt.binaries.picturesSwitch to alt.binaries.pictures
SELECT .JPG 1/Select all 1st part JPG files
RECEIVEPut them to the receiver job queue
MARKREADMark them 'as read'
GROUP alt.binaries.pictures.natureSwitch to alt.binaries.pictures.nature
SELECT sunset 1/Select all 1st part sunset pictures
RECEIVEPut them also to the job queue
MARKREADMark them 'as read'
WAITWait until all articles have been received and the queue is empty
DISCONNECTDisconnect from your newsserver
HANGUPHang up

7.4 Execute a script

There are four ways to start a BNR script:


8.0 Frequently asked questions (FAQ)

Where are the decoded binary files stored ?
That depends on the settings of your decoder software. BNR only downloads articles and calls the decoder.

Where are the text files stored ?
Downloaded UUE or BASE64 articles are stored in the BNR directory with names like ARTnnnnn.TMP and are deleted after the decoding process. Plain text articles remain there.

My decoder does not work (but it's configured correctly)

  1. BNR is stored in a 'long-filename-directory' but your decoder cannot process long path/filenames
  2. Your decoder needs its INI/DLL file but can't find it. You should put your decoder into the BNR directory
  3. BASE64 decoders can have problems if the original name of the binary file is not specified correctly in the downloaded article. There's nothing you can do about this (except a decoder which asks you for the original filename)

How does the automatic subpart detector work ?
This feature automatically finds and marks subparts (articles which are made of more than one part) after you have doubleclicked the first part. Usually, their headers contain some text, indicating the sequence of this part and the total number of all parts (eg 01/05 means part 1 of 5). BNR recognizes subject headers which contain the following strings as a first-part article: '(1/' or '(01/' or '[1/' or '[01/'. Of course, the number behind the slash must have a value other than 1 otherwise it would be a single-part article. BNR starts with its search with the article following the marked 1st part and automatically stops if all parts have been found. If it reaches the end of the list it restarts from the top down to the 1st part. If some subparts are missing, a message is displayed.

How can I unmark an article which I have marked to download ?
You can unmark an article with a simple doubleclick. If it's already in the receiver job queue, you can use the 'Delete entry' function on the menubar. However, you cannot delete the entry being received right now. In that case, you have to stop the receiver job queue, delete the entry and restart the queue.

How does the BNR determine if we have a UUEncoded or a BASE64 article?
UUEncoded files do have a string like 'begin nnn' at the beginning of a new line. BASE64 articles must have the keyword 'base64'.

Will there ever be a Windows 95 version of this software ?
No.

What the hell am I doing here?
You're reading the documentation


9.0 Registration

You have 50 trial usages. After this (if you like the software), you must register. The registration fee of this software is US$ 25.

There are many ways to register:

How to pay: Please have this information ready:


10.0 Support and new versions

10.1 BNR on the Internet

10.2 Known problems

Don't change your newsserver after you have received the list of articles or BNR will try to get the selected articles from the wrong server. This produces errors like "412 not in a newsgroup", "423 no such article number in this group" or "430 no such article found".

The listbox of the receiver job queue jumps to the top/end after removing an entry.


11.0 Version history

Version 1.00

Version 1.01

Version 1.05

Version 1.10

Version 1.11

Version 1.20


©1996,1997 Ralf Christen, ralf.christen@ibm.net
Last modified January 20th, 1997