Dec 222017
 
QSCR10 revision - QB code gen/screen draw.
File QSCR20.ZIP from The Programmer’s Corner in
Category BASIC Language
QSCR10 revision – QB code gen/screen draw.
File Name File Size Zip Size Zip Type
COLORS.SCR 20 12 deflated
QSCR20.DOC 28398 7699 deflated
QSCR20.EXE 78570 43328 deflated
SCREEN.BIN 3528 767 deflated
TPCREAD.ME 199 165 deflated

Download File QSCR20.ZIP Here

Contents of the QSCR20.DOC file




File: QSCR20.DOC Date: 06-10-88 Page: 1


Contents;

Documentation for QSCR20.EXE - Quick Screen Generator Version 2.00

Written By; - Robert K. Wrenn Jr.
- 4014A Night Heron Court
- Waldorf, MD 20601

- Phone: (301) 843-7733



Program Files And Others Included;

QSCR20.DOC - This file...

QSCR20.EXE - Quick Screen Generator Program
- Version 2.0 Specifications:
- Size: 78570 Bytes Date: 06-10-88 Time: 05:22p
- Written with QuickBASIC Ver 3.0 BASIC Compiler
- Compiled using BASWIND2 user library written by
- Dave Evers for the slick window routines.

COLORS.SCR - Contains color scheme for binary screen saves and loads
- Updated with current colors when a binary screen is saved
- Read for previous colors when a binary screen is loaded

SCREEN.BIN - Sample binary screen to play around with.



Files created by QSCR20.EXE;

filename.QBS - QuickBASIC subroutine using GOSUB/RETURN commands

filename.QBC - QuickBASIC subroutine using SUB/ENDSUB and CALL commands

filename.BAS - Interpreter BASIC subroutine using GOSUB/RETURN commands

filename.BIN - Binary screen file using the BLOAD/BSAVE commands

Where 'filename' is any legal DOS filename 1-8 characters, the QBS, QBC,
BAS, and BIN extensions are added to the routine 'filename' by QSCR20.EXE.
The file is a copy of the entire screen in various forms which may be used
in other programs.



File: QSCR20.DOC Date: 06-10-88 Page: 2


Yet another screen program...

In fiddling with several screen draw/save type programs I saw the need for
something quick and easy. There is some pretty heavy code in both the
public and private sectors for drawing and manipulating screen/visual data.
However, everyone has something that everyone else wants. In other words,
'some' programs have features which make them nice, but are lacking in areas
that 'other' programs handle very strongly. These 'other' programs lack the
features which make the 'some' programs strong. So, you are into 2 and 3
different programs just to get 'all' of the features you require, messing
around, forgetting which command is which, etc. I needed something fast,
with a small group of commands to let me easily draw and save screens for
use in my BASIC programming projects. This program incorporates 'just' the
features that I need the most in one place, and, at one time.

Revision History;

This program was developed on an AT&T PC6300 with 640k RAM and a 20 Mb
fixed-disk, using the AT&T 640x400 monochrome monitor. This monitor is
CGA color compatible and displays colors as 16 shades of green. The
GWBASIC interpreter program was used as the first tool used for initial
development. All source code was then moved over to the QuickBASIC compiler
system to take full advantage of the structured and highly-ordered
environment that was offered. As a result the program code was basically,
pardon the pun, re-written a 'bit' at a time, ha. When I was satisfied with
the interactive interface I released QSCR10.EXE to the public domain. For
reference, the naming conventions are as outlined;

QSCRvr.ARC where v = version# (1..9)
|| r = release# (0..9)
version# / \ release#

Date: 01-01-87 - SCRNGEN.BAS - coded in standard BASIC and unreleased to
the public sector. Used as basis for QSCRxx development.

Date: 01-01-88 - QSCR10.EXE - first version and initial release of
QuickScreen drawing program.

Date: 06-01-88 - QSCR20.EXE - This release supersedes QSCR10.EXE. I felt
a new version number was necessary rather than a different release number
as many enhancements have been made to the source code.



File: QSCR20.DOC Date: 06-10-88 Page: 3


QSCR20.EXE - Additions And Revisions:

