 CLEAR ,40000&
 
 hx=16:lc=46:ltt=120:lj=120:g$="":u$="":co=0:hrse=0:rl=0

 DIM t(hx),w$(hx),k%(hx,15),k$(hx,10),o(hx),y$(hx,3),d%(hx,3),v%(hx,3),h%(hx,3)

 DEF FNNOTN(x$)=((ASC(x$)<48) OR (ASC(x$)>57))

7 CLS:PRINT CHR$(7);CHR$(7):INPUT "Type F for flat  N for National Hunt....F/N...";ver$:ver$=UCASE$(ver$):IF ver$<>"F" AND ver$<>"N" THEN GOTO 7

 DIM e(hx),s(hx),P(hx),d$(hx)

 GOSUB 1300

 DIM i(10),t$(ltt),j$(lj),c$(lc),b%(lc,10,2),f$(lc)

 DIM m(10),r(hx),f(16),g(11)
 

 FOR x=1 TO 10:i(x)=5:NEXT x:FOR x=1 TO 6:READ m(x):NEXT x:FOR x=1 TO 16:READ f(x):NEXT x:FOR x=1 TO 11:READ g(x):NEXT x

 CLS:PRINT "LOADING DATAFILES....";

 OPEN "CFJTB"+ver$  FOR INPUT AS #3

 FOR x=1 TO lc:INPUT #3,c$(x):NEXT x
 FOR x=1 TO lc:INPUT #3,f$(x):NEXT x
 FOR x=1 TO lj:INPUT #3,j$(x):NEXT x
 FOR x=1 TO ltt:INPUT #3,t$(x):NEXT x 
 FOR x=1 TO lc:PRINT ".";:FOR y=1 TO 10:INPUT #3,b%(x,y,1)
 INPUT #3,b%(x,y,2):NEXT y:NEXT x:CLOSE #3

 GOTO 6000

 STOP

75 CLS:IF hrs=0 THEN 7200

77  PRINT c$(co);"  ";u$;"  ";rl;"f ";g$:PRINT TAB(34);"RATINGS":PRINT "   RUNNER(WT)     DRAW SP";TAB(33);"1   2   3":PRINT "--------------------------------------------"


 FOR h=1 TO hrs-1:PRINT LEFT$(k$(h,2),3);:PRINT TAB(5);LEFT$(k$(h,5),8);

 PRINT "(";k$(h,1);")";TAB(20);k%(h,5);TAB(24);k$(h,3);TAB(32);k%(h,10);TAB(36);k%(h,11);TAB(40);k%(h,12):NEXT h:PRINT  "--------------------------------------------":INPUT "PRESS RETURN...",x$ 

 CLS:PRINT  c$(co);"  ";u$;"  ";rl;"f ";g$:PRINT :PRINT "RUNNER           Jky  Trnr  TPM     SPM":PRINT "-------------------------------------------":FOR h=1 TO hrs-1

 PRINT  LEFT$(k$(h,5),15);:PRINT  TAB(17);k%(h,7);TAB(22);k%(h,6);

 PRINT TAB(28);k%(h,1)*100;TAB(36);k%(h,2)*100:NEXT h:PRINT "-------------------------------------------";: PRINT :PRINT 

 INPUT "   Copy to printer..(Y/N)..",x$:IF UCASE$(x$)<>"Y" THEN RETURN

80 LPRINT c$(co);"  ";u$;"  ";rl;"f ";g$:LPRINT TAB(34);"RATINGS":LPRINT"   RUNNER(WT)     DRAW SP";TAB(33);"1   2   3":LPRINT "--------------------------------------------"


 FOR h=1 TO hrs-1:LPRINT LEFT$(k$(h,2),3);:LPRINT TAB(5);LEFT$(k$(h,5),8);

 LPRINT "(";k$(h,1);")";TAB(20);k%(h,5);TAB(24);k$(h,3);TAB(32);k%(h,10);TAB(36);k%(h,11);TAB(40);k%(h,12):NEXT h:LPRINT  "--------------------------------------------"

 LPRINT  c$(co);"  ";u$;"  ";rl;"f ";g$:LPRINT :LPRINT "RUNNER           Jky  Trnr  TPM     SPM":LPRINT "-------------------------------------------":FOR h=1 TO hrs-1

 LPRINT  LEFT$(k$(h,5),15);:LPRINT  TAB(17);k%(h,7);TAB(22);k%(h,6);

LPRINT TAB(28);k%(h,1)*100;TAB(36);k%(h,2)*100:NEXT h:LPRINT "-------------------------------------------";: LPRINT :LPRINT 


RETURN

90 IF hrs=0 THEN 7200

 GOSUB 1200

100 REM 060487

 GOSUB 1800

 GOSUB 7600

 GOSUB 8600

 GOSUB 800

 GOSUB 1600

