10 'LAPMEM Rev. 7.0 w/RRUN.DO output for RACWY2.BA program (11/14/89 REV.09/16/90) 12 DEFSNG A-Z:DEFINT E,I,J,M,Q,X,W,Z 14 SCREEN 0 15 CLS:FILES:DIM A(450),A$(9),L(9,100),E(9),V(9),Z1(9),Z2(9),Z3(9),Z4(9) 20 PRINT@240,"";:INPUT"Enter Heat Number";H1$ 25 IF LEN(Z$)>2 THEN PRINT@260," ";:SOUND 10000,20:PRINT@280,"2 characters max. length!";:GOTO 20 30 Z$="HEAT"+H1$:X$=Z$+".DO" 35 FL=99:WL=0:WN=0:TIME$="00:00:00" 36 FOR I=0 TO 9:IF I=0 THEN Z1(0)=305 ELSE IF I<6 THEN Z1(I)=(I*40)+84 ELSE Z1(I)=((I-5)*40)+105 37 Z2(I)=Z1(I)+5:Z3(I)=Z1(I)+4:Z4(I)=Z1(I)+3:NEXT I 40 OPEN X$ FOR APPEND AS 1 42 PRINT#1,"***************************************" 45 PRINT#1,DATE$;" ";Z$ 50 GOSUB 420 60 GOSUB 290:T1=V:TH=V 150 X$=INKEY$:IF X$<>"" THEN 800 160 GOSUB 290:ET=V-T1 170 IF V>TH THEN TS%=0:TH=V 175 IF Q=0 THEN FOR I=0 TO 9:V(I)=V:NEXTI:Q=1:TH=V:T1=V:BEEP:BEEP 180 PRINT@26,ET$;:PRINT@33,TS%;:TS%=TS%+2:IF TS%=10 THEN TS%=0 184 IF VAL(M$)=TTL% AND NV%=0 THEN BEEP:BEEP:NV%=1 185 IF VAL(M$)=TTL% AND VAL(S$)>29 THEN GOTO 9000 190 GOTO 150 290 T$=TIME$:M=VAL(MID$(T$,4,2)):S=VAL(RIGHT$(T$,2)) 300 V=(M*60)+S 320 H1=INT(ET/3600):H$=STR$(H1) 330 S1=ET MOD 60:S$=STR$(S1) 340 M1=INT((ET-(H1*3600)-S1)/60):M$=STR$(M1) 350 ET$=M$+":"+S$+": " 360 RETURN 420 CLS:CALL 17001 :PRINT@55,"gggggggg":PRINT@135,"hhhhhhhh":CALL 17006 :PRINT@96,Z$:PRINT@162,"";:INPUT"Enter #minutes(ex.4,5,6,etc.)";TTL% 500 CALL 16959:CLS 510 CALL17001:PRINT@2,TTL%;"Minute Race" 515 PRINT@69," ";Z$;" " 520 PRINT@21," Time " 550 PRINT@80,"Car Laps Time Car Laps Time " 560 PRINT@120," 1 ":PRINT@160," 2 ":PRINT@200," 3 ":PRINT@240," 4 ":PRINT@280," 5 " 570 PRINT@141," 6 ":PRINT@181," 7 ":PRINT@221," 8 ":PRINT@261," 9 " 580 PRINT@301," 0 " 690 CALL 17006 700 PRINT@42,"HIT ANY KEY TO START RACE!":IF RND(1)*10<3 THEN PRINT@57,"ooooo" 710 X$=INKEY$:IF X$="" THEN 700 ELSE PRINT@42,SPACE$(16);"Fast Lap ":RETURN 800 IF ASC(X$)>57 OR ASC(X$)<48 THEN 160 900 SOUND 400,1:X=VAL(X$) 1100 IF E(X)=1 THEN 160 ELSE A(C)=(V-T1)+(X/10):C=C+1:TM=(V-V(X))+(TS%/10):V(X)=V:L(X,(L(X,0)+1))=TM:L(X,0)=L(X,0)+1:IFTM<=FL THEN GOSUB 5000 1115 PRINT@Z1(X),L(X,0):IF VAL(M$)=TTL% THEN E(X)=1:GOTO 1150 1120 PRINT@Z2(X),USING"###.#";TM 1130 GOTO 160 1150 PRINT@Z3(X),ET$;TS%:A$(X)=STR$(X)+ET$+STR$(TS%) 1170 IF L(X,0)>WL THEN WL=L(X,0):WN=X 2000 GOTO 160 5000 PRINT@41,USING"#";X:PRINT@44,L(X,0):PRINT@49,USING"###.#";TM:FL=TM:RETURN 9000 BEEP:'END ROUTINE 9100 GOTO 9300:FOR X=0 TO 9 9120 IF L(X,0)<1 THEN PRINT@Z2(X),"DNS":NEXT ELSE IF WN=X THEN PRINT@Z4(X),"*" ELSE IF E(X)=0 THEN PRINT@Z3(X)," DNF " 9130 IF X>=9 THEN 9200 ELSE NEXT 9200 FOR X=0 TO 9:FOR J=1 TO L(X,0) 9215 IF L(X,0)=0 THEN I=I+1:GOTO 9230 9220 PRINT#1,"Car ";X;" Lap ";:PRINT#1,USING"##";J;:PRINT#1," ";:PRINT#1,USING"###.#";L(X,J);:PRINT#1," Sec" 9230 NEXT:NEXT 9300 PRINT#1,"***************************************":FOR I=40 TO 319 9320 A$=A$+CHR$(PEEK(I-512)) 9325 IF I=78 OR I=118 OR I=158 OR I=198 OR I=238 OR I=278 OR I=318 THEN PRINT #1,A$:A$="":I=I+1 9330 NEXT 9340 PRINT#1,"***************************************" 9345 CLOSE #1 9346 'GOTO 9998 9348 OPEN "RRUN"+H1$+".DO" FOR APPEND AS#1 9350 FOR I=0 TO 9:E=E+L(I,0):NEXT 9360 FOR I=0 TO 9:IF L(I,0)>TTL THEN TTL=L(I,0):NEXT ELSE NEXT 9365 PRINT#1,TTL 9370 FOR I=0 TO (E-1):PRINT#1,A(I):NEXT 9380 FOR I=0 TO 9 9390 IF L(I,0)<1 THEN PRINT#1,"T";I;" DNS" ELSE IF L(I,0)>0 AND A$(I)="" THEN PRINT#1,"T";I;L(I,0);" DNF" ELSE PRINT#1,"T";I;L(I,0);RIGHT$(A$(I),6) 9400 NEXT I 9410 PRINT#1,"END";WN 9990 CLOSE #1 9998 CALL 16964 9999 PRINT@0,"";:END