A few small bugs have bitten the dust as well as some new features have
been added, as follows;

] The box draw routine has been enhanced.

] Windows used in most other functions called a subroutine to actually draw
the window. This was error-prone and produced strange side effects if the
operator changed his/her mind in midstream. All functions now have their
own window call with constants rather than variables in a subroutine.
This has improved the speed at which the windows are drawn and removed.

] Command line handling of screen retrace test as been added. Screen
retrace is tested for by default. If you desire to disable the retrace
feature enter: 'QSCR20 1'. The '1' in the command line will disable the
screen retrace feature. Any other value, or no value, will enable screen
retrace and eliminate any 'snow' encountered when windows are drawn.
When testing for retrace is disabled windows can be drawn slightly faster.

] ALT-F1 through ALT-F4 will no immediately select one of the four
predefined function key sets as seen with the ALT-F keypress.

] ALT-N - new screen function has been added.

] ALT-P - Pen character selection has been added. Use ALT-P to define the
current pen character and use the INSERT key to toggle the pen up or down.

] The delete key has been enabled and will delete one (1) character to
the left of the cursor.

] Status line #24 has been modifed to display new program status
flags and indicators.

] ALT-H - Help screen has been modified slightly for ALT-Fn function key
description.

] Ability to generate program code for QuickBASIC GOSUB/RETURN and
SUB/ENDSUB, as well as Interpreter BASIC with line numbers.

] All File, (ALT-L/ALT-W/ALT-G), options now prompt for a file name.

] Monochrome operation is now supported.

] Various IF-THEN logic has been optimized for faster execution.

] Program documentation has been revised.

] Error trapping is now provided. In the event of unrecoverable error the
program will display a warning massage and error number. Please note this
number as it will aid in tracking those nasty little program logic bugs,
(rapidus bombus), and thus ensuring their inevitable demise and speedy
deliverance to null state - binary heaven...



File: QSCR20.DOC Date: 06-10-88 Page: 4


Upon execution the screen will be blank with the status lines present in
rows 23-25. The cursor is in the home position, (row 1, column 1).

Status Line Display Description;

line# 23 messages go here...
Row[ 1] Col[ 1] Mode[Curs] Fore[ 7] Back[ 0] Pen [Up] Chr[ ] Val[ 32] Alt-H
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 Help

Line# 23 - reserved for various messages to aid in program operation

Line# 24 - contains the following information:
Row[xx] - current cursor row position
Col[yy] - current cursor column position
Mode[xxxx] - Curs = cursor movement
- Text = enable keyboard for text and function keys
- Box = box drawing
Fore[nn] - current foreground color
Back[nn] - current background color
Pen[xx] - current pen status
- Up = pen up, cursor behaves normally
- Dn = pen down, pen character printed wherever cursor goes
Chr[x] - current pen character, initially set to space
Val[nnn] - current pen character value, initially set to space

Line# 25 - F1 through F10 current function key assignments
- enabled in Text mode
- instantly changeable with ALT-F1 through ALT-F4



Pressing ALT-H will display a help window with all program commands;

[ Help ]
ALT-B > Box Mode - Draw Various Sizes/Styles
ALT-C > Change Video Display Color Scheme
ALT-D > Delete Current Line
ALT-F > Function Key Assignments Menu [ Help ]
ALT-G > Generate Program Code Menu ALT-F1 >
ALT-H > Help Window - This Window... ALT-F2 >
ALT-L > Load Binary Screen ALT-F3 >
ALT-N > New Screen ALT-F4 >
ALT-P > Pen Character Change
ALT-R > Restore Line Stored In Buffer
ALT-S > Store Current Line In Buffer
ALT-T > Text Mode - Enable Keyboard
ALT-W > Write Binary Screen
ALT-X > eXit This Program


Command description detail is outlined in the following pages.



File: QSCR20.DOC Date: 06-10-88 Page: 5


COMMAND SUMMARY;

ALT-B - Box Mode:
This choice allows creation of boxes in one of four frame styles.
First, move the cursor to the upper-left corner of the box position and
press ALT-B. A dot character will appear as visual reference.
Line# 23 will prompt as follows;

BOX MODE - Move To Lower-Right Corner And Press [ALT-B] Again To Mark
Row[ 1] Col[ 1] Mode[Curs] Fore[ 7] Back[ 0] Pen [Up] Chr[ ] Val[ 32] Alt-H
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 Help

