[comp.sys.ibm.pc] What's faster than 'type'-ing a menu screen

mvolo@ecsvax.UUCP (Michael R. Volow) (03/07/88)

Would appreciate the recommendations of net members regarding the
following question:

In setting up a menu system (IBMPC 4.77 MHz box) using batch files,
I have been using the DOS 'type' command to display the larger menu
screens.  But the screens display quite slowly, about .75-1.0 sec,
using the 'type' command on this machine.  I'm not eager to utilize
ansi.sys substitutes such as nansi.sys or Fansi-Console, because of
possible incompatibilities with other software.  Is anyone aware of
some utility substituting for the 'type' command which can put a DOS
menu file on screen more quickly?

Replies may be E-mailed (or posted if your mailer chokes) and any
useful responses will of course be summarized to the net.  Thanks
in advance.

Michael Volow, M.D.
Dept of Psychiatry, Durham VA Medical Center, Durham, N.C. 27705
919 286 0411                           mvolo@ecsvax.UUCP

anderson@vms3.macc.wisc.edu (Jess Anderson) (03/07/88)

In article <4742@ecsvax.UUCP> mvolo@ecsvax.UUCP (Michael R. Volow) writes:

]Would appreciate the recommendations of net members regarding the
]following question:

]In setting up a menu system (IBMPC 4.77 MHz box) using batch files,
]I have been using the DOS 'type' command to display the larger menu
]screens.  But the screens display quite slowly, about .75-1.0 sec,
]using the 'type' command on this machine.  I'm not eager to utilize
]ansi.sys substitutes such as nansi.sys or Fansi-Console, because of
]possible incompatibilities with other software.  Is anyone aware of
]some utility substituting for the 'type' command which can put a DOS
]menu file on screen more quickly?

Despite your reservations, I think you could give nansi.sys a try.
I'm unsure of the amount of speed-up you can expect, but I have never
run into a compatibility problem with it. 
==INTERNET: anderson@vms.macc.wisc.edu====Jess Anderson======(home:)========
| UUCP: {harvard,rutgers,allegra,ucbvax}  1210 W. Dayton     2838 Stevens  |
|  !uwvax!vms3.macc.wisc.edu!anderson     Madison, WI 53706  Madison 53705 |
==BITNET: anderson@wiscmacc===============608/263-6988=======608/238-4833===

nather@ut-sally.UUCP (Ed Nather) (03/08/88)

In article <62@dogie.edu>, anderson@vms3.macc.wisc.edu (Jess Anderson) writes:
> In article <4742@ecsvax.UUCP> mvolo@ecsvax.UUCP (Michael R. Volow) writes:
> ]In setting up a menu system (IBMPC 4.77 MHz box) using batch files,
> ]I have been using the DOS 'type' command to display the larger menu
> ]screens.  But the screens display quite slowly, about .75-1.0 sec,
> ]using the 'type' command on this machine.  I'm not eager to utilize
> ]ansi.sys substitutes such as nansi.sys or Fansi-Console, because of
> ]possible incompatibilities with other software.  
> 
> Despite your reservations, I think you could give nansi.sys a try.
> I'm unsure of the amount of speed-up you can expect, but I have never
> run into a compatibility problem with it. 

If you want fast screen painting, nansi.sys is unbeatable, in my
experience.  On a PC or XT using a mono display card, a full-screen
Update appears instantaneous.  To get this speed, however, you must
put MS-DOS I/O into "raw" mode via the IOCTL system call, and you
must send the output in one huge gulp.  Writing in C, the fastest
way I have found is with write(), although puts() does pretty well.

I, too, have found no incompatibilities.

x
x
x
x
x
x
x
x
x
x
dumb mailer ...

-- 
Ed Nather
Astronomy Dept, U of Texas @ Austin
{allegra,ihnp4}!{noao,ut-sally}!utastro!nather
nather@astro.AS.UTEXAS.EDU

dan@srs.UUCP (Dan Kegel) (03/09/88)

Somebody asked,
>>> How can I display menu screens quickly?  The DOS 'type' command takes
>>> about 1.0 second.
Ed Nather answered,
> If you want fast screen painting, nansi.sys is unbeatable, in my
> experience.  On a PC or XT using a mono display card, a full-screen
> Update appears instantaneous.  To get this speed, however, you must
> put MS-DOS I/O into "raw" mode via the IOCTL system call, and you
> must send the output in one huge gulp.  Writing in C, the fastest
> way I have found is with write(), although puts() does pretty well.
> I, too, have found no incompatibilities.

It isn't that hard, really!  If you have nansi.sys installed, you can use
the DOS 'copy' command to type a file to the screen in "raw" mode, vis:
    COPY /b MENU.TXT CON:
This blasts the file MENU.TXT on the screen in 1/10 sec or so.
( The /b parameter makes COPY ignore ^Z (the old CP/M EOF char), and also
  sets the output handle to "raw" mode. )

