home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / HARDWARE / RAMIT110.ZIP / RAMIT.DOC < prev    next >
Encoding:
Text File  |  1980-01-01  |  25.0 KB  |  859 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                          +-------------+
  8.                          |  RAMIT!!!   |
  9.                          +-------------+
  10.  
  11.  
  12.  
  13.      If you're  running an  8-bit hard disk controller (generally
  14.      designed for  both PCs and ATs) on a 16 bit machine (like an
  15.      AT or  AT&T PC6300)  then RAMIT!  may be  able to  help  you
  16.      improve your disk transfer speed.
  17.  
  18.  
  19.  
  20.  
  21.      What is RAMIT?
  22.                               RAMIT is  a program to run the disk
  23.                               code supplied  with an PC type disk
  24.                               controller out  of RAM  rather than
  25.                               from the disk controller's ROM.
  26.      
  27.      What does that do?
  28.                               By running  out of  RAM rather than
  29.                               ROM, some  machines can  achieve  a
  30.                               real  performance   gain  in   disk
  31.                               transfer time.
  32.      
  33.      Does this apply to
  34.      me?
  35.                               RAMIT can  make a  difference in  a
  36.                               number of  situations.   To see any
  37.                               disk performance improvement,
  38.                               
  39.                               1. You  must be  using a  hard disk
  40.                               controller which  has its  own BIOS
  41.                               ROM code.  This includes unmodified
  42.                               Western Digital,  Mountain, Perstor
  43.                               and  Plus  [Hardcard]  controllers.
  44.                               Undoubtedly there are many others.
  45.                               
  46.                               2. You  must have  a machine  which
  47.                               runs code  faster from RAM than the
  48.                               I/O bus.  This includes all 16 bits
  49.                               machines (AT  types) and many other
  50.                               compatibles (e.g. AT&T PC6300).
  51.                               
  52.                               3.  You must be willing to reformat
  53.                               your hard  disk to  get the benefit
  54.                               of this  speedup.   Naturally, this
  55.                               requires a full backup and restore.
  56.      
  57.      Still Interested?
  58.                               Read on.
  59.  
  60.  
  61.  
  62.  
  63.  
  64. RAMIT!                        Copyright (c) Hanover Systems, 1987
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.               +-----------------------------------+
  74.               |  OK, so what does RAMIT! do!!!!   |
  75.               +-----------------------------------+
  76.  
  77.  
  78. RAMIT! is a TSR which relocates your disk controller ROM into
  79. high-speed RAM and 'fixes up' MSDOS to run the disk code from
  80. RAM.
  81.  
  82. RAMIT! operates as follows:
  83.  
  84.      1. RAMIT!  verifies that  there  is  a  valid  ROM  BIOS  at
  85.      C800:0000.
  86.  
  87.      2. RAMIT! copies the disk ROM contents to RAM.
  88.  
  89.      3. RAMIT!  disassembles the  ROM to  find out  what  it  had
  90.      placed in vector locations 4C and 64.  These are the primary
  91.      entry points  into the  ROM code.   If  RAMIT! is  unable to
  92.      determine  these  values,  then  it  aborts  with  an  error
  93.      message.   This is  generally  attributable  to  an  unusual
  94.      instruction sequence  used to  'steal' the vectors.  Contact
  95.      the author for unusual ROMs.
  96.  
  97.      If you'd rather do the disassembly yourself, the original 4C
  98.      and 64  vector addresses  can be  specified on  the  address
  99.      line.   This is  the dirty  way to support controllers whose
  100.      initialization sequence  is simply  too messy  for automatic
  101.      decoding.
  102.  
  103.      4. RAMIT!  'fixes' MSDOS or PCDOS by finding where DOS keeps
  104.      the vector  originally placed  by  the  disk  ROM  BIOS  and
  105.      redirecting it to the RAM copy.
  106.  
  107.      5. RAMIT!  exits, leaving  only a  copy of  the vendor's ROM
  108.      code.   All RAMIT! code is removed.  Most unused ROM code is
  109.      also removed.   The  amount of  memory taken  depends on the
  110.      size and  complexity of the disk controller ROM BIOS.  In no
  111.      event will it be more than 8K of code.
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130. RAMIT!                        Copyright (c) Hanover Systems, 1987
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.                 +----------------------------+
  141.                 |  Well how do I run RAMIT?  |
  142.                 +----------------------------+
  143.  
  144.  
  145.  
  146.  
  147. Find out your current performance level
  148.  
  149.      Before seeing whether RAMIT! can make a difference, you must
  150.      know how your system performs before RAMIT! is installed.
  151.  
  152.      If your  disk/PC combination  is not explicitly mentioned in
  153.      the README.RAM  file in  this archive  (and you  can't  find
  154.      another PC close enough), then you may have to experiment to
  155.      find the best interleave factor.
  156.  
  157.      SPINTEST is a publicly available utility which computes disk
  158.      transfer rate.   It  can be  used to  see when  the  optimum
  159.      interleave has been established.
  160.  
  161.      First, run SPINTEST to get the transfer rate and interleave.
  162.  
  163.  
  164.  
  165.  
  166.  
  167. Testing RAMIT! the first time
  168.  
  169.      At first,  RAMIT! should  be run  in TEST  mode.   This will
  170.      indicate whether RAMIT! is likely to work on your machine.
  171.  
  172.      Type
  173.           
  174.           RAMIT /T
  175.  
  176.      and examine  the output.   There  should be  three  messages
  177.      indicating that  0000:xxxx  has  been  overwritten.    Don't
  178.      worry, in TEST mode the memory is not actually modified.
  179.  
  180.      If RAMIT!  fails or  the messages  don't appear,  check  the
  181.      README.RAM file in this archive.  If your drive and computer
  182.      isn't on  the list,  be careful.   Things  may very well not
  183.      work.
  184.  
  185.      If you  get no error messages, RAMIT! will probably work for
  186.      you.
  187.  
  188.  
  189.  
  190.  
  191. Installing RAMIT!
  192.  
  193.  
  194.  
  195.  
  196. RAMIT!                        Copyright (c) Hanover Systems, 1987
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.      WARNING: BEFORE  INSTALLING RAMIT! MAKE SURE THAT YOU HAVE A
  206.      FULL  BACKUP  OF  YOUR  HARD  DISKS.    RAMIT!  CHANGES  THE
  207.      OPERATION OF  YOUR HARD  DISK CONTROLLER.   WHILE RAMIT! HAS
  208.      NOT CAUSED  ANY PROBLEMS  SO FAR, IT HASN'T BEEN RUN ON YOUR
  209.      MACHINE!!!!  TAKE PRECAUTIONS AND MAKE A BACKUP!!!!
  210.  
  211.      RAMIT! is installed for normal use by typing
  212.           
  213.           RAMIT
  214.  
  215.      You should  see two  messages: the  standard RAMIT!  version
  216.      header and  an identification  for the  disk controller  ROM
  217.      BIOS.
  218.  
  219.      Continue normal  operation with  RAMIT! for  a while.    You
  220.      should not  see any  performance change.    Just  make  sure
  221.      things are still working.
  222.  
  223.      RAMIT! should be placed in the AUTOEXEC.BAT file as near the
  224.      top as  possible.   The earlier  it's executed, the more the
  225.      AUTOEXEC.BAT programs  will  benefit  from  any  performance
  226.      improvement.
  227.  
  228.  
  229.  
  230.  
  231.  
  232. Tuning up your disk performance
  233.  
  234.      To see  a real  performance difference, you'll probably have
  235.      to reformat  your disk.   This  requires a low-level format,
  236.      not just a DOS format (i.e. the FORMAT command).
  237.  
  238.      For Western  Digital customers,  enter  DEBUG.    Old  cards
  239.      require that  AX be  set to the interleave.  On newer cards,
  240.      the ROM  code prompts  for the interleave.  Start the format
  241.      by typing 'G C800:5'.
  242.  
  243.      OMTI customers can use the OMTIDISK utility.  As part of the
  244.      low-level format, you get to specify the interleave.
  245.  
  246.      Many other manufacturers use a similar scheme.  Refer to any
  247.      documentation  from  the  disk  controller  manufacturer  to
  248.      figure how to perform a low-level format.
  249.  
  250.      Keep  lowering   the  interleave,   formatting  and  running
  251.      SPINTEST until performance suddenly gets worse.  Then do one
  252.      more format at the best interleave obtained.
  253.  
  254.      If you've got a unique computer/controller situation, please
  255.      drop me  a line  on how  it went.   I'll  include it  in the
  256.      README.RAM file  so the next guy doesn't have to do all this
  257.      work over again.
  258.  
  259.  
  260.  
  261.  
  262. RAMIT!                        Copyright (c) Hanover Systems, 1987
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275. RAMIT! Command Format
  276.  
  277.      The syntax for RAMIT! is
  278.           
  279.           RAMIT  [/T]  [/V]  [/E]  [/Wfilename]
  280.                  [/4C:offset]  [/64:offset]
  281.  
  282.      where
  283.           
  284.           /E   Specifies EDIT  mode.   In  EDIT  mode,  any  C800
  285.                constant value within the ROM area will be changed
  286.                to the  segment where the ROM code gets relocated.
  287.                Some controllers examine their own CS to determine
  288.                whether  they're   strapped  for  the  primary  or
  289.                secondary addresses.  For example, the OMTI BIOS-7
  290.                (Universal) constantly checks its CS with C800.
  291.           
  292.           /V   Specifies VERBOSE  mode.   In VERBOSE mode, RAMIT!
  293.                will  print   additional  status  messages  as  it
  294.                analyzes and  installs  the  disk  controller  ROM
  295.                BIOS.
  296.           
  297.           /T   Specifies TEST  mode.   In TEST  mode, RAMIT! will
  298.                perform its analysis BUT WILL NOT MAKE ANY CHANGES
  299.                TO DOS,  OR INSTALL  A RAM  COPY OF  THE ROM BIOS.
  300.                TEST mode  is  provided  so  that  RAMIT!  can  be
  301.                checked on  new controllers  or versions  of  DOS.
  302.                TEST mode forces VERBOSE mode.
  303.           
  304.                A successful  TEST will produce no error messages,
  305.                and identify THREE overwritten locations;  two for
  306.                vector 1B and another for vector 25.
  307.           
  308.                If this  is not  the case,  RAMIT  may  not  work.
  309.                Contact the author for more instructions.
  310.           
  311.           /W   Indicates that  the disk controller ROM BIOS is to
  312.                be  written  out  to  the  file  specified.    The
  313.                'filename' immediately follows the /W; for example
  314.                '/WDISK.ROM'.
  315.           
  316.                This feature is provided so RAMIT! can capture new
  317.                or  updated   disk  controller   ROMs  for  future
  318.                support.     If  you   have  a  non-standard  disk
  319.                controller, and  it won't install with RAMIT!, use
  320.                the /W  option to  make a disk copy and send it to
  321.                me.   I'll try  to extend  RAMIT!  for  your  disk
  322.                controller.
  323.           
  324.  
  325.  
  326.  
  327.  
  328. RAMIT!                        Copyright (c) Hanover Systems, 1987
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.           /4C: Explicitly  specifies an offset which the BIOS had
  338.                stuffed into  vector location  4C.    Rather  than
  339.                disassembling the  ROM code,  this  value  can  be
  340.                specified on the command line.
  341.           
  342.           /64: Explicitly  specifies an offset which the BIOS had
  343.                stuffed into  vector location  64.    Rather  than
  344.                disassembling the  ROM code,  this  value  can  be
  345.                specified on the command line.
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. RAMIT!                        Copyright (c) Hanover Systems, 1987
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.          +---------------------------------------------------+
  404.          | A Quick Tutorial on hard disk controller software |
  405.          +---------------------------------------------------+
  406.  
  407. Getting started.
  408.  
  409.      When your  computer is  started, on-board  software in  Read
  410.      Only Memory (ROM) is started.  This software, called the ROM
  411.      BIOS, performs  a cursory  check of  the  machine  and  then
  412.      initializes all  the devices  it knows about (CRT, keyboard,
  413.      floppy etc).
  414.  
  415.      If you  have the  manufacturer's hard disk controller or the
  416.      manufacturer can  support the third party controller in your
  417.      machine, the ROM BIOS will take control of it.  If, however,
  418.      you're using  another board,  the original  ROM BIOS doesn't
  419.      know how to handle it.
  420.  
  421.      So that  you computer doesn't just stare at you, not knowing
  422.      how to  boot from  your hard  disk, IBM  set up  a procedure
  423.      whereby anybody  could gain  control automatically  from the
  424.      ROM BIOS and provide their own hard disk software.
  425.  
  426.      To quote from the IBM Technical Reference,
  427.           
  428.           "The ROM  BIOS provides a facility to integrate adapter
  429.           cards with  on-board ROM  code into the system.  During
  430.           POST  [Power  On  Self  Test],  interrupt  vectors  are
  431.           established for  the BIOS  calls.   After  the  default
  432.           vectors are in place, a scan for additional ROM modules
  433.           takes place.   At  this point,  a ROM  routine  on  the
  434.           adapter  card   may  gain  control    The  routine  may
  435.           establish or  intercept vectors to hook themselves into
  436.           the system.
  437.           
  438.           "The absolute addresses hex C8000 through hex F4000 are
  439.           scanned in  2K blocks in search of a valid adapter card
  440.           ROM.  A valid ROM is defined as follows:
  441.           
  442.           "Byte 0: Hex 55.
  443.           "Byte 1: Hex AA.
  444.           "Byte 2:  A length indicator representing the number of
  445.           512-byte blocks in the ROM (length/512).   ...
  446.           
  447.           "When the  POST identifies  a valid  ROM, it does a far
  448.           call to  byte 3  of the ROM (which should be executable
  449.           code).   The adapter  card may now perform its power-on
  450.           initialization tasks.   The  feature ROM  should return
  451.           control to the BIOS routines by executing a far return.
  452.  
  453.      All of  the cards  supported by RAMIT! use this technique to
  454.      initialize the  disk drive  itself, and  'steal' vectors  in
  455.      order to gain control when a disk command is required.
  456.  
  457.  
  458.  
  459.  
  460. RAMIT!                        Copyright (c) Hanover Systems, 1987
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471. Doing Disk I/O.
  472.  
  473.      When DOS  or a program want to do disk I/O, it loads up some
  474.      registers with  the I/O parameters and executes an 'INT 13h'
  475.      instruction.  The CPU ends up calling whatever routine whose
  476.      address is in memory for 'vector 13'.
  477.  
  478.      At  power-on  time,  the  ROM  BIOS  puts  its  floppy  disk
  479.      handler's address in this memory location.
  480.  
  481.      If external  ROM  code  on  the  disk  controller  board  is
  482.      present, at  initialization time  it will  copy the  default
  483.      (ROM BIOS)  address to a private location (normally location
  484.      100h) and  supply its  own  address  for  vector  13.    The
  485.      controller's ROM  will then  receive control  after the 'INT
  486.      13h' instruction.   It will examine the parameters passed in
  487.      the registers.   If  the request  is not intended for one of
  488.      its disks,  then the  controller  ROM  code  will  pass  the
  489.      request along  to whatever  address it  found for  vector 13
  490.      originally.  This would normally be the ROM BIOS floppy disk
  491.      handler.
  492.  
  493.      In this way, the disk controller's ROM code gets a chance to
  494.      process every  disk I/O request.  This provides a simple way
  495.      for anyone  to make  a disk controller which works in nearly
  496.      all PC-compatibles.
  497.  
  498.      Of course,  there's no  reason why  the hard disk controller
  499.      would be  the only piece of code to take over the vector 13!
  500.      In fact,  MSDOS and  PCDOS both  do this  regularly.    They
  501.      provide a  handler to  scan all  disk I/O  for errors.   The
  502.      message
  503.           
  504.           I/O Error
  505.           Abort, Retry or Ignore?
  506.  
  507.      is a  DOS error trapped in this way.  Other programs such as
  508.      disk  caches   will  also   trap  this  vector.    The  only
  509.      requirement is  that  each  intercepting  program  which  is
  510.      unable to service a request fully must pass it along via the
  511.      vector 13 handler which was in place before the intercepting
  512.      program took over.
  513.  
  514.      This all seems very logical and is, in fact, a very powerful
  515.      mechanism  to  handle  disk  I/O  in  a  device  independent
  516.      fashion.
  517.  
  518.  
  519.  
  520.  
  521.  
  522. Ok, then where's the problem?
  523.  
  524.  
  525.  
  526. RAMIT!                        Copyright (c) Hanover Systems, 1987
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535. -----------------------------
  536.  
  537. The speed difference between system RAM and PC-bus ROM.
  538.  
  539.      The code  which resides on the disk controller card is 'out'
  540.      on the  PC bus.   It is as 'reachable' and executable as any
  541.      code on in RAM or on the mother-board ROMs (where the system
  542.      ROM BIOS lives).
  543.  
  544.      For a  16 bit  machine,  there  is  an  enormous  difference
  545.      between on-board  RAM/ROM and  PC bus ROM:  each instruction
  546.      fetched from  the on-board RAM/ROM is read in a 16 bit chunk
  547.      at the  machine's maximum  speed.   Each instruction fetched
  548.      from the  PC bus  is  fetched  in  two  separate  operations
  549.      because the PC bus is only 8 bits wide.  In addition, the PC
  550.      bus often operates at one half the speed of the main memory,
  551.      or less.  Consequently, it can take anywhere from two to ten
  552.      times as  long to execute code based on the PC bus as on the
  553.      mother-board.
  554.  
  555.      For example,  suppose you have a Western Digital PC (not AT)
  556.      controller on  an AT type clone running at 12 Mhz.  First, a
  557.      16 bit  instruction fetch  must be  converted into two 8 bit
  558.      PC-bus fetches.   This  automatically doubles  any  request.
  559.      Next, our clone manufacturer tried to be very compatible, so
  560.      his PC-bus runs at 6MHz, just like the original IBM AT.  Add
  561.      in a  few wait  states and we will end up taking three times
  562.      as long to execute a simple instruction from PC-bus ROM than
  563.      from mother-board ROM or RAM.
  564.  
  565.  
  566.  
  567. So what if it's slower, the disk is slower still?
  568. -------------------------------------------------
  569.  
  570.      Up to  a point  this is  true.   Unfortunately, if  the disk
  571.      controller software  cannot get  commands out to the disk in
  572.      time, it  may miss  a whole  revolution.  At that point your
  573.      computer is  quite useless,  waiting for  the disk  to  come
  574.      around again.   The  proper spacing  of data  around a  disk
  575.      track is  determined by the disk 'interleave'.  If you don't
  576.      know what interleaving is or why it's so important, read the
  577.      next section.
  578.  
  579.      The best  interleave is  determined by the raw transfer rate
  580.      of the  machine and its hardware.  You can move data only so
  581.      fast from  disk to  memory.   It is  also determined  by the
  582.      speed  of   the  controlling  software  which  controls  the
  583.      hardware.   If you can speed the disk controller's software,
  584.      you won't  need as  much  time  to  execute  those  critical
  585.      functions and  you  may  be  able  to  run  with  a  smaller
  586.      interleave.
  587.  
  588.  
  589.  
  590.  
  591.  
  592. RAMIT!                        Copyright (c) Hanover Systems, 1987
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.      By way  of example,  I have  a AT&T  PC6300.  The 'generous'
  602.      retailer who  formatted my  disk used  the wrong interleave.
  603.      Consequently, it  took 18  revolutions to  read  a  mere  17
  604.      sectors from  my hard  disk!!   After reading  one sector, I
  605.      wasn't getting  ready to  read the next in time, so I had to
  606.      wait a  whole revolution!.   (PS.  there are  17 sectors per
  607.      track on most hard disks.)
  608.  
  609.      Thanks to  a program  by Steve Gibson, SPINTEST, I found the
  610.      ideal interleave  was 6.  After reformatting my disk, it now
  611.      took 'only'  6 revolutions  to read  a track,  a three  fold
  612.      improvement which  was immediately  noticeable when  loading
  613.      large programs.
  614.  
  615.      Trying any interleave lower ('better') than 6 put me back to
  616.      17 or 18 revolutions to read a track.
  617.  
  618.      When I  ran the  Western Digital  controller code from high-
  619.      speed RAM  rather than  the slow-speed PC bus, I was able to
  620.      use an  interleave of 4.  This allowed a track to be read in
  621.      only 4  revolutions.  Without any additional hardware, I was
  622.      able to  read raw  data 50%  faster just by running from RAM
  623.      over ROM.
  624.  
  625.      The only trick was getting my machine to run from RAM rather
  626.      than ROM.  That's what RAMIT! does.
  627.  
  628.  
  629.  
  630. Great!  Give me an example!
  631. ---------------------------
  632.  
  633.      For WD controllers, with the ROM BIOS still in, and W8 still
  634.      strapped, I would use:
  635.           
  636.           RAMIT
  637.  
  638.      This figures  everything out for itself and installs the ROM
  639.      BIOS into RAM.
  640.  
  641.      
  642.  
  643.      For the  OMTI 5527 RLL controller with the universal BIOS, I
  644.      use
  645.           
  646.           RAMIT  /E  /4c:a79  /64:9a8
  647.  
  648.      The /E  (edit) converts  C800 constants to whatever-segment-
  649.      the-ROM-has-been-copied-to;   the /4c:  and  /64:  give  the
  650.      original offsets  that  the  BIOS  had  stuffed  into  those
  651.      respective buffers.
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658. RAMIT!                        Copyright (c) Hanover Systems, 1987
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.            +-----------------------------------------+
  668.            |  A quick tutorial on disk interleaving  |
  669.            +-----------------------------------------+
  670.  
  671.  
  672. What is interleaving?
  673.  
  674.      Interleaving is  the  technique  where  consecutive  logical
  675.      sectors are places several physical sectors apart around the
  676.      track.   The interleave  factor is  the  number  of  sectors
  677.      between consecutive  logical sectors.   For  example,  a  10
  678.      sector track  with an  interleave of  1  would  arrange  its
  679.      sectors
  680.           
  681.           1,2,3,4,5,6,7,8,9,10
  682.  
  683.      while one with an interleave of 3 would be arranged
  684.           
  685.           1,8,5,2,9,6,3,10,7,4
  686.  
  687.  
  688. Why bother interleaving?
  689.  
  690.      Controllers interleave  because they cannot transfer data to
  691.      memory as  fast as  they can  read it  off the  disk.   Some
  692.      controllers won't  transfer anything  unless the error check
  693.      codes are correct which cannot be determined until after the
  694.      entire sector is read.
  695.  
  696.      If the  sectors were  placed sequentially  on disk,    after
  697.      reading one sector, there  would   not  be  enough  time  to
  698.      transfer it  before the  next one  came along under the read
  699.      heads.   (Obviously, the  disk isn't  going to stop spinning
  700.      just because  the  controller  isn't  ready.)    By  putting
  701.      sequential sectors  the proper  distance apart,  the desired
  702.      sector is just about to be read when the controller is ready
  703.      to process it.
  704.  
  705. What is wrong with having the wrong interleave?
  706.  
  707.      With the  proper interleave,  after reading and transferring
  708.      sector 'n',  sector 'n+1'  is just about to come by.  If the
  709.      interleave is  too large,  we'll have  to skip over at least
  710.      one sector  which is  not 'n+1'.   This  will waste whatever
  711.      time it  takes to  skip over that sector.  If the interleave
  712.      is too  small, we've  already missed  sector 'n+1'.  We must
  713.      wait a  whole revolution  of the  disk before we get another
  714.      shot at  it.  If we were to read all 17 sectors (on a normal
  715.      disk), we'd require 17 revolutions.
  716.  
  717.  
  718. What should the PC6300 interleave be?
  719.  
  720.  
  721.  
  722.  
  723.  
  724. RAMIT!                        Copyright (c) Hanover Systems, 1987
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.      If you  have the  standard WD disk controller, an interleave
  734.      of 6  works best.  This is readily verified with a number of
  735.      public domain disk test programs.
  736.  
  737.      An interleave of 6 requires 6 revolutions to read one track.
  738.  
  739.      If you  have the  OMTI RLL  controller, an  interleave of  4
  740.      works best.
  741.  
  742.  
  743.  
  744. What should an AT interleave be?
  745.  
  746.      If you  have the  standard WD disk controller, an interleave
  747.      of 3  works bets.   This  is the  standard low-level  format
  748.      value.
  749.  
  750.  
  751. How do I change my interleave?
  752.  
  753.      Unfortunately, the  only way  to change this [at the moment]
  754.      is  to   perform  a   low-level  reformat   of  your   disk.
  755.      Instructions vary  according to  manufacturer.    For  many,
  756.      enter  debug   and  jump   to  location  C800:0005.    After
  757.      performing a  low-level format,  a  regular  DOS  format  is
  758.      required.
  759.  
  760.  
  761.  
  762. How do I know how my interleave works?
  763.  
  764.      An excellent utility available at bulletin boards across the
  765.      country is  SPINTEST.   This program  was written  by  Steve
  766.      Gibson and reports how many revolutions are required to read
  767.      a track.   Some experimentation is required to determine the
  768.      optimal interleave  value.   As I  get reports for different
  769.      controller/computer  combinations,  I'll  put  them  in  the
  770.      associated README.RAM file.
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790. RAMIT!                        Copyright (c) Hanover Systems, 1987
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799. How is RAMIT! distributed!
  800.  
  801. RAMIT! is still in the development stages as I add support for
  802. more controllers.  Refer to the attached README.RAM file for the
  803. latest list.  RAMIT! may be distributed free of charge.  RAMIT!
  804. remains the copyrighted product of Hanover Systems, Newtown CT.
  805.  
  806. Before sleeping with full confidence, I'd make regular backups
  807. for the first few days.  I've never seen your machine or disk and
  808. therefore can't guarantee anything.  I have tested RAMIT! on
  809. every machine I have available to me.
  810.  
  811.  
  812.  
  813.  
  814.  
  815. Further inquiries may be directed to the author
  816.  
  817.            Christopher Smith
  818.            Hanover Systems
  819.            19 Tunnell Road
  820.            Newtown, CT. 06470-1242
  821.  
  822.            (203) 426-0024
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856. RAMIT!                        Copyright (c) Hanover Systems, 1987
  857.  
  858.  
  859.