Trumpet Version 1.06 A News Reader for MS-DOS machines. by Peter R. Tattam Email: peter@psychnet.psychol.utas.edu.au Copyright (C) 1991,1992 Page 2 Trumpet Version 1.05 Introduction Trumpet is an NNTP newsreader for PC's running on MS-DOS. It requires the use of a Packet Driver using either Blue-book ethernet or SLIP packets. It provides the user with user-friendly environment for news-reading and also supports the use of a mouse for point-and-click use. Under some circumstances, Trumpet will also run under Windows 3.x, but as a DOS application only. Disclaimer This program is Copyright (C) 1991,1992 by Peter R. Tattam, All Rights Reserved. It is provided as shareware with the following limitations: This program is shareware and is not to be resold or distributed for sale with other programs which are for sale. There is no warranty or claim of fitness or reliability. The program is distributed AS IS, and as such neither the author nor the University of Tasmania shall be held liable for any loss of data, down time, loss of revenue or any other direct or indirect damage or claims caused by this program. Using Trumpet for the first time If you are running Trumpet for the first time, you must first make sure that you have a packet driver loaded. Packet drivers are available from many sources, of which the most public accessible is the SIMTEL20 MS-DOS program archive. Many sites mirror this archive around the world. First type NEWS You should be presented with a copyright notice. Type to continue. You will then be given a setup screen. You will need to fill in quite a few details regarding your network. If you are running from a Novell network, you may not be able to edit some fields. Fill in those which you are able to fill in. Use the key to move from field to field. After you have completed the setup screen, type . When you are starting for the first time, Trumpet subscribes you to all the groups that are on the news server. This number can be quite large on some news servers, so if you like, you can type to unsubscribe from all news groups, and then to open up the subscribe box and just select the news groups which interest you by moving to the name of the newsgroup and typing . When you are satisfied that you have the news groups that you wish to view, proceed to the next section. Using Trumpet Normally Trumpet Version 1.05 Page 3 When using NEWS, if all goes well, you should be connected to the NNTP server and then you will be able to read the news. You will be presented with a large window with 2 scrolling frames. The top frame is for locating a newsgroup, the bottom for scanning through a group. A group's articles will not be displayed until the newsgroup is selected with . To jump between the frames, type . To move about, use the cursor keys or click on the scroll bars with a mouse. You may also locate a group or subject by typing a sequence of characters which form part of the group name or article subject. For example the sequence 'n','o','v','e' will locate the group 'comp.sys.novell'. This makes it easy to locate a group or subject without typing too much. Note: if NEWS.INI does not exist, Trumpet will attempt to subscribe to all the newsgroups available. This could take some time, and make you think that the computer has gone dead. A ticker should count over showing you that Trumpet is loading all the newsgroup info. The same thing happens when you select the subscribe box. Page 4 Trumpet Version 1.05 To read an article, merely select the article in the lower window by pressing . You can move about the article with the cursor keys, or if you have a mouse, you can click on the scroll bars. Try using the F7/F8 keys to move from article to article. You can also click on the bottom status line to invoke the commands if you have a mouse loaded. All in all, the program is probably "self-explanatory". (well not really, but I'm sure you'll figure it out :-) Here are some of the special commands available from the various parts of the program. Note that [key] means press the ALT key at the same time as pressing that key. For example, [R] means press ALT + R at the same time. In the news group window (The top frame) Ins open a window of all the unsubscribed groups (when open, will subscribe the newsgroup) Del unsubscibe from a news groups Enter scan the newsgroup for articles. In the news article window (The bottom frame) F7/F8 will jump to the prev/next group with articles to be read. F9 swap to article viewer and vice versa F10 cycle through header formats. esc return to news group window. enter retrieve the article and view it. [R]eadall will mark all the articles as having been read for the current group and then scan to the next group with articles in it. [U]nread Unread 20 articles at a time. [T]oggle will toggle the read status of an article. [S]kip will mark the article as having been read without reading it. [F]ollow do a follow up to the article. [P]ost post a new article f[O]rward forward article to mail user (defaults to self) In the article reader window (When an article has been selected) [H]eader toggle viewing of the header [W]ordwrap toggle word wrapping [P]rint print an article (Can also save to a file this way) [S]ave save article to a file (if files exists, then it is appended) [M]ail mail a letter to author of the article. [R]eply mail a reply to the author of the article. (includes article) f[O]rward forward article to mail user (defaults to self) F9 swap back to news article window and vice versa Trumpet Version 1.05 Page 5 esc return to news article window F10 toggle rot13 decoding The use of a mouse is supported via the standard mouse driver. Load your mouse driver before use. Page 6 Trumpet Version 1.05 The Trumpet Menu Here is a list of the menus in Trumpet 1.06 Special Video mode - toggle the video mode from 25 to (43-50) line mode Dos - shell to dos Setup - the setup dialog Reconnect - reconnect to the NNTP server. (useful after having sent a posting) Exit - exit the program Group Readall - read all current articles in news item list Unread 10 - unread by 10 articles Unread 20 - unread by 20 articles (same as hot key Unread) Unread - unread all Catch up - similar to Readall, but catches up completely without rescanning group Catch up all - marks all newsgroups as having been read. Subscribe - subscribe to new groups Subscribe with mask - subscribe using a search mask. Useful if memory can't hold all the news groups. Unsubscribe - unsubscribe current group Zap all - unsubscibe from all news groups. use with caution. Article Post - post a new article to a newsgroup Follow - post a follow up to another article on a newsgroup Cancel - cancel a posting you have sent. Mail - send an article to the author of an article without quoted article Reply - send an article to the author of an article quoting the article Forward - forward an article by mail without quoting article but rather by including it. Print - print an article Save - save article to a file Append - append article to a file Quit quits Trumpet registration of trumpet Trumpet Version 1.05 Page 7 Providing command line parameters to Trumpet NEWS takes the following parameters. news { -option } The option '-d' enables debugging. This is only used for debugging the TCP/IP part of the program. An example of providing parameters from the command line would be news -myip=133.32.1.5 -netmask=255.255.0.0 -gateway=133.32.250.1 Parameters may be in any order and can be read from the NEWS.PRM file, the command line, or environment variables. The individual parameters are nntp-host domain name or IP address of the NNTP server smtp-host domain name or IP address of the SMTP server dns-host IP address of Domain name server time-host IP address of Time server myip an ip address, rarp or bootp (in lower case) netmask your ip local network mask mygateway ip address of your gateway outside your local net mss maximum segment size that tcp can send. default 512 rwin size of the tcp receive window. site your e-mail site name user your e-mail user name organizationthe name of your organization fullname your full name signame your signature file name protect disallow users to change setup options your saved Trumpet options title-formatyour saved Trumpet title format timeout timeout in seconds for commands to time out. leave large (> 600). vector Hex specification of the packet driver vector number debug debug options (see later) dbfile debug file name d equivalent to -debug=t maildir specification of the maildir location (command line or environment variable only). disable_nw disable any netware features of trumpet (command line or env. var. only) nobatch disable batching of XHDR commands Debug options The parameter -debug enables certain debugging options. the format is Page 8 Trumpet Version 1.05 news -debug=xyz where xyz is a string of the following characters Trumpet Version 1.05 Page 9 e = ether header trace (only if ip trace, arp trace or rarp trace is on) a = arp trace r = rarp trace u = udp trace i = ip trace t = tcp trace e.g. news -debug=eat will trace arp packets with ether headers, and trace the tcp The -d option is equivalent to -debug=t You can also send output to a debug file with the option -dbfile e.g. news -d -dbfile=test.dbg will trace the tcp info into the file 'test.dbg' What Trumpet needs The files required are NEWS.EXE - the executable file. NEWS.PRM - a setup file for the news reader. NEWS.INI - a list of the newsgroups subscribed to. Also required A packet driver of class 1 (Bluebook) or class 6 (SLIP) Optionally required Mouse driver A typical stand-alone setup would look like this myip = 131.217.35.100 user = peter netmask = 255.255.0.0 mygateway = 131.217.250.1 nntp-host = deimen.utas.edu.au:119 smtp-host = 131.217.1.19 dns-host = 131.217.1.19 time-host = 131.217.1.19 site = psychnet.psychol.utas.edu.au organization = Psychology Department, University of Tasmania mss = 512 rwin = 4096 fullname = Peter R. Tattam signame = c:\news\my.sig Page 10 Trumpet Version 1.05 Notes for Novell NetWare(tm) Users Trumpet recognizes the existence of a NetWare network, and will act appropriately. Individual users will save their own NEWS.PRM and NEWS.INI in their mail directory. This directory is SYS:MAIL\nnnn where nnnn is their unique user-id number. NetWare users will have some parameters stored in their user parameter file and the rest loaded from a global parameter file. When running from a network, some parameters may change from machine to machine. One such parameter is the ip address 'myip'. One can use RARP or BOOTP to determine the IP address of a workstation, or pass the address via the command-line or environment variables. The suggested way to run Trumpet is as follows. The Trumpet NEWS.EXE program should reside in a public directory. e.g. SYS:PUBLIC or SYS:TRUMPET A typical public setup follows. Notice that some parameters are missing. myip = rarp netmask = 255.255.0.0 mygateway = 131.217.250.1 nntp-host = 131.217.1.19 smtp-host = 131.217.1.19 dns-host = 131.217.1.19 time-host = 131.217.1.19 site = psychnet.psychol.utas.edu.au organization= Psychology Department, University of Tasmania rwin = 4096 mss = 1024 user = * fullname = * timeout = 600 A typical user setup might be signame = c:\news\my.sig Trumpet will only require the file NEWS.PRM in the public directory. For full security, this file should contain all the Trumpet parameters except those which you allow users to modify. If the user and fullname are specified, they should have a "*" as their parameter. This means to load the username and fullname from the novell server. When Trumpet is started for the first time, the user will automatically have a NEWS.INI and NEWS.PRM created in their mail directory. When Trumpet is started, the existence of a NEWS.INI is checked,and if one is not found, a list of news groups will be retrieved from the NNTP server. This can take some time, so be patient. If the setting -protect is provided then the user will not be able to change any of the settings. Trumpet Version 1.05 Page 11 The sequence of events for a novell user are : 1) determination of mail directory 2) NEWS.PRM loaded from user mail directory. (if exists) 2-a) environment variable overrides 2-b) command-line overrides 3) NEWS.PRM loaded from NEWS.EXE directory. This will override any attempt to forge some of the global parameters. 4) if user and/or full name not set, then retrieve from server. 5) NNTP session opened. 6-a) if NEWS.INI exists in user mail directory then load it 6-b) or if NEWS.INI exists in NEWS.EXE directory then load it 6-c) or subscribe to all newsgroups on the NNTP server. .... .... [ optional 7) User changes Setup (limited to only .sig file name) 8) NEWS.PRM saved in mail directory ] .... .... 9) User quits. 10) NEWS.INI saved in mail directory 11) NEWS.PRM saved in user's mail directory. (only the screen settings updated) 12) NNTP session ended. 13) program ends. Special Novell Group Management If you are running Trumpet in a NetWare environment, you may want to take advantage of the security features which can be enabled using NetWare groups. One can give Trumpet users certain privileges by having the user belong to one of the following groups. If any of these groups exist on your NetWare server, then the security options will be enforced. If the groups exist, but the user is in none of them, news access will be barred completely. The user must also be logged on for the security features to be enabled, so care should be taken to make sure that the executables cannot be copied to a private disk and executed from there. In the following, read means the user can read news articles subscribe means the user can subscribe to news groups post means the user can post articles via NNTP mail means the user can mail articles using SMTP NEWSREADERS read and subscribe enabled NEWSPOSTERS read, post and subscribe enabled NEWSMAILERS read, mail and subscribe enabled NEWSNOSUBS read enabled, subscribe disabled NEWSALL read, post, mail, subscribe enabled Page 12 Trumpet Version 1.05 The groups may be combined, but the groups are processed in the order presented This means that NEWSALL will override all other settings. Trumpet Version 1.05 Page 13 NEWS.INI format You may modify your own news.ini file. This can save space in Trumpet. The file is simply a list of lines, one per newsgroup. Each line has the following format. ::= where ::= string ::= "Y" | "N" ::= integer ::= { integer ["-" integer ] } e.g. comp.sys.novell Y 2345 sci.physics Y 1234 1021 1034-1041 1211 This format will be discontinued in the future releases. I hope to standardize to the .newsrc format used by unix systems. Page 14 Trumpet Version 1.05 Bug Reports If you find a bug in Trumpet, I would like to hear about it. You can e-mail me at peter@psychnet.psychol.utas.edu.au If you can, send me the NEWS.PRM that you are using (supervisor version if using Novell), and a simple trace of the form news -d -dbfile=simple.dbg and then news -debug=eairtu -dbfile=full.dbg Trouble shooting check list Can't connect to NNTP server. Check that you have a packet driver loaded. Packet driver help is available from nelson@crynwr.com Check that you have a valid IP-address either manually or via RARP or BOOTP. Try telnetting to port 119 of the NNTP host using NCSA telnet to see if it is accessible. Can access NNTP server but can't read any articles. You need to be authorized to use the NNTP server. See the administrator of the NNTP server. Can read articles, but can't POST. You need to be authorized to post articles. Some groups don't allow posting. Can read articles, but can't MAIL. Have you filled in the SMTP-HOST parameter? You need to be authorized to use the SMTP host. See the system administrator. Interface runs really, really slow. (on ethernet) Packets are most likely being dropped because your host is sending too many packets at a time. Try setting RWIN=512, and MSS=512. Experiment a little. Interface runs really, really slow. (via SLIP). Trumpet Version 1.05 Page 15 You really want to use Trumpet via SLIP???? :-) Seriously... Later versions of Trumpet may have special facilities for background SLIP processing. If you are running SLIP, you may want to set MSS to a smaller size. (say 128 or 256) When I read large groups or large articles, Trumpet bombs. This shouldn't happen much any more. How much memory do you have? Watch the avail memory indicator at the top of the screen. Please tell me about it. I want to fix this. Trumpet hangs halfway through a session. Many possible causes. IPXPKT being used with mss > 256.... set mss=256 Communications broken. Some TSR is interacting badly with Trumpet. Mouse driver behaving badly. Monster groups/articles. Trumpet has timed out perhaps due to some kind of net failure. Perhaps the batching of commands is not working. try -nobatch XHDR command not implemented on news server. Known bugs Out of sync sessions cause havoc. Don't set timeout too small. Please report any bugs to peter@psychnet.psychol.utas.edu.au You can trace bugs with posting by creating a file called POST.LOG in the same directory as NEWS.INI. All lines posted to the NNTP server will be saved in this file. Current wish list Archiving of articles via a simple database. (not far off now) Automatic uuencode/uudecode facility for binary postings. Use external editor Mail a copy of posting Cut & paste in editor (and a clipboard) Print out in Postscript A decent Manual This .DOC needs rewriting. No Print/File save error dialogs. Page 16 Trumpet Version 1.05 Trumpet is going Shareware From version 1.05, Trumpet has become shareware. Due to the unprecedented demand for more features to be added to Trumpet, I am intending to recover some of the costs in the development of Trumpet. You may use Trumpet for up to a month to evaluate its usefulness. If at the end of that time you are satisfied with Trumpet as a product, you can register Trumpet. The basic registration fee for a single user version of Trumpet is US$10. Versions 1.05 and later are shareware and are available from the Internet. The distribution site is ftp.utas.edu.au:/pc/trumpet/dostrump/* Registration of Trumpet 1.06 All you need to do is send US$10 plus US$5 postage for the registration password and you will receive the registration password for Trumpet in the mail. Should you require a copy on disk instead, there will be a cost of $10 per disk which includes the password. Multi-user site license Trumpet will be charged by the number of simultaneous users . The pricing structure for commercial users is thus 1-99 users $10 US per user 100-999 users $1000 US + $2 US per additional user above 100 1000-4999 users$2800 US + $0.20 US per additional user over 1000 5000+ $3600 US site restriction 10km The pricing structure for educational users is thus 1-99 users $10 US per user 100+ $1000 US site restriction unlimited. Australian users should contact me regarding Australian pricing information and availability. Cheques or Postal Orders should be made out to Psychology Department, University of Tasmania and sent to Trumpet Software, c/- Psychology Department, University of Tasmania GPO Box 252C, HOBART, TAS AUSTRALIA 7001 Trumpet Version 1.05 Page 17 You may fill out the following order form and send it along with your cheque or Postal Order to the above address. Please note that International mail can be rather slow, and it may take up to 2 months to receive your registration. Page 18 Trumpet Version 1.05 +-----------------------------------+ | O R D E R F O R M | | for Trumpet version 1.06 Software | +-----------------------------------+ Ship to: Bill to: [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] Please supply the following items: ---------------------------------------------------------------------- Licence to use Trumpet 1.06 for [ ] users. . . . . US$[ ] Tick at least one of the following options. [ ] 5.25" disk with the latest version of Trumpet + password Cost - US$10 . . . . . . . . . . . . . . . . US$[ ] [ ] 3.5" disk with the latest version of Trumpet + password Cost - US$10 . . . . . . . . . . . . . . . . US$[ ] OR [ ] administration cost of sending registration password Cost - US$5 . . . . . . . . . . . . . . . . US$[ ] Total. . . . . . . . . . . . . . . . . . . . . . . . . . US$[ ] Your registration name (required) (will appear on program) [___________________________________________________________________] Your email address (optional) [___________________________________________________________________] Trumpet Version 1.05 Page 19 Trumpet Bug History Version 1.01 fixes the following bugs. Internal - NNTP result codes interpreted when exceptions occur. TCP/IP - modified to recycle packets out of sequence Unable to change IP address on command line. Some posting editor bugs fixed. Fixed RARP packets, timeout 10 seconds (was 5). Enhancements in Version 1.01 On initial startup (or NEWS.INI missing) the setup screen appears automatically. Any error conditions will display a message on the screen for a couple of seconds. U(nread command now unreads 20 articles at a time Version 1.02 fixes the following bugs Check for low memory. Displays a message, and limps on with reduced memory. Article numbers > 65535 should work now. Version 1.03 fixes the following bugs Some ARP code broken. TCP code improved for sending data. SMTP address not saved after setup screen. fixed bug when unread list contains old articles which have disappeared from NNTP host. Fixed bug in screen display when focussing a new group without loading. Fixed bug introduced by Memory low checking. If there were unread articles, the readto pointer was assigned to the last of them. Updated correctly now. Version 1.03 Enhancements Forwarding command in article and news item windows. (defaults to self) Mail command sends new letter to author of article. Reply command replies to author of article. Indicator on start up about IP address shows netmask and default gateway. More dials on load/save of news.ini. Full name extracted from Novell bindery. BOOTP installed. More robust Novell usage. Command line entry of all parameters. Extended debug options. Page 20 Trumpet Version 1.05 Version 1.04 Bug fixes TCP code modified to avoid Silly Window Syndrome Inclusion of RWIN parameter for small/slow ethernet adaptors. RARP bug fixed (The BOOTP enhancement broke this part) Path line contains the DNS look up for the IP address. Date line fixed to conform to Usenet format. Traces may be sent to a text file for later analysis You can now escape using any when reading large groups. You can now shell to DOS. Version 1.05A bug fixes The "time-server address not specified causing articles to be rejected because of weird date: header" bug is fixed. Packet driver hooks modified to allow trace to work. The SMTP session is more robust. RCPT TO lines processed properly. CC: now works. Some changes to the TCP code. Version 1.05A Enhancements Saves Trumpet settings Lots of cosmetic changes to the program. Improved Article header layout. Support for SLIP included. Timeout on NNTP commands Rot13 support (try F9 in the article viewer) Mail directory can be supplied via command line or environment variables. Send copy of mail to self. A net status indicator. A clock. The packet driver interrupt number can be set. NNTP port number can be set at end of NNTP host name. Version 1.05B Bug fixes/enhancements Mail now has a Date: header Mail to multiple recipients works (separate by commas, but don't use a comma in a comment) Added an option to disallow a user to change the setup (option - protect) Added some file error retry dialogs for the Print/Save commands. The save of the news.prm file has been changed to use a temporary file when saving. Maildir command has automatic append of "\" if not provided. IP header check sums checked. (were not before) Version 1.05C Bug fixes BOOTP processing improved to allow any vendor type other than standard bootp options. Trumpet Version 1.05 Page 21 Version 1.05D Bug fixes Small packets not checked for. (Introduced by SLIP) Crashes with some packet drivers. Page 22 Trumpet Version 1.05 Version 1.05E Bug fixes/enhancements Inclusion of a Cancel Article option. Removal of any reference to supervisor for Novell Systems. Fixed bug where environment/command line parameters were saved in news.prm by mistake. Modified default timeout from 60 seconds to 600 seconds. Modified the Posting/Mailing Dialogues to cope with user pressing by mistake when creating an article. Version 1.05F Bug fixes/enhancements Article line counting. 0 line count appearing on Article list removed. Cross referencing processing of read articles added. (will cause possible slow down of article scanning) Inclusion of a -disable_nw option to disable NetWare maildir/username processing (cammand line or environment variable only). Bugs in 1.05E tcp fixed. Bug where users gateway wasn't disabled from setup menu fixed. Fixed empty RCPT TO: fields (empty fields) in SMTP processing. Version 1.05G Bug fixes Bug fixed which was introduced in revision F relating to removing spaces from some trumpet parameters. Bug fixed relating to 25/43-50 line mode switching. Version 1.05H Bug fixes/enhancements Added workaround for bug introduced by 1.05F/G with batching XHDR commands. Workaround is option -nobatch. Fixed possible bootp freezing problem. Added Novell group security processing. See section in doucumentation. Added DOS shell protection if -protect option set. Added ability to reconnect the NNTP session without restarting Trumpet. Version 1.05I Bug fixes Bug fixed where dns-host and time-host setting not recognized from setup. (introduced by 1.05H modifications) Version 1.06A changes New look & feel similar to Trumpet for Windows - new menus, added features Improved memory management and out of memory handling. Cut & paste now works. A new revamped TCP is being used. It is faster than the previous version. Try out the auto-scroll feature using the mouse in the article viewer. Trumpet Version 1.05 Page 23 Version 1.06B bug fixes/changes Fixed out bounds error unsubscribing from empty newgroup list. Fixed bugs relating to crashing when shelling to DOS. Added DPMI version (packet driver only at this stage) Fixed bug with blank screens. Added // keyboard hotkeys in viewer. Page 24 Trumpet Version 1.05 Acknowledgements The following packages are acknowledged in the development of Trumpet. Turbo Vision for Turbo Pascal 7.0 by Borland International TSPA2760 library of Turbo Pascal units available from garbo.uwasa.fi by Prof. Timo Salmi, moderating at garbo.uwasa.fi anonymous FTP archives at the University of Vaasa, Finland. DPMI Runtime environment by Borland International