home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS - Coast to Coast
/
simteldosarchivecoasttocoast2.iso
/
fortran
/
fv121s.zip
/
FAT0.DOC
< prev
next >
Wrap
Text File
|
1988-06-11
|
39KB
|
848 lines
FAT-Video 1.21
Fortran Accessory Tools for Video
Copyright (c) 1987 Marc A. Norton
All Rights Reserved.
MAY 1988
FAT-Video 1.21
Table of Contents
-----------------
Description Page
----------- ----
Table of Functions i
About Shareware iv
Introduction v
Technical Info vii
Updates xi
Video Library Functions V-1
Window Library Functions W-1
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-Video 1.21 Page i
Table of Functions - Video Library
----------------------------------
No. Function Page
--- -------- ----
1 SETVM(MODE) V-1
2 SETCP(ROW,COL,PAGE) V-2
3 GETCP(ROW,COL,PAGE) V-3
4 SETDP(PAGE) V-4
5 SCWUP(NLINES,ATTR,ULR,ULC,LRR,LRC) V-5
6 SCWDN(NLINES,ATTR,ULR,ULC,LRR,LRC) V-6
7 GETAC(ATTR,CHAR,PAGE) V-7
8 WRTAC(ATTR,CHAR,PAGE) V-8
9 WRTACP(ATTR,CHAR,ROW,COL,PAGE) V-10
10 WRTCH(CHAR,COLOR,PAGE) V-12
11 SETPAL(ID,COLOR) V-13
12 WRTGP(COLOR,ROW,COL) V-14
13 GETGP(COLOR,ROW,COL) V-15
14 CHTEL(CHAR,PAGE,COLOR) V-16
15 GETMOD(MODE,NCOLS,PAGE) V-17
16 SETAB(ATTR,FORE,BACK,INT,BLINK) V-18
17 GETAB(ATTR,FORE,BACK,INT,BLINK) V-19
18 WRTAS(ATTR,STRING) V-20
19 WRTASP(ATTR,STRING,ROW,COL,PAGE) V-21
20 PEEKB(OFF,SEG,VAL) V-22
21 PEEKW(OFF,SEG,VAL) V-23
22 POKEB(OFF,SEG,VAL) V-24
23 POKEW(OFF,SEG,VAL) V-25
24 MEMSTR(OFF,SEG,STRING,NBYTES) V-26
25 STRMEM(OFF,SEG,STRING,NBYTES) V-27
26 GETVID(ULR,ULC,LRR,LRC,SEG) V-28
27 PUTVID(ULR,ULC,LRR,LRC,SEG) V-29
28 GETCGA(ULR,ULC,LRR,LRC,SEG) V-30
29 PUTCGA(ULR,ULC,LRR,LRC,SEG) V-31
30 GETMON(ULR,ULC,LRR,LRC,SEG) V-32
31 PUTMON(ULR,ULC,LRR,LRC,SEG) V-33
32 CLS() V-34
33 RDKBD(CODE,CHAR) V-35
34 KBDST(CODE,CHAR) V-36
35 KBDFL(FLAGS) V-37
36 CHINP(KEY) V-38
37 ALLMEM(NPAR,SEG,MAXPAR) V-39
38 FREMEM(SEG,IER) V-40
39 SETNUL(STRING) V-41
40 REVAB(ATTR,RATTR) V-42
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-VIDEO 1.21 Page ii
Table of Functions - Video Library
----------------------------------
No. Function Page
--- -------- ----
41 SETBC(COLOR) V-43
42 BVEF(Flag) V-44
43 EGAF(Flag) V-44
44 CGACOF() V-45
45 CGACON() V-45
46 MONCOF() V-46
47 MONCON() V-46
48 COMLIN(TAIL) V-47
49 GETDOS(MAJOR,MINOR) V-47
50 GETTIM(HR,MIN,SEC,HSEC) V-48
51 CLRKBD() V-48
52 BEEP() V-48
53 CUROFF() V-48
54 CURON() V-48
55 GETML(NBYTES,LSEG,LOFF) V-49
56 RLSML(NBYTES,LSEG,LOFF) V-49
57 PEEKL(OFF,SEG,VALUE) V-50
58 POKEL(OFF,SEG,VALUE) V-50
59 WRTS(STRING) V-51
60 WRTSP(STRING,ROW,COL,PAGE) V-51
61 CPUT(STRING) V-52
62 CPUTA(ATTR,STRING) V-52
63 CPUTP(STRING,ROW,COL) V-53
64 CPUTAP(ATTR,STRING,ROW,COL) V-53
65 CPUTAC(ATTR,VALUE) V-54
66 CPUTC(VALUE) V-54
67 CLRSTR(STRING,LEN) V-55
68 REMNUL(STRING) V-55
69 CGETS(STRINT) V-56
70 CGETAS(ATTR,STRING,MAXLEN,IERR) V-57
71 CGETIS(ATTR,STRING,MAXLEN,IERR) V-58
72 CGETRS(ATTR,STRING,MAXLEN,IERR) V-59
73 CEDAS(ATTR,STRING),MAXLEN,IERR) V-60
74 CEDIS(ATTR,STRING,MAXLEN,IERR) V-61
75 CEDRS(ATTR,STRING,MAXLEN,IERR) V-62
76 RQST(WATTR,RATTR,ULR,ULC,NB,MESS,RESP,LEN,IERR) V-63
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-VIDEO 1.21 Page iii
Table of Functions - Window Library
------------------------------------
No. Function Page
--- -------- ----
1 WOPEN(WID,BA,TA,ULR,ULC,NR,NC,TITLE,WB,WT,WC) W-1
2 WCLOSE(WID) W-2
3 WPRNAS(WID,ATTR,STRING) W-3
4 WPRINT(WID,STRING) W-4
5 WCLS(WID) W-5
6 WCRX(WID) W-6
7 WLFX(WID) W-7
8 WCRLF(WID) W-8
9 WCLEOL(WID) W-9
10 WGETCP(WID,ROW,COL) W-10
11 WSETCP(WID,ROW,COL) W-11
12 WGETSN(WID,STRING,LEN) W-12
13 WGETSE(WID,ATTR,STRING,LEN) W-13
14 WGETCE(WID,ATTR,IKAR) W-14
15 MENBAR(WID,PRNAM,NATTR,SATTR,ISEL) W-15
16 WMENU(ITNAM,NATTR,SATTR,ULR,ULC,TITLE,ISEL) W-16
17 WBOX(BATTR,TATTR,ULR,ULC,LRR,LRC,TITLE,WT,WC) W-17
18 WMOVR(WID,INR,INC) W-18
19 WMOVA(WID,ROW,COL) W-19
20 WXOPEN(WID,BA,TA,ULR,ULC,NR,NC,TITLE,WB,WT,WC) W-20
21 GETADP(ADAP) W-21
22 WAIT(SECONDS) W-22
23 MENU1(WID,PRNAM,ITNAM,NATTR,SATTR,ISEL) W-23
24 I2=WGETI2(WID,IER) W-24
25 I4=WGETI4(WID,IER) W-24
26 WPUTI2(WID,NUM) W-25
27 WPUTI4(WID,NUM) W-25
28 X4=WGETR4(WID,IER) W-26
29 X8=WGETR8(WID,IER) W-26
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-VIDEO 1.21 Page iv
About Shareware
---------------
The FAT-Video software is sold as shareware via user groups,
"Public Domain Software Entities", and directly from me. This
does not mean the software is free, it is not.
The software is distributed with a nominal charge, so you
may try the software out first, and be assured it works
with your system, and that you wish to use it. Once you are
satisfied it's adequate and meets your needs, I the developer
expect you to register with me and pay the registration fee.
The entire shareware concept relies on the faith of software
developers, and the honesty of users. If you abuse the privilege
of shareware software, you risk not having any shareware, so make
your choices carefully regarding your need to register for this
or any other shareware product.
The FAT-Video shareware package may be freely distributed by
anyone, so long as not more than $12 is charged for duplicating
the disk and/or manual(the manual is on the disk). In fact this
is the best advertising I could have, so I encourage you to
make a copy and give it to a friend, or your user group, or
anyone else. Make sure you give them an unaltered version, with
the manual on the disk.
The registered users of the FAT-Video package will be notified
of specific errors, corrections and updates by mail. There is also
telephone support for registered users. The registered version
includes the Fortran source code for the window library, for your
personal use and modification. It may not be freely distributed.
The source code for the Matrix Spreadsheet demo called MVIEW is
also included on the registered disk.
Shareware Disk $ 12.00 Manual on disk
Registration & Disk $ 35.00 Manual on disk
& window Fortran source code
If you bought your share disk from me, I'll register you for $25.00.
Printed Manual $ 15.00
Assembly source, VIDEO.LIB $ 35.00 Requires A86 assembler.
Upgrade Disk $ 12.00 Manual on disk
Maryland residents add 5% sales tax.
For Info call 301-441-9235
To order, send check or mony order, and state items desired, to:
Marc Norton
P.O. Box 425
Greenbelt MD 20770
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-VIDEO 1.21 Page v
Introduction
------------
The Fortran Accessory Tools for Video(FAT-Video) software
package offers the Fortran programmer access to the low level
Video, and Keyboard functions of the ROM-BIOS, providing
complete control of the screen, and keyboard, as demonstrated
by the window library demo. FAT-Video requires MS-DOS 2.0 or above,
and a compatible ROM-BIOS (most are today).
The FAT-Video window library displays text windows in modes 3
and 7 on the CGA, EGA, and Mono adapter cards. The video graphics
routines, such as the pixel manipulation routines, use the BIOS
INT 10h functions and therefore support the full resolution of
any graphics adapter card used. There are currently 76 low level
video routines, and 29 window routines.
The FAT-Video libraries are fully compatible with the MS-Fortran
compiler version 4.0/4.1. The VIDEO.LIB functions are compatible with
all versions (3.2 thru 4.1). The window library source will
need to be recompiled for versions prior to 4.0. The Technical Info
section explains the key modifications required for compiling
earlier versions.
FAT-Video 1.21 also fully supports the Lahey-F77L compiler. The
video library functions may be called from Lahey Fortran. You must
declare each VIDEO.LIB function using the MSEXTERNAL keyword, and
do so in each module using the VIDEO.LIB functions. The window
library has been compiled with the Lahey-F77L v2.21 compiler. The
window functions should NOT be declared as MSEXTERNAL ! There is a
file called LAHEY.INC on disk which declares all the video routines
as msexternal. Just put "include LAHEY.INC" in any routine that
uses the video library, and your ready to compile.
The FAT-Video funcitons have been written specifically for use
by Fortran programmers. The typical Fortran programmer has had
little chance to use windows, menus, and screen control, and
is not generally very familiar with them in routine programming.
I have attempted to make the window functions feel comfortable to
the Fortran programmer. The window functions have also been coded
in Fortran to demonstrate the power and ease of use of the video
library.
The FAT-Video utilities make windows and menus a snap in
Fortran. The window library provided is in fact written in Fortran
using the video library functions. They could have been written in
assembly as well, but with the video library they are trivial in
Fortran, and it's my feeling you should always write your code in
the highest level language you can for maximum productivity. Of
course, some things are best done in assembly, but I've taken care
of those things for you.
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-VIDEO 1.21 Page vi
The windowing library source code is intended as a source of
demonstration for the video library functions. The intent is for
you to understand, and modify the library for your own purposes.
The windowing library of functions also provides a powerful
set of windowing functions, menus and string I/O. A demo has
been included, with source code, to illustrate the use of the
windowing functions.
The assembly source code for the video library functions is
available to anyone interested in modifying them, as a separate
disk for $35.00 . They are copyrighted and are not to be
distributed. You may modify and use them for personal purposes
only.
The assembly source requires the A86 assembler written by
Eric Isaacson, and is also available as shareware. I recommend
it over all other assemblers. It is very inexpensive compared to
others, and a superior assembler as well. His manual is also very
good.
The FAT-Video package will be modified as needed. If you have any
suggestions please write them down and send them in. Also if you have
any problems, write or call. If you write, send a sample of the code
you have trouble with.
The registered users of FAT-Video will be notified of upgrades
to the package by mail. Upgraded versions of FAT-Video will be
available on disk for the same charge as the current shareware
disk. The registered users will also receive telephone support for
problems and questions related to FAT-Video. Registered owners
of FAT-Video also receive the window library Fortran source code.
The registered users also get the source code for the Matrix
Spreadsheet Demo called MVIEW, the executable demo is on the
shareware disk. The MVIEW spreadsheet is may be called as a sub-
routine with a real or integer array from your applications using
this source code. It forms the baisis of a very nice matrix
viewing utility, it also allows you to edit enter matrix data
directly.
There are 2-sets of window Fortran source code, one is for the
MS-Fortran compiler, the other is for the Lahey compiler. I have
included both sets on the registered disk. If you are using the
Microsoft Fortran compiler, then use WINDOWM.LIB library in your
link command. If you are using the Lahey compiler, use WINDOWL.LIB
in your link command. Again the MS-Library has been compiled with
the MS-Fortran 4.0/4.1 compiler, and the Lahey-Library has been compiled
with the Lahey 2.21 compiler. If your compiler version is different,
then you need to recompile the library source code with your compiler.
The source code for each compiler is in a .ARC file. The MS source
is in FV121MF.ARC, and the Lahey source is in FV121LF.ARC. Only
de-archive one of these in any given directory, because they both
contain files with the same names !!! You really only need to
de-archive the one you will use ! BE CAREFUL ! The window subroutines
are called the same for both compilers !
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-VIDEO 1.21 Page vii
COMPILER SUPPORT
----------------
Once again, the following compilers are supported and may be used
with the FAT-Video software libraries:
1) All Microsoft Fortran compilers, WINDOWM.LIB can only be
used with version MS-FORTRAN 4.0/4.1. Earlier versions
of MS-Fortran must recompile the window source code in the
FV121MF.ARC file.
2) All Lahey Fortran compilers that use the MSEXTERNAL
keyword, WINDOWL.LIB may be used with version 2.21 of
Lahey Fortran. Earlier versions need to recompile the
window source code in th FV121LF.ARC.
The following compilers do not work with the FAT-Video libraries:
1) IBM Professional Fortran
2) Ryan-McFarland Fortran
Other compilers:
See Technical section for details of interfaceing FAT-Video
with other compilers.
Order Information:
------------------
Shareware Disk $ 12.00 Manual on disk
Registration & Disk $ 35.00 Manual on disk
& window Fortran source code.
If you bought your share disk from me, I'll register you for $25.00.
Printed Manual $ 15.00
Assembly source, VIDEO.LIB $ 35.00 Requires A86 assembler
Upgrade Disk $ 12.00 Manual on Disk
Maryland residents add 5% sales tax.
For information call 301-441-9235
To order, send check or money order, and state items desired to:
Marc Norton
P.O. Box 425
Greenbelt, MD 20770
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-VIDEO 1.21 Page viii
Technical Info
--------------
This section is included to give you a brief explanation of
some of the details involved in the use of the video and window
libraries. This section is concerned with the details of inter-
facing assembly subroutines with Fortran, the stack and the stack
frame. Most of what follows is for your reference and is not
required reading unless you own some obscure Fortran compiler.
The user is given several references listed at the end of this
section for more detailed discussions of the PC and its video
capabilities. FAT-Video requires DOS 2.0 or above and a compatible
ROM-BIOS.
The video library was written entirely in assembly language,
some functions call the ROM-BIOS video, and keyboard routines,
and others call some DOS routines. The only DOS functions used
are those required to allocate and free memory dynamically, and
a keyboard character input routine.
Users of the Lahey 2.21 compiler may use WINDOWL.LIB as is,
and may skip this section. If you use another version you may
need to recompile the window library source code.
Users of the MS-Fortran compiler version 4.1/4.0 may use WINDOWM.LIB
as is, and may skip this section entirely. Those using version 3.3,
3.2, or below should read this section and pay particular attention
to the use of character strings, and c-strings (null terminated
strings). The rest of the technical section is provided to help assist
the users of other compilers in utilizing this package until I
generate versions for each compiler.
The assembly language routines are compatible with the MS-Fortran
default memory model, which is the large memory model. To the program-
mer it means all subroutine calls are Far calls. In MS-Fortran, the
address of the subroutine call arguments are placed on the stack from
left to right, and the use of Far calls means the address is defined
by a segment word and an offset word. So the address of each argument
consists of two words, or four bytes. Note that Lahey F77L pushes the
arguments from right to left, thus the need for msexternal. Also
MS-Fortran expects the subroutine to POP the arguments off the stack,
whereas in Lahey-Fortran the calling program POPS the call arguments.
In contrast the small memory model means all code is in one segment
and all data(arrays,variables) is in one segment. This means only
an offset is required to identify the address of a variable.
Therefore, only the offset(one word) is placed on the stack and
passed to the subroutine.
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-Video 1.21 Page ix
An example will clarify this somewhat. Assume the following call
is made, we'll examine a small and large model stack.
call getcp(row,col,page)
The compiler sees the call and pushes the argument addresses on
the stack in the following order:
Small model stack Large model stack
row offset= 1 word row seg:offset= 2 words
col 1 col 2
page 1 page 2
As you can see the amount of data on the stack is different for
the small and large memory models. The compiler places more infor-
mation on the stack in the large model, so it is very important to
know what type memory model is in use. FAT-Video only supports
the Far calling procedure. If you use a model other than large and
it doesn't use Far subroutine calls, you must declare the video
subroutines as Far subroutines.
For those who want to know if the video library is compatible
with your compiler and linker, you must know how your stack frame
is set up in your subroutines, and your linker must accept MS-DOS
format library files.
The stack frame pattern is illustrated below for the VIDEO.LIB
functions. BP is used as the local stack frame pointer.
1) call getcp(row,col,page)
page= [bp+6]
col = [bp+10]
row = [bp+14]
3) call setab(attr,fore,back,int,blink)
blink = [bp+6]
int = [bp+10]
back = [bp+14]
fore = [bp+18]
attr = [bp+22]
The FAT-Video subroutines return the following registers after
a subroutine call without altering them:
CS, DS, DI, and SI.
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-Video 1.21 Page x
When passing values to subroutines, an integer*4 may be passed
in place of an integer*2. The subroutine will only make use of
the lowest 2 bytes. When passing a variable to accept a return
value from a subroutine you should pass a variable of the type
defined in the subroutine definition. To do otherwise may cause
problems since the high word is never set by the subroutine.
The video library must be linked any time the window library
is linked. The video library was written in assembly language and
is usable by any version of the Fortran compilers of Microsoft.
The window library was written in MS-Fortran 4.0, and Lahey 2.21
and will not link correctly with other versions of Fortran. However
the source code can simply be compiled with your compiler and then
you can use your library manager to make your own library.
There are also some differences in integer passing conventions
in different Fortran compilers. That is INT2 and INT4 don't exist
in all compilers. These can be removed from the source code if you
have such a compiler. They are helpfull in version 4.0 because
you can't call the same routine twice and use different
length variables, without getting a warning. Examine the following:
integer*2 page,row,page
page = 2
call getcp(row,col,0) ---> call getcp(row,col,int2(0))
call getcp(row,col,page)
The above 2 calls will cause an error 3607 in MS-Fortran 4.0.
The MS-Fortran 4.0 compiler sees the 0 in the 1st getcp() call
as a long 4-byte integer (as well as any integer passed in a
subroutine call) and page as a 2-byte integer. If in fact the
compiler would ignore this fact it would still work because
the subroutine only uses the lowest 2-bytes of the page variable
it's passed, and we've passed that much in both cases. Some Fortran
compilers don't care about this situation and so they don't need
an int2, nor do they support it. An alternative to int2 is to use
the $STORAGE:2 metacommand in MS-Fortran, and declare the default
integer as an integer*2 or word. Other versions of Fortran can
do the same thing, with their own special commands. A substitute
INT2() function may be of some help. It follows:
INTEGER*2 FUNCTION INT2(I)
INTEGER*4 I
INT2 = I
RETURN
END
One last note regarding strings on various compilers. MS-Fortran
passes character strings by reference, Lahey and some others pass
strings by descriptor. This can be a problem when passing strings to
the VIDEO.LIB functions, from some compilers. Strings must be passed
by reference for the VIDEO.LIB functions to work, or be declared as
MSEXTERNAL, as Lahey Fortran allows.
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-VIDEO 1.21 Page xi
Using Lahey Fortran with FAT-Video:
-----------------------------------
The Lahey compiler simply requires that the video library
functions be declared as MSEXTERNAL as follows, and then called
normally.
integer*2 mode,ncols,page,row,col
msexternal setcp,getmod,...etc
call getmod(mode,ncols,page)
row = 10
col = 12
call setcp(row,col,page)
The file LAHEY.INC is included on disk to simplify the need for
the MSEXTERNAL key word. Just put "Include LAHEY.INC" before any
executable statements in any routine that uses the video library
and your ready to compile.
The Lahey window library WINDOWL.LIB may be called from Lahey-
Fortran v2.21 without any special concerns. Other versions may
require you to recompile the window source code stored in the
FV121LF.ARC file.
Where to Get A86:
-----------------
I suggest the A86 assembler for any assembly language work,
novice or pro. The A86 manual clears up much of the confusion
surrounding the 80x86 assembly language, and the Microsoft assembler.
Below is Eric's address & phone number:
Eric Isaacson
416 E. University Street
Bloomington, IN 47401
(812)-339-1811
Useful References:
------------------
The Peter Norton Programmer's Guide to the IBM PC
by Peter Norton
Advanced MS-DOS
by Ray Duncan
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-VIDEO 1.21 Page xii
VERSION CHANGES
---------------
The changes made to FAT-Video from one version to the next
are listed below:
Version 1.1:
------------
I) VIDEO.LIB ,Requires DOS 2.0
1) Peekb(offset,segment,value)
a) value must be interger*2
2) Setab(attr,fore,back,inten,blink)
a) now all inputs, and outputs must be integer*2
3) Revab(attr,rattr)
a) now both variables, attr & rattr must be
integer*2 variables.
4) Comlin(string)
a) returns the comand line, and works with
DOS-2.0 . Should be called at start of program.
Note:
In general the smallest used data type must
be declared as integer*2 now. No integer*1, or
character*1 values may be used.
II) WINDOWM.LIB
1) All windowing routines have been rewritten. There
is no need for any common blocks, for any window data.
The memory used to store window data is allocated
dynamically at run time. To see the structure of the
window data block, examine the wopen() header text.
2) Wopen() - now accepts 2 attribute integers, one for the
border, and one for the text attributes. Both must be
declared integer*2, as stated above.
3) Wbox() - Wbox0(),Wbox1(),Wbox2() have been condensed
into the single Wbox() routine. You may use any of 0,1
or 2 borders.
4) Control-C : The window routines wgetce,wgetse,wgetsn,
and wmenu,menu1,menbar use keyboard BIOS reads and
ignore control-c presses. Thus preventing accidental
program exits. This makes the menuing appear more in
control, and it is.
5) Demo - is now functional on most Mono, CGA, and EGA
monitors in video modes 3 or 7.
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-VIDEO 1.21 Page xiii
VERSION CHANGES
Version 1.11:
-------------
Bug fixes to v-1.1, the window library was rewritten and
had several small bugs. The manual had some modifications to the
Introduction & Technical section. Version 1.0 windows of FAT-Video
was not Lahey compatable. The windows don't work with Lahey-Fortran
in version 1.1 and 1.11. The Video library still works with Lahey-
Fortran. I am working on fixing the problems with using Lahey with
FAT-Video windows.
Version 1.20:
-------------
The window library now works with the Lahey-Fortran compiler.
FAT-Video now fully supports the Microsoft, and Lahey compilers.
LIBRARY NAMES:
WINDOWM.LIB - Microsoft window library. NEW NAME !!!
WINDOWL.LIB - Lahey window library.
VIDEO.LIB - Video library.
New Video Library Functions:
GETML- is used to allocate memory dynamically with the
Lahey compiler. This must not be declared msexternal, either.
RLSML- is used to release memory dynamically with the
Lahey compiler. This must not be declared msexternal, either.
POKEL- Poke(put) a 4-byte value into memory.
PEEKL- Peek(get) a 4-byte value from memory.
WRTS- Write string using current screen attributes, uses BIOS.
WRTSP- Write string using current screen attributes at position
given, uses BIOS.
The following routines write directly to video ram, for speed:
CPUTAC-Write attribute and character.
CPUT- Write a string to the screen.
CPUTA- Write a string to the screen using the attribute given.
CPUTP- Write a string to the screen using the position given.
CPUTAP-Write a string to the screen using the position and attribute
given.
New Window Library Functions:
WGETI2- Get(Read) an integer*2 from the user.
WGETI4- Get(Read) an integer*4 from the user.
WPUTI2- Write an integer*2 value to the screen.
WPUTI4- Write an integer*4 value to the screen.
WGETR4- Get(Read) a Real*4 from the user
WGETR8- Get(Read) a Real*8 from the user.
Copyright (c) 1987 Marc A. Norton All Rights Reserved.
APR 1988 FAT-VIDEO 1.21 Page xiii
VERSION CHANGES
---------------
Version 1.21
-------------
New Video Library Functions:
The following video functions can really improve the look and
feel of a user interface. They also help establish some baisic
input/output/editing functions.
A NEW demo I 've written, MVIEW.EXE, is also included on the
shareware disk, it is a spreadsheet for matrices demo. The Fortan
source code for MVIEW is only on the registered disk. The matrix
viewing utility used in MVIEW has been implemented as a single
subroutine allowing you to easily call it with your own matrices.
This is the first version of MVIEW so its a bit rough, but you
can see the kind of screen control you can have with VIDEO.LIB.
This demo also has examples of internal Fortran reads and writes,
and how they interface with this library, this aspect of Fortran
is often underutilized in Fortran programs.
CLRSTR() - Clear a string, by filling with blanks.
The following 4 functions clear the input string and wait
for input from the user.
CGETS() - Read a string from the keyboard, and echo it, using
the ROM BIOS to prevent Ctrl-C presses from interrupting.
CGETAS() - Same but allows user to define the echo attribute.
CGETIS() - Same as CGETAS but only allows integers to be entered.
CGETRS() - Same as CGETRS but only allows integers, e,E,d,D,.,-,+.
The followng functions are similar to the above funtions, but
these display the string and then allow it to be edited.
CEDAS() - Display string w/attribute, allow user to edit.
CEDIS() - Display integer string w/ attribute, allow user to edit.
CEDRS() - Display real string w/ " " " " "
The next function is a windowed requestor.
RQST() - Displays a message and accepts any ascii input from the
user, press ESC to cancel the requestor.
BUG FIXES:
-----------
WRTGP() and GETGP() did not work in all video modes, the error
has been corrected. These should now support all graphics
video modes supported by the BIOS, including CGA, EGA,
MCGA, and VGA.