***************************
Bulletin Wednesday 09/23/81
***************************
The following letter is being mailed out to all registered
owners of SU+.  You do not have to wait for this letter to
upgrade your diskette.
***************************
Use Control P to abort
***************************
To: Registered SU+ owner
From: Breeze Computing Inc.
Ref: Version 2.0b enhancements
Date: September 23, 1981

Super-Utility Plus Version 2.0b is now available.
The following enhancements and corrections have been made.
Page number references are to the SU+ manual.
*
NEW VERSION UPDATE POLICY:
     The following support is given only to REGISTERED owners
of Super-Utility.  Super-Utility (SU) may be upgraded to
Super-Utility Plus (SU+) by returning your ORIGINAL serial
numbered diskette, along with the difference in price
($25.00), and $5.00 shipping/handling (Total $30.00).  A
single backup copy may be purchased for $5.00.  Once you have
acquired SU+, you may upgrade to the latest version, at any
time, by returning your original disk(s) plus $3.00 per disk
to cover costs.  It will be returned to you promptly along
with any additional documentation that is provided.  If your
disk has arrived in our office in a condition that WILL NOT
allow us to re-record the program (damaged disk), we will
replace the disk, and return both disks to you along with a
$5.00 replacement disk charge that will be invoiced to you.
This has been done because of the great many of damaged disks
that arrive here, mostly due to insufficient packaging.  If
you receive a damaged disk FROM US, immediately return it
along with a note, and it will be replaced AT NO CHARGE.  This
offer is good for 15 days from the time it leaves this office.
*
GENERAL INFORMATION:
     The Archibold type high speed clock modification is now
