image of READY prompt

Wang2200.org

Listing of file='850ALIGN' on disk='vmedia/multidisk_diagnostic.wvd.zip'

# Sector 209, program filename = '850ALIGN'
0010 REM % Shugart 850/851 Alignment Diagnostic
   : REM  Written by K.LeBaron
   : REM  Updated - 8/23/83 by Paul J. Hossfeld / Diagnostic Software Support
0020 % Added disk address Bxx
0030 % Corrected an error that made it so the user would have to select the
        disk address before any functions could be run
0040 % Made the diagnostic more user friendly
0050 % Corrected single track format problem : REM% UPDATE 04/01/84 BY PAUL J
     HOSSFELD / DIAG. SOFTWARE SUPPORT: % added graphics display of test point
     s
0055 REM % UPDATE 04/01/84 BY Paul J Hossfeld / Diag. Software Support
   : % added graphics display of test points
0060 %
0070 DIM A$3,A$(2)3,R$(256)1,W$(256)1,H(8),H$(8)43,T$1,E$24,B$(2)3,Z,Y
0080 INIT(20)A$()
   : STR(R$,,1)=HEX(30)
   : D=0
0090 A$="D10"
   : B$(1)="B10"
   : SELECT #1<A$>
   : $IF ON #1,130
0100 A$="D20"
   : B$(1)="B20"
   : SELECT #1<A$>
   : $IF ON #1,130
0110 A$="D30"
   : B$(1)="B30"
   : SELECT #1<A$>
   : $IF ON #1,130
0120 D=1
   : GOTO 150
0130 $GIOREADSTATUS#1(0600070070A0400288D070406A106816400087051A00C340,R$)R$;S
     TR(E$,1,VAL(STR(R$,5,1)))
   : ERRORX=ERR
   : ON VAL(STR(A$,2,1))-48GOTO 100,110,120
0140 IF STR(R$,6,3)<>HEX(000000)OR STR(E$,,2)="10"THEN ON VAL(STR(A$,2,1))-48G
     OTO 100,110,120
   : IF VAL(STR(E$,7,2),2)<4000THEN A$(1)=A$
0150 STR(R$,,1)=HEX(20)
0160 A$="D11"
   : B$(2)="310"
   : SELECT #1<A$>
   : $IF ON #1,200
0170 A$="D21"
   : B$(2)="320"
   : SELECT #1<A$>
   : $IF ON #1,200
0180 A$="D31"
   : B$(2)="330"
   : SELECT #1<A$>
   : $IF ON #1,200
0190 IF D=1THEN STOP "NO DISKS ARE RESPONDING "#
   : IF D=1THEN 190
   : IF A$(1)<>"   "THEN A$=A$(1)
   : ELSE A$=A$(2)
   : GOTO 220
0200 $GIOREADSTATUS#1(0600070070A0400288D070406A106816400087051A00C340,R$)R$;S
     TR(E$,1,VAL(STR(R$,5,1)))
   : ERRORX=ERR
   : ON VAL(STR(A$,2,1))-48GOTO 170,180,190
0210 IF STR(R$,6,3)<>HEX(000000)OR STR(E$,,2)="10"THEN ON VAL(STR(A$,2,1))-48G
     OTO 170,180,190
   : IF VAL(STR(E$,7,2),2)<4000THEN A$(2)=A$
   : IF A$(1)<>"   "THEN A$=A$(1)
   : ELSE A$=A$(2)
0220 REM % Menu
   : SELECT #1<A$>
   : H(2)=1
   : H$(1)=". Change disk add.   Currently @ "&""&A$&""
0230 H(3)=2
   : H$(2)=". Track 00  Flag Detector Adjustment"
0240 H(4)=3
   : H$(3)=". Head Radial Alignment   @ Track 38"
0250 H(5)=4
   : H$(4)=". Index/Sector Adj. @ Tracks 01 & 76"
0260 H(6)=5
   : H$(5)=". Read/Write Head Azimuth @ Track 76"
0270 H(7)=6
   : H$(6)=". Head Amplitude Check    @ Track 76"
