==============================================================================
   UltrascreenNEC 1.7 (C) 1987-2026 Ultrasoft / Daniel Born / Gary Weber
==============================================================================

60-column by 10-line display driver for the NEC PC-8201A / PC-8300

Many thanks goes to Daniel Born and Richard Eckerlin for making this a
reality!

New in 1.7: safe PC-8300 detection. To serve both machines from one build,
UltrascreenNEC brings in the 8201A-compatible ROM image at install. Earlier
releases did that with an unconditional write to the ROM bank-select port, on
the understanding that the write did nothing on a real PC-8201A. It turns out
that write can hang a real 8201A, so UltrascreenNEC now checks the ROM first
and only switches banks when it is genuinely running on a PC-8300. The
PC-8201A is left untouched. Both machines are hardware confirmed. See
CHANGES.txt for the full history.

LOADER.BA - Tokenized BASIC loader/relocator for creating USCNEC.CO from
            scratch. This will create USCNEC.CO at whatever base-address
            you wish.

LOADER.DO - Text flavor of the BASIC loader/relocator.

USCNEC.CO - Machine language ready-to-load into your NEC machine. You can
            bypass the loader entirely if you just want the fixed-location
            program, which loads at 57350.

FONT.DO   - Universal font editor. It detects the running Ultrascreen, finds
FONT.BA     its font table, and lets you edit the 60-column small-font glyphs
            in place. FONT.BA is the tokenized version.

==============================================================================
How to install
==============================================================================

There are two ways to install it: an automatic loader that does the work for
you, or a manual load if you'd rather place it yourself.

** The easy way: the loader

The simplest path is UltrascreenNEC's loader, LOADER.BA, which works just like
the original Ultrascreen100 loader on the Model 100. It carries the whole
program inside itself, so LOADER.BA is the only file you need to transfer onto
your PC-8201A or PC-8300.

Load LOADER.BA and run it. It asks:

   Install under address (ENTER=max 62336)

Press ENTER to tuck it up as high as memory allows (recommended), or type an
address if you want it somewhere specific. It relocates UltrascreenNEC to fit,
saves a ready-to-run USCNEC.CO built for that spot, and hands you back to the
main menu. Run that USCNEC.CO and you're straight into 60x10, with no CLEAR to
work out and no address math to get wrong.

** The manual way

If you'd rather use the pre-built USCNEC.CO (it loads at 57350), transfer it
onto your machine, then from BASIC park high memory at the load address so the
resident code has a safe home:

   CLEAR 0,57350

Now load and run USCNEC.CO the way you'd launch any machine-language program
(for example, selecting it from the main menu).

** Either way

Once it's installed you're in 60x10, and TEXT, TELCOM, and BASIC will all be
60 columns by 10 lines. Type SCREEN 0 any time to go back to the normal 40-
column display, and SCREEN 1 to return to 60.

It takes up a good chunk of memory due to the full-screen BASIC editor that
had to be reimplemented from scratch to service the 60x10 display, but it may
not be considered a big sacrifice, especially in today's environment where
most of us using Model T machines have TPDD / TS-DOS setups and we treat our
RAM disk as ephemeral storage anyway.

Once it's resident it automatically hands back its one-time install code, and
it raises HIMEM only far enough to protect the roughly 4.8K it actually needs.

==============================================================================
Using Ultrascreen
==============================================================================

When you enter BASIC, TEXT and TELCOM, it's just active by default in 60x10
mode.

However, you can temporarily disable it from BASIC with this command:

   SCREEN 0

That flips your computer back into 40x8 mode, which persists in all three ROM
programs. BASIC, TEXT and TELCOM will run just as they did before. However,
you will know Ultrascreen is still installed and waiting to be reactivated
anytime because you'll see "Basic  Text  Telcom" listed in mixed case in the
main menu. To reactivate your 60x10 mode, go to BASIC and type this command:

   SCREEN 1

==============================================================================
How to uninstall
==============================================================================

From BASIC:

   CLEAR 0,62336

Answer Y to the "REMOVE Ultrascreen? (Y/N)" prompt and UltrascreenNEC unhooks
itself, resets the screen to 40x8, and hands all of its memory back. Answer N
and it stays put. (Under the hood, any CLEAR that would reach up into
UltrascreenNEC's reserved memory triggers the prompt; 62336 simply hands back
the maximum.)

==============================================================================

Gary Weber
email: gary@web8201.com
www.web8201.com
