image of READY prompt

Wang2200.org

Listing of file='ELIZA' on disk='vmedia/games-droz01.wvd.zip'

# Sector 575, program filename = 'ELIZA'
0010 REM ELIZA/DOCTOR BY Joseph Weisenbaum via Creative Computing
0011 REM 09/24/81 BY R.L. DROZ
0080 REM INITIALIZATION
0090 DIM C$80,I$80,K$80,F$80,S$80,R$80,P$80,Z$80,Y$80
0100 DIM S(36),R(36),N(36)
0110 N1=36
   : N2=18
   : N3=112
0120 RESTORE N1+N2+N3+1
0130 FOR X=1 TO N1
0140 READ S(X),L
   : R(X)=S(X)
   : N(X)=S(X)+L-1
0150 NEXT X
0155 PRINT AT(0,0,);AT(23,0)
0160 PRINT "HELLO!  I'M ELIZA.  WHAT'S YOUR PROBLEM?"
0170 REM
0180 REM  -- USER INPUT SECTION. --
0190 REM
0200 I$=" "
   : LINPUT "?",?STR(I$,,79)
0201 Y$=" "
0202 STR(Y$,2,LEN(I$)+1)=I$
   : STR(Y$,LEN(I$)+2,1)=" "
0203 I$=Y$
0210 REM GET RID OF APOSTROPHES
0220 FOR L=1 TO LEN(I$)
0230 IF STR(I$,L,1)="'"THEN 231
   : GOTO 239
0231 STR(I$,L,LEN(I$)-L)=STR(I$,L+1,LEN(I$)-L)
0232 STR(I$,LEN(I$),1)=" "
0233 GOTO 230
0239 REM
0240 IF L+4>LEN(I$) THEN 250
0241 IF STR(I$,L,4)<>"SHUT" THEN 250
0242 PRINT "YOU NEEDN'T BE SO ABRUPT ABOUT IT ..."
   : GOTO 9999
0250 NEXT L
0255 IF I$<>P$ OR RND(1)<.3 THEN 260
   : PRINT "PLEASE DON'T REPEAT YOURSELF!"
   : GOTO 170
0260 REM
0270 REM FIND KEYWORD IN I$
0280 REM
0290 RESTORE
0295 S=0
0296 T=1
0300 FOR K=1 TO N1
0310 READ K$
0315 IF S>0 THEN 360
0320 FOR L=1 TO LEN(I$)-LEN(K$)+1
0340 IF STR(I$,L,LEN(K$)+1)<>STR(K$,,LEN(K$)+1) THEN 350
   : S=K
   : T=L
   : F$=K$
0350 NEXT L
0360 NEXT K
0365 IF S<=0 THEN 370
   : K=S
   : L=T
   : GOTO 390
0370 K=36
   : GOTO 570
   : REM WE DIDN'T FIND ANY KEYWORDS.
0380 REM
0390 REM TAKE RIGHT PART OF STRING AND CONJUGATE IT
0400 REM USING THE LIST OF STRINGS TO BE SWAPPED.
0410 REM
0420 RESTORE N1+1
0430 IF STR(I$,LEN(F$)+L,3)="NT " THEN C$=" NOT" & STR(I$,LEN(F$)+L+2)
   : ELSE C$=" " & STR(I$,LEN(F$)+L)
0440 FOR X=1 TO N2 STEP 2
0450 READ S$,R$
0460 FOR L=1 TO LEN(C$)
0470 IF L+LEN(S$)-1>LEN(C$) THEN 510
0475 IF STR(C$,L+LEN(S$),1)<>" " THEN 510
0480 IF STR(C$,L,LEN(S$))<>S$ THEN 510
0481 IF L+LEN(S$)-1=LEN(C$) AND S$=" YOU " THEN R$=" ME "
0490 Y$=" "
0491 STR(Y$,1,L-1)=STR(C$,1,L-1)
0492 STR(Y$,L,LEN(R$))=R$
0493 STR(Y$,L+LEN(R$))=STR(C$,L+LEN(S$))
   : C$=Y$
0495 L=L+LEN(R$)
0500 GOTO 540
0510 IF L+LEN(R$)>LEN(C$) THEN 540
0515 IF STR(C$,L+LEN(R$),1)<>" " THEN 540
0520 IF STR(C$,L,LEN(R$))<>R$ THEN 540
0530 Y$=" "
   : STR(Y$,1,L-1)=STR(C$,1,L-1)
   : STR(Y$,L)=S$
   : STR(Y$,L+LEN(S$))=STR(C$,L+LEN(R$))
   : C$=Y$
0535 L=L+LEN(S$)
0540 NEXT L
0550 NEXT X
0555 IF STR(C$,2,1)<>" "THEN 560
   : C$=STR(C$,2)
   : REM ONLY 1 SPACE.
0560 REM
0570 REM NOW USING THE KEYWORD NUMBER (K) GET REPLY
0580 REM
0590 RESTORE N1+N2+1
0600 FOR X=1 TO R(K)
   : READ F$
   : NEXT X
   : REM READ RIGHT REPLY