Next, move the cursor to the lower-right corner of the box and press ALT-B
again and the dot character will appear. Line# 23 will then prompt for a
box label;

[]
You May Enter Up To [ 7] Characters - Hit [RETURN] For No Label
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10

Enter any text between the brackets or press [RETURN] for no label.
Use the [BACKSPACE] key to correct any typing mistakes. Press [RETURN]
when done and the box will appear.

Notes: Boxes overwrite the entire area underneath. This includes borders
and all space between.

There are 4 frame styles available. The current frame style is the
same as the function current function key assignments. However, if
a custom function key set is defined then the default frame style
is the most recent frame style 1 through 4. See note concerning
frame styles in the function key assignments section.

Movement is not necessarily limited to the lower-right corner of
the box. If movement is inverted, ie to upper left corner, the box
coordinates are inverted accordingly.

ALT-C - Change Video Display Color Scheme:
This choice permits changing the current foreground and background colors.
Use the up/down arrow keys to increment/decrement the current selection.
The color will change interactively as the number changes. Use the [RETURN]
or the [TAB] key to move between 'Fore' and 'Back' input areas. Hit [ESC]
to quit, this will make the new 'Fore' and 'Back' color selections the
current colors. A Sample window;

[ Change Display Colors ]

Current Color Selection:

Fore[ 7] Back[ 0]

Hit [ESC] To Exit





File: QSCR20.DOC Date: 06-10-88 Page: 6


ALT-D - Delete Current Line:
This choice clears the current row to blanks in the current color scheme.

ALT-F - Change Function Key Assignments:
This choice allows re-assigning the function keys with different values.
There are four complete sets shown and a custom set is available. Key sets
1 through 4 determine which of the 4 different box frame styles will be
used. When the custom function key set is active, the default frame style
will be function key set to the legal frame style which was most recently
active. A sample window is shown below;

[ Function Key Sets ]

1 > Please Note:

2 > Some printers print key sets 2-4

3 > the same as key set 1.

4 >

5 > Custom Function Key Set

Enter 1-5 Or [RETURN] To Quit

Your Choice [ ]


Choice 5 displays the entire character set available with the unprintable
characters as a period '.'. Use the cursor keys to move around and press
[RETURN] to select and load the function key. Loaded keys are displayed in
a different color to indicate they have been changed. The current key number
is noted in the lower left corner of the character set window. Pressing the
[SPACEBAR] will advance the key number without any changes. When finished,
press [ESC] to exit with the new character set. When ALT-F is chosen again
the new set, or the most recent legal set, will be displayed in choice 5.

Notes: I chose not to include the character set window in this text as the
characters 0-31 act as printer control codes and wreak havoc when
dumped to the line printer.

ALT-F1 through ALT-F4 keys instantly select predefined keyset
1 through 4 respectively. This will also reset the current
frame style to the new function keyset.



File: QSCR20.DOC Date: 06-10-88 Page: 7


ALT-G - Generate Program Code:
This choice allows the current screen to be copied in an ASCII file with
the appropriate language statements for various BASIC calls. The selection
menu is shown below;

[ Generate Code ]

1 > QuickBASIC Subroutine

2 > QuickBASIC Call

3 > Interpreter BASIC

Enter 1-3 Or [RETURN] To Quit

Your Choice [ ]


Line #23 message area will display helpful remarks;

1 > GOSUB/RETURN 2 > SUB/ENDSUB 3 > BASIC [RETURN] > EXIT
Row[ 5] Col[ 1] Mode[Curs] Fore[ 7] Back[ 0] Pen [Up] Chr[ ] Val[ 32] Alt-H
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 Help

Type the number of your choice. Choice 1 will produce QuickBASIC code for
the GOSUB/RETURN procedure. Choice 2 will produce QuickBASIC code for the
SUB/ENDSUB procedure along with the CALL statement needed to perform the
procedure. Choice 3 will produce interpreted BASIC code for the GOSUB/RETURN
procedure and will contain line numbers. At this point type a number and
press [RETURN] or just press [RETURN] with no entry to quit or exit without
code generation. Upon reciept of a valid choice, Line #23 will prompt for a
file name (1-8 characters). Enter the file name or press [RETURN] to exit
without code generation. File naming conventions are shown below;

