JRSASI Project Description I. General Description JRSASI is a set of schematics and source software for adding a hard disk to an IBM PCjr at a reasonable cost. The schematic is a one page drawing, the source software is a set of files with the source software for: a. PC-DOS Device Driver b. Installation Utility c. Low level SASI driver d. Various small routines for the Installation Utility We, Turning Point Logic Corporation, are releasing this information into the public domain (for non-commercial use only) as a useful application for our IBM PCjr Prototyping Board. II. Hardware Requirements The major pieces for the JRSASI project are listed below. a. IBM PCjr [software tested on 128K system - not tested on 64K]. b. IBM PCjr Prototyping Board. c. SASI Winchester Hard Disk Controller. d. Hard disk drive with an ST-506 or equivalent interface. e. A power supply with at least 4 amps of +12VDC output and 2 amps or more of +5 VDC for the SASI controller and hard drive. f. 50 pin ribbon cable to connect JRSASI board to SASI controller board. g. Parts for JRSASI board (listed later). f. JRSASI software (we supply both source and executable) and documentation. The major building steps are given below. a. Purchase SASI Winchester Hard Disk Controller, hard disk drive, power supply, prototyping board, JRSASI parts, and ribbon cable. b. Construct JRSASI board (details given later). c. Connect power supply to SASI controller and hard disk drive. d. Connect JRSASI board with SASI controller via 50 pin ribbon cable. e. Run installation utility on hard disk drive. f. Install device driver on DOS disk. g. Boot system and test. III. Hardware/Software Structure The JRSASI software/hardware is based on the Shugart Associates System Interface, better known as SASI. SASI is a very popular hardware- software standard for hard disks. The interface, both on hardware and software terms, is fairly easy to implement and supports devices such as hard disks, floppy disks, printers, optical storage disks, and other devices with little or no software changes. The SASI interface has now become an ANSI standard called the Small Computer Systems Interface, referred to as SCSI (usually pronouced "SCUZZY" - although the pronunciation does not reflect its capabilities). In the area of hard disks, for which SASI was originally designed, storage capacities from 5Mb to 512Mb are supported. The SASI interface allows for up to eight hard disk units actually referred to as "controllers". Each controller can support at least one hard disk. Therefore, for those in need of massive amounts of storage, a system with to up 4 gigabytes of disk space (512Mb/disk * 8 controllers) can be configured. The physical layout of the JRSASI hardware is shown below. ------------------- / /| /| ************* / IBM PCjr / | / | (cable) * / / // / * / / // / -------- -------------------- /// // <- JRSASI / SASI / | | / | / BOARD /Control/ | |/ |/ / Board / ------------------- --------- *--*----- /* * /| / * * / / /--------/ / |HARD DISK|/ --------- The JRSASI board is built using our IBM PCjr Prototype Board. This board plugs into the righthand side of the IBM PCjr as does most of the 128K memory expansions. The JRSASI board contains a total of 15 chips which are basically buffers and I/O decoding circuitry. A 50 pin ribbon cable connects the JRSASI board to the SASI Controller board. All of the "real" work involved in interfacing (performing read and write sector operations) to the hard disk drive is done by the SASI Controller Board (which we do not sell). Data is passed between the JRSASI board and the SASI Controller by an 8-bit bidirectional data bus. Five status lines and three control lines are used in controlling the data bus, issueing commands, and retrieving status results. Commands to the SASI controller are passed in 6 byte blocks referred to as DCBs (Data Control Blocks). The result status of an operation (e.g. read sector) is usually returned in a two byte block. The SASI Controller that this project is concerned with interfaces to the hard disk on what is known as the ST-506 interface (the ST stands for Seagate Technology). The ST-506 is an interface specification for 5 1/4-inch Winchester hard drives. The XEBEC S1410 5.25 Inch Winchester Disk Controller is one of the more popular SASI controller boards but still remains expensive ($350). There are several other companies with SASI Controllers with ST-506 interfaces. One company, John J. Meshna Jr. Inc, is selling a 5 1/4-inch Hard Disk Controller with a SASI interface for $150 (while supply lasts). At this time, though, we have not used their board with our JRSASI interface. For further details on their SASI controller board contact: John J. Meshna Jr. Inc. 19 Allerton Street Lynn, MA 01904 (617) 595-2275 RE: 5 1/4" Hard Disk Drive Controller Card We are in the process of confirming two other sources of a low cost SASI Controller board. There are many different hard disk drives on the market today and NOT ALL HAVE AN ST-506 interface. Before purchasing a hard drive make sure that it has an ST-506 interface and it would be wise to not purchase the drive unless it has a manual that goes with the drive. IV. Interface Board Components The drawing below shows the parts and their locations on the prototyping board for the JRSASI Interface board as we have assembled it. (Note that the drawing is grossly out of scale). ____________________________________________________________________ | _______ _______ _______ _______ (res) __ | | |___32__| |___04__| |__374__| |___38__| -==- |50| | | _______ _______ _______ _______ -==- |p | | | |___74__| |__221__| |__373__| |___38__| -==- |i | | | _______ _______ _______ _______ -==- |n | | | |___74__| |__138__| |__373__| |___38__| -==- | | | | _______ _______ _______ -==- |h | | | |__133__| |__640__| |___08__| -==- |d | | | -==- |r | | | ::::::::::::::::: -==- |__| | |____________________________________________________________________| All of the parts are readily available from the majority of electronic parts mail order houses. Since the board contains few parts, build time is minimal, about 15 hours. The following list gives the complete list of parts required for the JRSASI board. PARTS: 1 - 74LS04 (14 pin) 1 - 74LS08 (14 pin) 1 - 74LS32 (14 pin) 3 - 7438 (14 pin) 2 - 74LS74 (14 pin) 1 - 74LS133 (16 pin) 1 - 74LS138 (16 pin) 1 - 74LS221 (16 pin) 2 - 74LS373 (20 pin) 1 - 74LS374 (20 pin) 1 - 74LS640 (20 pin) 8 - 14 pin sockets 3 - 16 pin sockets 4 - 20 pin sockets 16 - 220 Ohm 1/4 watt resistors 16 - 330 Ohm 1/4 watt resistors 1 - 10K Ohm 1/4 watt resistor 1 - 1000pf capacitor 15VDC 1 - 50 pin header V. Installation Utility Like a new floppy disk fresh out of the box, the hard disk must be formatted and prepared for DOS use. The Installation Utility is run only one time and not used again other than for possibly cleaning up bad spots on the hard disk by reformatting. It includes the following major functions. 1. Read Sector 2. Modify Sector 3. Set Drive Characteristics 4. Format Drive 5. Read Multiple Sectors (for testing) 6. Write Multiple Sectors (for testing) 7. Initialize Disk for DOS The two functions which may not be self explanatory are the Set Drive Characteristics function and the Initialize Disk for DOS function. There are many manufacturers of hard drives with ST-506 interfaces. Even though these drives have a standard electrical interface the con- struction of the drives are not necessarily standard and vary with the drive size (e.g. 5MB vs 10Mb). The Set Drive Characteristics function allows the user to enter the various drive features for the drive they have purchased. These drive characteristics include such items as the number of heads, number of cylinders, number of sectors per track, the number of bytes per sector. The majority of this information is provided with the drive and the remainder of the information should be included with the SASI controller. The Initialize Disk for DOS function is used to write information about the hard drive onto the boot sector so that the DOS device driver and DOS itself can access the drive. This information includes all of the Drive Characteristics information and DOS specific parameters such as the total size of the drive, the number of file entries in the root directory, and number of sectors per cluster. The DOS parameters are determined basically by the drive size. The actual setup procedure will be explained in detail in the Installation Utility documentation. The majority of the Installation Utility is written in 'C' with a small set of 8088 assembler routines included. VI. DOS Device Driver The MSDOS operating system is basically a generic piece of software that is run on various 8088/86 based microcomputers. The main purpose of DOS is to provide a foundation for various application software. DOS techni- cally provides a standard interface between application software such as database software and the hardware that it is running on. At the lowest level of the DOS software, DOS allows the user/manufacturer to customize the hardware interfaces without altering the DOS software. DOS uses what are called "device drivers" which are a set of routines written by the user/manufacturer that control a specific piece of hardware (e.g. hard disk). The device driver has a specified format and data is passed between the hardware and DOS in a prespecified method. The device driver for the JRSASI project is a set of 8088 assembler routines that control a hard disk via the standard SASI interface. DOS issues requests to the JRSASI device driver to read and write sectors and the 8088 routines process these requests. These routines use the in- formation that the Initialize Disk for DOS function placed into the boot sector in the actual sector read/write operation. The JRSASI device driver is installed by writing the file SASI.COM onto the DOS disk and adding the line: DEVICE=SASI.COM in the CONFIG.SYS file (also on DOS disk). VII. Project Status We originally designed/wrote the JRSASI hardware/software for internal use only. We basically stopped at that point but decided to determine if there was interest in this project via our BBS users. We have received a positive response and have decided to proceed with releasing the schematics/source for the project. Since the JRSASI project was put together for internal use we spent little time on general documentation. At this time, we are in the process of writing detailed documentation and determining the best method of distributing the schematics, source software, and documenta- tion. In the mean time, we will place the schematics and source software, with the documentation we currently have, on our BBS for those strong at heart. Until we complete the documentation we request that those using the software/schematics refrain from asking questions until we have com- pleted the documentation. We want to dedicate our time to writing the documentation which should answer the majority of questions. When the documentation is complete we will put it out on our BBS system. Purchasers of our PCjr Prototype board will receive a disk with all of the information no charge. For those without access to our BBS or who do not purchase the PCjr Prototype board, a copy of the information, on disk, can be obtained for a fee of $25.00 to cover administrative and reproduction costs. VIII. Support Policy concerning the JRSASI project. The JRSASI project is aimed at those interested and capable of building a hard drive option for their IBM PCjr from the ground up. Turning Point Logic Corporation is providing the schematics, source software, and documentation to aid in the completion of this project. This information is released "AS IS" without warranty of any kind. The JRSASI project contains all of the necessary information including the schematics and source software for the user to maintain, modify, and/or customize the project to his or her own specifications. As a matter of good business policy we will do our best to respond to reported problems but our official support policy concerning the JRSASI project must remain as explained in the above two paragraphs.