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 >
Wrap
Text File
|
1984-04-29
|
20KB
|
461 lines
DFOCO DOCUMENTATION
COPYRIGHT 1979
BY S. J. SINGER
DFOCO IS A FAST FORMAT AND COPY UTILITY FOR CP/M AND THE DELTA
FLOPPY DISK CONTROLLER. IT PERMITS FORMATTING DISKS IN BOTH THE STANDARD
IBM FORMAT AND A VARIETY OF NON STANDARD FORMATS AS WELL AS COPYING
ENTIRE DISKS OR ONLY SPECIFIED TRACKS FROM ONE DISK TO ANOTHER.
IN ADDITION DFOCO PERMITS RELATIVELY EFFICIENT SINGLE DISK DRIVE COPIES
AND WILL COPY FORMATS AND DISPLAY THE FORMAT ON ANY SPECIFIED TRACK OF
ANY DISK. DFOCO SUPPORTS THE USE OF 4 DISK DRIVES.
DFOCO MAY BE USED BOTH SINGLE DENSITY (FM) AND DOUBLE DENSITY (MFM).
THE OPERATIONS PERFORMED ARE IN GENERAL THE SAME BUT MAY BE SLIGHTLY
MORE LIMITED IN THE CASE OF DOUBLE DENSITY.
DFOCO WILL RUN ON ANY 8080 OR Z-80 BASED SYSTEM USING THE DELTA
DISK CONTROLLER. THE PROGRAM USES CP/M FOR ALL CONSOLE INPUT-OUTPUT,
HOWEVER ALL DISK OPERATIONS ARE DIRECTLY EXECUTED BY DFOCO. THIS IS
NECESSARY BECAUSE DFOCO USES NON CP/M COMMANDS LIKE DISK TRACK READ,
AND DFOCO KEEPS CONTROL OF ALL DISK ERRORS TO FACILITATE ACCOUNTING
AND ERROR RECOVERY. IT SHOULD BE POSSIBLE HOWEVER, TO MODIFY DFOCO
TO RUN WITH ANY WESTERN DIGITAL 1771 OR 1791 BASED DISK CONTROLER.
THERE ARE TWO DIFFERENT VERSIONS OF DFOCO, ONE FOR STANDARD DISK DRIVES
AND THE OTHER FOR FAST SEEK PERSCI DRIVES. THE SINGLE DENSITY OPERATIONS
WILL BE DESCRIBED IN DETAIL FIRST.
* * * * * * * SINGLE DENSITY OPERATIONS * * * * * * *
VALIDATING DISKS
IT IS OFTEN USEFUL TO BE ABLE TO TELL WHETHER OR NOT THE RECORDING
SURFACE OF A DISK IS COMPLETELY INTACT BEFORE USING THE DISK. THIS IS
ESPECIALLY TRUE SINCE WHILE CP/M ALWAYS CHECKS FOR READ ERRORS THERE IS
NO CHECK DONE FOR WRITE ERRORS. YOU WILL NOT KNOW YOU HAVE A BAD COPY
OF A FILE UNTIL THE FIRST TIME YOU TRY TO READ IT AGAIN WHICH MAY BE DAYS
OR EVEN MONTHS LATER.
VALIDATING A DISK CONSISTS SIMPLY OF READING EACH SECTOR ON THE
DISK AND VERIFYING THAT THE CRC IS CORRECT. THIS SIMPLE PROCESS NOT ONLY
DETECTS PHYSICAL DAMAGE TO THE MEDIA SUCH AS SCRATCHES BUT ALSO FORMATTING
ERRORS SOMETIMES CAUSED BY NOISE TRANSIENTS, ERRORS WHICH WILL DISAPPEAR
UPON REFORMATTING THE DISK. THE FOLLOWING ARE EXAMPLES OF VALIDATION COMMANDS.
VALID (DEFAULT IS DRIVE A:)
VALID C:
VALID D: RETRY 20
THE PROGRAM WILL READ THE ENTIRE DISK AND REPORT ANY READ ERRORS.
IF A CRC ERROR OCCURS THE SECTOR WILL BE REREAD A MAXIMUM OF EITHER
THE NUMBER OF RETRYS SPECIFIED OR 10 TIMES IF NO RETRY COUNT IS ENTERED.
BOTH THE TOTAL NUMBER OF PERMANENT OR HARD ERROR AND RETRYS ARE REPORTED
AT THE END OF THE VALIDATION PROCESS.
SUCCESSFUL VALIDATION DRIVE B:
OR
PERMANENT READ ERROR TRACK 17 SECTOR 5 DRIVE B
PERMANENT READ ERROR TRACK 42 SECTOR 19 DRIVE B
THERE WERE 27 RETRYS AND 2 HARD ERRORS
COPYING DISKS
ALL OR PART OF A DISK MAY BE COPIED BETWEEN ANY SPECIFIED DRIVES.
THE FOLLOWING ARE EXAMPLES OF TYPICAL COPY COMMANDS:
COPY (DEFAULT IS A: TO B:)
COPY A: TO C:
COPY D: TO B: RETRY 20
COPY A: TO C: TRACK 0-1
COPY B: TO D: TRACK 3 - 20
COPY A: TO A: (SINGLE DISK TRANSFER)
DFOCO WILL RESPOND WITH AND ACKNOWLEDGMENT AND INSTRUCTIONS. FOR EXAMPLE:
COPYING DISK A TO DISK B
TYPE RETURN TO START
THE PROGRAM WILL HALT AND WAIT FOR DISKS TO BE CHANGED ETC. AND
WILL BEGIN THE ACTUAL COPY OPERATION AFTER RETURN IS TYPED. IF YOU HAVE
MADE AN ERROR AND WISH TO REENTER THE COMMAND TYPE CONTROL C. THE COPY
OPERATION IS OPTIMIZED FOR SPEED. THE PROGRAM WILL DETERMINE THE MAXIMUM
AMOUNT OF MEMORY AVAILABLE AND READ WHOLE TRACKS FROM THE SOURCE DISK
UNTIL THE MEMORY IS FILLED. THEN THE ENTIRE MEMORY BUFFER IS WRITTEN
ONTO THE DESTINATION DISK. ALL TRANSFERS ARE VERIFIED. AS EACH TRACK IS
WRITTEN ONTO THE DESTINATION DISK IT IS READ BACK AND COMPARED BYTE BY
BYTE WITH THE CONTENTS OF THE MEMORY BUFFER. ANY ERRORS ARE REPORTED.
IF THE SOURCE AND DESTINATION ARE THE SAME DFOCO WILL FIRST
RESPOND WITH A REQUEST THAT YOU VERIFY THAT YOU REALLY WANT TO PERFORM
A SINGLE DRIVE COPY. IF THE REQUEST IS ACKNOWLEDGED THE PROGRAM
WILL INDICATE WHICH DISK TO MOUNT IN THE SPECIFIED DRIVE.
AS WITH TWO DRIVE COPIES THE PROGRAM WILL FILL THE ENTIRE MEMORY BUFFER
WITH DATA. THE PROGRAM WILL THEN HALT AND NOTIFY YOU TO CHANGE DISKS.
THE NUMBER OF DISK CHANGES REQUIRED WILL OF COURSE DEPEND UPON THE
AMOUNT OF MEMORY AVAILABLE. WITH A 48K SYSTEM 8 SWAPS ARE REQUIRED, WITH
A 64K SYSTEM ONLY 6 ARE NEEDED.
COPYING DISKS WITH DIFFERENT SIZE SECTORS
DFOCO WILL COPY DISKS WITH SECTORS OF 128, 256 OR 512 BYTES. THE
PRIMARY LIMITATION OF THE PROGRAM IS THAT BOTH DISKS MUST HAVE THE SAME
SIZE SECTORS. THE SIZE SHOULD BE SPECIFIED IN THE COPY COMMAND.
COPY A: TO C: SIZE 256
COPY B: TO A: SIZE 512
COPY C: TO D: SIZE 128
SPECIFYING A SECTOR SIZE OF OTHER THAN 128, 256 OR 512 BYTES WILL
GENERATE AN ERROR MESSAGE.
ERROR HANDLING DURING COPY OPERATIONS
ERROR HANDLING AND RECOVERY IS AN EXTREMELY INPORTANT PART OF ANY
DISK FILE MANAGEMENT SYSTEM. DFOCO IS DESIGNED TO PERMIT THE MAXIMUM RECOVERY
OF DATA FROM DAMAGED OR "CRASHED" DISKS. TWO TYPES OF ERRORS OCCUR DURING
COPY OPERATIONS, ERRORS IN READING FROM THE SOURCE DISK AND ERRORS WRITING
TO THE DESTINATION DISK. READ ERRORS ARE BY FAR THE MOST COMMON.
IF A READ ERROR OCCURS DFOCO WILL ATTEMPT TO REREAD THE SECTOR 10
(OR RETRY) TIMES. IF THE READ ERROR PERSISTS ONE OF TWO ACTIONS MAY BE CHOSEN.
THE DEFAULT IS TO FILL THE SECTOR WITH E5H AND WRITE IT ON THE DESTINATION
DISK. THE OTHER CHOICE IS SIMPLY TO ACCEPT THE DATA AS READ IN AND WRITE IT ON
THE DESTINATION DISK. THIS IS THE NOFILL OPTION. NOFILL PERMITS THE MAXIMUM
DATA RECOVERY BUT REQUIRES CAREFUL INSPECTION OF THE SECTOR CAUSING THE ERROR
SINCE THE ERRORS MAY NOT BE OBVIOUS.
WRITE ERRORS ARE HANDLED IN A SOMEWHAT DIFFERENT FASHION. SINCE THERE
IS USUALLY NO VALUABLE DATA ON THE DESTINATION DISK, THE NORMAL CHOICE IS TO
NOT PERMIT COPY OPERATIONS IF WRITE ERROR OCCUR. DFOCO WILL ATTEMPT TO WRITE
A SECTOR 10 (OR RETRY) TIMES. IF THE ERROR PERSISTS, DFOCO WILL STOP THE COPY
OPERATION AND VALIDATE THE DESTINATION DISK THUS REPORTING ALL BAD SECTORS.
IT IS POSSIBLE TO COPY IN THE PRESENCE OF WRITE ERRORS BY TURNING OFF THE
WRITE VERIFICATION, THE NOVERIFY OPTION. HOWEVER SINCE DISKS HAVE BECOME
RELATIVELY INEXPENSIVE THIS OPTION IS PROBABLY UNWISE EXCEPT IN VERY SPECIAL
CASES. SOME EXAMPLES ARE AS FOLLOWS:
COPY B: TO C: NOFILL RETRY 25
COPY A: TO B: TRACK 0-5 NOVERIFY
COPY D: TO A: NOVERIFY NOFILL
DISK FORMATTING AND MAPPING
THE STANDARD IBM FORMAT FOR 8 INCH FLOPPY DISKS IS GIVEN IN THE
WESTERN DIGITAL DOCUMENTATION FOR THE 1791 DISK CONROLLER CHIP AND IN VARIOUS
IBM DOCUMENTS. THE USUAL FORMAT IS "SOFT SECTORED". THIS MEANS ESSENTIALLY
THAT THE TRACK AND SECTOR NUMBERS ARE ACTUALLY WRITTEN ON THE DISK AS DATA
RATHER THAN BEING DETERMINED BY THE PRESENCE OF PHYSICAL INDICATORS SUCH AS
HOLES IN THE DISK. FORMATTING A DISK CONSISTS OF WRITING BOTH THE TRACK
AND SECTOR NUMBERS AS WELL AS CLOCKING INFORMATION FOR THE CONTROLER ON THE
DISK. IT IS IMPORTANT TO REMEMBER THAT A "BLANK" DISK IS BY NO MEANS REALLY
BLANK. RATHER IT CONTAINS A GREAT DEAL OF FORMATTING INFORMATION WITHOUT
WHICH THE CONTROLER IS TOTALLY UNABLE TO READ IT.
BECAUSE OF THIS "SOFT SECTORING" IT IS SOMETIMES POSSIBLE AND OFTEN
USEFUL TO CHANGE THE FORMAT TO ALLOW INCREASED AMOUNTS OF DATA TO BE WRITTEN
ON THE DISK OR HIGHER SPEED OF OPERATION. THERE ARE TWO POSSIBLE CHANGES
THAT ARE USEFUL, CHANGING THE SIZE OF THE SECTORS OR CHANGING THEIR ORDERING.
THIS VERSION OF DFOCO SUPPORTS THREE DIFFERENT SECTOR SIZES USING
THE "IBM" SOFT SECTOR FORMAT. SECTORS MAY BE FORMATED WITH THE NORMAL
26 SECTORS OF 128 BYTES OR WITH 16 SECTORS OF 256 BYTES OR 8 SECTORS OF
512 BYTES EACH. USING 256 OR 512 BYTE SECTORS ALLOWS APPROXIMATELY
20% MORE DATA TO BE WRITTEN ON A SINGLE DISK, HOWEVER THERE ARE AT PRESENT
FEW PROGRAMS WHICH WILL SUPPORT THE USE OF LARGER SECTORS.
DFOCO ALSO SUPPORTS A WIDE VARIETY OF SECTOR ORDERINGS.
THE DESIGN OF CP/M DATES FROM A TIME WHEN DISK CONTROLLERS WERE
QUITE SLOW AND COMPUTER MEMORIES SMALL AND VERY COSTLY. SMALL MEMORIES
DICTATED SMALL SECTOR SIZES ON DISKS SINCE THE LARGER THE SECTORS THE LARGER
THE MEMORY BUFFERS REQUIRED. SLOW CONTROLERS MEANT THAT HAVING READ A SECTOR
FROM THE DISK IT WAS NECESSARY TO WAIT BEFORE ANOTHER SECTOR COULD BE READ.
DELAYS OF 5 SECTOR TIMES (ABOUT 25 MSEC) WERE COMMON. THUS CP/M IS SET UP
TO READ EVERY 6TH SECTOR AROUND THE DISK. THIS STRATEGY UNFORTUNATELY IS
FAR FROM OPTIMAL FOR PRESENT DAY CONTROLLERS WHICH CAN READ CONSECUTIVE
SECTORS FROM A DISK WITH EASE. NOTE THAT DFOCO WHICH READS AN ENTIRE TRACK
IN A SINGLE DISK REVOLUTION IS OVER 5 TIMES AS FAST AS PIP. UNFORTUNATELY
CP/M STANDARD SYSTEM PROGRAMS SUCH AS PIP AND THE ASSEMBLER CAN ONLY BE
SPEEDED UP A SMALL AMOUNT, ABOUT 20 PER CENT, BY CHANGING DISK FORMATS ALONE.
HOWEVER, NEW PROGRAMS WRITTEN TO TAKE ADVANTAGE OF FASTER CONTROLERS CAN
BE SPEEDED UP A GREAT DEAL MORE.
MAPPING DISK FORMATS
WHEN EXPERIMENTING WITH NONSTANDARD FORMATS IT IS OFTEN VERY USEFUL
TO BE ABLE TO READ AND DISPLAY THE ACTUAL DISK FORMAT. YOU CAN'T NECECESSARILY
TELL WHATS ON A DISK BY LOOKING AT THE LABEL. THE MAP COMMAND READS THE FORMAT
FROM A SINGLE TRACK ON A SPECIFIED DISK AND DISPLAYS IT. THERE ARE 26 SECTORS
PER TRACK IN THE STANDARD IBM FORMAT WHICH ARE NUMBERED IN SEQUENTIAL ORDER.
TO DISPLAY THE SECTOR ORDERING TYPE:
MAP (DEFAULT IS TRACK 0 DRIVE A:)
MAP C: TRACK 76
THE PROGRAM WILL READ THE SPECIFIED TRACK AND DISPLAY THE PHYSICAL TO
LOGICAL SECTOR MAPPING. THE PHYSICAL SECTORS STARTING FROM THE SINGLE INDEX
HOLE IN THE DISK ARE SIMPLY NUMBERED 1 THRU 26. THE CORRESPONDING LOGICAL
SECTORS ACTUALLY WRITTEN ON THE DISK ARE DISPLAYED BESIDE THE PHYSICAL SECTOR
NUMBER. FOR DISKS FORMATTED WITH LESS THAN 26 SECTORS, THE UNUSED LOGICAL
SECTOR NUMBERS DISPLAY AS A '-'.
OCCASIONALLY DFOCO WILL DISPLAY OBVIOUSLY INCORRECT MAPPING DATA, FOR
EXAMPLE TRACK 404 SECTOR NUMBER 201. THIS MEANS THE FORMAT ON THE DISK IS
INCORRECT. THE DISK CONTROLLER WILL OFTEN READ THESE DISKS CORRECTLY
BUT IT IS USUALLY A GOOD IDEA TO COPY THE DATA TO A CORRECTLY FORMATTED DISK.
FORMATTING PROBLEMS OF THIS TYPE OFTEN SHOW UP WHEN YOU ATTEMPT TO READ
DISKS PRODUCED ON ANOTHER COMPUTER SYSTEM. IF THE HEAD ALLIGNMENT IF ONLY
SLIGHTLY DIFFERENT FROM YOURS YOU MAY GET MAPPING ERRORS EVEN THOUGH YOU ARE
USUALLY ABLE TO READ THE DATA CORRECTLY.
FORMATTING DISKS
DFOCO PERMITS FORMATTING DISKS ON ANY DRIVE SUPPORTED BY CP/M. EITHER
THE ENTIRE DISK OR SPECIFIED TRACKS MAY BE FORMATTED. IT IS EVEN POSSIBLE
TO WRITE DIFFERENT FORMATS ON DIFFERENT TRACKS OF THE SAME DISK.
STANDARD FORMAT
TO WRITE THE STANDARD IBM FORMAT ON A DISK TYPE
FORMAT (DEFAULT IS DRIVE A)
FORMAT B:
FORMAT C: TRACK 20-40
THE PROGRAM WILL HALT AND THEN RESPOND WITH:
STANDARD IBM 3740 FORMAT
INSERT DISK TO BE FORMATTED IN DRIVE A
TYPE CARRIAGE RETURN
NON STANDARD FORMATS MAY HAVE ALMOST ANY FORM YOU SPECIFY. THE FIRST
VARIATION IS TO OFFSET THE SAME FORMAT FROM TRACK TO TRACK. THIS IS USEFUL
TO COMPENSATE FOR THE TIME IT TAKES TO STEP THE HEAD FROM ONE TRACK TO
ANOTHER AND IS ONE OF THE TECHNIQUES USED IN DFOCO TO INCREASE THE COPY SPEED.
THE FOLLOWING IS AN EXAMPLE OF TRACK OFFSETTING:
FORMAT B: OFFSET 5
THIS RESULTS IN THE FOLLOWING FORMAT ON THE DISK
TRACK 0 TRACK 1 TRACK 2 ETC.
SECTOR 1 6 11
SECTOR 2 7 12
SECTOR 3 8 13
SECTOR 4 9 14
A SECOND FORMATTING VARIATION IS TO SKEW THE SECTORS BY A CONSTANT
AMOUNT. THIS CAN BE SPECIFIED AS FOLLOWS.
FORMAT B: SKEW 3
THIS WILL RESULT IN A DISPLAY OF THE PHYSICAL TO LOGICAL SECTOR MAPPING
AND PERMIT CHANGING THE SPECIFICATIONS BEFORE WRITING THE FORMAT ON THE DISK.
PHYSICAL LOGICAL PHYSICAL LOGICAL
SECTOR SECTOR SECTOR SECTOR
1 1 14 14
2 4 15 17
3 7 16 20
4 10 17 23
5 13 18 26
6 16 19 3
7 19 20 6
8 22 21 9
9 25 22 12
10 2 23 15
11 5 24 18
12 8 25 21
13 11 26 24
TYPE RETURN TO FORMAT, SECTOR NO TO CORRECT
TYPING A SECTOR NUMBER ALLOWS THE LOGICAL SECTOR NUMBER TO BE CHANGED.
BEFORE USING A SECTOR NUMBER IT MUST BE FIRST SET TO ZERO SINCE THE PROGRAM
CHECKS AND DOES NOT PERMIT TWO SECTORS WITH THE SAME NUMBER. THE SECTOR MAPPING
IS REDISPLAYED FOR VERIFICATION AFTER EACH CHANGE.
THE FINAL FORMATTING OPTION IS SIMPLY TO TYPE IN THE PHYSICAL TO LOGICAL
SECTOR MAPPING FOR EACH SECTOR. TO SELECT THIS OPTION TYPE:
SPECIAL FORMAT A:
THE PROGRAM WILL RESPOND BY DISPLAYING EACH PHYSICAL SECTOR NUMBER
AND WAITING FOR THE CORRESPONDING LOGICAL SECTOR NUMBER TO BE ENTERED. AGAIN
THE PROGRAM CHECKS THE SECTOR NUMBERS AS ENTERED AND WILL NOT ALLOW THE SAME
SECTOR NUMBER TO BE USED TWICE.
NOTE THAT THE VARIOUS OPTIONS MAY BE COMBINED IF DESIRED.
SPECIAL FORMAT B: TRACK 0-1
FORMAT C: OFFSET 6 SKEW 3 TRACK 10-76
IT IS EVEN POSSIBLE TO COPY THE FORMAT FROM ONE DISK TO ANOTHER
COPY FORMAT A: TO B:
COPY FORMAT B: TO D: TRACK 10
FORMATTING WITH DIFFERENT SIZE SECTORS
THE DEFAULT SECTOR SIZE GENERATED BY DFOCO IS 128 BYTES, HOWEVER THE
PROGRAM WILL ALSO FORMAT TRACKS WITH 16 SECTORS OF 256 BYTES OR 8 SECTORS OF
512 BYTES. THE SECTOR SIZE IS SPECIFIED BY THE SIZE PARAMETER.
FORMAT B: SIZE 512
SPECIAL FORMAT A: SIZE 256
FORMAT C: OFFSET 2 SIZE 512
CAUTION MUST BE USED WITH THE SPECIAL FORMAT OPTION SINCE DFOCO WILL
ALLOW SECTOR NUMBERS GREATER THAN THE NUMBER OF SECTORS ON A TRACK. THE
1791 WILL ACTUALLY READ SECTORS NUMBERED IN THIS FASHION. FOR EXAMPLE
A TRACK MAY BE FORMATTED WITH 8 512 BYTE SECTORS NUMBERED 11 THRU 18, HOWEVER
DISKS WRITTEN IN THIS FASHION MAY NOT VALIDATE CORRECTLY. IT IS ALSO POSSIBLE
TO FORMAT A DISK WITH DIFFERENT SIZE SECTORS ON DIFFERENT TRACKS. AGAIN, DISKS
WRITTEN IN THIS FASHION MAY NOT VALIDATE CORRECTLY.
REGARDLESS OF THE SECTOR SIZE AND MAPPING CHOSEN, TRACK 0 OF THE
DISK IS ALWAYS WRITTEN IN THE STANDARD IBM 3740 FORMAT. THIS IS DONE TO
FACILITATE IDENTIFICATION OF THE DISK FORMAT BY A PROGRAM. READ AND WRITE
OPERATIONS TO A DISK MAY ACTUALLY BE IMPOSSIBLE AND "HANG" THE CONTROLLER
IF THE PROGRAM EXPECTS A FORMAT THAT IS NOT PRESENT. THIS IS ESPECIALLY
TRUE IF THE INCORRECT DENSITY IS SELECTED.
PROGRAM TIMING
THE FOLLOWING TIMING FIGURES ARE TYPICAL OF A 64K SYSTEM AND WILL BE
SLIGHTLY HIGHER FOR SMALLER SYSTEMS. THE COPY TIMINGS VARY WITH DISK FORMATS.
IF THE FORMAT IS NON STANDARD BUT THE SAME ON BOTH DISKS THE TIMES ARE THE
SAME AS FOR STANDARD FORMATS BUT IF THE SECTOR FORMATS ARE DIFFERENT ON THE
TWO DISKS THE COPY TIMES WILL BE INCREASED. THE FOLLOWING TIMINGS ARE FOR
SINGLE DENSITY ONLY.
VALIDATING 17 SEC
FORMATTING 43 SEC (INCLUDES VALIDATION)
COPY SAME FORMAT 46 SEC
COPY DIFFERENT FORMAT 90 SEC AVERAGE
300 SEC WORST CASE
IF THE FORMAT IS DIFFERENT ON DIFFERENT TRACKS OF A DISK IT MAY BE
POSSIBLE TO INCREASE COPY SPEED WITH THE USING OPTION. SINCE A WRITE OPERATION
TAKES TWICE AS LONG AS A READ OPERATION THE PROGRAM CAN OPTIMIZE THE COPY
BY READING THE TRACK FORMAT FROM THE DESTINATION DISK AND USING IT TO
CONTROL READING AND WRITING. A SAMPLE COPY WITH THIS OPTION IS
COPY A: TO B: USING 3
THIS CAUSES TRACK 3 TO BE READ FROM THE DESTINATION DISK AND USED TO
CONTROL THE COPY OPERATION. THIS CAN OFTEN DOUBLE THE COPY SPEED IF THE FORMATS
ARE DIFFERENT ON THE TWO DISKS.
* * * * * * * DOUBLE DENSITY OPERATIONS * * * * * * *
WITH A FEW EXCEPTIONS THE SAME OPERATIONS ARE AVAILABLE DOUBLE
DENSITY AS ARE AVAILABLE SINGLE DENSITY. DOUBLE DENSITY MAY BE SELECTED EITHER
BY ADDING A D TO THE DESIRED COMMAND OR BY PLACING THE CODE DD ANYWHERE
ON THE COMMAND LINE. SOME EXAMPLES:
DVALID B:
VALID A: SIZE 512 DD
DCOPY A: TO B: SIZE 256
DCOPY
COPY B: TO D: DD SIZE 512
DFORMAT
DFORMAT B: SIZE 512
FORMAT C: SIZE 256 DD
THE FOLLOWING EXCEPTIONS SHOULD BE NOTED. THE MAPPING FUNCTION
IS NOT AVAILABLE DOUBLE DENSITY. IT IS DIFFICULT TO DO AN ACCURATE
TRACK READ OF THE FORMAT ON A DOUBLE DENSITY DISK DUE TO THE FORMAT USED.
EVEN WHERE NOT SPECIFICALLY PROHIBITED, IT IS RECOMMENDED THAT OPERATIONS
REQUIRING TRACK READ SUCH AS COPY FORMAT OR COPY USING NOT BE ATTEMPED.
PROBLEMS IN READING THE FORMAT FROM DISKS MAY CAUSE UNPREDICTABLE RESULTS.
THE SPECIAL FORMAT FUNCTION IS NOT AVAILABLE DOUBLE DENSITY.
THE STANDARD FORMATS PROVIDED BY THE PROGRAM DOUBLE DENSITY ARE AS FOLLOWS:
128 BYTE SECTORS -
TRACK 0 STANDARD 3740 FORMAT SINGLE DENSITY. TRACKS 1-76 HAVE 51
SECTORS WRITTEN IN A 6 TO 1 INTERLACE PATTERN FOR USE WITH CP/M VERS 1.4.
THE SECTOR ORDER IS AS FILLOWS:
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,
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
ONE ADDITIONAL FEATURE IS PROVIDED FOR USE WITH CP/M. THE LAST BYTE
OF DATA ON TRACK ZERO SECTOR ONE IS WRITTEN WITH A SPECIAL FLAG BYTE TO
INDICATE THE FORMAT OF THE REST OF THE DISK. THE CODES ARE
E5 SINGLE DENSITY (E5 IS THE STANDARD FILL CHAR)
DD DOUBLE DENSITY 51 SECTORS PER TRACK
4D "QUAD" DOUBLE DENSITY DOUBLE SIDED DISK
TO INSERT THE "QUAD" CODE INTO SECTOR ONE OF A 128 BYTE SECTOR DISK
THE FOLLOWING EXAMPLES MAY BE USED:
DFORMAT C: QUAD
DFORMAT A: QUAD
256 BYTE SECTORS -
DOUBLE DENSITY DISKS FORMATTED WITH 256 BYTE SECTORS ARE IN STANDARD
IBM FORMAT. 26 SECTORS OF 256 BYTES. TRACK ZERO IS SINGLE DENSITY 3740 FORMAT.
THERE IS NO FLAG BYTE IN SECTOR 1 OF TRACK ZERO
512 BYTE SECTORS -
DOUBLE DENSITY DISKS FORMATTED WITH 512 BYTE SECTORS HAVE 16 SECTORS
PER TRACK. TRACK ZERO IS STANDARD 3740 FORMAT. NO FLAG BYTE ON TRACK ZERO
THE OFFSET AND SKEW FUNCTIONS WORK AS BEFORE ALTHOUGH THE EFFECT OF
FURTHER SKEWING THE ALREADY INTERLACED 128 BYTE PATTERN MAY BE CONFUSING.
COPYING DISKS DOUBLE DENSITY IS ALMOST EXACTLY THE SAME AS COPYING
THEM SINGLE DENSITY. TWO SIMPLE RULES MUST BE OBSERVED.
1. BOTH DISKS MUST BE OF THE SAME DENSITY.
2. BOTH DISKS MUST HAVE THE SAME SECTOR SIZE.
A VIOLATION OF THES RULES MAY CAUSE THE CONTROLLER TO "HANG" REQUIRING THE
COMPUTER TO BE RESET TO RECOVER.
IT WILL BE NOTED THAT COPY OPERATIONS ON DOUBLE DENSITY DISKS HAVING
51 SECTORS IS MUCH SLOWER THAN OTHER COPY OPERATIONS. THIS IS BECAUSE THE
SECTORS ON THESE DISKS ARE WRITTEN SO CLOSE TOGETHER THAT THE 1791 CONTROLLER
DOES NOT HAVE TIME TO WRITE CONSECUTIVE SECTORS ALTHOUGH IT IS ABLE TO
READ CONSECUTIVE SECTORS IN THIS FORMAT. COPY OPERATIONS ON DISKS IN THIS
FORMAT READ AND WRITE EVERY OTHER SECTOR THUS REQUIRING TWICE AS MANY DISK
REVOLUTIONS AND TWICE THE TIME.
DOUBLE SIDED OR "QUAD" DISKS ARE NOT AUTOMATICALLY COPIED BY DFOCO
IN A SINGLE OPERATION BUT REQUIRE TWO COPY OPERATIONS. TO COPY A "QUAD"
DISK YOU MIGHT TYPE:
DCOPY A: TO C: (COPY THE FRONT SIDE)
DCOPY B: TO D: (COPY THE BACK SIDE)
A SINGLE "QUAD" COPY OPERATION WILL BE ADDED TO DFOCO LATER.
Known bugs:
DFOCO WON'T COPY ON A SINGLE DISK SYSTEM. IT ALSO DOESN'T
COPY TRACK ZERO CORRECTLY IF THE DISK IS FORMATTED IN OTHER
THAN 128 BYTE SECTORS. MANY SECTIONS WERE JUST COPIED FROM THE
OLD FOCO AND HAVEN'T EVEN BEEN TRIED NEVER MIND DEBUGGED.
I JUST FIXED THE PARTS I ACTUALLY USE MYSELF NOW AND
DISTRIBUTED IT TO OTHERS WHO MIGHT LIKE TO USE THOSE FEATURES.
STRAIGHT FORMAT COPY AND VALIDATE WORK FOR THREE SECTOR SIZES
WITH THE EXCEPTIONS NOTED ABOVE.