home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 8 Other
/
08-Other.zip
/
setlines.zip
/
setlines.txt
< prev
Wrap
Text File
|
2002-01-15
|
7KB
|
109 lines
0. Contents of SETLINES.ZIP:
0.1 SETLINES.TXT this text
0.2 SETLINES.C source code
0.3 SETLINES.ICO nice OS/2 icon for SETLINES -1 (display off)
0.4 SETLINES.COM DOS / MDOS executable for VGA / VESA displays
0.5 ATILINES.COM DOS / MDOS executable for ATI Mach64 chips
1. Purpose
1.1 The BIOS support for standard VGA cards doesn't support 60
lines (text mode) and its variants (30 resp. 34 lines), but
(almost) all VGA cards, and of course SVGA or VESA cards, can
use these text modes. For details see below.
1.2 Please note that I've never seen an ANSI.SYS clone supporting
all possible text mode variants (80 x 12 .. 132 x 60), but at
least some variants should work at the DOS command prompt (in
full screen AND text window sessions). Some DOS applications
are generally less restricted and allow to use (almost) any
preset text window size. If an application refuses to work
try more lines (e.g. SETLINES 21 instead of SETLINES 14).
1.3 ATI Mach 32 doesn't support all VESA text modes, but SETLINES
uses a trick to force all text mode variants (see source).
ATI Mach 64 doesn't support any VESA text mode unfortunately,
try ATILINES.COM instead of SETLINES.COM: ATILINES uses ATI
mode 0x23 resp. 0x33 instead of the corresponding VESA modes.
1.4 An OS/2 desktop system doesn't support VESA display power off
and has no decent "all black" screen saver. Use SETLINES -1
(or ATILINES -1) in a MDOS full screen session to switch the
display power off (until any key is pressed). If you don't
know how to install a MDOS full screen program in OS/2 ask
your system administrator. CAVEAT: very old VGA displays do
not support VESA display power management (DPMS).
1.5 Just for fun I have added text mode 1 (SETLINES 1) 40 x 25.
You can also use SETLINES to execute a DOS program in a text
mode subshell with a given number of lines. If this doesn't
work the SETLINES stack is too small for your environment -
try to recompile setlines.c (use MS C 6.0 or Watcom C 10.0).
1.6 Usage
SETLINES 0 Shows a terse usage message
SETLINES -1 VESA display power off (any key: power on)
SETLINES 1 40 x 25: text mode 1
SETLINES 12 80 x 12: 12 < 200 / 16 (CGA, 8 x 16 font)
SETLINES 14 80 x 14: 14 < 200 / 14 (CGA, 8 x 14 font)
SETLINES 21 80 x 21: 21 < 350 / 16 (EGA, 8 x 16 font)
SETLINES 25 80 x 25: 25 = 400 / 16 (VGA, 8 x 16 font)
SETLINES 28 80 x 28: 25 = 400 / 14 (VGA, 8 x 14 font)
SETLINES 30 80 x 30: 30 = 480 / 16 (480, 8 x 16 font)
SETLINES 34 80 x 34: 34 < 480 / 16 (480, 8 x 14 font)
SETLINES 43 80 x 43: 43 < 350 / 8 (EGA, 8 x 8 font)
SETLINES 50 80 x 50: 50 = 400 / 8 (VGA, 8 x 8 font)
SETLINES 60 80 x 60: 60 = 480 / 8 (480, 8 x 8 font)
80 x 60: VESA mode 108 (not used here)
SETLINES -21 132 x 21: VESA mode 10A, 8 x 16 font
SETLINES -25 132 x 25: VESA mode 109, 8 x 16 default
SETLINES -28 132 x 28: VESA mode 109, 8 x 14 font
SETLINES -30 132 x 30: VESA mode 10C, 8 x 16 font
SETLINES -34 132 x 34: VESA mode 10C, 8 x 14 font
SETLINES -43 132 x 43: VESA mode 10A, 8 x 8 default
SETLINES -50 132 x 50: VESA mode 109, 8 x 8 font
132 x 50: VESA mode 10B (not used here)
SETLINES -60 132 x 60: VESA mode 10C, 8 x 8 default
SETLINES SETLINES called without argument tries to
toggle 80 / 132 columns
2. Details (copied from source setlines.c)
2.1 ROM font 8 x 8, 14, 16
scanlines ------------
200 | (25) 14 12
350 | 43 (25) 21
400 | 50 28 25
480 | 60 34 30
2.2 Restrictions
- Some old VGA support only 50, 28, 25 lines
- Some old ATI report mode 5Bh for 30 x 80
- Some old ATI report mode 23h for 25 x 132
- Some old ATI don't support VESA 108h, 10Ch
- Some old VGA don't support VESA text modes
- ANSI.SYS confused by NNx132, use VANSI.SYS
- Setlines -1 requires VESA power management
- Setlines +1 is a 2nd special case: 25 x 40
- With 60 x 132 there is only ONE video page
2.3 History
1.0 Support 12, 14, 21, 25, 28, 43, and 50 lines (EGA: 25, 43).
1.1 Toggle screen height (25x80 and 28x80) as default,
replaced stdio.h fprintf() by smaller conio.h cputs().
1.2 Replaced int86x() by Watcom's smaller intr().
1.3 Support 30, 34, 60 lines based on 480 scan lines, uses the
standard VGA function INT 10 AX 1C02 "restore video state".
2.0 Support 132 columns, specified as -21, -25, ..., -50, -60:
based on VESA modes 109, 10A, 10C. Use VESA mode 108 for
60x80 if available. But my ATI Mach32 is a bit stupid :-)
2.1 Toggle screen width (NNx80 and NNx132) as default.
2.2 Save current screen contents if width is the same, does not
work as expected with PC DOS 7 ANSI.SYS, but VANSI.SYS or
no ANSI-driver are okay, and then even DOS accepts 60x132.
2.3 Patch BIOS data for get video mode result 3 instead of 83h,
this prevents NC.EXE from clearing the saved screen because
it did not understand the "keep video memory" bit 7 in 83h.
2.4 Special argument: setlines -1 to switch VESA display power
OFF, awaits any key pressed before exit switching power ON.
2.5 setlines 0 or setlines ? usage() return code == getlines().
setlines 1 supports 25x40 text mode 1 as 2nd special case.
2.6 Switch screen off during setlines() setting and scrolling.
Save current screen contents even if screen width changed.
3.0 Support ATI Rage Pro (missing VESA text modes replaced by
proprietary ATI modes 23 and 33 #ifdef ATI).
2.4 Source
setlines.c (c) 1998, 2002 by Frank Ellermann, version 3.0
http://frank.ellermann.bei.t-online.de/dos/setlines.zip