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