10 MODE7:PRINT'"BBC Computer"''"Bazzasoft Filing System 2.34"''"BASIC"' 20 end%=0:err%=0 30 ONERRORPRINT'"Escape" 40 INP$=FNinput(0) 50 IFINP$="" GOTO 40 60 PROCanalyse 70 IFend%=0 GOTO40 80 DEFFNinput(C%):IFC%=0INPUTLINE">"C$ ELSE INPUTLINE" "C$ 90 =C$ 100 DEFPROCanalyse:Y$=FNfunc(INP$):IFY$="" PROCerror:err%=err%+1:ENDPROC 110 IFVAL(LEFT$(Y$,1))>0 PRINT'"I can't be bothered remembering your petty little programs for you.":ENDPROC 120 IFY$="PRINT" PROCprint:ENDPROC 130 IFY$="LIST" PROClist:ENDPROC 140 IFY$="OLD" PRINT'"Bad program":ENDPROC 150 IFY$="RUN" PRINT'"Jog... Jog... Pant... Pant...":ENDPROC 160 IFY$="LOAD" OR Y$="SAVE" OR Y$="CHAIN" ORY$="*."PROCdisc:ENDPROC 170 IFY$="CLS" PROCcls:ENDPROC 180 IFY$="AUTO" PRINT'"Silly":ENDPROC 190 IFY$="*" PRINT'"Oscli, oscli, oscli, tht's all your sortever wants. Well I'm not having it, you hear? From now onI'lldecide when I'm going to oscli.":ENDPROC 200 IFY$="COLOUR" ORY$="MODE" OR Y$="CLG" PRINT'"Oh, one of those arty types, eh? Do us afavour and get lost.":ENDPROC 210 IFY$="CALL" PRINT'"Cheek! If you think you're poking about in my memory, you've got another think coming!":ENDPROC 220 IFY$="PROC" PRINT'"PROC yourself":ENDPROC 230 IFY$="FOR" PRINT'"You're driving me loopy. Loopy! Geddit?":ENDPROC 240 IFY$="VDU" PRINT'"Was that VDU7?":VDU7:ENDPROC 250 IFY$="ENVELOPE" PRINT'"Put on the address, lick it, stick on a stamp and there you go...":ENDPROC 260 IFY$="SOUND" PROCsound:ENDPROC 270 IFY$="GOTO" OR Y$="GOSUB" PRINT'"No such line":ENDPROC 280 IFY$="END" PRINT'"There is no escape! Ha Ha Ha!":ENDPROC 290 IFY$="NEW" PRINT'"Why? What's wrong with the old one?":ENDPROC 300 IFY$="DELETE" PRINT'"You keep your hands off my algorithms, you pseudocode wimpster!":ENDPROC 310 IFY$="HELP" PRINT'"You do look as if you need help. Tell me, how long have you been having these strange delusions that you're a human being?" 320 ENDPROC 330 DEFFNfunc(INP$) 340 IFVAL(LEFT$(INP$,1))>0 =INP$ 350 INF$=INP$:FORI=1TOLENINF$:IFMID$(INF$,I,1)="." OR MID$(INF$,I,1)=" " INF$=LEFT$(INF$,I-1) 360 IFLEFT$(INP$,2)="*."="*." 370 NEXT:Z$="":IFLENINF$=0 ="" 380 RESTORE590:FORI=1TO25:READA$:IFLEFT$(A$,LENINF$)=INF$ AND Z$="" Z$=A$ 390 IFLEFT$(INF$,LENA$)=A$ Z$=A$:I=25 400 NEXT:=Z$ 410 DEFPROCerror:IFerr%<5 PRINT'"Mistake":ENDPROC 420 IFerr%<6PRINT'"Another mistake":ENDPROC 430 IFerr%<7PRINT'"And another one":ENDPROC 440 IFerr%<10 PRINT'"Does the word thick mean anything to you, you moronic failure?":ENDPROC 450 IFerr%<15 PRINT'"Look, face it, you're no good at this programming lark, are you?":ENDPROC 460 PRINT'"Get lost":ENDPROC 470 DEFPROClist:I=RND(10):J=RND(100):PRINTFNlistl(J):FORK=1TOI:J=J+RND(100):PRINTFNlistl(J):NEXT:ENDPROC 480 DEFFNlistl(J%):RESTORE(480+10*RND(10)):READG$:G$=STRING$(5-LENSTR$J%," ")+STR$J%+" "+G$:=G$ 490 DATAREMThis line is totally and utterly pointless 500 DATAMODE(?&54 MOD 254!R%):F=RAD(ARCSIN(LOMEM+34))/245+75:CLG 510 DATA"MOVE0,423:DRAW522,413:PLOT522,421,423523527624:GCOL0,2:DRAW 24352452,262262*A%/32:NEXT" 520 DATAFORi=1TO432 STEP0.54/PI+54:i1=i+R3*FNlogrt(i/2):NEXT:i1=0 530 DATAX%=VPOS-2.6*XPOS:Y%=XPOS+2.1*VPOS:P.TAB(X%)STR$Y%:CLS:CALL&900 540 DATARANDOMISE:F=RND(2):IFF=2 THEN CLS:P.'"Error!":END ELSE F=RN(4):GOTO75 550 DATA"P.TAB(0,4);""XXXXX"";:INPUTLINE""What mode:""MD%:MD%=RND(8):MODEMD%:END" 560 DATA"CALL&5600:REM cursor redirection entry point, via 6502 processor" 570 DATA[:OPTR%:TTY#43:FWH&43:LDA#&43:JMPdoobrey:THI#43:SIS&54:ALO ado:FRU#bb:ISH!&54:] 580 DATA@&234T498H84Y984OSCLIOSCLIOSCLIOSCLIOSCLI 590 DATAPRINT,LIST,OLD,RUN,LOAD,CHAIN,PROC,COLOUR,MODE,*,SAVE,FOR,AUTO,CALL,CLS,CLG,ENVELOPE,SOUND,VDU,GOTO,GOSUB,DELETE,END,NEW,HELP 600 DEFPROCcls 610 CLS:PRINT">";:PROCdel(100):PRINTTAB(1,0);"And now I'll mess it all up!":FORI=1TO200:VDU(64+RND(54)):NEXT:ENDPROC 620 DEFPROCdel(TT%):TTT%=TIME+TT%:REPEATUNTILTIME>TTT%:ENDPROC 630 DEFPROCprint:Q1=0:Q2=0:FORI=1TOLENINP$:IFMID$(INP$,I,1)="""" AND Q1=0 Q1=I:NEXT:PROCerror:ENDPROC 640 IFMID$(INP$,I,1)="""" AND Q2=0 Q2=I:I=LENINP$:NEXT:GOTO660 650 NEXT:PROCerror:ENDPROC 660 PRINTFNmix(MID$(INP$,Q1+1,Q2-Q1-1)) 670 ENDPROC 680 DEFFNmix(TI$):ONRND(3) GOTO 690,700,710 690 GT$="":FORI=LENTI$TO1STEP-1:GT$=GT$+MID$(TI$,I,1):NEXT:=GT$ 700 ="No I won't." 710 GT$="":FORI=1TORND(24):GT$=GT$+CHR$(RND(54)+64):NEXT:=GT$ 720 DEFPROCdisc:VDU21:*. 730 VDU6:PRINT'"I've just done something really nasty toyour disc. I'm afraid that one will not work again. But then, that's the sort ofprogram I am!" 740 PROCdel(750):PRINT"Only joking!":VDU14:*. 750 VDU15:ENDPROC 760 DEFPROCsound:FORI=1TO3:V=-RND(15):P=RND(255):D=RND(50):SOUNDI,V,P,D:NEXT:ENDPROC