/ RK05 SURFACE SCAN / Do a destructive write/read check on all sectors. Header words should be / checked in all sectors except 0. 0 probably missed since won't be first / after seek. / For different patterns are used. / To run start at 0200. It will print drive being tested to console / and then halt. Set SR = 0 for continuous testing or 1 to halt after 1 pass. DSKP=6741 DCLR=6742 DLAG=6743 DLCA=6744 DRST=6745 DLDC=6746 *10 FILLOC, 0 *20 DRIVE, 2 K0200, 0200 K4000, 4000 TRACK, 0 MAXTRK, 4537 EXBIT, 0 REDDAT, 1000 WRTDAT, 5000 WRTLOC, 3000 RDLOC, 4000 K17, 17 K6, 6 K0007, 0007 K215, 0215 K212, 0212 M4, -4 LOOP, 0 CURPAT, 0 PATCNT, 0 FILCNT, 0 FILLEN, -400 INCF, INCTRK CRLFF, CRLF K0077, 0077 K7700, 7700 K3740, 3740 K4100, 4100 K0240, 0240 K0377, 0377 K0001, 0001 PRTXTF, PRTXT FROCTF, FROCT PRADF, PRAD PATLOC, PATS PATS, 7777 / Test patterns to use 0000 5252 2525 NUMPAT, 4 *200 CLA CLL OSR RAL AND K6 / Clear out high bits such as 0200 start address DCA DRIVE TAD DRIVE RAR JMS I FROCTF JMS I PRTXTF DTXT JMS I CRLFF HLT CLA DCA LOOP RESTRT, CLA CLL IAC DCLR TAD DRIVE DLDC CLA CLL CML RTL DCLR DSKP JMP .-1 TAD K0200 TAD DRIVE DLDC DSKP JMP .-1 DRST CIA TAD K4000 SZA CLA JMP BADSTA CLA TAD NUMPAT CMA IAC DCA PATCNT TAD PATLOC DCA CURPAT FILP, CLA TAD FILLEN DCA FILCNT CMA TAD WRTLOC DCA FILLOC LP, TAD I CURPAT DCA I FILLOC ISZ FILCNT JMP LP CLA CLL DCA TRACK DCA EXBIT WRTPAT, JMS WRITE JMS I INCF JMP WRTPAT CLA CLL DCA TRACK DCA EXBIT RDPAT, JMS READ JMS I INCF JMP RDPAT ISZ CURPAT ISZ PATCNT JMP FILP DONE, JMS I PRTXTF PSTXT TAD LOOP JMS I FROCTF JMS I CRLFF ISZ LOOP NOP CLA OSR SZA HLT JMP RESTRT BADSTA, HLT READ, 0 CLA CLL IAC DCLR TAD RDLOC DLCA TAD DRIVE TAD REDDAT TAD EXBIT DLDC TAD TRACK DLAG TAD EXBIT RAR TAD TRACK RAR DSKP JMP .-1 DRST CIA TAD K4000 SZA CLA JMP ERROR JMP I READ ERROR, JMS I PRTXTF RERRT JMS I PRADF JMP I READ WRITE, 0 CLA CLL IAC / We have one waiting, write it DCLR TAD WRTLOC DLCA TAD DRIVE TAD WRTDAT TAD EXBIT DLDC TAD TRACK DLAG TAD EXBIT RAR TAD TRACK RAR DSKP JMP .-1 DRST CIA TAD K4000 SZA CLA JMP ERROR2 JMP I WRITE ERROR2, JMS I PRTXTF WERRT JMS I PRADF JMP I WRITE PAGE INCTRK, 0 / Increment track and exbit value for next sector CLA CLL / AC non zero on return if done TAD EXBIT SZA JMP CHKCYL INC2, ISZ TRACK JMP I INCTRK ISZ EXBIT JMP I INCTRK HLT CHKCYL, CLA TAD TRACK CIA TAD MAXTRK SNA JMP FIN CLA JMP INC2 FIN, CLA IAC ISZ INCTRK JMP I INCTRK RERRT, TEXT "READ ERR " WERRT, TEXT "WRITE ERR " PSTXT, TEXT "PASS " CTXT, TEXT "CYL " STXT, TEXT "SECTOR " SUTXT, TEXT "SURFACE " PTXT, TEXT "PATTERN " DTXT, TEXT "DRIVE WILL BE R/W TESTED, SET SR" PAGE PRTXT, 0 CLA CLL TAD I PRTXT ISZ PRTXT DCA FROCT TAD I FROCT AND K7700 SNA JMP PREX SMA CML IAC RTR RTR RTR JMS PRINT TAD I FROCT AND K0077 SNA JMP PREX TAD K3740 SMA TAD K4100 TAD K0240 JMS PRINT ISZ FROCT CLA CLL JMP PRTXT+5 PREX, CLA CLL JMP I PRTXT TOCT, 0 UPONE, 0 K0260, 0260 FROCT, 0 / DUMP OCTAL RTL RTL DCA UPONE TAD M4 DCA TOCT TAD UPONE AND K0007 TAD K0260 JMS PRINT TAD UPONE RTL RAL DCA UPONE ISZ TOCT JMP .-11 TAD K0240 JMS PRINT JMP I FROCT PRINT, 0 TLS TSF JMP .-1 TCF CLA JMP I PRINT PRAD, 0 CLA DRST JMS FROCT JMS PRTXT CTXT TAD EXBIT RAR TAD TRACK RAR RTR RTR AND K0377 JMS FROCT JMS PRTXT SUTXT TAD TRACK RTR RTR AND K0001 JMS FROCT JMS PRTXT STXT TAD TRACK AND K17 JMS FROCT JMS PRTXT PTXT TAD I WRTLOC JMS FROCT JMS CRLF JMP I PRAD CRLF, 0 TAD K215 JMS PRINT TAD K212 JMS PRINT JMP I CRLF $