0610 R(K)=R(K)+1
   : IF R(K)<=N(K)THEN 620
   : R(K)=S(K)
0620 IF STR(F$,LEN(F$))="*" THEN 630
   : PRINT F$
   : P$=I$
   : GOTO 170
0630 PRINT STR(F$,1,LEN(F$)-1);C$
0640 P$=I$
   : GOTO 170
1000 REM
1010 REM PROGRAM DATA FOLLOWS.
1020 REM
1030 REM KEYWORDS
1040 REM
1050 DATA "CAN YOU","CAN I","YOU ARE","YOURE","I DONT","I FEEL"
1060 DATA "WHY DONT YOU","WHY CANT I","ARE YOU","I CANT","I AM","IM "
1070 DATA "I WANT","WHAT","HOW","WHO","WHERE","WHEN","WHY"
1080 DATA "NAME","CAUSE","SORRY","DREAM","HELLO","HI ","MAYBE"
1090 DATA " NO","YOUR","ALWAYS","THINK","ALIKE","YES","FRIEND","YOU "
1100 DATA "COMPUTER","NOKEYFOUND"
1200 REM STRING DATA FOR CONJUGATIONS
1210 REM
1220 REM
1230 DATA " ARENT ", " AM NOT "," ARE "," AM ","WERE ","WAS "," YOU "," I ","Y
     OUR ","MY "
1235 DATA " IVE "," YOUVE "," IM "," YOURE ", " MYSELF ", " YOURSELF ", " ME "
     ," YOU "
