Category : BASIC Source Code
Archive   : PSCREEN.ZIP
Filename : P-SCREEN.DOC

Output of file : P-SCREEN.DOC contained in archive : PSCREEN.ZIP

Quick Reference Guide P~F Screen (P-Screen)

* Design Screens * Create Screen Libraries

* Display Screens From Your Programs * Easily, Fast

*** Version. 1.4 ***

P-Screen is brand new. We'd like to hear: What you like, what
you don't; what P-Screen does that it shouldn't; what it should
do but doesn't.

Your comments will help us improve and refine P-Screen. Without
your feedback, we can only guess. And see our 'unabased plea for
help' on the next page. P-Screen currently supports QuickBASIC
programmers. We'd like to expand that. We can, with your help.

| For information, or to send suggestions & comments, write to: |
| |
| Pro~Formance 132 Alpine Terrace San Francisco, Ca. 94117 |
| Phone: (415) 863-0530 (10-5 Pacific time please) |
| |
| Your feedback, suggestions and comments are most welcome. |

Copyright (C) 1988-1989, Rob W. Smetana and Pro~Formance

Pro~Formance's Screen Design and Manual are protected by
U.S. and International Copyright Laws. All Rights Reserved.

P~F Screen Design, P-Screen, Pro~Formance, and P~F are Trademarks of:
Pro~Formance & Rob W. Smetana

LaserJet and IBM are Registered Trademarks of: Hewlett-Packard
Corporation, and International Bus. Machines Corp., respectively.

P-Screen In a Nutshell

P-Screen lets you design screens, create screen "libraries," then
display your screens from your own programs -- easily, quickly.
* Design screens with P-Screen.
- Save them to: Screen Libraries, or standard Ascii files.
- Use any "screen capture" program to capture Existing screens
to disk. Then load them, add color, and save them to libraries.
* Display your screens from your programs -- f-a-s-t, easily,
with little code, and with no "external screen loaders."
- Three subprograms are included to "Link" with QB 4.0+ programs.
* Uses:
- Menus, help screens, data entry, program demos, prototyping, etc.
- Ascii files for any purpose (word proc., database, batch files).

* Easy screen design: boxes/lines/join/text (with auto-centering)/
any Ascii character/paint/copy/move/erase/WalkAbout/Undo/etc.
* Supports 25, 43 or 50 line screens (Mono, CGA, EGA or VGA).
* Save to / Load from P-Screen Libraries or Ascii files.
- Libraries store up to 50 binary screens per file. Display
them easily and fast -- 20-30 screens a second on a 16 mz PC!
- Libraries store full or partial screens (sub-screens).
Use sub-screens for menus, help screens, or any purpose.
- Libraries are "indexed" for fast access.
- Save full-screen Ascii files for any purpose.
* Easy screen displays from your programs. F-a-s-t.
- Indexed screen libraries + assembler routines = fast.
- External screen-loaders not needed (nor welcome)

We wrote P-Screen to:
* Make screen design easy, logical and as painless as possible.
* Eliminate lots of text from our programs (help screens, menus,
etc.). This keeps programs small and fast-loading, and pre-
serves data/string space and memory.
* Eliminate the disadvantages of keeping screens on disk: load
and display screens f-a-s-t.
* Organize screens in libraries (not separate Ascii, BSAVE or other
files) -- save disk space, ease distribution, eliminate errors.
- Allow full screens or sub-screens. (Subs save time and space)
- Store screen names AND descriptions in libraries.
* Eliminate the need for "screen-loaders." Reduce dependence on
others -- manage it all from your program. No longer worry if
users of your programs loose/don't get/mung up external routines.

Limitations (an unabashed plea for help)
* Your screens (libraries or Ascii) could be used from any program.
But the fast screen display routines we provide currently sup-
port QuickBASIC programmers. (QB 4.0 or later).
- To display your screens from Pascal, C, Assembler, dBASE or
other languages, 2-3 small routines would have to be converted.
- These conversions shouldn't be difficult, but we don't have
the expertise. If you can work with us on this, let us know.
* Libraries store full binary screen images (25 x 80 screens need
4k bytes of disk space). "Squeezing" them would be nice. We'd
appreciate any help you can offer on compressing/decompressing.
Tips, formulas, or source code snipits would all help a lot.

When you register . . .

+-- P~F Screen is "user supported" software -- not "freeware." --+
| |
| Give it a thorough workout, see if it serves your needs. |
| But after trying P-Screen 15-20 times, if you want to |
| continue using it, please register. The last few pages |
| have information on registering. |
| |
| We appreciate the support and honesty of those who register. |
| To say thanks in return, when you register, you'll receive . .|
| * P-Screen\+ with new features we're adding right now |
| * Five times the Library capacity. P-Screen\+ stores 50 |
| screens per Library. |
| * Enhanced screen restore capabilities (any size subscreen) |
| * Guidelines for loading BSAVE and other binary screen images|
| * Enhanced LaserJet screen printing (On request) |
| * Phone support and more . . . |

A Word About Your Screens / Screen Libraries

P-Screen lets you save screens to Ascii files or to Libraries.
* Libraries offer many advantages: (over Ascii or BSAVE files)
- Screens are stored in binary, including colors
- Store full or partial (sub) screens. Pop them up right
where they were when you saved them, or change locations.
- P-Screen displays screens THE SAME WAY YOUR PROGRAMS will--
using the same routines. Press F1 while in P-Screen to see
how full screens would be displayed; press Alt-F10 to see
how subscreens would. Speed & performance should be similar.
- Keep related screens together. Avoid separate screen files.
- Libraries are "indexed" for fast retrieval & replacement. The
first 2000 bytes or so of every library store screen index data.
DON'T edit this outside P-Screen; you may destroy your library.
- Libraries store 1-8 letter screen names, PLUS descriptions.
- The 50-screen-per-library-file maximum was an arbitrary decision.
If it hampers your work, let us know -- it's easily changed.
A library with 50 full screens needs 202k bytes of disk space.

