home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG038.ARK / DFOCO.DOC < prev    next >
Text File  |  1984-04-29  |  20KB  |  461 lines

  1.             DFOCO DOCUMENTATION
  2.  
  3.                         COPYRIGHT 1979
  4.                         BY S. J. SINGER
  5.  
  6.  
  7.     DFOCO IS A FAST FORMAT AND COPY UTILITY FOR CP/M AND THE DELTA
  8. FLOPPY DISK CONTROLLER. IT PERMITS FORMATTING DISKS IN BOTH THE STANDARD
  9. IBM FORMAT AND A VARIETY OF NON STANDARD FORMATS AS WELL AS COPYING
  10. ENTIRE DISKS OR ONLY SPECIFIED TRACKS FROM ONE DISK TO ANOTHER. 
  11. IN ADDITION DFOCO PERMITS RELATIVELY EFFICIENT SINGLE DISK DRIVE COPIES
  12. AND WILL COPY FORMATS AND DISPLAY THE FORMAT ON ANY SPECIFIED TRACK OF
  13. ANY DISK. DFOCO SUPPORTS THE USE OF 4 DISK DRIVES.
  14.     DFOCO MAY BE USED BOTH SINGLE DENSITY (FM) AND DOUBLE DENSITY (MFM).
  15. THE OPERATIONS PERFORMED ARE IN GENERAL THE SAME BUT MAY BE SLIGHTLY
  16. MORE LIMITED IN THE CASE OF DOUBLE DENSITY.
  17.     DFOCO WILL RUN ON ANY 8080 OR Z-80 BASED SYSTEM USING THE DELTA
  18. DISK CONTROLLER. THE PROGRAM USES CP/M FOR ALL CONSOLE INPUT-OUTPUT,
  19. HOWEVER ALL DISK OPERATIONS ARE DIRECTLY EXECUTED BY DFOCO. THIS IS
  20. NECESSARY BECAUSE DFOCO USES NON CP/M COMMANDS LIKE DISK TRACK READ,
  21. AND DFOCO KEEPS CONTROL OF ALL DISK ERRORS TO FACILITATE ACCOUNTING
  22. AND ERROR RECOVERY. IT SHOULD BE POSSIBLE HOWEVER, TO MODIFY DFOCO
  23. TO RUN WITH ANY WESTERN DIGITAL 1771 OR 1791 BASED DISK CONTROLER.
  24. THERE ARE TWO DIFFERENT VERSIONS OF DFOCO, ONE FOR STANDARD DISK DRIVES
  25. AND THE OTHER FOR FAST SEEK PERSCI DRIVES. THE SINGLE DENSITY OPERATIONS
  26. WILL BE DESCRIBED IN DETAIL FIRST.
  27.  
  28.  
  29.  
  30.     * * * * * * *  SINGLE DENSITY OPERATIONS  * * * * * * *
  31.  
  32.  
  33.             VALIDATING DISKS
  34.  
  35.     IT IS OFTEN USEFUL TO BE ABLE TO TELL WHETHER OR NOT THE RECORDING
  36. SURFACE OF A DISK IS COMPLETELY INTACT BEFORE USING THE DISK. THIS IS
  37. ESPECIALLY TRUE SINCE WHILE CP/M ALWAYS CHECKS FOR READ ERRORS THERE IS
  38. NO CHECK DONE FOR WRITE ERRORS. YOU WILL NOT KNOW YOU HAVE A BAD COPY
  39. OF A FILE UNTIL THE FIRST TIME YOU TRY TO READ IT AGAIN WHICH MAY BE DAYS
  40. OR EVEN MONTHS LATER.
  41.     VALIDATING A DISK CONSISTS SIMPLY OF READING EACH SECTOR ON THE
  42. DISK AND VERIFYING THAT THE CRC IS CORRECT. THIS SIMPLE PROCESS NOT ONLY
  43. DETECTS PHYSICAL DAMAGE TO THE MEDIA SUCH AS SCRATCHES BUT ALSO FORMATTING
  44. ERRORS SOMETIMES CAUSED BY NOISE TRANSIENTS, ERRORS WHICH WILL DISAPPEAR
  45. UPON REFORMATTING THE DISK. THE FOLLOWING ARE EXAMPLES OF VALIDATION COMMANDS.
  46.  
  47.         VALID            (DEFAULT IS DRIVE A:)
  48.         VALID C:
  49.         VALID D:  RETRY 20
  50.  
  51.  
  52.     THE PROGRAM WILL READ THE ENTIRE DISK AND REPORT ANY READ ERRORS.
  53. IF A CRC ERROR OCCURS THE SECTOR WILL BE REREAD A MAXIMUM OF EITHER
  54. THE NUMBER OF RETRYS SPECIFIED OR 10 TIMES IF NO RETRY COUNT IS ENTERED.
  55. BOTH THE TOTAL NUMBER OF PERMANENT OR HARD ERROR AND RETRYS ARE REPORTED
  56. AT THE END OF THE VALIDATION PROCESS.
  57.  
  58.         SUCCESSFUL VALIDATION DRIVE B:
  59.  
  60.                OR
  61.  
  62.         PERMANENT READ ERROR TRACK 17 SECTOR 5 DRIVE B
  63.         PERMANENT READ ERROR TRACK 42 SECTOR 19 DRIVE B
  64.         THERE WERE 27 RETRYS AND 2 HARD ERRORS
  65.  
  66.  
  67.             COPYING DISKS
  68.  
  69.     ALL OR PART OF A DISK MAY BE COPIED BETWEEN ANY SPECIFIED DRIVES.
  70. THE FOLLOWING ARE EXAMPLES OF TYPICAL COPY COMMANDS:
  71.  
  72.     COPY                (DEFAULT IS A: TO B:)
  73.     COPY A: TO C:
  74.     COPY D:  TO  B:  RETRY 20
  75.     COPY A: TO C: TRACK 0-1
  76.     COPY B: TO D:  TRACK  3 - 20
  77.     COPY A: TO A:            (SINGLE DISK TRANSFER)
  78.  
  79. DFOCO WILL RESPOND WITH AND ACKNOWLEDGMENT AND INSTRUCTIONS. FOR EXAMPLE:
  80.  
  81.     COPYING DISK A TO DISK B
  82.     TYPE RETURN TO START
  83.  
  84.     THE PROGRAM WILL HALT AND WAIT FOR DISKS TO BE CHANGED ETC. AND
  85. WILL BEGIN THE ACTUAL COPY OPERATION AFTER RETURN IS TYPED. IF YOU HAVE
  86. MADE AN ERROR AND WISH TO REENTER THE COMMAND TYPE CONTROL C. THE COPY
  87. OPERATION IS OPTIMIZED FOR SPEED. THE PROGRAM WILL DETERMINE THE MAXIMUM
  88. AMOUNT OF MEMORY AVAILABLE AND READ WHOLE TRACKS FROM THE SOURCE DISK
  89. UNTIL THE MEMORY IS FILLED. THEN THE ENTIRE MEMORY BUFFER IS WRITTEN
  90. ONTO THE DESTINATION DISK. ALL TRANSFERS ARE VERIFIED. AS EACH TRACK IS
  91. WRITTEN ONTO THE DESTINATION DISK IT IS READ BACK AND COMPARED BYTE BY
  92. BYTE WITH THE CONTENTS OF THE MEMORY BUFFER. ANY ERRORS ARE REPORTED.
  93.     IF THE SOURCE AND DESTINATION ARE THE SAME DFOCO WILL FIRST
  94. RESPOND WITH A REQUEST THAT YOU VERIFY THAT YOU REALLY WANT TO PERFORM
  95. A SINGLE DRIVE COPY. IF THE REQUEST IS ACKNOWLEDGED THE PROGRAM
  96. WILL INDICATE WHICH DISK TO MOUNT IN THE SPECIFIED DRIVE.
  97. AS WITH TWO DRIVE COPIES THE PROGRAM WILL FILL THE ENTIRE MEMORY BUFFER
  98. WITH DATA. THE PROGRAM WILL THEN HALT AND NOTIFY YOU TO CHANGE DISKS.
  99. THE NUMBER OF DISK CHANGES REQUIRED WILL OF COURSE DEPEND UPON THE
  100. AMOUNT OF MEMORY AVAILABLE. WITH A 48K SYSTEM 8 SWAPS ARE REQUIRED, WITH
  101. A 64K SYSTEM ONLY 6 ARE NEEDED.
  102.  
  103.  
  104.         COPYING DISKS WITH DIFFERENT SIZE SECTORS
  105.  
  106.     DFOCO WILL COPY DISKS WITH SECTORS OF 128, 256 OR 512 BYTES. THE
  107. PRIMARY LIMITATION OF THE PROGRAM IS THAT BOTH DISKS MUST HAVE THE SAME
  108. SIZE SECTORS. THE SIZE SHOULD BE SPECIFIED IN THE COPY COMMAND.
  109.  
  110.         COPY A: TO C:  SIZE 256
  111.         COPY B: TO A: SIZE 512
  112.         COPY C:  TO D:  SIZE 128
  113.  
  114.     SPECIFYING A SECTOR SIZE OF OTHER THAN 128, 256 OR 512 BYTES WILL
  115. GENERATE AN ERROR MESSAGE.
  116.  
  117.  
  118.  
  119.         ERROR HANDLING DURING COPY OPERATIONS
  120.  
  121.  
  122.     ERROR HANDLING AND RECOVERY IS AN EXTREMELY INPORTANT PART OF ANY
  123. DISK FILE MANAGEMENT SYSTEM. DFOCO IS DESIGNED TO PERMIT THE MAXIMUM RECOVERY
  124. OF DATA FROM DAMAGED OR "CRASHED" DISKS. TWO TYPES OF ERRORS OCCUR DURING
  125. COPY OPERATIONS, ERRORS IN READING FROM THE SOURCE DISK AND ERRORS WRITING
  126. TO THE DESTINATION DISK. READ ERRORS ARE BY FAR THE MOST COMMON.
  127.     IF A READ ERROR OCCURS DFOCO WILL ATTEMPT TO REREAD THE SECTOR 10
  128. (OR RETRY) TIMES. IF THE READ ERROR PERSISTS ONE OF TWO ACTIONS MAY BE CHOSEN.
  129. THE DEFAULT IS TO FILL THE SECTOR WITH E5H AND WRITE IT ON THE DESTINATION
  130. DISK. THE OTHER CHOICE IS SIMPLY TO ACCEPT THE DATA AS READ IN AND WRITE IT ON
  131. THE DESTINATION DISK. THIS IS THE NOFILL OPTION. NOFILL PERMITS THE MAXIMUM
  132. DATA RECOVERY BUT REQUIRES CAREFUL INSPECTION OF THE SECTOR CAUSING THE ERROR
  133. SINCE THE ERRORS MAY NOT BE OBVIOUS.
  134.     WRITE ERRORS ARE HANDLED IN A SOMEWHAT DIFFERENT FASHION. SINCE THERE
  135. IS USUALLY NO VALUABLE DATA ON THE DESTINATION DISK, THE NORMAL CHOICE IS TO
  136. NOT PERMIT COPY OPERATIONS IF WRITE ERROR OCCUR. DFOCO WILL ATTEMPT TO WRITE
  137. A SECTOR 10 (OR RETRY) TIMES. IF THE ERROR PERSISTS, DFOCO WILL STOP THE COPY
  138. OPERATION AND VALIDATE THE DESTINATION DISK THUS REPORTING ALL BAD SECTORS.
  139. IT IS POSSIBLE TO COPY IN THE PRESENCE OF WRITE ERRORS BY TURNING OFF THE
  140. WRITE VERIFICATION, THE NOVERIFY OPTION. HOWEVER SINCE DISKS HAVE BECOME
  141. RELATIVELY INEXPENSIVE THIS OPTION IS PROBABLY UNWISE EXCEPT IN VERY SPECIAL
  142. CASES. SOME EXAMPLES ARE AS FOLLOWS:
  143.  
  144.     COPY B: TO C: NOFILL   RETRY 25
  145.     COPY A: TO B: TRACK 0-5 NOVERIFY
  146.     COPY D: TO A: NOVERIFY NOFILL 
  147.  
  148.  
  149.             DISK FORMATTING AND MAPPING
  150.  
  151.     THE STANDARD IBM FORMAT FOR 8 INCH FLOPPY DISKS IS GIVEN IN THE
  152. WESTERN DIGITAL DOCUMENTATION FOR THE 1791 DISK CONROLLER CHIP AND IN VARIOUS
  153. IBM DOCUMENTS. THE USUAL FORMAT IS "SOFT SECTORED". THIS MEANS ESSENTIALLY
  154. THAT THE TRACK AND SECTOR NUMBERS ARE ACTUALLY WRITTEN ON THE DISK AS DATA
  155. RATHER THAN BEING DETERMINED BY THE PRESENCE OF PHYSICAL INDICATORS SUCH AS
  156. HOLES IN THE DISK. FORMATTING A DISK CONSISTS OF WRITING BOTH THE TRACK
  157. AND SECTOR NUMBERS AS WELL AS CLOCKING INFORMATION FOR THE CONTROLER ON THE
  158. DISK. IT IS IMPORTANT TO REMEMBER THAT A "BLANK" DISK IS BY NO MEANS REALLY
  159. BLANK. RATHER IT CONTAINS A GREAT DEAL OF FORMATTING INFORMATION WITHOUT
  160. WHICH THE CONTROLER IS TOTALLY UNABLE TO READ IT.
  161.     BECAUSE OF THIS "SOFT SECTORING" IT IS SOMETIMES POSSIBLE AND OFTEN
  162. USEFUL TO CHANGE THE FORMAT TO ALLOW INCREASED AMOUNTS OF DATA TO BE WRITTEN
  163. ON THE DISK OR HIGHER SPEED OF OPERATION. THERE ARE TWO POSSIBLE CHANGES
  164. THAT ARE USEFUL, CHANGING THE SIZE OF THE SECTORS OR CHANGING THEIR ORDERING.
  165.     THIS VERSION OF DFOCO SUPPORTS THREE DIFFERENT SECTOR SIZES USING
  166. THE "IBM" SOFT SECTOR FORMAT. SECTORS MAY BE FORMATED WITH THE NORMAL
  167. 26 SECTORS OF 128 BYTES OR WITH 16 SECTORS OF 256 BYTES OR 8 SECTORS OF
  168. 512 BYTES EACH. USING 256 OR 512 BYTE SECTORS ALLOWS APPROXIMATELY
  169. 20% MORE DATA TO BE WRITTEN ON A SINGLE DISK, HOWEVER THERE ARE AT PRESENT
  170. FEW PROGRAMS WHICH WILL SUPPORT THE USE OF LARGER SECTORS.
  171. DFOCO ALSO SUPPORTS A WIDE VARIETY OF SECTOR ORDERINGS.
  172.     THE DESIGN OF CP/M DATES FROM A TIME WHEN DISK CONTROLLERS WERE
  173. QUITE SLOW AND COMPUTER MEMORIES SMALL AND VERY COSTLY. SMALL MEMORIES 
  174. DICTATED SMALL SECTOR SIZES ON DISKS SINCE THE LARGER THE SECTORS THE LARGER
  175. THE MEMORY BUFFERS REQUIRED. SLOW CONTROLERS MEANT THAT HAVING READ A SECTOR
  176. FROM THE DISK IT WAS NECESSARY TO WAIT BEFORE ANOTHER SECTOR COULD BE READ.
  177. DELAYS OF 5 SECTOR TIMES (ABOUT 25 MSEC) WERE COMMON. THUS CP/M IS SET UP
  178. TO READ EVERY 6TH SECTOR AROUND THE DISK. THIS STRATEGY UNFORTUNATELY IS
  179. FAR FROM OPTIMAL FOR PRESENT DAY CONTROLLERS WHICH CAN READ CONSECUTIVE
  180. SECTORS FROM A DISK WITH EASE. NOTE THAT DFOCO WHICH READS AN ENTIRE TRACK
  181. IN A SINGLE DISK REVOLUTION IS OVER 5 TIMES AS FAST AS PIP. UNFORTUNATELY
  182. CP/M STANDARD SYSTEM PROGRAMS SUCH AS PIP AND THE ASSEMBLER CAN ONLY BE
  183. SPEEDED UP A SMALL AMOUNT, ABOUT 20 PER CENT, BY CHANGING DISK FORMATS ALONE.
  184. HOWEVER, NEW PROGRAMS WRITTEN TO TAKE ADVANTAGE OF FASTER CONTROLERS CAN
  185. BE SPEEDED UP A GREAT DEAL MORE.
  186.  
  187.  
  188.             MAPPING DISK FORMATS
  189.  
  190.     WHEN EXPERIMENTING WITH NONSTANDARD FORMATS IT IS OFTEN VERY USEFUL
  191. TO BE ABLE TO READ AND DISPLAY THE ACTUAL DISK FORMAT. YOU CAN'T NECECESSARILY
  192. TELL WHATS ON A DISK BY LOOKING AT THE LABEL. THE MAP COMMAND READS THE FORMAT
  193. FROM A SINGLE TRACK ON A SPECIFIED DISK AND DISPLAYS IT. THERE ARE 26 SECTORS
  194. PER TRACK IN THE STANDARD IBM FORMAT WHICH ARE NUMBERED IN SEQUENTIAL ORDER.
  195. TO DISPLAY THE SECTOR ORDERING TYPE:
  196.  
  197.         MAP            (DEFAULT IS TRACK 0 DRIVE A:)
  198.         MAP C: TRACK 76
  199.  
  200.     THE PROGRAM WILL READ THE SPECIFIED TRACK AND DISPLAY THE PHYSICAL TO
  201. LOGICAL SECTOR MAPPING. THE PHYSICAL SECTORS STARTING FROM THE SINGLE INDEX
  202. HOLE IN THE DISK ARE SIMPLY NUMBERED 1 THRU 26. THE CORRESPONDING LOGICAL
  203. SECTORS ACTUALLY WRITTEN ON THE DISK ARE DISPLAYED BESIDE THE PHYSICAL SECTOR
  204. NUMBER.  FOR DISKS FORMATTED WITH LESS THAN 26 SECTORS, THE UNUSED LOGICAL
  205. SECTOR NUMBERS DISPLAY AS A '-'.
  206.     OCCASIONALLY DFOCO WILL DISPLAY OBVIOUSLY INCORRECT MAPPING DATA, FOR
  207. EXAMPLE TRACK 404 SECTOR NUMBER 201. THIS MEANS THE FORMAT ON THE DISK IS
  208. INCORRECT. THE DISK CONTROLLER WILL OFTEN READ THESE DISKS CORRECTLY
  209. BUT IT IS USUALLY A GOOD IDEA TO COPY THE DATA TO A CORRECTLY FORMATTED DISK.
  210. FORMATTING PROBLEMS OF THIS TYPE OFTEN SHOW UP WHEN YOU ATTEMPT TO READ
  211. DISKS PRODUCED ON ANOTHER COMPUTER SYSTEM. IF THE HEAD ALLIGNMENT IF ONLY
  212. SLIGHTLY DIFFERENT FROM YOURS YOU MAY GET MAPPING ERRORS EVEN THOUGH YOU ARE
  213. USUALLY ABLE TO READ THE DATA CORRECTLY.
  214.  
  215.  
  216.             FORMATTING DISKS
  217.  
  218.  
  219.     DFOCO PERMITS FORMATTING DISKS ON ANY DRIVE SUPPORTED BY CP/M. EITHER
  220. THE ENTIRE DISK OR SPECIFIED TRACKS MAY BE FORMATTED. IT IS EVEN POSSIBLE
  221. TO WRITE DIFFERENT FORMATS ON DIFFERENT TRACKS OF THE SAME DISK. 
  222.  
  223.             STANDARD FORMAT
  224.  
  225.  
  226.     TO WRITE THE STANDARD IBM FORMAT ON A DISK TYPE
  227.  
  228.         FORMAT                (DEFAULT IS DRIVE A)
  229.         FORMAT B: 
  230.         FORMAT C:  TRACK  20-40
  231.  
  232.     THE PROGRAM WILL HALT AND THEN RESPOND WITH:
  233.  
  234.         STANDARD IBM 3740 FORMAT
  235.  
  236.         INSERT DISK TO BE FORMATTED IN DRIVE A
  237.         TYPE CARRIAGE RETURN
  238.  
  239.     NON STANDARD FORMATS MAY HAVE ALMOST ANY FORM YOU SPECIFY. THE FIRST
  240. VARIATION IS TO OFFSET THE SAME FORMAT FROM TRACK TO TRACK. THIS IS USEFUL
  241. TO COMPENSATE FOR THE TIME IT TAKES TO STEP THE HEAD FROM ONE TRACK TO
  242. ANOTHER AND IS ONE OF THE TECHNIQUES USED IN DFOCO TO INCREASE THE COPY SPEED.
  243. THE FOLLOWING IS AN EXAMPLE OF TRACK OFFSETTING:
  244.  
  245.         FORMAT B: OFFSET 5
  246.  
  247. THIS RESULTS IN THE FOLLOWING FORMAT ON THE DISK
  248.  
  249.         TRACK 0        TRACK 1        TRACK 2        ETC.
  250.  
  251. SECTOR          1          6          11
  252. SECTOR          2          7          12
  253. SECTOR          3          8          13
  254. SECTOR          4          9           14
  255.  
  256.     A SECOND FORMATTING VARIATION IS TO SKEW THE SECTORS BY A CONSTANT
  257. AMOUNT. THIS CAN BE SPECIFIED AS FOLLOWS.
  258.  
  259.         FORMAT B: SKEW 3
  260.  
  261.     THIS WILL RESULT IN A DISPLAY OF THE PHYSICAL TO LOGICAL SECTOR MAPPING
  262. AND PERMIT CHANGING THE SPECIFICATIONS BEFORE WRITING THE FORMAT ON THE DISK.
  263.  
  264.     PHYSICAL    LOGICAL        PHYSICAL    LOGICAL
  265.      SECTOR        SECTOR         SECTOR        SECTOR
  266.        1          1           14          14
  267.        2          4           15          17
  268.        3          7           16          20
  269.        4         10           17          23
  270.        5         13           18          26
  271.        6         16           19           3
  272.        7         19           20           6
  273.        8         22           21           9
  274.        9         25           22          12
  275.       10          2           23          15
  276.       11          5             24          18
  277.       12          8           25          21
  278.       13         11           26          24
  279.  
  280. TYPE RETURN TO FORMAT, SECTOR NO TO CORRECT
  281.  
  282.     TYPING A SECTOR NUMBER ALLOWS THE LOGICAL SECTOR NUMBER TO BE CHANGED.
  283. BEFORE USING A SECTOR NUMBER IT MUST BE FIRST SET TO ZERO SINCE THE PROGRAM
  284. CHECKS AND DOES NOT PERMIT TWO SECTORS WITH THE SAME NUMBER. THE SECTOR MAPPING
  285. IS REDISPLAYED FOR VERIFICATION AFTER EACH CHANGE.
  286.     THE FINAL FORMATTING OPTION IS SIMPLY TO TYPE IN THE PHYSICAL TO LOGICAL
  287. SECTOR MAPPING FOR EACH SECTOR. TO SELECT THIS OPTION TYPE:
  288.  
  289.         SPECIAL FORMAT A:
  290.  
  291.     THE PROGRAM WILL RESPOND BY DISPLAYING EACH PHYSICAL SECTOR NUMBER
  292. AND WAITING FOR THE CORRESPONDING LOGICAL SECTOR NUMBER TO BE ENTERED. AGAIN
  293. THE PROGRAM CHECKS THE SECTOR NUMBERS AS ENTERED AND WILL NOT ALLOW THE SAME
  294. SECTOR NUMBER TO BE USED TWICE.
  295.     NOTE THAT THE VARIOUS OPTIONS MAY BE COMBINED IF DESIRED.
  296.  
  297.  
  298.         SPECIAL FORMAT B: TRACK 0-1
  299.         FORMAT C: OFFSET 6 SKEW 3 TRACK 10-76
  300.  
  301.     IT IS EVEN POSSIBLE TO COPY THE FORMAT FROM ONE DISK TO ANOTHER
  302.  
  303.         COPY FORMAT A: TO B:
  304.         COPY FORMAT B: TO D:  TRACK 10
  305.  
  306.  
  307.  
  308.         FORMATTING WITH DIFFERENT SIZE SECTORS
  309.  
  310.     THE DEFAULT SECTOR SIZE GENERATED BY DFOCO IS 128 BYTES, HOWEVER THE
  311. PROGRAM WILL ALSO FORMAT TRACKS WITH 16 SECTORS OF 256 BYTES OR 8 SECTORS OF
  312. 512 BYTES. THE SECTOR SIZE IS SPECIFIED BY THE SIZE PARAMETER.
  313.  
  314.         FORMAT B: SIZE 512
  315.         SPECIAL FORMAT A:  SIZE 256
  316.         FORMAT C: OFFSET 2 SIZE 512
  317.  
  318.     CAUTION MUST BE USED WITH THE SPECIAL FORMAT OPTION SINCE DFOCO WILL
  319. ALLOW SECTOR NUMBERS GREATER THAN THE NUMBER OF SECTORS ON A TRACK. THE
  320. 1791 WILL ACTUALLY READ SECTORS NUMBERED IN THIS FASHION. FOR EXAMPLE
  321. A TRACK MAY BE FORMATTED WITH 8 512 BYTE SECTORS NUMBERED 11 THRU 18, HOWEVER
  322. DISKS WRITTEN IN THIS FASHION MAY NOT VALIDATE CORRECTLY. IT IS ALSO POSSIBLE
  323. TO FORMAT A DISK WITH DIFFERENT SIZE SECTORS ON DIFFERENT TRACKS. AGAIN, DISKS
  324. WRITTEN IN THIS FASHION MAY NOT VALIDATE CORRECTLY.
  325.     REGARDLESS OF THE SECTOR SIZE AND MAPPING CHOSEN, TRACK 0 OF THE
  326. DISK IS ALWAYS WRITTEN IN THE STANDARD IBM 3740 FORMAT. THIS IS DONE TO
  327. FACILITATE IDENTIFICATION OF THE DISK FORMAT BY A PROGRAM. READ AND WRITE
  328. OPERATIONS TO A DISK MAY ACTUALLY BE IMPOSSIBLE AND "HANG" THE CONTROLLER
  329. IF THE PROGRAM EXPECTS A FORMAT THAT IS NOT PRESENT. THIS IS ESPECIALLY
  330. TRUE IF THE INCORRECT DENSITY IS SELECTED.
  331.  
  332.  
  333.             PROGRAM TIMING
  334.  
  335.     THE FOLLOWING TIMING FIGURES ARE TYPICAL OF A 64K SYSTEM AND WILL BE
  336. SLIGHTLY HIGHER FOR SMALLER SYSTEMS. THE COPY TIMINGS VARY WITH DISK FORMATS.
  337. IF THE FORMAT IS NON STANDARD BUT THE SAME ON BOTH DISKS THE TIMES ARE THE
  338. SAME AS FOR STANDARD FORMATS BUT IF THE SECTOR FORMATS ARE DIFFERENT ON THE
  339. TWO DISKS THE COPY TIMES WILL BE INCREASED. THE FOLLOWING TIMINGS ARE FOR
  340. SINGLE DENSITY ONLY.
  341.  
  342.  
  343.         VALIDATING        17 SEC
  344.         FORMATTING        43 SEC (INCLUDES VALIDATION)
  345.  
  346.         COPY SAME FORMAT    46 SEC
  347.         COPY DIFFERENT FORMAT    90 SEC AVERAGE
  348.                        300 SEC WORST CASE
  349.  
  350.     IF THE FORMAT IS DIFFERENT ON DIFFERENT TRACKS OF A DISK IT MAY BE
  351. POSSIBLE TO INCREASE COPY SPEED WITH THE USING OPTION. SINCE A WRITE OPERATION
  352. TAKES TWICE AS LONG AS A READ OPERATION THE PROGRAM CAN OPTIMIZE THE COPY
  353. BY READING THE TRACK FORMAT FROM THE DESTINATION DISK AND USING IT TO
  354. CONTROL READING AND WRITING. A SAMPLE COPY WITH THIS OPTION IS
  355.  
  356.         COPY A: TO B: USING 3
  357.  
  358.     THIS CAUSES TRACK 3 TO BE READ FROM THE DESTINATION DISK AND USED TO
  359. CONTROL THE COPY OPERATION. THIS CAN OFTEN DOUBLE THE COPY SPEED IF THE FORMATS
  360. ARE DIFFERENT ON THE TWO DISKS.
  361.  
  362.  
  363.     * * * * * * *  DOUBLE DENSITY OPERATIONS  * * * * * * *
  364.  
  365.  
  366.     WITH A FEW EXCEPTIONS THE SAME OPERATIONS ARE AVAILABLE DOUBLE
  367. DENSITY AS ARE AVAILABLE SINGLE DENSITY. DOUBLE DENSITY MAY BE SELECTED EITHER
  368. BY ADDING A D TO THE DESIRED COMMAND OR BY PLACING THE CODE DD ANYWHERE
  369. ON THE COMMAND LINE. SOME EXAMPLES:
  370.  
  371.         DVALID B:
  372.         VALID A: SIZE 512  DD
  373.  
  374.         DCOPY A: TO B:  SIZE 256
  375.         DCOPY
  376.         COPY B: TO D: DD SIZE 512
  377.  
  378.         DFORMAT
  379.         DFORMAT B: SIZE 512
  380.         FORMAT C: SIZE 256  DD
  381.  
  382.     THE FOLLOWING EXCEPTIONS SHOULD BE NOTED. THE MAPPING FUNCTION
  383. IS NOT AVAILABLE DOUBLE DENSITY. IT IS DIFFICULT TO DO AN ACCURATE
  384. TRACK READ OF THE FORMAT ON A DOUBLE DENSITY DISK DUE TO THE FORMAT USED.
  385. EVEN WHERE NOT SPECIFICALLY PROHIBITED, IT IS RECOMMENDED THAT OPERATIONS
  386. REQUIRING TRACK READ SUCH AS COPY FORMAT OR COPY USING NOT BE ATTEMPED.
  387. PROBLEMS IN READING THE FORMAT FROM DISKS MAY CAUSE UNPREDICTABLE RESULTS.
  388.     THE SPECIAL FORMAT FUNCTION IS NOT AVAILABLE DOUBLE DENSITY.
  389. THE STANDARD FORMATS PROVIDED BY THE PROGRAM DOUBLE DENSITY ARE AS FOLLOWS:
  390.  
  391.     128 BYTE SECTORS -  
  392.  
  393.     TRACK 0 STANDARD 3740 FORMAT SINGLE DENSITY. TRACKS 1-76 HAVE 51
  394. SECTORS WRITTEN IN A 6 TO 1 INTERLACE PATTERN FOR USE WITH CP/M VERS 1.4.
  395. THE SECTOR ORDER IS AS FILLOWS:
  396.  
  397.     1,18,35,10,27,44,2,19,36,11,28,45,3,20,37,12,29,46,4,21,38,13,30,47,5,
  398.     22,39,14,31,48,6,23,40,15,32,49,7,24,41,16,33,50,8,25,42,17,34,51,9,26,43
  399.  
  400.     ONE ADDITIONAL FEATURE IS PROVIDED FOR USE WITH CP/M. THE LAST BYTE
  401. OF DATA ON TRACK ZERO SECTOR ONE IS WRITTEN WITH A SPECIAL FLAG BYTE TO
  402. INDICATE THE FORMAT OF THE REST OF THE DISK. THE CODES ARE
  403.  
  404.         E5    SINGLE DENSITY  (E5 IS THE STANDARD FILL CHAR)
  405.         DD    DOUBLE DENSITY 51 SECTORS PER TRACK
  406.         4D    "QUAD" DOUBLE DENSITY DOUBLE SIDED DISK
  407.     TO INSERT THE "QUAD" CODE INTO SECTOR ONE OF A 128 BYTE SECTOR DISK 
  408. THE FOLLOWING EXAMPLES MAY BE USED:
  409.  
  410.         DFORMAT C:  QUAD
  411.         DFORMAT A:  QUAD
  412.  
  413.     256 BYTE SECTORS -
  414.  
  415.     DOUBLE DENSITY DISKS FORMATTED WITH 256 BYTE SECTORS ARE IN STANDARD
  416. IBM FORMAT. 26 SECTORS OF 256 BYTES. TRACK ZERO IS SINGLE DENSITY 3740 FORMAT.
  417. THERE IS NO FLAG BYTE IN SECTOR 1 OF TRACK ZERO
  418.  
  419.     512 BYTE SECTORS -
  420.  
  421.     DOUBLE DENSITY DISKS FORMATTED WITH 512 BYTE SECTORS HAVE 16 SECTORS
  422. PER TRACK. TRACK ZERO IS STANDARD 3740 FORMAT. NO FLAG BYTE ON TRACK ZERO
  423.  
  424.     THE OFFSET AND SKEW FUNCTIONS WORK AS BEFORE ALTHOUGH THE EFFECT OF
  425. FURTHER SKEWING THE ALREADY INTERLACED 128 BYTE PATTERN MAY BE CONFUSING.
  426.  
  427.     COPYING DISKS DOUBLE DENSITY IS ALMOST EXACTLY THE SAME AS COPYING
  428. THEM SINGLE DENSITY. TWO SIMPLE RULES MUST BE OBSERVED.
  429.  
  430.     1. BOTH DISKS MUST BE OF THE SAME DENSITY.
  431.     2. BOTH DISKS MUST HAVE THE SAME SECTOR SIZE.
  432.  
  433. A VIOLATION OF THES RULES MAY CAUSE THE CONTROLLER TO "HANG" REQUIRING THE
  434. COMPUTER TO BE RESET TO RECOVER.
  435.  
  436.     IT WILL BE NOTED THAT COPY OPERATIONS ON DOUBLE DENSITY DISKS HAVING
  437. 51 SECTORS IS MUCH SLOWER THAN OTHER COPY OPERATIONS. THIS IS BECAUSE THE
  438. SECTORS ON THESE DISKS ARE WRITTEN SO CLOSE TOGETHER THAT THE 1791 CONTROLLER
  439. DOES NOT HAVE TIME TO WRITE CONSECUTIVE SECTORS ALTHOUGH IT IS ABLE TO
  440. READ CONSECUTIVE SECTORS IN THIS FORMAT. COPY OPERATIONS ON DISKS IN THIS
  441. FORMAT READ AND WRITE EVERY OTHER SECTOR THUS REQUIRING TWICE AS MANY DISK
  442. REVOLUTIONS AND TWICE THE TIME.
  443.     DOUBLE SIDED OR "QUAD" DISKS ARE NOT AUTOMATICALLY COPIED BY DFOCO
  444. IN A SINGLE OPERATION BUT REQUIRE TWO COPY OPERATIONS. TO COPY A "QUAD"
  445. DISK YOU MIGHT TYPE:
  446.  
  447.         DCOPY A: TO C:        (COPY THE FRONT SIDE)
  448.         DCOPY B: TO D:        (COPY THE BACK SIDE)
  449.  
  450.     A SINGLE "QUAD" COPY OPERATION WILL BE ADDED TO DFOCO LATER.
  451.  
  452. Known bugs:
  453. DFOCO WON'T COPY ON A SINGLE DISK SYSTEM. IT ALSO DOESN'T
  454. COPY TRACK ZERO CORRECTLY IF THE DISK IS FORMATTED IN OTHER
  455. THAN 128 BYTE SECTORS. MANY SECTIONS WERE JUST COPIED FROM THE
  456. OLD FOCO AND HAVEN'T EVEN BEEN TRIED NEVER MIND DEBUGGED.
  457. I JUST FIXED THE PARTS I ACTUALLY USE MYSELF NOW AND
  458. DISTRIBUTED IT TO OTHERS WHO MIGHT LIKE TO USE THOSE FEATURES.
  459. STRAIGHT FORMAT COPY AND VALIDATE WORK FOR THREE SECTOR SIZES
  460. WITH THE EXCEPTIONS NOTED ABOVE.
  461.