119 CLS:PRINT"ANALYSIS":PRINT "--------"

 PRINT "                CALC           FORM  PROFIT"

 PRINT "  RUNNER        ODDS  SP      RATING FACTOR"

 PRINT "--------------------------------------------"
 FOR x=1 TO hx:o(x)=P(x):NEXT x
 GOSUB 400
 FOR h=1 TO hrs-1
 PRINT LEFT$(k$(s(h),5),13);TAB(16);:v3=P(s(h))
 GOSUB 1720:PRINT s$;TAB(23);k$(s(h),3);
 PRINT TAB(32);INT(k%(s(h),3)*10);TAB(39);:GOSUB 2000:PRINT 
 NEXT h
 PRINT "--------------------------------------------"
 INPUT "Copy to printer..(Y/N)..",x$:IF UCASE$(x$)<>"Y" THEN RETURN
120 LPRINT  "ANALYSIS":LPRINT "--------":LPRINT
 LPRINT "                CALC           FORM  PROFIT"
 LPRINT "  RUNNER        ODDS  SP      RATING FACTOR"
 LPRINT "--------------------------------------------"
 FOR x=1 TO hx:o(x)=P(x):NEXT x
 GOSUB 400
 FOR h=1 TO hrs-1
 LPRINT LEFT$(k$(s(h),5),13);TAB(16);:v3=P(s(h))
 GOSUB 1720:LPRINT s$;TAB(23);k$(s(h),3);
 LPRINT TAB(32);INT(k%(s(h),3)*10);TAB(39);:GOSUB 2001:LPRINT 
 NEXT h  
 

LPRINT "--------------------------------------------"


240 RETURN

400 REM

 FOR x=1 TO hx:s(x)=x:NEXT x

 FOR h=1 TO hrs-1

 FOR j=1 TO hrs-1-h

 IF o(s(j))<o(s(j+1)) THEN GOSUB 480

 NEXT j:NEXT h

 RETURN

480 h2=s(j):s(j)=s(j+1):s(j+1)=h2:RETURN

500 REM

 mo2=s(1)

 FOR x=1 TO hx:IF s(x)>mo2 THEN mo2=s(x)

 NEXT x

 IF mo2=0 THEN FOR x=1 TO hx:t(x)=1:NEXT x:RETURN

 FOR x=1 TO hx

 t(x)=INT(s(x)*hx/mo2):IF t(x)=0 THEN t(x)=1

 NEXT x

600 REM

 IF dv=0 THEN gd=10:RETURN

 IF dv<10 THEN gd=dv-4:RETURN

 IF dv<15 THEN gd=INT((dv+2)/2):RETURN

 IF dv<20 THEN gd=8:RETURN

 IF dv>=20 THEN gd=9:RETURN

 RETURN

