! S1311R -- BASIC+ PROGRAM TO "REFRESH" A SIMULATED 1311 DISK (S1401 SYSTEM) ! ! VERSION 01 -- ERG -- 18-OCT-74 ! 10 PRINT "S1311R DISK REFRESH - V01" 20 INPUT "NEW DISK IS ON DRIVE";D% 30 OPEN "DK"+NUM$(D%)+":" AS FILE 1%, RECORDSIZE 2048% 40 PRINT "REALLY ZERO DRIVE";D%;"AND REFRESH TO S1311/S1401R FORMAT";: INPUT X$ 50 GOTO 500 IF ASCII(X$)<>ASCII("Y") 60 B%=4% : C9%=-11575% !C9% IS DKCODE (151311 OCTAL) 70 DEF FNP$(I%)=CHR$(I% AND 255%)+CHR$(SWAP%(I%) AND 255%) !PACKING FUNCTION (IN CASE DEC MODIFIES CVT%$). ! !INITIALIZE FIRST TWO WORDS FOREVER... 80 FIELD #1,4% AS A$ 90 LSET A$=FNP$(C9%)+FNP$(10%) !2ND WORD IS "8-2" BITS FOR 1401 ZERO!!! ! !***** BEGIN CYLINDER LOOP ***** ! 100 FOR A1%=0% TO 99% 105 A2%=20480% : A2%=0% IF A1%>=50% !MORE "8-2" BITS FOR 1401 ZERO!! ! ! ** BEGIN TRACK SETUP (20 SECTORS) ** ! 110 FOR J%=0% TO 19% : A9%=A2% + A1%*40% + J%*2% !HASHED SECTOR ADDRESS WORD. 120 FIELD #1, (4% + J%*102%) AS A$, 102% AS A$ : LSET A$=FNP$(A9%)+STRING$(100%,0%) 130 NEXT J% ! ** END OF TRACK SET UP ** ! ! ** OUTPUT 10 IDENTICAL TRACKS PER CYLINDER ** ! 140 PUT #1,RECORD (B%+K%), COUNT 2048% FOR K%=0% TO 36% STEP 4% 150 B%=B%+40% : NEXT A1% ! ***** END OF CYLINDER LOOP ***** ! ! ! VERIFICATION PASS! ! 200 PRINT "BEGINNING VERIFICATION PASS" 210 GET #1,RECORD (4%+K%) FOR K%=0% TO 3996% STEP 4% ! ! ! 500 CLOSE 1% 32767 END