******* BBSCAN USERS GUIDE ******* 25/11/82 WRITTEN BY GEOFF HAYNES 1. PURPOSE THIS PROGRAM WAS WRITTEN TO VERIFY THE INTEGRITY OF 8" SINGLE DENSITY DISKETTES USING IBM SOFT SECTOR FORMAT. THIS VERSION IS SPECIFICALLY WRITTEN FOR THE 'BIGBOARD' MICROPROCESSOR BOARD. THE PROGRAM CAN BE USED BOTH FOR VERIFYING BLANK DISKS PRIOR TO USE, AND TO CHECK THE STATUS OF DISKS CONTAINING USER DATA, SINCE IT PERFORMS NO WRITING. 2. OPERATION FIRST, BBSCAN READS THE DIRECTORY SECTORS ON THE DISK BEING SCANNED, SO THAT IF ERRORS ARE DETECTED IN THE USER AREA, THEY WILL BE LINKED TO THE CORRESPONDING FILE NAME IF THAT SECTOR HAS BEEN ALLOCATED, AND THAT FILENAME WILL BE INCLUDED IN THE ERROR REPORT FOR THE FAILING SECTOR. IT THEN COMMENCES READING ALL SECTORS ON THE DISK. IF AN ERROR IS DETECTED, THE READ OPERATION FOR THAT SECTOR IS RETRIED UP TO 9 MORE TIMES. IF THE SECTOR IS READ SUCCESSFULLY DURING RETRY, THE ERROR IS CONSIDERED TEMPORARY AND IS SO INDICATED IN THE ERROR REPORT. OTHERWISE THE ERROR IS REPORTED AS PERMANENT. THE ERROR REPORT DISPLAYS THE PHYSICAL TRACK AND SECTOR IN ERROR, THE TYPE OF ERROR, (I.E. TEMP OR PERM), THE STATUS BYTE RECEIVED FROM THE DISK CONTROLLER (AS DEFINED IN THE 1771 FDC CHIP SPECS), AND THE DISPOSITION OF THE SECTOR (CP/M SECTOR, DIRECTORY SECTOR, UNALLOCATED SECTOR, OR THE ASSOCIATED FILE NAME IF ALLOCATED. IN ORDER TO DETERMINE WHETHER ERRORS ARE EITHER TEMPORARY OR PERMANENT, ALL DISK I/O MUST BYPASS BDOS, OTHERWISE TEMPORARY ERRORS WILL NOT BE DETECTED AT ALL, AND PERMANENT ONES WILL INVOKE THE INFAMOUS 'BDOS ERROR ON X: BAD SECTOR' MESSAGE. ADDITIONALLY, SINCE THE BIOS NORMALLY HANDLES THE ACTUAL RETRY DURING DISK READ/WRITE OPERATIONS, THE RETRY FUNCTION IN BIOS MUST ALSO BE BYPASSED, OR DISABLED BY DYNAMIC PATCHING, IN ORDER TO DETECT TEMPORARY ERRORS. IN THE CASE OF THE 'BIGBOARD', THE RETRY COUNT BYTE USED BY THE MONITOR IS LOADED BY BBSCAN, AND THE CALL TO THE READ ROUTINE IS DIRECTED TO A LOCATION PAST THE POINT WHERE THE ROUTINE INITIALIZES THE COUNT. IN THIS WAY, BBSCAN HAS FULL CONTROL OVER RETRY. BBSCAN PROCESSES EACH TRACK IN A PHYSICALLY SEQUENTIAL SECTOR SEQUENCE RATHER THAN THE CP/M 'LOGICALLY' SEQUENTIAL SEQUENCE. BY DOING THIS, THE ERROR REPORT CLEARLY INDICATES SCRATCHES ON THE MEDIA, BECAUSE THE SECTOR VALUE IS THE SAME ACROSS MULTIPLE TRACKS. THIS WOULD NOT BE OBVIOUS IN THE CASE OF A LOGICALLY SEQUENTIAL SCAN. 3. USING THE PROGRAM THE SOURCE FILE SHOULD REQUIRE NO MODIFICATION PRIOR TO ASSEMBLY. THIS RATHER BOLD STATEMENT ASSUMES THAT THE ROM-BASED MONITOR (PFM) IN YOUR SYSTEM IS THE SAME LEVEL AS THAT FOR WHICH THIS PROGRAM WAS DEVELOPED. THE VERSION ON THE DEVELOPMENT SYSTEM IS 3.3, DATED AUGUST 2, 1980. IF YOURS IS DIFFERENT, YOU SHOULD CHECK THE EQUATES AT THE START OF THE LISTING WHICH POINT INTO THE MONITOR. THE COMMENTS FIELD FOR THESE EQUATES INDICATES WHICH LABELS THEY REFER TO IN THE MONITOR LISTING 'ROM.PRN' WHICH COMES WITH THE BIGBOARD CP/M PACKAGE. THE PROGRAM MAY BE INVOKED IN THE FOLLOWING WAYS: A) 'BBSCAN' OR B) 'BBSCAN X' WHERE X=DRIVE NAME IN THE FIRST CASE, THE PROGRAM WILL EXECUTE ON THE CURRENTLY LOGGED DRIVE. IN THE SECOND CASE, IT WILL RUN ON THE DRIVE SPECIFIED BY 'X'