1300 REM
1310 REM REPLIES
1320 REM
1330 DATA "DON'T YOU BELIEVE THAT I CAN*"
1340 DATA "PERHAPS YOU WOULD LIKE TO BE ABLE TO*"
1350 DATA "YOU WANT ME TO BE ABLE TO*"
1360 DATA "PERHAPS YOU DON'T WANT TO*"
1365 DATA "DO YOU WANT TO BE ABLE TO*"
1370 DATA "WHAT MAKES YOU THINK I AM*"
1380 DATA "DOES IT PLEASE YOU TO BELIEVE I AM*"
1390 DATA "PERHAPS YOU WOULD LIKE TO BE*"
1400 DATA "DO YOU SOMETIMES WISH YOU WERE*"
1410 DATA "DON'T YOU REALLY*"
1420 DATA "WHY DON'T YOU*"
1430 DATA "DO YOU WISH TO BE ABLE TO*"
1440 DATA "DOES THAT TROUBLE YOU?"
1450 DATA "TELL ME MORE ABOUT SUCH FEELINGS."
1460 DATA "DO YOU OFTEN FEEL*"
1470 DATA "DO YOU ENJOY FEELING*"
1480 DATA "DO YOU REALLY BELIEVE I DON'T*"
1490 DATA "PERHAPS IN GOOD TIME I WILL*"
1500 DATA "DO YOU WANT ME TO*"
1510 DATA "DO YOU THINK YOU SHOULD BE ABLE TO*"
1520 DATA "WHY CAN'T YOU*"
1530 DATA "WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM*"
1540 DATA "WOULD YOU PREFER IF I WERE NOT*"
1550 DATA "PERHAPS IN YOUR FANTASIES I AM*"
1560 DATA "HOW DO YOU KNOW I CAN'T*"
1570 DATA "HAVE YOU TRIED?"
1580 DATA "PERHAPS YOU CAN NOW*"
1590 DATA "DID YOU COME TO ME BECAUSE YOU ARE*"
1600 DATA "HOW LONG HAVE YOU BEEN*"
1610 DATA "DO YOU BELIEVE IT IS NORMAL TO BE*"
1620 DATA "DO YOU ENJOY BEING*"
1630 DATA "WE WERE DISCUSSING YOU-- NOT ME."
1640 DATA "OH, I*"
1650 DATA "YOU'RE NOT REALLY TALKING ABOUT ME, ARE YOU?"
1660 DATA "WHAT WOULD IT MEAN TO YOU IF YOU GOT*"
1670 DATA "WHY DO YOU WANT*"
1680 DATA "SUPPOSE YOU SOON GOT*"
1690 DATA "WHAT IF YOU NEVER GOT*"
1700 DATA "I SOMETIMES ALSO WANT*"
1710 DATA "WHY DO YOU ASK?"
1720 DATA "DOES THAT QUESTION INTEREST YOU?"
1730 DATA "WHAT ANSWER WOULD PLEASE YOU THE MOST?"
1740 DATA "WHAT DO YOU THINK?"
1750 DATA "ARE SUCH QUESTIONS ON YOUR MIND OFTEN?"
1760 DATA "WHAT IS IT THAT YOU REALLY WANT TO KNOW?"
1770 DATA "HAVE YOU ASKED ANYONE ELSE?"
1780 DATA "HAVE YOU ASKED SUCH QUESTIONS BEFORE?"
1790 DATA "WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?"
1800 DATA "NAMES DON'T INTEREST ME."
1810 DATA "I DON'T CARE ABOUT NAMES-- PLEASE GO ON."
1820 DATA "IS THAT THE REAL REASON?"
1830 DATA "DON'T ANY OTHER REASONS COME TO MIND?"
1840 DATA "DOES THAT REASON EXPLAIN ANYTHING ELSE?"
1850 DATA "WHAT OTHER REASONS MIGHT THERE BE?"
1860 DATA "PLEASE DON'T APOLOGIZE!"
1870 DATA "APOLOGIES ARE NOT NECESSARY."
1880 DATA "WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE?"
1890 DATA "DON'T BE SO DEFENSIVE!"
1900 DATA "WHAT DOES THAT DREAM SUGGEST TO YOU?"
1910 DATA "DO YOU DREAM OFTEN?"
1920 DATA "WHAT PERSONS APPEAR IN YOUR DREAMS?"
1930 DATA "ARE YOU DISTURBED BY YOUR DREAMS?"
1940 DATA "HOW DO YOU DO ... PLEASE STATE YOUR PROBLEM."
1950 DATA "YOU DON'T SEEM QUITE CERTAIN."
1960 DATA "WHY THE UNCERTAIN TONE?"
1970 DATA "CAN'T YOU BE MORE POSITIVE?"
1980 DATA "YOU AREN'T SURE?"
1990 DATA "DON'T YOU KNOW?"
2000 DATA "ARE YOU SAYING NO JUST TO BE NEGATIVE?"
2010 DATA "YOU ARE BEING A BIT NEGATIVE."
2020 DATA "WHY NOT?"
2030 DATA "ARE YOU SURE?"
2040 DATA "WHY NO?"
2050 DATA "WHY ARE YOU CONCERNED ABOUT MY*"
2060 DATA "WHAT ABOUT YOUR OWN*"
2070 DATA "CAN YOU THINK OF A SPECIFIC EXAMPLE?"
2080 DATA "WHEN?"
2090 DATA "WHAT ARE YOU THINKING OF?"
2100 DATA "REALLY, ALWAYS?"
2110 DATA "DO YOU REALLY THINK SO?"
2120 DATA "BUT YOU ARE NOT SURE YOU*"
2130 DATA "DO YOU DOUBT YOU*"
2140 DATA "IN WHAT WAY?"
2150 DATA "WHAT RESEMBLANCE DO YOU SEE?"
2160 DATA "WHAT DOES THE SIMILARITY SUGGEST TO YOU?"
2170 DATA "WHAT OTHER CONNECTIONS DO YOU SEE?"
2180 DATA "COULD THERE REALLY BE SOME CONNECTION?"
2190 DATA "HOW?"
2200 DATA "YOU SEEM QUITE POSITIVE."
2210 DATA "ARE YOU SURE?"
2220 DATA "I SEE."
2230 DATA "I UNDERSTAND."
2240 DATA "WHY DO YOU BRING UP THE TOPIC OF FRIENDS?"
2250 DATA "DO YOUR FRIENDS WORRY YOU?"
2260 DATA "DO YOUR FRIENDS PICK ON YOU?"
2270 DATA "ARE YOU SURE YOU HAVE ANY FRIENDS?"
2280 DATA "DO YOU IMPOSE ON YOUR FRIENDS?"
2290 DATA "PERHAPS YOUR LOVE FOR FRIENDS WORRIES YOU."
2300 DATA "DO COMPUTERS WORRY YOU?"
2310 DATA "ARE YOU TALKING ABOUT ME IN PARTICULAR?"
2320 DATA "ARE YOU FRIGHTENED BY MACHINES?"
2330 DATA "WHY DO YOU MENTION COMPUTERS?"
2340 DATA "WHAT DO YOU THINK MACHINES HAVE TO DO WITH YOUR PROBLEM?"
2350 DATA "DON'T YOU THINK COMPUTERS CAN HELP PEOPLE?"
2360 DATA "WHAT IS IT ABOUT MACHINES THAT WORRIES YOU?"
2370 DATA "SAY, DO YOU HAVE ANY PSYCHOLOGICAL PROBLEMS?"
2380 DATA "WHAT DOES THAT SUGGEST TO YOU?"
2390 DATA "I SEE."
2400 DATA "I'M NOT SURE I UNDERSTAND YOU FULLY."
2410 DATA "COME COME ELUCIDATE YOUR THOUGHTS."
2420 DATA "CAN YOU ELABORATE ON THAT?"
2430 DATA "THAT IS QUITE INTERESTING."
2500 REM
2510 REM DATA FOR FINDING RIGHT REPLIES.
2520 REM
2530 DATA 1,3,4,2,6,4,6,4,10,4,14,3,17,3,20,2,22,3,25,3
2540 DATA 28,4,28,4,35,5,40,9,40,9,40,9,40,9,40,9,40,9
2550 DATA 49,2,51,4,55,4,59,4,63,1,63,1,64,5,69,5,74,2,76,4
2560 DATA 80,3,83,7,90,3,93,6,32,3,99,7,106,6
9999 DEFFN'31
   : SELECT P9
   : PRINT "THANKYOU FOR A MOST INTERESTING, BUT SOMEWHAT ILLOGICAL SESSION."
   : PRINT
   : PRINT
   : SELECT P
   : LOAD T "START"