0280 H(8)=7
   : H$(7)=". TP Locations       Graphic Display"
0290 REM % Print header and menu
   : Y=7
   : PRINT HEX(0306);AT(0,14);"Shugart 850/851 Alignment Utility Menu   R
     ev. 8448";AT(1,13);BOX(0,52)
   : $CLOSE#1
   : $GIORESET#1(4501)
0300 FOR I=1TO 7
   : PRINT AT(Y+I,23);H$(I)
   : NEXT I
   : GOSUB '200
0310 PRINT AT(17,1);"Note: If there is a ? after 'Now on track' th
     en the system can't retrieve data"
0320 PRINT "      from the diskette.   Either an unformatted or \E1\EC\E9\E7\E
     E\ED\E5\EE\F4 diskette was in-"
   : PRINT "      stalled or a hardware error occured."
0330 PRINT "";AT(Y+H(2),23);H$(H(2));AT(Y+H(2),23);"";HEX(8B);""
   : KEYIN T$,,340
   : IF T$=HEX(08) OR T$=HEX(20) OR T$=HEX(0D) OR T$=HEX(82) THEN 370
   : IF T$="P" OR T$="p" OR T$=HEX(81) THEN GOTO 1290
   : GOTO 350
0340 IF T$= HEX(42) OR T$= HEX(52) THEN GOTO 1290
   : IF T$=HEX(45) OR T$=HEX(46) THEN 370
   : PRINT HEX(07)
   : GOTO 330
0350 Z=H(2)
   : FOR I=1 TO 5
   : Z=Z+1
   : IF Z=8 THEN Z=1
   : IF T$=STR(H$(Z),3,1) THEN GOTO 360
   : NEXT I
   : PRINT HEX(07)
   : GOTO 330
0360 PRINT AT(Y+H(2),23); H$(H(2))
   : H(2)=Z
   : I=5
   : NEXT I
   : GOTO 330
0370 PRINT AT(Y+H(2),23);H$(H(2))
   : IF T$=HEX(08) OR T$=HEX(46) OR T$=HEX(0D) OR T$=HEX(82) THEN 380
   : H(2)=H(2)+1
   : IF H(2) =8 THEN H(2)=1
   : GOTO 330
0380 IF T$=HEX(0D) OR T$=HEX(82) THEN 390
   : H(2)=H(2)-1
   : IF H(2)=0 THEN H(2)=7
   : GOTO 330
0390 PRINT HEX(03);
   : $GIO#1(70A040008701704040208702401787034000,R$)
   : ERRORX=ERR
   : STOP "CONTROLLER IS NOT RESPONDING PROPERLY "#
0400 IF STR(R$,,1)<>HEX(D0)OR STR(R$,2,1)<>HEX(20)OR STR(R$,3,1)<>HEX(17)THEN
     STOP "THIS DIAGNOSTIC CAN NOT BE RUN ON THIS CONTROLLER "#
0410 $OPEN #1
   : ON H(2)GOTO 420,470,560,680,790,930,1310
0420 REM % Address select
   : PRINT TAB(29);"Disk Address Selection";AT(1,28);BOX(0,23)
0430 IF A$=A$(1) THEN Z=1
   : ELSE Z=2
   : R=2
   : IF A$(1)=" " OR A$(2)=" " THEN R=1
   : GOSUB '200
0440 A$=A$(Z)
   : IF A$(1)<>" " THEN PRINT AT(6,36); ". "; A$(1); "/"; B$(1)
   : IF A$(2)<>" " THEN PRINT AT(7,36); ". "; A$(2); "/"; B$(2)
0450 PRINT AT(5+Z,36); ""; HEX(8B); " "; A$(Z); "/"; B$(Z); ""
   : A$=A$(Z)
0460 T$="0"
   : GOSUB '240
   : IF T$=HEX(0D) OR T$=HEX(82) THEN 220
   : IF T$<>" " AND T$<> HEX(08) AND T$<>HEX(45) AND T$<>HEX(55) AND T$<>HEX(4
     6) AND T$<>HEX(56) THEN 460
   : IF R=1 THEN 460
   : IF Z=1 THEN Z=2
   : ELSE Z=1
   : GOTO 440
