home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / !MAGS / CHOSNECK / CHOS3.ZIP / CHOSNECK.3RD / STUFF / DATAS.ZIP / ART51.SCR < prev    next >
Encoding:
Text File  |  2003-01-26  |  28.6 KB  |  606 lines

  1. <head>
  2. <title="...forever...">
  3. <font=monaco10.fnt>
  4. <font=newy36.fnt>
  5. <font=time24.fnt>
  6. <image=back.raw w=256 h=256 t=-1>
  7. <buf=9417>
  8. <bgcolor=-1>
  9. <background=0> 
  10. <link_color=000>
  11. <module=console.mod>
  12. <pal=back.pal>
  13. colors:
  14. 251 - black
  15. </head>
  16. <body>
  17. <frame x=0 y=0 w=640 h=9417 b=-1 c=-1>
  18.  
  19.        -- - --- -- -----------------------------------------------------       
  20.        <f1><c000>  IDE Hard Drive Interface
  21.         for Atari XL/XE series!
  22.        <f0>          by Jacek Zuk and Konrad Kokoszkiewicz
  23.        ----------------------------------------------------------- -- -- 
  24.  
  25.        A message to Operating Systems/Disk Operating Systems developers.
  26.  
  27.        Dear developer!
  28.  
  29.        We  are pleased to present you a preliminary document  about  our
  30.        IDE  hard  drive  interface  for  <link=g51.scr>Atari  130XE</l>  (and  compatible)
  31.        computers.  As existing Disk Operating Systems aren't able to use
  32.        all  the capabilities we provided,  we are kindly asking  you  to
  33.        upgrade  the  latest  versions of your  work  and  implement  the
  34.        specific IDE features,  those have been described below. The four
  35.        general  problems  we  found trying to use any  of  the  existing
  36.        DOSes, are as follows:
  37.  
  38.        1) All DOSes we tested,  i.e.  SpartaDOS 3.2g,  SpartaDOS X 4.20,
  39.        MyDOS 4.53 and BWDOS 1.10,  when they have been executed, seem to
  40.        force  the  DUNIT  (¢0301)  value to  ¢01.  Such  action  is  not
  41.        necessary,  because the DUNIT is already set by the XL OS's RESET
  42.        routines,  and is obnoxious,  because,  as a result,  the DOS  is
  43.        unable to read its config files, when the system has been started
  44.        from a partition other, than D1:.
  45.        
  46.        2)  All  the DOSes we tested are unable  to  read/write  512-byte
  47.        sectors,  so they are unable to work in the IDE native mode  (see
  48.        below).  The interface provides the emulation mode to handle 256-
  49.        byte sector operations,  but, as a result, the drive is unable to
  50.        reach its full speed. Especially any writes to the hard drive are
  51.        very  slow.  The implementation of the 512 byte allocation  units
  52.        may also be profitable in the future, if we decide to add support
  53.        for DMA transfers.
  54.      
  55.        3)  All the DOSes we tested are unable to handle  big  partitions
  56.        (i.e.  over  16  MB limit).  The implementation of the  512  byte
  57.        allocation  units  may solve this problem in a  part  (the  limit
  58.        would  be  32  MB per partition then),  but,  if  you  decide  to
  59.        implement  big  partitions handling,  we advise you  to  consider
  60.        about  using the 23-bit sector addressing in conjuntion with  the
  61.        larger allocation units (see below for details).
  62.      
  63.        4) All the DOSes we tested are unable to handle disks D10-D15.
  64.  
  65.        Operating  Systems  developers  please note,  that  there  is  no
  66.        necessity to set the DUNIT value in the OS BOOT routine,  as  the
  67.        DUNIT is already set by previous RESET routines.
  68.  
  69.        We  hope,  that you will take these problems into  consideration,
  70.        decide to support the features described below and don't hesitate
  71.        to send us your comments, if any.
  72.  
  73.                                                                  Regards
  74.  
  75.                                                     Konrad Kokoszkiewicz
  76.                                           E-mail: conradus@plearn.edu.pl
  77.                                            S-mail: ul. Tomaszowska 95/37
  78.                                         PL-26-420 Nowe Miasto nad Pilica
  79.                                                                   POLAND
  80.  
  81.                                      ***
  82.  
  83.             IDE Hard Drive Interface v.1.0 - a preliminary document
  84.  
  85.          Copyright (c) 1995-1996 by Jacek Zuk and Konrad Kokoszkiewicz
  86.  
  87.                                 Made in Poland
  88.  
  89.                                      ***
  90.  
  91.        The IDE package contains:
  92.  
  93.        1) the IDE interface
  94.        2) a power supply
  95.        3) a cable to connect the interface with a drive
  96.        4) utilities disk with MyDOS 4.53
  97.        5) this document
  98.  
  99.        Index rerum
  100.  
  101.        I.        Introduction
  102.        II.       Capabilities overview
  103.        III.      How to make it work (step by step)
  104.        IV.       Keystrokes
  105.        V.        Write-protection feature
  106.        VI.       Executing non-DOS software
  107.        VII.      Dual drive configuration
  108.        VIII.     Software development information
  109.        IX.       Memory usage
  110.        X.        Error messages
  111.  
  112.        I. Introduction
  113.  
  114.        Seven  years ago,  when I first heard about hard drives  for  the
  115.        Atari 8-bit, a 20 MB SCSI device's price was over 600 USD and, of
  116.        course,  was  out of reach for people in a country on  the  wrong
  117.        side  of  the Iron Courtain,  where wages were about 20  USD  per
  118.        month. The 1050 floppy drive was a dream - what would I say about
  119.        the hard one...?
  120.  
  121.        Over  the  next six years many things have  been  changed.  Among
  122.        others, the Iron Courtain got rusty, we have started earning more
  123.        money,  got  some new Atari computers  and,  simultaneously,  the
  124.        prices of hard drives have gone down dramatically...  and one day
  125.        I realised,  that it is possible to obtain an IDE hard drive  for
  126.        the  beloved 8-bit Atari with very reasonable  price!  But  there
  127.        still was no documentation and the only one,  that I knew,  was a
  128.        theory  about writing 'new device' handlers for the XL  operating
  129.        system...
  130.  
  131.        The most  important  thing on  my "way to  the  hard  drive"  has
  132.        happened,  when a friend of mine has found a "Technical Reference
  133.        Manual" for a Caviar WDAC2200.  I read this paper very carefully,
  134.        then went to Jack - a person,  who looks to know everything about
  135.        wires and other strange gadgets, those have been fixed inside and
  136.        seem to make it work.  About a week later Jack said,  that  there
  137.        was no objections (contraindications, as we used to say) to build
  138.        an interface - so the project started.
  139.  
  140.        The last year we spent thinking,  talking,  building the hardware
  141.        (Jack), writing the software (me), testing, fixing bugs, catching
  142.        incompatibilities,  and learning,  learning,  learning.  We  have
  143.        discovered  a  lot of strange things about Ataris  and  IDE  hard
  144.        drives (some of them have been mentioned below).  Finally, we are
  145.        pleased  to  present you our results - we tried to make  them  as
  146.        professional,  as  it have been allowed by the limited  (2k)  ROM
  147.        space,  not  very "elastic" operating system and not  very  great
  148.        processing  power of the Atari 8-bit computer.  I hope  you  will
  149.        agree, that we did a good job.
  150.  
  151.        II. Capabilities overview
  152.  
  153.        The Interface's internal software provides two modes:  native and
  154.        emulation.  The  native mode uses a 512 byte physical block as  a
  155.        logical data sector,  the emulation mode uses the physical  block
  156.        to  store two 256 byte logical data sectors.  ALL existing  DOSes
  157.        require the emulation mode to work properly.
  158.  
  159.        Maximum drive capacity: 8388607 physical blocks on each device.
  160.        Maximum number of partitions: 15
  161.        Maximum capacity of a partition: 8388607 logical sectors
  162.        Logical  sector length:  256 or 512 bytes (larger blocks will  be
  163.        implemented in the future)
  164.        Average speed: 58 kilobytes per second (native mode, R/W)
  165.                       32 kilobytes per second (emulation mode, reading)
  166.                        7 kilobytes per second (emulation mode, writing)
  167.        Booting from any partition
  168.        Write protection capability
  169.        8 jumpers to set the device number for the operating system
  170.  
  171.        Note, that ALL existing DOSes limit the partition size to 16 MB.
  172.  
  173.        III. How to make it work (step by step)
  174.  
  175.        1) Make sure, that the power on your computer is turned off.
  176.  
  177.        2) Insert the interface to the connector at the back side of  the
  178.        computer.
  179.  
  180.        3) Connect  the interface  and a 3,5" IDE drive with  the  cable.
  181.        Caution:  You may damage the drive if the interface cable is  not
  182.        connected properly. Make sure, that pin 1 on the cable (red line)
  183.        is  connected  to pin 1 on the drive and on  the  interface  (red
  184.        dot).
  185.  
  186.        4) Connect the power supply and the drive.
  187.  
  188.        5) Insert the utilities disk into drive 1.
  189.  
  190.        6) Turn  on  the power  on the hard drive  and  on  the  computer
  191.        holding down the SHIFT key.  Make sure,  if the drive is spinning
  192.        up properly.  If not,  turn the power off,  check the connections
  193.        and  try again.  Note,  that some very old drives need A  LOT  of
  194.        power, so our power supply may not be sufficient.
  195.        
  196.        7) Be patient - the Interface waits some seconds  when the  drive
  197.        is spinning up.
  198.  
  199.        8) When the MyDOS is ready to use, execute the FDISK.COM file.
  200.  
  201.        9) A menu should  appear.  If you see a message like "Device  not
  202.        found" instead,  please turn the power off,  check the connection
  203.        between the interface and the computer, then try again. Check the
  204.        jumper position.
  205.  
  206.        10) Select the "Surface test" from the main menu. Your drive will
  207.        be  tested  for bad sectors.  If the test  finishes  without  any
  208.        message,  the  drive is in good condition - no bad  sectors  have
  209.        been found.
  210.  
  211.        11) Select the  "Partitioning" from the main menu.  "Total"  will
  212.        indicate  you total amount of 512 byte sectors,  that  have  been
  213.        found  on the drive,  "Remain" - total amount  of  sectors,  that
  214.        haven't  been  allocated  yet,  "Specs" will  show  a  number  of
  215.        cylinders, heads and sectors per track.
  216.  
  217.        12) Use arrows to select a drive you want to be a partition.
  218.  
  219.        13) Press the  RETURN key and type in a number of  sectors,  that
  220.        you  want to be allocated to the partition.  Note,  that it is  a
  221.        number of real,  512 byte sectors,  so if you specify 32767,  the
  222.        DOS partition will have 65534 logical, 256-byte sectors.
  223.  
  224.        14) Press  RETURN to confirm the number of sectors or  press  ESC
  225.        key to cancel.
  226.  
  227.        15) If you want to have more  partitions,  repeat the last  three
  228.        steps as many as you want.
  229.  
  230.        16) Press the TAB key and select a partition, that you want to be
  231.        the BOOT partition.  If you are the SpartaDOS X user and you want
  232.        to have the CONFIG.SYS on the hard drive, the BOOT partition must
  233.        be D1:,  so you should change the physical number of your  floppy
  234.        drive to D2: or another.
  235.  
  236.        17) Press RETURN key to set the BOOT partition.
  237.  
  238.        18)  Press  the  TAB key to move the cursor to the  menu  at  the
  239.        bottom right corner of the screen.
  240.  
  241.        19) Select the "Opts" option.
  242.        
  243.        20) Select the boot type according to your system configuration:
  244.        - "control",  if you want to boot up MyDOS (or another DOS)  from
  245.        other  partition than D1:  The interface will take  full  control
  246.        over  the boot process.
  247.        - "pass",  if you want to boot up MyDOS (or another DOS) from D1:
  248.        The interface will pass the control over the boot process to  the
  249.        operating system.  Select this option,  if you have any  troubles
  250.        with the "controlled" boot up - the interface, taking the control
  251.        over  the boot process,  uses some hints that may not  work  with
  252.        some  DOSes,   cartridges  or  upgraded  (customized)   operating
  253.        systems.  You MUST select this option, if you are the SpartaDOS X
  254.        user.
  255.  
  256.        21) Press ESC to exit the "Options" menu
  257.  
  258.        22) Select the "Write" option to write the new partition table to
  259.        the drive.
  260.  
  261.        23) Press ESC to return to the main menu
  262.  
  263.        24) Select the "Soft format" option from the menu. The FDISK will
  264.        attempt  to   build new directories on the  attached  partitions.
  265.        Note, that the SpartaDOS 3.2 does not provide such action - to do
  266.        it, you must use a separated formatter, as the P_FORMAT.COM.
  267.  
  268.        25) Exit the FDISK.
  269.  
  270.        26) Write the DOS file(s) to the BOOT partition.  If you are  the
  271.        MyDOS user,  select the "H" option from the DUP menu.  If you are
  272.        the  SpartaDOS 3.2 user,  copy the DOS to the BOOT partition  and
  273.        use the BOOT command to make the disk bootable.
  274.  
  275.        27) Press SELECT/RESET to cause the cold boot.  The DOS will load
  276.        itself from the drive - the installation process is completed.
  277.  
  278.        Some IDE drives used to clear the BUSY and assert the READY  bits
  279.        in  their internal status registers *before* the spin-up  process
  280.        is  finished - the drive looks to be ready,  but isn't  ready  in
  281.        fact  and  cannot  execute any commands  (very  strange,  by  the
  282.        way...).  To prevent such troubles during power up,  the internal
  283.        software waits about 5 seconds before taking any action with  the
  284.        IDE controller. This delay is not necessary during the cold boot,
  285.        that  has  been caused by pressing SELECT/RESET or via  OS  entry
  286.        RESETCD (¢E477).  In such case the internal software uses a  fast
  287.        initialization method.  However, if you turn the power switch off
  288.        and on very quickly,  the initial routines may not recognize this
  289.        boot process as a real power up.  As a result,  the boot  process
  290.        will  crash.  To prevent such problems,  after turning the  power
  291.        off,  you  should always wait 10-15 seconds before turning it  on
  292.        again.  This  time  should be sufficient to  invalidate  internal
  293.        flags, that have been located in RAM.
  294.  
  295.        IV. Keystrokes
  296.  
  297.        SHIFT/RESET disables the drive.  The drive will remain  spinning,
  298.        but the partitions will not respond to operating system  requests
  299.        (error 138). To enable it again just press the RESET key.
  300.        SELECT/RESET forces the cold boot.
  301.  
  302.        V. Write-protection feature
  303.  
  304.        The  IDE  hard  drive  interface  provides  the  write-protection
  305.        feature  to minimize a risk of accidental data damage  caused  by
  306.        viruses,  damaged  software  or children.  When  a  partition  is
  307.        locked, there's NO POSSIBILITY to write data to this partition or
  308.        unlock it by asserting commands,  causing a cold boot or  turning
  309.        the  power off and on.  Damaging a write-protected  partition  by
  310.        writing  accidental  data  to random  memory  locations  is  also
  311.        *practically* impossible - the risk is very small.
  312.  
  313.        VI. Executing non-DOS software with the hard drive
  314.  
  315.        Some software,  especially games and demos,  have their own  disk
  316.        formats  and cannot be copied to a partition.  However,  the  IDE
  317.        software provides limited capabilities to execute such programs.
  318.  
  319.        If   you   selected  the  "controlled"  hard  drive   boot   when
  320.        partitioning  the drive and your BOOT partition is not  the  D1:,
  321.        you  may run the non-DOS disk from the floppy drive.  To  do  it,
  322.        insert the disk into the floppy disk drive then press SELECT  and
  323.        RESET keys holding down the SHIFT key.  The internal software  of
  324.        the IDE Interface will pass its initialization routines and  your
  325.        computer  will boot up from the floppy.  The hard drive  will  be
  326.        "invisible" for the system.
  327.  
  328.        If  you want to execute such software from the  hard  drive,  you
  329.        must provide a small partition to use it in such  manner.  Though
  330.        the  D10-D15  partitions  are invisible  for  existing  operating
  331.        systems  and  cannot be accessed by DOS,  they may be  booted  as
  332.        well. When you are partitioning your drive, create a small (up to
  333.        520 physical blocks) disk,  for example D10:.  When you  complete
  334.        the installation and make the drive work,  execute the FHCOPY.COM
  335.        file from the utilities disk,  then copy your floppy to the D10:.
  336.        Now execute the FDISK,  select the "Partitioning" option from the
  337.        main menu, then press the TAB key twice to move the cursor to the
  338.        menu at the bottom right corner of the screen.  Select the "Opts"
  339.        option,  then  set  the  "Drive  redirection"  to  D10:.  If  the
  340.        "controlled" boot-up has been selected, you must change it now to
  341.        the "pass" mode.  Write new partition table,  exit the FDISK  and
  342.        reboot the system - the non-DOS program will load itself from the
  343.        hard drive.  To return to the previous configuration,  insert the
  344.        utilities  disk  to your floppy disk  drive,  reboot  the  system
  345.        holding  down the SHIFT key,  then execute the FDISK,  reset  the
  346.        "Drive redirection" to D1: and "Boot type" to its previous state,
  347.        write  the  new partition table,  exit the FDISK and  reboot  the
  348.        system.
  349.  
  350.        VII. Dual drive configuration
  351.  
  352.        The  IDE  drive  interface  is able to  handle  two  IDE  devices
  353.        configured  as  master and slave drives (please refer  the  drive
  354.        manual to connect it and set up properly).  However, some drives,
  355.        when  they are configured to work as the slave  device,  used  to
  356.        wait  some seconds before they start spinning.  For this  reason,
  357.        the Interface DOES NOT INITIALIZE the slave drive during power up
  358.        or reset.  It would make little sense,  because the drive is  not
  359.        spinning (i.e. is not ready) at that time. As a result, the slave
  360.        drive remains not initialized,  even if the boot process has been
  361.        finished and the system looks to be ready to use.
  362.  
  363.        If the slave drive have finished the spin-up process,  there  are
  364.        two ways to make it work properly:
  365.  
  366.        1)  assert the ALL RESET command (see next section), or
  367.  
  368.        2)  force the system to read a sector from  any  partition,  that
  369.        have  been allocated to the slave drive - if the drive is  ready,
  370.        it will be recalibrated automatically.
  371.  
  372.        Please  DO  NOT start the operating system from the  slave  drive
  373.        partitions.
  374.  
  375.        VIII. Software development information
  376.  
  377.        The  IDE  drive  partitions operate as normal  floppy  drives  or
  378.        ramdisks  and can be accessed via OS DISKINT (¢E453)  and  SIOINT
  379.        (¢E459)  routines.  All  the partitions recognize  the  following
  380.        commands:
  381.  
  382.        1) Standard subset
  383.  
  384.        R - read a sector - this command reads a specified logical sector
  385.        from  a specified partition.  It reads ALWAYS THE  WHOLE  LOGICAL
  386.        SECTOR,  i.e. 256 or 512 bytes, according to the current mode and
  387.        regardless  of  the DBYT value.  The sector number  is  a  24-bit
  388.        value, the most significant byte (now called DAUX3) is located at
  389.        ¢0307  (this byte was unused by the XL OS).  Sector numbers  less
  390.        than  ¢000001  or  greater than maximum  sector  number  for  the
  391.        specified partition are invalid and will cause the error 144.
  392.  
  393.        P - put a sector - writes data to a specified logical sector on a
  394.        specified  partition.   There  are  the  same  restrictions,   as
  395.        mentioned  above.  This  command  will  return  status  144  when
  396.        attempting to execute on a write-protected partition.
  397.  
  398.        W - write a sector - the same, as "P" command.
  399.  
  400.        S  - read status block - transfers the 4-byte disk status to  the
  401.        memory. The bit of the first byte are as follows: 
  402.  
  403.        7 - not used by the hard drive
  404.        6 - write protection enabled
  405.        5 - double density drive (always 1)
  406.        4 - master present (usually 1)
  407.        3 - slave present
  408.        2 - not used by the hard drive
  409.        1 - not used by the hard drive
  410.        0 - not used be the hard drive
  411.  
  412.        The second byte provides reversed (eor'ed with ¢FF) value of  the
  413.        IDE controller error register. The bits are as follows:
  414.   
  415.        7 - BBD - Bad block detected
  416.        6 - ECC - Error correction code (uncorrectable error)
  417.        5 - NUL - unused, always 1
  418.        4 - IDNF - ID not found (target sector could not be found)
  419.        3 - NUL - unused, always 1
  420.        2 - AC - Aborted command
  421.        1 - TK0 - Track 0 error (unable to find a valid track 0)
  422.        0 - DAMNF - Data address mark not found
  423.  
  424.        The normal (default) value of this byte is ¢FF. The next byte has
  425.        a  dummy value ¢E0.  The last byte of the status block holds  the
  426.        number of retries for the software IDE handler in ROM.
  427.  
  428.        N  - read configuration - reads the 12-byte PERCOM block  to  the
  429.        memory. The values returned by a partition are as follows:
  430.  
  431.         0 - number of tracks (always 1)
  432.         1 - revision number (¢10 = 1.0)
  433.         2 - total number of logical sectors, the middle byte
  434.         3 - total number of logical sectors, the low byte
  435.         4 - total number of logical sectors, the high byte
  436.         5 - additional information:
  437.             bit 3 - IDE hard drive partition (always 1)
  438.             bit 2 - double density drive (always 1)
  439.             bit 1 - 8 inch floppy disk drive (always 0)
  440.         6 - number of bytes per logical sector, high byte
  441.         7 - number of bytes per logical sector, low byte
  442.         8 - unused, always ¢FF
  443.         9 - value ¢49
  444.        10 - value ¢44
  445.        11 - value ¢45
  446.  
  447.        The last three bytes contain an identifier of the hard drive type
  448.        ("IDE").
  449.  
  450.        2) Specific ones
  451.  
  452.        ¢E6  -  sleep  drive - stops the  drives  and  deactivates  their
  453.        internal controllers. See ALL RESET command for the DCB variables
  454.        details.
  455.  
  456.        ¢E7  - all reset - resets,  recalibrates and  reinitializes  both
  457.        hard  drives.  It is the only way to exit the  Sleep  mode.  This
  458.        command  needs  the number of any partition stored to  the  DUNIT
  459.        (¢0301).  The  master drive must be present while asserting  this
  460.        command, otherwise the timeout error will occur.
  461.  
  462.        ¢EC  -  identify drive - transfers the 512 bytes  of  data,  that
  463.        specify  the drive's parameters.  The fields are as follows (F  =
  464.        fixed value, V = variable, R = reserved, should be zero):  
  465.   
  466.            0 - vendor specific information, bits are as follows:
  467.           15 - 0, reserved for non-magnetic devices (F)
  468.           14 - vendor specific (F)
  469.           13 - vendor specific (F)
  470.           12 - vendor specific (F)
  471.           11 - vendor specific (F)
  472.           10 - vendor specific (F)
  473.            9 - vendor specific (F)
  474.            8 - vendor specific (F)
  475.            7 - removable media device, if 1 (F)
  476.            6 - removable controller and/or device, if 1 (F)
  477.            5 - vendor specific (F)
  478.            4 - vendor specific (F)
  479.            3 - vendor specific (F)
  480.            2 - vendor specific (F)
  481.            1 - vendor specific (F)
  482.            0 - reserved (R)
  483.                2 - number of cylinders (F)
  484.                4 - reserved (R)
  485.                6 - number of heads (F)   
  486.                8 - vendor specific
  487.               10 - vendor specific
  488.               12 - number of sectors per track (F)
  489.               14 - vendor specific
  490.               16 - vendor specific  
  491.               18 - vendor specific
  492.            20-39 - serial number, ASCII characters (F)
  493.               40 - vendor specific
  494.               42 - vendor specific
  495.               44 - number of ECC bytes transferred on LONG 
  496.                    operations (F)
  497.            46-53 - firmware revision, ASCII characters (F)
  498.            54-93 - controller model number, ASCII characters (F)
  499.               94 - numbers of sectors/interrupt R/W multiples, 
  500.                    bits:
  501.             15-8 - vendor specific
  502.              7-0 - ¢00 = READ/WRITE MULTIPLE not implemented (F)
  503.                    ¢01-¢FF = maximum number of sectors that can  be
  504.         transferred per interrupt on READ/WRITE MULTIPLE commands (F).
  505.               96 - reserved (R)
  506.               98 - capabilities, bits:
  507.               15 - reserved (R)
  508.               14 - reserved (R)
  509.               13 - 1 = standard standby timer values are supported
  510.                0 = standby timer values are vendor specific (F)
  511.               12 - reserved (R)
  512.               11 - 1 = IORDY supported (F)
  513.                0 = IORDY may be supported (F)
  514.               10 - 1 = IORDY can be disabled (F)
  515.                9 - 1 = LBA supported (F)
  516.                8 - 1 = DMA supported (F)
  517.              7-0 - vendor specific (F)
  518.              100 - reserved (R)
  519.              102 - PIO data transfer cycle timing (F)
  520.              104 - DMA data transfer cycle timing (F)
  521.          106-511 - reserved
  522.  
  523.        All values are in standard low/high convention.  Some  parameters
  524.        are  defined  as a string of ASCII  characters.  For  the  string
  525.        "Copyright",  the  character "C" is the first byte,  "o"  is  the
  526.        second byte etc.  When such fields are transferred,  the order of
  527.        transmission is:
  528.  
  529.        - the 1st character ("C") is on bits 15 through 8 of the 1st word
  530.        - the 2nd character ("o") is on bits 7 through 0 of the 1st word
  531.        - the 3rd character ("p") is on bits 15 through 8 of the 2nd word
  532.        - the 4th character ("y") is on bits 7 through 0 of the 2nd word
  533.          etc.
  534.  
  535.        Note,  that the DMA transfers,  although may be supported by  the
  536.        drive itself,  may not be supported by the current version of the
  537.        interface's hardware.  Please also refer the SLEEP DRIVE  command
  538.        to get an information about the DCB variables.
  539.  
  540.        ¢EE  - force media change - forces the interface to  re-read  the
  541.        partition table from the drive.
  542.  
  543.        All  other commands will cause error 139 (negative  acknowledge).
  544.        Note,  that the software does not provide a FORMAT DISK command -
  545.        it hasn't been implemented to prevent an accidental data  damage.
  546.        The drive must be formatted using a separated program.
  547.  
  548.        Operating  system  developers  should  note,  that  the  internal
  549.        software  of the IDE Interface changes the DUNIT (¢0301)  to  the
  550.        BOOT partition number during boot up.
  551.  
  552.        IX. Memory usage
  553.  
  554.        The   Interface's  internal  software  uses  the  following   RAM
  555.        locations: ¢01 and ¢34-¢3C. The PDVMSK (¢0247), PDVRS (¢0248) and
  556.        DCB  variables  (especially DAUX3 ¢0307) should be used  only  in
  557.        their proper functions (please DO NOT use them as temporary  data
  558.        registers!).  The  ¢0400-¢06FF  area should  also  remain  intact
  559.        during the cold boot.
  560.  
  561.        X. Error messages
  562.  
  563.        You can get the following error reports from the IDE drive:
  564.  
  565.        138  -  Timeout  error - attempting to read or write  data  to  a
  566.        partition, that is physically allocated to the slave drive, while
  567.        the slave drive is busy,  not ready or does not exist at all;  or
  568.        attempting  to  assert the ALL RESET command,  while  the  master
  569.        drive  is  not  present.   It  may  occur,  if  you  accidentally
  570.        disconnect the master drive or disconnect the slave drive without
  571.        reconfiguring  your  system.  It  may  also  indicate  a  damaged
  572.        partition  table  - please reboot your  system.  If  this  action
  573.        doesn't  cause any effect,  you must use the FDISK to repair  the
  574.        partition   table.   See  also  section  VII.   -   "Dual   drive
  575.        configuration".
  576.  
  577.        139 - Invalid command
  578.  
  579.        144 - Device done error:
  580.  
  581.        1) the  software  attempted to write data  to  a  write-protected
  582.        partition.
  583.  
  584.        2  the software attempted to read or write data  outside  of  the
  585.        limits, those are valid for the partition.
  586.  
  587.        3) there is a bad sector on the partition.  Please assert the "S"
  588.        command to get the value of the internal IDE error register.
  589.  
  590.        4) the  interface's  software is unable  to  handle  your  drive.
  591.        Please run the FDISK and select the "Surface test" from the  main
  592.        menu.  If the test fails and you know, that your drive is in good
  593.        condition  (no bad blocks) for sure,  please assert the  IDENTIFY
  594.        DRIVE command (from a BASIC,  for example),  copy the buffer to a
  595.        file and send the file to us.
  596.  
  597.        Konrad M.Kokoszkiewicz (KMK)
  598.        E-mail: conradus@plearn.edu.pl
  599.  
  600.        -- - --- -- -----------------------------------------------------
  601.         CHOSNECK team                                       contact us:
  602.         growin' up with atari community               greymsb@poczta.fm
  603.        --------------------------------------------------- -- - --- ----
  604.        </frame>
  605.        </body>
  606.