filename.QBS - QuickBASIC subroutine using GOSUB/RETURN commands

filename.QBC - QuickBASIC subroutine using SUB/ENDSUB and CALL commands

filename.BAS - Interpreter BASIC subroutine using GOSUB/RETURN commands

filename.BIN - Binary screen file using the BLOAD/BSAVE commands

Where 'filename' is any legal DOS filename 1-8 characters, the QBS, QBC,
BAS, and BIN extensions are added to the routine 'filename' by QSCR20.EXE.
The file is a copy of the entire screen in various forms which may be used
in other programs. Use a text editor and merge the modules in with other
programs. The DOS command COPY may also be used to merge modules together.
Consult your DOS manual for the use of the COPY command and concatenation
of files.



File: QSCR20.DOC Date: 06-10-88 Page: 8


ALT-L - Load Binary Screen:
Line #23 will prompt for a filename, (1-8 characters), the extension 'BIN'
is supplied to the filename. 'BIN' indicates 'Binary File', meaning, use
the BLOAD-BSAVE commands to manipulate the data. This choice allows the
current screen to be saved along with the current color scheme for later
recall. The screens are saved in a binary format and are usable from BASIC
in this form too. Please refer to appendix A example 1 on loading binary
screens for sample code.

ALT-N - New screen:
This choice will clear the screen to spaces in the current color scheme.

ALT-P - Pen character change:
This choice permits re-assigning the pen character value. When the pen is
down this character will be printed wherever the cursor goes. When invoked,
the character set window is displayed as with the ALT-F function key custom
key set. Move cursor with the arrow keys and press [RETURN] to select the
character of choice. Press [ESC] to exit the character set window. Use the
INSERT key to toggle the pen up and down. When the pen is down, the current
pen character will printed wherever the cursor goes. When the pen is up,
the cursor behaves as normal. Also, the cursor will shrink to denote the
pen is down and the status line will contain the current pen character
value and status.

Notes: This is similar to defining a custom function keyset, however, only
one character is selected. For the same reasons noted in the ALT-F
description I did not include the input window in this text.

ALT-R - Restore Line Stored In Buffer:
This choice restores the row saved with ALT-S to the current row erasing
the old line.

ALT-S - Store Current Line In Buffer:
This choice saves the current row for later recall with ALT-R.

ALT-T - Text Mode - Enable Keyboard:
This choice allows normal text and function key entry.

ALT-W - Write Binary Screen:
Line #23 will prompt for a filename, (1-8 characters), the extension 'BIN'
is supplied to the filename. 'BIN' indicates 'Binary File', meaning, use
the BLOAD-BSAVE commands to manipulate the data. This choice writes the
current display lines 1-22, columns 1-80 in a binary file for later recall.
Please refer to appendix A example 2 for saving binary screens for sample
code.

ALT-X - Exit This Program:
This choice exits the program. Line# 23 prompts for 'Y' or 'N' in case
the selection was inadvertent.



File: QSCR20.DOC Date: 06-10-88 Page: 9


Written By: Robert K. Wrenn Jr.
4014A Night Heron Court
Waldorf, MD 20601

Phone: (301) 843-7733

Please feel free to copy this program and give it to everyone you know.
I am not out for any huge returns for this program, however if you feel
that future revisions and other straight-forward utility programs pique
your interest, call or drop me a letter expressing your thoughts. Any
comments, criticisms, suggestions are all appreciated. I am also keeping
a database of names and addresses of registered users whom I will get back
to by mail with the advent of new revisions or releases of software. Users
will receive a short description of the software and the names and numbers
of all local BBS's I plan to try to upload to. Users who contribute $10.00
or more will receive the new software and documentation on diskette.



Future enhancements and wish list:

01) Response from the user community greatly affects project direction.

02) Add capability to generate full color ANSI.SYS compatible screens.

03) Variable default frame styles when the custom key set is active.

04) Tighten up delete key operations.

05) Add more values to the ALT-Fn keypress sequence.

06) Tighten ALT-F function key definition operations.

07) Continue to refine and optimize program code.



File: QSCR20.DOC Date: 06-10-88 Page: 10


Appendix A - Loading and Saving Binary Screens:



1) Loading a Binary Screen using QuickBASIC;

:' define variables
pagbas=&hb800 :' video buffer base address for color monitors
:' use &hb000 for monochrome monitors
offset=&h0000 :' starting byte to be loaded

:' load screen
def seg=pagbas :' set segment pointer to video buffer
bload "screen.bin",offset :' read binary file into buffer at byte 0
def seg :' reset segment pointer

The color scheme of the binary screen is saved in the file COLORS.SCR and
can be accessed as follows in QuickBASIC:

:' get screen colors
open "i",#1,"colors.scr" :' open for sequential read
input#1,fore%,back% :' read foreground and background values
close#1 :' close file
color fore%,back% :' set color scheme

Notes: The file COLORS.SCR need not be used as you may set any color scheme
you wish. COLORS.SCR is updated each time the ALT-W option is used.



2) Saving a Binary Screen using QuickBASIC;

:' Define variables
pagbas=&hb800 :' video buffer base address for color monitors
:' Use &hb000 for monochrome monitors
paglen=&h0dc0 :' number of lines to save to disk (22)
offset=&h0000 :' starting byte to be saved

:' save screen
def seg=pagbas :' set segment pointer to video buffer
bsave "screen.bin",offset,paglen :' save binary file to disk
def seg :' reset segment pointer

The color scheme of the binary is saved in the file COLORS.SCR as follows
in QuickBASIC:
:' save current colors
open "o",#1,"colors.scr" :' open for sequential write
print#1,fore%;",";back% :' write foreground and background values
close#1 :' close file

Notes: The above methods work with interpreter BASIC as well.



File: QSCR20.DOC Date: 06-10-88 Page: 11


Appendix B - Quick Reference Command Card Cut-Outs:



QSCR20.EXE ver 2.0
ALT-B > Box Mode - Draw Various Sizes/Styles Quick Reference Card
ALT-C > Change Video Display Color Scheme IBM print mode
ALT-D > Delete Current Line
ALT-F > Function Key Assignments Menu
ALT-G > Generate Program Code Menu ALT-F1 >
ALT-H > Help Window - This Window... ALT-F2 >
ALT-L > Load Binary Screen ALT-F3 >
ALT-N > New Screen ALT-F4 >
ALT-P > Pen Character Change
ALT-R > Restore Line Stored In Buffer
ALT-S > Store Current Line In Buffer
ALT-T > Text Mode - Enable Keyboard
ALT-W > Write Binary Screen
ALT-X > eXit This Program




+[ Help ]----------------------------------------+ QSCR20.EXE ver 2.0
| ALT-B > Box Mode - Draw Various Sizes/Styles | Quick Reference Card
| ALT-C > Change Video Display Color Scheme | ASCII print mode
| ALT-D > Delete Current Line |
| ALT-F > Function Key Assignments Menu | +--------------------+
| ALT-G > Generate Program Code Menu | | ALT-F1 > Key Set 1 |
| ALT-H > Help Window - This Window... | | ALT-F2 > Key Set 2 |
| ALT-L > Load Binary Screen | | ALT-F3 > Key Set 3 |
| ALT-N > New Screen | | ALT-F4 > Key Set 4 |
| ALT-P > Pen Character Change | +--------------------+
| ALT-R > Restore Line Stored In Buffer |
| ALT-S > Store Current Line In Buffer |
| ALT-T > Text Mode - Enable Keyboard |
| ALT-W > Write Binary Screen |
| ALT-X > eXit This Program |
+------------------------------------------------+



File: QSCR20.DOC Date: 06-10-88 Page: 12


Appendix C - Table Of Contents:



Page 01 ............. Cover Letter and Files Description

Page 02 ............. Personal Insights and Revision History

Page 03 ............. Additions and Revisions List

Page 04 ............. Initial Functional Description and Help Screen

Pages 05-08 .......... Command Summary

Page 09 ............. Closing Comments and Wish List

Page 10 ............. Appendix A - Loading and Saving Binary Screens

Page 11 ............. Appendix B - Quick Reference Command Card Cut-Outs

Page 12 ............. Appendix C - Table Of Contents (this page)



{eof QSCR20.DOC}



 December 22, 2017  Add comments

Leave a Reply