[comp.binaries.ibm.pc] v01i180: fix43_ma, fix cursor on EGA in 43-line mode w/asm source

madler@Hamlet.Caltech.Edu (Mark Adler) (03/04/89)

Posting-number: Volume 01, Issue 180
Originally-from: madler@Hamlet.Caltech.Edu (Mark Adler)
Submitted-by: madler@Hamlet.Caltech.Edu (Mark Adler)
Archive-name: fix43_ma/fix43_ma.uue

FIX43.COM is a resident utility to adjust the cursor position on an EGA
in 43 line mode (as supported by NANSI.SYS and other programs).  The
programs FIX43ON.COM and FIX43OFF.COM are used in batch files to turn
on and off the function of FIX43 for those programs that already handle
the cursor properly (like Turbo C).

[
The EGA display in 43-line apparently has an elusive cursor.  This is a
problem I'm not familiar with, since I don't use anything in 43-line
mode.  Mark Adler's other programs are well-written, so I'm sure this
one does what it is documented to do.

To avoid confusion with numerous fix?? programs that fix various
things, I appended the author's initials to the archive name.

Assembly source is included.

checksum     size (bytes)  file (between BEGIN--cut and END--cut lines)
   13637         6900      this uuencoded posting

checksum     size (bytes)  file
   48275         4987      fix43_ma.arc

-- R.D.
]
BEGIN--cut here--cut here
begin 644 fix43_ma.arc
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
ES2'-($9)6#0S5%-2/T9)6#0S(&YO="!I;G-T86QL960-"B0:`*K-
`
end
END--cut here--cut here