
	wart - UNIBUS/Q-bus ATA (IDE) adapter software for RT-11

*******************************************************************************
* Copyright (c) 1999 by Dmitry Pryanishnikov, Dnipropetrovsk, Ukraine.        *
*                                                                             *
* Permission is granted to any individual or institution to use, copy,        *
* or redistribute this software so long as all of the original files          *
* are included, that it is not sold for profit, and that this copyright       *
* notice is retained.                                                         *
*                                                                             *
* This project has been provided 'as is'. Any expressed or implied warranties * 
* are disclaimed. In no event shall I be liable for any direct, indirect or   *
* other damages arising out of the use of this project, etc. However I am     *
* interested in feedback from the users of this technology, and any           *
* suggestions are welcome.                                                    *
*******************************************************************************

  The software consists of the only device handler, WA.MAC. This handler
should work with any version of DEC RT-11 starting at V5.0. With some
minor modifications, it should be possible to compile handler under RT-11
V4. Only SJ and FB monitors are supported by this version of handler, and
support for XM/TS monitors will scarcely be created by me due to a lack
of time/interest.

  After assembly and link:

.MAC WA

.LINK WA/EXE:SY:WA.SYS

handler should be tuned with the help of various SET commands (see
complete list and comments within handler source). You can also change
defaults for some parameters by editing WA.MAC (see DEFxxx=... lines). In
any case, handler should be SET WA SYSGEN in order to tune self for the
current monitor SYSGEN options. This version of handler supports only one
logical unit, WA0:, and size of unit in blocks (up to 65535) also should
be set properly (SET WA SIZE=nnnnn). Slave drive units are NOT supported.
Also, handler does NOT autodetect drive geometry, so SECTOR (number of
sectors per track) and HEADS (number of tracks/heads per cylinder) also
have to be set manually according to default CHS used by specific HDD.
Finally, in order to use specific disk "partition" (some dedicated space
on drive) one can set disk partition starting cylinder, head and sector
(OFFCYL, OFFHEA, OFFSEC).
   Booting RT-11 from ATA HDD is a straightforward procedure (COPY/BOOT
will create hardware bootable disk, BOOT file-name will boot specified
monitor and so on). One can even boot the system from disk partition, but
for hardware bootstrapping one must provide boot path for hardware 
(modifying block 0 on disk for example), and make disk partition offset
available for driver. That is, in order to hardware boot system from partition,
some software should read starting block of this partition to memory starting
at zero, and transfer control to location zero with R0=100000 (flagging boot
from the unit 0 with some offset) and 2 words on stack: high part of starting
LBN for partition at 0(SP) then low part at 2(SP). This 2-word stack can be
established at any readable even address. Then this information will
be fetched from the primary bootstrap by the main part of handler and
system will work correctly.

dmitry@digital.dp.ua

