Running PCBoard in a FidoNet - Technology environment by Michael Nelson This file is intended to show you how to set up PCBoard to operate in the FidoNet / RBBSNet environment. The main programs being used are: InterMail, version 2.01 (Commercial program... but you can also use FrontDoor, as it operates in a smilar manner) PCBoard 14.5a /E3 (Commercial program) BNU 1.70 FOSSIL Driver (BNU170.ZIP) Squish 1.00 Tosser / Scanner / Packer MRen 2.50 Message renumbering utility (MREN250.ZIP) InterPCB 1.31 PCBoard <-> *.msg converter (IP131.ZIP) Once you have all those programs, you need batch files to tie it all together. With the method I use, InterMail is EXITING, rather than SHELLING to run PCBoard. This method uses minimum memory, since one batch file exits to the next, each time passing the necessary information along to the next batch file. Examples are shown below. Note that these batch files have been simplified considerably, but DO contain all the steps required to run a minimal setup. Feel free to add "bells and whistles" you need to perform the functions you need to get done. Mine are much more elaborate than these, but contain so many details that it would take me forever to explain it all. First is the main batch file that runs the mailer (InterMail). I call it RUNIM.BAT. When a human caller connects, IM will exit with the errorlevel you set up in IM's SETUP program. Using a US Robotics Courier HST modem, that setup screen looks like this: ΥΝΝΝΝΝΝΝΝΝ Errorlevels Έ ³ ³ ³ 300 0 ³ ³ 1200 0 ³ ³ 1275 0 ³ ³ 2400 102 ³ ³ 4800 0 ³ ³ 9600 101 ³ ³ 19200 0 ³ ³ 38400 0 ³ ³ Received mail 70 ³ ³ Create BAT.file Yes ³ ³ ³ ΤΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΎ I don't take inbound calls from 300 or 1200 bps modems, so I have the errorlevel set at 0 for those. If you want to take calls at those speeds, set the errorlevels to 103 for 1200 and 104 for 300, and add the appropriate lines to the RUNIM.BAT file below. ====================================================================== @ECHO OFF REM RUNIM.BAT (MAIN BATCH FILE TO RUN INTERMAIL) :LOOP CLS C: CD \IM BNU /C IM /NOEMS IF ERRORLEVEL 102 GOTO BOARD IF ERRORLEVEL 101 GOTO BOARD IF ERRORLEVEL 90 MAINT IF ERRORLEVEL 70 GOTO INMAIL GOTO END :BOARD CLS DOBBS :INMAIL CALL INMAIL GOTO LOOP :END ECHO THE BBS IS NOW DOWN EXIT ====================================================================== So, if it is a human caller at 2400 bps connect speed, it will drop to the :BOARD label in the batch file. From there, it will clear the screen and run the DoBBS.BAT file, which is created on exit by IM. If the inbound caller is at 2400, the DOBBS.BAT file will look like this: ====================================================================== EXEBBS 2400 2 273 ====================================================================== In this example, DOBBS.BAT will run the EXEBBS.BAT file, and it will pass three parameters to it. The first is the connect speed, the second is the port number, and the third is the number of minutes to the next event. In the case of an HST or MNP connect, there will be a fourth parameter, "/ARQ", and if it is there, it will also be passed to EXEBBS.BAT. EXEBBS.BAT looks like this: ====================================================================== @ECHO OFF IF %4!==/NONE GOTO STD GOTO HST :STD IF %1==2400 GOTO PCB24 IF %1==1200 GOTO PCB12 GOTO CONTINUE :PCB24 BOARD /C:3 :PCB12 BOARD /C:2 :HST IF %1==14400 GOTO ARQ96 IF %1==12000 GOTO ARQ96 IF %1==9600 GOTO ARQ96 IF %1==2400 GOTO ARQ24 IF %1==1200 GOTO ARQ12 GOTO CONTINUE :ARQ96 BOARD /C:5 /ERR :ARQ24 BOARD /C:3 /ERR :ARQ12 BOARD /C:2 /ERR :CONTINUE CLS RUNIM ====================================================================== Assuming the incoming human caller is at 2400, and it is not an MNP connect, the line that says "If %4!==! Goto STD" will cause it to go to the :STD label in the batch file. There, the "If %1==2400 Goto PCB24" line will cause it to go to the :PCB24 label. This causes it to run PCBoard's BOARD.BAT file, and it will pass "/C:3" to BOARD.BAT as %1. If this were instead a 2400 /ARQ connect ( a 2400 MNP modem ), it would instead jump to the :HST label, where the "If %1==2400 Goto ARQ24" line would force it to the :ARQ24 label. In this case, it would pass the parameters "/C:3 /ERR" to BOARD.BAT as %1 and %2. BOARD.BAT looks like this: ====================================================================== @ECHO OFF C: CD\PCB IF EXIST REMOTE.BAT RENAME REMOTE.BAT REMOTE.SYS IF EXIST EVENT.BAT RENAME EVENT.BAT EVENT.SYS IF EXIST DOOR.BAT DEL DOOR.BAT >NUL IF EXIST ENDPCB DEL ENDPCB >NUL PCB145 %1 %2 IF EXIST REMOTE.BAT REMOTE IF EXIST DOOR.BAT DOOR IF EXIST EVENT.BAT EVENT IF EXIST ENDPCB. GOTO END :END CLS IF EXIST ENDPCB DEL ENDPCB >NUL RUNIM ====================================================================== So, after the caller is done with PCBoard (PCB145.EXE for PCBoard 14.5 beta) it will drop all the way down to the line that says "runim", and the whole cycle starts over, ready for the next caller, with InterMail back up. ====================================================================== Now we've gotta talk about processing EchoMail. I use Squish, by Scott Dudley. When a mail bundle comes in from my hub, InterMail exits with errorlevel 70, which forces it to the :INMAIL label in the RUNIM.BAT file. This runs my INMAIL.BAT file, which looks like this: ====================================================================== @ECHO OFF REM INMAIL.BAT CDD C:\IM\SQ IF EXIST SQUISH.LOG DEL SQUISH.LOG > NUL SQUISH IN OUT SQUASH CDD C:\IM AREAFIX EC IF EXIST C:\IM\FILES\*.TIC TICK CALL IPMAIL CDD C:\IM\SQ IF EXIST C:\IM\IPXP.BBS SQUISH OUT -FC:\IM\IPXP.BBS CDD C:\IM\SQ SQUISH LINK ====================================================================== So, Squish tosses the inbound packets to the *.msg format, and then calls the IPMAIL.BAT file that runs InterPCB to convert the *.msgs to PCBoard's message base format. When it is done, it returns to the INMAIL.BAT file and does the linking of the .msg files that are left after InterPCB processing. IPMAIL.BAT looks like this: ====================================================================== @ECHO OFF REM IPMAIL.BAT C: CD\IM If exist IP.LOG DEL IP.LOG IP /I /E /S /W /N:BATPOWER /F:E:\PCB\BATPOWER /P:E:\PCB\BATPOWER\BATPOWER IP /I /E /S /W /N:BAYFORSALE /F:E:\PCB\BAY4SALE /P:E:\PCB\BAY4SALE\BAY4SALE IP /I /E /S /W /N:BOATING /F:E:\PCB\BOATING /P:E:\PCB\BOATING\BOATING IP /I /E /S /W /N:BNU /F:E:\PCB\BNU /P:E:\PCB\BNU\BNU IP /I /E /S /W /N:CFORSALE /F:E:\PCB\CFORSALE /P:E:\PCB\CFORSALE\CFORSALE IP /I /E /S /W /N:COMM /F:E:\PCB\COMM /P:E:\PCB\COMM\COMM IP /I /E /S /W /N:COOKING /F:E:\PCB\COOKING /P:E:\PCB\COOKING\COOKING IP /I /E /S /W /N:C_ECHO /F:E:\PCB\C_ECHO /P:E:\PCB\C_ECHO\C_ECHO IP /I /E /S /W /N:C_PLUSPLUS /F:E:\PCB\CPP /P:E:\PCB\CPP\CPP IP /I /E /S /W /N:DESQVIEW /F:E:\PCB\DESQVIEW /P:E:\PCB\DESQVIEW\DESQVIEW IP /I /E /S /W /N:DR_DEBUG /F:E:\PCB\DR_DEBUG /P:E:\PCB\DR_DEBUG\DR_DEBUG IP /I /E /S /W /N:4DOS /F:E:\PCB\F4DOS /P:E:\PCB\F4DOS\F4DOS IP /I /E /S /W /N:FISHING /F:E:\PCB\FISHING /P:E:\PCB\FISHING\FISHING IP /I /E /S /W /N:HDCONF /F:E:\PCB\HDCONF /P:E:\PCB\HDCONF\HDCONF IP /I /E /S /W /N:HDSALE /F:E:\PCB\HDSALE /P:E:\PCB\HDSALE\HDSALE IP /I /E /S /W /N:HST_MODE /F:E:\PCB\HST_MODE /P:E:\PCB\HST_MODE\HST_MODE IP /I /E /S /W /N:HUMOR /F:E:\PCB\HUMOR /P:E:\PCB\HUMOR\HUMOR IP /I /E /S /W /N:JOBS /F:E:\PCB\JOBS /P:E:\PCB\JOBS\JOBS IP /I /E /S /W /N:JOBS-NOW /F:E:\PCB\JOBS-NOW /P:E:\PCB\JOBS-NOW\JOBS-NOW IP /I /E /S /W /N:KINKNET /F:E:\PCB\KINKNET /P:E:\PCB\KINKNET\KINKNET IP /I /E /S /W /N:LAN /F:E:\PCB\LAN /P:E:\PCB\LAN\LAN IP /I /E /S /W /N:LAW /F:E:\PCB\LAW /P:E:\PCB\LAW\LAW IP /I /E /S /W /N:LASERPUB /F:E:\PCB\LASERPUB /P:E:\PCB\LASERPUB\LASERPUB IP /I /E /S /W /N:LONI /F:E:\PCB\LONI /P:E:\PCB\LONI\LONI IP /I /E /S /W /N:MUSIC /F:E:\PCB\MUSIC /P:E:\PCB\MUSIC\MUSIC IP /I /E /S /W /N:PERFECT /F:E:\PCB\PERFECT /P:E:\PCB\PERFECT\PERFECT IP /I /E /S /W /N:PIERCING /F:E:\PCB\PIERCING /P:E:\PCB\PIERCING\PIERCING IP /I /E /S /W /N:RIDES /F:E:\PCB\RIDES /P:E:\PCB\RIDES\RIDES IP /I /E /S /W /N:SCIENCE /F:E:\PCB\SCIENCE /P:E:\PCB\SCIENCE\SCIENCE IP /I /E /S /W /N:SCUBA /F:E:\PCB\SCUBA /P:E:\PCB\SCUBA\SCUBA IP /I /E /S /W /N:SPORTS /F:E:\PCB\SPORTS /P:E:\PCB\SPORTS\SPORTS IP /I /E /S /W /N:STTNG /F:E:\PCB\STTNG /P:E:\PCB\STTNG\STTNG IP /I /E /S /W /N:TECH /F:E:\PCB\TECH /P:E:\PCB\TECH\TECH IP /I /E /S /W /N:TIELINES /F:E:\PCB\TIELINES /P:E:\PCB\TIELINES\TIELINES IP /I /E /S /W /N:VAX /F:E:\PCB\VAX /P:E:\PCB\VAX\VAX IP /I /E /S /W /N:VENTURA /F:E:\PCB\VENTURA /P:E:\PCB\VENTURA\VENTURA IP /I /E /S /W /N:VIETNAMV /F:E:\PCB\VIETNAMV /P:E:\PCB\VIETNAMV\VIETNAMV IP /I /E /S /W /N:ZMODEM /F:E:\PCB\ZMODEM /P:E:\PCB\ZMODEM\ZMODEM ============================================================================= When IPMAIL.BAT has finished importing the messages into PCBoard, it returns to the RUNIM.BAT file, which brings InterMail up, ready for the next incoming call. ====================================================================== I realize that there are many ways to accomplish what the files in this archive do. I put this file together to give people a SIMPLE, RELIABLE method. Please don't send me zipfiles containing various convoluted batch files expecting me to troubleshoot them for you. The two node setup I run at SeaHunt has been extremely reliable using a slightly more complicated version of this setup, and frankly, I am not interested in other methods when this one has stood me in such good stead. I hope this file has been helpful to you in getting you up and running with PCBoard in the FidoNet environment. If it has, or if you have suggestions on how to improve it, please send me NetMail at 1:125/20. Flames and complaints > NUL. S e a H u n t B B S San Francisco, California Sysop: Michael Nelson FidoNet 1:125/20 RBBSNet 8:914/500 & 8:914/501 DVNet DESQview File Support System (415) 621-0473, to 14.4kbps HST/DS v.32bis (415) 621-0227, to 14.4kbps HST