1 A=A+1:IFA=1THENLOAD"TRC.CHR",8,1 2 POKE53280,11:POKE53281,11:POKE53265,11 3 POKE56578,63:POKE56576,148:POKE53272,49:POKE648,204 4 PRINT"[147]THE DISK PROGRAM TRACER AUGUST 1991" 5 PRINT"[158] WRITTEN FOR THE LIGHT SAMPLER DISK" 6 PRINT"[153] PLEASE INSERT A DISK INTO DRIVE" 7 PRINT" DEVICE 8 AND THEN PRESS RETURN TO" 8 PRINT" BEGIN THE ANALYSIS PROCEDURE.":POKE198,0:POKE53265,27 9 GETA$:IFA$<>CHR$(13)THEN9 10 OPEN15,8,15,"I0":OPEN8,8,8,"#0":OPEN9,8,9,"#1":INPUT#15,E,E$:IFE=0THEN13 11 CLOSE9:CLOSE8:CLOSE15:PRINT"[147] DISK ERROR: [158]"E$ 12 PRINT"[153] PRESS ANY KEY TO CONTINUE":POKE198,0:WAIT198,1:POKE198,0:RUN 13 DIM F$(144) 14 PRINT"[147][158] 1 TRACKS[158] 2 3 ":PRINT" ";:FORT=1TO35 15 PRINTRIGHT$(STR$(T),1);:NEXT:PRINT"[150] [219][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177]" 16 FORS=0TO20:PRINT""MID$(" SECTORS ",S+1,1)"[158] "; 17 PRINTCHR$(-157*(S=10ORS=20))RIGHT$(STR$(S),1-1*(S=10ORS=20))"[150][179]" 18 NEXT:PRINTTAB(34)"[152][145][145][145][145][166][166][166][166][166]":PRINTTAB(28)"[166][166][166][166][166][166][166][166][166][166][166]":FORI=1TO2 19 PRINT,," [166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166]":NEXT 20 PRINT" READING AND PLOTTING BAM INFORMATION [157][148] [155]"; 21 PRINT#15,"U1:8 0 18 0":FORT=1TO35:PRINT#15,"B-P:8"T*4+1 22 POKE52227+T,PEEK(52227+T)OR128:POKE52267+T,PEEK(52267+T)OR128 23 FORY=0TO2:GET#8,A$:B(Y)=ASC(A$+CHR$(0)) 24 NEXT:S=20:IFT>17THENS=18 25 IFT>24THENS=17 26 IFT>30THENS=16 27 POKE646,-15*(T<>18) 28 POKE781,3:POKE782,3+T:POKE783,0:SYS65520 29 R=0:FORY=0TO2:B=B(Y):FORBT=0TO7:V=INT(B/2):SS=B-V*2 30 IFR>STHEN32 31 POKE199,1-SS:PRINT"@[157]"; 32 B=V:R=R+1:NEXTBT,Y 33 POKE52227+T,PEEK(52227+T)AND127:POKE52267+T,PEEK(52267+T)AND127:NEXT 34 DS=1:FI=0:POKE781,24:POKE782,0:POKE783,0:SYS65520 35 PRINT#15,"U1:9 0 18"DS:PRINT#15,"B-P:9 0" 36 GET#9,T$:NT=ASC(T$+CHR$(0)) 37 GET#9,S$:NS=ASC(S$+CHR$(0)) 38 FORF=0TO7:PRINT#15,"B-P:9"F*32+2 39 PRINT"[146] [145]":POKE53223,32 40 GET#9,TY$:TY=ASC(TY$+CHR$(0)):FI$="" 41 IF(TYAND128)=0THEN63 42 TY=TYAND3:IFTY<1ORTY>2THEN63 43 GET#9,TS$:GET#9,SS$:T=ASC(TS$+CHR$(0)):S=ASC(SS$+CHR$(0)):IFT=0THEN63 44 FORN=0TO15:GET#9,A$:FI$=FI$+A$:NEXT 45 FORN=0TO8:GET#9,A$:NEXT 46 GET#9,BL$:GET#9,BH$:B=ASC(BL$+CHR$(0))+(ASC(BH$+CHR$(0))*256) 47 IFB=0THEN63 48 FI$=RIGHT$(" "+STR$(B),3)+" "+FI$+" "+MID$("SEQPRG",TY*3-2,3) 49 PRINT" WORKING ON "MID$(FI$,6,16)" [145]":POKE53223,160 50 F$(FI)=FI$:F0=(FI/36-INT(FI/36))*36:F1=129+F0-21*(F0>25) 51 F2=VAL(MID$("05071014",INT(FI/36)*2+1,2)):FI=FI+1:IFB<0THENB=0 52 PRINTTAB(36)""RIGHT$(" "+STR$(B),3)"[145]" 53 PRINT#15,"U1:8 0"T;S:B=B-1:INPUT#15,E:IFE=0THEN56 54 F$(FI-1)="[150] "+F$(FI-1)+" " 55 POKE52347+T+S*40,42:POKE55419+T+S*40,1:GOTO63 56 IF(PEEK(52347+T+S*40)=128)ANDB>-1THEN58 57 POKE52347+T+S*40,F1-128:POKE55419+T+S*40,15:GOTO59 58 POKE52347+T+S*40,F1:POKE55419+T+S*40,F2 59 PRINT#15,"B-P:8 0":GET#8,T$:T=ASC(T$+CHR$(0)) 60 GET#8,S$:S=ASC(S$+CHR$(0)):IFT<1ORT>35THENPRINTTAB(38)"0[145]":GOTO63 61 IFS>20THEN54 62 GOTO52 63 NEXT:IFNTTHENDS=NS:GOTO35 64 T=0:S=0:CLOSE9:CLOSE8:CLOSE15:W=14:A$="":GOTO77 65 P=52347+T+S*40 66 Z1=PEEK(P):Z2=PEEK(P+3072)AND15 67 W=W+1:IFW>7THENPOKEP,Z1:POKEP+3072,Z2 68 IFW=15THENW=0:POKEP,160:POKEP+3072,1 69 GETA$:IFA$=""THEN67 70 K=0:FORI=1TO8:IFA$=MID$("[145][157]TQ"+CHR$(13),I,1)THENK=I:I=8 71 NEXT:IFK=0THEN67 72 POKEP,Z1:POKEP+3072,Z2:S1=S:T1=T 73 IFA$=""THENT=1:S=0:GOTO81 74 IFA$="[145]"THENS=S+1*(S>0):GOTO81 75 IFA$=""THENS=S-1*(S<20):GOTO81 76 IFA$="[157]"THENT=T+1*(T>1):GOTO81 77 IFA$=""THENT=T-1*(T<35) 78 IFA$="T"THEN91 79 IFA$="Q"THEN110 80 IFA$=CHR$(13)THEN102 81 P=PEEK(52347+T+S*40):IFP=102THENS=S1:T=T1:W=14:GOTO65 82 W=14:Z1=PEEK(52347+T+S*40):Z2=PEEK(55419+T+S*40)AND15:Z1=Z1+128*(Z1>128) 83 POKE56295,1 84 IFZ2>0ANDZ2<15THEN87 85 IFZ2=15AND((Z1>0ANDZ1<128)AND(Z1<>46))THEN87 86 PRINT" [145]":FI=-1:POKE53223,32:GOTO65 87 FI=(Z1-1)+21*(Z1>47):FI=FI-36*(Z2=7)-72*(Z2=10)-108*(Z2=14) 88 PRINT" [145]" 89 IFZ1=42THENPRINT" ERRORNOUS SECTOR[145]":POKE53223,160:GOTO65 90 PRINT" DETAILS: "F$(FI)"[145]":POKE53223,160:GOTO65 91 IF(Z1<>128)OR(T=18)THEN67 92 PRINT" PLEASE WAIT - TRACKING SECTORS [145]":POKE2023,160 93 POKE52347+T+S*40,46:POKE55419+T+S*40,15 94 OPEN15,8,15:OPEN8,8,8,"#" 95 PRINT#15,"U1:8 0"T;S:INPUT#15,E:IFE=0THEN97 96 POKE52347+T+S*40,42:POKE55419+T+S*40,1:GOTO101 97 PRINT#15,"B-P:8 0":GET#8,T$:T1=ASC(T$+CHR$(0)):IFT1<1ORT1>35THEN101 98 GET#8,S$:S1=ASC(S$+CHR$(0)) 99 P=52347+T1+S1*40:IFPEEK(P)<>128ANDPEEK(P)<>46THEN101 100 POKEP,43:POKEP+3072,15:T=T1:S=S1:GOTO95 101 CLOSE8:CLOSE15:W=14:T=T-1:A$="":GOTO77 102 IFFI=-1THEN67 103 F0=(FI/36-INT(FI/36))*36:F1=129+F0-21*(F0>25) 104 F1=F1+128*((PEEK(52347+T+S*40))<128) 105 F2=VAL(MID$("05071014",INT(FI/36)*2+1,2)) 106 IFF1<128THENF2=15 107 POKE251,F1:POKE252,F2:SYS51200 108 PRINT" PRESS ANY KEY TO CONTINUE [145]":POKE53223,160 109 POKE198,0:WAIT198,1:POKE198,0:SYS51304:W=14:GOTO65 110 PRINT"[153] DO YOU REALLY WANT TO QUIT? SELECT Y/N[145]" 111 POKE53223,160:POKE56295,13:POKE198,0 112 GETA$:IFA$="Y"THEN115 113 IFA$<>"N"THEN112 114 T=T-1:A$="":GOTO77 115 PRINT"[147]":SYS64738