fully supported.  You must notify SU+ that it is on, however.
This may be done via the HARD CONFIGURE (page 55, #7-8), and
the SOFT CONFIGURE may be used to override the setting (page
52).
     Two shorthand input values have been added to the Memory
Utility "Output Byte to Port" option (page 39, #2.7K).  When
asked for "Port, Byte ?", you may reply:
SY = "Speed Yes" - turns on the high speed clock.
SN = "Speed No" - turns clock off
HY = "Hi-Res Yes" - turns on the high resolution board.
HN = "Hi-Res No" - turns hi-res off.
The high res character set is not disturbed, and may be
programmed prior to entry into SU+.
     The "DUAL" mode of SU+ is toggled by pressing "Shift
ENTER" at the end of any keyboard input line.  A 1024 byte
buffer is used to store this printer data to free up the CPU
for other tasks instead of waiting for a slow device.  When
DUAL mode is ON, the all bytes that go to the video will also
go to the printer.  You may notice slow video operation as the
number of buffered bytes increases.  If your printer is not
selected, and DUAL is ON, you will notice a sluggish display,
then it will stop printing altogether when the 1024 bytes
maximum is reached.  If this happens, you may press the CLEAR
key to empty the printer buffer.  Press "Shift ENTER" at the
next input line to turn DUAL OFF.  You may check the setting
by menu option #9 "Configuration".  DUAL will automatically be
de-activated during certain video displays so as to not bog
the system down with useless information (during disk I/O,
etc).
     The Screen Printer may be activated any time the keyboard
is being scanned (a flashing cursor somewhere) by pressing the
"Shift CLEAR".  Due to the fact that the "CLEAR" alone will
EMPTY the buffer, be sure to release the "CLEAR" key BEFORE
the "SHIFT" key when screen printing.  This way no characters
will be removed from the buffer before they are sent to the
printer.
     The "SPACEBAR" may be used to pause the display any time
there is scrolling involved.  The "ENTER" key will resume
printing.  The "Shift SPACEBAR" will pause only as long as the
key is pressed, releasing it will resume printing.  Most
routines are paused automatically, pressing "ENTER" will
display the next page.  You may, of course, pause in the
middle of the next page using the pause keys.
     When BOOTING your SU+ disk (page 4, #1.4), you may also
hold down the "CLEAR" key and the hard configuration data WILL
NOT be read from the disk.  The information that is stored on
the diskette when you get the disk is also stored in an
additional location.  This second set of data will be used in
the case of the override command (page 5, #1.7).
     When entering numerical input from the keyboard, be sure
to append the letter "H" to the end of numbers to be
interpreted in HEX.  If you enter 4000, when you really mean
4000H, you may get unexpected results.  The default base of
SU+ is DECIMAL.  For those of you who are used to working in a
certain base OTHER THAN DECIMAL, I have now provided you with
a DEFAULT BASE that can be set via Hard Configuring in sector
4 (page 54, #2.9F).  Enter in HEX, the base system number
(example 10=Decimal, 8=Octal, 16=Hex).  This number may be ANY
base (12=Dodecimal?) and will be used if NO SPECIFIER is added
to the input.  If you use numbers greater than 16, the
additional digits are represented by a continuation from the
letter F (base 17: digits 0-9, A-G).  You may, of course,
force the number to be Decimal, Hex, Octal, or Binary by
appending the letter D,H,O or B to the end.  This scheme will
allow you to work in 5 different bases of numbers for even
more versatility.
     When Hard Configuring your SU+ disk for density (page 53,
#12), the manual mentions that you should insert the letter D
or S for double/single density operation.  In fact, you may
specify ANY of the dos symbols in this area.  Your SU+ disk
will come with the ! (single density) symbol for all drives.
     Since the creation of SU+, there now comes NEWDOS 80 V2.
In order to maintain support of this operating system, new
commands have been added.  Refering to page 6, #1.8, here is
the new command list existing in SU+ 2.0b:
S or ! = single density other than LDOS
     " = single density LDOS
D or # = DOS PLUS double density
     $ = DOUBLEDOS and ND80 V1
     % = LDOS double density
     & = double head method #1 (see below)
     ' = double head method #2 (see below)
     ( = ND80 V2, double density, single density track 0
     ) = ND80 V2, double density, double density track 0
* Double Head Method #1:
     If your drives are hard-wired so that each head is
treated as a separate drive, then the current track table for
the adjoining head must be updated also.  This technique will
allow you to have 2 double headed drives in the system.  Thus,
if you operate on Drive 0, side 1 (selected via drive 1), then
Drive 0, side 0 (selected via drive 0) will also have its head
position updated to the table.
* Double Head Method #2:
     If your drives are hard-wired so that the second head of
each drive is selected via the Drive 3 select line (allowing 3
double headed drives in the system), then use this specifier.
*
DRIVE CONFIGURATION NOTES:
     The system configuration is a very complicated matter.
There are always several ways to achieve the same results in
the program.  Certain things like the default BOOT, and the
default number base may only be configured via the HARD
CONFIGURE method (page 52-).  Most of the remainder of the
items may be configured via menu option #9 (page 50-).  These
options are discussed thoroughly in the manual.
     Certain drive parameters may be changed at any time you
are asked to input the drive number.  These are the DOS
specifier, the head select specifier, and the track count.
SU+ is very versatile in that it can operate on most any
operating systems, but you must explicitly specify which.  Any
time you enter a drive number, you may append additional
information about the type of drive it is.  Refer to the
following examples:
Drive, Track, Sector ? 0s=40,d
                       2#',3,3
                       )=86
                       3$=70,l
Filespec ? sys0/sys:3$=22
     Whenever such information is provided, the tables are
changed accordingly.  Once you specify this information, you
will not need to specify it again unless it is changed.  If
you are configured for 0$=80, then enter:
Drive, Track, Sector ? 0!=40
then this new value is saved.  The next time you access drive
0, it will still be !=40.  You may also change these values
via menu option #9, but using the above method will save a lot
of time.
     From the configuration menu, you may also select "Save
Config?".  Let's say that you have drive 0 configured for
0$=80.  You now wish to get a directory of a single density
disk in drive 0.  When asked for "Drive ?", you could answer
0s, but then must specify the 0$ next time you revert back.
By telling it to "save configuration", even though you specify
a different setting for a routine, it will revert back to its
original setting after the routine is completed, or the
"BREAK" key is used to interrupt the routine in progress.  You
can then have a permanent default setting.  If you operate
mostly on a specific operating system, then use the "save
config" option.  If you do this, then routines like disk zap
that have automatic density recognition and change the values,
will automatically restore the previous contents back when
completed.
     The drive track counts must also be accurate.  Let's say
that you have an 80 track disk in drive 1, with the directory
on track 40.  You go to purge to get a directory, and answer:
1=40 for the drive question.  SU+, in this case, will return
erroneous information because the directory is on a track
exceeding the disk limits, and you will get unpredictable
results.  If you had said 1=42, then there would have been no
problem.  For all DOS's with the exception of ND80 V2, the
diskette track count can be interpreted from the directory.
Thus if you had answered 1=42, the track table would have been
updated to 80 tracks once the directory has been read in.
With ND80 V2, you MUST give the exact track count of the
diskette.
     Since DOUBLEDOS, and ND80 use a RELATIVE disk position,
and not TRUE position for file storage, you may notice some
strange things when using these keys.  First, if you answer
0=40 for a drive response, SU+ will convert this to 70
RELATIVE tracks and save this in the table.  Always enter the
TRUE track count of the disk when using these specifiers, SU+
will make all necessary changes for this operation.  When
zapping through a disk, it is recommended to used the # option
for single density track 0, and % for double density track 0.
This will give you direct access to the sectors.  If you
specify $ or (, you will NEVER be able to read TRUE Track 0,
Sector 0.  If, for example, you specify to read: 0$=40,17,0
you will actually read 0#=40,10,8.  If you specify 0)=40,17,0
you will actually read 0#=40,9,8.  This is very confusing, but
will allow you to operate intimately with the system.  The
most important thing is to make sure that SU+ knows the DOS
type you are reading, and the Track count of the diskette.
     SU+ has a feature called "LAST" that will allow you to
move from one routine to another with minimal key entry.
Let's say you have to modify a single byte at the same
location on 2 different drives.  Try this sequence:
Drive, Track, Sector ? 0,7,9
M (to enter modify mode)
G33 (to go to relative byte 33H)
Let's say you have modified the byte, and updated to the disk,
and you want to modify the same byte on drive 2.  Press
"CLEAR" to get the Drive, Track, Sector question back.  Reply:
2L which means drive 2, the LAST sector viewed.  Now press: M
to modify, and: GL to go to the last byte you went to.  You
are now at the same location, without having to remember
Track, Sector and relative byte.  Certain other routines have
their own LAST command.  When doing a "String Search", for
example, the last sector where a match was found updates the
LAST bytes.  If you searched drive 0, and found a match, you
could view the sector by specifying: 0L for "Drive, Track,
Sector ?".  Other routines that maintain their own independent
LAST are, "Relative Sector" in file utility, the menus have a
LAST, memory modify, and most any other routine where you
specified drive or file data.
     In order to bring you the additional support to ND80 V2,
it was necessary to remove the motor on delay option (page
51).  It is now set at 1 full second to allow the drive to
come up to speed.
*
ZAP UTILITY SUGGESTIONS:
     When "zapping" through a disk, it is recommended that you
use the !, # and % drive specifiers for direct access to the
sectors.  Only in special cases would you use $, ( and ).
Remember that when you use the latter, you WILL NOT view the
sector you specify, but it's RELATIVE position on the disk.
     The use of the relative sectors ("$()") option is
provided for you to use to access FILES on those diskettes
using this method of operation.  In routines that do not
operate on files, you will notice certain peculiarities when
specifying this option.  The problem arises from the fact that
the TRUE and RELATIVE track counts are different in these
disks.  If you tell ND80 or DoubleDOS that you have a 40 track
disk, it will actually have 70 relative tracks.  You will
notice this during configuration that SU+ will convert your
TRUE track counts to RELATIVE track counts for operational
purposes.  If you are zapping a disk with the $ option, then
press "Shift Up Arrow", SU+ will go to the track count table,
see 70 tracks, and try to seek to track 69 to get to the
highest track.  The problem compounds when SU+ takes the track
69, thinking it is REAL track 69, then tries to compute the
relative track which would be over 100.  Then your disk drive
will bang against the stopper and issue a read error.  You can
avoid these situations by observing the following suggestion.
ALWAYS use the !, # and % options when accessing direct disk
sectors (zapping, backup), and only specify the $(and )
options when the need arises to operate on files or
directories (purge, format, files).  Although MOST routines
will operate normally using the latter specifiers on DD disks,
certain peculiarities do exist.
     Furthermore, since ND80 V2 allows the user to specify a
great deal of "non-standard" disk formats, SU+ will only
operate on "standard" type ND80 V2 configuration.  Only the
following formats are supported.  Tracks MUST be numbered
starting at 0.  Sector numbers on each track MUST be 0-9 for
single density, and 0-17 for double density.  Track 0 may be
EITHER single or double density (both are supported).
Further, in order for SU+ to work on files, lumps MUST be
defined at 5 sectors long (the default condition).  ND80 V2 is
capable of many additional format types, but SU+ must have the
above conditions met in order to operate correctly.  You may
have different lump sizes if you do not plan on working on
files, but the track and sector numbering meet the above
conditions.
     Verify sectors updates LAST to the last bad sector.
     Compare sectors updates LAST to the last mismatch.
     Copy sectors updates LAST to the last bad read/write.
     Zero sectors updates LAST to last bad read/write.
     String/Sector search updates LAST to the last sector that
matched.
     When reading ID Address Marks from a disk, you may
observe the following:  When tracks are being read, it will
first try the density from the table.  If an error occurs, the
message "Not Formatted" or "ID read error" may be printed, and
the density will be toggled.  If a track is not readable, you
will notice the density change back and forth.  If "save
config" is ON, the drive specifier will be returned back to it
previous state.  This is one of the routines that can change
the drive table in order to complete it's routines.  Use the
"X" feature to uncover false sector information.
     Study the zap command lists on pages 12-13.
*
PURGE UTILITY SUGGESTIONS:
     When "purging" a disk, be sure that the DOS specifier and
track counts are correct, especially with ND80 V2.  All other
formats will take the track counts from the directory itself.
When using the "wild card" purge (page 22, #2.2B), you may
specify any beginning filename.  For "Category ?", you could
enter: BAS to kill all files that start with BAS.
     When SU+ reads a directory, it will read sectors
sequentially until it hits the first non-read-protected
sector.  This technique allows SU+ to read extended ND80
directories with no operator intervention.  On your screen you
will notice the last sector read is ONE GREATER than the
actual number used.  If the entire directory is on track 17,
then track 18, sector 0 will be the last sector read in.
*
FORMAT UTILITY SUGGESTIONS:
     When using the standard format, you will be asked if you
wish to "use configuration ?".  If you specify Yes, then the
entire disk will be formatted to the track count as
configured, and the directory will be placed on the specified
track.  If you specify No, then press "ENTER" alone, the
configured track count will be used, but the directory will be
placed on the middle track of the disk.  You may also, at this
time, specify other densities or track counts as indicated on
page 25.  Two special symbols may be entered in response to
the "Use configuration ?" question.  A "!" will tell SU+ to
overwrite existing data if found on the disk.  A "*" will NOT
perform the verify function, but simply format and write the
directory and boot.
     The "format without erase" feature is useful for changing
the track counts of diskettes.  Lets say all your data is on
35 track disks, but you now have 40 track drives.  Use format
without erase, and specify =40 for the track count.  When it
hits the first error (Track 35, Sector 0), reply with
"<Q>uit".  This will force SU+ to stop trying to read data,
but continue with the formatting and verification process,
contrary to the implication of the selection.
     I have also added an additional Hard Configuration option
for the Format Utility Use.  It allows you to specify the data
pattern to be used when formatting.  E5H for single density
and 6DB6H for double density are the default setting which
have been shown to be "worst case" patterns.  You will get a
maximum failure using this pattern, but potentially bad
sectors will be identified before a problem develops.  If you
prefer to use a different pattern, just zap these into the
configuration sector.
*
DISK BACKUP SUGGESTIONS:
     It is suggested that when using the "standard backup"
feature, that you use the !, # or % parameters.  Although SU+
will function normally with the other specifiers, you will not
view on the screen the TRUE sectors that are being read to /
written to.  The above 3 symbols will duplicate all the
different formats available with the DOS's.  When you are
asked "Format destination disks ?", you may respond with the
"!" and "*" as specified for Format.  The "!" will force SU+
to re-format a disk even though it has data without prompting,
and the "*" will cause SU+ to NOT perform the verify sequence
after disk writes.  This will greatly speed up the backup
operation.  This method will force you to rely on a simple CRC
check for correct sector transfer.  If the verify is enabled,
a Byte for Byte compare will be done on the destination disk,
and you will be notified on any sectors with discrepencies.
     When using "special backup", you will get optimal results
by specifing the correct track count.  Certain authors have
cleverly outwitted this function of SU+, and more and more
diskettes are appearing that SU+ cannot copy.  It is possible
that there could be false information on a track representing
a vast amount of data (seemingly 64K of data on a track).  If
such exists, SU+ will attempt to build a track this large,
which will wrap around memory and overwrite SU+ itself.  You
will then be forced to re-boot your SU+ disk.  If this
happens, you will have to ascertain which tracks are bad on
your source disk using "ID marks" in Zap.  Then you can use
"Special Format" or "Build Format Track" to re-create the
false sectors that exist on your disk.
*
DISK REPAIR SUGGESTIONS:
     When you encounter a bad disk, the first step is to
ascertain where that bad sectors are.  Use Zap to "verify disk
sectors" to locate the bad sectors.  Note the track and sector
numbers that cannot be read in.  Then use the "display sector"
option to try to read in the data.  If you get a "CRC" error,
then you can correct this condition as follows:
When you get the error message, reply "<S>kip" this sector to
view the data that was read in.  If you feel that the data is
all there.  Press M to modify, then "ENTER" to update the
sector.  SU+ will write the sector back out with the corrected
CRC bytes.  If you have an error "Sector Not Found", then the
proceedure is different.  In this case, use the "format
without erase" option in the Format Utility.  Specify a track
count large enough to get the affected sectors.  If the bad
sector was located in the directory, you may use the "repair
Gat and Hit" options in the Repair Utility.  If it was not a
directory sector, then go to "Sector Allocation" in File
Utility, and specify the bad sector number.  If it doesn't
belong to any files, then the fix is done.  If it does belong
to a file, then COPY that file back across from a know good
backup AFTER the sector has been repaired.
     You may change the track count of a diskette by using the
"repair GAT table" option.  You have a 35 track disk that you
just copied over to a disk with 40 tracks formatted.  Repair
the GAT, and specify =40 for the tracks.  The extra grans will
be opened up and made available to the system.
     The BOOT sector that is supplied on your SU+ disk, will
boot TRS-DOS and ND2.1 rather quickly.  If you commonly use a
different DOS, then you can copy the BOOT sector from that DOS
onto your SU+ diskette (page 54, #2.9E), which will be used
when "repair BOOT" is selected.  Do not worry about
permanently destroying the fast boot provided.  If you have
copied another boot onto this sector, but wish to use the
original one, then hold down the "CLEAR" key when you boot in
SU+.  This will force it NOT to read your configured sector,
but use the alternate copy of the provided boot as the
default.  Presto, you have it back again.
     When using the directory check on your old TRS-DOS and
ND2.1 diskettes, you will notice a high rate of HIT table
errors.  This is because those DOS's inserted an incorrect
byte for DIR/SYS to prevent you from opening it up as a file
(you will get an incorrect message of "File Not Found" from
DOS).  Use the "HIT repair" option to correct this and insert
the correct byte.  You will then be able to open up the
directory as a random file from Basic, and read the filenames
right off the disk (better than cmd"dir" and reading the names
from the screen).
     The "read protect directory" will allow you to easily
convert your single density TRS-DOS and LDOS back and forth to
each other.  On a TRS-DOS type disk, if you specify 0" for the
drive, it will write out the LDOS type directory marks.
Alternatively, specify 0! to change from LDOS back to TRS-DOS.
The first example will perform a REPAIR (ALIEN) command
provided with LDOS.  The second example will "undo" it back.
*
PATCH SECTOR SUGGESTIONS:
      The patch sector use is explained in limited detail in
the manual (page 56, #2.9H).  This 4 sector area (1K) is
useful for you to install your own routines.  Three different
types of load markers are recognized.  If a 01 is found, then
the next byte will indicate the length of data, followed by a
2 byte address to place the data (LSB,MSB), followed by the
data.  Let's say you wish to change the name of
"Super-Utility" to "Smart-Utility" for the sake of discussion.
You can use the memory string search to locate its position in
memory (let's say it returns with 47E9H).  We can now bring up
the patch sector (track 0, sector 6) and modify these bytes.
First enter 01 to indicate a load mark.  Then enter 07 (5
characters in Smart, + 2 byte address).  Next enter E9 47
which is 47E9H in LSB,MSB.  Next press "Shift ENTER" to change
to ascii modify, and enter "Smart".  Be sure that a 00
terminator follows the last byte of data (after the "t" in
Smart).  Update this to the sector.  Now when you re-boot the
system, it will have a new name.  You can also use this area
to specify an alternate entry point for the system.  You
could, for example, have SU+ jump to a monitor in high memory.
Modify the patch sector bytes to be 02 02 00 EC 00.  This will
specify an entry to SU+ of EC00H.  Now you can load RSM 48K,
then boot your SU+ disk, and RSM will be executed.  Any other
bytes will be interpreted as a remark.  You could, for
example, enter 03 05 then a 5 byte message that will be
ignored, but could be viewed as a remark via the zap utility.
If a patch overflows a sector, continue until you have reached
sector 9 (end of patch area).  The bytes will be interpreted
contiguously.
*
Some things that have been "fixed" in 2.0b are:
     Correct high-speed clock operation.
     Correct operation with ND80 version 2.0.
     "Wavy Screen" in 2.0a
     Hard Configure drive 0 as double density.
     String search for word list.
     Special format sector gaps.
*
     My thanks to those of you who have brought these problems
to my attention.  A special thanks to Don Szeles of Ann Arbor,
Michigan who has provided you with the TRS232 printer driver,
and has been most helpful in solving other problems that came
along, and Dave Ebert of Apparat for providing me with a copy
of ND80 V2 for support of their product.
     If you experience any "bugs" in SU+, please document them
thoroughly and contact Breeze.  I don't offer any rewards for
finding bugs, but I do fully support SU+, and any problems
will be immediately corrected.
