PLEASE COPY THIS DISK AND GIVE IT TO
EVERYONE YOU KNOW ! ! ! ! ! ! ! ! !
It is legal to copy and distribute
Diversi-DOS, subject to certain
restrictions (see "Licensing
Information"). However, to legally
run the Diversi-DOS program on this
disk, please send $25 directly to:
DSR, Inc.
5848 Crampton Ct.
Rockford, IL 61111
You will receive a User Support Number
and a Validation Sticker as proof of
payment. Your honesty will allow us
to distribute future programs this
same, low-cost way.
The first 3 tracks of a DOS 3.3 disk
contain the Disk Operating System
(DOS). When the disk is booted, the
DOS on these 3 tracks is loaded into
the Apple memory. This DOS then
controls all disk operations.
Diversi-DOS modifies the first 3
tracks on a disk. When the disk is
booted, the Diversi-DOS operating
system will be loaded. Diversi-DOS
will then control all disk operations.
To add Diversi-DOS to a disk, enter
"2" from the main menu. You will then
be asked if you want to install the
free sector patch. Press "Y" if you
want to know the number of free
sectors when you catalog a disk.
Note: This disables the CALL 1005
feature(see Random Access Text Files).
Then insert the DOS 3.3 disk and press
<return>. Diversi-DOS will be written
onto the first 3 tracks on this disk.
From then on, whenever you boot the
disk, it will load Diversi-DOS instead
of the old DOS 3.3.
The other way to add Diversi-DOS to a
disk is to initialize a blank disk
(press "9" from the main menu and
type: INIT HELLO).
Unprotected Commercial Disks:
In most cases, Diversi-DOS can be
added to any unprotected disk.
Commercial programs which uses DOS 3.3
in the standard way should work with
Diversi-DOS. However, any program
which references specific locations
within DOS may crash with Diversi-DOS,
since these locations may have been
changed. To be safe, it is best to
have a back-up copy of the commercial
program before adding Diversi-DOS.
Many protected disks will work with
Diversi-DOS by booting Diversi-DOS and
running the startup program on the
disk (usually named "HELLO"). For
your convenience, option "3" in the
main menu will do this for you. You
will be prompted to insert the
protected disk and press <return>.
The name of the start-up program will
be displayed on the screen, and this
program will be RUN (or BRUN if
needed). This bypasses the loading of
the old DOS 3.3 operating system off
the protected disk, so that
Diversi-DOS will stay in memory when
the protected program runs.
After you have run a protected disk
this way, you can make the process
more convenient by making a custom
Diversi-DOS boot disk for that
protected program. Press "7" from the
main menu to enter BASIC. Then enter
the following program.
10 INPUT "PUT IN DISK AND HIT RETURN";
A$
20 PRINT CHR$(4);"RUN HELLO"
After you enter this program, put in a
blank disk and type INIT HELLO. You
can now use this disk to boot
Diversi-DOS and start the protected
program. First put in this "boot
disk" and turn on the computer or
enter "PR#6". Then put in the
protected disk and press <return>.
Note: When you run a protected disk
using option "3" on the Diversi-DOS
master, it will tell you the name of
the start-up program. If the name is
not "HELLO", then use the correct name
in line 20 of the above program. If
it is a binary program, then use
"BRUN" instead of "RUN" in line 20.
If It Doesn't work:
Many protected programs will not work
when you try this procedure. This is
because they use a non-standard DOS.
To make back-up copies of this
Diversi-DOS master disk, choose "4"
from the main menu. You will then be
asked to remove the master disk and
put a blank disk in the same drive.
This disk will be initialized, and the
Diversi-DOS master files will be
written onto the disk.
When the copying process is finished,
insert a new blank disk and press
<space>, if you want to make another
copy. Note that you never need to
re-insert the master disk to make
copies.
When you press <space>, a copy will be
made on Drive #1. If you wish, you
can press <ESC> to make a copy on
Drive #2. This will allow you to make
multiple copies more rapidly by
alternating drives.
Menu option #6 will write the file
BUFFER onto a disk. Then, when you
BRUN BUFFER, the keyboard type-ahead
buffer, and print buffer will be
installed. This routine assumes that
you have a parallel printer card in
slot #1, and a 16K RAM card in slot
#0. If you don't have this hardware,
you will have to modify the BUFFER
routine (see below).
Keyboard Buffer:
With the keyboard buffer installed,
anything you type on the keyboard is
stored in memory so it is not missed.
If the computer is reading the disk,
for example, characters which you type
will be stored until the computer is
ready. Thus, you can enter another
command while the computer is
processing a previous command.
Since this feature is done entirely in
software, some programs will not be
compatible. For example, if a BASIC
program tries to read the keyboard
with PEEK's instead of the usual GET
or INPUT, then the PEEK will never
find a character. That character will
be waiting in the memory buffer. The
result is a program which does not
respond to the keyboard. If you find
a program which does not work properly
with the keyboard buffer, you can
disable it.
Print Buffer:
Whenever the computer tries to send a
character to a printer, it normally
has to wait until the printer is
ready. Since the printer is much
slower than the computer, there is a
large amount of time spent waiting.
The print buffer utility solves this
problem by saving the characters to be
printed in memory until the printer is
ready for them. Even though the
characters have not actually been
printed, the computer can go on to its
next job, since the characters are
safely stored and will be printed when
the printer is ready.
The print buffer is installed when you
BRUN BUFFER. You must have a 16K RAM
card in slot #0, and a parallel
printer card in slot #1. To turn on
the printer, enter PR#1 as usual. If
you are turning on the printer from a
program, you must enter:
10 PRINT CHR$(4);"PR#1"
That is, PR#1 should be entered as a
DOS command from within a program.
Future PRINT statements will send
output to the print buffer, and then
to the printer, when ready. The
output will be displayed on the screen
as it goes into the print buffer.
Modifying the BUFFER file:
To modify the BUFFER file, press "5"
from the main menu. You will be asked
a series of questions about your
configuration.
The old Apple "Serial Interface Card"
cannot be supported due to its design
limitations. In general, most
parallel printer cards will work with
the "PARALLEL" option, and most serial
printer cards will work with the
"COMMUNICATIONS" option (i.e.
Versa-Card, CCS 7710, etc.).
All 16K RAM cards should be
compatible. If you have a 32 to 128K
card from Saturn Systems or Legend
Industries, you can use it for a
larger print buffer. If you have
another brand of card, ask the
manufacturer if it uses the same bank
switching scheme as Saturn or Legend.
If it doesn't, you can still use it as
a 16K card.
After you are finished with the
changes, you will be asked to insert
a disk. The new BUFFER file will be
written onto this disk. Then, if you
want to put the new BUFFER file onto
another disk, use option "6" from the
main menu.
Notes:
The print buffer utility disables the
software features on the printer card.
Commands to the printer card will no
longer have an effect (i.e. ctrl-I
80N with a parallel card). After you
BRUN BUFFER, control of the printer
must now be done with POKE's (see
"Diversi-DOS POKE's"). For example,
instead of ctrl-I 80N, enter POKE
49028,96. This turns off output to
the screen and prints the full width
of the printer (Set the switch on
your printer to do a line feed when
the line buffer is full).
When you BRUN BUFFER, the INIT and
CHAIN commands are disabled. If an
INIT is issued, it will be ignored,
but no error will occur. To restore
the INIT command, re-boot a
Diversi-DOS disk.
The BUFFER utility may not work with
some programs which change locations
$36 to $39. Also, the Applesoft
CHRGET routine is modified. This
might cause problems with certain
programs which also patch here (i.e.
compilers). The following program
will install the BUFFER utility
without patching CHRGET:
10 ?CHR$(4);"BRUN BUFFER"
20 POKE 46965,16
To use BUFFER with Applewriter I, use
the printer address $AE8E and turn off
the screen (POKE 44671,96).
Flushing the Buffers:
If you type some wrong characters,
enter ctrl-X to cancel them. The
keyboard buffer will be emptied.
Similarly, to flush the print buffer,
enter ctrl-X twice in a row. All
characters waiting to be printed will
be lost. Pressing RESET does not
flush the print buffer. To avoid any
problems, it is best to set the
printer "off-line" before pressing
RESET.
Diversi-DOS prints error message
numbers, instead of the full message.
You may want to tape a print-out of
these messages to the top of your
computer:
1......Language Not Available
2,3....Range Error
4......Write Protected
5......End of Data
6......File Not Found
7......Volume Mismatch
8......I/O Error
9......Disk Full
10......File Locked
11......Syntax Error
12......No Buffers Available
13......File Type Mismatch
14......Program Too Large
15......Not Direct Command
Diversi-DOS contains an optional
faster way to specify the Record and
Byte parameters when reading or
writing a random access text file from
Applesoft BASIC. CALL 1005 sets these
parameters to the values in the
Applesoft variables named "RE" and
"BY" respectively. The following
example will illustrate how to use
this feature.
Standard DOS way:
10 PRINT CHR$(4);"OPEN RANFILE,L10"
20 BY=0
30 FOR RE=0 TO 1000
40 PRINT CHR$(4);
"WRITE RANFILE,R";RE;",B";BY
50 PRINT "TEST DATA"
60 NEXT
70 PRINT CHR$(4);"CLOSE RANFILE"
Diversi-DOS way (optional):
10 PRINT CHR$(4);"OPEN RANFILE,L10"
20 BY=0
30 PRINT CHR$(4);"WRITE RANFILE"
40 FOR RE=0 TO 1000
50 CALL 1005
60 PRINT "TEST DATA"
70 NEXT
80 PRINT CHR$(4);"CLOSE RANFILE"
The CALL 1005 is over 60 msec faster
than the standard DOS PRINT.
Diversi-DOS still speeds up text file
handling without CALL 1005, but using
CALL 1005 makes it work even faster.
Then choose the option to send
instructions to a printer.
Printer Cards:
The file "ASMDIV" contains the printer
card data. To add a new card type,
BLOAD ASMDIV and enter the card data
as described below. Then BSAVE
ASMDIV,A$2000,L$70FA. Then reboot the
Diversi-DOS disk and select option
"5". Your new card type will be
listed as an option.
To add a new card:
Location $7800 contains the number of
cards (currently $A). Change it to $B
to add a new card.
The first card description begins at
$7840. The next begins at $7880.
Each description is $40 bytes long.
The first open space is at $7AC0 which
is where your new card data will
begin.
Data is output to the printer using
the following subroutine (PSLOT is
the printer card slot #):
POUT PHA ;PRINTER OUTPUT ROUTINE
SCHECK LDA ASTATUS+(PSLOT*ASADD)
AND #MSTATUS
EOR #ESTATUS
BNE SCHECK
PLA
AND #MDATA
STA ADATA+(PSLOT*ADADD)
RTS
The printer card data format is as
follows:
Byte/Size Name Description
$00/$20 PINIT Init routine
$20/$10 PNAME Card Name
$30/ $1 ---- Must be 0
$31/ $2 ASTATUS Status address
$33/ $2 ASADD Slot adder
$35/ $1 MSTATUS Status mask
$36/ $1 ---- Unused
$37/ $1 ESTATUS EOR byte
$38/ $1 MDATA Data mask
$39/ $2 ADATA Data address
$3B/ $2 ADADD Slot adder
$3D/ $3 ---- Unused
The subroutine PINIT is called to
initialize the printer card when
BUFFER is BRUN. At the time of the
call, the X-reg contains the value
"N0" where N is the slot #. $36 and
$37 contain $CN00. A-reg is $8D.
Polling the Keyboard:
After you BRUN BUFFER, location $BF87
contains the routine which checks the
keyboard and printer. If you write an
assembly language routine, you should
JSR $BF87 every 10 msec or less. A,P
are destroyed / X,Y are preserved.
Note that before BRUN BUFFER, $BF78
contains an RTS.
Interrupts:
Diversi-DOS does not disturb $45, so
interrupts will not crash Diversi-DOS.
Even so, DOS disables interrupts for
up to 3 seconds during an RWTS call.
After you BRUN BUFFER, you can JSR
$AEF0. After this, Diversi-DOS will
do a CLI in RWTS every 11 msec or
less.
Reset Hooking:
Reset should be vectored by changing
$9D5E and $9D5F (not $3F0,$3F1). This
insures that DOS is reset also.
Text Files:
The reading of text files is only
speeded up if input is taken from the
monitor GETLN routine (JSR $FD6A or
$FD6F).
Although Diversi-DOS is copyrighted,
DSR allows copying and distribution of
the program subject to the following
restrictions:
1. Anyone receiving a copy of
Diversi-DOS must send a $25 license
fee directly to DSR, Inc. within 2
weeks.
2. Each computer running Diversi-DOS
must have a Diversi-DOS validation
sticker attached.
3. Any company, club, or individual
may charge up to $5.00 for
distributing copies of Diversi-DOS,
provided it is clear that an
additional $25 fee must be sent
directly to DSR. A catalog listing
should read: "Diversi-DOS
(distribution fee only) $5.00".
This method of distribution offers
tremendous advantages. The cost of
Diversi-DOS is less than 1/2 of what
it would be if distributed
conventionally. Also, you can test
the program before you pay.
To obtain a Diversi-DOS license and
validation sticker, please send $25
for each computer to:
DSR, Inc.
5848 Crampton Ct.
Rockford, IL 61111
815 877-1343 (Visa/MC)
Note: The $25 fee covers the cost of
the validation sticker only. If you
would also like a new disk with the
latest Diversi-DOS version, send $30.
Publishers:
There is no royalty fee for publishers
who sell their programs with
Diversi-DOS included. The only
restriction is that each disk must
display the Diversi-DOS "Request for
Payment" message during the boot. To
add this message to a disk, boot the
master disk and select option #2 (add
Diversi-DOS to unprotected disk). Put
in your disk, and press <space>
instead of <return> when you see the
prompt "Press return for normal start
program".
Publishers who do not wish this
message to appear on the screen can
license Diversi-DOS for a $200,
one-time fee for all their programs.
To do this, the following message must
appear in the written documentation:
This disk contains a high-speed
operating system called
Diversi-DOS(tm), which is licensed
for use with this program only. To
legally use Diversi-DOS with other
programs, you may send $30 directly
to: DSR, Inc., 5848 Crampton Ct.,
Rockford, IL 61111. You will
receive a Diversi-DOS utility disk
with documentation.
Alternatively, publishers may include
the 2 Diversi-DOS files, HELLO and
ASMDIV, on their disk at no charge.
The disk must be initialized with
standard DOS 3.3. The user then has
the option of adding Diversi-DOS to
the disk, and sending the $25 to DSR,
or using standard DOS without paying
an additional fee.
Diversi-DOS is a highly modified
version of DOS 3.3. DSR is licensed
by Apple to distribute the DOS 3.3
code present on the Diversi-DOS master
disk. However, to add Diversi-DOS to
a disk, publishers must still obtain a
license from Apple for DOS 3.3. For
more information, call Terri Hasbrouck
(408 996-1010).
The following program modifies the
Diversi-DOS INIT function. After
running this program, INIT will
initialize non-bootable "Data" disks
with 32 more free sectors. If you
boot a data disk by mistake, you will
have to press <reset>.
10 POKE 42344,76
20 POKE 44723,4
30 POKE 46922,96
Reset Hook:
The following POKE's will re-RUN a
BASIC program when <RESET> is pressed:
POKE 40286,252
POKE 40287,164
Language Card Re-load:
To avoid reloading a RAM card with
BASIC on every boot:
POKE 49107,173
Motor Start Time:
To speed up DOS even more, you can
change the motor start time to 1/2
sec. To do this, change the HELLO
program as follows:
LOAD HELLO
85 POKE 47102,236
SAVE HELLO
Over 99% of disk drives will work
correctly this way. However, an
occasional drive will destroy disks.
To restore the 1 second delay:
85 POKE 47102,216
Print Buffer Utility:
After you "BRUN BUFFER", the following
POKE's will modify the printing:
POKE 49028,96 - Turns off output to
the screen when printing
POKE 49028,76 - Turns it back on
POKE 44762,96 - Turns off line feed
after carriage return
If you have an old Integer BASIC
machine with an APPLESOFT ROM card:
BLOAD BUFFER
POKE 32915,N (N is ROM card slot #)
BSAVE BUFFER,A$8000,L$6FA
If the ROM card is not in slot 0,
change DOS as follows:
POKE 42424,N*16+128
POKE 42432,N*16+129
If you have an Integer machine and use
a RAM card in slot #0 to load
Applesoft, you can still get a 4K
print buffer as follows:
This is Diversi-DOS version 2-C. "2"
refers to the Master Disk version.
"C" refers to the DOS version
(displayed during a CATALOG). If the
program is updated, all licensed users
will be notified by mail. The updated
disk may then be purchased for $5.00
to cover the cost of materials.
Licensed users will also be notified
of any future programs released by
DSR.
Menu option 7 will save the file
"DDMOVER" onto a disk. When you BRUN
DDMOVER, Diversi-DOS is moved onto a
RAM card, giving more room for BASIC
programs (you cannot BRUN DDMOVER
after BRUN BUFFER).
DDMOVER requires Diversi-DOS version
C, a 16K or greater RAM card in slot
#0, and Applesoft ROM on the
motherboard. If these are not all
present, DDMOVER has no effect.
After DDMOVER, you will notice the
following changes:
1. CATALOG shows "Free Sectors"
2. Integer BASIC is unavailable
3. You cannot BRUN BUFFER
4. INIT formats non-bootable disks
5. HIMEM=48896 (don't set any higher)
6. An additional DOS command "PAD"
will print the address and length of
the last BLOADed file.
If you BRUN DDMOVER from within a
program, the program is lost. The
following statement will cause DDMOVER
to RUN the program "HELLO" after
moving DOS:
0 POKE 40206,0:?CHR$(4);"BRUN DDMOVER"
If this is the first statement of a
program named "HELLO", the effect is
to move DOS to a RAM card, if present.
If a RAM card is not present, DDMOVER
returns, and the HELLO program
continues. If the card is present,
DOS is moved and the HELLO program is
RUN again. When DDMOVER is called
again, it will return, since DOS has
already been moved. After this
statement, IF PEEK(55) > 190, then DOS
was moved.
To move CORVUS hard disk DOS, boot the
CORVUS DOS and do the following:
Menu option 8 will save the file
"PATCH" onto a disk. BRUN PATCH
converts standard DOS 3.3 into
DIVERSI-DOS. This can be used to
convert a running DOS to Diversi-DOS,
i.e. with hard disks.
If it doesn't work, try this:
BLOAD PATCH
POKE 36816,0
BSAVE PATCH,A$8C00,L$470
If it still doesn't work:
POKE 36780,0
This second change leaves the patch
area $BCDF to $BCFF open, but disables
the CALL 1005 feature.
When this disk boots, it now performs
a checksum of itself. If any bytes of
the program are changed, you will hear
2 beeps. This indicates a bad copy of
Diversi-DOS.
Note: If you modify Diversi-DOS, the
menu will show version number 2-C*.
The "*" shows that changes have been
made. To eliminate the beeps, reboot
and make a copy (option 4).