
                         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 appli-
     cation 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 Interface 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 Interface 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 pronun-
     ciation 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 "con-
     trollers".  Each controller can support at least one hard disk.  There-
     fore, 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 now 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 Winches-
     ter Disk Controller is one of the more popular SASI controller boards 
     but still remains expensive ($350).  A low-cost alternative to the 
     XEBEC controller is the SHUGART 1610A SASI Controller.  TPL has added 
     the 1610A to its list of products at $129.95 each.  We have tested the 
     1610A and it works beautifully with the jrSASI project.

     The only other lower cost SASI Controller we knew of may still be 
     available from John J. Meshna Jr. Inc, for $150 (if not sold out).  We 
     have every reason to believe that the Mensha SASI Controller will work 
     with the jrSASI interface, but we have NOT tested it to make sure.  For 
     more information contact:


                      John J. Meshna Jr. Inc.
                      19 Allerton Street
                      Lynn, MA  01904
                      (617) 595-2275
                      RE: 5 1/4" Hard Disk Controller


     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 proto-
     typing board for the jrSASI Interface board as we have assembled it.  
     (Note that the drawing is grossly out of scale).

       ______________________________________________________________________
      |              ()     (cap)                    ()           (res)  __  |
      |          _______   _______   _______   _______   _______  ==-== |50| |
      |         |_U1_08_| |U2_221_| |_U3_32_| |U4_374_| |_U5_38_| ==-== |p | |
      |          _______   _______   _______   _______   _______  ==-== |i | |
      |         |_U6_04_| |U7_138_| |_U8_74_| |U9_373_| |U10_38_| ==-== |n | |
      |          _______   _______   _______   _______   _______  ==-== |  | |
      |         |U11_133| |U12_640| |U13_74_| |U14_373| |U15_38_| ==-== |h | |
      |                                                           ==-== |d | |
      |              ()   ::::::::::::::::::::::::   ()           ==-== |r_| |
      |______________________PCjr_I/O_Connector______________________________|


     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 pro-
     vided 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 technically 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/manu-
     facturer 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 
     information 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 copying the file, SASI.COM, 
     onto the DOS boot disk and adding the line: DEVICE=SASI.COM in the 
     CONFIG.SYS file (also on the DOS boot disk).


VII. 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.

     TPL Corporation originally developed the jrSASI Interface for its own 
     internal use.  It worked so well that we decided to write the necessary 
     documentation and allow other PCjr users access to the design free of 
     charge by placing it into the public domain.  If TPL were offering a 
     completely assembled and tested hard disk expansion unit for the PCjr, 
     we would naturally provide reasonable formal support.  As the design is 
     intended entirely as a do-it-yourself project, TPL is NOT providing any 
     formal support.  We WILL do our best to answer individual questions and 
     respond in some form or other to reported bugs.


