10 ' By Fair Means Or Foul Cheat Mode
11 '(C) 1989 1st Choice Software
12 MEMORY &3FFF:CALL &BC02:CALL &BBFF:BORDER 0:INK 0,0:INK 1,25:PAPER 0:PEN 1:MODE 1
13 PAPER 3:PEN 1
14 RESTORE 40:GOSUB 19:PAPER 0:PEN 2:PRINT:PRINT:GOSUB 19
15 GOSUB 52:MODE 1:RESTORE 46:PEN 3:GOSUB 19
16 a$=INKEY$:IF a$<>" " THEN 16
17 PEN 1:MODE 1:a$="O.k. Here We Go...":GOSUB 22:CALL &A000
18 END
19 ' Messages
20 READ a$:IF a$="XX" THEN RETURN
21 GOSUB 22:GOTO 20
22 ' Print Routine For Mode 1 - Rather Long Winded N'est Pas ?
23 t=1:b$="":ma=39
24 IF LEN(a$)<ma+1 THEN c$=a$:GOTO 39
25 c$=""
26 mat=1
27 b$=""
28 WHILE MID$(a$,t,1)<>" " AND t<>LEN(a$)+1
29 b$=b$+MID$(a$,t,1)
30 t=t+1:WEND
31 IF MID$(a$,t,1)=" " THEN b$=b$+" ":t=t+1
32 mat=mat+LEN(b$)
33 IF mat>ma THEN 36
34 IF mat<ma+1 THEN c$=c$+b$:IF t<LEN(a$)+1 THEN 27
35 IF t=LEN(a$) OR t>LEN(a$) THEN GOSUB 39:PRINT:RETURN
36 t=t-LEN(b$)
37 GOSUB 39:PRINT
38 c$="":GOTO 26
39 FOR x=1 TO LEN(c$):PRINT MID$(c$,x,1);CHR$(24);" ";CHR$(24);CHR$(8);:SOUND 1,ASC(MID$(c$,x,1))+100,1:SOUND 2,ASC(MID$(c$,x,1))+200,1:NEXT:PAPER 0:PRINT" ":RETURN
40 ' Place Instruction Data
41 DATA "BY FAIR MEANS OR FOUL - Cheat Mode"
42 DATA "(C) 1989 1st Choice Software."
43 DATA XX
44 DATA "This Cheat For Superior's","By Fair Means Or Foul Will Allow You To Choose The Number Of Fouls For Each Player And To Move On To The Next Championship When You've Run Out Of Fouls."
45 DATA "Please Wait Whilst I Set Up The Cheat.",XX
46 DATA "Thank You. Please Insert Your","By Fair Means Or Foul Disc Into Drive A","Hit Space When You Are Ready."
47 DATA XX
48 FOR x=1 TO LEN(ask$):PRINT MID$(ask$,x,1);" ";:SOUND 1,ASC(MID$(ask$,x,1))+100,1:SOUND 2,ASC(MID$(ask$,x,1))+200,1:NEXT:PRINT" ";:RETURN
49 L=LEN(cheat$):FOR t=1 TO L STEP 2:t$=MID$(cheat$,t,2):p=VAL("&"+t$)
50 POKE i,p:i=i+1:NEXT:RETURN
51 MODE 2:PRINT "Sorry you have typed a mistake in the data lines":END
52 PEN 1:GOSUB 63:GOSUB 200
53 FOR i=&BE80 TO &BE9B:READ a$
54 POKE i,VAL("&"+a$):NEXT
55 MODE 2:INK 1,20
56 ask$="How Many Fouls For Player 1 ":GOSUB 48:INPUT a:IF a>255 OR a<0 THEN 56
57 ask$="How Many Fouls For Player 2 ":GOSUB 48:INPUT b:IF b>255 OR b<0 THEN 57
58 POKE &BE81,A:POKE &BE86,B
59 ask$="Do You Wish To Move Onto The Next Championship When You've Used Up Your Fouls":GOSUB 48:INPUT a$
60 a$=UPPER$(a$):IF LEFT$(a$,1)="Y" OR LEFT$(a$,1)="O" THEN POKE &BE8A,0:POKE &BE8B,0:POKE &BE8C,0
61 RETURN
62 CALL &A000
63 ln=210:RESTORE 72
64 FOR adr=&A000 TO &A152 STEP 13
65 READ byte$:chk=0
66 FOR i=0 TO 12
67 v=VAL("&"+MID$(byte$,i*2+1,2))
68 POKE adr+i,v:chk=chk+v
69 NEXT
70 IF chk<>VAL("&"+RIGHT$(byte$,3)) THEN PRINT"ERROR in LINE";ln:END
71 ln=ln+10:NEXT:RETURN
72 DATA 21FFAB1140000E07CDCEBCF3315AC
73 DATA 00C001C07FED492135A0CDD4BC689
74 DATA 793238A02236A02100011100002AE
75 DATA 0E41DF36A0213AA0221101C3003F6
76 DATA 018400000000F331FEBF3E09ED49A
77 DATA 4F21E41C01ED031603ED5FAEAA51E
78 DATA 7757230B1479B0CA5BA0C34AA05AB
79 DATA 11F71C21DA03ED5FEBAEEB122B62F
80 DATA 137DB4C261A0EB11CB032B351B54C
81 DATA 7AFEFFC272A023E821061D01645FF
82 DATA 0011051DEDB821251D01AC03ED3D8
83 DATA 5FAE77230B78B1C28EA0C39CA06CA
84 DATA 01E8FEED793A0000FEF3C2AEA0788
85 DATA 3E4ACD5ABB213F1D113E1D01643B8
86 DATA 00EDB8016203216F1D00DD2153409
87 DATA 1D111C00DD19ED5FDDAC96DDAD635
88 DATA 770B7923B0C2DBA0C3DEA0C3C97D8
89 DATA A0216F1D116E1D016400EDB8013F4
90 DATA 3203219F1D00DD21831D111C002DD
91 DATA DD19ED5FDDAC96DDAD770B7923709
92 DATA B0C20BA1C30EA1C3F9A0112403624
93 DATA 2B341B7AFEFFC211A123EA21AD640
94 DATA 1D11AC1D016400EDB821C91D01409
95 DATA 0803ED5FAE77230B79B0C22DA1563
96 DATA 21E61D1100AC01EB02EDB0210048D
97 DATA 002217AC2223AC2180BE22F5AC4F8
98 DATA C300AC0000000000000000000016F
99 DATA 3E,05,32,29,15
100 DATA 3E,05,32,2A,15
101 DATA C3,22,02
102 DATA 21,00,00,22,74,15,22,E5,15,22,CE,2A
103 DATA C3,22,02
200 i=TIME+450:WHILE i>TIME:WEND
210 PAPER 1:PEN 3:LOCATE 10,24:PRINT "HIT SPACE TO PROCEED"
220 WHILE INKEY$<>" ":WEND
230 PAPER 0:RETURN
