Category : C Source Code
Archive   : SCED15.ZIP
Filename : SCREDIT.DOC
SCREDIT
The Screen Management System
Version 1.04
June 30, 1990
USER'S MANUAL
Designed and Written by
Tim Underwood
Programs and Documentation Copyright (c) 1988, 1989,1990 by Tim
Underwood. All rights reserved.
Published by:
Tim Underwood
1719 S. Shiloh
Wichita, KS 67207 USA
316-687-5762
Electronic Mail to:
Compuserve 73577,1554
The Source Connection BBS (316)-687-0012 24hrs 300/1200/2400
8N1
PC-DOS, PC, PC XT, PC AT, and PS/2 are trademarks of IBM Corp.
MS-DOS, OS/2, and Windows are trademarks of Microsoft Corp.
TurboC is a trademark of Borland International.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood
Table Of Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . i
Registration Information . . . . . . . . . . . . . . . iii
SCREDIT License Agreement and Limited Warranty . . . . iv
Technical Support . . . . . . . . . . . . . . . . . . vi
Installation . . . . . . . . . . . . . . . . . . . . . . . . 1
Installing the Program . . . . . . . . . . . . . . . . . 2
Configuring SCREDIT . . . . . . . . . . . . . . . . . . . . . 3
Starting SCREDIT . . . . . . . . . . . . . . . . . . . . 5
SCREDIT Examples . . . . . . . . . . . . . . . . . . . . 6
Technical Information . . . . . . . . . . . . . . . . . . . . 7
Keyboard Actions within SCREDIT . . . . . . . . . . . . . . . 8
Function Definitions . . . . . . . . . . . . . . . . . . . . 9
abort_screen . . . . . . . . . . . . . . . . . . . . . 10
attr . . . . . . . . . . . . . . . . . . . . . . . . . 12
background . . . . . . . . . . . . . . . . . . . . . . 13
bad_amount . . . . . . . . . . . . . . . . . . . . . . 14
bad_date . . . . . . . . . . . . . . . . . . . . . . . 15
bad_entry . . . . . . . . . . . . . . . . . . . . . . 16
blank_status . . . . . . . . . . . . . . . . . . . . . 17
decimal_char . . . . . . . . . . . . . . . . . . . . . 18
disp_io_fields . . . . . . . . . . . . . . . . . . . . 19
disp_prompts . . . . . . . . . . . . . . . . . . . . . 20
display_status . . . . . . . . . . . . . . . . . . . . 21
drcr_symbol . . . . . . . . . . . . . . . . . . . . . 22
edit_input_fields . . . . . . . . . . . . . . . . . . 23
edithelp_io_fields . . . . . . . . . . . . . . . . . . 27
err_attrib . . . . . . . . . . . . . . . . . . . . . . 30
err_column . . . . . . . . . . . . . . . . . . . . . . 31
errmsg . . . . . . . . . . . . . . . . . . . . . . . . 32
error_window . . . . . . . . . . . . . . . . . . . . . 33
foreground . . . . . . . . . . . . . . . . . . . . . . 34
get_cursor_type . . . . . . . . . . . . . . . . . . . 35
getkey . . . . . . . . . . . . . . . . . . . . . . . . 36
make_bar_menu . . . . . . . . . . . . . . . . . . . . 37
make_pulldown_menu . . . . . . . . . . . . . . . . . . 40
make_window . . . . . . . . . . . . . . . . . . . . . 44
money_symbol . . . . . . . . . . . . . . . . . . . . . 47
move_window . . . . . . . . . . . . . . . . . . . . . 48
move_windows . . . . . . . . . . . . . . . . . . . . . 49
note . . . . . . . . . . . . . . . . . . . . . . . . . 50
num_decimals . . . . . . . . . . . . . . . . . . . . . 51
paint_bar_menu_select . . . . . . . . . . . . . . . . 52
remove_bar_menu . . . . . . . . . . . . . . . . . . . 54
remove_pulldown_menu . . . . . . . . . . . . . . . . . 55
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood
remove_window . . . . . . . . . . . . . . . . . . . . 56
req_error . . . . . . . . . . . . . . . . . . . . . . 57
restore_status . . . . . . . . . . . . . . . . . . . . 58
save_status . . . . . . . . . . . . . . . . . . . . . 59
scredit_colors . . . . . . . . . . . . . . . . . . . . 60
set_scrcolors . . . . . . . . . . . . . . . . . . . . 61
setcursor . . . . . . . . . . . . . . . . . . . . . . 62
stat_attrib . . . . . . . . . . . . . . . . . . . . . 63
status_row . . . . . . . . . . . . . . . . . . . . . . 64
tf_error . . . . . . . . . . . . . . . . . . . . . . . 65
undisp_prompts . . . . . . . . . . . . . . . . . . . . 66
xlate_colors . . . . . . . . . . . . . . . . . . . . . 67
yn_error . . . . . . . . . . . . . . . . . . . . . . . 68
ynb_error . . . . . . . . . . . . . . . . . . . . . . 69
HELP! . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood
Introduction
SCREDIT is a screen design utility program and library functions
designed to aid the programmer in creating and maintaining a
consistent user interface for programming. SCREDIT itself is a
WYSIWIG editor to design your screen, create both the header file
defining the data structure for the screen, as well as the
external definitions for the entry points to the screens.
SCREDIT has libraries for TURBOC 2.0, both small model and large
model.
"OK. Great. But why should I use SCREDIT instead of X Corp's
Screen Designer?".
SCREDIT is different in many ways to what you find in the
majority of commercial software. Most screen designers and
screen builders operate in one of the following manners:
1. They create a screen image on the disk, with a separate
screen image for each screen. A skeleton program may
be optionally created that saves you some work
initially. This results in three problems. You have
lots of screen images on the disk. This takes up a lot
of valuable space for the user of your software. You
also have a maintenance problem with your software.
You not only have to distribute updated programs, but
also updated screens. If the user doesn't update one of
the screens, the software probably won't know, and
won't operate properly. For the software that creates
skeleton code, you have another problem. You probably
won't use the code as is, you will 'tweak' it here or
there. This will result in more work for you when you
want to update the screen. You must either select to
create another skeleton program, transferring any and
all changes you made to the original code to this
skeleton code, or you must change your original code.
There is also a performance penalty that must be paid
each time a screen is 'loaded' from the disk. This
also creates another problem, the use of a file handle
or FCB. FCB's have been discouraged since the
introduction of DOS 2.0. Using FCB's also presents a
performance problem. They are not as fast as using
file handles. (Test it yourself. Open and close the
same file 1000 times using both an FCB and a file
handle, timing the entire loop. Handles are about 10
times faster.) Using a file handle for this process
also takes away one file handle you could use for your
program. Any medium to large scale program will need
as many handles as it can get. This means that you
must always leave one or more handles available to the
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood i
screen manager, or you run the risk of not being able
to open the screen file to load the screen.
2. They create screen libraries, each library holding one
or more screens. A skeleton program may be created
also. This option results in the same problems as
option 1; maintenance of not only the program, but also
its associated screen libraries, as well as a
performance penalty loading the screen from the library
on the disk. You may also 'lose' one or more file
handles.
3. They are simply a library of routines that you must use
to build your screen, one prompt field at a time, one
I/O field at a time. This method has several
advantages over #1 and #2. They don't use files, so
there isn't the performance penalty associated with
loading the data from the disk, and you don't lose any
file handles. They also have some problems. All that
data going to build those screens has to go somewhere,
namely in the Data Segment. That means that a program
that may work today, may not be able to be enhanced
next week, as you have finally used up the Data
Segment. You may not even be aware of the problem
until a user calls you and says, "An 'Out of Stack'
message just appeared on my screen. What do I do?", or
they may experience strange behavior in their programs
because the program has run out of stack, and stack
checking is not enabled. This means that you will have
to change the memory model of your program. Even using
an Overlay Linker may not solve your problem.
SCREDIT solves these problems. SCREDIT generates object files to
be linked into your program. This means that you don't have to
worry about sending updated screens with your updated programs,
as SCREDIT's screens are linked into your program. There is no
disk I/O performance penalty to pay either. Screen changes may
result in nothing more than re-linking your program to
incorporate those changes. The Data Segment problem is also
resolved. All of SCREDIT's screens, regardless of memory model,
are stored in the Code Segment. That means that even very large
Small Memory model programs may be created simply by using an
Overlay Linker. The code required to drive SCREDIT is very
simple, and may be duplicated from one source module to another,
requiring simple changes to accommodate each screen. It helps to
create modular code.
SCREDIT allows you to re-edit your original screen, directly from
the object. You won't have to create intermediate source to edit
the screens.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood ii
Registration Information
SCREDIT is a copyrighted program protected by both U.S. and
international copyright law. You are authorized to use it
without charge for a limited period of time under the terms of
the SCREDIT license agreement. After this time is up, you must
register and pay for SCREDIT to continue using it.
This method of distribution is known as shareware. It allows you
_________
to determine whether SCREDIT meets your needs before you pay for
it.
The registration fee for a single copy of SCREDIT is $50.
Payment of this fee entitles you to:
A disk with the latest version of SCREDIT, registered to
you.
An upgrade to the next version of SCREDIT, and reduced rates
on future upgrades.
Technical support via electronic mail.
If you prefer, you may register for $35 and receive only the disk
and notices of future upgrades. Network, site, and corporate
licenses are also available.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood iii
SCREDIT License Agreement and Limited Warranty
(1) The SCREDIT program and all other programs and documentation
distributed or shipped with it are copyrighted works
protected by U.S. and international copyright law. In the
rest of this document, this collection of programs is
referred to simply as "SCREDIT". You are granted a license
to use your copy of SCREDIT only under the terms and
conditions specified in this license agreement.
(2) SCREDIT is a commercial software package. It is not free,
and it is not in the public domain. It is distributed as
shareware, which means that before you pay for the package,
_________
you may try it and see if you want to continue using it.
You may use SCREDIT free for a trial period of up to 15
days. If you wish to continue using SCREDIT after that
period, you must pay the registration fee. If you choose
not to pay the registration fee, you must stop using SCREDIT
and remove it from your computer, though you are still free
to keep copies and pass them along to others.
(3) You may use your copy of SCREDIT on a single computer. You
may also install it on a computer attached to a network, or
remove it from one computer and install it on a different
one, provided there is no possibility that a single copy of
SCREDIT will be used on more than one computer at a time.
Network, site, and corporate licenses are available from Tim
Underwood.
(4) You may copy SCREDIT for backup purposes, and you may give
copies of the unregistered version of SCREDIT to other
individuals, which they may also use and copy under the
terms of this agreement. If you copy the unregistered
version of SCREDIT for others, you must include all of the
files distributed with it.
(5) You may NOT give, sell, or otherwise transfer copies of the
registered version of SCREDIT to any other person for any
reason. However, you may transfer ownership of your
registered copy to another person, provided that when you do
so, you stop using SCREDIT and remove it from your computer,
and notify Tim Underwood of the new owner.
(6) SCREDIT may be distributed by user groups or commercial
libraries. You may charge for distribution or mailing fees,
not to exceed $5. Only copies of the unregistered version
may be distributed, and all files included in the
unregistered version must be on the distribution diskette.
(7) SCREDIT is a powerful program. While all attempts have been
made to build in reasonable safeguards, if you do not use
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood iv
SCREDIT properly you may destroy files, or cause other
damage to your computer software and data. You assume full
responsibility for the selection and use of SCREDIT to
achieve your intended results; in no event shall Tim
Underwood be responsible for any damages whatsoever due to
errors in usage or your failure to read, understand, or
follow instructions in the documentation. Tim Underwood
limits his warranty to replacement of a defective program
diskette or manual.
(8) Like all useful computer software, SCREDIT may contain
errors in programs or documentation. If you find such an
error or are otherwise dissatisfied with a registered copy
of SCREDIT, you may return the entire package at any time up
to 90 days after purchase for a full refund of your original
registration fee; such a refund shall be your sole remedy
for any program error(s). Tim Underwood shall not be liable
for any other costs incurred by you due to such errors.
(9) If you do not agree with these terms and conditions, you do
not have permission from the copyright holder(s) to use
SCREDIT, and you must stop using it and remove it from your
computer.
(10) You may not reverse-engineer, disassemble, modify, decompile
or create derivative works of the product. You acknowledge
that the product includes certain trade secrets and
confidential information, all of which is the copyrighted
intellectual property of Tim Underwood.
(11) Any use or distribution of SCREDIT which violates this
license agreement will be considered a copyright violation,
and prosecuted to the full extend of the law.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood v
Technical Support
Technical support for SCREDIT is available to both registered and
non-registered users. If you are not a registered user, limited
assistance will be provided to help you get SCREDIT installed if
you contact me via The Source Connection BBS (see below). There
is a special area on this BBS for registered users.
If you are a registered user, you can contact Tim Underwood for
support at the following electronic addresses:
Compuserve:
Easyplex to 73577,1554
The Source Connection BBS:
(316)-687-0012 24hrs 300/1200/2400 8N1
Leave a message to Tim Underwood, or a comment to the
'SYSOP'.
Or via U.S. Mail at:
Tim Underwood
1719 S. Shiloh
Wichita, KS. 67207
Support via electronic mail is strongly preferred, as it allows
correspondence at convenient times regardless of time zones and
work schedules, and it provides a record of the communication.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood vi
Installation
SCREDIT is written for the IBM PC, PC/XT, PC/AT, PS/2 (all
models), and compatibles. It requires MS-DOS 2 or above (MS-DOS
3 or above is recommended), and uses a total of about 150K of
memory. Libraries are provided for TurboC 2.0.
The following files are included on your distribution disk:
SCREDIT.EXE Screen Object file maintenance program.
SCRDEMOS.LIB Small model library of routines for TurboC 2.0
(non-registered version only).
SCRDEMOL.LIB Large model library of routines for TurboC 2.0
(non-registered version only).
SCRDEMO.H Header file for SCREDIT functions (non-registered
version only).
GETKEY.H Header file for keyboard input functions and
return codes.
CURSOR.H Header file for cursor functions.
*MATHSTBS.OBJ Small model object to 'stub' out floating point
routines called in the registered version. May be
used when you do not desire to use floating point.
*MATHSBTL.OBJ Large model object to 'stub' out floating point
routines called in the registered version. May be
used when you do not desire to use floating point.
*SCREDITS.LIB Small model library of routines for TurboC 2.0
(registered version only).
*SCREDITL.LIB Large model library of routines for TurboC 2.0
(registered version only).
*SCRWIN.H Header file for windowing functions (registered
version only).
*SCREDIT.H Header file for SCREDIT functions (registered
version only).
* These files are included only with the registered version of
SCREDIT.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 1
Installing the Program
You should make sure that you have BUFFERS command in your
CONFIG.SYS file set to 20 or above.
To do this, edit your CONFIG.SYS file and add the following
command:
BUFFERS=20
If you wish to access SCREDIT from any place in your system, you
should install it in a directory that is currently in your PATH
environment variable, or the directory that SCREDIT is installed
in should be added to your PATH statement. The libraries should
be accessible by TLINK.EXE for linking into your programs. The
header files should be accessible by either TC.EXE or TCC.EXE for
compiling your programs.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 2
Configuring SCREDIT
You may configure SCREDIT by typing in 'SCREDIT', after it has
been installed. On the unregistered version, press any key to
remove the initial title screen.
Context sensitive help is available at all points in the system.
To get help, press the 'F1' key, and press 'ESC' to exit help.
Select the 'Options' option from the menu bar by typing 'O' or
moving the cursor to 'Options' and pressing ENTER.
You may now set the default directory, file extension, and
printer information. The information is saved within a file
named SCREDIT.CFG which is placed in the same directory as
SCREDIT.EXE. The configuration file should always be left in the
same directory as SCREDIT.EXE.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 3
Compatibility Notes
SCREDIT has been tested in a variety of environments, including
8088, 8086, V20, 80286, and 80386 processors. SCREDIT has been
tested with a variety of monitors, including Monochrome, CGA, EGA
and VGA. It has been tested with MS-DOS/PC-DOS 2.0 - 4.01. If
you find what appears to be a compatibility problem with SCREDIT,
please contact Tim Underwood. I will do my best to fix it, or if
necessary I will refund your registration fee.
A new Video Startup routine has been provided with the SCREDIT
Libraries. This Startup emulates the standard TurboC video
startup function, but has been changed to NOT reset the video
mode already existing. The standard Video startup function in
TurboC resets the video mode to CGA if it is not Mono or CGA.
This new function has been provided so that you may set your
monitor to any EGA/VGA text mode you wish (80x30, 132x25, 132x50,
etc.), and this mode will not be reset when starting up SCREDIT,
or your programs when the SCREDIT Library is linked in.
SCREDIT.EXE reprograms the video parameters to attain 26 or more
lines of display for a status line, still allowing you to use 25
lines to create your screens. THE LIBRARY FUNCTIONS DO NOT
REPROGRAM THE VIDEO PARAMETERS IN ANY WAY.
CGA screens are reprogrammed to display 26 lines.
EGA/VGA screens are reprogrammed to display 29 lines.
Upon termination of SCREDIT, the display will be returned to its
normal video status, and the number of lines the display was
originally configured with prior to the execution of SCREDIT.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 4
Using SCREDIT
This section briefly reviews SCREDIT features, and provides some
examples of how SCREDIT can help you develop user interfaces for
your programs. It only covers a few of the many ways SCREDIT can
be used, but it should help you start thinking about the
possibilities.
Starting SCREDIT
Start by typing in 'SCREDIT' and pressing ENTER. General key
usage is as follows:
To go back a level or abort an operation, press the ESC key.
Menu Selections are made through either 'Bar' menus or
'Pulldown' menus. You may make your selections on these
menus by either pressing the first (highlighted) letter of
each option, or by using the cursor keys to highlight the
desired option and pressing ENTER.
Context sensitive help may be obtained at any location
throughout the system by pressing F1.
For key usage during Editing/Creating a Screen Object, press
F1 while editing.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 5
SCREDIT Examples
For examples on using SCREDIT, refer to the sample screens and
files.
DISPLAY.C
DISPLAY.H
DISPLAY.SBJ Examples of a simple display-only screen,
along with source and comments.
INPUT.C
INPUT.H
INPUT.SBJ Examples of a user interface, showing
examples of input fields, display fields,
error messages, etc.
WINDOW.C Examples of windowing interfaces, showing
windows, bar-menus and pulldown menus.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 6
Technical Information
SCREDIT was developed using TurboC 1.5 and 2.0. In almost all
cases, functions provided by the TC Libraries have been used.
This was done to simplify the coding and maintenance of the
product, as well as to help ensure that the code provided was as
compatible with TC as possible, as well as small as possible.
(It should also help in an OS/2 or Windows compatible compiler
from Borland).
Several other packages will replace nearly every function
available within a compiler with their own inventions. As
SCREDIT is not intended at this stage to go beyond the IBM PC
compatible arena, I have not considered this to be important at
this time. This software is based strongly on functions already
provided by the TurboC libarary functions.
MATHSTB?.OBJ objects have been provided in the registered
version. This is to stub out floating point routines used within
the SCREDIT libraries to implement floating point numbers. (See
the compiler manual regarding compiling without floating point).
This does mean, of course, that floating point numbers may not be
displayed or input using SCREDIT if these objects have been
linked in with your .EXE. If you inadvertently call a floating
point routine and these objects are linked, the program will
terminate with an error message indicating that a floating point
routine has been called, and is not supported.
It is suggested that SCREDIT?.LIB be listed first in the
libraries to be used for linking. This should be done in case
you are using a linker that will not search through the libraries
for unresolved externals.
CARE SHOULD BE TAKEN in attempting to use SCREDIT in TSR's.
SCREDIT itself should be completely compatible in TSR's, although
not all of the functions provided in the TC libraries are able to
be used in certain situations within TSR's. Most notably, this
applies to the direct video functions gettext, window, cprintf,
etc., when used within an ISR that is linked to INT 08, or INT 1C
(the timer interrupts). The default TurboC libarary uses INT 10
functions to determine current cursor position, video mode, etc.
Using these functions from within the timer interrupt will crash
the system.
In replacing any of the TC library routines, you should implement
all of the functionality that the original routine had. SCREDIT
does not take advantage of certain quirks of the library
routines, such as scrolling within the active window when
printing in the last character position using cprintf. The
original functionality of the function must be maintained.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 7
Keyboard Actions within SCREDIT
Once the function edit_input_fields has been called, it will
_________________
process the following keystrokes:
Up Arrow - positions the cursor in the first character
position of the previous field.
Down Arrow - acts as a 'field exit' and positions the cursor
in the first character of the next field.
Left Arrow - moves the cursor left one space, if the cursor
is on the first character position of a field, the
cursor will go to the previous field. If the
field is an OPTION field, then this will scroll
through the selections available within this
field.
Space Bar - if the current field is an OPTION field,
pressing the Space Bar will act the same as thr
Right Arrow key in an OPTION field. Any other
field simply generates a space.
Right Arrow - moves the cursor right one space, if the cursor
is on the last character position of a field, the
cursor will go to the next field. If the field is
an OPTION field, then this will scroll through the
selections available within this field.
Home - moves the cursor to the first position of the
first field on the screen.
End - moves the cursor to the first blank character at
the end of the current field.
Backspace - if the cursor is not in the first character
position of a field, deletes the character to the
left of the cursor and moves the cursor left one
space.
Insert - toggles insert mode.
Delete - deletes the character above the cursor, moving
all characters right of the cursor position to the
left one space.
Tab - acts as a 'field exit' to go to the next field.
BackTab - acts as a 'field exit' to go to the previous
field.
Ctrl-Enter - clears the field from the current cursor
position to the end of the field, and exits the
field to go to the next field.
Esc - exit the editing process, all fields are in an
indeterminate state.
All other function keys (F1-F12, Ctrl, Alt, and Shift), the Enter
key, and Paging keys will exit the editing process and return to
the caller, with the key used to exit the editing process, as
well as the field at which the editing process was terminated.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 8
Function Definitions
The following pages describe the available functions in SCREDIT.
Functions beginning with '[*]' are available in the Registered
Version of SCREDIT ONLY.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 9
[*]abort_screen
Function Defines the function address of the abort_screen
call.
Syntax extern void (*abort_screen)(int err);
Prototype in scredit.h
Remarks This function address is pre-initialized to an
internal routine that is called whenever a
critical screen error occurs. This routine is
called under the following conditions:
1 - During a call to disp_prompts, and
disp_prompts detects an invalid screen. The
abort_screen function is called with an error
of 1.
2 - During a call to undisp_prompts, and
undisp_prompts detects an invalid screen.
The abort screen function is called with an
error of 1.
3 - During a call to edit_input_fields, and the
offset passed is not an input field. The
abort screen function is called with an error
of 1.
4 - During a call to edit_input_fields, and the
offset passed is beyond the logical end of
all fields within the screen. The abort
screen function is called with an error of 1.
5 - During a call to edit_input_fields, when
the cursor is being moved to the next field,
and it is found to be beyond the logical end
of all fields within the screen. The abort
screen function is called with an error of 1.
The default function pointed to by abort_screen
simply waits for a keystroke and terminates the
program.
Return value void
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 10
See also disp_prompts (Pg 20), undisp_prompts (Pg 66),
edit_input_fields (Pg 23)
Example void (*abort_screen)(int err);
To call the abort_screen function yourself, issue
the command:
(*abort_screen)(1);
To replace the abort_screen with a function of
your own, create a function with the same calling
sequence as the abort_screen definition, and set
this address to the address of your new function,
as follows:
extern void (*abort_screen)(int err);
void my_abort(int err)
{
switch(err) {
case 1: /* do error function 1 */
break;
case 2: /* do error function 2 */
break;
case 3: /* do error function 3 */
break;
}
}
void main(void)
{
abort_screen = my_abort;
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 11
attr
Function Creates a text foreground/background attribute
Syntax
#define attr(fore,back) ((((back) << 4) | (fore)))
Prototype in scrwin.h
Remarks attr is a macro to create foreground/background
attributes. The color definitions in conio.h may
be used.
Return value A char or int value with the created attribute.
See also background (Pg 13), foreground (Pg 34)
Example #include "conio.h"
#include "scrwin.h"
int c;
c = attr(BLUE, LIGHTGRAY); /* returns an
attribute with a
BLUE foreground and
a LIGHTGRAY
background */
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 12
background
Function Returns the background color of an attribute.
Syntax #define background(a) (((a) & 0xF0) >> 4)
Prototype in scrwin.h
Remarks background is a macro which will return a char or
int value of the background color of a text
attribute.
Return value The background attribute color.
See also attr (Pg 12), foreground (Pg 34)
Example #include "conio.h"
#include "scrwin.h"
char c;
c = background(attr(BLUE,LIGHTGRAY)); /* Returns
LIGHTGRAY
*/
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 13
[*]bad_amount
Function Defines the default error message when a user
enters an invalid numeric amount in a numeric
field.
Syntax extern char *bad_amount;
Prototype in scredit.h
Remarks The default message is "Invalid Amount". This
message may be changed by the program. This
message will appear anytime the cursor is in a
Numeric field, and the user enters an amount which
cannot be converted from ASCII to numeric.
Return value
See also
Example extern char *bad_amount;
char *new_message={"Enter a Correct Number"};
bad_amount = new_message;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 14
[*]bad_date
Function Defines the default error message when a user
enters an invalid date amount in a date field.
Syntax extern char *bad_date;
Prototype in scredit.h
Remarks The default message is "Invalid Date". This
message may be changed by the program. This
message will appear anytime the cursor is in a
Date field, and the user enters an date which
cannot be decoded.
Return value
See also
Example extern char *bad_date;
char *new_message={"Enter a Valid Date"};
bad_date = new_message;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 15
[*]bad_entry
Function Defines the default error message when a user
enters something in a field, and SCREDIT cannot
decode it properly.
Syntax extern char *bad_entry;
Prototype in scredit.h
Remarks The default message is "Invalid Entry". This
message may be changed by the program. This
message will appear anytime the cursor is in a
Date field, and the user enters somehting in a
field which SCREDIT cannot decode properly.
Return value
See also
Example extern char *bad_entry;
char *new_message={"Error Intrepreting Entry"};
bad_entry = new_message;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 16
blank_status
Function Blanks the status line with the default colors
Syntax void blank_status(void)
Prototype in scredit.h
Remarks Blanks the status line with the default status
line attribute.
Return value void
See also stat_attrib (Pg 62, 63), save_status (Pg 59),
restore_status (Pg 58), note (Pg 50), errmsg (Pg
32)
Example void foo(void) /* Yes, you knew 'foo' would
appear somewhere */
{
save_status();
blank_status();
.
.
.
restore_status();
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 17
[*]decimal_char
Function Defines the default decimal symbol
Syntax extern char decimal_char;
Prototype in scredit.h
Remarks Defaults to '.'. May be changed by the program.
Return value
See also
Example extern char decimal_char;
decimal_char = ',' /* decimal char is now a comma
*/
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 18
disp_io_fields
Function Displays and converts all the data in I/O fields
in a screen.
Syntax
void disp_io_fields(void far(*scrnptr)(), void *struc_buf);
Prototype in scredit.h
Remarks This call will display all of the I/O fields
within the screen. It is automatically called by
edit_input_fields, so a seperate call to this
routine is not necessary unless you simply wish to
display the data, or all of the I/O fields on the
screen are display only.
Return value void
See also edit_input_fields (Pg 23)
Example struct sc_screendata {
char name[31];
char address1[31];
char address2[31];
char city[31];
char state[3];
};
extern void sc_screen_inp(void);
extern void sc_screen_pmt(void);
void main(void)
{
struct sc_screendata scr;
disp_prompts(sc_screen_pmt);
disp_io_fields(sc_screen_inp, &scr);
.
.
.
.
undisp_prompts(sc_screen_pmt);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 19
disp_prompts
Function Displays static screen data
Syntax void disp_prompts(void far (*scrnptr)());
Prototype in scredit.h
Remarks This call displays the static screen data. Each
screen, regardless of size, is really a 'window'.
The window is created, and all information
underneath the screen is saved. When
undisp_prompts is called, this data will be
restored. Any errors encountered during this call
will display an error message and will call
abort_screen.
Return value void
See also undisp_prompts (Pg 66), abort_screen (Pg 10)
Example extern void sc_screen_pmt (void);
void main(void)
{
disp_prompts(sc_screen_pmt);
.
.
.
.
undisp_prompts(sc_screen_pmt);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 20
[*]display_status
Function Defines whether or not a status line should be
displayed.
Syntax extern char display_status;
Prototype in scredit.h
Remarks The default is FALSE, no status line will be
displayed. By setting this value to TRUE, a
status line will be displayed. Any text
underneath a status line is always saved, and will
be restored.
Return value
See also stat_attrib (Pg 62, 63)
Example extern char display_status;
display_status = TRUE;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 21
[*]drcr_symbol
Function Defines the default Debit/Credit symbol
Syntax extern char *drcr_symbol;
Prototype in scredit.h
Remarks The default DR/CR symbol is "<>". This is a two
character string. When reassigning it, only the
first two characters of the string will be used.
The first character is the character that will be
displayed to the left of the number, the second
character is the character that will be displayed
to the right of the number. If a numeric field
uses this field attribute, these characters will
replace the negative sign in any numeric numbers.
Return value
See also
Example extern char *drcr_symbol;
char *new_values={"[]"};
drcr_symbol = new_values;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 22
edit_input_fields
Function Enters the screen to allow data entry
Syntax
int edit_input_fields(void far (*flds)(), void *struc_buf, void
far **offset);
Prototype in scredit.h
Remarks Allows user entry of the data within the screen.
flds is the pointer to the screen, defined in the
header file for the screen.
struc_buf is the address of the data structure.
offset is the address of a data pointer that
points to the address of an input field where you
wish data entry to begin.
Return value int - The key the user pressed to exit the screen.
Possible exit keys are: ENTER, ESC, all Function
keys, PGUP, PGDN, etc. A new value has been
added, if a field is a PROCESS_FIELD type. Any
time a field that has this attribute on it is
exited in a 'forward' fashion (TAB, DOWN ARROW,
etc.), edit_input_fields will exit allowing the
caller to do 'extra processing'. Changes may be
made in the screen buffer, and edit_input_fields
may be called again to display the new data.
offset is returned with the address of the field
that was active when the exit occurred. This may
be used to determine which field the user was in
when a function key, etc., was pressed.
See also disp_io_fields (Pg 19), edithelp_io_fields (Pg 27)
Example1 extern void sc_screen_pmt(void);
extern void sc_screen_inp(void);
struct sc_screen {
int customer_nbr;
char name[31];
char address1[31];
char address2[31];
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 23
char
long balance;
};
void main(void)
{
struct sc_screen scr;
void far *offset;
int ret, exit;
disp_prompts(sc_screen_pmt);
/* skip customer_nbr as it is a display only
field */
offset = &scr.name;
do {
exit = FALSE;
ret = edit_input_fields(sc_screen_inp,
&scr, &offset);
switch(ret) {
case F1 :
display_help_screen();
continue;
case PGDN :
display_page_two();
continue;
/* now do some testing of fields */
case ENTER :
if (scr.balance < 0L) {
errmsg("Balance must be greater
than 0.00");
/* place cursor in balance field */
offset = &scr.balance;
continue; /* continue loop */
}
/* if all is OK, then let fall into ESC
case so that screen will be cleared and
exit will be set to drop out of loop */
case ESC :
undisp_prompts(sc_screen_pmt);
exit = TRUE;
break;
}
} while (!exit);
}
Example2 extern void sc_screen_pmt(void);
extern void sc_screen_inp(void);
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 24
struct sc_screen {
int customer_nbr;
char name[31];
char address1[31];
char address2[31];
char
long old_balance;
long tran_amount;
long new_balance;
};
void main(void)
{
struct sc_screen scr;
void far *offset;
int ret, exit;
disp_prompts(sc_screen_pmt);
/* skip customer_nbr as it is a display only
field */
offset = &scr.name;
do {
exit = FALSE;
ret = edit_input_fields(sc_screen_inp,
&scr, &offset);
switch(ret) {
case PROCESS_FIELD :/* xtra processing*/
/* test to see if this is our
field*/
if (offset = &tran_amount) {
new_balance = old_balance +
tran_amount;
/* now we will 'drop thru' the do-
while, and redisplay the screen
with the new balance */
}
case F1 :
display_help_screen();
continue;
case PGDN :
display_page_two();
continue;
/* now do some testing of fields */
case ENTER :
if (scr.balance < 0L) {
errmsg("Balance must be greater
than 0.00");
/* place cursor in balance field */
offset = &scr.balance;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 25
continue; /* continue loop */
}
/* if all is OK, then let fall into ESC
case so that screen will be cleared and
exit will be set to drop out of loop */
case ESC :
undisp_prompts(sc_screen_pmt);
exit = TRUE;
break;
}
} while (!exit);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 26
edithelp_io_fields
Function Enters the screen to allow data entry, with field
help.
Syntax int edit_input_fields(void far (*flds)(), void
*struc_buf, void far **offset, char **help);
Prototype in scredit.h
Remarks Allows user entry of the data within the screen,
while displaying optional help information about
each field.
flds is the pointer to the screen, defined in the
header file for the screen.
struc_buf is the address of the data structure.
offset is the address of a data pointer that
points to the address of an input field where you
wish data entry to begin.
help is a string pointer array, that contains help
text for each field of the screen. All fields,
including display only fields, must have help
text, although it may be a pointer to a NULL
string.
Return value int - The key the user pressed to exit the screen.
Possible exit keys are: ENTER, ESC, all Function
keys, PGUP, PGDN, etc. A new value has been
added, if a field is a PROCESS_FIELD type. Any
time a field that has this attribute on it is
exited in a 'forward' fashion (TAB, DOWN ARROW,
etc.), edit_input_fields will exit allowing the
caller to do 'extra processing'. Changes may be
made in the screen buffer, and edit_input_fields
may be called again to display the new data.
Extra processing is supported in this function as
well (for more information about extra processing
fields, see edit_input_fields Pg 23).
offset is returned with the address of the field
that was active when the exit occurred. This may
be used to determine which field the user was in
when a function key, etc., was pressed.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 27
See also disp_io_fields (Pg 19), edithelp_io_fields (Pg 27)
Example extern void sc_screen_pmt(void);
extern void sc_screen_inp(void);
struct sc_screen {
int customer_nbr;
char name[31];
char address1[31];
char address2[31];
char
long balance;
};
char *help_text[]={"", /* NULL for display fld*/
"Enter the customer name",
"Enter the customer's address",
"Enter the customer's second line
address",
"Enter the customer's balance"};
void main(void)
{
struct sc_screen scr;
void far *offset;
int ret, exit;
disp_prompts(sc_screen_pmt);
/* skip customer_nbr as it is a display only
field */
offset = &scr.name;
do {
exit = FALSE;
ret = edithelp_io_fields(sc_screen_inp,
&scr, &offset, help);
switch(ret) {
case F1 :
display_help_screen();
continue;
case PGDN :
display_page_two();
continue;
/* now do some testing of fields */
case ENTER :
if (scr.balance < 0L) {
errmsg("Balance must be greater
than 0.00");
/* place cursor in balance field */
offset = &scr.balance;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 28
continue; /* continue loop */
}
/* if all is OK, then let fall into ESC
case so that screen will be cleared and
exit will be set to drop out of loop */
case ESC :
undisp_prompts(sc_screen_pmt);
exit = TRUE;
break;
}
} while (!exit);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 29
[*]err_attrib
Function Defines the default text attribute of an error
message on the status line.
Syntax extern char err_attrib;
Prototype in scredit.h
Remarks The default attribute of an error message is RED
on LIGHTGRAY. This value may be changed by the
program.
Return value
See also errmsg (Pg 32)
Example extern char err_attrib;
/* error message is now YELLOW on BLACK */
err_attrib = attr(YELLOW,BLACK);
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 30
[*]err_column
Function Defines the default column of an error message on
the status line.
Syntax extern char err_column;
Prototype in scredit.h
Remarks The default value is 16. errmsg and note will
start their messages in this column. Messages
that are too long will be truncated.
Return value
See also status_row (Pg 64), errmsg (Pg 32), note (Pg 50)
Example extern char err_column;
/* messages will start at column 1 */
err_column = 1;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 31
errmsg
Function Displays an error message on the status line.
Syntax void errmsg(char *msg);
Prototype in scredit.h
Remarks Displays an error message on the status line using
the err_attrib text attribute.
Return value void
See also err_attrib (Pg 30), note (Pg 50), blank_status (Pg
14), save_status (Pg 59), restore_status (Pg 58)
Example int funcx(void)
{
/* Please tone down error messages */
errmsg("PRESS THE RIGHT KEY DUMMY!!");
}
void funcy(int value, char *buf)
{
char msg[80];
sprintf(msg, "%s is at %d% over capacity",
buf, value);
errmsg(msg);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 32
[*]error_window
Function Displays an error message window
Syntax void error_window(char *msg);
Prototype in scrwin.h
Remarks Displays an error window, with the message, and a
prompt for the user to press the ESC key to exit
the error window.
Return value void
See also
Example error_window("Must enter 'Y' or 'N');
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 33
foreground
Function Returns the foreground color of an attribute
Syntax #define foreground(a) ((a) & 0x0F)
Prototype in scrwin.h
Remarks foreground is a macro which will return a char or
int value corresponding to the foreground color of
a text attribute.
Return value The foreground attribute color.
See also attr (Pg 12), background (Pg 13)
Example #include "conio.h"
#include "scrwin.h"
char c;
/* Returns RED */
c = foreground(attr(RED,LIGHTGRAY));
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 34
get_cursor_type
Function Returns the current cursor type
Syntax unsigned int get_cursor_type(void);
Prototype in cursor.h
Remarks Returns the current cursor shape.
Return value unsigned int corresponding to the current cursor.
See also setcursor (Pg ?)
Example {
unsigned int old_cursor;
old_cursor = get_cursor_type();
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 35
getkey
Function Keyboard interface, using BIOS services
Syntax int getkey(int type);
Prototype in getkey.h
Remarks Gets a keystroke from BIOS.
type may be one of the following:
0 - wait for keystroke. The keystroke will be
returned as an integer. If the key is a
character between 0 and 255, then 0 thru 255
will be returned. All other key returns are
defined in getkey.h
1 - test for keystroke availability. Returns 0
if no keystroke is available, otherwise
returns the keystroke. The keystroke is left
in the keyboard buffer.
2 - get current shift flags.
Return value int
See also
Example {
int key;
key = getkey(0); /* wait for keystroke */
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 36
make_bar_menu
Function Creates a bar menu
Syntax int make_bar_menu(POPBAR far *bar_buf, int row);
Prototype in scrwin.h
Remarks make_bar_menu creates a bar-type menu on the
specified row of the screen. It allows the use of
both 'hotkeys' as well as arrow keys in
conjunction with the ENTER key.
bar_buf is the address of a POPBAR structure.
Before the first call to make_bar_menu, this
structure should be initialized as follows:
init indicates whether or not the window has been
initialized. Before calling make_bar_menu, it
should be set to UNINIT.
attrib is the foreground/background color of the
entire bar.
norm_attrib is the foreground/background color of
each selection on the bar menu.
hilit_attrib is the foreground/background color of
a hilited selection.
lnorm_attrib is the normal foreground/background
color of the 'hot' letter of the selection.
lhilit_attrib is the foreground/background of the
'hot' letter when it is in a hilited selection.
'Hot' letters are the first letter of each
selection passed in **selections.
hotactive indicates whether or not 'hotkeys' are
active. If set to TRUE, 'hotkeys' will be active,
if FALSE, 'hotkeys' will not be active. 'Hotkeys'
allow selection of a menu item by the user
pressing the corresponding letter for a menu item.
This will be matched against the internally built
'hot' letters.
**selections is a pointer to an array of string
pointers. The array member after the last valid
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 37
selection must be NULL. The 'hotkeys' are built
from the first UPPERCASE letter within each
selection.
center_selections is a boolean value (TRUE/FALSE)
that allows you to center all of your selections
within the row. If set to TRUE (not 0), the
selections will be centered within the row. If
set to FALSE (0), the selections will be left-
justified within the row.
fill_char is the character to fill the background
of the row with.
You do not have to remove the bar menu when
executing the function a user has selected.
make_bar_menu, if called again, will already know
that a bar menu exists, and will not create one
again.
Return value -1 indicates that the window for the bar menu
could not be created. ESC (defined in 'getkey.h')
will be returned if the user pressed the Escape
key to exit the bar menu. A return code of 0 - n
indicates the selection the user made,
corresponding to the selection they made.
See also paint_bar_menu_select (Pg 52), remove_bar_menu (Pg
54)
Example **selections may be built in one of two ways:
{
char *selections[]={"A", "B", "C", "D", "E",
""}; /* note that a NULL string follows
the last valid selection */
}
or:
{
char *selections[10];
int x;
setmem(selections, sizeof(selections), 0);
for (x = 0; x < num_strings; x++)
selections[x] = &string;
}
{
POPBAR x;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 38
int ret;
x.init = UNINIT;
x.attrib = attr(BLACK, CYAN);
x.norm_attrib = attr(BLACK,CYAN);
x.hilit_attrib = attr(BLACK,LIGHTGRAY);
x.lnorm_attrib = attr(RED,CYAN);
x.lhilit_attrib = attr(RED,LIGHTGRAY);
x.hot_active = TRUE;
x.selections = menu;
x.center_selections = TRUE;
x.fill_char = ' ';
do {
ret = make_bar_menu(&x);
switch(ret) {
case -1 : return; /* an error
occured */
case ESC : remove_bar_menu(&x);
return;
case 0 : /* user selected "A" */
break;
case 1 : /* user selected "B" */
break;
case 2 : /* user selected "C" */
break;
case 3 : /* user selected "D" */
break;
case 4 : /* user selected "E" */
break;
} /* end of switch */
} while (ret != ESC);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 39
make_pulldown_menu
Function Creates a pulldown-type menu window
Syntax int make_pulldown_menu(PULLDOWN far *pull);
Prototype in scrwin.h
Remarks make_pulldown_menu creates a pulldown-type menu on
a selected row and column of the screen. It
allows the use of both 'hotkeys' as well as arrow
keys in conjunction with the ENTER key. It also
optionally allows the use of an 'enumeration'
function that allows selections to be selected by
a number.
pull is the address of a PULLDOWN structure.
Before the first call to make_pulldown_menu, this
structure should be initialized as follows:
init indicates whether or not the window has been
initialized. Before calling make_bar_menu, it
should be set to UNINIT.
row is the row desired for display, it must be 2
or greater.
col is the column desired for the display.
attrib is the foreground/background color of the
entire pulldown menu.
norm_attrib is the foreground/background color of
each selection on the pulldown menu.
hilit_attrib is the foreground/background color of
a hilited selection.
lnorm_attrib is the normal foreground/background
color of the 'hot' letter of the selection.
lhilit_attrib is the foreground/background of the
'hot' letter when it is in a hilited selection.
'Hot' letters are the first letter of each
selection passed in **selections.
bdr_type selects the border type desired:
No_Border, Single_Border, Double_Border.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 40
enumerate is a value indicating whether selections
should be enumerated. No_Enumerate indicates that
enumeration should not be used. Enum_0_Relative
indicates that enumeration should be used, the
first selection being 0, then 1-9.
Enum_1_Relative indicates that enumeration should
be used, the first selections being 1-9, followed
by 0.
passkey is a boolean type. If set to TRUE, the
users keystrokes will be normally processed, and
after the processing occurs, the key the user
pressed will be returned back to the calling
function. This allows action upon keys such as
F1-F10, PGUP, PGDN, etc.
hotactive indicates whether or not 'hotkeys' are
active. If set to TRUE, 'hotkeys' will be active,
if FALSE, 'hotkeys' will not be active. 'Hotkeys'
allow selection of a menu item by the user
pressing the corresponding letter for a menu item.
This will be matched against the internally built
'hot' letters.
title is a string indicating what the title of the
pulldown menu should be. Strings may be passed in
the calling sequence. To prevent a title from
being displayed, pass a NULL string ("").
**selections is a pointer to an array of string
pointers. The array member after the last valid
selection must be NULL. The 'hotkeys' will be
built from the first UPPERCASE letter in each
string.
fill_char is the character to fill the background
with. If this value is NULL (0x00), it will be
defaulted to a blank (0x20).
You do not have to remove the pulldown menu when
executing the function a user has selected.
make_pulldown_menu, if called again, will already
know that a pulldown menu exists, and will not
create one again.
Return value -3 will be returned if the row is less than 2.
Pulldown menus may only be created on lines 2-n.
-3 will also be returned if you have selected the
enumerate option, and have passed in more than 10
selections. -3 may also be returned if the total
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 41
number of rows is greater than 25 rows, of if the
total number of columns is greater than 80.
In any of the above cases, an error message window
will be displayed indicating what the error is.
-1 will be returned if there was an error
allocating memory to save the screen text
underneath the pulldown menu. ESC (defined in
'getkey.h') will be returned if the user pressed
the Escape key to exit the bar menu. A return
code of 0 - n indicates the selection the user
made, corresponding to the selection they made.
See also remove_pulldown_menu (Pg 55)
Example **selections may be built in one of two ways:
char *title = {"Test"};
{
char *selections[]={"One", "Two", "tHree",
"Four", "fIve", ""};
/* note that a NULL string follows the
last valid selection */
}
or:
{
char *selections[10];
int x;
setmem(selections, sizeof(selections), 0);
for (x = 0; x < num_strings; x++)
selections[x] = &string;
}
{
PULLDOWN x;
int ret;
x.init = UNINIT;
x.row = 2;
x.col = 2;
x.attrib = attr(BLACK,CYAN);
x.norm_attrib = attr(BLACK,CYAN);
x.hilit_attrib = attr(BLACK,LIGHTGRAY);
x.lnorm_attrib = attr(RED,CYAN);
x.lhilit_attrib = attr(RED,LIGHTGRAY);
x.bdr_type = Single_Border;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 42
x.e_value = No_Enumerate;
x.passkey = FALSE;
x.hot_active = TRUE;
x.title = title;
x.selections = selections;
x.fill_char = ' ';
do {
ret = make_pulldown_menu(&x);
switch(ret) {
case -3 :
case -1 : return; /* an error
occured */
case ESC : remove_pulldown_menu(&x);
return;
case 0 : /* user selected "One" */
break;
case 1 : /* user selected "Two" */
break;
case 2 : /* user selected "tHree" */
break;
case 3 : /* user selected "Four" */
break;
case 4 : /* user selected "fIve" */
break;
} /* end of switch */
} while (ret != ESC);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 43
make_window
Function Creates a text window.
Syntax WINDO far *make_window(WINDO far *win_buf);
Prototype in scrwin.h
Remarks make_window creates a text window on the screen.
If the coordinates are invalid, make_window will
return NULL.
Before calling make_window, the window buffer
should be initialized as follows:
init indicates whether or not the window has been
initialized. Before calling make_bar_menu, it
should be set to UNINIT.
row and col are the upper left-hand corner
coordinates fo the window.
num_cols and num_rows are the number of printable
columns and rows the window should be built with.
txt_attr is the default foreground/background
color of the window. When the window is created,
the area will be filled with the
paramete (see) set to this color attribute. Any
characters printed in the window will have this
attribute, unless changed.
bdr_attr is the foreground/background attribute of
the border.
bdr_type is the type of border desired. Valid
selections are No_Border, Single_Border, and
Double_Border. If No_Border is selected, then the
entire window area is available for display. If
either Single_Border or Double_Border is selected,
the printable area of the window will be created
at the coordinates specified, for the number of
rows and columns specified. For example, if a
window is created with No_Border at coordinates 1,
1, 25, 80, then the entire screen may be used for
display. If a window is created at coordinates 2,
2, 10, 40, with either a Single or Double border,
then the border will be displayed at coordinates
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 44
1, 1, 11, 41, giving you the entire area you
specified for display. This means that using the
function gotoxy(1,1) will position the cursor at
the upper-left hand corner of the window, not the
border.
title is an optional title for the window. The
title will be centered above the window. If the
title string is too long, then no title will be
displayed. If you do not wish to print a title,
then a NULL string should be passed ("").
fill_char is the character to fill the background
of the window with. All IBM PC character set
characters are valid. If this character is NULL
(0x00), then it will default to a blank (0x20).
Any text underneath the area the window will
occupy, will be saved within the WINDO structure,
and will be automatically restored when
remove_window is called.
Return Value If the window is already created, or is
successfully creaated, a pointer to the window
structure will be returned, as if it had been
successfully created. If make_window is unable to
allocate an area for the saved portion of the
screen, NULL will be returned.
See Also remove_window (Pg 56)
Example {
WINDO x;
int ret;
x.init = UNINIT;
x.row = 2;
x.col = 2;
x.num_rows = 5;
x.num_cols = 20;
x.txt_attr = attr(BLACK,CYAN);
x.bdr_type = Single_Border;
x.bdr_attr = attr(BLACK,LIGHTGRAY);
strcpy(x.title, "Test Window");
x.fill_char = ' ';
if (make_window(&x) == NULL)
return;
.
.
.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 45
.
remove_window(&x);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 46
[*]money_symbol
Function Defines the default monetary symbol
Syntax extern char money_symbol;
Prototype in scredit.h
Remarks Default monetary symbol is the dollar sign '$'.
The default may be changed by the program.
Return value
See also
Example extern char money_symbol;
/* change to British pounds */
money_symbol = 156;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 47
[*]move_window
Function Moves the active window on the screen
Syntax void move_window(WINDO *win, int direction)
Prototype in scrwin.h
Remarks Allows movement of the window on the screen. Text
is automatically saved and restored when moving
the window. The direction should be one of the
defined values in getkey.h, _LEFT, _RIGHT, _UP,
_DOWN. Movement is automatically restricted to
the physical size of the screen.
Return value void
See also move_windows (Pg 49)
Example move_window(&win, _UP); /* moves window one row
up */
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 48
[*]move_windows
Function Defines whether or not windows are allowed to be
moved by the user.
Syntax extern char move_windows;
Prototype in scredit.h
Remarks The default value is FALSE. Setting this value to
TRUE allows the user to move windows around on the
screen by pressing the Scroll-Lock key, and using
the cursor keys to move the window. Text is
automatically saved and restored. The window
position, once moved, is not remembered, only the
original position established by the program is
remembered.
Return value
See also move_window (Pg 48)
Example extern char move_windows;
move_windows = TRUE;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 49
note
Function Displays a 'note' message on the status line.
Syntax void note(char *msg);
Prototype in scredit.h
Remarks note displays a message on the status line using
the stat_attrib text attribute.
Return value void
See also stat_attrib (Pg 62, 63), save_status (Pg 59),
blank_status (Pg 14), restore_status (Pg 58),
errmsg (Pg 32)
Example void x(void)
{
note("This process will take about 10
miniutes.");
}
void y(int time_value)
{
char buf[80];
sprintf(buf, "This process will take about %d
minutes", time_value);
note(buf);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 50
[*]num_decimals
Function Default value of number of decimal places in
monetary field types.
Syntax extern char num_decimals;
Prototype in scredit.h
Remarks Defines the default number of decimal places in
monetary field types. The default is 2 decimal
places. May be changed by the program.
Return value
See also
Example extern char num_decimals;
num_decimals = 4; /* all decimal places are now
four */
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 51
paint_bar_menu_select
Function This option allows the selective repainting of bar
menu option fields. It is especially useful when
'scrolling' through the options of pulldown menus
within a bar menu option.
Syntax void paint_bar_menu_select(POPBAR far *bar_buf,
int prev_sel)
Prototype in scrwin.h
Remarks Allows repainting of barmenu options when
performing a 'sideways' exit of a pulldown menu
option off of a barmenu option.
Return value void
See also make_bar_menu (Pg 37), remove_bar_menu (Pg 54).
Example extern char num_decimals;
paint_bar_menu_select(&bar_buf, 1); /* this will
cause
t h e
previ
o u s
selec
tion
(0 or
2) to
b e
repai
nted
t o
t h e
unsel
ected
color
, and
will
cause
t h e
newly
selec
t e d
optio
n (1)
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 52
to be
paint
ed to
t h e
highl
ighte
d
color
*/
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 53
remove_bar_menu
Function Removes a bar menu
Syntax void remove_bar_menu(&menu)
Prototype in scrwin.h
Remarks Removes the bar menu, and restores any text that
was previously underneath the bar menu.
Return value void
See also make_bar_menu (Pg 37)
Example #include "scrwin.h"
POPBAR menu={UNINIT};
{
ret = make_bar_menu(&menu, attr(BLACK,CYAN),
attr(BLACK,CYAN), attr(BLACK,LIGHTGRAY),
attr(RED,CYAN), attr(RED,LIGHTGRAY), TRUE,
selections);
remove_bar_menu(&menu);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 54
remove_pulldown_menu
Function Removes a pulldown menu
Syntax void remove_pulldown_menu(&pulldown);
Prototype in scrwin.h
Remarks Removes a pulldown menu, and restores the screen
text underneath the pulldown menu.
Return value void
See also make_pulldown_menu (Pg 40)
Example #include "scrwin.h"
PULLDOWN menu={UNINIT};
{
ret = make_pulldown_menu(&menu,
attr(BLACK,CYAN), attr(BLACK,CYAN),
attr(BLACK,LIGHTGRAY), attr(RED,CYAN),
attr(RED,LIGHTGRAY), Single_Border, FALSE,
TRUE, selections);
remove_pulldown_menu(&menu);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 55
remove_window
Function Removes a created window using make_window
Syntax void remove_window(&win);
Prototype in scrwin.h
Remarks remove_window will remove the window specified in
the WINDO pointer. All text underneath the window
will be automatically restored, and the WINDO
structure will be reset to an UNINIT state.
Return value void
See also make_window (Pg 44)
Example #include "scrwin.h"
WINDO win={UNINIT};
{
make_window(1, 1, 25, 80, attr(WHITE,BLACK),
No_Border, attr(YELLOW,BLACK), "Window",
&win);
remove_window(&win);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 56
[*]req_error
Function Defines the default error message for required
entry fields.
Syntax extern char *rq_error;
Prototype in scredit.h
Remarks The default message is "Entry is required for this
field". This message will appear in any field
that requires a non-blank or non-zero value.
Return value
See also
Example extern char *rq_error;
char *required={"Must not be blank or 0"};
rq_error = requried;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 57
restore_status
Function Restores the saved text from the status line
Syntax void restore_status(void)
Prototype in scredit.h
Remarks Restores text previously saved by a call to
save_status, to the status line area.
Return value void
See also save_status (Pg 59), blank_status (Pg 14), note
(Pg 50), errmsg (Pg 32)
Example int main(void)
{
save_status(); /* saves data on status line
*/
.
.
.
.
restore_status(); /* restores data from
save_status() */
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 58
save_status
Function Saves the text underneath the status line.
Syntax void save_status(void);
Prototype in scredit.h
Remarks This function saves the text and attributes
underneath the status line, for later restoration.
The data is saved in a buffer internal to SCREDIT.
Return value void
See also restore_status (Pg 58), blank_status (Pg 14), note
(Pg 50), errmsg (Pg 32)
Example void save_status(void);
int my_func(void)
{
save_status(); /* save status line data */
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 59
scredit_colors
Function This defines the default 256 color combinations of
foreground/background colors to be used in color
translation mode.
Syntax extern char scredit_colors[]
Prototype in scredit.h
Remarks This is a 256 char buffer that defines the color
combinations (foreground/background) to be used in
color translation mode. It is organized in the
fashion of 0x00 (Black on Black), 0x01 (Blue on
Black), 0x02 (Green on Black), 0x03 (Cyan on
Black) ... 0xFF (HiWhite on HiWhite).
Return value
See also xlate_colors (Pg 67), set_scrcolors (Pg 61)
Example extern char scredit_colors[];
int set_my_colors(void)
{
char new_colors[256];
.. set up new colors in new_colors buffer ..
movmem(new_colors, scredit_colors);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 60
set_scrcolors
Function Sets the new colors for color translation
Syntax void set_scrcolors(char *new_colors);
Prototype in scredit.h
Remarks This is function that will display a color
translation screen, and allow a user to select the
new colors they wish to use in your program. This
function allows enough room to put a window border
around it, and a title on top. You must pass a
256 char buffer in the parameter new_colors, which
contains the current, or previously defined
colors. For the new colors to be used, you must
make move the returned color set into
scredit_colors (see), and set xlate_colors (see)
to TRUE.
Return value void
See also scredit_colors (Pg 60), xlate_colors (Pg 67)
Example char new_colors[256];
movmem(scredit_colors, new_colors); /* move in
default
colors to
new_colors
*/
set_scrcolors(new_colors);
movmem(new_colors, scredit_colors); /* move in
t h e
n e w
color
s to
b e
used
*/
xlate_colors = TRUE; /* set color trans. on */
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 61
setcursor
Function Sets the cursor type
Syntax void setcursor(unsigned int cursor_type);
Prototype in cursor.h
Remarks Sets the cursor on, off or to a block shape.
Return value void
See also get_cursor_type (Pg 35)
Example setcursor(blk_cursor); /* sets cursor to block
shape */
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 62
[*]stat_attrib
Function Defines the default text attribute of the status
line
Syntax extern char stat_attrib;
Prototype in scredit.h
Remarks The default attribute is BLUE on LIGHTGRAY. This
color may be changed by the program.
Return value
See also
Example extern char stat_attrib;
/* changes to BLACK on LIGHTGRAY */
stat_attrib = attr(BLACK,LIGHTGRAY);
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 63
[*]status_row
Function Defines the default row of the status line.
Syntax extern char status_row;
Prototype in scredit.h
Remarks The default row of the status line is row 25.
This may be changed to any value 1-25. The status
line uses an entire row.
Return value
See also display_status (Pg 21), stat_attrib (Pg 62, 63)
Example extern char status_row;
status_row = 1; /* sets the status row on line 1
*/
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 64
[*]tf_error
Function Defines the default message to be displayed for
boolean TRUE/FALSE fields.
Syntax extern char *tf_error;
Prototype in scredit.h
Remarks The default message is "Must enter 'T' or 'F'".
This may be changed by the program. This message
is displayed anytime the cursor is in a TRUE/FALSE
boolean field and the user enters anything other
than 'T' or 'F'.
Return value
See also yn_error (Pg ?), ynb_error (Pg 68, 69), req_error
(Pg 57)
Example extern char *tf_error;
char *new_message={"Enter (T)rue or (F)alse"};
tf_error = new_message;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 65
undisp_prompts
Function Removes a screen, and restores screen underneath
Syntax void undisp_prompts(void far (*scrnptr)());
Prototype in scredit.h
Remarks Removes a screen from the display, and restores
the saved screen data underneath the screen.
Return value void
See also disp_prompts (Pg 20)
Example extern void sc_screen_pmt (void);
void main(void)
{
disp_prompts(sc_screen_pmt);
.
.
.
.
undisp_prompts(sc_screen_pmt);
}
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 66
xlate_colors
Function Determines whether SCREDIT should perform color
translation.
Syntax extern char xlate_colors;
Prototype in scredit.h
Remarks The default for xlate_colors is FALSE, in other
words, color translation will not take place.
This value may be changed any time within the
program to make SCREDIT perform color translation.
Return value
See also scredit_colors (Pg 60), set_scrcolors (Pg 61)
Example extern char xlate_colors;
xlate_colors = TRUE; /* color translation will
take place
*/
.
.
.
xlate_colors = FALSE; /* color translation will
not take
place */
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 67
[*]yn_error
Function Defines the default message for a boolean YES/NO
field.
Syntax extern char *yn_error;
Prototype in scredit.h
Remarks The default message is "Must enter 'Y' or 'N'".
This may be changed by the program. This message
appears anytime the user is in a YES/NO boolean
field and presses any other key than 'Y' or 'N'.
Return value
See also ynb_error (Pg 68, 69), tf_error (Pg 65), req_error
(Pg 57)
Example extern char *yn_error;
char *new_error={"Press 'Y' or 'N'"};
yn_error = new_error;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 68
[*]ynb_error
Function Defines the default error message for a
YES/NO/BLANK boolean field.
Syntax extern char *ynb_error;
Prototype in scredit.h
Remarks The default message is "Must enter 'Y' or 'N' or
Blank". This message may be changed by the
program. This message will appear anytime the
cursor is in a YES/NO/BLANK input field, and the
user presses any other key then 'Y', 'N' or a
blank.
Return value
See also yn_error (Pg ?)
Example extern char *ynb_error;
char *new_message={"Please press 'Y', 'N', or
leave Blank"};
ynb_error = new_message;
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 69
HELP!
(or, why won't the #$(*&() thing work)
Problem: I'm compiling my code in TC.EXE (integrated version),
and I get undefined externals during the link process.
Answer: Unfortunately, TC.EXE's project files don't react
kindly to defining other libraries other than those
distributed with TurboC. Use the command line compiler
and linker to compile and link the code.
Problem: I'm trying to compile the demonstration files, using
the command line compiler, but I get unresolved
externals for the SCREDIT library functions.
Answer: Try using the -c switch (compile only), and use TLINK
seperately, or specify the libraries with TCC using the
-l option.
Problem: SCREDIT can't find my screen objects.
Answer: Your screen object files are not in the same directory
that the configuration file has been told to look for
them. Either re-define your configuration, or set a
session directory. You may also need to check the
default extension used in the configuration (.SBJ), or
need to set a new session extension.
Problem: I am using an option field in my screen, but all I get
is garbage on some or all of the options.
Answer: Be sure that you have properly initialized EACH option
entry, and have assigned the correct pointer to your
data buffer for your option field. Also be sure that
the option index you are passing is valid. You can't
tell SCREDIT to start at index 100 if there are only 10
options defined. SCREDIT will correctly 'scroll'
through the options if everything has been initialized
properly.
Problem: I have a VGA screen, but when I load SCREDIT, I only
get 25 lines, not 26 or 29. The error message line
does not display.
Answer: You have probably loaded VIDRAM.COM by QuarterDeck
(provided in QRAM, QEMM, etc.) to reclaim VGA memory
for DOS. SCREDIT detects that the monitor is a CGA
monitor, and attempts to reprogram the 6845 video
controller to display 26 lines. Because this is a VGA,
reprogramming the 6845 doesn't work, because there
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 70
isn't one. Turn VIDRAM off before loading SCREDIT, and
this problem will be resolved.
Problem: When I created the screens, they looked just fine on my
color monitor, but they look terrible on a portable
computer or a monochrome adapter.
Answer: Modify your code to use the provided color
selection/defintion function, and allow the user to
define the colors they want to use. Save these values
in a configuration file, and load these new colors when
your program loads. Then set color translation on.
Or, you may select the colors for the user, and load
them in yourself, again setting color translation on.
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 71
Index
abort_screen 10, 11, 20
attr 12, 13, 30, 34, 39, 42, 44, 45, 54-56, 63
attribute 12, 13, 17, 22, 23, 27, 30, 32, 34, 44, 50, 63
background 12, 13, 34, 37, 38, 40, 41, 44, 45, 60
bad_amount 14
bad_date 15
bad_entry 16
BBS ii, vi
BIOS 36
blank_status 17, 32, 50, 58, 59
boolean 38, 41, 65, 68, 69
CGA 4, 70
Color Translation 60, 61, 67, 71
Compiling 2, 7, 70
Configuration 3, 70, 71
Configure 3
Configuring 3
cursor
1, 3, 5, 7, 8, 10, 14-16, 24, 25, 28, 35, 45, 49, 62, 65, 69
decimal 18, 51
decimal_char 18
Decode 16
Default 3, 7, 10, 14-18, 21, 22, 30, 31, 44, 45, 47, 49, 51, 57,
60, 61, 63, 64, 65, 67-70
Directory 2, 3, 70
Disk i, ii, iii, 1
disp_io_fields 19, 23, 28
disp_prompts 10, 11, 19, 20, 24, 25, 28, 66
display_status 21, 64
DOS ii, i, 1, 4, 70
drcr_symbol 22
edit_input_fields 8, 10, 11, 19, 23-25, 27
EGA 4
Electronic Mail ii, iii, vi
err_attrib 30, 32
err_column 31
errmsg 17, 24, 25, 28, 30-32, 50, 58, 59
errorv, 6, 7, 10, 11, 14-16, 20, 30-33, 39, 42, 43, 57, 65, 68-70
error_window 33
External i
Files ii, iv, v, 1, 2, 6, 70
fill_char 38, 39, 41, 43-45
Floating Point 1, 7
foreground 12, 13, 34, 37, 40, 44, 60
Functions i, 1, 4, 7, 9, 70
get_cursor_type 35, 62
getkey 1, 36, 38, 42, 48
Header File i, 1, 23, 27
Help vi, 3, 5, 7, 24, 25, 27, 28, 70
IBM ii, 1, 7, 45
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 72
Image i
Keyboard 1, 8, 36
Libraries i, ii, iv, 1, 2, 4, 7, 70
Library i, ii, 1, 4, 7, 70
License iii, iv, v
Linking ii, 2, 7
make_bar_menu 37-40, 44, 52, 54
make_pulldown_menu 40, 41, 43, 55
make_window 44, 45, 56
Memory ii, 1, 42, 70
menu 3, 5, 37-44, 52, 54, 55
money_symbol 47
move_window 48, 49
move_windows 48, 49
note 17, 31, 32, 38, 42, 50, 58, 59
num_decimals 51, 52
OS/2 ii, 7
paint_bar_menu_select 38, 52
QuarterDeck 70
Registration iii, iv, v, 4
remove_bar_menu 38, 39, 52, 54
remove_pulldown_menu 42, 43, 55
remove_window 45, 46, 56
req_error 65, 68
restore_status 17, 32, 50, 58, 59
save_status 17, 32, 50, 58, 59
scredit_colors 60, 61, 67
Screen i, ii, 1, 3, 5, 6, 8, 10, 11, 19, 20, 23-29, 37, 40, 42,
44, 45, 48, 49, 55, 61, 66, 70
Screen Objects 70
Scrolling 7, 52
set_scrcolors 60, 61, 67
setcursor 35, 62
Shareware iii, iv
stat_attrib 17, 21, 50, 63, 64
status_row 31, 64
Support iii, vi
tf_error 65, 68
TSR 7
TurboC ii, i, 1, 4, 7, 70
undisp_prompts 10, 11, 19, 20, 24, 26, 29, 66
Utility i
VGA 4, 70
Video 4, 7, 70
VIDRAM 70, 71
window 6, 7, 20, 33, 37, 38, 40, 42, 44-46, 48, 49, 56, 61
Windows ii, 6, 7, 48, 49
xlate_colors 60, 61, 67
yn_error 65, 68, 69
ynb_error 65, 68, 69
SCREDIT Function Reference Guide
Copyright (c) 1987, 1988, 1989 by Tim Underwood 73
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/