0470 REM % Track zero flag dector adj.
   : PRINT AT(0,23);"Track 00 Flag Detector Adjustment";AT(1,22);BOX(0,3
     4);
0480 PRINT "Connect o'scope probe to TP 26. Set vertical deflection to 1v/divi
     sion, DC      coupled, and trigger to AUTO. If the diskette has been inse
     rted the heads are   already on track 01. ";
0490 PRINT HEX(0A); "TP 26 should be high (4-5 volts). If TP 26 is not high, l
     oosen screw holding    Track 00 detector assembly and move the assembly t
     oward the spindle until TP 26 goes high."
0500 PRINT HEX(0A); "Step carriage to track 02. TP 26 should go low (0-1 volt)
     . Adjust the detector  assembly, towards the actuator assembly, if its no
     t low."
0510 PRINT "Check the adjustment by stepping the heads between tracks 01 and 0
     2, observing  that TP 26 is high at track 01 and low at track 02. A good
     adjustment is if     there is a square wave on the scope while the heads
     are being moved."
0520 PRINT AT(17,0);"(Head Radial Alignment should be checked after this adjus
     tment has been made.)"
0530 T$="1"
   : GOSUB '210
0540 IF T$<>"1"AND T$<>"2" THEN 550
   : PRINT AT(20,22);"Now on track ";AT(20,37);" ";T$;""
   : PRINT AT(22,8);"";
   : IF T$="1"THEN PRINT "2 ";
   : ELSE PRINT "1 ";
   : PRINT "to move heads to track ";
   : IF T$="1"THEN PRINT "'2'";
   : ELSE PRINT "'1'"
   : IF T$="1" THEN S=26
   : ELSE S=78
0550 E=S
   : GOSUB 1200
   : GOSUB '240
   : GOTO 540
0560 REM % Head radial alignment
   : PRINT AT(0,29);"Head Radial Alignment";AT(1,28);BOX(0,22);"";
0570 PRINT "Trigger the o'scope, external negative, on TP 12 (-Index). Set the
      time base to 20 msec/division. Connect one channel to TP 1, the other to
      TP 2 and ground"
0580 PRINT HEX(0C);"the probes to TP 5 & 6. Set the inputs to AC, 100 mv/divis
     ion and invert one    channel. Set the mode to ADD and the trigger to NOR
     M. If the alignment diskette has been inserted the heads are already on t
     rack 38."
0590 PRINT "The amplitude of the two lobes \ED\F5\F3\F4 be within 70% (80% is
     preferred) of each    other. If the lobes do not fall within this specifi
     cation continue on with the  procedure."
0600 PRINT "Loosen the two mounting screws, which hold the motor plate to the
     support brack-et. Move the plate, by rotating the eccentric adjusting nut
     . When the lobes are of equal amplitude, tighten the motor plate mounting
      screws. Check the adjust- "
0610 PRINT HEX(0C);"ment by stepping off track and returning. Check in both di
     rections and readjust as required."
0620 PRINT AT(18,0);"(Track 00 detector should be checked after this adjustmen
     t has been made.)"
   : T$="2"
   : S=1950
0630 PRINT AT(22,8);"";
   : IF S=1898 THEN PRINT "2 for track '38' or 3 for track '39'";
   : IF S=1950 THEN PRINT "1 for track '37' or 3 for track '39' ";
   : IF S=2002 THEN PRINT "1 for track '37' or 2 for track '38'"
0640 GOSUB '210
0650 GOSUB '240
0660 IF T$<>"1"AND T$<>"2"AND T$<>"3"THEN 670
   : IF T$="1"THEN S=1898
   : IF T$="2"THEN S=1950
   : IF T$="3"THEN S=2002
   : PRINT AT(20,22);"Now on track ";AT(20,37);
   : IF S=1898THEN PRINT "37 'off track'      "
   : IF S=1950 THEN PRINT "38 'alignment track'"
   : IF S=2002THEN PRINT "39 'off track'      "
0670 T$=" "
   : E=S
   : GOSUB 1200
   : GOTO 630
