The Hyper E: accelerator will double
your screen display speed, while taking
up only 150 bytes or so of low memory.
If you are using a DOS other than
SpartaDOS, it will take up an addtional
30 bytes, but that's still a pretty
small amount.

The Hyper E: accelerator was originally
written by Doug Wokoun.  I found some
compatability problems with it, and
have released modified versions.

There are three versions of the Hyper
E: screen accelerator in this archive.

HYP.COM is the normal version.

HYPS.COM includes a routine to set the
screen color to a user defined value
any time the E: device is opened.  The
color values are preset to $82 and $0C
intensity, and the only way to change
them right now is with a disk file
editor.  The change is almost at the
end of the file, and will start with
the bytes, $A9,$82,$8D,$C6,$02.

Finally, for the hackers out there, I
included version HYP.ROM that can be
burned directly into the OS ROM.  There
are a few advantages to this.  It won't
take up any memory.  It will accelerate
any programs that use the $E400 vectors
directly, and there are alot of those.
RAM loaded versions will only speed up
programs that use CIO though E:, or use
the vector at $346.  Also, the ROM
version can be more secure since it
doesn't have to worry about having its
handlers overwritten in low memory.

Installation of the ROM version will be
described at the end of this file.

Use of HYP.COM and HYPS.COM is as
simple as loading the program.  Hyper E
is relocatable, and will position
itself right above MEMLO.  When it
installs, it will check to see if the
E: handler has already been patched, as
is the case with SpartaDOS, and if so
it will install into the patched
handler.  This allows Hyper E: to
remain compatable with Sparta's I/O
redirection abilities.  If no patched
handler is found, Hyper E: will create
it's own, along with a DOSINI routine
to reinstall it after a system reset.

It is possible that Hyper E: may find a
patched handler, but be unable to
integrate itself into it.  If this
happens, Hyper E: will display the
message, "Can't Install", and you will
be unable to use the program.  Please
contact me if you see this message, let
me know what is running in your system,
and I will try to adapt Hyper E:.

- ROM version install -

The HYP.ROM file is 131 bytes long, and
is designed to execute as the start of
the OS's E: PUT routine.  You will need
to know the location of this routine in
your particular ROM, as well as a free
149 byte area.  In my 130XE ROM, the E:
PUT routine is at $F2B0, and there is
an unused space at $CB65.  This is
where the supplied file is set to work,
but it can easily be changed to other
locations.

The first step is to copy the ROM image
to someplace in RAM, and then find 131
bytes of space that you can use.  You
can try searching for a long string of
0's.  The HYP.ROM file has a load
address of $4B65.  If you have moved
the ROM down to $4000, and have free
space at $CB65/$4B65, you may simply
load the binary file HYP.ROM.
Otherwise, use whatever method you are
comfortable with to place the contents
of the HYP.ROM file into your empty
space area.  The code is relocatable,
so you do not have to worry about
moving it.

Next, the existing PUT routine needs to
be changed to jump to this new code.
Right now, the first instruction of the
PUT should be "STA $2FB".  This needs
to be changed to a JMP to the new code
we just loaded.  The first instruction
of HYP.ROM is "STA $2FB", so that will
take the place of the existing one that
you are about to overwrite.  The byte
values you want to store, are $4C, then
the low byte of HYP.ROM, and then the
high byte.  In my example, these bytes
would be $4C, $65, $CB.  (Make sure you
use the upper ROM address like '$CB',
and not the '$4B' temporary RAM
address!)

The final step is a JMP instrustion
back to the OS ROM.  The JMP is located
in the HYP.ROM code, $66 bytes from the
beginning.  In our example, that would
be location $4BCB.  This JMP needs to
point to the location *after* the
original "STA $2FB" in the OS PUT
routine -- the one you replaced with a
JMP in the previous step.  In other
words, this location will be the
original PUT address +3.  In the
HYP.ROM file supplied, this JMP is set
to $F2B3.  If this is the right place,
leave it alone.  Otherwise, change the
address to point to the correct spot.

You should be able to save the binary
image of the ROM file now, and burn a
27128 EPROM.

If you hae any questions or comments,
please feel free to contact me.

John Harris
45346 Graceway Dr.
Ahwahnee, CA 93601
USA
internet: jharris@poboxes.com

