5748127 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$ cat -n is2000f.bas
   1: DECLARE SUB HumnSay (t$)
   2: DECLARE SUB Rebbott (Warm%)
   3: DECLARE SUB ReadKey (prm$, t$, chrs!, brd$, rd!)
   4: DECLARE SUB CompuSay (t$, rcd!)
   5: DECLARE SUB StartMappingSpeech ()
   6: DECLARE SUB Anton (i$, o$)
   7: DECLARE SUB ChkWrd (i$, dflt$, nw$)
   8: DECLARE SUB Talk2Em ()
   9: DECLARE SUB SolveDAProb (qt$)
  10: DECLARE SUB TeachMSmthing ()
  11: DECLARE SUB Corr (n$)
  12: DECLARE SUB Upper (n$)
  13: DECLARE FUNCTION Revers$ (t$)
  14: DECLARE SUB Answr (txt$)
  15: DECLARE SUB PrintStat ()
  16: DECLARE SUB Hdding ()
  17: RANDOMIZE TIMER
  18: DIM SHARED is2000 AS STRING
  19: DIM SHARED LastTyped AS STRING
  20: DIM SHARED lstln AS INTEGER
  21: lstln = 25
  22: lne = 0
  23: CLS
  24: OPEN "greet.ai" FOR INPUT AS #1
  25: DO UNTIL EOF(1): lne = lne + 1: LINE INPUT #1, a$: LOOP
  26: CLOSE 1
  27: OPEN "Greet.ai" FOR INPUT AS #1
  28: le = CINT(RND * lne)
  29: IF le = 0 THEN le = lne
  30: FOR qw = 1 TO le
  31: LINE INPUT #1, grt$
  32: NEXT qw
  33: Corr grt$
  34: LOCATE 3, 1, 0: Hdding
  35: PRINT "IS2000>"; TAB(10); LTRIM$(RTRIM$(grt$))
  36: LOCATE 4, 1, 0
  37: ReadKey "Human>", grt2$, 69, "Hello?", 0
  38: FOR sl = 1 TO LEN(grt2$)
  39: IF MID$(grt2$, sl, 1) = "A" OR MID$(grt2$, sl, 1) = "E" OR MID$(grt2$, sl, 1) = "O" OR MID$(grt2$, sl, 1) = "I" OR MID$(grt2$, sl, 1) = "U" OR MID$(grt2$, sl, 1) = "Y" THEN slybl = slybl + 1
  40: NEXT sl
  41: IF slybl = 0 THEN g = -1: GOTO 333
  42: Corr grt2$
  43: grt2$ = RTRIM$(grt2$)
  44: grt2$ = LTRIM$(grt2$)
  45: CLOSE #1
  46: OPEN "words.is2" FOR INPUT AS #1
  47: DO UNTIL EOF(1): LINE INPUT #1, ln$: IF UCASE$(ln$) = UCASE$(grt2$) THEN EXIT DO
  48: LOOP
  49: IF UCASE$(ln$) = UCASE$(grt2$) THEN  ELSE g = -2: PRINT "IS2000>"; TAB(10); grt2$; " is not a known word": CLOSE #1: GOTO 337
  50: CLOSE 1
  51: OPEN "Greets.ai" FOR INPUT AS #1
  52: DO UNTIL EOF(1)
  53: LINE INPUT #1, Mystr$
  54: IF UCASE$(grt2$) = UCASE$(Mystr$) THEN g = 1
  55: LOOP
  56: CLOSE 1
  57: 337 OPEN "NGreets.ai" FOR INPUT AS #1
  58: DO UNTIL EOF(1)
  59: LINE INPUT #1, Mystr$
  60: IF UCASE$(grt2$) = UCASE$(Mystr$) THEN g = -1
  61: LOOP
  62: CLOSE 1
  63: OPEN "Greet.ai" FOR APPEND AS #1
  64: OPEN "Words.is2" FOR APPEND AS #2
  65: IF g = 1 THEN PRINT #1, grt2$: CLOSE 1, 2
  66: IF g = -1 THEN GOTO 333
  67: IF g = 0 THEN INPUT "Is that a greeting"; gt$: LOCATE 5, 1: PRINT "                         ": Upper gt$: IF gt$ = "Y" THEN CLOSE #1: OPEN "greets.ai" FOR APPEND AS #1: PRINT #1, grt2$: CLOSE #1 ELSE CLOSE #1: OPEN "ngreets.ai" FOR APPEND AS #1: PRINT #1, grt2$: LOCATE 5, 1: PRINT "IS2000>"; TAB(10); "Ok?": CLOSE #1
  68: IF g = -2 THEN
  69:         INPUT "Is that a Greeting"; gt$
  70:         LOCATE 5, 1: PRINT "                         "
  71:         gt$ = UCASE$(gt$)
  72:                 IF gt$ = "Y" THEN
  73:                 FOR ss = 1 TO LEN(grt2$)
  74:                 IF MID$(grt2$, ss, 1) = " " THEN PRINT #2, UCASE$(wrdd$): wrdd$ = "" ELSE wrdd$ = wrdd$ + MID$(grt2$, ss, 1)
  75:                 NEXT ss
  76:                 IF INSTR(grt2$, " ") = 0 THEN PRINT #2, wrdd$
  77:                 PRINT #1, UCASE$(grt2$)
  78:                 LOCATE 5, 1: PRINT "                                         "
  79:                 LOCATE 6, 1: PRINT "                                      ": LOCATE 5, 1
  80:                 CLOSE 1, 2
  81:         ELSE
  82:                 LOCATE 5, 1: PRINT "IS2000>"; TAB(10); "Ok?                      "; SPACE$(LEN(grt2$))
  83:                 LOCATE 6, 1: PRINT "                                     ": LOCATE 6, 1
  84:                 CLOSE 1, 2: OPEN "ngreets.ai" FOR APPEND AS #1: PRINT #1, UCASE$(grt2$)
  85:                 CLOSE 1, 2
  86:         END IF
  87: END IF
  88: GOTO 334
  89: 333 LOCATE CSRLIN, 1, 0: PRINT "IS2000>"; TAB(10); "Ok?"
  90: 334 Hdding
  91: ReadKey "Human>", m$, 69, "Hello?", 0
  92: 3341 IF m$ = "" THEN GOTO 3321
  93: IF m$ = "TEACH" THEN TeachMSmthing
  94: IF INSTR(m$, ")") > 0 THEN SolveDAProb m$
  95: IF m$ = "USE INFO" THEN SolveDAProb ""
  96: IF m$ = "TALK TO ME" THEN Talk2Em
  97: IF m$ = "MIMIC: ON" AND qd = 0 THEN StartMappingSpeech: qd = 1
  98: IF m$ = "BYE" THEN END
  99: IF m$ = "/RESTART" THEN RESET: RUN
 100: IF INSTR(m$, ")") > 0 THEN SolveDAProb m$
 101: IF RIGHT$(m$, 1) = "?" THEN Answr m$
 102: IF LEFT$(m$, 4) = "SAY " THEN CompuSay RIGHT$(m$, LEN(m$) - 4), 1: GOTO 3321
 103: IF UCASE$(m$) = "/REBOOT" THEN CALL Rebbott(0)
 104: IF m$ = "/50" AND lstln <> 50 THEN WIDTH 80, 50: lstln = 50: LOCATE 3, 1
 105: IF m$ = "/43" AND lstln <> 43 THEN WIDTH 80, 43: lstln = 43: LOCATE 3, 1
 106: IF m$ = "/25" AND lstln > 25 THEN WIDTH 80, 25: lstln = 25: LOCATE 3, 1
 107: 3321 Hdding
 108: IF RTRIM$(LTRIM$(is2000)) = "USE INFO" THEN SolveDAProb ""
 109: IF LEFT$(is2000, 4) = "SAY " THEN HumnSay RIGHT$(is2000, LEN(is2000) - 4): m$ = RIGHT$(is2000, LEN(is2000) - 4): GOTO 334
 110: IF RTRIM$(LTRIM$(is2000)) = "TALK TO ME" THEN Talk2Em
 111: IF RTRIM$(LTRIM$(is2000)) = "MIMIC: ON" AND qd = 0 THEN StartMappingSpeech: qd = 1
 112: IF RTRIM$(LTRIM$(is2000)) = "BYE" THEN END
 113: IF RTRIM$(LTRIM$(is2000)) = "/RESTART" THEN RESET: RUN
 114: IF RIGHT$(is2000, 1) = "?" THEN Answr UCASE$(is2000)
 115: IF INSTR(is2000, ")") > 0 THEN SolveDAProb UCASE$(is2000): is2000 = ""
 116: IF is2000 = "/50" AND lstln <> 50 THEN WIDTH 80, 50: LOCATE 3, 1: lstln = 50
 117: IF is2000 = "/43" AND lstln <> 43 THEN WIDTH 80, 43: LOCATE 3, 1: lstln = 43
 118: IF is2000 = "/25" AND lst > 25 THEN WIDTH 80, 25: LOCATE 3, 1: lstln = 25
 119: IF UCASE$(is2000) = "/REBOOT" THEN CALL Rebbott(0)
 120: GOTO 334
 121: 
 122: SUB Answr (txt$)
 123: FOR q = 1 TO LEN(txt$)
 124: IF MID$(txt$, q, 5) = "YOUR " THEN yr = 1: q = q + 5
 125: IF MID$(txt$, q, 6) = "STATUS" AND yr = 1 THEN st = 1: q = q + 6
 126: IF MID$(txt$, q, 5) = "JAMES" THEN jms = 0
 127: IF MID$(txt$, q, 5) = "JACK " OR MID$(txt$, q, 6) = "JACKS " AND jms = 1 THEN jck = 1
 128: IF MID$(txt$, q, 3) = "OFF" AND jck = 1 THEN CompuSay "There are somethings even computers can't answer.", 0
 129: IF yr = 1 AND st = 1 THEN PrintStat
 130: NEXT q
 131: END SUB
 132: 
 133: SUB Anton (i$, o$)
 134: 'OPEN "Anon.is2" FOR INPUT AS #4
 135: 'CLOSE 4
 136: END SUB
 137: 
 138: SUB ChkWrd (i$, dflt$, nw$)
 139: a = INSTR(UCASE$(i$), "A")
 140: e = INSTR(UCASE$(i$), "E")
 141: i = INSTR(UCASE$(i$), "I")
 142: o = INSTR(UCASE$(i$), "O")
 143: u = INSTR(UCASE$(i$), "U")
 144: IF a = 0 AND e = 0 AND i = 0 AND o = 0 AND u = 0 THEN PRINT nw$ ELSE PRINT dflt$
 145: END SUB
 146: 
 147: SUB CompuSay (t$, rcd)
 148: Hdding
 149: IF rcd = 1 THEN  ELSE GOTO 1231
 150: IF RIGHT$(LTRIM$(RTRIM$(t$)), 1) = "." OR RIGHT$(LTRIM$(RTRIM$(t$)), 1) = "!" OR RIGHT$(LTRIM$(RTRIM$(t$)), 1) = "?" THEN m$ = RIGHT$(LTRIM$(RTRIM$(t$)), 1): is2000 = LEFT$(LTRIM$(RTRIM$(t$)), LEN(t$) - 1): t$ = RTRIM$(LTRIM$(is2000)) + m$ ELSE is2000 = t$: t$ = RTRIM$(LTRIM$(t$))
 151: 1231 Corr t$
 152: PRINT "IS2000>"; TAB(10); t$
 153: END SUB
 154: 
 155: SUB Corr (n$)
 156: lnn$ = UCASE$(MID$(n$, 1, 1))
 157: FOR q = 2 TO LEN(n$)
 158: IF MID$(n$, q, 1) = " " OR MID$(n$, q, 1) = "ÿ" THEN lnn$ = lnn$ + " ": GOTO 122
 159: IF MID$(n$, q, 1) <> "&" AND cptl = 0 THEN lnn$ = lnn$ + LCASE$(MID$(n$, q, 1))
 160: IF cptl = 1 THEN lnn$ = lnn$ + UCASE$(MID$(n$, q, 1)): cptl = 0
 161: IF MID$(n$, q, 1) = "." OR MID$(n$, q, 1) = "&" THEN cptl = 1
 162: 122 NEXT q
 163: n$ = lnn$
 164: END SUB
 165: 
 166: SUB Define (t$)
 167: DIM aii(0 TO LEN(t$)) AS STRING
 168: ab = 1
 169: bb% = 1
 170: FOR ab = 1 TO LEN(t$)
 171: t$ = LTRIM$(t$)
 172: t$ = RTRIM$(t$)
 173: t$ = t$ + " "
 174: DO UNTIL MID$(t$, ab, 1) = " "
 175: aii(bb%) = aii(bb%) + MID$(t$, ab, 1)
 176: ab = ab + 1
 177: LOOP
 178: bb% = bb% + 1
 179: NEXT ab
 180: FOR bba = 1 TO bb% - 1
 181: Upper a$
 182: c$ = aii(bba) + ":"
 183: OPEN "vocab.ai" FOR INPUT AS #2
 184: DO UNTIL b$ = c$
 185: IF EOF(2) THEN CLOSE 2: OPEN "vocab.ai" FOR INPUT AS #2
 186: LINE INPUT #2, b$
 187: LOOP
 188: LINE INPUT #2, meng$
 189: PRINT meng$
 190: CLOSE #2
 191: a$ = ""
 192: c$ = ""
 193: NEXT bba
 194: END SUB
 195: 
 196: SUB DelRepChars (t$)
 197: IF LEN(t$) < 3 THEN EXIT SUB
 198: FOR q = 3 TO LEN(t$)
 199: c$ = MID$(t$, q - 2, 1)
 200: b$ = MID$(t$, q - 1, 1)
 201: a$ = MID$(t$, q, 1)
 202: 'IF a$ = b$ AND b$ = c$ AND c$ = a$ THEN
 203: NEXT q
 204: END SUB
 205: 
 206: SUB FindWrd (phr$, wrd$, fd)
 207: 'wrd$ = LTRIM$(RTRIM$(wrd$)): phr$ = LTRIM$(RTRIM$(phr$)): wrd$ = " " + wrd$ + " ": phr$ = " " + phr$ + " ": fd = 0
 208: 'FOR q = 0 TO LEN(phr$) - LEN(wrd$) + 1
 209: '    FOR w = 1 TO LEN(wrd$)
 210: '        p$ = p$ + MID$(phr$, q + w, 1)
 211: '    NEXT w
 212: '    IF UCASE$(p$) = UCASE$(wrd$) THEN fd = q + 1: phr$ = LTRIM$(RTRIM$(phr$)): EXIT SUB
 213: '    p$ = ""
 214: 'NEXT q
 215: END SUB
 216: 
 217: SUB Hdding
 218: x% = CSRLIN: y% = POS(0)
 219: LOCATE 1, 1
 220: COLOR 15, 1
 221: hding$ = "IS2000 Inteligentce Simulator 2000E"
 222: PRINT hding$; STRING$(80 - LEN(hding$), 32);
 223: PRINT STRING$(LEN(LTRIM$(RTRIM$((hding$)))), 205); STRING$(80 - LEN(LTRIM$(RTRIM$((hding$)))), 32)
 224: LOCATE lstln, 1: PRINT TIME$; STRING$(80 - LEN(TIME$), 32);
 225: COLOR 7, 0
 226: LOCATE x%, y%
 227: END SUB
 228: 
 229: SUB HumnSay (t$)
 230: PRINT "Human>"; TAB(10); UCASE$(t$)
 231: LastTyped = UCASE$(t$)
 232: END SUB
 233: 
 234: SUB PrintStat
 235: OPEN "KNLDGE.IS2" FOR INPUT AS #3
 236: ln = 0
 237: DO UNTIL EOF(3)
 238: LINE INPUT #3, d$: ln = ln + 1
 239: LOOP
 240: CLOSE 3
 241: OPEN "words.is2" FOR INPUT AS #3
 242: DO UNTIL EOF(3)
 243: LINE INPUT #3, noth$
 244: IF noth$ = "" THEN  ELSE wrdd = wrdd + 1
 245: LOOP
 246: CLOSE 3
 247: CompuSay "ÿ     -=ð &I&S2000&E &STATUS ð=-", 0
 248: CompuSay "I.Q.      -  10", 0
 249: CompuSay "Words     - " + STR$(wrdd), 0
 250: CompuSay "Knowledge - " + STR$(ln), 0
 251: CompuSay "-Ä-Ä-Ä-Ä-Ä-Ä-Ä-Ä-Ä-Ä-Ä-Ä", 0
 252: CompuSay "ÿ       -=ð &Commands ð=-", 0
 253: CompuSay "/&RESTART", 0
 254: CompuSay "BYE", 0
 255: CompuSay "USE &INFO", 0
 256: CompuSay "SAY", 0
 257: CLOSE 1, 2
 258: END SUB
 259: 
 260: SUB ReadKey (prm$, t$, chrs, brd$, rd)
 261: t$ = ""
 262: PRINT prm$; TAB(10);
 263: DO UNTIL i$ = CHR$(13) OR i$ = CHR$(27)
 264: IF q = 10000 THEN IF POS(0) > 1 THEN PRINT : PRINT "IS2000>"; TAB(10); brd$: q = 0: PRINT prm$; TAB(10); : t$ = "" ELSE PRINT "IS2000>"; TAB(10); brd$: t$ = "": q = 0: PRINT prm$; TAB(10); : t$ = ""
 265: IF q < 10000 AND rd = 1 THEN q = q + 1
 266: IF i$ = CHR$(8) THEN IF LEN(t$) = 0 THEN i$ = "": GOTO 60 ELSE t$ = MID$(t$, 1, LEN(t$) - 1): LOCATE CSRLIN, POS(0) - 1: PRINT " "; : LOCATE CSRLIN, POS(0) - 1
 267: i$ = INKEY$
 268: x% = CSRLIN: y% = POS(0)
 269: IF TIME$ <> oldtm$ THEN COLOR 15, 1: LOCATE lstln, 1: PRINT TIME$; STRING$(80 - LEN(TIME$), 32); : COLOR 7, 0: LOCATE x%, y%: oldtm$ = TIME$
 270: IF i$ = "" THEN GOTO 60
 271: IF i$ = CHR$(0) + "=" THEN GOSUB 1009
 272: oldtm$ = TIME$
 273: q = 0
 274: IF (ASC(i$) > -1 AND ASC(i$) < 32) THEN GOTO 60
 275: IF i$ = CHR$(13) OR i$ = CHR$(27) THEN GOTO 70
 276: IF ASC(i$) < 123 AND ASC(i$) > 96 THEN i$ = CHR$(ASC(i$) - 32): PRINT i$;  ELSE PRINT i$;
 277: t$ = t$ + i$
 278: IF LEN(t$) >= chrs THEN t$ = MID$(t$, 1, LEN(t$) - 1): LOCATE CSRLIN, POS(0) - 1: PRINT " "; : LOCATE CSRLIN, POS(0) - 1
 279: 60 LOOP
 280: 70 PRINT ""
 281: IF prm$ = "IS2000>" AND t$ <> "" THEN is2000 = t$ ELSE LastTyped = t$
 282: EXIT SUB
 283: 1009 t$ = t$ + MID$(LastTyped, 1, chrs - LEN(t$) - 1)
 284: LOCATE CSRLIN, 10, 0: PRINT t$;
 285: RETURN
 286: END SUB
 287: 
 288: SUB Rebbott (Warm%)
 289: CompuSay "Are you sure? This will reboot the computer.", 0
 290: CompuSay "Unless using &Windows 95 (&R)", 0
 291: ReadKey "Human>", rbt$, 2, "G", 0
 292: IF UCASE$(rbt$) = "Y" THEN  ELSE GOTO 22
 293:   IF Warm% THEN                 'if they want a warm boot
 294:     DEF SEG = 0                 'assign the value 1234 Hex
 295:     POKE &H473, &H12            'to address 0000:0473 Hex
 296:     POKE &H472, &H34
 297:   END IF
 298:   DEF SEG = &HFFFF              'either way call the BIOS
 299:   CALL Absolute(0)              'routine at FFFF:0000 Hex
 300: 22 END SUB
 301: 
 302: FUNCTION Revers$ (t$)
 303: r$ = ""
 304: FOR q = LEN(t$) TO 1 STEP -1
 305: r$ = r$ + MID$(t$, q, 1)
 306: NEXT q
 307: Revers$ = r$
 308: END FUNCTION
 309: 
 310: SUB Simpl (s$)
 311: OPEN "syon.is2" FOR INPUT AS #3
 312: m$ = MID$(s$, 1, 1)
 313: FOR q = 2 TO LEN(s$)
 314: IF MID$(s$, q, 1) = " " AND MID$(s$, q - 1, 1) <> " " THEN
 315: DO UNTIL EOF(3) OR UCASE$(g$) = UCASE$(m$)
 316: LINE INPUT #3, g$
 317: m$ = LTRIM$(RTRIM$(m$))
 318: g$ = UCASE$(LTRIM$(RTRIM$(g$)))
 319: f = INSTR(g$, "}")
 320: IF LEFT$(g$, 1) = "{" THEN r$ = MID$(g$, 2, f - 2)
 321: IF LEN(g$) = f THEN  ELSE Anton g$, a$
 322: LOOP
 323: IF EOF(3) THEN ChkWrd m$, "IS2000>  I don't know the word " + m$, "IS2000>  " + m$ + " is not a word.": CLOSE 3: OPEN "syon.is2" FOR INPUT AS #3: m$ = "" ELSE tt$ = tt$ + r$ + " ": CLOSE 3: OPEN "syon.is2" FOR INPUT AS #3: m$ = ""
 324: ELSE m$ = m$ + MID$(s$, q, 1)
 325: END IF
 326: NEXT q
 327: PRINT tt$
 328: CLOSE 3
 329: END SUB
 330: 
 331: SUB SolveDAProb (qt$)
 332: IF qt$ = "" THEN  ELSE m$ = qt$: GOTO 12
 333: 'ON ERROR GOTO 0
 334: OPEN "KNLDGE.IS2" FOR INPUT AS #2
 335: ln = 0
 336: DO UNTIL EOF(2)
 337: LINE INPUT #2, d$: ln = ln + 1
 338: LOOP
 339: CLOSE 2
 340: OPEN "words.is2" FOR INPUT AS #2
 341: DO UNTIL EOF(2)
 342: LINE INPUT #2, noth$
 343: IF noth$ = "" THEN  ELSE wrdd = wrdd + 1
 344: LOOP
 345: CLOSE 2
 346: IF ln = 1 THEN a$ = "thing" ELSE a$ = "things"
 347: IF wrdd = 1 THEN b$ = "word" ELSE b$ = "words"
 348: t$ = "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
 349: PRINT t$
 350: PRINT "ºI currently know"; ln; a$; TAB(LEN(t$)); "º"
 351: PRINT "ºI know"; wrdd; b$; TAB(LEN(t$)); "º"
 352: PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"
 353: ReadKey "Problem>", m$, 70, "Are you here?", 0
 354: 12 fst = INSTR(m$, "(")
 355: snd = INSTR(m$, ")")
 356: IF fst = 0 OR snd = 0 THEN PRINT "I don't know what to do.": EXIT SUB
 357: impotnt = INSTR(snd, m$, " ")
 358: IF impotnt = 0 THEN wdbd$ = MID$(m$, snd + 1, LEN(m$) - (snd + 1)): GOTO 2
 359: wdbd$ = MID$(m$, snd + 1, impotnt - snd - 1)
 360: 2 tt$ = UCASE$(MID$(m$, fst, snd - fst))
 361: OPEN "KNLDGE.IS2" FOR INPUT AS #2
 362: DO
 363: LINE INPUT #2, f$
 364: ff$ = MID$(f$, 1, LEN(tt$))
 365: IF UCASE$(ff$) = UCASE$(tt$) THEN GOTO 3
 366: IF EOF(2) THEN PRINT "IS2000>"; TAB(10); "I don't know how to "; LCASE$(MID$(ff$, 2, LEN(ff$) - 1)): CLOSE 2: EXIT SUB
 367: LOOP UNTIL UCASE$(ff$) = UCASE$(tt$)
 368: 3 FOR s = 1 TO LEN(tt$)
 369: IF MID$(tt$, s, 1) = "$" THEN w$ = wdbd$
 370: NEXT s
 371: gw$ = MID$(f$, LEN(tt$) + 3, LEN(f$) - LEN(tt$) - 2)
 372: els = INSTR(gw$, "|")
 373: FOR sl = 1 TO LEN(wdbd$)
 374: IF MID$(wdbd$, sl, 1) = "A" OR MID$(wdbd$, sl, 1) = "E" OR MID$(wdbd$, sl, 1) = "O" OR MID$(wdbd$, sl, 1) = "I" OR MID$(wdbd$, sl, 1) = "U" OR MID$(wdbd$, sl, 1) = "Y" THEN slybl = slybl + 1
 375: NEXT sl
 376: IF slybl = 0 THEN PRINT "IS2000>"; TAB(10); "Use REAL words please.": CLOSE 2: EXIT SUB
 377: FOR s = 1 TO LEN(gw$)
 378: IF MID$(gw$, s, 2) = "*1" THEN IF slybl < 3 THEN f = 3 ELSE s = els
 379: IF MID$(gw$, s, 2) = "$" + CHR$(34) THEN lnt = INSTR(s + 2, gw$, CHR$(34)): g$ = g$ + wdbd$ + MID$(gw$, s + 2, (lnt - s) - 2) ' ELSE G$ = G$ + MID$(M$, S, 1)
 380: IF MID$(gw$, s, 2) = CHR$(34) + "$" AND f = 0 THEN lnt = INSTR(els + 1, gw$, CHR$(34)): ss = INSTR(lnt + 1, gw$, CHR$(34)): g$ = g$ + MID$(gw$, lnt + 1, ss - lnt - 1) + wdbd$
 381: IF MID$(gw$, s, 4) = "$=-$" THEN s = s + 3: g$ = Revers$(wdbd$):
 382: NEXT s
 383: IF impotnt = 0 THEN impotnt = LEN(m$) + 1
 384: FOR d = 1 TO LEN(m$)
 385: IF d = fst THEN m2$ = m2$ + g$: d = impotnt - 1 ELSE m2$ = m2$ + MID$(m$, d, 1)
 386: NEXT d
 387: PRINT "IS2000>"; TAB(10); m2$: is2000 = m2$
 388: CLOSE 2
 389: END SUB
 390: 
 391: SUB StartMappingSpeech
 392: PRINT "IS2000>"; TAB(10); "Computers don't talk very well"
 393: EXIT SUB
 394: PRINT "IS2000>"; TAB(10); "What is your name?"
 395: ReadKey "Human>", nm2$, 69, "What is your name? " + TIME$, 0
 396: OPEN "Spchpats.is2" FOR INPUT AS #2
 397: DO UNTIL EOF(2) OR nm$ = nm2$
 398: LINE INPUT #2, nm$
 399: LOOP
 400: IF EOF(2) AND nm$ <> nm2$ THEN new = 1 ELSE new = 0
 401: IF new = 1 THEN CLOSE 2: GOTO 1234
 402: DO UNTIL d$ = "{/}"
 403: LINE INPUT #2, d$
 404: 
 405: LOOP
 406: 
 407: 
 408: 
 409: 
 410: 
 411: 
 412: 
 413: 1234 END SUB
 414: 
 415: SUB Talk2Em
 416: 
 417: END SUB
 418: 
 419: SUB TeachMSmthing
 420: ON ERROR GOTO 0
 421: OPEN "KNLDGE.IS2" FOR INPUT AS #2
 422: ln = 0
 423: DO UNTIL EOF(2)
 424: LINE INPUT #2, d$: ln = ln + 1
 425: LOOP
 426: CLOSE 2
 427: IF ln = 1 THEN g$ = "thing" ELSE g$ = "things"
 428: t$ = "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
 429: PRINT t$
 430: PRINT "ºI currently know"; ln; g$; TAB(LEN(t$)); "º"
 431: PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"
 432: 
 433: END SUB
 434: 
 435: SUB Upper (n$)
 436: FOR qw% = 1 TO LEN(n$)
 437: IF ASC(MID$(n$, qw%, 1)) > 96 AND ASC(MID$(n$, qw%, 1)) < 123 THEN MID$(n$, qw%, 1) = CHR$(ASC(MID$(n$, qw%, 1)) - 32)
 438: NEXT qw%
 439: END SUB
 440: 
5748128 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$

Click here to go back to the directory listing.
Click here to download this file.
last modified: 2000-05-09 21:04:10