0680 REM % Index and sector
   : PRINT AT(0,28);"Index/Sector Adjustment";AT(1,27);BOX(0,24);
0690 PRINT "Trigger the o'scope, external negative, on TP 12 (-Index).  Set ti
     me base to    50 usec/division. Connect one input channel to TP 1, the ot
     her channel to TP 2  and ground the probes to TP 5 & 6.  Set the inputs t
     o AC, 200 mv/division and ";
0700 PRINT "invert one channel.  Set the mode to ADD and the Trigger to NORM.
      If the align-ment diskette has been inserted the heads are already on tr
     ack 01."
0710 PRINT "Observe the timimg between the start of the sweep and the first da
     ta pulse. Thisshould be 200 \AB 100usec. If the timing is not within tole
     rance, continue on withthe adjustment."
0720 PRINT "Loosen the holding screw in the Index Transducer until the transdu
     cer is \EA\F5\F3\F4   able to be moved. Observe the timing and adjust the
      transducer until the timing"
0730 PRINT HEX(0C);"is 200 \AB 100usec.  Insure that the transducer assembly i
     s against the registra- tion surface on the base casting. Tighten the hol
     ding screw. Recheck the timing.";HEX(0A0D);"Move heads to track 76 and re
     verify that the timing is 200 \AB 100usec."
0740 GOSUB '210
   : T$="1"
0750 PRINT AT(20,22);"Now on track ";AT(20,37);
   : IF T$="1"THEN PRINT " 1"
   : ELSE PRINT "76"
   : PRINT AT(22,8); "";
   : IF T$="1"THEN PRINT "2 for track '76'";
   : ELSE PRINT "1 for track ' 1' "
0760 GOSUB '240
0770 IF T$<>"1"AND T$<>"2"THEN 780
   : IF T$="1"THEN S=26
   : IF T$="2" THEN S=3873
   : GOSUB '210
0780 E=S
   : GOSUB 1200
   : IF T$<>"1" AND T$<>"2" THEN 760
   : GOTO 750
0790 REM % Read write azimuth
   : PRINT HEX(03);AT(0,25);"Read/Write Heads Azimuth Check";AT(1,24);BO
     X(0,31);
