133 itemized changes follows: BGFAX 1.60 Rev Z5 Tue 11 Feb 1997 ----------------- 1. In Class 2 mode (not 2.0 mode), BGFAX was not correctly waiting for an "OK" message before sending the AT+FDT mode. Apparently, my notes indicate this was done to enable sending with SIERRA-based modems, but this was having problems with non-SIERRA modes in Class 2 /SEND mode. 2. New command line parameter to help debug problems, /FL will tell BGFAX to "flush" the log file every time it writes to it (i.e., will make sure that if a system or window crash occurs, the log file will save everything). This is only for debugging purposes, and will problem remain one of the few "undocumented" commands. 3. OS/2 version of BGFAX2.EXE would cause OS/2 to throw up with an invalid system call box or something equally nasty if run as a "DETACH"'ed process. This should be fixed. 4. BGFAX and VIEW would not see some TIFF-F files are high resolution when they really were when TIFF-F files were created by third-party apps. BGFAX was looking for a y-resolution of 196 to identity the fax as a high resolution source, but some third party apps would use a y-res of 200. BGFAX (and VIEW) will now use any value from 196..200 as high res. 5. OS/2 version would sometimes received scrambled faxes because it was assuming the receiver buffer was smaller than it should have been, and would report "possible overrun" errors. (Internal receive buffer used by BGFAX/2 increased from 1024 bytes to 4096 bytes.) The Win32 version also had a similar problem with receiving scrambled faxes under certain conditions. I increased the receive buffer in BGFAX32 from 1024 bytes to 8192 bytes. This fixed the problem I was able to duplicate on my Windows 95 system last night. 6. Bug in MAKEFAX and VIEW regarding viewing/converting some PCX files fixed. (Example: 1713 bit wide PCX file would have corrupted garbage on the right-hand-side with previous beta. Fixed.) 7. Corrected another bug PCX related bug in VIEW that caused VIEW to spit "Warning: PCX/DCX file terminated early" messages to the screen when that was not actually true.) 8. Initialization failure detection increased from ~3 seconds to ~5 seconds. This was done as a hunch, in case some older modems need more time to process an ATH0Z command. 9. BGFAX when in Class 1 /SEND mode, if detecting a HDLC CRC failure on one of the starting frames (NSF, CSI, or DIS) would detect the error, but not respond to it correctly (it would pause for about six seconds then hangup.) I believe this bug is now fixed, and the fax send session will continue if this situation occurs. 10 BGFAX Class 1 receive mode, when an incoming fax device calls, will try to "sync up" with it up to three times during initial negotiation. (The "Response not received, resending..." message.) A user thought that BGFAX should try more times than three, perhaps up to eight times, because they claimed to be missing faxes. I went ahead and increased the default to four, and then also made it user selectable, so if someone wants to do eight retries, they can add a /HR:8 to the end of their BGFAX command line to change the number of maximum HDLC initial retries. This value cannot be set below 3. BGFAX 1.60 Rev Z Tue 31/Dec/1996 ================ (Note: The registration key format was changed in 1.60w. If you have not used any beta until now, re-enter your registration codes.) 11 BGFAX 1.60y introduced a "looping" bug that occured when sending faxes, if no HDLC frame was received after transmission of the training check information. It should no longer loop forever. 12 When BGFAX exits, it would before say "Exit errorlevel [5]" or whatever status code was necessary. Now, it will say something like "Exit Errorlevel 5, Successful send" with a descriptive note on screen. 13 When performing BGFAX registration routine, if a key file already existed, but had a "read-only" attribute, BGFAX would abort with a runtime error. BGFAX will now notify the user of the error "gracefully". 14 Patched Borland Pascal RTL source code with "NEWDELAY.PAS" that should fix problems with people attempting to use BGFAX/DOS with a Pentium Pro CPU. I haven't actually had any one try to do that yet, but I want to have this version be as bug free as possible. I'm not really sure why someone would want to use DOS on a Pentium Pro anyway, but that's another story. 15 Many people have reported that with so many command line parameters, they are having a hard time fitting them all on the command line when running in certain specific configurations. Misecellaneous parameters can now be passed via the "FXCMDLN" environment variable. e.g. set fxcmdln=/MO /C1 bgfax /send file.fax 5551212 Would tell BGFAX to send the file.fax to 5551212 and use the /MO (monochrome) and /C1 (force Class 1) modes. The first three parameters for send mode must always remain fixed on the command line (so no putting them into the FXCMDLN environment). Also, any "$" config filename modifier must still appear on the last entry of the command line (so no putting that into FXCMDLN either.) 16 Improved BGFAX/DOS CPU usage when running in /HOST mode idle state waiting for call. It no longer eats as much CPU time as previous DOS version did when running under a DOS box in OS/2. 17 Changed /HOST mode exit semaphore check time from every 10 seconds to every 1 second. (recall: create a EXIT123.SEM file in the BGFAX directory, and BGFAX will exit, within one second, with errorlevel 123.) 18 /SEND mode, when encountered BUSY or NO DIALTONE condition (and not in /ER) mode, would wait several seconds (defined by busy-wait condition in BGFAX.CNF), and re-dial after that time. DOS version was not releasing time slices back to CPU during this phase, causing other programs running under OS/2 or Windows to stall. Should be friendly now. 19 Class 1 fax receive mode, BGFAX will now listen up to three times waiting to get the HDLC frame that describes if a new page is to come next, etc. Before it would only listen once, but I changed it at the request of a user, since there exists the possibility that a short line noise burst could happen right at the second that particular frame is received. 20 Two new executables are included, FAXDOWN.EXE and FAXDOWN2.EXE. These are useful for people running BGFAX in /HOST mode under OS/2, Windows, or DesqView, and, for some reason (such as dialing your internet provider), you need to shut down the node. You can run the FAXDOWN.EXE if you are using DV, Windows, or OS/2, or the FAXDOWN2.EXE if OS/2. These programs will send the shutdown command to BGFAX and then wait for BGFAX to actually finish shutting down. (BGFAX must be in idle /HOST mode waiting for a call, or FAXDOWN will never terminate.) You can abort FAXDOWN by pressing the key. FAXDOWN is multitasker friendly and will release the approximate timeslice back to the OS while waiting for BGFAX to shut down. "FAXDOWN" (or "FAXDOWN2") without any parameters will cause BGFAX (or BGFAX2 or BGFAX32) to exit with an errorlevel of 0. If you need to make BGFAX exit with a different errorlevel (for automation purposes), do "FAXDOWN nnn" where "nnn" is the errorlevel. (e.g., "FAXDOWN 45" will make BGFAX shutdown and exit with errorlevel 45.) The FAXDOWN.EXE must be in your main BGFAX directory or it will not function correctly. 21 Alt-I (invert white/black colors on fax image) in VIEW.EXE was not sticking when going back and forth between pages on a fax. 22 Tagging featured added in last beta of VIEW which allowed you to tag multiple files (with ) will now let you either print all of the tagged files, or DELETE all of the tagged files. BGFAX 1.60 Rev Y Tue 24/Dec/1996 ================ 23 Forget to document under 1.60 Revision V release, added /VM parameter to BGFAX. Forces verbose mode (instead of numeric mode) when sending in Class 1 mode. (You shouldn't need to use that switch.) 24 (Retrain Negative) retranmission feature that was added in last beta would blow up if the happened on the last page of the tranmission (including first page of a one-page fax). Bizarre things such as "Runtime Error 200", Retranmitting Page #0, "Disk Read Errora" messages would occur. This is fixed now. 25 New command line switch for BGFAX Class 1 /SEND mode, "/NR" This switch tells BGFAX to never retransmit a page if it encounters an (Retrain Negative) frame. It will simply move on to the next page, or hangup if no additional pages are in the fax. If this switch is not used, and BGFAX encounters an frame, it will resend the page. If an frame is encountered again on the same page, BGFAX will ignore it anyway (it will never re-retransmit the same page.) /NR tells BGFAX to never even re-transmit a page. 26 Added tagging feature to VIEW so that batches of files can be tagged for printing at once. (Press to tag a fax at the fax file listing screen.) When you press Ctrl-Enter to print, VIEW will ask you for confirmation on whether you really want to print all tagged faxes. If no faxes are tagged, it will print the currently highlighted. 27 Alt-M, Alt-R rename feature will now use default to use the file extension used for the original file if no extension is specified when renaming the file. 28 Hercules should now display help when is pressed when viewing a fax. Before, on some systems, it would case an abort. 29 New command line switch useful in BGFAX /HOST mode. /TD switch will tell BGFAX to toggle the DTR before initializing the modem. BGFAX 1.60 would toggle the DTR, but since it added an extra few seconds to get BGFAX started, many people complained. On most modems, doing this was not necessary, but I just got a report that indicates some modems need the DTR toggle (or else, the modem does not accept the first initialization strings). 30 BGFAX receive mode was not handling "ERROR" response from modem correctly when in Class 1 mode. BGFAX was treating "ERROR" as a fatal report from the modem, and would drop the connection, when in fact, in Class 1 mode, "ERROR" means that the received HDLC frame had a CRC failure, and a recovery might be possible. BGFAX will now continue to try and receive a valid HDLC frame (up to 20 times) before finally giving up. I had to test this by blowing air into an adjacement telephone headset connected to the same line of the transmitting fax machine, and things did not always work out well, but the changes did permit receiving the fax succesfully in many cases where the last version of BGFAX would not. 31 I improved the above (HDLC CRC error recovery) by using a Class 1 command called +FRS=1 at the appropriate time. This is a command that only BGFAX needs to use (you should not use it ever). It tells the modem to wait for 10 milliseconds of silence. I seem to recall having problems with some modems not recognizing the above command, so, if you are having trouble sending faxes with this beta (and notice the message "Carrier not present, retrying" with "ERROR" messages popping up on the screen, you can try using the new /FS command line switch for "Forget about the Silence +FRS command"). 32 BGFAX Class 1 mode was not properly responding to a frame (remote request a "command repeat"). I have tried to fix this, but am unable to test whether this new fix works properly since I cannot get my fax machine in such a state to send me a frame. 33 BGFAX Class 2 send mode will now convert the first digit of the +FPTS: end of page response code into readable text so that the user will now what HDLC frame was received by the modem (either PPR, MCF, RTN, RTP, PIN, or PIP). Even if an MCF is not decoded (message confirmation), BGFAX must leave control of fax is going on to the modem's Class 2 implementation, so it will not try to interfere. (No change from before) (BGFAX Class 1 mode will intervene on RTN and RTP, however.) 34 The recent addition of Superfine to Class 1 resulted in problems with one specific fax machine in the UK. I suspect it was an older fax machine made before the ITU introduced the "extension" fields in the DCS frames. BGFAX will no longer send null extension fields when sending in Class 1, unless they are needed (when sending a Superfine doc). Apparently, that is the procedure my Murata fax machine uses, so I've decided to follow their protocol for Superfine DCS announcement, since it seems to be more compatible in the "real world". 35 When sending Superfine faxes, the top of page header/banner was smushed (too compressed). Fixed. 36 Manual fax send mode (bgfax /send filename.fax MAN) would abort with a Runtime Error 105 in the last beta because 1.60x was closing the log file (assuming the press any key was a fatal cleanup routine) rather than a manual fax send routine. Fixed. 37 Last beta version of VIEW.EXE would die when doing a PCX conversion on a ZFAX-formatted file (possibly other formats as well) when more than one page was present. Fixed. 38 New command line switch /MO for VIEW.EXE. This will force VIEW's file selection screen to run in only monochrome (black and white) color mode. This is useful for people with those CGA-only Palmtop screens. If you are using a real Hercules (mono) setup, VIEW will automatically detect that, so the /MO switch is not needed for Hercules mode. 39 Class 1 /SEND mode, when reporting the capabilties of the remote fax machine would incorrectly report Superfine-capable machines as only low resolution capable. This was a cosmetic bug only. Fixed. 40 When receiving faxes in TIFF-F mode, the Faxworks "FAX.LOG" file was not storing the correct fax receive date when the user was running BGFAX in /ED (European Date) mode. Fixed. 41 BGFAX32 /HOST mode Wildcat5 mode was not removing the "Exit Errorlevel" message from the WcConsole display screen. It will now remove the writing from the screen. (Is this the same as closing the node?? WC5 still keeps a timer count moving?) My documentation doesn't seem to indicate any way of closing the node, another person told me to send a null string to the feset function, and this clears the "Exit Errorlevel" off the screen, but does not clear the node number and time counter. BGFAX 1.60 Rev X Tue 03/Dec/1996 ================ 42 BGFAX can now send faxes in a one-step process instead of the two-step (MAKEFAX first, then BGFAX). The old way still works. Now, you can simply do "BGFAX /SEND filename phonenumber" where filename no longer has to be a FAX formatted file. BGFAX will read the first two bytes of the file, and if it does not detect a TIFF-F, QLII, or ZFAX signature, it will shell to MAKEFAX.EXE (or MAKEFAX2.EXE if you are running BGFAX2.EXE). If you want to pass MAKEFAX parameters such as whether to use high resolution, etc., use a dash ("-") in front of any commands on the BGFAX command line that you want to be passed to MAKEFAX. e.g., bgfax /send hello.txt 555-1212 /c1 -sp /sp:2 -hr The above would first shell MAKEFAX.EXE with the following parameters -SP -HR, and then would send the output fax file forcing Class 1 (/C1) mode and starting on Page #2 (/SP:2) (BGFAX32 will still shell to the DOS MAKEFAX.EXE since it works very well under Windows 95.) 43 Fixed bug in MAKEFAX found by Dave Sparks. MAKEFAX was filtering out EOF characters (ASCII-26) from PCX files when it should not have been. MAKEFAX will continue to filter EOF's from text files, but will not filter them out of PCX/DCX files. 44 MAKEFAX has been given a "face lift" so that it looks better when used with BGFAX's new "one-step" send process. If you still wish to run MAKEFAX in stand-alone mode, a new switch (/MO) will tell MAKEFAX to stick with monochrome (black-and-white). 45 Found serious bug in and frame handling when sending in Class 1 mode. If the remote fax device gives BGFAX a frame after sending the document, BGFAX will retrain, and then RE-SEND the page. (RTN means the page was received, but was of "unsatisfactory" quality--probably too much line noise). BGFAX will NEVER send the same page more than two lines, though, even if another is received after the re-sent page. If an frame is encountered, BGFAX will simply retrain, then go on to the next page. (RTP means the page was received, was of "acceptable" quality, but we should probably retrain anyway--probably a small hint of line noise was detected, enough to throw off a dozen scan lines out of 1000, but not enough to cripple the received image.) 46 MAKEFAX will, by default, now abort with an errorlevel 1 IF any of the input files specified cannot be found. The last few beta versions of MAKEFAX have continued on even if a file was missing (it would create a fax page that said "File [stuff] is missing, I/O Error [nn]"). I got a few complaints about this, so that is the reason that MAKEFAX will abort now if a file is missing. However, some people (only a few) did like the "keep on trucking" when an error occured, so a new command line switch /IE can be used to tell MAKEFAX to "Ignore Errors", e.g., makefax input1.txt+input2.txt+signatur.pcx output.fax /IE 47 Modified MAKEFAX so that parameters can begin with either a forward slash ("/") or a dash ("-"). 48 At the suggestion of Udo Van Den Heuvel, BGFAX/2 will now make full use of extended console sizes. (The standard OS/2 console box is 80 columns by 25 rows. For example, at an OS/2 prompt, type "Mode 96,34" and OS/2 will reformat the console window size to meet 96 columns by 34 rows, which takes most of the screen at 800x600 resolution. Run BGFAX/2, and it will use the full 96 by 34 columns. Do not attempt to resize the window below 80 columns or below 20 rows. That is the minimum amount of space BGFAX requires, and it can cause unpredictable results if you try to resize the console smaller than that. 49 Changed method of entering Hercules graphics mode. Several people reporting that VIEW would not correctly enter Hercules graphics mode on their system (staggered scan lines), but it worked fine for me and many other people. I found another way to enter Hercules graphics mode and it seems to still work on my card, so maybe this new method will work better for the people experiencing the staggered scan lines. 50 BGFAX2 /HOST /SB mode (Spawn BBS mode, for use with Maximus/2) was not working in a multinode (/PID:nnn number used) configuration. This bug should be fixed now. 51 Modified BGFAX/DOS's Windows time slicing to call Windows specific time slice release (mov ax,$1680; int $2f) instead of OS/2's. 52 BGFAX32 was not correctly handling the /QQ:nn command line. Fixed. 53 BGFAX32 now supports use of the "/HOST /SB" (spawn BBS) switch. The OS/2 version has had this switch for a while. When a spawn occurs, this allows the BBS to use the communications handle that BGFAX used. I have no way to test if this works for Win32 or not, but I would think it would work only under Windows NT, and not under 95. 54 You can now put comments in the phone number list file for Polyfax. The semicolon (;) character is used to start the comment field. Polyfax will completely ignore the semicolon and everything after it. i.e., say you have a file called PHONE.LST: ;same phone number file 713-507-9620 507-9620 ; this is a comment to myself 55 POLYFAX will tell BGFAX to display a count of how many faxes are still remaining in the queue (using the new /EI:xxxx switch of BGFAX added in the last beta.) POLYFAX will append an " /EI:___Polyfax:_x_faxes_left" command line switch to all calls to BGFAX, unless you have already told POLYFAX to use a _specific_ /EI: switch for that phone number (via a command line override switch in the phone number listing file--see POLYFAX.DOC for more details.) 56 The BGFAX.LOG file was not always being closed properly when a fatal error was detected. This should be fixed. 57 The logging that was added in the last version was only detecting Class 2.0's +FNF: rather than that and Class 2's +FSNF:. The +FNSF: trigger is now working. 58 In the recent ZyXEL 2864I firmware, Class 1 faxing seems broken (HDLC frames are returned with a garbled first character). I was able to make a work-around for this, so that Class 1 faxing on the 2864I can still work. 59. New feature in VIEW.EXE. At the file listing screen showing all the fax files, you can press Alt-M (or Alt-R) for the Move/Rename feature. You will be prompted to enter a new filename. You can also stick in a new path in front of the filename (i.e., "\SAVE\FAXES\1996\TEST1.FAX") However, you CANNOT move the file into a different drive letter (you can't "rename across disks"). If there is heavy demand for moving across drive letters, I'll add that in the future. As it is now, you can move/rename the file to any directory on the current drive. You must always supply a filename. 60. BGFAX/2 and BGFAX32 send mode now supports use of /HW switch. 61. BGFAX32 would abort if a Java application attempted to start it, or if a command-line redirection (e.g., "BGFAX32 > TEST") was to occur. I can't test the Java part, but I fixed BGFAX32 so that it no longer bombs out during a redirection (at least under Windows 95). BGFAX 1.60 Rev W Thu 21 Nov 96 ================ A few important pieces of information first, for those of you who have not heard otherwise... My voice number has changed area codes to +1 281-893-9320 My BBS/FAX number has had a significant number change to +1 713-507-9620 (Yes, my voice and BBS number are different area codes even though both telephone numbers are actually at my house.) The UK registration site is no longer accepting registrations for BGFAX since they are moving on to do other things. Hopefully, this will be the last beta before the next full release. You will need to re-run the registration routine for this version! Use the same instructions from the receipt that I sent you in the mail to make 1.60w use your registration code. I had to change the key file format because of numerous hacks and cracks of 1.60. 62 Rewrote about 50% of MAKEFAX to use a faster algorithm for converting ASCII to fax format. The new MAKEFAX runs twice as fast as the previous version. In later versions, the new alogithm can be easily converted into assembly to provide even better speed. Took me about three weeks to make the drastic change, so I hope the extra speed is worth it. 63 MAKEFAX now creates TIFF-Class-F formatted files instead of ZFAX formatted files. This allows BGFAX /SEND mode to bypass the "analysis" phase that occured before BGFAX would send the fax. On slower computers, the analysis phase could sometimes take a LONG time, so this modification should be helpful to our Palmtop friends. 64 VIEW can now print superfine faxes (400 dpi) on Laser printers. I also added a new /P43 mode for VIEW to better accomodate superfine faxes. (/P43 means Laserjet 4 and up, 600x600 dpi PCL level 5). This mode might require more memory that your printer has onboard if you are printing very complex graphics patterns. Superfine faxes will most likely come out skewed in the up/down direction on non-laser printers. 65 I believe I fixed the memory allocation bug that about half a dozen people reported from the 1.60u version. I think this was related to a possible bug in the interrupt driven communication buffer handling, which may actually explain a few other problems I've seen in the past. 66 Bug in MAKEFAX discovered by Edward Hobson that caused problems to occur when convering PCX files to FAX files when the PCX file was between 1721 and 1728 bits wide. Fixed. 67 MAKEFAX OS/2 version has new command line switch /PH This tells MAKEFAX/2 to be "pig headed" and eat all CPU time. The result is that MAKEFAX/2 will perform the conversion very rapidly, but other processes might run slow for the few seconds that MAKEFAX runs. Without the /PH switch, MAKEFAX/2 will run "kindly" and release time slices back like, so it might take three times longer to convert the fax, but the other processes running under OS/2 should not be effected. There is no equivilant switch for MAKEFAX/DOS. 68 Used alternate method for giving away time slices in OS/2 Warp 4 since the primary method appears to be broken in Warp 4 GA. Now, BGFAX/DOS should not take up 100% of the CPU when receiving a fax. 69 New command line switch for BGFAX: /EI:xxxxxxxxxx ("Extra Info") This switch allows the user to put up to a 36 character message on the BGFAX screen, right under the status box. Example: bgfax /send filename.fax 555-1212 /ei:Fax_34_out_of_150 Notice that you must use underscores instead of spaces. This feature is useful for future features that will be added to Polyfax, and for my OEM customers who are developing applications that send out many faxes and need to have some kind of additional status messages on the screen. Feature suggested by "merlin" from "gte". 70 VIEW would not correctly revert to non-reverse bit order mode after printing a TIFF-Class-F file. This should be fixed now. 71 If VIEW was begin run on a system with dual monitors (VGA and Hercules), even if you where in "mode mono", VIEW would detect the graphics system as VGA. Now, VIEW will always default to using Hercules mode if you are in a monochrome DOS session. Otherwise, VIEW will autodetect for CGA, EGA, or VGA capabilities. The detection can always be overridden by specifying /VGA, /HERC, etc. on the VIEW command line. I've had some reports that the Hercules mode in VIEW has been generating very bizarre results (staggered rows of pixels). If anyone has any code snipets that show methods of entering Hercules graphics mode, please send them to me. 72 VIEW /P41 and /P42 (Laser PCL4 and PCL5) modes were not always printing all of the right-most character on each line of a page. I think I've fixed that bug. 73 Fixed bug in Polyfax which did not allow 14400 bps transmission to occur (POLYFAX was limiting everything to 9600 max). 74 Fixed bug in Polyfax that caused it to behave mysteriously when one of the lines in the outgoing telephone number list was an empty line. 75 NSF frames will now be decoded and logged on Class 2 and 2.0 modems that are capable of reporting such frames. (BGFAX 1.60 added logging of Class 1 NSF frames). Example: 11:45:47 f=[+FCO] 11:45:47 dial result [+FCO] 11:45:49 f=[+FNF:00004555422E4A2E204775696C6C6F7420202020] 11:45:49 [EUB.J. Guillot ] 11:45:49 f=[+FCI:" 713 507 9620"] BGFAX 1.60 Rev U Tue 15 Oct 96 ================ 76 Class 1 now supports SUPERFINE resolution. (About 400 dpi, double that of "high" resolution.) Superfine support has been tested with my handy, dandy Murata M920 fax machine which supports the R8*15.4 addition to the T.30 standard that was added in March of 1993. As far as I know, no other fax program (shareware or commericial) can use Superfine mode--so you'll be limited to fax machines made around 1994 or later that use Superfine. Superfine requires Class 1 mode to be used, since Class 2 and 2.0 do not support superfine. Also, it requires either TIFF-F or ZFAX fax format be used. QuickLink II QFX format cannot support Superfine. ZFAX does not either, but I made some "hacks" to the file format which let's BGFAX save the superfine info in the coding. Not sure if this "hack" will prevent superfine faxes from being read with the ZFAX program or not. Don't try printing a superfine fax yet--it will come out twice as tall as normal. I'll fix this in the next beta. 77 New command line switch: /SM:nnn_xxxx_yyyy Shell-to-Mailer mode (DOS version only) As I've always said, faxing is very time critical, and I have now implemented a shell-to-mailer mode in the DOS version of BGFAX to help speed things up on slower computers. This is also useful on faster computers doing multitasking when the BBS is running in a DOS box. Concept: Instead of starting your Fido mailer (or BBS software), you can start BGFAX. It will immediately startup your mailer, while keeping most of BGFAX "resident" in EMS memory (if available), or conventional memory. When your mailer exits with the fax errorlevel, BGFAX will immediately be there (since it is already loaded), shaving a nifty one, maybe even two seconds off the time it would otherwise take BGFAX to load. This will be very useful for Class 1 modems, where timing is the most important--where 1 second can be the difference between receiving a fax and not receiving a fax. Right now, BGFAX will use about 150K of EMS memory, leaving a kernel of about 4K in conventional memory. If you do not have EMS memory, the entire 154K will remain in conventional memory. Most mailers are memory pigs, so I do not know if taking 154K of conventional memory would leave enough for a mailer to run successfully. Why not XMS memory? That's the standard now-a-days, right? Well, yes, but the people that will need this feature the most are going to be the ones running on old Turbo-XT's with EMS expansion boards or 286 machines with EMS on the motherboard. While that is not anywhere near state-of- the-art technology, a fast 286 can run almost any DOS BBS software at a respectable pace. The other people this will be useful for, those running multitasking operating systems, such as OS/2, will not have a problem with EMS, since OS/2 can mimic EMS memory in DOS sessions. Okay, so how does it work? Instead of starting your mailer, you start BGFAX like this: bgfax /fax c:\bgfax 1 z /sm:255_c:\im\im.exe_/param1_/param2_/etc Notice that no spaces were used anywhere in the /SM: string. The first number (255 in my example), is the errorlevel that BGFAX is to take action upon. It is the errorlevel that you have configured your mailer to use when the modem detects a fax call. The second piece of information is the full filename of the mailer executable. The EXE (or COM) extension MUST be present!!! The path (c:\im\) is not really necessary unless you it is not in the current directory. Parameters for the mailer as passed next, all without spaces. Underscores are used whenever spaces would have been used. The parameters to the mailer are, of course, optional. Note that you mailer should NOT be configured to exit with an errorlevel of a 1 or a 4 for any operation, as this could cause problems since BGFAX uses 1 to represent some kind of failure, and a 4 to represent a fax was successfully (or partially) received. Here is a clip from the batch file I use to start Intermail: (Using a Class 1 configuration for a USR Courier modem.) :top c: set port=2 set unlockcmd=c:\util2\sio\su.exe %port% lock 0 cd\im\node\%port% c:\bgfax\bgfax /fax:713_893_9124 c:\bgfax %port% f /dis:79 /sm:255_c:\im\im.exe_/#%port%_/nores if errorlevel 102 goto toss if errorlevel 100 goto datacall if errorlevel 10 goto end if erorlevel 4 goto faxrcvd goto top :end Notice the "SET UNLOCKCMD=c:\util2\sio\su.exe 2 lock 0" environment variable. BGFAX shell-to-mailer mode will execute that command prior to receiving the fax to ensure that the port is unlocked. Most people will not need to use this, and if the variable is not found, BGFAX will not complain. My configuration does not even need it, but some people might, and I included it above just for clarity. 78 Fixed BGFAX and VIEW for Year 2000 compliance. (Basically changed all references from "dt.year-1900" to "dt.year mod 100"). 79 Changed BGFAX/DOS to use Int $28 to give away 'big' time slices instead of using the mov ax,$1680 int $2f method, as the $2f method does not appear to work under OS/2 Warp 4. 80 /QQ:xx switch was adding an extra linefeed to the bottom of the screen, causing BGFAX companion programs to have corrupted screens. Fixed. 81 BGFAX Class 1 send mode will now default to use numeric mode instead of verbose mode. This was done because it has been discovered that various USR modems (Class 1, Sportster 14.4 as one example) did not always behave properly in verbose mode (many FTT or failure-to-train entries), but did behave correctly when put into numeric (ATEQV) mode. 82 Control-A can now be pressed whenever BGFAX is running to force BGFAX to send the answer string to the modem. [What is the point of this? Say someone only has only phone line at their house and they "kind of" run a BBS. They can set BGFAX /HOST to answer on the 10th ring (RI=10 in BGFAX.CNF), but pick up the telephone handset after the 1st ring, say "hello", and if they hear nothing, they can punch in Control-A on the keyboard, then hangup the handset, and this should allow the data caller to be able to login.] 83 Made work-around for a bug in a German modem that prevented BGFAX from correctly receiving the remote fax ID (+FTSI). The modem was returning "³+FTSI:xxxx" instead of "+FTSI:xxxx", so I just filter out the stray high-bit ASCII character. 84 New command line switch for VIEW.EXE /NS for "no sound". This switch will disable all the little sounds VIEW makes when running normally. 85. Polyfax modified so that during initial database build (@), you can supply #MB:nnnn and #MF:nnnnn switches on the command line that will serve as maximums during the Polyfax run, e.g.: polyfax @num.lst bcast.fax #ms:7200 #mf:10 The above would force a maximum speed of 7200 on ALL outbound calls (instead of the default of 9600), and would enfore a maximum about of 10 failures per telephone number (rather than the default of infinite failures.) These values can be overriden in the phone number list file (see POLYFAX.DOC for more information). BGFAX 1.60 Rev S Sun Sept 22 1996 ================ 86 BGFAX32 has been upgraded to beta status, so it is now included in this package. A new REGISTER.FRM file is also included in this package for those of you who wish to upgrade from the DOS/OS2 version to the Win32 version. The upgrade fee is $10 for previously registered users. If you have registered the DOS/OS2 version on or after August 1, 1996, your existing key file can be used in the DOS, OS/2, and Win32 versions. 87 MAKEFAX changed so that it honors TAB character expansion. It mimics the behavior of laser printers and DOS, where the next tab will occur on the next character position whose's modulo 8 = 1. (9, 17, 25, 33, etc.) 88 /NF switch on BGFAX /HOST mode changed to allow user to set their own color attribute for the "FAX" message. /NF will remain the same with a default attribute of 95 (high-intensity white on purple background). /NF:nnn valid values from 1 to 255. Example: /NF:48 would set the "FAX" message to use black foreground on cyan background. 89 Made some enhancements to POLYFAX, the program that lets you sending faxes to multiple telephone numbers. See the top of POLYFAX.DOC for the list of changes. 90 BGFAX Class 2 receive mode was not properly handling a +FET=6 response (procedure interrupt: end of document). This code means that all pages of the fax have received, but BGFAX was expecting the more traditional +FET:2 code code to indicate all pages received. Now, both codes will wbe accepted. This seems to be a very rare occurance. 91 It has been reported that in some conditions MAKEFAX would leak memory after termination. I put in an exit procedure that always checks to make sure all arrays allocated on the heap are disposed of. If this does not fix the leak, I am not sure what will. 92 When BGFAX terminates, it should now put the cursor at the bottom of the screen with the standard color attributes rather than the blue-on- blue that occured on some systems when BGFAX exits. Same change done to POLYFAX. 93 Found a situation in Class 2 receive mode when using TIFF-Class-F storage format that caused BGFAX to save a bad image if the fax connection was lost when waiting for an "OK" response at the end of a fax page (+FPTS/+FET/OK section). Fixed. 94 Minor change in the way and frames handled in Class 1 send mode. BGFAX 1.60 Rev Q This beta does not contain the Win32 version, you Mon Sept 2, 1996 need to get the ALPHA for that version. ================ The BGVOI.EXE voicemail program is no longer included in the beta. (It has been discontinued due to lack of interest, and lack of modems that actually had a good voicemail implementation.) 95 BGFAX /SEND mode now allows manual dials from telephone with a phone number of "MAN" ... BGFAX /SEND filename.fax MAN This will cause BGFAX to use the dial string defined by MS= in the BGFAX.CNF file rather than the normal DS= dial string. The defaults will be MS=ATX1DT The "X1" is the standard Hayes-compatible modem command which tells the modem to only use some response codes--the main effect for BGFAX's purposes is that it shuts off dialtone detection in the modem. This is useful if you want to send a fax where you have to call VOICE first, and then they tell you to hit your "START" button to begin sending the fax, after you already have to dial through a voicemail jungle, or a calling card touch-tone nightmare. Process: (a) Send using... BGFAX /SEND filename.fax MAN BGFAX will prepare to send and ask you to hit any key to begin (b) With your voice phone, which should be connected to the back of the modem, dial the telephone number (c) After going through the voicemail jungle, when you here the voice tell you "Press your 'start' key now to send the fax, then hit any key... 96 VIEW.EXE now supports the old Hercules video modes (720x352), use a /HERC switch to use it (VIEW /HERC) I only had about 4 people ask for this feature, so it's not fully functional (i.e., Alt-S squeeze/shrink doesn't work, and it also does not show the "Page 1/2, etc." status line at the top of the screen when viewing faxes), but most functions work (Alt-I, Alt-F, PgUp, PgDn, arrows for panning-and-scanning.) The Hercules mode is even worse than the CGA mode, memory map-wise, so it would take a good deal of effort to make Alt-S work, so I'll wait to hear what others say first. I tested VIEW /HERC by hooking a second monitor to my Windows 95 machine. I just stuck in an old Hercules compatible video card and hooked up a Hercules compatible mono monitor (a GoldStar), and it seemed to nicely co-exist with my SuperVGA card and Monitor. At a DOS prompt, type "mode mono" to acess the monochrome monitor. If don't, Windows 95 diverts everything to the VGA monitor. I assume VIEW /HERC mode will work on standard machines without any VGA monitor as well. 97 New command line parameter for BGFAX /SEND mode, "/ID:xxxxxxx" will let you override the fax station ID to "xxxxxxxx", i.e., bgfax /send:9600 filename.fax 555-1212 /id:713_893_9124 Notice that you must enter spaces as underscores. If /ID:xxxxxx is not on the command line, BGFAX /SEND will use the ID= option from the BGFAX.CNF file as the fax station ID. 98 BGFAX Class 1 mode would very rarely encounter a HDLC problem in which BGFAX got stuck in a loop. If an "AT+FRH=3" command receives a "NO CARRIER" response, BGFAX will keep retrying, and will abort after 20 attempts. Previous versions would go on forever. 99 BGFAX's /HOST mode reset command (Ctrl-R) will now reset the number of voice calls as well. (I left that out of the last beta.) 00 When BGFAX /HOST starts up, it would toggle the DTR. I've changed this so that it now only toggles the DTR on startup if carrier is detected. 01 MAKEFAX would sometimes miss the last line of ASCII text on a page if there was no final at the end of the file. Fixed. 02 Found another situation in which MAKEFAX would not put the correct upper margin when spliting pages in ASCII files when encountering a page break (ASCII-12, Ctrl-L) character. A side effect of this bug would be the creation of huge 55 foot pages. Fixed. 03 MAKEFAX will now filter out (END_OF_FILE, ASCII-26, Control-Z) characters when processing ASCII files. 04. "Improved" VIEW.EXE 9-pin printing. Many people complained about the double-high printing used to make the horrible 9-pin quality legible, so I condensed it to about 1.3x-high printing. BGFAX 1.60 Rev M August 8, 1996 ================ 05 BGVOI voicemail program included!!! This is a very simple program that simply plays a greeting and then records a message when used with a AT#V command set compatible modem (Supra Sonic and some versions of the USR voice modems.) You must be using BGFAX in /HOST mode (no FidoNet mailers) and use distingtive ringing service from the telephone company to use this feature. See the BGVOI.DOC file included with this beta for much more information, and other changes done to BGFAX.EXE's /HOST mode to support the distingtive ringing voicemail detection. Actually, if your FidoNet mailer supports an immediate exit if a specific distingtive ring pattern is detected, then you probably can use BGVOI, but I do not know which mailers (if any) support this. ZyXEL modems do not appear to be AT#V compatible. USR Courier modems do not have voicemail features, but some of the Sportsters modems do. 06 BGFAX now correcting supports setting the FOSSIL driver DTE speed using the extended DTE set function (1Eh). Previous, this would only work with the X00 and VX00 drivers, but it should now support WinFossil and any other FOSSIL driver that supports function 1Eh is supported during FOSSIL initialization. Thanks to Bryan Woodruff for pointing out that BGFAX was not doing this correctly. However, while working it this, it was discovered that every FOSSIL tested (X00, VX00, BNU, WinFOSSIL) do NOT correctly (actually a better word might be "consistantly") report the current DTE rate. X00 only returns valid rates when a non-extended FOSSIL DTE set was performed, VX00 returns non-sense. WinFOSSIL looks like it might be consistant enough to trust results from, but it reports the results differently from X00. BNU does not support extended DTE setting at all so it should NOT be used if you have your port set at anything higher than 38400. 07 New BGFAX.CNF options, MR= and VR= for BGFAX /HOST mode. These new options are mainly designed for use with BGVOI, but they can be useful for any users that have a distingtive ring compatible modem. The default is "MR=RING" and "VR=RABC". MR= represents the string from the modem BGFAX will assume to be for the Modem/Fax. VR= represents the string from the modem for Voice. The default is non-sense since VR= and MR= _cannot_ be set to the same. If a RING pattern is detected, but it does not match MR= or VR=, BGFAX will *IGNORE* the RING and just wait for the line to stop ringing before waiting for a new call. What about the old VM= voicemail exit string? That function still works as before, but it is slightly different in function from VR=. The best way to explain it is by example. Let's assume your BGFAX.CNF file has the following directives: RI=2 MR=RING A VR=RING B VM=RING C Remember that "RI=2" tells BGFAX to not answer until the 2nd ring. When any "RING" response is sensed from the modem, BGFAX increments the ring counter. If the VM= string is detected (RING C), BGFAX will exit with an errorlevel 8 _immmediately_ ignoring the RI= ring counter requirement. If "RING A", "RING B", or any other "RING" is encountered, BGFAX will just sit there waiting for the 2nd RING to roll around before deciding what to do. (Due to yet another bug in the US Robotics modems, the distingtive ring detection will sometimes spit out an invalid RING detection on the first ring because it does not properly decode the pattern from the telephone company. But, it always seems to work properly on the 2nd ring, that's why we want to use RI=2.) As the 2nd RING pattern comes in, BGFAX will check and see if it matches the MR= (modem ring) or the VR= (voicemail ring). If the MR= is encountered, BGFAX sends the adaptive answering (fax/data) sequence to the modem. If the VR= is encountered, BGFAX will exit with an errorlevel of 8. If neither the MR=, VR=, or VM= strings are detected, (say RING X or RING D, or just a plain old RING in our example), BGFAX will *IGNORE* the incoming RING. (This way, you can use one distingtive ringing telephone number for a voice-only which lets your telephone ring rather than a voicemail system, which is useful even for people without voicemail modems, but modems that still have multi-pattern ring detection.) 08 MAKEFAX.EXE has new switch /LM:nn for "Left Margin". The default is a left margin of "zero" (technically not "zero", but the same margin that all previous versions of MAKEFAX have used.) MAKEFAX hello.txt output.fax /LM:10 Would, when converting ASCII files to FAX format, indent each line of text 10 spaces over. 09 MAKEFAX.EXE has new switch /A4 for metric A4 paper size This simply tells MAKEFAX to use 69 lines per page instead of 66 lines per page when converting ASCII to FAX. (/A4 is equivilant to PL:66) 10 VIEW.EXE Alt-S (shrink, squeeze) mode for 1024x768 mode rewritten in assembler for snappier response. (All other Alt-S modes were recoded in assembler back in revision 1.60F). 11 VIEW.EXE Alt-S scrolling code optimized in 1024x768 mode. Roughly 30% faster. 12 While VIEW was loading the fax images, sometimes it would jump into text mode if you hit a key. This problem is corrected. 13 In BGFAX.EXE /HOST mode, a Ctrl-R reset will now also turn off any NFAX "FAX" indicator messages on the screen. BGFAX 1.60 Revision F Wednesday 24 July 96 ===================== 14 New POLYFAX.EXE program for sending out "broadcast" faxes (i.e., sending the same fax to multiple fax numbers.) See the new POLYFAX.DOC file that is included with this beta. A new beta will be available shortly that will contain an OS/2 version of POLYFAX. 15 The Alt-S function in VIEW.EXE (shrink, squeeze) for all modes except 1024x768 has been rewritten in assembler. Alt-S now functions 2 to 5 times faster than the previous version. On 486 and Pentiums, you probably will not be able to notice much of a difference, but on older 386s and slower machines, the difference is quite evident. The 1024 mode will be rewritten in assembler hopefully in the next beta version. 16 If top of page header was greater than 100 greaters, BGFAX was sending a garbarled header rather than truncating it to 100 and alerting the user of the problem. Fixed. 17 The new TIFF scan added in 1.60c during /SEND mode was incorrectly rejecting to send some valid TIFF-F files. BGFAX was reporting that tag 266 <> 1. It was not supposed to scan tag #266, but tag #277, so it looks like I just hit the wrong key in the source code. :-) 18 BGFAX /SEND in Class 2 and 2.0 mode was sometimes reporting a "success" on a fax session that actually failed. This should be fixed. 19 In /SEND mode, if a plus (+) is used in the telephone number, BGFAX will translate that character to a dash (-). The reason is that some modems will abort the dial if a plus is in the phone number, i.e., 011+44-1234-5678 would be translated to 011-44-1234-5678 20 The /SEND /SP:nn parameter (Start at Page "nn") was not correctly creating top-of-page headers. i.e., for a /SP:2 on a two page fax, the top-of-pager header read "Page 01/02" instead of "Page 02/02". 21 The fax number that BGFAX will be dialing (/SEND mode) will now show up on the screen. This was added at the request of a user. 22 New /ER ("extended results mode") errorlevel for /SEND mode. Errorlevel 20 will mean the user performed an emergency abort (i.e., hitting escape numerous times.) BGFAX 1.60 Revision C Sunday 30 June 96 ===================== I'm going to go on vacation for three days, go see "Independence Day" at the movies, and should be back home by late Wednesday or early Thursday. So if no one answers the phone for three days, you know why. 23 When 1.60 was receiving faxes, in certain rare circumstances, BGFAX could terminate with a "Runtime Error 200". This is a division by zero error and was occuring when BGFAX attempted to calculate the CPS rating on receive. This could also have possibility impacted sending faxes as well. 24 Corrected fax image timeout routine to make more robust at catching timeouts after the actual fax image receive starts. If no data is received within 5 seconds, BGFAX will abort. (To test this, start a fax receive, and then turn the modem OFF once the page actually starts getting sucked through the fax machine. BGFAX should abort after 5 seconds. Previous versions of BGFAX would not do always do this.) 25 New BGFAX command line switch: /PH (Pig-Headed) This tells BGFAX it should be a pig-headed bully, and eat up all the CPU time it can get rather than being a gentleman and releasing ticks back to other processes. This switch is for debugging purposes only and is "undocumented". 26 During fax sends, the elapsed time counter will move. (Not every second, but every few seconds to conserve resources.) 27 DOS version will now throw "{CTS}" up on the screen whenever CTS drops. This is just something to help me see what's going on--just like how the program throws up an "{XOFF}" when an XOFF flow control character is detected. Note that if you are running the DOS version in an OS/2 box (and probably a Windows-box, maybe even a Desqview-box), that you will NOT see the {CTS} flashes appear because the operating system is stealing flow control away from BGFAX. (Which is one of the reasons why many people have fax sending problems under multitasking operating systems--since faxing defaults to XON/XOFF while OS's default to CTS.) 28 VIEW.EXE will now create a "DODCX.BAT" file when doing FAX -> DCX conversions. (Version 1.60 added the DOPCX.BAT, but it was brought to my attention that a DODCX.BAT would be useful as well.) 29 A TIFF Page Number "error" would be reported on screen during some Class 1 failures that involved a 6-second timeout. This would result in BGFAX not saving the file to disk when receiving a fax. Very rare, but it's fixed. 30 Previous versions of BGFAX (1.60) would send 500 nulls before each outgoing page in /SEND mode, IF the modem was in Class 1 or 2.0 mode. Class 2 mode did not have the outgoing 500 nulls because most Class 2 modems did not need it. I discovered the some newer Class 2 modems did need the 500 nulls or a few scan lines would be cut off the top of each page. So, now BGFAX sends 500 nulls before each page no matter what Class the modem is being used in. 31 New BGFAX command line switch: /ECM No don't get excited. Someone asked me if BGFAX could use ECM in Class 2.0 mode since apparently the ZyXEL 14400 modems could do ECM in 2.0 mode with modern firmware. All BGFAX will do is issue AT+FDI[S]=n,n,n,n,n,1,n,n instead of AT+FDI[S]=n,n,n,n,n,0,n,n. No big deal at all. I checked every Class 2 and 2.0 modem I have and NONE of them support Class 2 or 2.0 ECM mode--Not even my ZyXEL 2864I !!! (So, either the guy was making it up about 14400 ZyXEL having ECM, or ZyXEL dropped it from the 28800 line of modems.) I only added this switch because it only took me 30 seconds to do it. :-) [ECM means Error Correcting Mode] 32. Some older versions of BGFAX would not correctly identity the maximum transmit speed of the modem and would try to transmit using a +FDI[S] non-existant speed of "6" ("5"=14400, "6"=undefined). This is a bug in BGFAX, but I could not find any of the bug reports that people sent me about this before, so BGFAX will log a "LOGIC ERROR (6)" in BGFAX.LOG and on screen, and default max transmit speed to 4800. If you see this error, let me know--and send a clip of your BGFAX.LOG to me. 33. When sending TIFF-Class-F files, BGFAX will now verify that use a Compression flag of 3 (T.4 image data), and that the image data is also 1728 bits wide. Some people were attempting to send non Class-F compatible TIFF files resulting in bizarre results. Note that Class-F files can actually be 1728, 2048, or 2482 bits wide, but no one has ever requested this capability and I am unsure just how many fax machines support these wide paper sizes. Also, BGFAX will check to ensure the TIFF file is actually black and white (bits_per_sample and samples_per_ pixel must equal 1.) Regards, B.J. Guillot bgfax author