home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 June / SIMTEL_0692.cdr / msdos / dskutl / wd.arc / EVAL.DOC < prev    next >
Text File  |  1988-02-04  |  32KB  |  1,325 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.                   PRELIMINARY
  15.  
  16.  
  17.  
  18.                  PROGRAM SPECIFICATION
  19.  
  20.  
  21.               STORAGE MANAGEMENT EVALUATOR
  22.  
  23.  
  24.                      (EVAL)
  25.  
  26.  
  27.  
  28.               SPECIFICATION NO. XX-XXXXXX
  29.  
  30.  
  31.  
  32.                 FEBRUARY 4,1988
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.      1.0 SCOPE
  59.  
  60.  
  61. This   document   describes  the  functional  characteristics  of  the    Storage
  62. Management  Evaluator  (EVAL).    EVAL  is  a diagnostic program designed for use
  63. with  the  IBM    AT   to  test  and  evaluate hard and floppy storage management
  64. subsystems.  It  is  especially  suited  for  error  rate testing. The Features
  65. section  describes  the operation and features of the program, including how to
  66. invoke    EVAL,  diagnostic screen definition command structure error methodology
  67. and  miscellaneous  features.  The  Commands section describes the command set,
  68. giving    a  detailed explanation of each command. Appendix A and B describe each
  69. status code, task file, and associated error reporting.
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.      2.0 FEATURES
  77.  
  78.  
  79.      2.1 Invoking EVAL
  80.  
  81. EVAL  is  invoked  at  the PC-DOS command line,  or batch file command line, as
  82. follows:
  83.  
  84.            c>EVAL [cmd-file]
  85.  
  86. The  optional  cmd-file  parameter  specifies  a file from which EVAL will read
  87. commands  until  it encounters an "end" command. All commands described in this
  88. specification  may  be    used  in   command  files  except "edit", "run", "def",
  89. "duw", and "dur".
  90.  
  91.  
  92.      2.2 Floppy Diagnostic Screen
  93.  
  94. Figure    1 shows the main floppy diagnostic screen. The screen is divided into 4
  95. windows,  a  command  line,  and  a  message  line.  The  command  line will be
  96. described  in  3.0,  and  the  message    line will be referred to throughout the
  97. specification. The following is a brief description of the 4 windows.
  98.  
  99.  
  100.      2.2.1 Parameter Window
  101.  
  102. The  upper  left  window  of the screen is the parameter window. The parameters
  103. shown  will  be  used  for  the  next disk operation. The parameters are: drive
  104. type,  drive  number,  cylinder  number,  head number, sector number, and block
  105. size.  The  parameters are updated dynamically during command execution, if the
  106. operation changes a parameter (see individual commands in section 3).
  107.  
  108.  
  109.      2.2.2 Status Window
  110.  
  111. The  status  window  (lower  left)  shows  the    latest    status    returned  after
  112. execution  of  a  command which accesses the controller. The status information
  113. includes  the  status  code,  status  registers  and cylinder, head, and sector
  114. numbers  returned by the controller. Appendix B gives a detailed explanation of
  115. status codes and associated errors.
  116.  
  117.  
  118.      2.2.3 Error Count Window
  119.  
  120. The  error  count  window  (upper  right)  shows total error counts, as well as
  121. individual  error  counts  for 5 groups of errors. The counts are kept for both
  122. hard  and soft errors. See 2.5.1 for an explanation of hard and soft errors and
  123. appendix B for a detailed explanation of error reporting.
  124.  
  125.      2.2.4  Error Report Window
  126.  
  127. The  error  report  window  (lower  right)  shows  the last 5 errors which have
  128. occurred  since  the  diagnostic  began,  or since the last "zero" command was.
  129. issued    Appendix B explains each error in full detail.
  130.  
  131.  
  132.      2.3 Hard  Diagnostic Screen
  133.  
  134. Figure    2  shows  the main hard diagnostic screen. The screen is divided into 4
  135. windows,  a  command  line,  and  a  message  line.  The  command  line will be
  136. described  in  3.0,  and  the  message    line will be referred to throughout the
  137. specification. The following is a brief description of the 4 windows.
  138.  
  139.  
  140.      2.3.1 Parameter Window
  141.  
  142. The  upper  left  window  of the screen is the parameter window. The parameters
  143. shown  will  be  used  for  the  next disk operation. The parameters are: drive
  144. number,  cylinder  number,  head  number,  sector  number,  and block size. The
  145. parameters  are  updated dynamically during command execution, if the operation
  146. changes a parameter (see individual commands in section 3).
  147.  
  148.  
  149.      2.3.2 Disk Type Window
  150.  
  151. The  disk  type  window  (lower left) shows the disk drive boundary parameters.
  152. The  type  information    includes  the maximum cylinders, maximum heads, maximum
  153. sectors,    precomp  cylinder  number,    retry  flag,  step rate, and interleave
  154. value.
  155.  
  156.  
  157.      2.3.3 Task File Window
  158.  
  159. The  task  file  window  (upper  right)  shows    the task file returned from the
  160. controller  after  the    command  was  completed.  Appendix  A  gives a detailed
  161. explanation of the task file and associated errors.
  162.  
  163.  
  164.  
  165.  
  166.      2.3.4  Error Report Window
  167.  
  168. The  error  report  window  (lower  right)  shows  the last 5 errors which have
  169. occurred  since  the  diagnostic  began,  or  since the last "zero" command was
  170. issued. Appendix A explains each error in full detail.
  171.  
  172.  
  173.  
  174.  
  175.      2.4 Command Structure
  176.  
  177. In  the  interactive  mode (commands being input from the keyboard), the cursor
  178. will  reside  on  the command line, which begins with the CMD> prompt. Commands
  179. are  typed  in lower or upper case. A carriage return  <CR>  ends command entry
  180. and  initiates    command execution. Multiple commands may be entered on the same
  181. line,  separated  by   commas. Commands are separated from parameters by one or
  182. more of the following:    space  tab  =  /  :  (    )
  183.  
  184.  
  185.      2.4.1 Command Types
  186.  
  187. From a command entry standpoint, there are 6 types of commands:
  188.  
  189.      type 1       cmd
  190.      type 2       cmd|<choice>
  191.      type 3       cmd|<param>
  192.      type 4       cmd|<string>
  193.      type 5       cmd|<test>
  194.      type 6       cmd|<special>
  195.  
  196. The  six  types  of  commands may be freely mixed on the same line. See section
  197. 3.0 for complete listing.
  198.  
  199.  
  200.      2.4.2 Command Line Repeat
  201.  
  202. A  command  line  may  be  repeated  up to 32,762 times, simply by entering the
  203. desired  command  (or  a  string  of  commands)  followed by a #, followed by a
  204. number.   After  the <CR> is entered, the commands on the line will be executed
  205. repeatedly,  just  as  if  the    line were entered the number of times specified
  206. behind    the  #.  In  addition, a repeat count is shown on the message line, and
  207. decrements down with each command line execution.
  208.  
  209. If  the  Escape  key  is  hit  during  a  line    repeat,  the  repeat  count  is
  210. automatically zeroed.
  211.  
  212.      Example:
  213.  
  214.       CMD>r,incs #30
  215.  
  216. will perform a read, increment the sector count operation 30 times.
  217.  
  218.  
  219.  
  220.  
  221.      2.5 Error Methodology
  222.  
  223.  
  224.      2.5.1 Hard and Soft Errors
  225.  
  226. Errors    are separated into two categories - hard errors and soft errors. A hard
  227. error  is defined as an error which is not recoverable after a specified number
  228. of  retries  (see "rc"). A soft error is defined as an error which is recovered
  229. during    retries.  In  other  words, a hard error persists through the specified
  230. number of retries; a soft error does not.
  231.  
  232. A  hard  error    is  distinguished  in the error report window, and in the error
  233. file by a 'H' prefix and a soft error is prefixed by a 'S'.
  234.  
  235.  
  236.      2.5.2 Error logging
  237.  
  238. In  addition  to  showing  the    last 5 errors in the error reporting window, an
  239. error  log  file  can  be  kept  on disk for later review. Upon invocation, all
  240. errors    are  logged  to  a specified file (see "errlog"). The file may later be
  241. dumped to the screen interactively (see "def").
  242.  
  243.  
  244.      2.6  Buffer Screen
  245.  
  246. The  buffer  screen  can  be reached from the Floppy or Hard screen by giving a
  247. dur  (dump  read buffer) or duw (dump write buffer). The buffer screen displays
  248. one  sector  of  data  at a time that can be edited. The arrow keys are used to
  249. select the byte to edit and the page keys are used to choose the sector.
  250.  
  251.      2.7 Help Screen
  252.  
  253. The  help screen can be reached from the floppy or hard screen by giving a help
  254. command.  The  help  screen  displays all of the commands in alphabetical order
  255. with a short description after it.
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.      3.0 COMMANDS
  263.  
  264. The  command  set in EVAL closely resembles that of VHD. Bellow one will find a
  265. list  of  all  the  commands  by  type    and alphabetic. Before getting into the
  266. commands we should look at the formats of the commands.
  267.  
  268.  
  269.      type 1       cmd
  270.      type 2       cmd|<choice>
  271.      type 3       cmd|<param>
  272.      type 4       cmd|<string>
  273.      type 5       cmd|<test>
  274.      type 6       cmd|<special>
  275.  
  276.  
  277.      cmd         this is the command name
  278.  
  279.      |         one or more of the following delimiters:
  280.               space = : / ( ) tab
  281.              some examples :
  282.               h 3
  283.               h=3
  284.               h:3
  285.               h = 3
  286.               h/3    are all valid commands to set h to 3
  287.               h3    is not valid
  288.  
  289.      <choice>    one of the following
  290.               true        t
  291.               false     f
  292.               yes        y
  293.               no        n
  294.  
  295.  
  296.      <param>     a parameter value of one of the following forms
  297.               var1        the value of var1 is used
  298.                 .        .
  299.                 .        .
  300.                 .        .
  301.               var8        the value of var8 is used
  302.               0  ... 32762
  303.               0h ... 7FFFh
  304.               rstat     the value in the status register
  305.               rerr        the value in the error register
  306.               rsecc     the value in the sector count register
  307.               rsecn     the value in the sector number register
  308.               rcyll     the value in the cylinder low register
  309.               rcylh     the value in the cylinder high register
  310.               rsdh        the value in the SDH register
  311.               rdata     the value in the data register
  312.               rastat    the value in the alternate status register
  313.               rdin        the value in the digital input register
  314.  
  315.      <string>    a string of text
  316.  
  317.      <test>      an expression to test that might look like this:
  318.               (var1 <= 4)
  319.              NOTE: there must be a space between the operands and
  320.                the operator i.e.  (var1 <=4) is not valid
  321.              operators can be of the form:
  322.               ==        equal
  323.               !=        not equal
  324.               <=        less than or equal
  325.               >=        greater than or equal
  326.               <        less than
  327.               >        greater than
  328.  
  329.      <special>   can be any thing, check individual command description
  330.  
  331.    command type       command example
  332.       1            r
  333.       2            upd yes
  334.       3            cyl 614
  335.       3            s=var1
  336.       3            c = 1DFh
  337.       4            print(hello out there)
  338.       5            while(var3 != var7)   this type can only be
  339.                             used in a batch file
  340.       6            etc 1e10
  341.  
  342. Commands  are  entered at the EVAL command prompt "CMD>". More than one command
  343. can  be  entered  on  a line but each command must be separated by a coma. EVAL
  344. reads and executes each command starting from the left most  command i.e.
  345.      CMD> h 0,s 3,c 26,sk
  346.  
  347. EVAL  allows  the  user  to  repeat  a string of commands a specified number of
  348. times. In the example bellow 100 sectors will be read.
  349.      CMD> r,incs #100
  350.  
  351.  
  352.             ALPHABETICAL LISTING OF COMMANDS
  353. alt
  354.      alt|<choice>
  355.      Enable alternate sector during format
  356.      hard drive only
  357.  
  358. b
  359.      b|<param>
  360.      Set block size. Enter the number of sectors to read/write/verify
  361.      hard/floppy
  362.  
  363. bct
  364.      bct|<special>
  365.      Set bit terminate count
  366.      <special> is scientific notation    bct=3e9
  367.      stop execution after 300,000,000 bits have been read/write/verify
  368.      floppy drive only
  369.  
  370. c
  371.      c|<param>
  372.      set cylinder value for next operation
  373.      hard/floppy
  374.  
  375. cmd
  376.      cmd|<param>
  377.      write to command register of task file
  378.      hard drive only
  379.  
  380. cmp
  381.      cmp
  382.      compare read buffer to write buffer and flag all errors
  383.      hard/floppy
  384.  
  385. copy
  386.      copy
  387.      move read buffer to write buffer
  388.      hard/floppy
  389.  
  390. cyl
  391.      cyl|<param>
  392.      set total number of cylinders on drive
  393.      hard drive only
  394.  
  395. d
  396.      d|<param>
  397.      set drive number for next operations
  398.      hard drive      0 <= param <= 1
  399.      floppy drive      0 <= param <= 3
  400.  
  401.  
  402. def
  403.      def
  404.      dump error file. change screen to display error log
  405.      hard/floppy
  406.  
  407. diag
  408.      diag
  409.      diagnostic command. send diagnostic command to controller
  410.      hard drive only
  411.  
  412. dt
  413.      dt|<param>
  414.      set drive type
  415.              0      1.2 Meg floppy drive in a 1.2 Meg drive
  416.              1      360 K   floppy drive in a 1.2 Meg drive
  417.              2      360 K   floppy drive in a 360 K   drive
  418.      floppy drive only
  419.  
  420. dur
  421.      dur
  422.      dump read buffer. display contents of read buffer
  423.      hard/floppy
  424. duw
  425.      duw
  426.      dump write buffer. display contents of write buffer
  427.      hard/floppy
  428.  
  429. ecmd
  430.      ecmd|<param>
  431.      write to 1005 esdi task file command register
  432.      1005 esdi hard drive controller only
  433.  
  434. ecc
  435.      ecc|<param>
  436.      set number of ECC bytes
  437.      hard drive only
  438.  
  439. ecct    ecct
  440.      test ECC and return the number of bits corrected
  441.      hard drive only
  442.  
  443. ecmd
  444.      ecmd|<param>
  445.      send <param> to esdi command reg
  446.      1005 only
  447.  
  448. edit
  449.      edit
  450.      enter a batch file from eval.
  451.      can not be used in a batch file.
  452.      hard/floppy
  453.  
  454.  
  455. eelse
  456.      eelse
  457.      marks end of else statement in batch file
  458.      used in batch file only
  459.  
  460. eif
  461.      eif
  462.      marks end of if statement in batch file
  463.      used only in batch file
  464.  
  465. else
  466.      else
  467.      marks start of else statement in batch file. This block will
  468.      be executed only if the previous if command was false
  469.      used only in batch file
  470.  
  471. end
  472.      end
  473.      marks end of a batch file also used to exit the edit screen
  474.      used only in a batch file
  475.  
  476. er
  477.      er|<choice>
  478.      enable retries. will enable/disable retries on a hard drive
  479.      controller based on <choice>
  480.              true   enable retries
  481.              false  disable retries
  482.  
  483. errlog
  484.      errlog|<string>
  485.      enter name of error file to use
  486.      file will be opened in the append mode and a header is placed at
  487.      the top of the file depending if opened from floppy or hard window
  488.  
  489. esdi
  490.      esdi|<choice>
  491.      opens/closes a window for the 1005 esdi controller  esdi task file
  492.  
  493. etc
  494.      etc|<special>
  495.      error terminate count
  496.      <special> is scientific notation    ect=3e9
  497.      execution will stop after 10,000,000,000 errors have been found
  498.  
  499. ewhile
  500.      ewhile
  501.      marks end of while statement in batch file
  502.      used only in batch file
  503.  
  504.  
  505. exfr
  506.      exfr|<param>
  507.      write to 1005 esdi transfer register
  508.      used only wilt 1005 esdi controller
  509.  
  510. fbs
  511.      fbs|<param>
  512.      format <sector number> as bad
  513.      hard drive only
  514.  
  515. fbt
  516.      fbt
  517.      format all of track as bad
  518.      hard drive only
  519.  
  520. fd
  521.      fd
  522.      format all of drive
  523.  
  524. floppy
  525.      floppy
  526.      goto floppy drive mode
  527.      hard drive only
  528.  
  529. ft
  530.      ft
  531.      format track
  532.  
  533. h
  534.      h|<param>
  535.      set head number
  536.      hard/floppy
  537.  
  538. hard
  539.      hard
  540.      goto hard drive mode
  541.      floppy drive only
  542.  
  543. heads
  544.      heads|<param>
  545.      set total number of heads
  546.      hard drive only
  547.  
  548. help
  549.      help
  550.      goto help screen
  551.  
  552. i
  553.      i|<param>
  554.      set interleave for next format command
  555.      hard/floppy
  556.  
  557.  
  558. idc
  559.      idc
  560.      send idc command to controller with parameters of drive
  561.      hard drive only
  562.  
  563. if
  564.      if|<test>
  565.      marks start of if block. The if block will be executed
  566.      only when the condition of <test> is true.
  567.      used only in batch files
  568.  
  569. incc
  570.      incc
  571.      increment cylinder count
  572.      hard/floppy
  573.  
  574. inch
  575.      inch
  576.      increment head count
  577.      hard/floppy
  578.  
  579. incs
  580.      incs
  581.      increment sector count
  582.      hard/floppy
  583.  
  584. int
  585.      int|<choice>
  586.      enable / disable interrupts from controller
  587.      hard drive only
  588.  
  589. lrun
  590.      lrun|<string>
  591.      load and run a batch file <file name>
  592.      hard/floppy
  593.  
  594. ltt
  595.      ltt
  596.      write/read/compare all of disk
  597.      hard/floppy
  598.  
  599. multi
  600.      multi|<param>
  601.      set multi block transfer mode with <block size>
  602.      only on hard controllers that support this command
  603.  
  604. nop
  605.      nop
  606.      no operation does nothing
  607.  
  608.  
  609. o
  610.      o|<param>
  611.      set the offset into the write buffer used with v command
  612.  
  613. pat
  614.      pat|<special>
  615.      fill write buffer with pattern  pat=incr,pat 6db
  616.      <special>
  617.        incr       fill write buffer with incriminating data
  618.  
  619.        rand       fill write buffer with random numbers
  620.               this command will take about 3 mins to complete
  621.  
  622.        ilt          fill write with interleave pattern
  623.  
  624.        X...X      fill write buffer with hex pattern X...X
  625.               i.e. pat 6db will make a pattern of 6db6db6db...
  626.  
  627.  
  628. pause
  629.      pause
  630.      wait for key press. Will prompt user to press any key
  631.      an escape key will stop execution of batch file or repeat line
  632.      hard/floppy
  633.  
  634. precomp
  635.      precomp|<param>
  636.      set precomp cylinder number
  637.      hard drive only
  638.  
  639. print
  640.      print|<string>
  641.      print message to lower left corner of screen       print(HI MOM)
  642.      hard/floppy
  643.  
  644. quit
  645.      quit
  646.      exit EVAL
  647.      hard/floppy
  648.  
  649. r
  650.      r
  651.      read command. read number of sectors described by block size
  652.      hard/floppy
  653.  
  654.  
  655. ra
  656.      ra
  657.      read all of drive
  658.      hard/floppy
  659.  
  660.  
  661.  
  662. rb
  663.      rb
  664.      read buffer. read buffer of controller
  665.      hard drive only
  666.  
  667. rc
  668.      rc|<param>
  669.      retry count. set number of retries before calling an error hard
  670.      floppy drive only
  671.  
  672. rcmd
  673.      rcmd|<param>
  674.      write <param> to command register
  675.      hard drive only
  676.  
  677. rcylh
  678.      rcylh|<param>
  679.      write <param> to cylinder high register
  680.      hard drive only
  681.  
  682. rcyll
  683.      rcyll|<param>
  684.      write <param> to cylinder low register
  685.      hard drive only
  686. rdata
  687.      rdata|<param>
  688.      write <param> to data register
  689.      hard drive only
  690.  
  691. recal
  692.      recal
  693.      recalibrate drive. move heads to track zero
  694.      hard drive only
  695.  
  696. reset
  697.      reset
  698.      reset drive. does  a soft reset to drive.
  699.      in hard drive mode must be followed by 2 recals
  700.      hard/floppy
  701.  
  702. rfixd
  703.      rfixd|<param>
  704.      write <param> to fix disk register
  705.      hard drive only
  706.  
  707. rl
  708.      rl
  709.      read long command. Read all of block including ECC bytes
  710.      hard drive only
  711.  
  712.  
  713. rm
  714.      rm
  715.      read mulit block
  716.      only on hard controller that support multi block
  717.  
  718. rsdh
  719.      rsdh|<param>
  720.      write <param> to SDH register
  721.      hard drive only
  722.  
  723. rsecc
  724.      rsecc|<param>
  725.      write <param> to sector count register
  726.      hard drive only
  727.  
  728. rsecn
  729.      rsecc|<param>
  730.      write <param> to sector number register
  731.      hard drive only
  732.  
  733. rtf
  734.      rtf
  735.      read task file. read task file from controller
  736.      hard drive only
  737.  
  738. run
  739.      run
  740.      run batch file. start execution of batch file
  741.      hard/floppy
  742.  
  743. rv
  744.      rv
  745.      read verify command. read block of sectors but do not transfer data
  746.      hard/floppy
  747.  
  748. rva
  749.      rva
  750.      read verify all. do a read verify on all of disk
  751.      hard/floppy
  752.  
  753.  
  754. rwpre
  755.      rwpre|<param>
  756.      write <param> to write precomp register
  757.      hard drive only
  758.  
  759. s
  760.      s|<param>
  761.      set sector number for next command
  762.      hard/floppy
  763.  
  764.  
  765. sectors
  766.      sectors|<param>
  767.      set total number of sectors per track
  768.      hard drive only
  769.  
  770. sk
  771.      sk
  772.      seek command. seek to track specified
  773.      hard drive only
  774.  
  775. skew
  776.      skew|<param>
  777.      set skew for next format
  778.      hard drive only
  779.  
  780. skt
  781.      skt
  782.      do a crescendo seek test
  783.      hard/floppy
  784.  
  785. show
  786.      show|<param>
  787.      display value to screen. will display value in lower right
  788.      corner of screen
  789.      hard/floppy
  790.  
  791. st     st
  792.      start timer
  793.      this will zero the real time stop watch
  794.  
  795. ts     time stamp
  796.      this will print the real time stop watch
  797.      to the screen and to the error file
  798.  
  799. upd
  800.      upd|<choice>
  801.      update command. enable/disable update of screen after every command
  802.      hard/floppy
  803.  
  804. v
  805.      v|<param>
  806.      set a value in write buffer at offset defined by o
  807.      v will also increment the offset value
  808.  
  809.  
  810. var1...var8
  811.      var1...var8|<param>
  812.      set value of var1...var8
  813.              var1 = 2        set var1 to 2
  814.              var1 += 3        var1 = var1+3
  815.              var1 -= 1        var1 = var1 - 1
  816.              var1 &= 4        var1 AND 4
  817.              var1 |= 4        var1 OR 4
  818.   note : when using += ... |= there must be spaces seperating the operator
  819.      hard/floppy
  820.  
  821. w
  822.      w
  823.      write command. write number of sectors described by block size
  824.      hard/floppy
  825.  
  826. wa
  827.      wa
  828.      write all. send write buffer to all of drive
  829.      hard/floppy
  830.  
  831. wb
  832.      wb
  833.      write buffer. send write buffer to controller
  834.      hard drive only
  835.  
  836. while
  837.      while|<test>
  838.      mark start of while block The while block will be executed
  839.      as long as the condition of <test> is true.
  840.      used only in batch files
  841.  
  842. wid
  843.      wid
  844.      write the cylinder/head/sector number to the data sector on drive
  845.      hard drive only
  846.  
  847. wl
  848.      wl
  849.      write long command. write the write buffer to the drive
  850.      including ECC bytes
  851.      hard drive only
  852.  
  853. wm
  854.      wm
  855.      write multi block
  856.      only on hard controller that support multi block
  857.  
  858.  
  859. wtf
  860.      wtf
  861.      write task file
  862.      send task file to controller
  863.      hard drive only
  864.  
  865. zero
  866.      zero
  867.      clear error counters
  868.      hard/floppy
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.      4.0 Batch Files
  876.  
  877. Commands  can  be  executed  from  a  batch  file  in one of two ways. First by
  878. entering  the  name  of the batch file after EVAL at the DOS command line or by
  879. using  the  edit  command.  In    either case the format of the batch file is the
  880. same.  In  a  batch file all the command from the HARD or FLOPPY windows can be
  881. used  except  : "edit", "run", "def", "duw", and "dur". While in the batch file
  882. the  "if",  "else",  and  "while"  commands  can be used to control the flow of
  883. commands.  A  batch  file  must  end  with  the "end" command or it will not be
  884. loaded.  To execute a file one must type the "run" command. Below is an example
  885. of a batch file:
  886.  
  887.  
  888.  
  889.  
  890.                                    Appendix    (A)
  891.  
  892.                   HARD DRIVE TASK FILE
  893.  
  894.  
  895.  
  896. Here  is a brief out line of the Task File for more information check the speck
  897. sheet for the controller you are using.
  898.  
  899.                D7                      D0
  900.              ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
  901. Error register         │ BB  │ ECC │  0  │ ID  │    0  │ AC  │ TK  │ DM  │
  902.              ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
  903. Sector count         │         number of sectors    to transfer         │
  904.              ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
  905. Sector number         │               sector number             │
  906.              ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
  907. cylinder low         │         cylinder number (low byte)         │
  908.              ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
  909. cylinder high         │    0  │  0  │  0  │  0  │    0  │  0  │ cyl. MSB  │
  910.              ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
  911. SDH             │    1  │ sec. size │ DS  │ HS3 │ HS2 │ HS1 │ HS0 │
  912.              ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
  913. Status reg.         │ BSY │ RDY │ WF  │ SC  │ DRQ │ CRD │ IDX │ ERR │
  914.              └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
  915.  
  916.  
  917. Error reg.
  918.      BB         Bad Block
  919.      ECC         Bad ECC bytes
  920.      ID         ID not found
  921.      AC         Aborted Command
  922.      TK         Track zero error
  923.      DM         Data Address Mark not found
  924.  
  925. Status reg.
  926.      BSY         Busy flag
  927.      RDY         Drive ready
  928.      WF         Write Fault
  929.      SC         Seek Complete
  930.      DRQ         Data Transfer Request
  931.      CRD         Corrected Data Flag
  932.      IDX         Index pulse
  933.      ERR         Error Flag
  934. Sector count
  935.      The number of sectors to transfer
  936.  
  937. Sector number
  938.      The sector to start transfer at
  939.  
  940.  
  941.                                    Appendix    (A)
  942.  
  943. Cylinder low/high
  944.      The cylinder to start transfer at
  945.  
  946. SDH
  947.      sec.size    sector size
  948.              00    256 bytes
  949.              01    512 bytes
  950.              10   1024 bytes
  951.              11    128 bytes
  952.      DS         drive select
  953.      HS3..HS1    head select
  954.  
  955.  
  956.  
  957.  
  958.                    HARD DRIVE ERRORS
  959.  
  960. The format of the error messages from the hard drive looks like this
  961.      Err#  CMD# SR ER   C  H  S  CMD  MSG
  962.  
  963. Where
  964.      Err#         is the error count
  965.      Cmd#         is the command count
  966.      SR         the value of the status register
  967.      ER         the value of the error register
  968.      C         the cylinder that the error occurred on
  969.      S         the sector that the error occurred on
  970.      H         the head that the error occurred on
  971.      CMD         the command that was being executed
  972.      MSG         a description of the error
  973.  
  974. Example:
  975.      Err#  CMD# SR ER   C  S  H  CMD  MSG
  976.        23     45 01 80   7 1A  3   r    Bad Block mark
  977.  
  978.  
  979.  
  980.  
  981.                                    Appendix     (B)
  982.  
  983.  
  984.      Floppy Status Codes:
  985.  
  986.   Status Code        Condition
  987.  
  988.        0    Successful operation
  989.  
  990.        2    Bad address mark.   Either a data AM or IDAM  was  bad.
  991.  
  992.        3    Diskette is write protected.
  993.  
  994.        4    Record not found.
  995.  
  996.        6    The media has been changed since the last operation.
  997.  
  998.        8    DMA  overrun.     An  illegal  DMA  condition  has
  999.         occurred.     The  diagnostic  is  in  an  unknown
  1000.         condition.  The system should be re-booted.
  1001.  
  1002.        9    DMA boundary exceeded.     The system should be  re-
  1003.         booted.
  1004.  
  1005.       10    Bad CRC.  Either ID or data CRC did not match its
  1006.         associated field.
  1007.  
  1008.       20    Bad UPD 765 chip.
  1009.  
  1010.       40    Bad seek.
  1011.  
  1012.       80    Time-out error.  Response from the floppy control-
  1013.         ler was not received before the system timed out.
  1014.         Can occur if the drive door is open.
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.                                  Appendix      (B)
  1026.  
  1027.  
  1028.                  FLOPPY ERROR MESSAGES
  1029.  
  1030.  
  1031.      Messages not related to media records:
  1032.  
  1033.  
  1034.       "Write protected" -
  1035.       Results from a status code "3".
  1036.  
  1037.       "Media change indicated" -
  1038.       Results from a status code "6".
  1039.  
  1040.       "DMA overrun!!!" -
  1041.       Results from a status code "8".
  1042.  
  1043.       "DMA boundary exceeded!!!" -
  1044.       Results from a status code "9".
  1045.  
  1046.       "Bad UPD 765 chip" -
  1047.       Results from a status code "20".
  1048.  
  1049.  
  1050.  
  1051.      Messages related to media records:
  1052.  
  1053.  
  1054.       Message is composed of three parts -
  1055.  
  1056.       1) Type of operation - Read, Write, Reset, Format, Verify.
  1057.  
  1058.       2) Location -  "c:n  h:n  s:n"
  1059.  
  1060.       3) Type of error (in parentheses) -
  1061.  
  1062.          "End of track"
  1063.       "DAM not found"
  1064.       "IDAM not found"
  1065.       "Data CRC error"
  1066.       "ID CRC error"
  1067.       "Undefined"
  1068.  
  1069.                                    Appendix    (B)
  1070.  
  1071.  
  1072.  
  1073.      Examples:
  1074.  
  1075.       "Read error  c:0 h:1 s:10 (DAM not found)"
  1076.  
  1077.       "Write error c:10 h:0 s:1 (ID CRC error)"
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.                 COMMAND LIST BY FUNCTION
  1087.  
  1088.  
  1089.                  Setup Commands
  1090.  
  1091. alt        |<choice>           enable alternate sectors T/F
  1092. b        |<param>           set block size
  1093. bct        |<special>           set bit terminate count    i.e.  btc=1e30
  1094. cyl        |<param>           set total number of cylinders
  1095. dt                   drive type { floppy }
  1096. ecc        |<param>           set number of ecc bytes
  1097. er        |<param>           retries enable T/F
  1098. errlog        |<string>           enter name of error file to use
  1099. esdi        |<choice>           1005 esdi mode
  1100. etc        |<special>           error terminate count  i.e.   etc=1e30
  1101. floppy        |<choice>           goto floppy drive mode
  1102. hard        |<choice>           goto hard drive mode
  1103. heads        |<param>           set total number of heads
  1104. i        |<param>           set interleave
  1105. idc                   send idc command
  1106. multi        |<param>           set multi block size
  1107. reset                   reset drive parameters
  1108. rc        |<param>           retry count { floppy }
  1109. sectors     |<param>           set total number of sectors per track
  1110. skew        |<param>           set skew size
  1111. precomp     |<param>           set precomp cylinder number
  1112. zero                   clear error counters
  1113.  
  1114.  
  1115.                 Transfer Commands
  1116.  
  1117. cmd        |<param>           write to command register
  1118. copy                   move read buffer to write buffer
  1119. dur                   dump read buffer
  1120. duw                   dump write buffer
  1121. ecmd        |<param>           write to 1005 esdi command register
  1122. exfer        |<param>           write to 1005 esdi transfer register
  1123. fbs        |<param>           format bad sector  <sector number>
  1124. fbt                   format bad track
  1125. fd                   format drive
  1126. ft                   format track
  1127. ltt                   write/read/compare all of disk
  1128. pat        |<special>           fill write buffer with pattern pat=incr,pat=6db
  1129. o        |<param>           offset into write buffer (1 sector = 520)
  1130. r                   read command
  1131. ra                   read all
  1132. rb                   read buffer
  1133. rl                   read long command
  1134. rm                   read multi block
  1135. rv                   read verify command
  1136. rva                   all
  1137. v        |<param>           value to put into write buffer at offset
  1138. w                   write command
  1139. wa                   write all
  1140. wb                   write buffer
  1141. wid                   write cylinder/head/sector number to each setor
  1142. wl                   write long command
  1143. wm                   write multi block
  1144. wtf                   write task file
  1145.  
  1146.  
  1147.  
  1148.  
  1149.                 Batch File Commands
  1150.  
  1151. edit                   enter batch file from eval
  1152. eelese                   end of else statement { batch file }
  1153. eif                   end of if statement { batch file }
  1154. else                   else statement { batch file }
  1155. end                   end of batch file
  1156. ewhile                   end of while statement { batch file }
  1157. if        |<test>           if statement { batch file }
  1158. lrun        |<string>           load and run <file name>
  1159. nop                   no operation
  1160. run                   run batch file
  1161. while        |<test>           while statement { batch file }
  1162.  
  1163.  
  1164.  
  1165.                  Head Movement Commends
  1166.  
  1167. c        |<param>           set cylinder count
  1168. d        |<param>           set drive number
  1169. h        |<param>           set head count
  1170. incc                   increment cylinder count
  1171. inch                   increment head count
  1172. incs                   increment sector count
  1173. recal                   recalibrate drive
  1174. s        |<param>           set sector count
  1175. sk                   seek command
  1176. skt                   seek test
  1177.  
  1178.  
  1179.  
  1180.               Hard Drive Register commands
  1181.  
  1182. rcmd        |<param>           write <param> to command registor
  1183. rcylh        |<param>           write <param> to cylinder high registor
  1184. rcyll        |<param>           write <param> to cylinder low registor
  1185. rdata        |<param>           write <param> to data registor
  1186. rfixd        |<param>           write <param> to fix disk registor
  1187. rsdh        |<param>           write <param> to SDH registor
  1188. rsecc        |<param>           write <param> to sector count registor
  1189. rsecn        |<param>           write <param> to sector number registor
  1190. rwpre        |<param>           write <param> to write precomp registor
  1191.  
  1192.  
  1193.  
  1194.                       Other
  1195.  
  1196. cmp                   compare buffers
  1197. def                   dump error file
  1198. diag                   diagnostic command
  1199. ecct                   ecc test
  1200. help                   goto help screen
  1201. pause                   wait for key press
  1202. print        |<string>           print message to screen
  1203. quit                   exit eval
  1204. rtf                   read task file { hard }
  1205. show        |<param>           display value to screen
  1206. st                   start timer
  1207. ts                   time stamp
  1208. ta                   test all
  1209. upd        |<choice>           update command T/F
  1210. var1...var8 |<param>           set value of var1...var8
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.             ALPHABETICAL LISTING OF COMMANDS
  1218.  
  1219. alt        |<choice>           enable alternate sectors T/F
  1220. b        |<param>           set block size
  1221. bct        |<special>           set bit terminate count       bct=3e9
  1222. c        |<param>           set cylinder count
  1223. cmd        |<param>           write to command register
  1224. copy                   move read buffer to write buffer
  1225. cyl        |<param>           set total number of cylinders
  1226. d        |<param>           set drive number
  1227. def                   dump error file
  1228. diag                   diagnostic command
  1229. dt        |<param>           drive type { floppy }
  1230. dur                   dump read buffer
  1231. duw                   dump write buffer
  1232. ecmd        |<param>           write to 1005 esdi command register
  1233. edit                   enter batch file from eval
  1234. eelese                   end of else statement { batch file }
  1235. eif                   end of if statement { batch file }
  1236. else                   else statement { batch file }
  1237. end                   end of batch file
  1238. er        |<choice>           retries enable T/F
  1239. errlog        |<string>           enter name of error file to use
  1240. esdi        |<choice>           1005 esdi mode
  1241. etc        |<special>           error terminate count    etc=1e10
  1242. ewhile                   end of while statement { batch file }
  1243. exfer        |<param>           write to 1005 esdi transfer register
  1244. fd                   format drive
  1245. fds        |<param>           format drive with skew
  1246. floppy        |<choice>           goto floppy drive mode
  1247. ft                   format track
  1248. fts        |<param>           format track with skew
  1249. h        |<param>           set head count
  1250. hard        |<choice>           goto hard drive mode
  1251. heads        |<param>           set total number of heads
  1252. help                   goto help screen
  1253. i        |<param>           set interleave
  1254. idc                   send idc command
  1255. if        |<test>           if statement { batch file }
  1256. incc                   increment cylinder count
  1257. inch                   increment head count
  1258. incs                   increment sector count
  1259. o        |<param>           offset into write buffer (1 sector = 520)
  1260. pat        |<special>           fill write buffer with pattern  pat=incr,pat 6db
  1261. pause                   wait for key press
  1262. precomp     |<param>           set precomp cylinder number
  1263. print        |<string>           print message to screen
  1264. r                   read command
  1265. ra                   read all
  1266. rb                   read buffer
  1267. rc        |<param>           retry count { floppy }
  1268. recal                   recalibrate drive
  1269. reset                   reset drive parameters
  1270. rl                   read long command
  1271. rtf                   read task file { hard }
  1272.  
  1273. run                run batch file
  1274. rv                   read verify command
  1275. rva                   all
  1276. s        |<param>           set sector count
  1277. sectors     |<param>           set total number of sectors per track
  1278. sk                   seek command
  1279. show        |<param>           display value to screen
  1280. st                   start timer
  1281. ts                   time stamp
  1282. upd        |<choice>           update command T/F
  1283. v        |<param>           value to put into write buffer at offset
  1284. var1...var8 |<param>           set value of var1...var8
  1285. w                   write command
  1286. wa                   write all
  1287. wb                   write buffer
  1288. while        |<test>           while statement { batch file }
  1289. wl                   write long command
  1290. wtf                   write task file
  1291. zero                   clear error counters
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.