700 REM

 IF vl=0 THEN gv=10:RETURN

 gv=INT(vl/(200+(200+(vl/9)))+1

 RETURN

750 REM

 IF v$="S" THEN gg=1:RETURN

 IF v$="GS" THEN gg=2:RETURN

 IF v$="G" THEN gg=3:RETURN

 IF v$="GF" THEN gg=4:RETURN

 IF v$="F" THEN gg=5:RETURN

 gg=6:RETURN

800 REM

810 FOR x=1 TO hx:s(x)=84-k%(x,4):NEXT x:GOSUB 500:ap=7:GOSUB 880

815 FOR x=1 TO hx:s(x)=84-k%(x,4):NEXT x:GOSUB 500:ap=7:GOSUB 880

820 FOR x=1 TO hx:s(x)=k%(x,1):NEXT x:GOSUB 500:ap=1:GOSUB 880

830 FOR x=1 TO hx:s(x)=k%(x,2):NEXT x:GOSUB 500:ap=2:GOSUB 880

840 FOR x=1 TO hx:s(x)=k%(x,3):NEXT x:GOSUB 500:ap=3:GOSUB 880

850 FOR y=1 TO 3

860 FOR x=1 TO hx:s(x)=k%(x,9+y):NEXT x:GOSUB 500:ap=y+3:GOSUB 880

870 NEXT y:RETURN

880 IF i(ap)<>0 THEN FOR x=1 TO i(ap):FOR h=1 TO hrs-1:P(h)=P(h)*(1+(t(h)/100)):NEXT h:NEXT x

890 RETURN

900 REM

905 FOR x=1 TO hx:k%(x,3)=0:NEXT x

910 FOR h=1 TO hrs-1

930 FOR z=1 TO 3

940 dv=d%(h,z):GOSUB 600:d1=gd

950 dv=rl:GOSUB 600:d2=gd

960 IF d1=10 OR d2=10 THEN pv=7:GOTO 990

965 v$=y$(h,z):GOSUB 750:g1=gg

970 v$=g$:GOSUB 750:g2=gg

975 IF (d1>d2+2) OR (d1<d2-2) THEN pv=7:GOTO 990

980 IF(g1>g2+1) OR (g1<g2-1) THEN pv=7:GOTO 990

982 pv=h%(h,z)

985 IF h%(h,z)=0 OR h%(h,z)>7 THEN pv=7

990 k%(h,3)=INT(k%(h,3)+v%(h,z)/pv)

995 NEXT z:NEXT h:RETURN

1000 REM

1002 CLS

1005 IF co=0 THEN PRINT:PRINT "   NOTE: NO COURSE HAS BEEN SELECTED":PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:INPUT "Press RETURN and select course...";q$:GOSUB 3000

1010 CLS

1020 PRINT "LOG NEW RACE":PRINT:PRINT

1021 PRINT "(previous race will be erased)":PRINT:PRINT:PRINT:PRINT

1022 INPUT "X TO EXIT, RETURN TO CONTINUE...",x$:PRINT:PRINT:PRINT:PRINT:IF UCASE$(x$)="X" THEN RETURN

1023 CLS

1025 INPUT "Race length in furlongs...",fu$:IF fu$="" THEN 1025 ELSE IF FNNOTN(fu$) GOTO 1025

1026 rl=VAL(fu$) :IF rl<5 THEN 1023

1028 PRINT:PRINT:INPUT "Race time......",u$

1029 GOSUB 1300:CLS:PRINT:PRINT c$(co);"   ";u$;cy$

1030 PRINT:PRINT "NAMES OF RUNNERS (F to end, C to correct)..."

1040 PRINT "----------------------------------------"

1060 hrs=0

1070 FOR h=1 TO hx

1080 hrs=h

1100 PRINT hrs;" ";

1101 INPUT "",i$

1102 IF i$="" THEN GOTO 1100

1103 IF UCASE$(i$)="F" THEN h=hx:GOTO 1130

1104 k$(h,5)=i$

1105 IF UCASE$(i$)="C" THEN PRINT "  CORRECTION....":h=h-1:GOTO 1080

1130 NEXT h  
 
1135 IF hrs=hx THEN hrs=hx+1

1140 PRINT "----------------------------------------"

1150 k%(1,8)=hrs:FOR x=1 TO hrs-1:k$(x,3)="50-1":NEXT x:RETURN

1200 REM

1205 CLS:PRINT TAB(8);"ANALYSING...Please wait..."

1210 FOR x=1 TO hrs-1

1220 prob=1

1230 FOR v=1 TO 3

1232 IF v>LEN(k$(x,2)) THEN prob=prob*m(1):GOTO 1250

1234 h3$=MID$(k$(x,2),v,1)

1235 IF (ASC(h3$)>53)OR(ASC(h3$)<48) THEN prob=prob*m(1):GOTO 1250

1240 prob=prob*m(VAL(h3$)+1)

1250 NEXT v

1260 prob=prob*.3

1270 P(x)=prob

1280 NEXT x

1285 GOSUB 1360

1290 RETURN

1300 REM

1310 FOR x=1 TO hx:t(x)=0:w$(x)="":o(x)=0:e(x)=1:NEXT x

1312 FOR x=1 TO hx:FOR y=1 TO 15:k%(x,y)=0:NEXT y:FOR y=1 TO 10:k$(x,y)="":NEXT y

1314 FOR y=1 TO 3:v%(x,y)=0:h%(x,y)=0:NEXT y:NEXT x

1320 k%(2,8)=co:k%(3,8)=rl:k$(3,6)=g$:k$(1,6)=u$

1330 RETURN

1360 REM

 ttl=0

 FOR x=1 TO hrs-1

 ttl=ttl+P(x)

1400 NEXT x

 fa=1/ttl

 FOR x=1 TO hrs-1

 P(x)=P(x)*fa

 NEXT x

 RETURN

1500 REM

 y=0

1520  y=y+1

 vv$=MID$(r$,y,1)

 IF(ASC(vv$)<48)OR(ASC(vv$)>57) THEN 1555

GOTO 1520

1555 j=LEN(r$)

z=VAL(LEFT$(r$,y-1))/VAL(RIGHT$(r$,j-y))

 RETURN

1600 ttl=0

1610 FOR x=1 TO hrs-1

1620 P(x)=P(x)*r(x)

1622 GOSUB 8700:P(x)=P(x)*e(x):P(x)=P(x)*cr

1625 ttl=ttl+P(x)

1630 NEXT x

1640 fa=1/ttl

1650 FOR x=1 TO hrs-1

1660 P(x)=P(x)*fa

1670 NEXT x

1680 RETURN

1720 REM

1730 IF v3>.5 THEN 1775

1740 x=INT(1/v3+.1)

1750 s$=STR$(x-1)+"-1"

1760 IF (2*x<y) AND (y<13) THEN s$=STR$(y-2)+"-2"

1765 IF x>50 THEN s$="100-1"

1770 RETURN

1775 x=INT(10*(v3-.4))

1780 s$="1-"+STR$(x)

1790 RETURN

1800 REM

 ttl=0

 FOR x=1 TO hrs-1

 r$=k$(x,3):GOSUB 1500:s=INT(z)+1

 IF (s>15)AND(s<25) THEN s=15

 IF s>24 THEN s=16

 r(x)=f(s)

 ttl=ttl+r(x)

 NEXT x

 ft=1/ttl

 FOR x=1 TO hrs-1

 r(x)=r(x)*ft

 NEXT x

 RETURN

2000 REM

 r$=k$(s(h),3):GOSUB 1500:sars=P((s(h)))*z

 IF sars>=.9 THEN PRINT "*";:IF sars>1 THEN PRINT  "*";

 IF sars>=1.1 THEN PRINT "*";

 RETURN

2001 REM

 r$=k$(s(h),3):GOSUB 1500:sars=P((s(h)))*z

 IF sars>=.9 THEN LPRINT "*";:IF sars>1 THEN LPRINT  "*";

 IF sars>=1.1 THEN LPRINT "*";
 
 RETURN

3000 REM                       
                     
 CLS:FOR x=1 TO lc STEP 3: IF c$(x)<>"" THEN PRINT x;TAB(5);c$(x);TAB(20);x+1;TAB(24);c$(x+1);TAB(40);x+2;TAB(44);c$(x+2):NEXT x

3030 LOCATE 18,1:INPUT "Enter Course (number)...",x$:IF x$="" THEN 3030 ELSE IF FNNOTN(x$) THEN 3030

 IF (VAL(x$)<1)OR(VAL(x$)>lc) THEN GOTO 3030

3045 g$="":PRINT:INPUT  "GOING...(F,G,S,GF,GS)...",g$:IF x$="" THEN 3045 ELSE IF FNNOTN(x$) THEN 3045

 co=VAL(x$):k%(2,8)=co:k$(3,6)=g$

 GOSUB 7000

 RETURN

3500 CLS:PRINT TAB(9); "CHANGE JKY/TRNER INFO":PRINT:PRINT:PRINT:PRINT:PRINT

 PRINT TAB(7);"C....Change Course Info":PRINT:PRINT TAB(7);"J....Change/Add to Jockeys":PRINT

 PRINT TAB(7);"T....Change/Add to Trainers":PRINT

 PRINT TAB(7);"S....Save New DATAFILE":PRINT:PRINT TAB(7);"X....EXIT"

3520 x$=INKEY$:x$=UCASE$(x$):IF x$="" THEN 3520

 IF x$="X" THEN RETURN

 IF x$="C" THEN GOSUB 4000

 IF x$="J" THEN GOSUB 3600

 IF x$="T" THEN GOSUB 3700

 IF x$="S" THEN GOSUB 3800

 GOTO 3500

3600 CLS:PRINT TAB(13);"CHANGE JOCKEYS":PRINT

 ls=lj:PRINT:PRINT:PRINT:FOR x=1 TO lj:IF j$(x)="" OR j$(x)=" " THEN ls=x:x=lj

 NEXT x:PRINT ls-1;"  JOCKEYS LISTED  (MAX ";lj-1;")":PRINT:PRINT

 INPUT "A=Add new name,  C=Change ",x$:x$=UCASE$(x$):PRINT:PRINT:PRINT

 IF x$="C" THEN INPUT "change number...",x:PRINT

 IF x$="C" AND x>0 AND x<ls THEN PRINT x;" ";j$(x):PRINT:INPUT "Enter new name...",i$:IF i$<>"" THEN j$(x)=i$:RETURN ELSE RETURN

 IF x$="A" THEN INPUT "Enter new name...",j$(ls):PRINT:PRINT:PRINT" Added = No. ";ls

 PRINT:PRINT:INPUT "Press RETURN...",x$:RETURN

3700 CLS:PRINT TAB(13);"CHANGE TRAINERS":PRINT

 ls=ltt:PRINT:PRINT:PRINT:FOR x=1 TO ltt:IF t$(x)="" OR t$(x)=" " THEN ls=x:x=ltt

 NEXT x:PRINT ls-1;"  TRAINERS LISTED (MAX ";ltt-1;")":PRINT:PRINT

 INPUT "A=Add new name,  C=Change ",x$:x$=UCASE$(x$):PRINT:PRINT:PRINT

IF x$="C" THEN INPUT "change number...",x:PRINT

IF x$="C" AND x>0 AND x<ls THEN PRINT x;" ";t$(x):PRINT:INPUT "enter new name...",i$:IF i$<>"" THEN t$(x)=i$:RETURN ELSE RETURN

 IF x$="A" THEN INPUT "Enter new name...",t$(ls):PRINT:PRINT:PRINT" Added = No. ";ls:PRINT:PRINT:INPUT "Press RETURN...",x$

 RETURN

3800 CLS:PRINT TAB(11);"SAVE INFO DATA FILES":PRINT:PRINT

 INPUT "X to exit, RETURN to continue...",x$:PRINT:PRINT:IF UCASE$(x$)="X" THEN RETURN

 OPEN "CFJTB"+ver$  FOR OUTPUT AS #3

 FOR x=1 TO lc:PRINT #3,c$(x):NEXT x

 FOR x=1 TO lc:PRINT #3,f$(x):NEXT x

 FOR x=1 TO lj:PRINT #3,j$(x):NEXT x

 FOR x=1 TO ltt:PRINT #3,t$(x):NEXT x

 FOR x=1 TO lc:FOR y=1 TO 10:PRINT #3,b%(x,y,1):PRINT #3,b%(x,y,2):NEXT y:NEXT x

 CLOSE #3

 RETURN

4000 REM

 CLS:PRINT TAB(8);"CHANGE JOCKEY/TRAINERS":PRINT:PRINT:INPUT "X to exit ",x$:IF UCASE$(x$)="X" THEN RETURN

 PRINT:PRINT: INPUT "COURSE NUMBER....",x$:IF x$="" THEN RETURN ELSE IF FNNOTN(x$) THEN RETURN

 x=VAL(x$):IF x<1 OR x>lc THEN RETURN

 co=x:CLS:PRINT:PRINT c$(co):PRINT:PRINT

 PRINT "Please give leading jockey Nos...":PRINT

 FOR x=1 TO 10

4060 LOCATE x+10,1:PRINT x;".... ";:INPUT "",i$:IF i$="" THEN 4060 ELSE IF FNNOTN(i$) THEN 4060

 ij=VAL(i$):IF ij>0 AND ij<lj+1 THEN LOCATE  x+10,14:PRINT "= ";j$(ij):b%(co,x,1)=ij ELSE 4060

 NEXT x

4080 CLS:PRINT:PRINT c$(co):PRINT:PRINT

 PRINT "Please give leading trainer Nos...":PRINT:PRINT:PRINT:FOR x=1 TO 10

4100 LOCATE  x+10,1:PRINT ;;".... ";:INPUT "",i$:IF i$="" THEN 4100 ELSE IF FNNOTN(i$) THEN 4100

 ij=VAL(i$):IF ij>0 AND ij<ltt+1 THEN LOCATE x+10,14:PRINT  "= ";t$(ij):b%(co,x,2)=ij ELSE 4100

 NEXT x

 RETURN

4500 CLS:IF hrs=0 THEN 7200

 PRINT "SAVE CURRENT RACE DATA":PRINT:PRINT

 INPUT "X to abort...",x$:PRINT:PRINT:PRINT:IF UCASE$(x$)="X" THEN RETURN

 INPUT "Race ref No..(for your own ref. only)..";x$

 OPEN  "KS"+x$+ver$  FOR OUTPUT AS #3

 FOR x=1 TO hx:FOR y=1 TO 15

 PRINT #3,k%(x,y):NEXT y:NEXT x

 FOR x=1 TO hx:FOR y=1 TO 10

 PRINT #3,k$(x,y)


 NEXT y:NEXT x

 CLOSE #3

 RETURN

4600 CLS:PRINT TAB(14);"LOAD RACE DATA":PRINT:PRINT

 INPUT "X to abort...",x$:PRINT:PRINT:PRINT:IF UCASE$(x$)="X" THEN RETURN

 INPUT "Race ref No...";x$

 ON ERROR GOTO  NOFILE
 
 OPEN "KS"+x$+ver$  FOR INPUT AS #3

 FOR x=1 TO hx:FOR y=1 TO 15

 INPUT #3,k%(x,y):NEXT y:NEXT x

 FOR x=1 TO hx:FOR y=1 TO 10

 INPUT #3,k$(x,y)

 NEXT y:NEXT x

 CLOSE #3

 co=k%(2,8):hrs=k%(1,8):rl=k%(3,8):u$=k$(1,6):g$=k$(3,6)

 CLS:PRINT c$(co);"  ";u$;"  LOADED"

 PRINT:PRINT: PRINT:PRINT:INPUT "Press RETURN...",x$

 RETURN
 NOFILE:
   CLS:PRINT:PRINT CHR$(7);"THIS FILE NUMBER DOES NOT EXIST ON DISC."
   PRINT:INPUT "Press RETURN...";x$
   RESUME 6000

5500 REM

 CLS:IF hrs=0 THEN 7200

 PRINT TAB(15);"CHANGE PRICES":PRINT:PRINT"----------------------------------------"

 FOR h=1 TO hrs-1:PRINT " ";h;TAB(6);k$(h,5);TAB(26);k$(h,3);:PRINT TAB(34);:INPUT "",ch$

 IF ch$<>"" THEN k$(h,3)=ch$

 IF LEN(k$(h,3))<3 THEN k$(h,3)=k$(h,3)+"-1"

 NEXT h

 PRINT "----------------------------------------":PRINT:INPUT "press RETURN..",q$

 RETURN

6000 REM

 ON ERROR GOTO 0
 
 CLS:PRINT TAB(35);"COURSEWINNER V3"

 PRINT:PRINT:PRINT TAB(31);"copyright  SELEC  1987"

 PRINT:PRINT:PRINT TAB(38);"FUNCTIONS":PRINT:PRINT

 PRINT TAB(32);"C.....Courses":PRINT TAB(32);"N.....Log a New Race"

 PRINT TAB(32);"V.....View Information":PRINT TAB(32);"I.....Input Race Information"

 PRINT TAB(32);"P.....Prices":PRINT TAB(32);"A.....Analyse Current Data"

 PRINT TAB(32);"B.....Adjust Biasing":PRINT TAB(32);"D.....Change Jky/Trner Data"

 PRINT TAB(32);"S.....Save Current Race Data":PRINT TAB(32);"L.....Load Race Data"

 PRINT:PRINT:PRINT TAB(28);"Course logged = ";:IF co=0 THEN PRINT "NONE  "; ELSE PRINT c$(co);"  ";

6090 q$=INKEY$:q$=UCASE$(q$):IF q$="" THEN 6090

 IF q$="N" THEN GOSUB 1000

 IF q$="A" THEN GOSUB 90

 IF q$="V" THEN GOSUB 75

 IF q$="I" THEN GOSUB 7200

 IF q$="P" THEN GOSUB 5500

 IF q$="C" THEN GOSUB 3000

 IF q$="B" THEN GOSUB 7400

 IF q$="D" THEN GOSUB 3500

 IF q$="S" THEN GOSUB 4500

 IF q$="L" THEN GOSUB 4600

 GOTO 6000

7000 REM

 CLS:PRINT  c$(co):PRINT

 PRINT "DRAW FAVOURED  ";: GOSUB 9000:PRINT 

 PRINT:PRINT "Todays going   ";:g$=UCASE$(g$)

 IF g$="G" THEN PRINT "GOOD"

 IF g$="S" THEN PRINT "SOFT"

 IF g$="F" THEN PRINT "FIRM"

 IF g$="GS" THEN PRINT "GOOD TO SOFT"

 IF g$="GF" THEN PRINT "GOOD TO FIRM"

 IF g$="" THEN PRINT "NOT KNOWN"

 PRINT:PRINT

 PRINT  "LEADING TRAINERS";TAB(22);"LEADING JOCKEYS":PRINT "----------------";TAB(22);"---------------"

 FOR x=1 TO 10:PRINT x;:PRINT TAB(6)t$(b%(co,x,2));

 PRINT TAB(22);TAB(27);j$(b%(co,x,1))

 NEXT x

 LOCATE 22,1:INPUT  "Press RETURN....",q$

 RETURN

7200 CLS:IF hrs=0 THEN PRINT TAB(14);"NO RACE LOGGED":PRINT:PRINT:PRINT:INPUT "PRESS RETURN...";x$:RETURN

 PRINT "INPUT RACE INFORMATION":PRINT:PRINT:PRINT:PRINT

 PRINT TAB(9)"1...Draw/Wt/Placing":PRINT

 PRINT TAB(9)"2...Jky/Trner Info":PRINT

 PRINT TAB(9)"3...Prize Money/3 Race Form":PRINT

 PRINT TAB(9)"4...Speed Factors":PRINT

 PRINT TAB(9)"5...View Information":PRINT

 PRINT TAB(9)"6...EXIT to Menu"

7260 x$=INKEY$:IF x$="" THEN 7260 ELSE IF FNNOTN(x$) THEN 7260

 IF VAL(x$)<1 OR VAL (x$)>6 THEN 7260

 ON VAL(x$) GOSUB 9700,8100,9800,7300,75

 IF x$="6" THEN RETURN

 GOTO 7200

7300 FOR h=1 TO hrs-1

 CLS:PRINT "ENTER SPEED RATING (UP TO 3)":PRINT:PRINT:PRINT "X to exit, RETURN to continue"

 x$="":INPUT "A number to change an entry... ",x$:IF UCASE$(x$)="X" THEN h=hrs-1:GOTO 7340

 IF x$="" THEN 7310 ELSE IF FNNOTN(x$) THEN 7310

 IF VAL(x$)>0 AND VAL(x$)<hrs THEN h=VAL(x$)

7310 CLS:PRINT:PRINT k$(h,5):PRINT:PRINT:FOR x=1 TO 3

 PRINT "SPEED FACTOR (";x;")... ";:INPUT "",i$:k%(h,x+9)=VAL(i$):PRINT:PRINT

7330 NEXT x

7340 NEXT h

7350 PRINT:PRINT:PRINT:INPUT "Press RETURN...",q$:RETURN

7400 CLS:PRINT TAB(15) "ADJUST BIAS":PRINT:PRINT

 PRINT "TYPE ADJUSTED BIASING":PRINT "(RETURN to leave unchanged)":PRINT:PRINT

 PRINT "TOTAL PRIZE MONEY....(";i(1);") ";:GOSUB 7480:IF x<>-1 THEN i(1)=x

 PRINT "SEASONS PRIZE MONEY..(";i(2);") ";:GOSUB 7480:IF x<>-1 THEN i(2)=x

 PRINT "THREE RACE FORM......(";i(3);") ";:GOSUB 7480:IF x<>-1 THEN i(3)=x

 PRINT "SPEED FACTOR 1.......(";i(4);") ";:GOSUB 7480:IF x<>-1 THEN i(4)=x

 PRINT "SPEED FACTOR 2.......(";i(5);") ";:GOSUB 7480:IF x<>-1 THEN i(5)=x

 PRINT "SPEED FACTOR 3.......(";i(6);") ";:GOSUB 7480:IF x<>-1 THEN i(6)=x

 PRINT "WEIGHT CARRIED.......(";i(7);") ";:GOSUB 7480:IF x<>-1 THEN i(7)=x

 PRINT "LEADING JOCKEYS......(";i(8);") ";:GOSUB 7480:IF x<>-1 THEN i(8)=x

 PRINT "LEADING TRAINERS.....(";i(9);") ";:GOSUB 7480:IF x<>-1 THEN i(9)=x

 PRINT "STALL EFFECT.........(";i(10);") ";:GOSUB 7480:IF x<>-1 THEN i(10)=x

 PRINT:PRINT:INPUT "Press RETURN...",x$:RETURN

7480 INPUT "",i$:IF i$="0" THEN x=0:RETURN ELSE IF i$="" THEN x$="0" ELSE IF FNNOTN(i$) THEN x$="0"

 x=VAL(i$):IF x>10 OR x<1 THEN x=-1

 RETURN

7500 REM

 IF o$="NO" THEN RETURN

 GOSUB 7600

 RETURN

7600 REM

  FOR h=1 TO hrs-1

 prob=1

 y=k%(h,7):GOSUB 7900:FOR x=1 TO i(8):prob=prob*g(oder+1):NEXT x

 y=k%(h,6):GOSUB 7800:FOR x=1 TO i(9):prob=prob*g(oder+1):NEXT x

 e(h)=prob

 NEXT h

 ttl=0:FOR x=1 TO hrs-1:ttl=ttl+e(x):NEXT x

 fc=1/ttl:FOR x=1 TO hrs-1:e(x)=e(x)*fc:NEXT x

 RETURN

7800 REM

 oder=0:FOR x=1 TO 10:IF y=b%(co,x,2) THEN oder=x

 NEXT x:RETURN

7900 REM

 oder=0

 FOR x=1 TO 10:IF y=b%(co,x,1) THEN oder=x

 NEXT x:RETURN

8100 REM

 CLS:IF hrs=0 THEN 7200

 PRINT "TYPE REF NUMBER IF REPRESENTED ....":PRINT:GOSUB 8500

 FOR h=1 TO hrs-1:LOCATE 21,1:PRINT h;"  ";LEFT$(k$(h,5),12);"                               "

 LOCATE 21,27:INPUT "",i$:IF i$="" THEN i$="0" ELSE IF FNNOTN(i$) THEN i$="0"

 k%(h,7)=VAL(i$)

 LOCATE 21,34:INPUT "",i$:IF i$="" THEN i$="0" ELSE IF FNNOTN(i$) THEN i$="0"

 k%(h,6)=VAL(i$):LOCATE  21,1:PRINT "                                            "

 NEXT h

 INPUT "Press RETURN..",x$:RETURN

8500 REM

 PRINT c$(co);":":PRINT:PRINT TAB(3);"LEADING JOCKEY$";TAB(21);"LEADING TRAINERS":PRINT "----------------------------------------"

 FOR x=1 TO 10:PRINT b%(co,x,1);:PRINT TAB(6);LEFT$(j$(b%(co,x,1)),14);

 PRINT TAB(20);b%(co,x,2);TAB(25);:PRINT LEFT$(t$(b%(co,x,2)),14)

 NEXT x

 PRINT:PRINT:PRINT "  NAME                    JKY    TRNER"

 PRINT "---------------------------------------"

 RETURN

8600 REM

 e$="NONE":IF f$(co)="N" THEN RETURN

 FOR x=1 TO LEN(f$(co)):IF FNNOTN(MID$(f$(co),x,1)) THEN ELSE IF rl=VAL(MID$(f$(co),x,1)) THEN e$=LEFT$(f$(co),1)

 NEXT x:IF e$="NONE" THEN RETURN

 IF ASC(RIGHT$(f$(co),1))<65 THEN RETURN

 e$="NONE":FOR x=2 TO LEN(f$(co))

 IF MID$(f$(co),x,1)=g$ THEN e$=LEFT$(f$(co),1)

 NEXT x:RETURN

8700 REM

 cr=1:pr=(hrs-1)/4

 IF e$="L" AND k%(x,5)<pr THEN cr=1+(i(10)/20)

 IF e$="H" AND k%(x,5)>(hrs-1)-pr THEN cr=1+(i(10)/20)

 RETURN

9000 REM

9010 IF f$(co)="N" THEN PRINT "NONE":GOTO 9060

 IF LEFT$(f$(co),1)="H" THEN PRINT "HIGH ";

 IF LEFT$(f$(co),1)="L" THEN PRINT "LOW ";

 FOR x=2 TO LEN(f$(co))

 IF ASC(MID$(f$(co),x,1))<58 THEN PRINT MID$(f$(co),x,1);"f";

 NEXT x:PRINT " (";

 FOR x=2 TO LEN(f$(co))

 IF MID$(f$(co),x,1)="F" THEN PRINT "FRM ";

 IF MID$(f$(co),x,1)="G" THEN PRINT "GD ";

 IF MID$(f$(co),x,1)="S" THEN PRINT "SFT ";

 NEXT x:PRINT ")"

9060 RETURN

9100 REM

 IF x$="" THEN RETURN ELSE IF FNNOTN(x$) THEN RETURN

 IF VAL(x$)<8 THEN wtlb=0:RETURN

 y=0:FOR x=1 TO LEN(x$):IF ASC(MID$(x$,x,1))>57 OR ASC(MID$(x$,x,1))<48 THEN y=x

 NEXT x

 IF y=0 THEN wtlb=(VAL(x$)*14)-112:RETURN

 wtlb=(VAL(LEFT$(x$,y))*14)+VAL(RIGHT$(x$,LEN(x$)-y))-112

9160 RETURN

 DATA 0.975,1,0.995,0.99,0.985,0.98

 DATA 0.59,0.33,0.25,0.19,0.16,0.15,0.13,0.12,0.12,0.12,0.07,0.06,0.05,0.04

 DATA 0.02,0.000001

 DATA 0.95,1,0.995,0.99,0.985,0.98,0.975,0.97,0.965,0.96,0.955

9700 REM

9710 FOR h=1 TO hrs-1:CLS:PRINT "INPUT DETAILS...":PRINT:PRINT

 PRINT:PRINT"X to exit, RETURN to continue ":INPUT "A number to change an entry ",x$

 IF UCASE$(x$)="X" THEN h=hrs-1:GOTO 9785

 IF x$="" THEN 9730 ELSE IF FNNOTN(x$) THEN 9730 ELSE IF VAL(x$)>0 AND VAL(x$)<hrs THEN h=VAL(x$)

9730 CLS:PRINT k$(h,5):PRINT:PRINT

 INPUT "DRAW................",i$:IF i$="X" OR i$="x"  THEN 9710

 k%(h,5)=VAL(i$)

 PRINT:PRINT:INPUT "WT CARRIED..........", i$:IF UCASE$(i$)="X" THEN 9710

 k$(h,1)=i$:x$=i$:GOSUB 9100:k%(h,4)=wtlb

 PRINT:PRINT:INPUT "OVERWEIGHT..(Lbs)...", i$:IF UCASE$(i$)="X" THEN 9710

 IF i$="" THEN i$="0" ELSE IF FNNOTN(i$) THEN i$="0"

 k%(h,4)=k%(h,4)+VAL(i$)

 PRINT:PRINT:INPUT "ALLOWANCE...(Lbs)...",i$:IF UCASE$(i$)="X" THEN 9710

 IF i$="" THEN i$="0" ELSE IF FNNOTN(i$) THEN i$="0"

 k%(h,4)=k%(h,4)-VAL(i$)

 PRINT:PRINT:INPUT "LAST THREE PLACINGS...",i$:IF UCASE$(i$)="X" THEN 9710

 k$(h,2)=i$

9785 NEXT h

9790 x$="":RETURN

9800 REM

 FOR h=1 TO hrs-1

9805 CLS:PRINT "3 RACE FORM":PRINT:PRINT

 x$="":PRINT "X to exit, RETURN to cont.":INPUT "A number to change an entry..",x$

 IF UCASE$(x$)="X" THEN h=hrs-1:GOTO 9895

 IF x$="" THEN 9810 ELSE IF FNNOTN(x$) THEN 9810

 IF VAL(x$)>0 AND VAL(x$)<hrs THEN h=VAL(x$)

9810 CLS:PRINT k$(h,5):PRINT

 PRINT:PRINT:INPUT "TOTAL PRIZE MONEY.......",i$:IF UCASE$(i$)="X" THEN 9805

 IF i$="" THEN i$="0" ELSE IF FNNOTN(i$) THEN i$="0"

 k%(h,1)=VAL(i$)/100

 PRINT:INPUT "SEASONS PRIZE MONEY.....",i$:IF UCASE$(i$)="X" THEN 9810

 IF i$="" THEN i$="0" ELSE IF FNNOTN(i$) THEN i$="0"

 k%(h,2)=VAL(i$)/100

 PRINT:INPUT "No. of outings.(max 3)..",i$:IF UCASE$(i$)="X" THEN 9810

 IF i$="" THEN i$="0" ELSE IF FNNOTN(i$) THEN i$="0"

 os=VAL(i$):IF os>3 THEN os=3

 IF os=0 THEN 9895

 FOR o=1 TO os

9850 PRINT:PRINT:PRINT "OUTING ";o:PRINT "---------"

 INPUT  "distance in furlongs...",i$:IF UCASE$(i$)="X" THEN o=os:GOTO 9890

 IF i$="" THEN i$="0" ELSE IF FNNOTN(i$) THEN i$="0"

 d%(h,o)=VAL(i$)

 INPUT "GOING (F,GF,G,GS,S)....",i$:IF UCASE$(x$)="X" THEN 9850

 y$(h,o)=i$
                            
 INPUT "VALUE TO WINNER........",i$:IF UCASE$(i$)="X" THEN 9850

 IF i$="" THEN i$="0" ELSE IF FNNOTN(i$) THEN i$="0"

 v%(h,o)=VAL(i$)/100

 INPUT "PLACING................",i$:IF UCASE$(i$)="X" THEN 9850

 IF i$="" THEN i$="0" ELSE IF FNNOTN(i$) THEN i$="0"

 h%(h,o)=VAL(i$)

9990 NEXT o

9895 NEXT h:GOSUB 900:RETURN

