/ SELF-ID DISK UTILITY / PROGRAM TO MAKE A DISK'S BLOCKS CONTENTS BE THEIR OWN BLOCK NUMBER. / LAST EDIT: 18-JAN-1991 05:00:00 CJL / MAY BE ASSEMBLED WITH '/J' SWITCH SET. / MUST BE EXECUTED FROM P?S/8 WITH THE I/O ROUTINES LOADED. / THIS PROGRAM DESTROYS ALL OF THE BLOCKS ON A P?S/8 LOGICAL UNIT (DEFAULT UNIT / IS ONE) AND REPLACES THEIR CONTENTS WITH THEIR OWN BLOCK NUMBER IN EVERY WORD. / THE RESULTANT DISK IS THEN USED FOR EXTERNAL TEST PURPOSES. / EQUATED SYMBOLS. NL7777= CLA CMA /LOAD AC WITH 7777 NUMBLKS=0000 /DO 10000 BLOCKS NUMWRDS=0200 /NUMBER OF WORDS IN A P?S/8 LOGICAL BLOCK SBOOT= 7600 /SYSTEM EXIT ADDRESS SYSIO= 7640 /P?S/8 I/O ENTRY IFNDEF UNIT /I/O UNIT THAT WILL BE DESTROYED WRITE= 4000 /SYSIO WRITE BIT *200 /THE USUAL PLACE START, CLA /CLEAN UP TAD ("G&37) /GET A TLS /RING IT NL7777 /SET SOME LIGHTS HLT /THE PAUSE THAT REFRESHES CLA /CLEAN UP TAD (-NUMBLKS) /SETUP THE DCA COUNT1 /BLOCK COUNTER DCA BLOCK /CLEAR THE BLOCK NUMBER IN THE CALL LOOP1, TAD (-NUMWRDS) /GET THE WORD COUNT DCA COUNT2 /STASH IT TAD (BUFFER) /SETUP THE DCA PTR /BUFFER POINTER LOOP2, TAD BLOCK /GET THE BLOCK NUMBER VALUE DCA I PTR /STASH IN BUFFER ISZ PTR /BUMP TO NEXT ISZ COUNT2 /DONE YET? JMP LOOP2 /NO, KEEP GOING JMS I (SYSIO) /CALL THE I/O ROUTINES BUFFER /TRANSFER ADDRESS 1^100+WRITE+UNIT /WRITE ONE BLOCK ON THE INTENDED UNIT BLOCK, .-. /WILL BE LATEST BLOCK NUMBER ISZ BLOCK /BUMP TO NEXT NOP /JUST IN CASE ISZ COUNT1 /DONE ALL BLOCKS YET? JMP LOOP1 /NO, KEEP GOING TAD ("G&37) /GET ANOTHER TLS /RING IT AGAIN NL7777 /SET ALL THE LIGHTS ON HLT /PAUSE AGAIN JMP I (SBOOT) /WE'RE DONE COUNT1, .-. /BLOCK COUNTER COUNT2, .-. /WORD COUNTER PTR, .-. /BUFFER POINTER PAGE BUFFER= . /I/O BUFFER HERE $ /THAT'S ALL FOLK!