* Ascii files are saved to disk exactly as you see them--without
color. Use them in any programming language (or batch files,
word processing, databases, etc.)

Libraries versus BSAVE
Libraries store screens much like BASIC's BSAVE does (binary memory
images). In fact, the subprograms we include can be used to retieve
BSAVEd screens (registered users receive support for this). But
P-Screen's Libraries have many advantages over BSAVE:
* Ever tried to load a screen from a BSAVE file, edit it, and put it
back right were it was? Easy with P-Screen--it's all done for you.
* Ever tried to get a "directory" of screens in a BSAVE file?
* Indexed libraries let you easily find any screen, then pop it
up right where you want it.
* To use libraries in your programs, just call 1-2 of the routines
we supply. We find the right screen, load and display it. No
hassles. (You can change where it's displayed if you like)


Conventions We Use ........................ a
System Requirements, Installing P-Screen

Designing Screens ......................... 1
Basics: Drawing Symbols & Colors ....... 2
Boxes, Lines, Joining, Copying, Moving,
Text, Centering Text .................. 3
WalkAbout (drawing with any character),
Deleting Characters/Lines ............. 4

Loading & Saving Screens or Subscreens .... 5

Printing Screens, Reviewing Libraries,
Trying Things Out ..................... 7

Displaying Screens from Your Programs ..... 8
Restoring Screens to Different Locations 10
A Directory of Library Screens .......... 10
Performance Hints ....................... 11

Error Messages ............................ 12

License & Limited Warranty ................ i

Other Programs from Pro~Formance .......... iii

Registering/Ordering ...................... v

Version # ================= Update History ====================
1.1 Copy/Move now shows your progress
1.2 Added Auto-Join-lines join as you go
1.3 Refined Auto-Join; Fixed bug in Move
1.4 Eradicated gremlin: editing function

-a- Conventions We Use For Convenience

Press [Enter] or [Return]
Esc or [Esc] Press the Escape key
Alt-key HOLD DOWN the Alt key, then press another key

System Requirements

Computer: IBM PC, XT, AT, PS/2 or compatible Memory: 196k
DOS: 2.1 or later (required) Monitor: Any
Disk: Hard disks/RAM disks are fast, floppy drives are OK
Printer: Any. Enhanced LaserJet support with P-Screen\+ (on request)

P-Screen writes directly to the screen--it's fast, but can snow
older CGA monitors. Configure DESQview or Windows accordingly.

Installing P-Screen

Copy "Required" files to a "working disk" or hard disk directory.

Required (Design/Display Screens) Optional (not needed to run)
================================= ===============================
P-Screen.Exe P~F Screen itself ReadMe.Bat Introduction
P-Screen.Psl Help screen library P-Screen.Doc This manual
PS-Demo.Bas QB 4+ demo program
LoadScrn.Obj \ Link with your PS-Demo.Qlb QB 4+ Quick Library
rsLodBin.Obj | QB programs.
rsScrRst.Obj / See "Loading Screens from Your Programs" for details.

To design screens you need just 2 files: P-Screen.Exe & P-Screen.Psl.

To print your manual, at the DOS prompt type: COPY P-SCREEN.DOC PRN

P-Screen saves two types of screen files--with different extensions.
* Libraries: 1-8 character names, plus ".PSL" (eg., P-Screen.Psl).
* Ascii: 1-8 character names, plus ".PSS" (eg., MyScreen.Pss).

To Start . . .

At the DOS prompt, run P-Screen by typing: P-Screen .
P-Screen starts with an intro screen showing your major options.
("User-supported" versions also display some other information.)
* Press any key and the screen clears -- waiting for you to
design or load a screen.
* This "blank screen" may intimidate -- few programs leave you
with nothing visible. Press F1 for Help. Or start designing.
* We urge you to load and print two screens: QuikRef1 and EditHelp.
- Press [F4] Load, press [L]ibrary (load from a library file).
- When asked for the Library name, type in P-Screen.
- P-Screen then displays the names of screens in P-Screen.Psl.
Use cursor keys to highlight QuikRef1 or EditHelp. Press .
- When the screen loads, press [F5] Print. You'll have handy,
1-page summaries of screen design and text-editing commands.

1 Designing Screens

P-Screen is very easy to use. Commands are intuitive and obvious.

* P-Screen displays your full screen at all times. There's no
command/option line taking up real estate. (F1 = Help)
- You may find P-Screen's totally-blank screen intimidating.
- But, start designing and you'll enjoy having full-screen access.
- When you begin most Alt-key options, P-Screen shows which
row/column you're in, and tracks where you go.
- If you need to know where you are (say, to add Locate x,y
statements), just press Alt-key, record the spot, then Esc.

* Change the number of rows on your screen (25, 43, 50) by press-
ing F6 New or F10 Options. Careful. F6 clears your screen!
Press F10 [R]ows to redraw the screen with a different # of rows.

* Use cursor pad keys to move around the screen (F1 Help has details)

* NOTE: Insert and Delete keys work a little differently. They
Insert a space/Delete the character at the cursor, shifting
everything to the right (insert), or the left (delete). Be
careful with Insert. You can loose characters in column 80.

Here's a summary of your options.

Function Key Options (File, Printing, Options, or Help)

F1=Help F2=Save F3=Save Sub F4=Load F5=Print F9=Review
F10=Options (colors, line/box/shading characters, 25/43/50 rows)

- F1 Review Help Screens - F2 Save screen (Ascii/Library)
- F3 Save a Sub (partial) screen - F4 Load screen (Ascii/Library)
- F5 Print current screen - F6 New--clear/start a new screen
- F9 Review (for a directory of screens in a Library)
- F10 Options lets you select: Colors, Line/Box drawing symbols,
Shading symbols, # Rows/Lines on the Screen, etc.

- Press [Q]uit (or Esc) to exit P-Screen to DOS. If you haven't
saved your work, P-Screen asks if you want to.

- Alt-U "UnDoes" mistakes. It works for all major things (Move,
Erase, Copy, Paint, Text, etc.), and some minor things.

Alt-key Options (hold down the Alt key, and press : : 🙂
Ascii Char. or
Lines Join Lines Center Text
UnDo Box Horiz./Vertical & Boxes Text (in text mode)
Alt- U B H / V J T C

Copy a Move a Erase a Paint a Shade a Delete or Walk-
Block Block Block Block Block Insert Row About
Alt- C M E P S D or I W

2 Designing Screens: Alt-Key Options
First, Some Basics
When you add text, draw boxes or lines, or shade or paint areas,
P-Screen uses the "active" symbol sets or colors. To change symbol
sets or colors, press F10. P-Screen displays a window like this:

| P~F Screen Options or Esc = I'm done |
| |
| F5 = Toggle Bright/Normal Foreground F6 = Toggle Blinking On/Off |
| |
| F7 = Change Foreround (7) F8 = Change Background (0) |
| |
| F9 = Change Line/Box Character. Options: ( ) Current: ( ) |
| |
|F10 = Change Shading/Fill Character. Options: ( ) Current: ( ) |
| |
|[S] = Toggle Sound On/Off. It's now: Off |
| |
|[R] = Number of [R]ows Shown on Screen (25, 43, 50) |
| |
| Press: F5, F6, F7, F8, F9, F10, [R] or [S] --> |
(To the far right of F9 and F10 are line drawing & shading options.
We don't show them here since some printers can't print them.)

* COLORS: P-Screen starts with colors set to White (7) on Black (0).
- Press F7 to change Foregound, F8 to change Background colors.
- As you press F7 or F8, the line "F7 = Change Fore. . . ."
changes color. The numbers (7)/(0) also change.
- F5 toggles between Bright and Normal Foreground. And F6 toggles
blinking On or Off. In both cases you see it happen.
- From then on, all boxes/lines your draw, or any text you enter
will appear in these colors -- until you change colors again.

* BOXES & LINES: You can choose 5 different box/line draw styles.
- Press F9 to toggle among them. Press Esc to select one.
- All boxes/lines will be drawn in the symbol set you choose.

* SHADING: You can choose 3 different shading symbols (176-178).
- Press F10 to toggle among them. Press Esc to choose one.

* Press [S]OUND to toggle window sound effects on or off.

* Press [R]OWS to switch to 25, 43, or 50 row screen mode.
- If your monitor dislikes your choice, an error message appears.
- Switching to MORE rows WON'T destroy your screen. P-Screen
changes modes, then redraws your screen--more rows to work with.
- Switching to FEWER rows might blow away the bottom of your screen.
Caution. Alt-U CAN'T undo this. Example: Switching from 50
to 25 rows would leave you with just the top 25 rows.

* Press Esc or when you're done.

Many options work the same way. We'll discuss a few in detail,
then highlight a few others. In all cases, Esc = Cancel. In
most cases, when you press Alt-key, P-Screen "marks" your start-
ing spot with a highlighted, flashing symbol: "E" (erase), "M"
(move), "P" (paint) or the "active" line/box or shade character.

Drawing Boxes & Lines Alt-B / Alt-H or Alt-V
Move the cursor to the top left corner where you want a box to
begin. Press Alt-B. P-Screen "marks" the spot with a blinking
box corner. Now, move to the bottom right corner of your box.
Press . Done! Drawn in the style and colors you chose.
(See "WalkAbout" for a different way to draw.)

Let's try a horizontal line. Move to the left side of the box you
just drew. Press Alt-H. Now move to the right side. Press .
Your lines and boxes are joined -- automatically (discussed later).

Joining Boxes & Lines Alt-J
To "Join" a line to a box you drew, move the cursor to one of
the line/box intersections. Press Alt-J. A window pops up
showing the drawing symbols. (It also has all other Ascii char-
acters. See "WalkAbout" for details.) Move to the character you
want and press . Go to the other intersection; do it again.

Erasing or Painting a Block Alt-E / Alt-P
It's just like drawing a box. Move to the top left corner. Press
Alt-E (or Alt-P Paint). A blinking "E" (or "P") marks the spot.
Move to the bottom right corner. Press .

Copying or Moving a Block Alt-C / Alt-M
Just like examples above -- with one more step. Move to the top
left corner. Press Alt-C (or Alt-M Move). A blinking "C" (or "M")
marks the spot. Move to the bottom right corner. Press .

You've now marked what you want to copy or move. Now move to top
left corner where you want the block to appear. Press . Done.

Adding / Centering Text Alt-T / Alt-C (Center in Text Mode)
You can enter text in 2 ways: press Alt-T, or just start typing.
Move to the spot where you want to begin. Press Alt-T. P-Screen
"respects" your lines and boxes. You can enter text up to the 1st
line/shade character it finds (or, if none, the right side of the
screen). P-Screen scoops up any text it finds, letting you edit it.
Press: Alt-C to center it, when you're done, Esc to cancel.

You can also just start typing. This works best if there's NO text
on a line, or you move to the end of existing text. If you start
typing in front of or on text, P-Screen PRINTS what you just typed,
scoops up the rest, then moves to the end--maybe not what you wanted.

Those are the basics. Remember, press to complete an action,
Esc to cancel it, and Alt-U if you don't like the result.

Also remember that many options (box, move, erase) require that you
move from left to right, top to bottom. So, start these options
in the top left corner, then move right and down. Text options
move left to right. You can draw lines in either direction.
Now for some highlights of other options.

When drawing a horizontal or vertical line, P-Screen "joins" the
line to every line draw character in its path. It does this by
trying to "guess" what you're trying to accomplish. Most of the
time P-Screen's correct, and this speeds things up tremendously!
* This only works when symbol sets are the same (close won't work).
* If P-Screen's "guess" is wrong, use Alt-J to fix specific spots.

WalkAbout & Join Alt-W / Alt-J
Alt-W (WalkAbout) copies the character your cursor's on -- letting
you draw (or erase) with ANY character on the screen. And if you
don't see a character you like, press Alt-J. A window pops up
with the lower and upper Ascii codes. Move to a character you
want, press to accept it, then press Alt-W to "paint" it
around the screen. In general:
* Move to a character you want to walk around with. Press Alt-W.
Nothing seems to happen--Alt-W is "screen silent." Most Alt-key
options show you where you are on the screen. Not Alt-W. But,
press cursor pad keys, and P-Screen starts copying the character
(with its color) around the screen.
* Move around using your cursor keys (or Home/End/PgUp/PgDn).
Press Esc or to stop, you'll return to where you started.
* Use WalkAbout to erase as you go -- just start on a blank spot.

Deleting / Inserting Characters or Lines Del/Insert or Alt-D/Alt-I
* To insert or delete CHARACTERS, press Insert or Delete keys.
- Insert adds a space at the cursor, pushing everything right.
- Delete deletes what's at the cursor, shifting everything left.

* To insert or delete LINES, press Alt-I or Alt-D.
- Alt-I inserts a blank line at the cursor. All lines at the
cursor and below move down. Anything on the last line is LOST.
- Alt-D deletes the line your cursor's on, everything moves up.

Here again are your design options (Esc cancels, accepts).

Lines Center Text
UnDo Box Horiz./Vertical Join Text (in text mode)
Alt- U B H / V J T C

Copy Move Erase Paint Shade Del/Ins Row WalkAbout
Alt- C M E P S D or I W

5 Loading & Saving Screens or Subscreens: Function-Key Options

F1=Help F2=Save F3=Save Sub F4=Load F5=Print F9=Review F10=Option

F1 Help
Press F1 to view help screens (stored in P-Screen.Psl; required
to run P-Screen). Help's not available when adding text.

Saving and Loading Screens: A word about Paths
P-Screen was designed to save and load screens to the "current
path" -- the drive and directory you're on when you start P-Screen.
We recommend you stick with this--it's simplest.
* But, you can "activate" a different path--another drive or
directory. Once you do, P-Screen will load and save screen
to that path, until you change the path again.
* To "activate" a different path you have to LOAD a screen from
that path. But, how did it get there? You copied it there.
* Press F4 Load. Then press A or L to tell P-Screen whether you
want to load an Ascii file or load a screen from a Library.
P-Screen then displays window like this:
| Load Which (Library or Screen)? |
| |
| ........ |
| |
+ [Esc] = Cancel F2 = Directory -----------+

- Notice the line above "........" is blank. This means
P-Screen is using the "current" drive/directory.
- Press F2 Directory. P-Screen asks "Which Drive?" Press
A, B, C, etc. It then asks "Which Directory?" Type in
a directory name and press .
- P-Screen scans that path for screens/screen libraries. It
then displays a menu with all screen (or library) names.
Highlight the one you want; press .
- P-Screen loads your Ascii screen, or displays another menu
showing which screens are in the Library you chose.

Now, the next time you Save or Load a file, the line above "......."
shows the path you chose. All saving/loading will be to that path.

Sound complex? It's much easier to do than read about. Try it.
But, you'll simplify things if you store your screens and screen
libraries on the drive/directory you keep P-Screen itself.

F2 Save (full screens)
Press F2 and P-Screen asks if you want to save an Ascii screen
file, or save a screen to a library. Press A or L.
* To save an Ascii screen, just type in a 1-8 character file name.
Ascii screens are saved with ".PSS" extensions.
* Save to a library and P-Screen asks for: (See "Replacing Screens")
- A 1-8 character library name. If the library doesn't
exist, P-Screen asks: "Want to create it?" Press [Y]es/[N]o.
- A 1-8 character screen name, then a 1-15 character description.

F3 Save Subscreen (Saved to libraries only. See "Replacing Screens")
Subscreens are partial screens -- a single line, box or rectangle.
They're fast, efficient ways to display Menus, Help screens,
or any partial screen. They use less disk space, and load faster
(there's less to load). And they pop up right where they were
when you saved them. (You can change where they're displayed.)

Press F3 and a blinking diamond appears marking the top left
corner of your subscreen.
* Use cursor keys to move to the bottom, right corner. Press .
* P-Screen asks for a library name, screen name and description.
* Whether you call up a subscreen from within P-Screen or in
your program, it appears where it was when you saved it. (You
can change where it appears by changing the screen location you
restore it to.) See "Loading Screens from Your Programs" for more.

Replacing Library Screens (or, No Duplicate Names Please)
When you save a screen to a library, P-Screen checks to see if the
screen name already exists. If it does, P-Screen lets you know,
then checks to see how large the original screen was.
* If there's enough room to save your full/sub-screen in the same
place, P-Screen asks if you want to replace the existing screen.
Say No, and P-Screen starts over, letting you enter another name.
* If there's NOT enough room, P-Screen asks you to start over and
enter a different name. Why? If you add screens with the same
name, you may never be able to access the 2nd, 3rd, etc.

F4 Load Screen (See "A Word About Paths" on the last page)
Press F4 and P-Screen asks whether you want to load an Ascii
screen or load a screen from a library. Press A or L.
* If you press [A]scii, P-Screen asks for the screen name.
- Type in a 1-8 character name. (extensions are always ".PSS.")
- Or press F2 for a directory. When asked "Which Drive," press
for a directory of the drive/directory you're on. Or,
enter a new drive/directory. Highlight a screen, press .
* If you press [L]ibrary, P-Screen asks for the library name.
- Type in a 1-8 character name, or press F2 for a directory.
(Libraries always have ".PSL" extensions; eg., P-Screen.Psl.)
- P-Screen looks for the library on the "active" drive/directory.
- P-Screen then displays the names of screens in your library.
Highlight the screen you want. Press .
- If you load a subscreen, it appears in the spot it was
when you saved it -- overwriting anything that was there.


F5 Print
Press F5 to print the screen on your screen. P-Screen asks
"Translate, or Print As is?"
* Press [A]s is If your printer can print the line draw, shading
and low/high Ascii characters on your screen. P-Screen prints
everything you see (except the color).
* Press [T]ranslate and P-Screen translates the line draw
characters into characters any printer can handle (+-=|).
Most low/high Ascii characters print as "#" or blanks.

You can print Ascii screen files in several ways. Copy it to
your printer (eg. "copy myscreen.pss prn"). Or, load it into
your word processor, then print it.

F9 Review
Press F9 to review the names and descriptions of library screens.
* Tell P-Screen which library to review
* P-Screen clears the screen and shows screen names and descrip-
tions side by side. Press any key to return to your screen.

Trying Things Out

To begin, we urge you to load 2-3 screens and experiment. Move
things around, put in some boxes or text, try Alt-U. Save these
experiments with a different name (or don't save them at all).
This way you won't blow away something you want kept. Try these:

* Create a Box. Move the cursor to the top, left corner where
you want a box to begin. Press Alt-B. Use cursor keys to move
to the bottom, right corner. Press . That's it.
- Try it again. But this time press F10 and choose different
colors (try F6; make it blink). Press Esc; create another box.

* Move Something. Move the cursor to the top, left corner of the
area you want moved. Press Alt-M. A blinking "M" appears.
- Move to the bottom, right corner of the area you want moved.
Press to mark the bottom right.
- Finally, move to the top, left corner of where you want this
section to appear. Press again. Done! It's moved.

* Create a new Library. Save and then re-load a Subscreen!
- Load a screen, or design a partial screen.
- Move the cursor to the upper, left corner of your subscreen.
Press F3 SubScreen. A blinking diamond appears.
- Move to the bottom, right corner. Press .
- Now, type in a library name. Then type in a screen name
and description.
- When the subscreen is saved, clear the screen (F6), then press
F4 Load. Press [L]ibrary, enter the name of the library you
created (press if it's still "current"), then pick the
subscreen you saved. It pops up right where it was.

* Try UnDo. Press Alt-U after drawing a box or moving something.

8 Displaying Screens from Your Programs

To display a library screen from inside your program, just:
* Tell us the name of the library
* Tell us which screen you want
* Send us an integer array
* Then use a "screen restore" subprogram to display it (yours/ours)

This takes 3-6 lines of code! CALL 2 subprograms from your program.

What you need/Need to do

Your P-Screen package should have included these (obj) subprograms:

Name (.obj) Format Purpose
LoadScrn QuickBASIC 4.0+ Open Library, Find Screen in Lib.
Call rsLoadBin to load it
Report errors (if any)
rsLodBin Assembler Quickly load screens into array
rsScrRst Assembler Display screens (or use yours)

To display screens from libraries, add LoadScrn.Obj and rsLodBin.Obj
to your QuickBASIC library and Quick Library. (If you want to use
rsScrnRest--full width screens only--add rsScrRst.Obj.) For example:

Lib MyLib +LoadScrn +rsLodBin +rsScrRst;
Link /q/seg:256 MyLib.Lib, MyQuik.Qlb, nul, bqlb45 'QB 4.5

* Replace "MyLib" and "MyQuik" with the names of your QB library
and Quick Library, respectively.
* We "Linked" the entire MyLib.Lib into MyQuik.Lib.
- This ensures QB libraries and Quick Libraries are consistent.
We also find it easier than specifying lots of ".obj" files.
- But, you must specify ".Lib" as in "MyLib.Lib" or Link will
assume MyLib is an obj file.

Now, display a screen
Here's an example: (Run PS-Demo.Bas in QB 4+ to see this in action)

LibName$ = "MyLib" '... name of your library (NO extension)
ScreenName$ = "Help-1" '... name of a screen you want displayed
Redim Array%(1) '... an array to store/display screen
' we REdimension it to what we need
'...load screen into array
Call rsLoadScrn (Array%(), LibName$, ScreenName$, Desc$, _
TopRow, TopCol, BotRow, BotCol, ScrnSize, ErrCode)
'...Note: don't split lines in QB 4.0+ -- we do it for easier reading.

'...display it
If ErrCode = 0 then CALL rsScrnRest(TopRow, BotRow, Seg Array%(1))

'...Note: rsScrnRest is for full-width screens ONLY! Registered
' users receive a version to handle any full screen or subscreen.


You can simplfy the CALL to: (include names instead of variables)

Redim Array%(1)
Call rsLoadScrn (Array%(), "MyLib", "Help-1", "", _
TopRow, TopCol, BotRow, BotCol, ScrnSize, ErrCode)
If ErrCode = 0 then CALL rsScrnRest(TopRow, BotRow, Seg Array%(1))

Compatibility: QuickBASIC 4.0 or later. (We use TYPE, SEG, etc.)

Integers Only: The Array and all numeric variables MUST be integers.
Disaster awaits you if you do otherwise.

Calls: Call rsLoadScrn from your QB 4+ program.
- It finds the screen you requested (or reports error)
- It REdimensions the Integer array to the size needed
- It calls rsLoadBinary (asm) for fast loading

Call rsScrnRest (or another routine) to display screens

Note: Except for an ErrCode returned during actual loading,
these do NO error checking.
- Your program must 1st ensure your Library file
exists--before calling rsLoadScrn! (See PS-Demo)
- And read ErrCode when rsLoadScrn returns. See below.

You send down: Array%() 1-dimension INTEGER array.
.............. LibName$ 1-8 character Library Name.
-- DON'T include extension. We add ".PSL"
-- Include a full path if your library
is elsewhere. (eg., "B:\MyLib")
ScreenName$ 1-8 character Screen Name (no extension)

We return: Array%() Loaded with screen (if no error occurred)
.......... We: Redim Array% (1 to SizeNeeded)
So: Restore from Array% (1) NOT 0!
Desc$ Screen Description saved in the library
TopRow, TopCol \ Screen coordinates to restore screen
BotRow, BotCol /
ScrnSize Size of Array (# of Integer elements)
ErrCode 0 = No error
-99 = Screen NOT found in library
- 1 = Error loading screen from library
Another example:
Redim Array%(1) '...Note Lib/Screen names "hard-coded"
Call rsLoadScrn (Array%(), "MyLib", "Menu-1", Desc$, _
TopRow, TopCol, BotRow, BotCol, ScrnSize, ErrCode)
Select Case ErrCode
Case >= 0 '...everything went OK
CALL rsScrnRest(TopRow, BotRow, Seg Array%(1))
Case -99 '...screen was NOT in Library
Case -1 '...error loading screen
Case else
End Select


When CALLing rsLoadScrn or rsScrnRest, use any variable names
you want (or absolute values in some cases). The only caveat:
* Be sure to send down the right number of variables, in the
right order.
* Be sure Integers are integers, Strings are strings, etc!!

Experiment with PS-Demo.Bas to see all this in action. Be sure
to load PS-Demo.Qlb like this: qb ps-demo /l ps-demo .

Restoring Screens to Different Locations
When you call rsLoadScrn, it returns to you "TopRow, TopCol,
BotRow, and BotCol" -- indicating where the screen/subscreen was
when you saved it (eg., for full screens: "1,1,25,80"). To restore
it to a different location, just change the values of TopRow, etc.
when you call your screen-restore subprogram. This lets you save
screens to libraries, then later change your mind about where you
display them -- without having to re-save your screen to a library.
* Suppose you load a subscreen and rsLoadScrn returns "1,1,10,80."
* It orginally covered the top of the screen (rows 1-10, columns
1-80). To display it at the bottom instead, just:
Call rsScrnRest(16, 25, Seg Array%(1))
* Just be sure to restore the SAME NUMBER of rows and columns.

Want a Directory of Library Screens (also in PS-Demo.Bas)
Your libraries store both Screen Names & Descriptions. Beginning
at RECORD #2, read/display/choose from them like this:

ScrnName AS STRING * 8 '1-8 character name
Description AS STRING * 15 '1-15 character description
IgnoreMe AS STRING * 14 'ignore this stuff, be sure to skip
DIM MyScreens AS ScrLib

If you prefer Field statements, use:
FIELD #1, 8 AS ScrnName$, 15 AS Description$, 14 AS IgnoreMe$

This code snipit displays: 1) Screen Names 2) Descriptions
(Set up for TYPE. Revise if you use Field.)

Open Library$ + ".PSL" For Random as #1 Len = Len(MyScreens)
FOR x = 2 TO 51 '... start at record #2, skip header
'... 50=Max # of screens/Lib File
GET #1, x, MyScreens '... using TYPE format/NOT Field

a$ = LTRIM$(RTRIM$(MyScreens.ScrnName)) '... strip blanks

IF a$ = "" THEN '... 1st blank one means "all done"
ELSE PRINT SPC(5); LEFT$(a$ + SPACE$(10), 10); MyScreens.Description,

Performance Hints

As we said earlier, P-Screen uses exactly the same routines your
programs will to display screens from libraries. If you want to
see how quickly full screens will be displayed, press F1 while in
P-Screen to look at two help screens. If you want to see how
fast subscreens can be displayed, press Alt-F10 (demo of 9
QB-type menus). (We use rsScrnRestPlus to display subscreens.
You receive this when you register; or use your own routine.)

Where possible, use subscreens
The smaller the screen, the faster it loads and is displayed.
Wherever possible, use subscreens to speed up your programs.

Load many screens at once, then display when needed
Nobody wants to wait for menus, help screens or other screens.
They should pop up almost instantly. Although we built P-Screen
for speed, the actual speed you get depends on the speed of both
your PC and its disk drives. The biggest handicap: Floppy disks
(much slower than hard disks). For example:

PC: ----- 8 mz ------ ------ 16 mz ------
Disk: Floppy Hard RAM Floppy Hard RAM
# of seconds to Load/ =============================================
Display 9 Demo screens: 4.0 1.4 .5 2.7 .3 .1
(# seconds per screen) (.44) (.15) (.06) (.30) (.03) (.01)

Note how floppy disks penalize even 16 mz PCs. Do you use floppy
disks only? Screen design is much faster/smoother on a RAM disk.
If you use a RAM disk for screen design, be sure to copy your
screens and libraries to floppies/hard disk before shutting down.

For help screens, some menus, prototypes, etc., even the slowest
speeds may be fast enough.

But for time-critical screens, you may want to load several
into an Integer array when your program starts. Then, when the
proper key is pressed, blast the appropriate portion of the
array onto the screen. PS-Demo.Bas has a complete working
model of this (QuickBASIC-style menus). Study it closely.

For even greater speed
CALL rsLodBin directly from your programs to load many full- or
sub- screens in one, fast gulp. Registered users receive
details and a fully-commented demo program to help do this in
your own program.
* This demo shows you can Load AND Display our 9 QB-style
menu screens in .1 seconds!! (16 mz PC)


Error Messages You Might Get

We prevent most errors from disrupting your work. For example,
P-Screen checks to ensure your printer's ready before you start
printing. And it checks to see if files exist, alerting you if
you try to load a non-existent screen or file.

Most other errors will probably be due to disk or printer errors:
your printer runs out of paper, the disk drive door is open, or
you run out of disk space while saving a screen.

* With most errors, P-Screen sounds an alarm and asks you to fix
the problem then press a key.

* With other errors, P-Screen reports an error number, and tells
you it can't go on. Press a key and P-Screen will try to start
over. But you'll loose the screen you were working on.
- This is one reason we urge you to save screens often.
If you loose one due to an error, just re-load it.
- If errors recur, please let us know. Tell us the error number,
and describe exactly what you were doing when it happened.

* If major errors occur twice (an error reported on the bottom
of your screen with a message like "Error (##). ....."), we
urge you to EXIT P-Screen and restart it. (If possible,
save your work first -- but it may already be gone.)
- The reason you should exit: All errors occur inside a
subroutine (sometimes 2-4 layers deep). When a major
error occurs and P-Screen re-starts, these routines are
still unresolved (ie., still on the stack).
- If this happens twice, you may quickly run out of stack
space and P-Screen will be forced to stop.
- Microsoft assures us there's no way around this (thanks MS).

* Your help screens come in a "read-only" screen library called
P-Screen.Psl. Feel free to load and look at any P-Screen screen.
But please don't Save screens to it. An error may occur if you
try. Sure, you can change the "read only" attribute; please don't.
- We protected this file to help you -- to ensure that as
the shareware version of P-Screen gets passed around, the
help facility, demos and main screens aren't corrupted.


P~F Screen is "user-supported" software -- NOT "freeware."
You're granted a limited license to try P-Screen\25 for a limited
period. You may use it or copy in the manner described below
(only). You may not modify or alter it in any way without our
prior written approval.


If you ARE a registered user:
- You've either made a contribution to continue using P-Screen,
or ordered P-Screen from us.
- You're granted a license to use P-Screen for both personal
and business purposes. And we'll try to keep you posted of
enhancements and/or revisions to P-Screen.

If you're NOT a registered user:
- You're granted a limited license to try P-Screen out for a
limited period. If, after this "demo period," you decide you
want to continue using it, we ask that you register as described
below. Running P-Screen 15-20 different times should allow you
to decide if it's going to be useful to you. Therefore the
"trial period" is set at 20 P-Screen sessions.

|Each Copy Used In a Corporation, Business, Trade MUST Be Registered.|
This means, if you use P-Screen for any business purpose or in the
context of conducting business, you are required to register and
submit the registration fee for each copy used. Site Licenses and
multiple-copy discounts are available. Write to the address below.


A Registration & Order form is at the end of this manual.

To register your copy, or order the latest versions, send your
Name, Address, registration fee and any comments/suggestions to:

Pro~Formance 132 Alpine Terrace San Francisco, Ca. 94117


Bulletin board SYSOPS, computer clubs, and shareware distributors
are encouraged to copy/distribute P-Screen\25, provided:
(a) Your adds/literature/company name DON'T include "free software,"
"freeware," etc., which misrepresent "user-supported" software.
(1) It's distributed Unmodified (All files & Copyright notices intact)
(2) You charge nothing for the software manuals, etc.
You may charge up to $10.00 to cover distribution and handling
(3) You clearly state your fee is NOT payment or registration for
the software
(4) You clearly encourage contributions/registration by stating that
continued use justifies sending contributions to the developer.
(5) You include all files mentioned in ReadMe.BAT including:
P-Screen.Exe, P-Screen.Doc, P-Screen.Psl, LoadScrn.Obj,
rsLodBin.Obj, rsScrRst.Obj, PS-Demo.(Bas/Qlb) and ".PSS" files.

ii Three Questions About Registering....



These are good questions. Here's a response. (Our response
applies to user-supported software in general, not just P-Screen.)

Shareware is NOT free software. A better term is "user-supported"
software. Why? Because authors of "user-supported" software spend
long, hard hours developing programs, debugging them, and writing
manuals. They DEPEND on your support (and comments and an occasional
"thank you") to keep going--to justify the time and sweat.

You get to "try it before you buy it," to see if it works and meets
your needs. You get to enjoy the result, at very reasonable prices.
And registering your copy (supporting the author) brings you
other benefits as well. These include (depending on the program):
the latest version often with new, more or better features, extra
"goodies," a printed manual, phone support, updates, etc.

Shareware "works" because people like you: (1) are honest; and,
(2) understand authors will stop "sharing" their work if they
receive no support. In short, if you fail to even acknowledge
the contributions authors make, or support their efforts (even
modestly), the well will dry up. The only one to lose will be
you (and the "shareware distributors"). Since you made no
contribution anyway, the developer loses nothing.

In response to the third question, many firms now "sell" user-
supported software (or shareware). They charge you a fee for
their time and the expense of sending you a disk. NONE of the
fee you give them goes to the author of the software. So when you
pay $2-$5.00 for a disk full of software, you're NOT supporting
the person who spent their time developing ideas you're now enjoying.

This product is provided "AS IS" without warranty of any kind.
The entire risk as to the results and performance of this product
is assumed by you. We warrant only that disk(s) sent you (if
any) is free from physical defects and workmanship under normal
use and service for a period of 90 days from the date shipped.

Our entire liability, and your exclusive remedy, as to the disk
shall be to, at our option, either (1) return the purchase price;
or, (2) replace disks which don't meet our limited warranty.

Neither Pro~Formance nor RWS & Associates, nor any of their
officers or employees shall be held responsible for: failures of
this program to satisfy any needs, damages due to using P-Screen, or
any effects this program has on you, or your business or operations.

P-Screen, its manual and its support files may be modified/changed
from time to time. They may contain operational inaccuracies or
typographical errors which may be corrected by future versions,
if any. Registered users may be notified of available updates.

iii Other Programs by Pro~Formance For details, write:

Pro~Formance 132 Alpine Terrace San Francisco, Ca. 94117
Professional Scribe (Pro~Scribe) PS Express (PSE)
Pro~Scribe and PSE help you improve anything you write (or help
you improve the writing of others -- your staff, students, etc.)

Pro~Scribe/PSE (shareware) are being used in many companies (like
IBM, Hewlett Packard, Lockheed, Citibank, Bank of America) to
help improve memos, letters, manuals, documentation, contracts,
promotional material, etc.
* They examine your writing for many types of writing mistakes.
* You can look at overall results for an entire letter, report,
etc. Or, if you like, they'll look at your writing line-by-line.
* They show suspect problems, and offer suggestions.
* Results are shown numerically, and with several colorful graphs.
* They come with two manuals (in addition to a Quick Ref. Guide)
- One covers basics: To install/run PS, and basic guidelines.
- "Effective, High-Impact Writing" has more writing tips.
* They're colorful, fast, fun, and a terrific value: $35 for both!

How are Pro~Scribe and PSE different? First, PS Express is a RAM-
resident program. That means it's always ready to help when you
need help most--while you're actually writing. Run PSE, then run
your word processor and start writing. Need help? Just press a key.
* When PSE pops up, just mark the text you want PSE to look at.
A window pops up instantly with feedback on your writing.
* PSE is like having an English teacher looking over your
shoulder--gently coaching you as you write.

Pro~Scribe gives you everything PSE does, and much, much more.
It reads files saved by your word processor, or you can type
text directly into PS. Like PSE, Pro~Scribe shows how complex
your writing, words and sentences are. It also offers you:
* Feedback on "Word Wasters" (5 categories of writing errors).
* Three RGL (Running Grade Level) options (line-by-line feedback).
* An option to flag complex words and Word Wasters in each line.
* A Personal Interest score--showing if you write as you speak.
* Options to: Customize the program, Print results on your printer.

Mail Call (also see P~F Form below) MC Express (MCE)
Mail Call (MC) is a full featured mailing assistant. Add names
to a database, then Browse through them, Search, Print, etc. Print:
* Envelopes (several sizes)
* Mailing Labels (several sizes plus a "roll-your-own-size" option)
1 to 99 copies of each label, 1 to 3 columns across
* Personalized Documents (like "mail merge form letters")
* Reports, Phone books, Appointment schedules, etc.

Mail Call offers UNlimited capacity -- use as many database files
as you want. And its "Mail Merge" option lets you Import or Export
names to files used by word processors or other database programs.

MC Express is a "RAM-resident" program that lets you: 1) print
envelopes while INSIDE your word processor; and, 2) lets you
"write out" names and addresses to a file you can later "import"
into MC (no re-typing). (Optional; works with HP LaserJets)

P~F Form (see Mail Call) Form Design (PFD) // Form Master (PFM)
Form Design and Form Master are a complete form system: form
design, printing, database and "auto-edit" features all built in.

Design, edit and pring forms with P~F Form Design. (samples included)
* Draw lines or boxes, in several styles
* Fill areas with shading (LaserJet)
* Enter text, auto-centered inside boxes if you like
* Quick, easy block options: Copy, Move, Erase, Shading
* Vary fonts, type styles, line spacing

Then let P~F Form Master fill them in for you--pulling names, add-
resses, etc. from your database, putting them right where you want
them. PFM gives you 2 ways to "edit on the fly" before printing:
* Auto-Edit lets you quickly skip through a form, editing
just fields you "tagged." On order forms, for example:
Quantity, Description, Price per Unit, Tax, Total.
* Edit lets you edit any "text area"--respecting lines/boxes.
* To automatically center text inside a box, just press a key.

Produce high-quality, professional looking forms in minutes with
an HP LaserJet (+/500/Series II or later). And you DON'T need
expensive LaserJet font cartridges or soft fonts for lines, boxes,
shading, etc. We use the LaserJet's built-in features for these.
"But, I don't have a LaserJet," you say. Not to worry. PFD/PFM
have two other printer options so they work with any printer.

Finally, PFD/PFM work with the same database files as Mail Call--
letting you can manage most every piece of paper in your office.
Forms: Invoices, Purchase Orders, Personnel Forms, Work
Orders, Work Schedules, Travel or Expense Reports,
Accounting Forms, Application Blanks, etc.
As Well As: Letters, Memos, Envelopes, Mailing Labels, Person-
alized Documents, Reports, Client or Employee lists.

The Survey Catalyst (TSC; a commercial program, not shareware)
The Survey Catalyst is for anyone who works with attitude or opinion
surveys. It helps you create surveys in minutes or hours--not days!
* TSC includes a database of thousands of survey items--like
items used in most Fortune 1000 companies' employee surveys.
- You can review items, edit them or add new ones.
- OR, when you see an item you want to add to a survey, just
press a key and add it--fast and simple.
* And TSC's many printing options let you create "camera-ready" copy
- Group items by Category, by Response Scale, or Randomize them.
- Print response scales Above or Beside items (or not at all).
- Print key punch instructions (or not at all)
- Print a title--at the top or bottom of each page.
- Or, print your survey "to a file"--to dress it up later.

----------------+------[ To Order : : : :]-----+-----------------

____ Copies of P~F Screen Design (P-Screen\+) ........ $_________
** $25 per copy

____ Copies of Mail Call + (MC\plus) ................ $_________
** $45 per copy WITH MC Express MCE works with
HP LaserJets, original through Series II.
** $40 per copy WITHOUT MC Express (MCE)

____ Copies of P~F Form (Both PFD\+ and PFM\+) ....... $_________
** $45 per copy (Note the "packages" below)

____ Copies of Professional Scribe Writing Analyst ... $_________
** $35 per copy (for BOTH Pro~Scribe & PS Express)

____ Copies of BOTH P~F Form and Mail Call\+ (17% off) $_________
** $75 for PFD, PFM AND Mail Call and MC Express ($4/shipping)

____ Shoot the works. Send 1 of each .......(25% off) $_________
** $115 for the works (+ $8 shipping)

____ Send information on The Survey Catalyst

Add $2/copy shipping/handling (Non-U.S.: $6) $_________

California residents, please add 6.5% tax $_________

Total enclosed........ $_________

(NON-U.S. orders: International Money Orders please. U.S. Funds)
(We reserve the option to adjust registration fees.)
-----------------+-------[ Mail to ]-------+----------------------

Name: _____________________________ Today's Date: ___________

Company: __________________________ Phone: ( ) _____-______

Address: ________________________________________________________

City/State/Zip: _________________________________________________

Send this to:
132 Alpine Terrace Please make your check payable to:
San Francisco, CA. 94117 R. W. Smetana
(415) 863-0530 (10-5 Pacific time)
Which version of P-Screen do you now have? ______________
Where did you get your current copy of P-Screen? _________________
My Computer's a:_________________ My Printer's a:________________
My Monitor is: (circle one) Mono / Color

Please use the other side for comments and suggestions. (Thanks for
your comments and suggestions! They give us ideas for enhancements.)

* How we can improve P-Screen? (Easier to use? More effective?)
* What do you LIKE MOST about P-Screen? What do you DISLIKE?

  3 Responses to “Category : BASIC Source Code
Archive   : PSCREEN.ZIP
Filename : P-SCREEN.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: