Before you begin to write a SCSI driver for <#1238#><#1238#>, you will need to
obtain several resources.
The most important is a bootable <#1239#><#1239#> system---preferably one which
boots from an IDE, RLL, or MFM hard disk. During the development of your
new SCSI driver, you will rebuild the kernel and reboot your system many
times. Programming errors may result in the destruction of data on your
SCSI drive <#1240#> and<#1240#> on your non-SCSI drive. <#1241#> Back up your system
before you begin<#1241#>.
The installed <#1242#><#1242#> system can be quite minimal: the GCC compiler
distribution (including libraries and the binary utilities), an editor, and
the kernel source are all you need. Additional tools like 7,
8, and 9 will be quite helpful. All of these tools
will fit on an inexpensive 20-30~MB hard disk..
Documentation is essential. At minimum, you will need a technical manual
for your host adapter. Since <#1244#><#1244#> is freely distributable, and since
you (ideally) want to distribute your source code freely, avoid
non-disclosure agreements (NDA). Most NDAs will prohibit you from
releasing your source code---you might be allowed to release an object file
containing your driver, but this is simply not acceptable in the <#1245#><#1245#>
community at this time.
A manual that explains the SCSI standard will be helpful. Usually the
technical manual for your disk drive will be sufficient, but a copy of the
SCSI standard will often be helpful.
Before you start, make hard copies of 12, 13, and
one of the existing drivers in the <#1247#><#1247#> kernel. These will prove to be
useful references while you write your driver.