For best speed, each menu screen file should start with the four characters
    <ESCAPE> [ 2 J
to clear the screen and home the cursor.  This avoids scrolling, which is
about the same speed in nansi.sys as in ansi.sys.
-- 
  Dan Kegel
  srs!dan@cs.rochester.edu  {rutgers!} rochester!srs!dan
  Avoid UASH.

scott@hpcvca.HP.COM (Scott Linn) (03/09/88)

In article <4742@ecsvax.UUCP> mvolo@ecsvax.UUCP (Michael R. Volow) writes:

]Would appreciate the recommendations of net members regarding the
]following question:

]In setting up a menu system (IBMPC 4.77 MHz box) using batch files,
]I have been using the DOS 'type' command to display the larger menu
]screens.  But the screens display quite slowly, about .75-1.0 sec,
]using the 'type' command on this machine.  I'm not eager to utilize
]ansi.sys substitutes such as nansi.sys or Fansi-Console, because of
]possible incompatibilities with other software.  Is anyone aware of
]some utility substituting for the 'type' command which can put a DOS
]menu file on screen more quickly?

Another way to get fast screen typing is to put the console into
binary (raw) mode so that no escape/control translations are performed.
This *really* speeds up transfers.

Scott Linn
HP - Northwest IC Division

mvolo@ecsvax.UUCP (Michael R. Volow) (03/09/88)

In article <630@srs.UUCP>, dan@srs.UUCP (Dan Kegel) writes:
> Somebody asked,
> >>> How can I display menu screens quickly?  The DOS 'type' command takes
> >>> about 4.0 (not 1.0) seconds.
> 
> It isn't that hard, really!  If you have nansi.sys installed, you can use
> the DOS 'copy' command to type a file to the screen in "raw" mode, vis:
>     COPY /b MENU.TXT CON:
> This blasts the file MENU.TXT on the screen in 1/10 sec or so.
> ( The /b parameter makes COPY ignore ^Z (the old CP/M EOF char), and also
>   sets the output handle to "raw" mode. )
> 
> For best speed, each menu screen file should start with the four characters
>     <ESCAPE> [ 2 J
> to clear the screen and home the cursor.  This avoids scrolling, which is
> about the same speed in nansi.sys as in ansi.sys.
> -- 
>   Dan Kegel

I'm flabbergasted.  It worked and worked well.  I did just as Dan Kegel
suggested, put nansis.sys (I have a snowy Plantronics CGA) in config.sys
and root directory.  Included <ESC> [ 2 J in the first line of the 
menu screen and in the batch file replaced TYPE MENU.TXT with:

        COPY /B MENU.TXT CON: >nul

The >nul is to prevent "1 file copied" from appearing on the screen.
The menu zips on screen like greased lightning.  I'm really appreciative
of Dan's suggestion and all others who replied to me, thanks.  Only
one minor glitch, now.  At the end of the menu screen is small,
rightward-pointing arrow (-->, ASC 026 I think) which I cannot get
rid of, but am not terribly bothered by.



Michael Volow, M.D.
Dept of Psychiatry, Durham VA Medical Center, Durham, N.C. 27705
919 286 0411                           mvolo@ecsvax.UUCP

shields@yunccn (Paul Shields) (03/16/88)

In article <4490009@hpcvca.HP.COM> scott@hpcvca.HP.COM (Scott Linn) writes:
>In article <4742@ecsvax.UUCP> mvolo@ecsvax.UUCP (Michael R. Volow) writes:
>]Would appreciate the recommendations of net members regarding the
>]following question:

[...]
>]I'm not eager to utilize
>]ansi.sys substitutes such as nansi.sys or Fansi-Console, because of
>]possible incompatibilities with other software.  Is anyone aware of
>]some utility substituting for the 'type' command which can put a DOS
>]menu file on screen more quickly?

>Another way to get fast screen typing is to put the console into
>binary (raw) mode so that no escape/control translations are performed.
>This *really* speeds up transfers.

Putting the console into binary mode doesn't do you any good if you want
to be able to process Ctrl C.  Also, it doesn't expand tabs on output,
so I wouldn't consider it the greatest thing since sliced time.

FANSI-Console is one of the fastest, most compatible ansi drivers I've seen
(flames gratiously accepted.) It's shareware, so if you have a problem
with it, you haven't lost anything since you have that free trial period.

Why not try it out?  I'll post it if enough people want it.
-- 
Paul Shields, shields@yunccn.UUCP

Communication is a two-way street.  Don't get run over.

jpn@teddy.UUCP (John P. Nelson) (03/18/88)

>FANSI-Console is one of the fastest, most compatible ansi drivers I've seen
>(flames gratiously accepted.)

I used to believe this, until I bought Turbo Pascal 4.0 (I don't own TP 3.0,
so I don't know if the same problems exist).  Versions of FANSI-Console
before 2.00 have a incompatibility with the TURBO integrated environment:
The display is full of garbage.  I tracked down the problem to what I
consider a bug in FANSI:  It uses the ROM BIOS parameter ram incompatibly,
and this confuses the TURBO program.

Versions of FANSI-Console AFTER 2.00 fix the above problem.  However,
2.00 introduced ANOTHER incompatibility with Turbo Pascal 4.0.  Apparently,
any program that uses the "DirectVideo" mode of operation (the default)
does not work properly with cursor moves.  I haven't diagnosed this problem
yet:  I'm sticking to an old 1.XX version of FANSI, and I'm using the command
line version of TP.