home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS - Coast to Coast
/
simteldosarchivecoasttocoast2.iso
/
fortran
/
fv121s.zip
/
FAT1.DOC
< prev
next >
Wrap
Text File
|
1988-06-09
|
28KB
|
949 lines
APR 1988 FAT-VIDEO 1.21 SETVM Page V-1
SETVM(MODE)-Set the Video Mode
Usage:
call setvm(mode)
integer*2 mode
inputs: mode
returns: none
MS-Fortran 4.0 Large Model
Description:
This program sets the video mode. The available modes are
defined below.
See also getmod().
mode Display
---- --------
00 = 40*25 text B&W,cga
01 = 40*25 color text,cga
02 = 80*25 B&W text
03 = 80*25 color text
04 = 320*200 4-color,cga
05 = " " " ,color burst off
06 = 640*200 2-color,cga
07 = Mono & EGA display
08 = 160*200 pc jr
09 = 320*200 pc jr
0A = 640*200 pc jr
0D = 320*200 EGA
0E = 640*200 16-color EGA
0F = 640*350 mono graphics,EGA
10 = 640*350 4/16 color graphics,EGA
(4/16-depends on ram)
Int 10h, fx-00h
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 SETCP Page V-2
SETCP(ROW,COL,PAGE) - Set Cursor Position
Usage:
call setcp(row,col,page)
integer*2 row,col,page
inputs: page,row,col
returns: none
MS-Fortran 4.0 Large Model
This subroutine sets the cursor position to
the values given in row, column and page. The row
values are 0-23, the column values are 0-39 or 0-79
depending on the text mode in use.
The cursor may be located in graphics modes using
this function the same as in text modes. See the
setdp() function regarding pages.
See also getcp().
Int 10h, fx-02h
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 GETCP Page V-3
GETCP(ROW,COL,PAGE) - Get Cursor Position
Usage:
call getcp(row,col,page)
integer*2 row,col,page
inputs: page
returns: row,col
MS-Fortran 4.0 Large Model
This subroutine gets the cursor position for
the specified page, and returns row, and column.
The row values are 0-23, the column values are
0-39 or 0-79 depending on the text mode in use.
See the setdp() function regarding pages in the
various adapters.
See also setcp().
Int 10h, fx-03h
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 SETDP Page V-4
SETDP(PAGE) - SET the Display Page
Usage:
call setdp(page)
integer*2 page
inputs: page
returns: none
MS-Fortran 4.0 Large Model
Description:
This subroutine sets the active display page.
The Mono Adapter only has 1 display page. The CGA
adapter has 8 display pages in modes 0 and 1, and
4 text display pages in modes 2 and 3. See the chart
below for other modes.
See also getmod().
Page Modes(hex)
----- ----------
0-7 00-01 CGA
0-3 02-03 CGA
0-7 02-03 EGA
0-7 0D EGA
0-3 0E EGA
0-1 0F EGA
0-1 10h EGA
Int 10h, fx-05h
CGA, EGA
APR 1988 FAT-VIDEO 1.21 SCWUP Page V-5
SCWUP(LINES,ATTR,ULR,ULC,LRR,LRC) - Scroll Window Up
Usage:
call scwup(lines,attr,ulr,ulc,lrr,lrc)
integer*2 lines,attr,ulr,ulc,lrr,lrc
inputs: lines,attr,ulr,ulc,lr,lrc
returns: none
MS-Fortran 4.0 Large Model
Description:
This subroutine scrolls up the rectangular area defined
by ulr,ulc and lrr,lrc the specified number of lines,
filling the blank lines with the background color defined in
the attribute byte.
The attribute byte may be set by setab(), or from a
call to getac().
See also scwdn(), cls(), getmod(), setvm().
lines = 0-25 no. of lines to scroll(0 -> clears window)
attr = attribute byte to use, for background color
ulr = 0-24 upper left y-coord(row) corner of scroll region
ulc = 0-79 " x " " (col) "
lrr = 0-24 lower right y-coord(row)
lrc = 0-79 " " x-coord(col)
Int 10h, fx-06h
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 SCWDN Page V-6
SCWDN(LINES,ATTR,ULR,ULC,LRR,LRC) - Scroll Window Down
Usage:
call scwdn(lines,attr,ulr,ulc,lrr,lrc)
integer*2 lines,attr,ulr,ulc,lrr,lrc
inputs: lines,attr,ulr,ulc,lrr,lrc
returns: none
MS-Fortran 4.0 Large Model
Description:
This subroutine scrolls down the rectangular area defined
by ulr,ulc and lrr,lrc the specified number of lines,
filling the blank lines with the background color defined in
the attribute byte.
The attribute byte may be set by setab(), or returned from a
call to getac().
See also scwup(), cls(), getmod(), setvm().
lines = 0-25 no. of lines to scroll(0 -> clears window)
attr = attribute byte to use, for background color
ulr = 0-24 upper left y-coord(row) corner of scroll region
ulc = 0-79 " x " " (col) "
lrr = 0-24 lower right y-coord(row)
lrc = 0-79 " " x-coord(col)
Int 10h, fx-07h
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 GETAC Page V-7
GETAC(ATTR,KAR,PAGE) - Get the Attribute and Character at the
cursor.
Usage:
call getac(attr,kar,page)
integer*2 attr,kar,page
inputs: page
returns: attr,kar
MS-Fortran 4.0 Large Model
Description:
This subroutine gets the attribute and ascii character code,
or extended character code, at the current cursor position. The
display page is not needed in graphics modes. In graphics modes
if the character is not recognized, a 0 is returned.
This function will return the ascii or extended code in either
text or graphics modes.
See also getab(), wrtac(), wrtacp(), wrtas(), wrtasp().
wprint(), wprnas(), setab()
attr = attribute byte, as output by setab()
kar = character ascii code
Page = legal Page for adapter in use
Int 10h, fx-08h
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 WRTAC Page V-8
WRTAC(ATTR,KAR,PAGE) - Write Attribute and Character at the cursor.
Usage:
call wrtac(attr,kar,page)
integer*2 attr,kar,page
inputs: attr,kar,page
returns: none
MS-Fortran 4.0 Large Model
Description:
This subroutine writes the attribute and character at the
current cursor position. The attribute is the output of getac,
or of setab. This function works in text and graphics modes.
The cursor does not advance automatically. The attribute
controls the color of the foreground, background, intensity,
and blinking.
The special codes backspace, carriage return, linefeed
and bell are not recognized and do cause characters to be
printed.
Text Mode:
The attribute byte can be defined by setab, and both fore
and back should be specified. The values for the foreground
color may be 0-15, background 0-7, blink 0 or 1, and inten
0 or 1.
Valid attributes in Mono are:
1) Normal 7-foreground, 0-background
2) Underlined 1-foreground, 0-background
3) Reverse 0-foreground, 7-background
4) Invisible 0-foreground, 0-backgound
Blinking and Intensity work as well, and may be combined
with the above foreground/backgound combinations.
APR 1988 FAT-VIDEO 1.21 WRTAC Page V-9
Graphics Mode:
The color attribute byte should be the foreground color
0-15. If bit 7 is set the color is xor'ed with the background,
thus assuring visibility. The attribute byte may be formed
using setab, by inputting the fore color(0-15), 0 for the back
color, 0 for inten, and a 1 for blink to xor the color, or 0
in blink not to.
Page need not be specified in graphics mode.
See also getab(), getac(), wrtacp(), wrtas(), wrtasp().
wprint(), wprnas(), setab()
Note: To set the background and border color in graphics
see setpal(),setbc().
attr = attribute byte
kar = character ascii code
Page = legal Page for adapter in use
Int 10h, fx-09h
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 WRTACP Page V-10
WRTACP(ATTR,KAR,ROW,COL,PAGE) - Write Attribute and Character at
the position given.
Usage:
call wrtacp(attr,kar,row,col,page)
integer*2 attr,kar,row,col,page
inputs: attr,kar,row,col,page
returns: none
MS-Fortran 4.0 Large Model
Description:
This subroutine writes the attribute and character at the
defined cursor position. The attribute is the output of getac,
or of setab. This function works in text and graphics modes.
The cursor does not advance automatically. The attribute
controls the color of the foreground, background, intensity,
and blinking.
The special codes--backspace, carriage return, linefeed
and bell--are not recognized and do cause characters to be
printed.
Text Mode:
The attribute byte can be defined by setab, and both fore
and back should be specified. The values for the foreground
color may be 0-15, background 0-7, blink 0 or 1, and inten
0 or 1.
Note: To set the border color in text see setpal().
Graphics Mode:
The color attribute byte should be the foreground color
0-15. If bit 7 is set, the color is xor'ed with the
background thus assuring visibility. The attribute byte
may be formed using setab by inputting the fore color (0-15),
0 for the back color, 0 for inten, and 1 for blink to xor the
color, or 0 in blink not to.
Page need not be specified in graphics mode.
See also getab(), wrtac(), getac(), wrtas(), wrtasp().
wprint(), wprnas(), setab()
APR 1988 FAT-VIDEO 1.21 WRTACP Page V-11
Note: To set the background and border color in graphics
see setpal().
attr = attribute byte
kar = character ascii code
row = row(0-24)
col = col(0-79)
Page = legal page for the adapter in use.
Note: This function is a composite of setcp(), and wrtac().
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 WRTCH Page V-12
WRTCH(KAR,COLOR,PAGE) - Write a character at the curren cursor
position.
Usage:
call wrtch(kar,color,page)
integer*2 kar,color,page
inputs: kar,color,page
returns: none
MS-Fortran 4.0 Large Model
Description:
This subroutine writes the character at the current
cursor position. In text mode color is not used.
In graphics mode the color of the foreground does need
to be specified.
The special codes backspace, carriage return, linefeed
and bell are not recognized and do cause characters
to be printed.
kar = character ascii code
color = foreground color in graphics
Page = legal page for adapter in use
Int 10h, fx-0Ah
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 SETPAL Page V-13
SETPAL(ID,COLOR) - Set Palette, Border, Background
Usage:
call setpal(id,color)
integer*2 id,color
inputs: id,color
returns: none
MS-Fortran 4.0 Large Model
Description:
This subroutine sets the border color if in text mode, or the
border and background color if in graphics mode. In either mode,
it may also be used to select the active color palette for the
4-color graphics mode.
This function only works in the medium resolution graphics
display (mode 4), on the CGA adapter. The Pcjr or a EGA adapter
is required in text modes. To set the CGA border color in text
modes use setbc().
Text Modes:
ID = 0 -> sets border color - EGA only
1 -> sets palette to use
COLOR = 0-15 for ID = 0 set border color
0-1 for ID = 1 set palette
Graphics Modes:
ID = 0 -> sets color of background and border CGA,EGA
1 -> sets palette to use
COLOR = 0-3 for ID = 0, in mode4
0-1 for ID = 1
palette 0:
color 0 = current background
1 = green
2 = red
3 = brown
palette 1:
color 0 = current background
1 = cyan
2 = magenta
3 = white
Int 10h, fx-0Bh
CGA
APR 1988 FAT-VIDEO 1.21 WRTGP Page V-14
WRTGP(COLOR,ROW,COL) - Write Graphics Pixel.
Usage:
call wrtgp(color,row,col)
integer*2 color,row,col
inputs: color,row,col
returns: none
MS-Fortran 4.0 Large Model
Description:
This subroutine writes the graphic pixel at the specified row
and column with the given color.
color = legal pixel values: in mode 4,5 med res(0-3)
in mode 6 high res(0-1)
other modes, see your EGA manual.
row = row(y) coord
modes: 4,6,0Dh,0Eh(0-199)
modes: 0Fh-10h(0-349)
col = column(x) coord:
modes: 4,5,0Dh (0-319)
modes: 6,0Eh,10h(0-639)
See also getgp().
Int 10h, fx-0Ch
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 GETGP Page V-15
GETGP(COLOR,ROW,COL) - Get Graphics Pixel Color.
Usage:
call getgp(color,row,col)
integer*2 color,row,col
inputs: row,col
returns: color
MS-Fortran 4.0 Large Model
Description:
This subroutine reads the graphic pixel at the specified row
and column with the given color.
color = legal pixel values: in mode 4,5 med res(0-3)
in mode 6 high res(0-1)
EGA - see your manual.
row = row(y) coord
modes: 4,6,0Dh,0Eh(0-199)
modes: 0Fh-10h(0-349)
col = column(x) coord:
modes: 4,5,0Dh (0-319)
modes: 6,0Eh,10h(0-639)
Int 10h, fx-0Dh
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 CHTEL Page V-16
CHTEL(CHAR,PAGE,COLOR) - Write a Character in Teletype mode.
Usage:
call chtel(char,page,color)
integer*2 char,page,color
inputs: char,page,color
returns: none
MS-Fortran 4.0 Large Model
Description:
This subroutine writes a character to the specified
page, in the specified foreground color, in graphics mode.
This function advances the cursor after each write.
Automatic line wrapping and scrolling are also provided.
The special codes--backspace, carriage return, linefeed
and bell--are recognized and do not cause characters
to be printed.
CHAR = character to write.
PAGE = Page to write to, not needed in graphics modes.
COLOR = color of foreground of character, in graphics only.
See also wrtch().
Int 10h, fx-0Eh
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 GETMOD Page V-17
GETMOD(MODE,NCOL,PAGE) - Get Mode, Number of Columns, and active page.
Usage:
call getmod(mode,ncol,page)
integer*2 mode,ncol,page
inputs: none
returns: mode,ncol,page
MS-Fortran 4.0 Large Model
Description:
This subroutine gets the current screen mode, number of columns
on screen, and display page.
See also setvm().
mode Display
---- --------
00 = 40*25 text B&W,cga
01 = 40*25 color text,cga
02 = 80*25 B&W text
03 = 80*25 color text
04 = 320*200 4-color,cga
05 = " " " ,color burst off
06 = 640*200 2-color,cga
07 = Mono & EGA display
08 = 160*200 pc jr
09 = 320*200 pc jr
0A = 640*200 pc jr
0D = 320*200 EGA
0E = 640*200 16-color EGA
0F = 640*350 mono graphics,EGA
10 = 640*350 4/16 color graphics,EGA
(4/16-depends on ram)
EGA,VGA: See your manual.
mode = active mode
ncol = 40 or 80 columns
Page = active page
Int 10h, fx-0Fh
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 SETAB Page V-18
SETAB(ATTR,FOR,BACK,INT,BLINK) - Set the Attribute Byte.
Usage:
call setab(attr,fore,back,int,blink)
integer*2 attr,fore,back,int,blink
inputs: fore,back,int,blink
returns: attr
MS-Fortran 4.0 Large Model
Description:
This subroutine forms an attribute byte from the input
foreground, background, intensity, and blink bytes.
See also getab().
ATTR = attribute byte
FORE = foreground color: (0-15), B&W: (0,1,7)
BACK = background color: (0-7), B&W: (0,7)
INT = intensity 0-normal, 1-high
BLINK = blinking 0-off, 1-on
Colors
------
0 Black 8 Gray
1 Blue 9 Light Blue
2 Green 10 Light Green
3 Cyan 11 Light Cyan
4 Red 12 Pink
5 Magenta 13 Light Magenta
6 Brown 14 Yellow
7 White 15 Bright White
Int none
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 GETAB Page V-19
GETAB(ATTR,FORE,BACK,INT,BLINK) - Get the Attribute Byte Values.
Usage:
call getab(attr,fore,back,int,blink)
integer*2 attr,fore,back,int,blink
inputs: attr
returns: fore,back,int,blink
MS-Fortran 4.0 Large Model
Description:
This subroutine determines from the attribute byte the
input foreground, background, intensity, and blink bytes.
See also setab().
ATTR = attribute byte
FORE = foreground color: (0-15), B&W: (0,1,7)
BACK = background color: (0-7), B&W: (0,7)
INT = intensity 0-normal, 1-high
BLINK = blinking 0-off, 1-on
Colors
------
0 Black 8 Gray
1 Blue 9 Light Blue
2 Green 10 Light Green
3 Cyan 11 Light Cyan
4 Red 12 Pink
5 Magenta 13 Light Magenta
6 Brown 14 Yellow
7 White 15 Bright White
Int none
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 WRTAS Page V-20
WRTAS(ATTR,STRING) - Write Attribute and String at the cursor.
Usage:
call wrtas(attr,string)
integer*2 attr
character*80 string
inputs: attr,string
returns: none
MS-Fortran 4.0 Large Model
Description:
This routine writes a string to the screen using the
attribute byte given. Special characters are not recognized,
and are all printed. No carriage return, linefeeds or
backspace functions work with this function. The string is
written at the current cursor position.
In graphics mode, if bit 7 is set in the attribute byte,
that is if blink is set in a call to setab() and you are in
graphics mode, then the foreground color is xor'ed with the
background screen to ensure the character is visible. In text
mode, the blink byte simply causes the character to blink. Any
input string must end with a character(0), the null character,
as shown below.
See also wrtasp(), wrtac(), wrtacp().
character*80 string
string = 'text'//char(0) Most compilers allow this.
'text`' All compilers allow this.
'text'C Microsoft only.
ATTR = attribute byte define by setab()
STRING = N-byte string terminated with null character
Int none
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 WRTASP Page V-21
WRTASP(ATTR,STRING,ROW,COL,PAGE) - Write the Attribute
and String at Position.
Usage:
call wrtasp(attr,string,row,col,page)
integer*2 attr,row,col,page
character*n string
inputs: attr,string,row,col,page
returns: none
MS-Fortran 4.0 Large Model
Description:
This routine writes a string to the screen using the attribute
byte given. Special characters are not recognized, and are all
printed. No carriage return, linefeeds or backspace functions
work with this function. The string is written at the row, column
and page position specified on input. This function is otherwise
identical to wrtas().
In graphics mode, if bit 7 is set in the attribute byte, that
is if blink is set in a call to setab() and were in graphics mode,
then the foreground color is xor'ed with the background screen to
ensure the character is visible. In text mode, the blink byte
simply causes the character to blink. Any input string must end
with a character(0), the null character, as shown below.
character*80 string
string = 'text'//char(0) Most compilers allow this.
'text`' All compilers allow this.
'text'C Microsoft Only.
See also wrtas(), wrtac(), wrtacp().
ATTR = attribute byte define by setab()
STRING = N-byte string terminated with null character
Int none
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 PEEKB Page V-22
PEEKB(OFF,SEG,VAL) - Get BYTE at SEG:OFF, anywhere in memory.
Usage:
call peekb(off,seg,val)
integer*2 off,seg or integer*4 off,seg
integer*2 val
inputs: off,seg
returns: val
MS-Fortran 4.0 Large Model
Description:
This routine peeks at the byte located at seg:off and places it
in the lower byte of VAL.
This function must pass an integer*2 for VAL, and an integer*2 or
integer*4 for off and seg. If off and/or seg is passed
as an integer*4, only the lower word is used. Seg and off must be
declared as integer*4 if they exceed +32k or -32k, as this is the
largest integer*2 value Fortran can assign. That is if you
explicitly declare seg= #B800 (hexadecimal cga screen address),
then seg must be declared as integer*4 or else the compiler will
assign a negative value to seg. In general, just declare any seg
definitions as integer*4. Note: If a video function returns a
segment address for later use it may be declared integer*2 in all
cases, as the video functions treat integer*2 values as 0 through
+64k (unsigned integers).
See also peekw(), pokeb(),pokew(), allmem(), fremem().
CGA, Mono, EGA
APR 1988 FAT-VIDEO 1.21 PEEKW Page V-23
PEEKW(OFF,SEG,VAL) - Get WORD at SEG:OFF, anywhere in memory.
Usage:
call peekw(off,seg,val)
integer*2 off,seg or integer*4 off,seg
integer*2 val
inputs: off,seg
returns: val
MS-Fortran 4.0 Large Model
Description:
This routine peeks at the word located at seg:off and places it
in the variable VAL. This function must be passed an integer for
VAL, and an integer*2 or integer*4 for off and seg. If off and/or
seg is passed as an integer*4, only the lower VAL is altered. Seg
and off must be declared as integer*4 if they exceed +32k or -32k,
as this is the largest integer*2 value Fortran can assign. That is
if you explicitly declare seg= #B800 (hexadecimal cga screen
address), then seg must be declared as integer*4, or else the
compiler will assign a negative value to seg. In general, just
declare any seg definitions as integer*4. Note: If a video
function returns a segment address for later use, it may be
declared integer*2 in all cases as the video functions treat
integer*2 values as 0 through +64k (unsigned integers).
See also peekb(), pokeb(),pokew(),allemm(),fremem().
Off = offset
Seg = segment paragraph
Val = returned
Int none
CGA, Mono, EGA