home *** CD-ROM | disk | FTP | other *** search
-
- *************** PCBoard (R) 14.2 Beta Code ******************
-
- Why 14.2 Beta?
- --------------
- PCBoard 14.2 Beta code is being released in order to check out
- some of the new features we are implementing in the current
- 15.0 'C' code. In order to verify several of the new features
- we are placing in the 15.0 code, we are releasing a 14.2
- version, still compiled under QB1.0, in order to obtain some
- feedback on the implementation of the new routines. Since the
- placing of many of these routines in the current code make it
- quite large, some folks may not have enough memory available
- to run the 14.2 code under a multitasking environment. We
- apologize to any of you who are not able to squeeze this code
- into your environemt. However, in order to test out some of the
- new features we have planned for 15.0, it was necessary to allow
- the size of the 14.2 Beta code to increase. The 15.0 code will
- be much more compact and provide much better support for our
- multitasking users than does the 14.2 Beta code. Again, the
- Beta code is large in order to test out the procedures and 'feel'
- of the upcoming 15.0 code. It is not intented to be a production
- release of the software.
-
- This 14.2 code is being written in parallel with 15.0 in
- order to obtain your feedback on the new features - since it
- is much easier for us to check out a new function in the current
- working code, rather than having to wait for the 15.0 code to go
- on-line here at Salt Air. We would like to have included some
- of the other new items you will see when 15.0 is released -
- such as the ability to define several of the operating parameters
- associated with the new functions. However, due to limited code
- space and our desired to keep 14.2 as close to a direct replacement
- of 14.0/14.1 as possible, we have to hold off on those items
- until 15.0 comes out. However, some items are definable with
- the new code using SET PCB statements, etc. to get you by
- until 15.0 begins testing. At that time, many more parameters
- will be definable inside PCBSetup. Please be patient and
- understand why some of the features have to be held off.
-
- If you decide to check out the 14.2 beta, be sure to keep
- accurate information on any problem you may have and pass them
- along to us in a timely manner. Please, if you are reporting
- a problem with the code, first read all mail to see if your
- problem has already been taken care in the new code posted.
- Also, when reporting problems, it is imperative that you
- include the date and time of the code you are running, and
- whether it is the EMS or non-EMS version.
-
-
- Updating to This Code
- ---------------------
- To update, simply replace your current PCBOARD.EXE file with
- the one included.
-
-
- *** CAUTION ***
- Be sure to keep a copy of your old file available in case of
- problems.
-
- *** CAUTION ***
- This version of the code opens from 2-4 more files per
- node than previous versions. If you get a lot of drive
- errors when running this code, or really strange behaviour
- when trying to log into your system, you are most likely
- out of available file handles and should increase your
- FILES statement in your CONFIG.SYS file.
-
- Also required for this version of the code is a new MKPCBTXT.EXE
- file which must be used to add the necessary new records to your
- current PCBTEXT file. To add the new records, simply run the new
- MKPCBTXT.EXE program. The program will automatically create the
- new records in your current PCBTEXT file without changing any of
- your current entires.
-
- Second, you must alter your current PCBPROT.DAT file and change
- any DSZ file entries to a 'D' protocol vs a 'S' protocol. NOTE:
- You are not changing the procotol selection letter. You are
- altering the 'I'nternal vs 'S'hell letter to a 'D' for only those
- entries which are referencing DSZ. (See below for more details).
-
-
- DSZ Batch Download Support
- --------------------------
- This code supports batch file transfers when using the DSZ
- module by Chuck Forsberg. The DSZ module is currently the only
- external protocol module which is supported in batch mode.
-
- To activate batch mode on your system, make sure you have
- obtained the current MKPCBTXT.EXE file and added the
- necessary records to the end of your current PCBTEXT file.
- New records include some for the scroll back buffer operation
- as well as messages needed for batch operation. Failure to
- add the new records to your current PCBTEXT file can cause
- erroneous code operation.
-
- Next, you must slightly alter your current PCBPROT.DAT file.
- In the file where you currently have an 'S' next to a DSZ
- module protocol, simply change the letter to 'D'. Leave
- all other 'S' and 'I' entries as is. CAUTION: DO NOT
- CHANGE A NON-DSZ LISTING TO A 'D'! IF YOU DO, THAT MODULE
- WILL NO LONGER WORK! The 'S' we are referring to here is the
- 'S' used to define a SHELL protocol - *NOT* the protocol
- selection letter S.
-
- Here is an example of what we are talking about:
-
- PCBPROT.DAT (Old Format)
- ------------------------
- A,I,128,Ascii (Non-Binary)
- X,I,128,Xmodem (Checksum)
- C,I,128,Xmodem-CRC (CRC)
- O,I,1024,1K-Xmodem (PCBoard Ymodem)
- F,I,1024,1K-Xmodem-G (PCBoard Ymodem-G)
- G,S,1024,Ymodem/G (DSZ - Batch OK)
- B,S,1024,Ymodem (DSZ - Batch OK)
- Z,S,1024,Zmodem (DSZ - Batch OK)
- K,S,128,Kermit (PCKermit/Columbia U)
- N,I,0,None
-
- PCBPROT.DAT (New Format)
- ------------------------
- A,I,128,Ascii (Non-Binary)
- X,I,128,Xmodem (Checksum)
- C,I,128,Xmodem-CRC (CRC)
- O,I,1024,1K-Xmodem (PCBoard Ymodem)
- F,I,1024,1K-Xmodem-G (PCBoard Ymodem-G)
- G,D,1024,Ymodem/G (DSZ - Batch OK) <- note change from S to D
- B,D,1024,Ymodem (DSZ - Batch OK) <- note change from S to D
- Z,D,1024,Zmodem (DSZ - Batch OK) <- note change from S to D
- K,S,128,Kermit (PCKermit/Columbia U)
- N,I,0,None
-
- If you forget to alter your PCBPROT.DAT file a caller,
- when requesting a batch transfer, will simply be advised
- that no batch protocols are available.
-
- Make sure you have a late version of DSZ.COM which
- properly supports the '@x:[filename]' command line prompt -
- since that is what the code uses to pass batch filenames to the
- module. If you have an older version of DSZ, none of your
- batch transfers will execute. Instead, when the DSZ batch
- file is executed, DSZ will issue the message that there was
- an error in the command line.
-
- NOTE: The code fully supports the use of the DSZLOG file
- and is *required* for use. You should place a statement in
- your BOARD.BAT file which reads:
-
- SET DSZLOG=[filename]
-
- You can specify any filename you like. However, in order for
- the code to function properly, you must have a SET DSZLOG=
- statement active in your environment. If you run out of
- environment space, place the following command in your
- CONFIG.SYS file and reboot:
-
- shell=c:\command.com /e:1024 /p
-
- This will insure you have enough environment space.
-
- When PCBoard executes a DSZ transfer protocol, it will scan
- the DSZLOG file upon completion for certain information such
- as CPS rate, bytes transfered, etc. When done scanning the file,
- PCBoard will erase it. Therefore, if you use a DSZLOG file for
- other programs, or you want to keep a continual log of the
- files transfered using DSZ, you should reset your DSZLOG=
- parm to some other filename than the ones you currently use -
- specifying a spearate log file for each program. If you wish
- to save the PCBoard DSZ log file, place a statement in each of your
- DSZ protocol batch files (such as your PCBSZ.BAT file) which
- reads:
-
- copy [filename] >> [filename.old]
-
- This will continually append the current file to an archive one
- if you desire. Note that all DSZ protocol's - whether downloads
- or uploads - will now be tracked by PCBoard through the use of
- this file. You can, if desired, remove all 'pcberr.fil'
- logic from your DSZ batch files.
-
-
- Selecting Batch Downloads
- -------------------------
- To select batch mode, enter (DB) at the command line. (Note
- that only DSZ batch downloads are currently supported.) If you
- have already selected one of the DSZ protocols, you will
- immediately be asked for the first filename. If your
- current protocol is not a DSZ module one, you will be asked
- to select from those which have been marked with a 'D'
- inside PCBPROT.DAT.
-
- The code defaults to a maximum of 10 files during any given
- batch request. This number can be decreased to a low of 1 or
- a high of 30 files. To reset the default of 10 files per
- request, use the following statement in your environment:
-
- SET PCB=/BLIM:xx
-
- where 'xx' above can be a number from 1 to 30
-
- Also provided is an automatic logoff mechanism when the
- transfer is complete.
-
- Stacked filenames are permitted in any order on the command line.
- This includes both the protocol requested as well as the files
- desired. Please note that the caller can only make one stack request.
- Additionally, they can place the command (GB) or (BYE) in the
- command line and the code will automatically hang them up after
- the transfer completes. Additionally, if the caller does not
- enter your default (V) extension in a filename to download,
- the code will first search for an exact match on the filename
- entered, followed by a subsequent search for the file with your
- default extension included. NOTE: The (GB) or (BYE) command will
- also work with internal or single file transfers as well. All that
- is required is that the command be stacked with another download
- command sequence.
-
- If auto-disconnect is selected, the caller will have 10 seconds
- after the batch transfer finishes to change their mind and
- continue before the auto-disconnect occurs. If they wish to
- cancel the auto-logoff sequence, they must press (Ctrl+K).
-
- Again, about all you need do is update your current PCBTEXT file
- and change your PCBPROT.DAT file accordingly. All other batch
- files remain 'as-is'.
-
-
- Scroll Back Buffer Size
- -----------------------
- To activate a scroll back buffer, use the following environment
- setting:
-
- SET PCB=/MAX:xxx
-
- where 'xxx' can be from '023' to '255'
-
- Note that when running a /U version, the maximum you will be
- able to set this to is about 180 lines due to memory constraints
- when reading in the USERNET.DAT file. If the above statement
- is missing from your environment, no buffer will be allocated.
- Setting 'xxx' to any number less than 23 will disable the buffer.
- The default for the buffer is off. You must use the above
- statement to activate it.
-
-
- Free Data Segement Memory Display
- ---------------------------------
- At the bottom right of your screen next to the '(Home)=Help'
- text you will see a value in 'K'. This is free data segment
- memory space available. Due to the dynamic nature of the code's
- operation, you should have at least 8K always showing for
- reliable operation. If that number falls below 8K, decrease the
- number of scroll back lines above or totally erroneous code
- operation will occur - such as 'Insufficient Memory' errors,
- not being able to log onto your system, not finding a user in the
- USERS file, etc. Again, you should not attempt to operate with
- less than 8K showing at all times.
-
- For multitasking users, the 'K' value can be used to gauge your
- available memory for SHELL functions and scroll back buffer size.
- In order to determine whether you have sufficient memory in which
- to perform a SHELL function, use the following procedure:
-
- (1) Do NOT use a SET PCB=/MAX:xxx statement for this test
- (2) Run CHKDSK and make a note of your available free memory
- (3) Load PCBoard and logon
- (4) Write down the 'K' value at the bottom of your screen
- (5) Exit from PCBoard
- (6) Subtract the 'K' value above from 64.
- (7) Add the result above to the size of the PCBoard code you
- are running
- (8) Subtract the new total obtained in (7) above from your free
- memory available from item (2). This final figure is an
- approximation of the true free memory you have available for
- that node.
- (9) If you add in a SET PCB=/MAX:xxx statement, recalculate your
- true memory figure again.
-
- If you get an '_C error in PCBS1 at xxxx:xxxx' message when running the
- code, you do not have sufficient free memory available and must adjust
- your memory requirements accordingly - inlcuding scroll back buffer
- size, etc.
-
-
- Operating the Scroll Back Buffer
- --------------------------------
- The scroll back buffer is only operational when logging on in local
- mode. It is not available if a caller has dialed into the node.
-
- *** CAUTION ***
- Attempting to activate the scrollback buffer while a caller is
- online may result in accidentally altering the caller's available
- system time.
-
- The buffer can be viewed by pressing the (UpArrow) or (Ins) keys.
- Status information on the size of the buffer will be displayed at the
- bottom of the screen. A block cursor will indicate your position
- in the buffer. You can use all cursor control keys to move around
- the file, including:
-
- (Up Arrow) Up One Line
- (Down Arrow) Down One Line
- (Left Arrow) Left One Position
- (Right Arrow) Right One Position
- (Home) Beginning of Line
- (End) End of Line
- (PgDn) Up 23 Lines
- (PnUp) Up 23 lines
- (Ctrl+Home) Beginning of Buffer
- (Ctrl+End) End of Buffer
-
- To exit the scrollback buffer, press (Esc).
-
- You can 'tag' any text in the buffer to merge into a message. You
- must be in message entry mode (i.e. actually entering text via
- a reply, enter, or comment command). Press (Ins) to activate the
- scroll back buffer. Place the cursor at the beginning point of the
- text you wish to merge and press your (Space) bar. Next, move the
- cursor to end the the text you wish to move and again press (Space).
- The area between the two positions will be highlighted as the text
- which will be merged. If you wish to 'detag' the text just tagged,
- simply press (Space) again.
-
- Text tagged for merging will automatically be merged when (Esc) is
- pressed. You can only 'tag' one block of text at a time since the
- code will reflow the block as it is merged into a message.
-
- NOTE: The code will not allow you to tag text for merging unless
- you are in message entry mode. You can review the buffer at any
- time however.
-
- NOTE: If you are running the standard code and perform a SHELL
- function such as (F5), etc, your scroll back buffer will be
- lost. If you are running the EMS code, your buffer will be
- retained even during SHELL functions. However, screen displays
- during the SHELL will not be part of the buffer.
-
-
- EMS Code Now Works With Many More Systems
- -----------------------------------------
- The EMS code now works with most network operations. The
- EMS code maintains the current command line parameters of:
-
- SET PCB=/NOEMS (disables EMS memory swap - forces disk)
- SET PCBSHELL=[filename] (instead of default PCB.SAV in current dir)
-
- The SET PCBSHELL=[filename] allows you to specify a given disk
- swap file instead of the default file of PCB.SAV in your current
- directory. This allows you to swap out to a RAM disk, or in the
- case of a diskless workstation, the file server.
-
- There is one other precaution when using the EMS code in conjunction
- with SHELL protocol modules such as PCKermit. If you are currently
- using the program SH.EXE in order to provide for file sharing, etc.,
- you need to modify your command line and place a '0' after the SH
- command. For example, if your current PCBSK.BAT file read as follows
- you should change it to the new example below:
-
- Current File
- ------------
- echo off
- if exist pcberr.fil del pcberr.fil
- sh 1 pckermit.exe -b %2 -m 31 -p n -s %3 -c
- if errorlevel 1 goto bad
- goto end
- :bad
- copy pcberr.old pcberr.fil
- :end
-
- New File
- --------
- echo off
- if exist pcberr.fil del pcberr.fil
- sh 0 pckermit.exe -b %2 -m 31 -p n -s %3 -c
- if errorlevel 1 goto bad
- goto end
- :bad
- copy pcberr.old pcberr.fil
- :end
-
- Note the change to the third line of the new file where the 'sh 1'
- has been replaced with 'sh 0'. This will prevent a system lockup
- upon completion of the SHELL protocol.
-
- The EMS code will require approximately 280K of free EMS memory in
- order to swap out to memory. Otherwise it will swap to disk to the
- PCB.SAV file, or optionally the file and location you have specified
- in your SET PCBSHELL= statement. The SET PCBSHELL= statement is not
- required. To force disk swapping, use the SET PCB=/NOEMS parm.
-
-
- Choosing Between EMS and non-EMS Code
- -------------------------------------
- What is EMS code? It is code that allows you to access EMS (expanded)
- memory during SHELL routines. If EMS memory if not available,
- it will make use of a disk swap routine instead. The actual
- memory (EMS or disk) is only used when PCBoard performs a SHELL
- function - such as when pressing (F5), Sysop Function (10), or
- when executing either a SHELL protocol or an (F) (V) command.
-
- Does this mean I can use the memory from 640K to 1 meg for this?
- Most probably not. That memory is not usually EMS memory. In
- order to have EMS memory, you either need specific hardware, or
- a product like QEMM or 386MAX which converts 386 class machine
- extended memory to expanded memory.
-
- Standard Code Summary (non-EMS)
- -------------------------------
- The advantage of using the non-EMS or standard code is that if
- you do not have any EMS memory in your system, this version will
- provide the fastest SHELL funtions. During all SHELL functions,
- the code will remain in memory during the activity.
-
- The disavdantages are that during SHELL functions while in local
- mode, your scroll back buffer is lost. Also, the SHELLED TO
- function is 'added' to the current code's memory requirements.
- This means if you wish to SHELL to a program which requries 100K
- to operate, you would need at least 320K or so of free memory
- in order for the SHELL to function properly.
-
- EMS Code Summary
- ----------------
- The advantage of using EMS code is that although the physical
- program size is larger, less memory is required during SHELL
- functions. This is true whether you are swapping to EMS memory
- or to physical disk. If you have at least 300K of free EMS
- memory on your system, your disk swaps will be as fast as the
- non-EMS code above. In either case of a disk or EMS swap, you
- will have virtually all of you free low memory availble for the
- SHELL. This means that PCBoard systems running in a multitasking
- environment will now be able to SHELL to external protocols
- without problems. Another advantage of the EMS code is that
- your scroll back buffer is not lost when running the EMS code.
-
- The disadvantage of the EMS code is that if you do not have any
- free EMS memory, the disk swapping will take considerably longer
- to perform that either of the above - possibly creating excessive
- delays on your system.
-
-
- Checks BLT Update Different
- ---------------------------
- The message 'Bulletins have been updated since last call' is
- only displayed if the date and time of the respective BLT file
- is newer than the caller's last date and time on.
-
-
- New Random Access CNAMES File
- -----------------------------
- When 14.2 loads, it will look for a file called CNAMES.$$$ which
- is automatically created by the code in the same location as your
- CNAMES file. If it is not found, it will create it. If it finds
- the file to be older than your current CNAMES file, it will be
- updated. The new file is used during all 14.2 operation to free
- up additional memory for the above operations. Do not delete the
- file during SHELL operations or erractic operation will occur. The
- file can be deleted at any other time however if you wish to
- generate a new one. Again, the building and maintenance of the
- file is completely automatic.
-
-
- Substitute '@' Commands
- -----------------------
- This version will begin to support many '@' substitute text commands.
- When the code encounters one of the commands below in a text string
- for display, it will replace the command with the corresponding
- data from the system. Note that the commands must be entered in
- caps in order to function.
-
- @USER@ - complete name of the caller (first & last - all caps)
- @FIRST@ - first name of the user (first letter captialized)
- @CITY@ - city and state of caller (all caps)
- @DATAPHONE@ - caller's business/data phone number
- @HOMEPHONE@ - caller voice phone number
- @SECURITY@ - users current security level including conf. add.
- @EXPDATE@ - subscription expiration date
- @LASTDATEON@ - last date on (mm-dd-yy format)
- @LASTTIMEON@ - last time on (hh:mm format)
- @NUMTIMESON@ - number of times on system
- @INCONF@ - conference the caller is currently in
- @DLBYTES@ - total bytes downloaded - all calls
- @DLFILES@ - total files downloaded - all calls
- @UPBYTES@ - total bytes uploaded - all calls
- @UPFILES@ - total files uploaded - all calls
- @TIMELIMIT@ - time allowed from PWRD file
- @TIMELEFT@ - time remaining that call incl. all credits, etc.
- @TIMEUSED@ - minutes used since logon
- @BYTELIMIT@ - bytes allowed from PWRD file
- @BYTESLEFT@ - remaining bytes available for download for that day
- @DAYBYTES@ - bytes downloaded so far that day
- @SYSTIME@ - host system in in (hh:mm format)
- @SYSDATE@ - host date in (mm-dd-yy format)
- @BOARDNAME@ - the name of your BBS
-
- For example, a message addressed to @USER@ would result in the
- users name appearing in the 'To:' field when the message is displayed
- to them - giving the message a more personalized touch even though it
- is a 'generic' message. Note that the user's name will appear in
- all capital letters.
-
- The @USER@ command can only be entered at the 'To:' message prompt
- by the sysop. Regular system callers can not use the @USER@ command
- when addressing mail.
-
-
- When to Address a Message to @USER@
- -----------------------------------
- There may be a tendency to over-work the use of the @USER@ capability
- instead of using the "ALL" header. You should consider only using the
- @USER@ parameter when placing a message on your system which is personal
- in nature, but needs to be read by all. When leaving such a message,
- you should assign the message Sender Password protection so that the
- first caller does not delete the message on you. Since the code will
- treat an @USER@ message as being addressed to that specific individual,
- all the normal read and kill privileges are in effect for that message.
-
- CAUTION: DO NOT address mail using the @USER@ or other substitute
- commands when echoing or transferring mail in a net_mail environment, as
- erroneous message transferring operation can occur!
-
-
- Other Changes/Additions
- -----------------------
-
- Message Read (A)ll, (C)apture, (D)ownload Subcommands
- -----------------------------------------------------
- The code now supports an (A)ll subcommand when reading mail. If you
- select (A)ll for your mail read functions, all message bases will be
- checked for your request. For example, a command of (R) (A) (S) will
- read all mail in all conferences since your last time on. Note that
- an (A)ll subcommand will automatically perform a (S)ince read if no
- other starting number options are specified. Hence, the above command
- can be shortened to (R) (A) if desired.
-
- The (C)apture subcommand indicates that the caller wishes to capture
- the screen output to a disk file for automatic download. During the
- capture process, only dots will show on the screen as the command
- progresses.
-
- The (D)ownload subcommand can be stacked with the above to automatically
- initiate the download upon completion of the capture.
-
- The (GB) or (BYE) subcommand can also be used in combination of the above.
- When either is stacked along with a (C)apture subcommand, the automatic
- (D)ownload parameter is assumed.
-
- Here are some examples:
-
- r a c <- read+all+since+capture, will be asked to download
- r a d <- same as above, except download starts immediately
- r y s d <- read+your+since+capture, automatic download
- r a c gb <- read+all+since+capture+download+automatic goodbye
-
- If the caller has not already defined a default protocol, the code will
- ask them for the protocol to use before beginning the transfer. Currently
- all capture information is in straight ASCII text. The file which will
- be created will not be in ZIP or ARC format.
-
- Capture files downloaded will not be counted against a caller's d/l
- limit or total number of downloaded files. The capture files themselves
- are temporarily created in your default '\pcb' drive location in the
- format of [caller number]+.'CAP'. In other words, if a caller were
- caller number 35689 on your system, the file created will be called
- 35689.CAP. If you wish to specify an alternate location for the file
- (note, you can alter the location where the file is created - not the
- name of the file), use the following SET statement in your environment:
-
- SET PCBCAP=[location]
-
- For example, to have the file created on drive D: in a subdirectory
- called WORK, your set statement above would read:
-
- SET PCBCAP=D:\WORK\
-
- Don't forget the trailing backslash and *do not* include a filename!
- This file is only present on disk during the capture procedure.
- Once the download has been completed or cancelled, the file is removed.
-
- If a capture session is aborted, the caller's last message read pointers
- are restored to their previous values prior to the capture request.
-
- We have been asked why we are not 'ZIPPING' or 'ARCING' up the text to
- be sent. The answer is quite simple - we lack the code space to do
- so in 14.2. If we were to include that feature, it would mean that
- virtually none of our multitasking users would be unable to run the
- 14.2 code. For 15.0 we *will* have procedures in place which can
- compress a capture file before sending it. Again though, for 14.2
- that feature will not be available.
-
-
- Definable Output Text Filename
- ------------------------------
- When using the (Alt+F) command to output text to a file, the code
- will now ask for the filename to use rather than defaulting to the
- location and name + ".txt" of the current message base. You must
- have properly edited your PCBTEXT file using the new MKPCBTXT.EXE
- program in order to obtain the proper prompt on your screen when
- pressing (Alt+F).
-
-
-
- Notes
- -----
- A couple of other notes.
-
- (1) Some of the high speed modems do not like a 'bad' 7-E-1 connect
- (which involves a great deal of line noise), followed by an immediate
- loss of carrier on the remote end. In those cases, the modem can 'hang',
- causing PCBoard to loose control of the modem's functions. If you
- experience modem 'hangs' (which can be cleared by turning off/on the
- modem, it is suggested you disable 7-E-1 callers by setting the flag
- inside the Modem Information screen of PCBSetup to (Y) - do not allow
- 7-E-1 callers.
-
- (2) A number of sysops are still attempting to run either one or both
- nodes of a multitasking system ay 19200 or above. In many cases, this
- can cause erroneous code operation, loss of interrupt control, and system
- lockup due to the fact that the multitasking software can not handle
- interrupt control at anything above 9600. Again, if you are attempting
- to run either one or both nodes of a multitasking system above 9600 bps,
- your system nmay be unreliable and the only 'cure' is to lower your port
- speed down to 9600.
-
-
-
- Other small cosmetic changes have been made as well.
-
- (C) Copyright Clark Development Company, Inc - 1989
- PCBoard (R) - Registered Trademark - Clark Development Company, Inc.
- All Rights Reserved