home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / CDOR0811.ZIP / DOCS.ZIP / BCFS.DOC < prev    next >
Encoding:
Text File  |  1993-04-25  |  9.6 KB  |  207 lines

  1. BCFS, January 18th version
  2. (C) 1992 by Scott McNay.  All Rights Reserved.
  3.  
  4. FidoNet: 1:395/11
  5. RBBSNet 8:928/9
  6.  
  7. BBS: 817-554-5331
  8.  
  9. I may be contacted via the MAPLE, RBBS_MAPLE, or RBBS-PC echos.
  10.  
  11.                                       -=-
  12.  
  13. FOSSCOMM provided by Jon Martin.
  14.  
  15. RBBSNet 8:914/1
  16.  
  17.                                       -=-
  18.  
  19. These mods are free for use by RBBS SysOps and are offered for inclusion with
  20. the stock RBBS release.
  21.  
  22.                                       -=-
  23.  
  24. BCFS is a mod to allow the /Fs switch of BC 7.x to be used when compiling RBBS,
  25. thus giving the sysop much more string space to work with, and also removing
  26. one of the restrictions on the RBBS developers.  The mod involves changes to
  27. nearly all of the assembler routines provided with RBBS.  These routines are
  28. backward compatible, allowing RBBS to be compiled without BC 7.x's /Fs switch.
  29. With the addition of RBBSQBFS.OBJ, RBBS can also be compiled with QB.  However,
  30. compiling with QB or without the /Fs switch will NOT give any advantage, aside
  31. from the bug fixes in ANSI19.
  32.  
  33. At this point, I have been unable to test all of the routines (SEE HISTORY AT
  34. BOTTOM FOR UPDATES!).  The routines that I have been able to test are QBARCV6
  35. (View command), RBBSUTIL (finding a file, uppercasing a string), ANSI19 (DOS
  36. screen output), MOVCSTR (creating ANSI string), and FINDWORD (find
  37. next/previous word on line).  The last two are part of ANSIED.  I have been
  38. unable to test RBBSHS (HearSay), BASNOV (Novell), RBBSDV (DesqView), PC-NET
  39. (PC-Net?), 10-NET (3-COM), BDRIVEC2 (Corvus), and XMODEM (Xmodem/Ymodem
  40. Checksum and CRC calculation).  Also, my system does not crash reliably with
  41. buggy versions of FOSSCOMM.  I would appreciate knowing if these routines work
  42. or not.
  43.  
  44. In case you're wondering how much free memory BASIC gets with this mod, here
  45. are some actual figures from my system:
  46.  
  47.    Free Temporary String Space = 65430
  48.    Free Common String Space = 57024
  49.    Free Local String Space = 61776
  50.    Free Far Space = 146512
  51.  
  52. It surprising to see MENU0 telling you that you have 64K of free string space.
  53. I got the report above by adding the following lines to the output of the
  54. Utilities Statistics command.  This code is in RBBS-PC.BAS in the stock code,
  55. and is in RBBSSUB5.BAS in Maple.  In Maple, the lines that these replace have
  56. the CINT function in them.  Remove it or else you may see negative numbers.
  57.  
  58.    CALL LPrnt ("Free Temporary String Space = "+(STR$(FRE("A"))),1)
  59.    CALL LPrnt ("StackSpace = "+  (STR$(FRE(-2)) + " bytes"),1)
  60.    CALL LPrnt("Free Common String Space ="+ (STR$(FRE(ZWASZ$))),1)
  61.    CALL LPrnt("Free Local String Space ="+ (STR$(FRE(WASZ$))),1)
  62.    CALL LPrnt("Free Far Space ="+ (STR$(FRE(-1))),1)
  63.  
  64. To implement these mods, just copy the .OBJ files over the original .OBJ files
  65. and add '/Fs' to the command line for BC 7.x for ALL of the .BAS files.  Then,
  66. update your LINK response file to say "ANSI19" instead of "ANSI17".  If you use
  67. QB, these mods will NOT help, but may be added anyway, in which case
  68. RBBSQBFS.OBJ must be added to the list of files to link.  In case it isn't
  69. clear: RBBSQBFS.OBJ _MUST_ be used with QB and _MUST_NOT_ be used with BC 7.x.
  70. Here is an example:
  71.  
  72.    @echo on
  73.    bc /Fs /O /FPi /Ot /MBF /s rbbs-pc;
  74.    bc /Fs /O /FPi /Ot /MBF /x rbbssub1;
  75.    bc /Fs /O /FPi /Ot /MBF    rbbssub2;
  76.    bc /Fs /O /FPi /Ot /MBF    rbbssub3;
  77.    bc /Fs /O /FPi /Ot /MBF    rbbssub4;
  78.    bc /Fs /O /FPi /Ot /MBF    rbbssub5;
  79.    ; Next 5 lines are for Maple and/or ALIAS, DOORSYS, ANSIED, RCHAT, ANSICHAT
  80.    bc /Fs /O /FPi /Ot /MBF    alias;
  81.    bc /Fs /O /FPi /Ot /MBF    doorsys;
  82.    bc /Fs /O /FPi /Ot /MBF    ansied;
  83.    bc /Fs /o /FPi /Ot /MBF    Rchat300;
  84.    bc /Fs /o /FPi /Ot /MBF    ansichat;
  85.    Link @LINK.dat;
  86.  
  87. LINK.DAT would be something like:
  88.  
  89.    rbbs-pc+rbbssub1+rbbssub2+
  90.    rbbssub3+rbbssub4+rbbssub5+
  91.    fosscomm+pc-net+basnov+10-net+rbbsdv+
  92.    bdrivec2+givebk31+rbbsutil+ansi19+        < Change ANSI17 to ANSI19
  93.    qbarcv6+xmodem+rbbshs+                    < For stock code ONLY
  94.    rbbsqbfs+                                 < For QB _ONLY_
  95.    rchat300+                                 < For Maple/internode chat only
  96.    alias+                                    < For Maple/Alias mods only
  97.    doorsys+                                  < For Maple/DOOR.SYS mods only
  98.    ansichat+                                 < For Maple/ANSIChat only
  99.    ansied+findword+movcstr,                  < For Maple/ANSIED only
  100.    ,,/STACK:1024/NOE;
  101.  
  102.  
  103. Verification of proper operation: RBBS should be compiled both with and without
  104. the /Fs option, and the routines checked both ways.  If the routines work in
  105. one case and not the other, that will help me find the problem.
  106.  
  107.  
  108. History:
  109. 0726: Initial release
  110.       Tested: FOSSCOMM, RBBSUTIL, ANSI17, QBARCV6, FINDWORD, MOVCSTR
  111.       Unverified: PC-NET, BASNOV, 10-NET, RBBSDV, BDRIVEC2, XMODEM, RBBSHS,
  112.          RBBSQBFS.
  113.  
  114. 0728: Updated from ANSI17 to ANSI18, forwarded by Dan Drinnon, and VERY heavily
  115.       optimized it.  Also fixed a bug that's been around for a while in which
  116.       lines that go past the right end of the screen get cut off instead of
  117.       wrapping, so that your display will now look more like that of the users.
  118.       Made a booboo while assembling the files.  The 0726 OBJ files WILL work
  119.       ok, in spite of the errors reported.  The 0728 update contains new .OBJ
  120.       files that will not give error messages.
  121.  
  122. 0729: IGNORE THE FOLLOWING.
  123.      |BCFS0728 took care of lines getting cut off at column 80 on the sysop
  124.      |side.  0729 modifies ANSI18 to return a count of the number of line
  125.      |wraps, allowing RBBS to keep a more accurate line count.  RBBSSUB2 needs
  126.      |to be modified for this.
  127.  
  128.      |In LPrnt, replace:
  129.      |        CALL ANSI(ZCrLf$,ZWasCL,ZWasCC) : _
  130.      |with:
  131.      |        CALL ANSI(ZCrLf$,ZWasCL,ZWasCC,T) : _                  'BCFS0729
  132.      |        ZLinesPrinted = ZLinesPrinted + T : _                  'BCFS0729
  133.  
  134.      |In PScrn, replace:
  135.      |   ELSE CALL ANSI (Strng$,ZWasCL,ZWasCC) : _
  136.      |with:
  137.      |   ELSE CALL ANSI (Strng$,ZWasCL,ZWasCC,T) : _                  'BCFS0729|
  138.      |      ZLinesPrinted = ZLinesPrinted + T : _                  'BCFS0729
  139.  
  140.      |In SkipLine, replace:
  141.      |        CALL ANSI(ZCrLf$,ZWasCL,ZWasCC) : _
  142.      |with:
  143.      |        CALL ANSI(ZCrLf$,ZWasCL,ZWasCC,T) : _                  'BCFS0729
  144.      |        ZLinesPrinted = ZLinesPrinted + T : _                  'BCFS0729
  145.  
  146. 0801: Ignore BCFS0729.  The changes in it are either not needed any more or
  147.       won't always work as intended.
  148.  
  149.       Rewrote ANSI() completely, renaming it to ANSI19.ASM.  There should no
  150.       longer be any problems with wrapping around column 80, or anomalous
  151.       results when printing an ANSI code while located in column 80, or
  152.       overwriting the status line even if ANSI codes are used to move the
  153.       cursor to the status line, or looking past the end of the string.  Fixed
  154.       problem with missing LF's during chat.  Change RBBSSUB2 as follows:
  155.  
  156.       3750 IF SendRemote THEN _
  157.               CALL PutCom(WasX$)
  158.            IF WasX$ = ZCarriageReturn$ THEN _
  159.               CALL LPrnt (ZCrLf$,0) : _
  160.               Col = Col - 1 : _
  161.               GOTO 3850 _
  162.            ELSE _
  163.               CALL LPrnt (WasX$, 0)
  164.  
  165.       Went through and checked the other files to make sure that they meet BC's
  166.       requirements, namely saving DI, SI, BP, DS, and ES.  ES does not need to
  167.       be saved for BC, but may need to be saved for QB.  Updated QBARCV6 to
  168.       recognize current PAK/SDN and ZIP compression methods.  Also optimized
  169.       XMODEM.  Commented out unused code in BDRIVEC2.  Since all of the
  170.       routines were modified, they will all need to be verified again.
  171.  
  172.       Tested: FOSSCOMM, RBBSUTIL, ANSI19, FINDWORD, MOVCSTR.
  173.       Unverified: PC-NET, BASNOV, 10-NET, RBBSDV, BDRIVEC2, XMODEM, RBBSHS,
  174.          RBBSQBFS, QBARCV6.
  175.  
  176. 0812: Went through FOSSCOMM and fixed possible problem with the FosWrite and
  177.       FosRead routine.  Also commented out the unused routines.  Made data
  178.       areas overlap to save a few bytes.  This version not released.
  179.  
  180. 0813: Modified FOSSCOMM to include the functionality of BYPASS.OBJ internally.
  181.       BYPASS.OBJ comes with X00, and allows a program to directly call X00's
  182.       INT 14h service routine, instead of calling whatever happens to be at INT
  183.       14h.  Having the code built in to FOSSCOMM actually makes it slightly
  184.       faster than the original code, even if a FOSSIL other than X00 is used.
  185.       Calling X00 directly prevents a multitasker from trying to control the
  186.       COM ports, and also removes the overhead of such attempts.  I can add in
  187.       the ability to directly access other FOSSILs if there is enough demand.
  188.  
  189.       Made RBBSQBFS work (for those who use QB).  I am told that RBBSDV works,
  190.       I forget who told me.
  191.  
  192.       I am still getting occasional lockups, and I have not been able to trace
  193.       them as of yet.
  194.  
  195. 0913: Fixed a bug in the RBBSFREE routine in RBBSUTIL.ASM reported by Dan
  196.       Drinnon that I had accidentally introduced.  Turns out that the lockups
  197.       are caused by FOSSCOMM.  People who do not use a FOSSIL don't experience
  198.       lockups.
  199.  
  200. 0118: Haven't had time to work on the FOSSCOMM stuff.  Was contacted by William
  201.       Gourley about having Jon Martin make the necessary changes to his own
  202.       version of FOSSCOMM in hopes that he can stomp the lockup bug that I had
  203.       not been able to track down.  If you have any problems with this new
  204.       version of FOSSCOMM, please either report in the MAPLE echo or directly
  205.       to Jon Martin at 8:914/1.  Remember to mention the date/time on the
  206.       FOSSCOMM.OBJ file.
  207.