home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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.