home *** CD-ROM | disk | FTP | other *** search
- BCFS, January 18th version
- (C) 1992 by Scott McNay. All Rights Reserved.
-
- FidoNet: 1:395/11
- RBBSNet 8:928/9
-
- BBS: 817-554-5331
-
- I may be contacted via the MAPLE, RBBS_MAPLE, or RBBS-PC echos.
-
- -=-
-
- FOSSCOMM provided by Jon Martin.
-
- RBBSNet 8:914/1
-
- -=-
-
- These mods are free for use by RBBS SysOps and are offered for inclusion with
- the stock RBBS release.
-
- -=-
-
- BCFS is a mod to allow the /Fs switch of BC 7.x to be used when compiling RBBS,
- thus giving the sysop much more string space to work with, and also removing
- one of the restrictions on the RBBS developers. The mod involves changes to
- nearly all of the assembler routines provided with RBBS. These routines are
- backward compatible, allowing RBBS to be compiled without BC 7.x's /Fs switch.
- With the addition of RBBSQBFS.OBJ, RBBS can also be compiled with QB. However,
- compiling with QB or without the /Fs switch will NOT give any advantage, aside
- from the bug fixes in ANSI19.
-
- At this point, I have been unable to test all of the routines (SEE HISTORY AT
- BOTTOM FOR UPDATES!). The routines that I have been able to test are QBARCV6
- (View command), RBBSUTIL (finding a file, uppercasing a string), ANSI19 (DOS
- screen output), MOVCSTR (creating ANSI string), and FINDWORD (find
- next/previous word on line). The last two are part of ANSIED. I have been
- unable to test RBBSHS (HearSay), BASNOV (Novell), RBBSDV (DesqView), PC-NET
- (PC-Net?), 10-NET (3-COM), BDRIVEC2 (Corvus), and XMODEM (Xmodem/Ymodem
- Checksum and CRC calculation). Also, my system does not crash reliably with
- buggy versions of FOSSCOMM. I would appreciate knowing if these routines work
- or not.
-
- In case you're wondering how much free memory BASIC gets with this mod, here
- are some actual figures from my system:
-
- Free Temporary String Space = 65430
- Free Common String Space = 57024
- Free Local String Space = 61776
- Free Far Space = 146512
-
- It surprising to see MENU0 telling you that you have 64K of free string space.
- I got the report above by adding the following lines to the output of the
- Utilities Statistics command. This code is in RBBS-PC.BAS in the stock code,
- and is in RBBSSUB5.BAS in Maple. In Maple, the lines that these replace have
- the CINT function in them. Remove it or else you may see negative numbers.
-
- CALL LPrnt ("Free Temporary String Space = "+(STR$(FRE("A"))),1)
- CALL LPrnt ("StackSpace = "+ (STR$(FRE(-2)) + " bytes"),1)
- CALL LPrnt("Free Common String Space ="+ (STR$(FRE(ZWASZ$))),1)
- CALL LPrnt("Free Local String Space ="+ (STR$(FRE(WASZ$))),1)
- CALL LPrnt("Free Far Space ="+ (STR$(FRE(-1))),1)
-
- To implement these mods, just copy the .OBJ files over the original .OBJ files
- and add '/Fs' to the command line for BC 7.x for ALL of the .BAS files. Then,
- update your LINK response file to say "ANSI19" instead of "ANSI17". If you use
- QB, these mods will NOT help, but may be added anyway, in which case
- RBBSQBFS.OBJ must be added to the list of files to link. In case it isn't
- clear: RBBSQBFS.OBJ _MUST_ be used with QB and _MUST_NOT_ be used with BC 7.x.
- Here is an example:
-
- @echo on
- bc /Fs /O /FPi /Ot /MBF /s rbbs-pc;
- bc /Fs /O /FPi /Ot /MBF /x rbbssub1;
- bc /Fs /O /FPi /Ot /MBF rbbssub2;
- bc /Fs /O /FPi /Ot /MBF rbbssub3;
- bc /Fs /O /FPi /Ot /MBF rbbssub4;
- bc /Fs /O /FPi /Ot /MBF rbbssub5;
- ; Next 5 lines are for Maple and/or ALIAS, DOORSYS, ANSIED, RCHAT, ANSICHAT
- bc /Fs /O /FPi /Ot /MBF alias;
- bc /Fs /O /FPi /Ot /MBF doorsys;
- bc /Fs /O /FPi /Ot /MBF ansied;
- bc /Fs /o /FPi /Ot /MBF Rchat300;
- bc /Fs /o /FPi /Ot /MBF ansichat;
- Link @LINK.dat;
-
- LINK.DAT would be something like:
-
- rbbs-pc+rbbssub1+rbbssub2+
- rbbssub3+rbbssub4+rbbssub5+
- fosscomm+pc-net+basnov+10-net+rbbsdv+
- bdrivec2+givebk31+rbbsutil+ansi19+ < Change ANSI17 to ANSI19
- qbarcv6+xmodem+rbbshs+ < For stock code ONLY
- rbbsqbfs+ < For QB _ONLY_
- rchat300+ < For Maple/internode chat only
- alias+ < For Maple/Alias mods only
- doorsys+ < For Maple/DOOR.SYS mods only
- ansichat+ < For Maple/ANSIChat only
- ansied+findword+movcstr, < For Maple/ANSIED only
- ,,/STACK:1024/NOE;
-
-
- Verification of proper operation: RBBS should be compiled both with and without
- the /Fs option, and the routines checked both ways. If the routines work in
- one case and not the other, that will help me find the problem.
-
-
- History:
- 0726: Initial release
- Tested: FOSSCOMM, RBBSUTIL, ANSI17, QBARCV6, FINDWORD, MOVCSTR
- Unverified: PC-NET, BASNOV, 10-NET, RBBSDV, BDRIVEC2, XMODEM, RBBSHS,
- RBBSQBFS.
-
- 0728: Updated from ANSI17 to ANSI18, forwarded by Dan Drinnon, and VERY heavily
- optimized it. Also fixed a bug that's been around for a while in which
- lines that go past the right end of the screen get cut off instead of
- wrapping, so that your display will now look more like that of the users.
- Made a booboo while assembling the files. The 0726 OBJ files WILL work
- ok, in spite of the errors reported. The 0728 update contains new .OBJ
- files that will not give error messages.
-
- 0729: IGNORE THE FOLLOWING.
- |BCFS0728 took care of lines getting cut off at column 80 on the sysop
- |side. 0729 modifies ANSI18 to return a count of the number of line
- |wraps, allowing RBBS to keep a more accurate line count. RBBSSUB2 needs
- |to be modified for this.
-
- |In LPrnt, replace:
- | CALL ANSI(ZCrLf$,ZWasCL,ZWasCC) : _
- |with:
- | CALL ANSI(ZCrLf$,ZWasCL,ZWasCC,T) : _ 'BCFS0729
- | ZLinesPrinted = ZLinesPrinted + T : _ 'BCFS0729
-
- |In PScrn, replace:
- | ELSE CALL ANSI (Strng$,ZWasCL,ZWasCC) : _
- |with:
- | ELSE CALL ANSI (Strng$,ZWasCL,ZWasCC,T) : _ 'BCFS0729|
- | ZLinesPrinted = ZLinesPrinted + T : _ 'BCFS0729
-
- |In SkipLine, replace:
- | CALL ANSI(ZCrLf$,ZWasCL,ZWasCC) : _
- |with:
- | CALL ANSI(ZCrLf$,ZWasCL,ZWasCC,T) : _ 'BCFS0729
- | ZLinesPrinted = ZLinesPrinted + T : _ 'BCFS0729
-
- 0801: Ignore BCFS0729. The changes in it are either not needed any more or
- won't always work as intended.
-
- Rewrote ANSI() completely, renaming it to ANSI19.ASM. There should no
- longer be any problems with wrapping around column 80, or anomalous
- results when printing an ANSI code while located in column 80, or
- overwriting the status line even if ANSI codes are used to move the
- cursor to the status line, or looking past the end of the string. Fixed
- problem with missing LF's during chat. Change RBBSSUB2 as follows:
-
- 3750 IF SendRemote THEN _
- CALL PutCom(WasX$)
- IF WasX$ = ZCarriageReturn$ THEN _
- CALL LPrnt (ZCrLf$,0) : _
- Col = Col - 1 : _
- GOTO 3850 _
- ELSE _
- CALL LPrnt (WasX$, 0)
-
- Went through and checked the other files to make sure that they meet BC's
- requirements, namely saving DI, SI, BP, DS, and ES. ES does not need to
- be saved for BC, but may need to be saved for QB. Updated QBARCV6 to
- recognize current PAK/SDN and ZIP compression methods. Also optimized
- XMODEM. Commented out unused code in BDRIVEC2. Since all of the
- routines were modified, they will all need to be verified again.
-
- Tested: FOSSCOMM, RBBSUTIL, ANSI19, FINDWORD, MOVCSTR.
- Unverified: PC-NET, BASNOV, 10-NET, RBBSDV, BDRIVEC2, XMODEM, RBBSHS,
- RBBSQBFS, QBARCV6.
-
- 0812: Went through FOSSCOMM and fixed possible problem with the FosWrite and
- FosRead routine. Also commented out the unused routines. Made data
- areas overlap to save a few bytes. This version not released.
-
- 0813: Modified FOSSCOMM to include the functionality of BYPASS.OBJ internally.
- BYPASS.OBJ comes with X00, and allows a program to directly call X00's
- INT 14h service routine, instead of calling whatever happens to be at INT
- 14h. Having the code built in to FOSSCOMM actually makes it slightly
- faster than the original code, even if a FOSSIL other than X00 is used.
- Calling X00 directly prevents a multitasker from trying to control the
- COM ports, and also removes the overhead of such attempts. I can add in
- the ability to directly access other FOSSILs if there is enough demand.
-
- Made RBBSQBFS work (for those who use QB). I am told that RBBSDV works,
- I forget who told me.
-
- I am still getting occasional lockups, and I have not been able to trace
- them as of yet.
-
- 0913: Fixed a bug in the RBBSFREE routine in RBBSUTIL.ASM reported by Dan
- Drinnon that I had accidentally introduced. Turns out that the lockups
- are caused by FOSSCOMM. People who do not use a FOSSIL don't experience
- lockups.
-
- 0118: Haven't had time to work on the FOSSCOMM stuff. Was contacted by William
- Gourley about having Jon Martin make the necessary changes to his own
- version of FOSSCOMM in hopes that he can stomp the lockup bug that I had
- not been able to track down. If you have any problems with this new
- version of FOSSCOMM, please either report in the MAPLE echo or directly
- to Jon Martin at 8:914/1. Remember to mention the date/time on the
- FOSSCOMM.OBJ file.
-