==============================================================================
   Ultrascreen200 1.3 (C) 1987-2026 Ultrasoft / Daniel Born / Gary Weber
==============================================================================

60-column by 21-line display driver for the Tandy Model 200
(60x20 when the function-key labels are showing)

Many thanks to Daniel Born for the original Ultrascreen100, which made this
port possible.

==============================================================================
What's new in 1.3
==============================================================================

Version 1.3 fixes the cursor when leaving 60-column mode: going from SCREEN 1
back to the normal 40-column SCREEN 0 could leave the cursor misbehaving, and
it now homes cleanly. It is also a little smaller, moving the scroll scratch
buffer into a ROM work area that sits idle while Ultrascreen is showing 60
columns, which hands about 50 more bytes of RAM back to you.

See CHANGES.txt for the full version history.

==============================================================================
The files
==============================================================================

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

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

USC200.CO - Machine language ready-to-load into your Model 200. You can
            bypass the loader entirely if you just want the fixed-location
            program, which loads at 56386.

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 Ultrascreen200'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 Model 200.

Load LOADER.BA and run it. It asks:

   Install under address (ENTER=max 61104)

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

** The manual way

If you'd rather use the pre-built USC200.CO (it loads at 56386), 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,56386

Now load and run USC200.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 60 columns, and BASIC, TEXT, TELCOM, ADDRSS and
SCHEDL will all be 60 columns wide. Type SCREEN 0 any time to go back to the
normal 40-column display, and SCREEN 1 to return to 60.

Ultrascreen200 is compact: once resident it automatically hands back its
one-time install code, and it raises HIMEM only far enough to protect the
roughly 4.5K it actually needs.

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

When you enter BASIC, TEXT, TELCOM, ADDRSS or SCHEDL, it's just active by
default in 60-column mode.

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

   SCREEN 0

That flips your computer back into the normal 40-column mode, which persists
in all of the ROM programs. They 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 60-column mode, go to BASIC and type this
command:

   SCREEN 1

** A note on MSPLAN

Ultrascreen200 covers every ROM application that the original Ultrascreen100
did. MSPLAN, the Model 200's spreadsheet, has no counterpart on the Model 100.

MSPLAN carves its work area out of the top of RAM (it lowers HIMEM itself to
reserve the space), so it needs the top of memory free and will not run while
any resident program is holding it, reporting "MP work area in use". Because
Ultrascreen protects memory at the top whenever it is resident, MSPLAN cannot
run alongside it, and rendering MSPLAN in 60 columns is not feasible (it
bank-switches its own ROM, so Ultrascreen is never even called while it runs).
SCREEN 0 does not help: that only switches the display back to 40 columns, it
does not hand the memory back.

To use MSPLAN, uninstall Ultrascreen first (see "How to uninstall" below), run
MSPLAN, then reinstall Ultrascreen afterward. If you forget, MSPLAN's own "MP
work area in use" message will remind you.

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

From BASIC:

   CLEAR 0,MAXRAM

Answer Y to the "REMOVE Ultrascreen? (Y/N)" prompt and Ultrascreen200 unhooks
itself, resets the screen to 40 columns, and hands all of its memory back.
Answer N and it stays put. (MAXRAM is BASIC's built-in name for the top of
memory, so this is the standard, machine-independent way to hand .CO space
back. Under the hood, any CLEAR that would reach up into Ultrascreen200's
reserved memory triggers the prompt; MAXRAM simply hands back the maximum.)

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

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