home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
RIPKT100.ZIP
/
RIPKIT.ZIP
/
FLAG32.ZIP
/
FLAG.HIS
< prev
next >
Wrap
Text File
|
1994-01-17
|
17KB
|
314 lines
Update History for FLAG.PPS
NOTE: The numbers in parentheses, after each item in the history, represents
lines in the CURRENT source code that correspond with the changes that are
being described. This level of detail is included in the HISTORY solely for
the benefit of programmers (even those learning to program) who want to try to
understand the changes being made and why they were made.
IMPORTANT: The line numbers shown are only good so far as changing from one
version number to the next. Example: The line numbers shown under the
version 2.0 release notes are INVALID for the version 2.1 release because
version 2.1 added information up near the top of the file shifting everything
down. In order to properly compare previous source code changes by line number
you will need to obtain a copy of that release and compare it to the release
before it.
Version 3.2 released on 01/17/94
--------------------------------
- One more fix to PREFILER which was not allowing the files displayed on the
very first screen to be "flagged" with a mouse.
Version 3.1 released on 12/28/93
--------------------------------
- Found that the copy of PREFILER inside of FLAG30.ZIP was dated 11/11/93 when
it should have been the one dated 11/13/93 which contained some fixes in it.
Updated *just* the PREFILER file.
Version 3.0 released on 12/18/93
--------------------------------
- WARNING! To use version 3.0 you *must* be using PCBoard v15.1. At the time
of this writing, PCBoard v15.1 is in wide area beta and can be downloaded
from the Salt Air BBS via the BETA door.
- The goals for this release of FLAG.PPE were: 1) reduction of code size and
the number of .PPE files required, 2) increase in speed, 3) addition of
foreign language support, 4) addition of RIPscrip support, and 5) a few
examples of new items in PPL 2.0 (included in PCBoard v15.1). These goals
have been accomplished in the following changes:
1) Reduction of code size was done mostly by taking advantage of new commands
in PPL 2.0. Some functions that were previously implemented via PPL
source code are now wired into PCBoard and available to all PPL programs
without having to duplicate the source code.
Lines 390-431 replace what was formerly in lines 290-349. The interesting
thing is that there were a total of 42 non-comment lines in the previous
version and there are only 23 lines of non-comment lines in this version.
In other words, what formerly required 42 lines of PPL source code has
been reduced to just 23 lines of PPL source code *AND* at the same time
those 23 lines have the added ability of handling RIPscrip.
Further reduction in the PPE file size was accomplished by eliminating
some of the variables that were being used and were no longer needed.
Also, the PPE file size was reduced by using the /NOUVAR switch on the
PPLC command line. (see COMPILE.BAT for compiling FLAG.PPE)
Only one FLAG.PPE is included now (FLAG2.PPE is no longer required).
This is because PCBoard v15.1 has been modified so that the flagging
"more?" prompt is no longer issued *unless* there are filenames on the
screen to be flagged. In addition, v15.1 was modified so that AFTER a
file display, if there are filenames on the screen that can be flagged,
PCBoard will issue an extra flagging "more?" prompt.
NOTE: If you previously used FLAG v2.x then you can now UN-install the
FLAG2.PPE file from your PCBTEXT file. This is done by using
MKPCBTXT and pressing F3 to get to records 223 and 585. Once in
the record, press F4 to restore the default text.
2) Speed increases came about in the form of a) load-time, b) run-time. The
reduction in load-time was a byproduct of the size reduction mentioned
above. Also, by virtue of PCBoard v15.1 only displaying a flagging
"more?" prompt when necessary, it avoids loading FLAG.PPE only to
immediately unload it due to not finding any files to flag.
The run-time speed was improved by jumping out of the PPE at an earlier
time (if it was not needed) and by using PPL 2.0 statements to scan the
screen. The new PPL 2.0 statements call functions of PCBoard v15.1 which
are compiled down to machine code and operate faster than native PPL
statements that accomplish the same thing.
3) The addition of foreign language support was accomplished by moving the
display prompts out to files called FLAGOLD, FLAGNEW and FLAGBAR. These
files display the old prompt, the new prompt, and the flag bar. Each of
these files are displayed using DISPFILE with the "LANG" parameter which
tells PCBoard to search for language-specific versions of the files. For
example, if the caller is using the German language, the files
FLAGOLD.GER, FLAGNEW.GER, and FLAGBAR.GER will be used automatically.
FLAG30.ZIP includes a few example prompt files. It is important to note
that each of these files are purposely saved WITHOUT an ending CR/LF
(carriage return/line feed) sequence at the end. This avoids the mistake
of moving the cursor down to the next line. The addition of other
languages is as easy as adding new FLAGOLD, FLAGNEW and FLAGBAR files with
a separate extension.
NOTE: Moving these prompts out to a file further reduced the .PPE file
size. However, it can be argued that the prompt display is now slightly
slower because PCBoard has to locate the file before it can be displayed.
4) The addition of RIPscrip support comes in two steps:
a) FLAG.PPE now sets the "mouse region" so that the caller can point to
a filename and click on it.
b) However, in order for the region to be "meaningful", you must first
ensure that the caller is in the proper font and that the text window
is in a pre-determined location on screen. This *requires* that you
first set the screen up!
PCBoard v15.1 adds the ability to use a "Command Display Files"
directory. See PCBSetup : File Locations : System Files.
In this Command Display Files directory, PCBoard will locate display
files that are associated with various "commands" in PCBoard.
These display files are used to send something to the caller BEFORE a
command is processed. For example, if the user types "U" to upload a
file, PCBoard will look in the Command Files directory for a file
called "U" and, if one exists, it will display it to the caller.
PCBoard v15.1 also has a special file called "PREFILE" which is
displayed just prior to showing the contents of a DIR file. By
creating a PREFILE for RIPscrip users (called PREFILER, note the "R"
extension), you can define the text window, set the font, and even
display some extra mouse buttons on the screen such as to view or flag
a file, or to stop the display, etc.
The PREFILER file included can be used as is. But you must define the
Command Display Files location first. Do this by going into PCBSetup
and specifying a directory such as this:
C:\PCB\CMDFILES
Then copy PREFILER into that directory. Without PREFILER (or a
comparable pre-defined RIPscrip scene), the RIPscrip support in
FLAG.PPE v3.0 is useless! In addition, you will probably want to
have your RIPscrip menus set up to "reset" the screen AFTER the caller
has viewed your file areas. This will generally be automatic in the
display of your menus.
5) Switched the INTEGER variables to BYTE. Added use of the CONTINUE
statement to jump past the rest of a WHILE loop. Utilized the new
SCRFILE and MOUSEREG statements.
- Added new code to handle the "V" command for viewing files. If the caller
types "V" and presses ENTER, then FLAG.PPE will now prompt the caller, using
the PROMPTSTR statement, for the name of the file to view.
(lines 227-278)
- There is also some sample (commented-out) code between lines 240 and 271
which, if uncommented, could be used to define different archive formats
for different conferences on your system. For instance, you could have
ZIP in one conference, ARC in another, ZOO in another, etc.
- Changed the method for restoring the cursor to the original line. Instead
of the more complex code previously used, FLAG.PPE now simply uses the ANSI
commands for saving and restoring the cursor position.
Version 2.2 released on 09/28/93
--------------------------------
- Modified FLAG.PPS (and FLAG2.PPS) so that the screen is SAVED whenever
performing a "V" command (file view) and upon entering FLAG.PPE (or
FLAG2.PPE) the screen is restored.
This may sound backwards, restoring before saving, but it works. It works
because PCBoard knows enough not to restore a screen that was never saved.
So the first time FLAG.PPE is executed, nothing is restored. But if the
caller views a file, then the screen is saved into PCBoard's memory. Then,
immediately upon returning from the file view, the next time FLAG.PPE is
run, it again tries to restore the screen and this time there is a saved
screen to be restored so PCBoard properly restores it.
(lines 72-24, 152 and 237-239)
Version 2.1 released on 09/22/93
--------------------------------
- NOTE: Renamed the help file from FLAG.HLP to FLAGHLP and included both
english and german versions. The german version was uploaded to Salt Air
by Mike Paschen (thanks!).
I liked calling it FLAG.HLP since a "DIR FLAG.*" would find everything having
to do with FLAG.PPE, but oh well, for the "greater good" we need to have the
filename be extensionless to accomodate foreign languages. <smile> Don't
forget to delete (or rename) your FLAG.HLP file.
(line 196)
- Using ideas from sample code provided by Gary Meeker, modified the findfile
routine to allow it to perform better validation of file listing lines.
Gary provided code that allowed it to also check to see that the file date
and file size information was correct. These additional checks help ensure
that FLAG.PPE won't accidently highlight a line that is not a file listing
or even a file listing where the file is unavailable because it is offline
or deleted.
The implementation was slightly different from Gary's code, but the ideas
are the same. For performance reasons, the findfile routine now tests the
size and date values first (because these are faster than the filename
verification tests) and then, if they are successful, it moves on and checks
the filename. The file size is simply checked to ensure that it is greater
than zero. The file date is read into a variable of type "DATE" which
converts the file date to a julian value. Then the julian value is tested
to see if it is greater than zero which would indicate that the file date is
a valid file date. If any of these tests fail (size, date or filename) then
findfile moves up the screen looking for more filenames as it did before.
(lines 36-37 and 287-304)
- Some people have asked for the ability to flag files AFTER the file list is
completed (at the File List Command prompt). This release includes a second
PPE (called FLAG2.PPE) which has just TWO differences:
1) The prompt was changed (see nprompt and oprompt)
2) And the "H" key processing was removed so that PCBoard could display
the default help instead of the FLAGHLP file.
I almost hated putting FLAG2.PPS together since the source code is nearly
identical, it seems almost too redundant. However, creating a single
FLAG.PPE that handled both prompts (the "more?" prompt as well as the "File
List Command" promt) would actually have required a lot more effort than this
simple change required. So that's why there is now a FLAG.PPE and FLAG2.PPE
instead of just one.
- Also, to make things easier, an INSTALL.BAT is now included to install
FLAG.PPE and/or FLAG2.PPE into your system.
Version 2.0 released on 09/14/93
--------------------------------
- The number one request for this release was to add (H)elp processing. This
was done by using the hotkey approach (the approach most people suggested)
whereby if H or ? is pressed, it would immediately display the help.
NOTE: I saw two submissions from other authors that made similar changes,
the flaw in both was that they did not check to see that "H" was the first
key pressed. So if a caller tried to type "F THISFILE" he would only get
as far as typing "F T" because when the "H" was pressed it would jump to the
help routine. This was avoided by checking the "len" variable to ensure that
no other keystrokes were already in the "text" buffer.
(lines 188-196)
- Several modifications were made to enhance the perceived speed of operation
from remote (especially for slow baud rates). These modifications were:
- Moving the cursor only when needed. (removing the GOSUB moveup call)
- Issuing a single command to move the cursor up or down multiple lines at
once instead of moving one line at a time. (lines 234-240 and 295)
- Separating the restoreline processing so that, if the prompt being restored
is about to be erased, it won't even bother restoring the line. Instead,
it will just move the cursor where it belongs. (lines 122-123, 137, 147
and 150, also see 234-240 and 247-250)
NOTE: There is a small delay when pressing ESC from remote. This delay is
a result of PCBoard waiting to see if the ESC character is part of an ANSI
command coming from the caller. It cannot be sped up because the delay is
a necessary part of recognizing valid ANSI commands.
- Added tests for commas, colons, backslashes, asterisks and greater than/
less than (< and >) characters when checking for invalid filenames on the
screen. This was done to reduce the possibility of matching on a non-
filename on the screen.
(line 287)
- If no files were found, it would not jump out of the PPE filename search
properly. It needed to restore the line. Fixed by putting an ELSE clause
where it checks to see if (filename<>"") which calls restoreline.
(lines 146-147)
- Also, modified the logic for dealing with the top line of the screen when
it is searching for a filename. At the top of the findfile subroutine it
now checks to see if the cursor is already at the top line and, if so, it
simply drops out. That simplifies the WHILE/ENDWHILE loop by letting us put
the "GOSUB moveup" line processing inside the loop. Actually, the moveup
call has been replaced with a an "upcount" variable which counts the number
of lines to move up and, if cursor movement is necessary, it then moves the
cursor all at once.
(lines 273-276, 280-281, and 295)
- A unique feature of PPL is that if the caller presses a "special key" such
as the UP, DOWN, PGUP, PGDN, etc, keys, the INKEY() function will actually
return a NAME for the key (i.e. pressing DOWN returns the value "DOWN" when
INKEY() is called). Because of this, if a caller pressed DOWN the word
"DOWN" would actually be added into the text that FLAG.PPE was gathering up
into the "text" variable (used for stuffing the keyboard buffer). Fixed by
checking the length of the "key" variable to make sure it is equal to 1
before adding it into the "text" variable. Also, INKEY() will return a
control character (such as CTRL-A) so we need to filter out characters that
are less than a SPACE at the same time.
(lines 176 and 186)
- Added a test, up at the top of the main part of the program, to determine if
the caller has ANSI enabled. If not, then FLAG.PPE just displays the
original prompt and exits out to let PCBoard handle the input. The reason
for this change is that the FLAG.PPE cursor positioning and highlighting can
only occur if the caller has ANSI capabilities on his end.
(lines 32, 57, and 63-66)
Version 1.0 released on 09/09/93
--------------------------------
- Initial release.