0800 PRINT "The azimuth is not field adjustable. Using an o'scope, check
      for the approximatewaveform below, if it is not within the range shown (
     +/- 18'), replace the Head Actuator Assembly."
0810 PRINT "Trigger the o'scope, external negative, on TP 12 and set the time
     base to .5    msec/division.  Connect one input channel to TP 1 and the o
     ther channel to TP 2 and grounds to TP 5 & 6.  Set the inputs to AC, 50 m
     v/division and invert one ";
0820 PRINT "channel.  Set mode to ADD and the trigger NORM. If the alignment d
     iskette has   been inserted the heads are already on track 76."
0830 REM % THIS PRINTS THE AZIMUTH BURST PATTERNS
0840 PRINT AT(13,0); BOX(6,2); AT(14,2); BOX(4,2); AT(12,4); BOX(8,2); AT(15,6
     ); BOX(2,2); AT(11,2); "(-18')"
0850 PRINT AT(13,17); BOX(6,2); "  "; BOX(6,2); AT(12,21); BOX(8,2); AT(14,23)
     ; BOX(4,2); AT(11,19); "(-12')"
0860 PRINT AT(12,39); BOX(8,2); "  "; BOX(8,2); AT(14,37); BOX(4,2); "      ";
      BOX(4,2); AT(11,39); "(00')"
0870 PRINT AT(14,55); BOX(4,2); AT(12,57); BOX(8,2); AT(13,59); BOX(6,2); AT(1
     3,61); BOX(6,2); AT(11,57); "(+12')"
0880 PRINT AT(15,71); BOX(2,2); AT(12,73); BOX(8,2); AT(14,75); BOX(4,2); AT(1
     3,77); BOX(6,2); AT(11,73); "(+18')"
0890 GOSUB '210
   : PRINT AT(20,22);"Now on track";AT(20,37);"76"
0900 T$=" "
   : GOSUB '240
0910 S=3926
   : E=3951
   : GOSUB 1200
   : GOTO 900
0920 STOP
0930 REM % Head amplitude check
   : PRINT HEX(03);AT(0,30);"Head Amplitude Check";AT(1,29); BOX(0,21)
   : INIT(FF)W$()
0940 PRINT "These checks are only valid when writing and reading as described
     below. If the amplitude is below the 130 mv,  before rewriting and rechec
     king, insure that thediskette is not 'worn' or otherwise show evidence of
      damage on either side  and ";
0950 PRINT "that the head load down stop is properly adjusted."
0960 PRINT "Trigger the o'scope, external negative, on TP 12 (-Index) for sing
     le sided disk-ettes, TP 13 for double sided diskettes, and set the time b
     ase to 20 msec/div-  ision.  Connect one input channel to TP 1, the other
      channel to TP 2, and the ";
0970 PRINT "grounds to TP 5 & 6. Set the inputs to AC, 50mv/division and inver
     t one channel.Set the mode to ADD and the trigger to NORM. "
0980 PRINT "The average minimum read amplitude (peak to peak) is 130mv.  If th
     e output is   below minimum, try different media.  If the output is still
      low it will  be nec-essary to install a new head and actuator assembly."
0990 PRINT AT(17,5,319);"******Remove the alignment diskette and install
     known good media*****";AT(18,0);"-----The entire track (76) will be writ
     ten with a '2F' (all one's) pattern-----"
1000 PRINT AT(22,8);"CONT or C/c to WRITE track 76"
   : GOSUB '210
1010 GOSUB '240
   : IF T$<>"C" AND T$<>"c" AND T$<>HEX(84)THEN 1010
   : T$=" "
1020 X=0
   : GOSUB 1200
   : PRINT AT(20,0,79)
   : IF X<>0 THEN 1010
   : GOTO 1130
1030 IF X<>93 THEN 1100
   : T$="N"
   : PRINT AT(20,15,); "Format error    Do you wish to format track ";"
     ";"76"
   : GOSUB 1240
1040 KEYIN T$
   : IF T$="Y" OR T$="y" THEN 1050
   : IF T$<> "N" AND T$<>"n" THEN 1030
   : PRINT AT(20,0,79);AT(20,15,64); "Mount a known good formatted disket
     te";
   : GOTO 1000
1050 X=0
   : $GIO ENABLE TRACK 76 #1(70A040008701704040208702401787034000,R$)
   : ERRORX=ERR
1060 PRINT AT(20,0,); AT(20,22); "Formatting";AT(22,1,78);"Press: R
     ESET to recover system if no response in 5 seconds "
   : STR(R$,,3)=HEX(300F62)
   : $GIO #1,(0600070070A0400288D070406A10681868006A20623087051704115615764000
     8707,R$)
   : ERRORX=ERR
1070 IF STR(R$,6,3)=HEX(000000) AND X=0 THEN 1110
   : PRINT AT(20,6,72);HEX(06);"This disk can not be formatted Do you wa
     nt to continue"
   : GOSUB 1240
1080 KEYIN T$
   : IF T$="Y" OR T$="y" THEN 930
   : IF T$="N" OR T$="n" THEN 290
   : GOTO 1080
1090 GOSUB '240
   : GOTO 1090
1100 PRINT AT(20,22,57);"";
   : IF X=95THEN PRINT "Diskette is write protected";
   : IF X=98THEN PRINT "Mount a known good formatted diskette";
   : IF X<>95AND X<>93AND X<>98THEN PRINT  "Error I-";X;"on sector";I;"during
     a write";
   : I=3951
   : GOTO 1000
1110 PRINT AT(20,0,159);
1120 GOSUB '240
1130 FOR I=3926 TO 3951
   : DATA SAVE BA T#1,(I)W$()
   : ERRORX=ERR
   : PRINT AT(20,0)
   : I=3951
   : NEXT I
   : GOTO 1030
1140 PRINT AT(22,0);BOX(-2,-79); AT(20,0,); AT(20,22); HEX(06);" Writing
     to track 76 "
   : NEXT I
   : PRINT AT(18,0);"-----The entire track (76) has been written with a '2F' (
     all one's) pattern-----"
1150 PRINT AT(20,0,79)
   : KEYIN T$,1150,1160
   : IF T$=HEX(0D) OR T$=HEX(82) THEN 1000
1160 PRINT AT(22,0);BOX(2,79); AT(20,22); "Reading from track 76"; AT(22
     ,1); "Press: RETURN to terminate read"
1170 FOR I=3926TO 3951
   : T$=" "
   : KEYIN T$, 1180,1180
1180 IF T$<>" " THEN I=3951
   : DATA LOAD BA T#1,(I)R$()
   : ERRORX=ERR
   : PRINT AT(21,15);"Error I-";X;"on sector";I;"during a read"
1190 NEXT I
   : GOTO 1150
1200 REM % Enable track 76 & verify sectors S to E
   : PRINT AT(21,0,79);
   : $GIO ENABLE TRACK 76 #1(70A040008701704040208702401787034000,R$)
   : ERRORX=ERR
   : PRINT AT(21,15); "CONTROLLER IS NOT RESPONDING PROPERLY  ERROR I";X
1210 VERIFY T#1,(S,E)L
   : IF L<>0 THEN PRINT AT(20,35); "?"
   : ELSE PRINT AT(20,35,1)
   : RETURN
1220 DEFFN '200
   : REM % Select message
   : PRINT AT(22,8);"SPACE BAR or BACKSPACE to select then RETURN to
      initiate";
1230 DEFFN '210
   : REM % Return message
   : PRINT AT(22,0); BOX(2,79); " Press: "; AT(23,8);"CLEAR/PREV SCRN
     for previous screen";
   : RETURN
1240 PRINT AT(22,1,78); "Press: Y for 'yes' or N for ' no'";
   : RETURN
1250 DEFFN '220
   : REM % Check for PREV SCRN
   : IF T$=HEX(42) OR T$=HEX(52) THEN 290
   : RETURN
1260 REM % Check for PREV SCRN
   : IF T$=HEX(42) OR T$=HEX(52) THEN 1310
   : GOTO 1520
1270 DEFFN '230
   : REM % Check for CLEAR
   : IF T$=HEX(81) THEN 290
   : RETURN
1280 DEFFN '240
   : REM % Input - no wait
   : KEYIN T$,1270,1250
   : RETURN
1290 DEFFN '31
   : REM % First menu message
   : LOAD T"@MENU"
   : ERRORX=ERR
   : PRINT AT(Y+1,0,); AT(Y+1,18); "";
   : IF X=(82) THEN PRINT "        NO PREVIOUS MENU IS AVAILABLE        ";
   : ELSE PRINT "               DISK ERROR "; X; "              "
1300 REM % Wait for input
   : GOSUB '210
   : GOSUB '240
   : GOTO 1300
1310 REM % GRAPHICS DISPLAY OF BOARDS
   : PRINT HEX(0306); AT(1,25); BOX(0,21); AT(0,26); HEX(0E); "Test Point Loca
     tions";
1320 PRINT HEX(060F);AT(3,5);"The Shugart assemble number is stamped in black
     on the component side of"; AT(4,0);"the board; the fabrication (artwork)
     number is etched on the non-component side";AT(5,0);"of the board."
1340 PRINT AT(11,14);BOX(0,12); AT(10,15); "DISPLAY NO.       ASSEMBLY NO.   F
     ABRICATION NO.";AT(11,32);BOX(0,31)
1350 PRINT AT(12,15);"     1                25189          25188  "
1360 PRINT AT(13,15);"     2                25190          25188  "
1370 PRINT AT(14,15);"     3                25201          25200  "
1380 PRINT AT(15,15);"     4                25202          25200  "
1390 PRINT AT(16,15);"     5                25216           N/A"
1400 T$=" "
   : GOSUB '210
   : PRINT AT(22,8); "the display number corresponding to the desired board";
   : GOSUB '240
   : ON POS("12345"=T$)GOTO 1410,1410,1450,1450,1500
   : GOTO 1400
1410 REM % BOARD 1 & 2
   : GOSUB 2000
1420 PRINT HEX(0E); AT(6,34); "x TP12"; AT(9,34); "x TP26"; AT(12,30); "TP1 x
      x TP2";HEX(0F);
1430 GOTO 1800
1450 REM % BOARD 3 $ 4
   : GOSUB 2000
1460 PRINT HEX(0E); AT(6,29); "x TP12"; AT(9,22); "x x TP26"; AT(12,30); "TP1
     x  x TP2"; HEX(0F)
1470 GOTO 1800
1500 REM % BOARD 5 GOSUB 2000
1510 GOSUB 2000
   : PRINT HEX(0E); AT(6,29); "x TP12"; AT(9,22); "x x TP26"; AT(12,30); "TP1
     x  x TP2"; HEX(0F)
1520 GOTO 1800
1800 KEYIN T$,1810,1820
   : GOTO 1800
1810 REM % Check for CLEAR
   : IF T$=HEX(81) THEN 1310
   : GOTO 1800
1820 REM % Check for PREV SCRN
   : IF T$=HEX(42) OR T$=HEX(52) THEN 1310
   : GOTO 1800
2000 REM % PRINT BOARD
   : PRINT HEX(0306); AT(1,25); BOX(0,21); AT(0,26); HEX(0E); "Test Point Loca
     tions";
   : GOSUB '210
2010 PRINT AT(4,58);BOX(12,1);AT(5,28);BOX(10,30);AT(5,19);BOX(0,9);AT(5,19);B
     OX(10,24);AT(5,28);BOX(-10,0);AT(6,43);BOX(2,1);AT(6,43);BOX(-2,0);AT(9,4
     3);BOX(5,1);AT(9,43);BOX(-6,0);AT(14,19);BOX (0,25);AT(6,19);BOX(1,1);
2020 PRINT AT(6,19);BOX(-1,0);AT(8,19);BOX(1,1);AT(8,19);BOX(-1,0);AT(12,19);B
     OX(1,1);BOX(-3,0);AT(13,19);BOX(1,0);AT(6,25);BOX(0,2);AT(6,28);BOX(0,2);
     AT(6,31);BOX(0,2);AT(6,34);BOX(0,2);
2030 PRINT AT(7,25);BOX(0,2);AT(7,28);BOX(0,2);AT(7,31);BOX(0,2);AT(7,34);BOX(
     0,2);AT(8,51);BOX(1,2);AT(9,46);"Index Sensor";AT(6,21);BOX(1,2)
2040 FOR Y=1TO 3
   : PRINT AT(7+Y,22);BOX(0,2);AT(7+Y,25);BOX(0,2);AT(7+Y,28);BOX(0,2);AT(7+Y,
     31);BOX(0,2);AT(7+Y,34);BOX(0,2);
   : NEXT Y
2050 PRINT AT(11,22);BOX(0,1);AT(11,25);BOX(0,2);AT(9,38); BOX(0,1); AT(08,38)
     ; BOX(0,1);AT(10,34);BOX(-0,-2);AT(10,35); BOX(0,2)
2060 PRINT AT(12,22);BOX(0,2);AT(12,25);BOX(0,2);AT(12,35);BOX(0,2);
2070 PRINT AT(13,22);BOX(0,2);AT(13,25);BOX(0,2);AT(13,28);BOX(0,2);AT(13,35);
     BOX(0,2);"";
2080 PRINT HEX(0F);AT(17,05);"Connect Oscilloscope Ch 1 to TP1, Ch2 to TP 2, i
     f track 0 detector adj.";AT(18,02);"Ch 1 to TP26.  Connect external trigg
     er to TP12.  Set oscilloscope to dif-"; AT(19,02);"ferential mode 0.1v ra
     nge,"
2090 PRINT AT(19,29); "if track 0 detector adj. use 1.0v range. Set the";AT(20
     ,02);"trigger to DC negative slope."; AT(20,32);"(Probe grounds to TP5, T
     P6, TP7 or 'GND')"
2100 RETURN