
                         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 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 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 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 Winchester
      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 avail-
      able 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 prototyping
      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
      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 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.
