P703 CEEFAX 703 Thu 23 Jun 20:10/58  MALLORY Age: 8+ "Mallory" is a classic "whodunnit" program based on a crime which has been committed at "Mallory Manor". The user must interpret the clues correctly to discover the culprit. The program aims to develop an ability to make logical deductions from given information and to develop language skills. Instructions for use are included in the program, with prompts given at the appropriate times. The program selects a different crime and set of clues at randoI each time it is used. Program follows
P703 CEEFAX 703 Thu 23 Jun 10:45/41 |B2111B|a37MALLORY10821:06/83|i24BBBC316 k|p|s÷#1÷e|s÷Z0 1REM MALLORY / An educational adventure game 2REM Microelectronics Education Prg gramme 3REM MICROPRIMER Software 4REM (c ) CET 1983 5REM Author / programmer: Ani ta Straker 6REM Version 0.9 / 5 February 1983 9REM Works with BAC Micro (model B ) 10GOS.20000:REM* INITIALISE 15ONERR.G. 4140 20GOS.8000:REM* TITLE 30MO.7:V.23;1 1,0;0;0;0 35CLS:PROCBIGST("It is the wee kend at Mallory Manor.",0,5,W$):P. 40PRO CPRINT("A "+Y$(Y%)+" has vanished... ",9 ) 50PROCBIGST("Please wait, the police a re coming.",0,Y,G$) 60PROCSETUP1 65PROCT UNE(8,5) 70PROCSETUP2 75SO.1,0,0,0:SO.2, 0,0,0:SO.3,0,0,0 80R=1:found=0 100CLS:PR CBIGST("You are in the"+G$+R$(R)+".",0, 1,W$) 110F.I=1TO12:IFW(I)<>R TH.500 120P ROCBIGST( $(I)+","+W$+"the"+R$+C$(I)+"," +W$+"is there.",0,5,R$) 130X=ABS(X(I)):Z $="The"+R$+C$(I)+W$+"says: '"+A$(I)+" I was in the "+R$(X)+" at the time " |c0
P703 CEEFAX 703 Thu 23 Jun 20:06/15 |B2131B|a37MALLORY10821:06/83|i24BBBC316 k|p|s÷#1÷e|s÷Z0 620PROCBIGST(K$(K%)+","+W$+"your choice: ",0,23,B$):fl=1:W$=Y$:GOS.7000:W$=CHR$ 135 630IFLEN(IN$)<3PROCCLS(23):C.620 640 X$=LE.IN$,3):IFX$="arr"TH.700 650flag=0: F.I=1TOLEN(M$):J=ASC(M.M$,I,1))-64:IFLE. R$(J),3)=X$R=J:flag=1:I=LEN(M$) 660N.:IF flag=1TH.100 EL.PROCCLS(23):G.620 700PRO CCLS(5):PROCPRINT("Very well,"+B$+K$(K%) +","+W$+"you have decided to arrest the. . ",5) 710fl=0:W$=R$:GOS.7000:W$=CHR$13 5:IFLEN(IN$)<3TH.700 720A$=LE.IN$,3):fla g=0:F.I=1TO12:IFA$<>LE.C$(I),3)TH.790 72 5PROCBIGST(C$(I),XX-1,YY-1,R$) 730IFI=M% flag=1 EL.flag=2 740Q=I:I=12 790N.:IFfla g=0TH.PROCCLS(5):G.600 800ONflag G.4000, 900 900K%=K%+1:IFK%>4TH.4000 910PROCPRIN T("Idiot! It's not the"+R$+C$(Q)+"."+W$+ " You are demoted to"+B$+K$(K%)+"."+W$+" Try again to find the thief! ",14) 920G OS.1200:PROCCLS(5):G.600 999REM* Y/N 100 0*FX 15,1 |c0
P703 CEEFAX 703 Thu 23 Jun 20:06/32 |B2141B|a37MALLORY10821:06/83|i24BBBC316 k|p|s÷#1÷e|s÷Z0 1020KS=GET:IFKS>90TH.KS=KS-32 1030Q=-1*( KS=ASC("Y"))-2*(KS=ASC("N")):IFQ>0TH.R. EL.1000 1099REM* PAUSE 1100DEFPROCWAIT(T ) 1110G=INKEY(100*T):E. 1199REM* SPACE 1 200P.TAB(7,24)CHR$157G$"Press the SPACE bar "CHR$156; 1210*FX15,1 1215REP.:K$=G E.:U.K$=" " 1220R. 1499REM* CLEAR TO END OF LINE 1500XC=POS:YC=VP.:P.STRI.40," " )TAB(XC,YC);:R. 3999REM* END 4000CLS:D=6 :IFK%>4PROC0RINT("You fool,"+B$+K$(K%-1) +"."+W$+" Thanks to your stupidity the"+ R$+C$(M%)+","+W$+"the thief, got away! You are dismissed from the police force! ",D):G.%130 4010U$="Excellent,"+B$+K$(K %)+"."+W$+" Another criminal goes behind bars. b5IFfound=1Z$=Z$+"You found the missing "+Y$(Y%)+" too. ":K%=K%+(K%>1): D=5:CLS 4015Z$=Z$+"You are promoted to"+ B$+K$(K%-1)+"."+W$+" Keep up the good wo rk! " 4020PROCPRINT(Z$,D) 4130GOS.1200 4 140*FX 4,0 4145*FX 12,0 4150G.31000 |c0
P703 CEEFAX 703 Thu 23 Jun 20:06/48 |B2151B|a37MALLORY10821:06/83|i24BBBC316 k|p|s÷#1÷e|s÷Z0 4999REM* TUNE 5000DEFPROCTUNE(N%,L%) 501 0LOC.I% 5020F.num%=1TO(N%) 5030RES.5130 5040READnonote% 5050F.I%=1TOnonote% 5060 READpitch%,length% 5070SO.1,-L%,0,0:SO.2 ,-L%,0,0:SO.3,-L%,0,0 5080SO.1,-L%,pitch %,length%*3:SO.2,-L%,pitch%+d8,length%*3 :SO.3,-L%,pitch%696,length%*3 5085L%=L%+ 1 5090N.I% 5110N.num% 5120E. 5130D.2,85, 2,57,2 6999REM* BIG INPUT 7000*FX15,1 70 05XX=POS-1:YY=VP.5IN$="":LI=0:V.23;11,25 5;0;0;0 7010GOS.7200:IFG=127ORG=13TH.701 0 7015IFfl=1TH.G=G+32 7030IN$=CHR$(G):LI =1:PROCBIGST(IN$,XX-1,YY-1,W$) 7040GOS.7 200:IFG=13TH.7300 7060IFG<>127TH.7100 70 70LI=LI-1:IFLI>-1TH.IN$=LE.IN$,LEN(IN$)- 1) 7075PROCBIGST(IN$+" "+CHR$8,XX-1,YY-1 ,W$):IFLI=0TH.7010 EL.7040 7100IFG>64TH. G=G+32 7110IN$=IN$+CHR$(G):LI=LI+1:PROCB IGST(IN$,XX-1,YY-1,W$):G.7040 7200GC=0 7 210G=INKEY(60):GC=GC-(LI>0):IFG=13ORG=12 7TH.R. 7220IFLI=3TH.7260 |c0
P703 CEEFAX 703 Thu 23 Jun 20:05/34 |B2171B|a37MALLORY10821:05/83|i24BBBC316 k|p|s÷#1÷e|s÷Z0 9015PROCPRINT("NOTE: When you are playin g you need only type the first three let ters of any room or person, e.g. type ", 5) 9020PROCBIGST("Kit"+W$+"for"+R$+"Kitc hen",10,15,R$):PROCBIGST("Gar"+W$+"for"+ R$+"Gardener",10,18,R$):PROCBIGST("Arr"+ W$+"for"+R$+"Arrest",10,21,R$) 9500GOS.1 200:R. 10000DEFPROCSETUP1 10010F.I=1TO25 :M$(I)="":N.:I=1 10020J=RND(24)+1:IFM$(J )=""TH.PROCSWAP:I=J:G.10020 10030FLAG=0: F.I=1TO25:IFM$(I)<>""TH.10050 10040J=RND (25):IFM$XJ)=""TH.10040 10045FLAG=1:PROC SWAP:I=25 10050N.:IFFLAG=1TH.10030 10060 F.I=1TO25:IFLEN(M$(I))>1TH.10100 10070F. J=I+1TO25:IFLEN(M$(J))>1TH.10090 10080PR OCSWAP 10090N. 10100N. 10110E. 10500DEFP ROCSWAP 10510M$(J)=M$(J)+CHR$(I+64):M$(I )=M$(I)+CHR$(J+64):E. 11000DEFPROCSETUP2 11010F.I=1TO12:'%=RND(25) 11020X%=RND(2 5):IFX%=R%TH.11020 11030W(I)=W%:X(I)=X%: N. 11040M%=RND(12):X(M%)=0:X=R% |c0
P703 CEEFAX 703 Thu 23 Jun 20:04/01 |B2181B|a37MALLORY10821:06/83|i24BBBC316 k|p|s÷#1÷e|s÷Z0 11050Z%=0:G%=RND(3):ONG%G.11200,11300,11 100 11100FLAG=0:F.I=1TO11:X=X(I):F.J=I+1 TO12:IFX=X(J)FLAG=1:I=11:J=12 11110N.:N. :IFFLAG=1TH.11300 11200FLAG=0:Z%=1:X=RND (25):F.I=1TO12:IFX(I)=X FLAG=1:I=12 1121 0N.:IFFLAG=1TH.11300 11220Z%=RND(12):IFM %=Z%TH.11220 11300PROCI:E. 11500DEFPROCI 11510X(M%)=-X:F.K=1TO12:S(K)=RND(12):N. :E. 12000DEFPROCPRINT(TEMP$,YY) 12010col $=W$:LIN$="":SPACE=39:F.LI=1TOLEN(TEMP$) 12015S$=I.TEMP$,LI,1):S=ASC(S$) 12020IF S<>32A.S<129WORD$=WORD$+S$:G.12500 12030 IFSPACE<=LEN(WORD$)+1TH.PROCBIGST(LIN$,0 ,YY,col$):col$=COL$:SPACE=39:LIN$="":YY= YY+3 12040LIN$=LIN$+WORD$+S$:SPACE=SPACE -(LEN(WORD$)+1):WORD$="":IFS=32COL$=W$ E L.COL$=S$ 12500N.:PROCBIGST(LIN$,0,YY,co l$):Y=YY+5:E. 13000DEFPROCCLS(D%) 13010V .28,0,24,39,D%,12,26 13020E. 18000DEFPRO CBIGST(AA$,XX,YY,CONTROL$) |c0
P703 CEEFAX 703 Thu 23 Jun 10:44/34 |B21A1B|a37MALLORY10821:06/83|i24BBBC316 k|p|s÷#1÷e|s÷Z0 19070D.Mr Rose,Gardener,"+ell, it beats me.",It's very strange. 19080D.Doris,Mai d,It's ever so surprising.,I think it's scary. 19090D.George,Chauffeur,I never s aw a thing.,It makes you wonder. 19095D. Brenda,Nanny,Thank goodness t(e children are out.,It makes me shiver. 19100D.Sir William,Brigadier,Awkward business this is.,Very bothersome. 19110D.Lady Cheste r,Duchess,Goodness gracious!,How did it happen? 19120D.Howard Grant,Writer,It re ally is very mysterious.,I don't like it . 19130D.Gloria Mills,Actress,I feel it' s so exciting!,How dramatic though. 1914 0D.Linda Ewing,Model,How could anyone do such a t(ing?,It's very unfortunate. 19 150D.Giles Weale(Architect,What a dreadf ul thing to happen.,Most puzzling. 19999 REM* INITIALISE 20000LO=64:HI=90 20010DI MMd(25),Y$(12),K$(4),R$X25),N$(12),C$(12 ),A$(12),B$(12),W(12),X(12),S(12) |c0
P703 CEEFAX 703 Thu 23 Jun 20:%4/+1 |B21B1B|a37MALLORY10821:06/83|i24BBBC316 k|p|s÷#1÷e|s÷Z0 20050R$=CHR$130:G$=CHR$129:W$=CHR$1355DH $=CHR$141:Y$=CHR$131:B$=CHR$133 20090RES .19000 20100F.K=1TO12:READY$(K):N.:Y%=RN D(12):F.K=0TO4:READK$(K):N.:K%=1 20110F. K=1TO25:READR$(K):N.:R%=RND(24)+1 20120F .K=1TO12:READN$(K),C$(K),A$(K),B$(K):N. 20990R. 31000M/.7:P."END OF GAME":END |c 0