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