'=========================================================================== ' Subject: NO BRAIN (LIKE HUGO) GAME Date: Year of 1995 ' Author: The ABC Programmer Code: QB, QBasic, PDS ' Keys: NO,BRAIN,LIKE,HUGO,GAME Packet: DEMOS.ABC '=========================================================================== '=================================================== ' NOBRAIN.BAS By William Yu (1994) EGA Required ' Game is incomplete, please finish. ' Like HUGO, but without the moving dweeb. ' ' The person you are directing has been brainwashed ' You must find food and money in order to survive ' So you must break into the store, then find the ' whereabouts of Mr. BumbScum who brainwashed him. ' ' HINTS: ' View SUB Hints if you are stuck and have no ' idea as to what to do next. '=================================================== DEFINT A-Z DECLARE SUB ScrollUp () DECLARE SUB ScrollDown () DECLARE SUB LONE () DECLARE SUB LTWO () DECLARE SUB MBOX (Nlines%) DECLARE SUB PAUSE (SECS!) DECLARE SUB parseit () DECLARE SUB EmptyChar () CONST True = 1 CONST False = 0 DO ve = ve + 1 READ in$ LOOP UNTIL in$ = "end" DO no = no + 1 READ in$ LOOP UNTIL in$ = "end" DO pl = pl + 1 READ in$ LOOP UNTIL in$ = "end" RESTORE DIM SHARED Verb$(ve), noun$(no), place$(pl), UserInput$, v$, n$, p$, v, n, p FOR count = 1 TO ve READ Verb$(count) NEXT FOR count = 1 TO no READ noun$(count) NEXT FOR count = 1 TO pl READ place$(count) NEXT ' Declare Variables ' --------------------------------------- ' ve = Verbs ' ne = Nouns ' Count, etc. = Counters ' UserInput$ = Command to Parse ' True = 1 False = 0 ' CMD = Command Executed ' Location = Current Location on MAP ' Apples = Apples Available ' WindowBroken = If Window has been Broken ' Apples.Inv = Apples in Inventory ' --------------------------------------- CLS SCREEN 7, 0, 0, 0 LOCATION = 1 APPLES = -1 APPLES.INV = 0 WindowBroken = False CALL LONE PCOPY 0, 1 MBOX (7) COLOR 15, 0 LOCATE 6, 5: PRINT "You are standing just outside a" LOCATE 7, 5: PRINT "store. It is night, no one seems" LOCATE 8, 5: PRINT "to be around. You must find some" LOCATE 9, 5: PRINT "way to break into the store." LOCATE 10, 5: PRINT "A large fence blocks my passage" LOCATE 11, 5: PRINT "to the south." LOCATE 12, 5: PRINT "Exits: East, West" A$ = INPUT$(1) PCOPY 1, 0 TypeCommand: LINE (-1, 194)-(320, 180), 9, B A = 3: I = 1: CMD = 0 LOCATE 24, 1: PRINT SPACE$(40); LOCATE 24, 1: COLOR 15: PRINT "> "; : COLOR 10: PRINT CHR$(95); REDIM WORD$(40) DO IF A = 39 THEN LOCATE 24, A: PRINT CHR$(95); : A = A - 1: I = I - 1 DO A$ = INKEY$ LOOP UNTIL LEN(A$) > 0 IF A$ = CHR$(8) AND A = 3 THEN A = A - 1: I = I - 1: GOTO CNT IF A$ = CHR$(13) THEN EXIT DO IF A$ = CHR$(27) THEN EXIT DO IF A$ = CHR$(8) AND A = 38 THEN LOCATE 24, A: PRINT " "; IF A$ = CHR$(8) AND A > 3 THEN A = A - 1: I = I - 1: A$ = " ": LOCATE 24, A: PRINT CHR$(95); " "; : A = A - 1: I = I - 1: GOTO CNT IF ASC(A$) > 30 AND A >= 3 THEN LOCATE 24, A: COLOR 10: PRINT A$; CHR$(95); " "; WORD$(I) = WORD$(I - 1) + A$ ELSE A = A - 1: I = I - 1 END IF CNT: A = A + 1 I = I + 1 LOOP I = I - 1 v$ = "": n$ = "": p$ = "": v = 0: n = 0: p = 0 UserInput$ = LTRIM$(RTRIM$(WORD$(I))) BackUp$ = UserInput$ IF UserInput$ = "" THEN PCOPY 0, 1: CALL MBOX(2): COLOR 15: LOCATE 6, 5: PRINT " Don't just sit there!": LOCATE 7, 5: PRINT " Type Something!!!": A$ = INPUT$(1): PCOPY 1, 0: GOTO TypeCommand parseit IF v = 11 THEN END GOSUB Commands 'PRINT "Verb:"; v$, "Noun:"; n$ 'PRINT "Verb#"; v, "Noun#"; n 'PRINT "Place"; p, "Place"; p$ GOTO TypeCommand Commands: SELECT CASE v CASE 1 TO 5, 21 ' Hit, Kick, Punch, Shake, Break, Bust IF n = 1 AND LOCATION = 1 THEN ' Shake the Tree IF APPLES = -1 THEN ' Shake the Apples LINE (260, 35)-(300, 67), 2, BF LOCATE 24, 3: PRINT SPACE$(37); PCOPY 0, 2 LOCATE 24, 3: PRINT BackUp$; CIRCLE (266, 160), 4, 12: PAINT (266, 160), 12: LINE (266, 157)-(266, 156), 0 CIRCLE (277, 143), 4, 12: PAINT (277, 143), 12: LINE (277, 140)-(277, 139), 0 CIRCLE (293, 162), 4, 12: PAINT (293, 162), 12: LINE (293, 159)-(293, 158), 0 PCOPY 0, 1 MBOX (2) COLOR 15 LOCATE 6, 5: PRINT "The tree shakes violently and" LOCATE 7, 5: PRINT "down comes three red apples." APPLES = True A$ = INPUT$(1) PCOPY 1, 0 CMD = True ELSE ' No Apples on tree PCOPY 0, 1 MBOX (2) COLOR 15 LOCATE 6, 5: PRINT "The tree shakes some more but" LOCATE 7, 5: PRINT "nothing unusual happens." A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF END IF IF n = 3 AND LOCATION = 1 THEN PCOPY 0, 1 MBOX (2) COLOR 15 LOCATE 6, 5: PRINT "You attempt to break the window" LOCATE 7, 5: PRINT "but you don't have enough force." A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF IF n = 4 AND LOCATION = 1 THEN PCOPY 0, 1 MBOX (2) COLOR 15 LOCATE 6, 6: PRINT "The door is made of steel!" LOCATE 7, 6: PRINT "You can't bust that down." A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF IF LEN(RTRIM$(BackUp$)) <= 5 AND CMD <> True THEN PCOPY 0, 1 MBOX (1) COLOR 15: LOCATE 6, 16: PRINT UCASE$(v$); " what?" A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF IF CMD <> True THEN PCOPY 0, 1 MBOX (1) COLOR 15: LOCATE 6, 10: PRINT "Stop being so voilent!" A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF CASE 10 IF n = 6 AND LOCATION = 1 OR n = 7 AND LOCATION = 1 OR n = 8 AND LOCATION = 1 THEN IF WindowBroken = True THEN PCOPY 3, 1 CALL ScrollUp CALL LTWO CALL ScrollDown PCOPY 0, 1 MBOX (3) COLOR 15 LOCATE 6, 5: PRINT "You enter the store finding it" LOCATE 7, 5: PRINT "pitch dark. You can hardly see" LOCATE 8, 5: PRINT "a single thing." A$ = INPUT$(1) PCOPY 1, 0 CMD = True LOCATION = 2 ELSE PCOPY 0, 1 MBOX (1) COLOR 15: LOCATE 6, 8: PRINT "There's no visible way in." A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF END IF CASE 12 TO 15 ' Get, Pick, Take, Grab IF n = 2 AND APPLES = False OR n = 9 AND APPLES = False THEN ' Get Apples When you already have them PCOPY 0, 1 MBOX (1) COLOR 15: LOCATE 6, 9: PRINT "They're in your backpack!" A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF IF LOCATION = 1 THEN IF n = 2 AND APPLES = True OR n = 9 AND APPLES = True THEN ' Get Apples (on Ground) PCOPY 2, 0 LOCATE 24, 3: PRINT BackUp$; PCOPY 0, 1 MBOX (2) COLOR 15 LOCATE 6, 5: PRINT "You pick up the apples and stuff" LOCATE 7, 5: PRINT "them into your backpack." A$ = INPUT$(1) PCOPY 1, 0 APPLES = False APPLES.INV = 3 CMD = True END IF END IF IF LOCATION = 1 THEN IF n = 2 AND APPLES = -1 OR n = 9 AND APPLES = -1 THEN ' Get Apples (On Tree) PCOPY 0, 1 MBOX (1) COLOR 15: LOCATE 6, 8: PRINT "They're out of your reach." A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF END IF IF LEN(RTRIM$(BackUp$)) <= 4 AND CMD <> True THEN ' Noun not found PCOPY 0, 1 MBOX (1) COLOR 15: LOCATE 6, 17: PRINT UCASE$(v$); " what?" A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF IF n > 0 AND CMD <> True THEN ' Noun found but not in data PCOPY 0, 1 MBOX (1) COLOR 15: LOCATE 6, 9: PRINT "You can't get the "; n$; "!" A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF IF CMD <> True THEN ' Noun found but not in data PCOPY 0, 1 MBOX (1) COLOR 15: LOCATE 6, 5: PRINT "You can't get that in this game." A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF CASE 16, 23 ' Look, See IF n = 1 AND LOCATION = 1 THEN PCOPY 0, 1 IF APPLES = -1 THEN MBOX (5) ELSE MBOX (3) COLOR 15 LOCATE 6, 5: PRINT "The tree seems to be quite old." LOCATE 7, 5: PRINT "It doesn't look as if it has a" LOCATE 8, 5: PRINT "sturdy foundation either." IF APPLES = -1 THEN LOCATE 9, 5: PRINT "You notice three red apples" LOCATE 10, 5: PRINT "hanging from it." END IF A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF IF n > 0 AND CMD <> True AND LOCATION = 1 THEN PCOPY 0, 1 MBOX (2) COLOR 15 LOCATE 6, 5: PRINT "The "; n$; " looks remarkably" LOCATE 7, 5: PRINT "similar to a "; n$ A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF IF CMD <> True AND LOCATION = 2 THEN PCOPY 0, 1 MBOX (2) COLOR 15 LOCATE 6, 5: PRINT "It's too dark to see very much." LOCATE 7, 5: PRINT "Exits: Outside" A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF IF CMD <> True AND LOCATION = 1 THEN ' Survey Area PCOPY 0, 1 L = 5 IF APPLES = True THEN L = L + 1 IF WindowBroken = True THEN L = L + 1 MBOX (L) COLOR 15, 0 LOCATE 6, 5: PRINT "You are standing just outside a" LOCATE 7, 5: PRINT "store. It is night, no one seems" LOCATE 8, 5: PRINT "to be around. A large fence" LOCATE 9, 5: PRINT "blocks my passage to the south." IF APPLES = True THEN LOCATE 10, 5: PRINT "Three apples are on the ground.": K = K + 1 IF WindowBroken = True THEN LOCATE 10, 5: PRINT "A window has been broken." IF L = 6 THEN LOCATE 11, 5 ELSE LOCATE 10, 5 PRINT "Exits: East, West"; IF WindowBroken = True THEN PRINT ", Inside" A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF CASE 17, 18 ' Throw, Chuck IF n = 2 AND p = 1 OR n = 9 AND p = 1 THEN IF APPLES.INV = 0 THEN ' Not carrying any apples PCOPY 0, 1 MBOX (2) COLOR 15 LOCATE 6, 5: PRINT "You don't have any apples to" LOCATE 7, 5: PRINT "throw with." A$ = INPUT$(1) PCOPY 1, 0 CMD = True ELSE ' Has Apples in BackPack IF WindowBroken = False THEN X = 20 DO PCOPY 0, 1 CIRCLE (160, 85), X, 12: PAINT (160, 85), 12 PAUSE (.01) PCOPY 1, 0 X = X - 2 LOOP UNTIL X = 0 LINE (186, 75)-(182, 75), 11: LINE (186, 75)-(186, 85), 11 LINE (140, 85)-(133, 75), 0: LINE (133, 75)-(150, 84), 0 LINE (150, 84)-(160, 76), 0: LINE (160, 76)-(168, 80), 0 LINE (168, 80)-(175, 74), 0: LINE (175, 74)-(185, 79), 0 LINE (185, 79)-(180, 95), 0: LINE (180, 95)-(188, 106), 0 LINE (188, 106)-(181, 104), 0: LINE (181, 104)-(181, 101), 0 LINE (181, 101)-(139, 101), 0: LINE (139, 101)-(139, 104), 0 LINE (139, 104)-(134, 108), 0: LINE (134, 108)-(132, 100), 0 LINE (132, 100)-(140, 85), 0: PAINT (160, 80), 0 PCOPY 0, 1 MBOX (1) COLOR 15: LOCATE 6, 18: PRINT "CRASH!!!" PAUSE (1) PCOPY 1, 0 MBOX (6) COLOR 15 LOCATE 6, 5: PRINT "You take a step back, and with" LOCATE 7, 5: PRINT "the arm of Nolan Ryan, you throw" LOCATE 8, 5: PRINT "the apple at the window with" LOCATE 9, 5: PRINT "great accuracy and force that it" LOCATE 10, 5: PRINT "completely shatters the window." LOCATE 11, 5: PRINT "Not to mention the apple." EmptyChar A$ = INPUT$(1) PCOPY 1, 0 CMD = True WindowBroken = True ELSE PCOPY 0, 1 MBOX (2) COLOR 15 LOCATE 6, 5: PRINT "The window is already broken." LOCATE 7, 5: PRINT "No sense in wasting another one." A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF END IF END IF CASE 19 ' Open IF n = 3 AND LOCATION = 1 THEN PCOPY 0, 1 MBOX (2) COLOR 15 LOCATE 6, 5: PRINT "The window can't be opened from" LOCATE 7, 5: PRINT "the outside." A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF IF n = 4 AND LOCATION = 1 THEN PCOPY 0, 1 MBOX (4) COLOR 15 LOCATE 6, 5: PRINT "If it was only that easy you" LOCATE 7, 5: PRINT "could pass this game in no less" LOCATE 8, 5: PRINT "than two minutes! Nice try" LOCATE 9, 5: PRINT "anyways but the door is locked." A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF CASE 20 ' Read IF n = 5 AND LOCATION = 1 THEN ' Read Sign PCOPY 0, 1 MBOX (2) COLOR 15 LOCATE 6, 5: PRINT "What are you, blind?!" LOCATE 7, 5: PRINT "The sign clearly reads "; CHR$(34); COLOR 12: PRINT "CLOSED"; : COLOR 15: PRINT CHR$(34) A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF IF n > 0 AND LOCATION = 1 AND CMD <> True THEN PCOPY 0, 1 MBOX (1) COLOR 15 LOCATE 6, 6: PRINT "How can you read a "; n$; "?!" A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF IF LEN(RTRIM$(BackUp$)) = 4 AND CMD <> True THEN PCOPY 0, 1 MBOX (1) COLOR 15 LOCATE 6, 17: PRINT "READ what?" A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF IF CMD <> True THEN PCOPY 0, 1 MBOX (1) COLOR 15 LOCATE 6, 7: PRINT "Can't read that in this game." A$ = INPUT$(1) PCOPY 1, 0 CMD = True END IF CASE 22 ' Pull IF n = 10 AND LOCATION = 2 OR n = 11 AND LOCATION = 2 THEN PAINT (100, 10), 15, 0: PAINT (10, 100), 7, 0: PAINT (100, 150), 14, 0 PAINT (170, 26), 10, 0 CIRCLE (170, 30), 30, 10, .1, 3.05, 1 / 2 CIRCLE (169, 30), 30, 0, .1, 3.05, 1 / 2 CIRCLE (180, 29), 10, 15, .5, 1.5, 1 CIRCLE (179, 29), 10, 15, .5, 1.4, 1 LINE (47, 30)-(320, 145), 8, BF: LINE (166, 8)-(174, 15), 7, BF LINE (160, 33)-(155, 44), 14: LINE (150, 32)-(140, 47), 14 LINE (170, 33)-(170, 40), 14 LINE (180, 33)-(185, 44), 14: LINE (190, 32)-(200, 47), 14 LINE (178, 29)-(178, 55), 15 CIRCLE (178, 56), 1, 12: PAINT (178, 56), 12 PCOPY 0, 1 MBOX (1) LOCATE 6, 5: COLOR 15: PRINT " WOW!!! AWESOME, light at last!" A$ = INPUT$(1) PCOPY 1, 0 LIGHT = True CMD = True END IF END SELECT IF CMD <> True THEN ' Verb not found in DATA PCOPY 0, 1 MBOX (3) COLOR 15 LOCATE 6, 5: PRINT "I'm sorry but I don't know how to" LOCATE 7, 5: COLOR 11: PRINT LCASE$(LEFT$(BackUp$, 33)) LOCATE 8, 5: COLOR 10: PRINT "For a list of commands type HELP" A$ = INPUT$(1) PCOPY 1, 0 END IF RETURN '--------- 'Verb data '--------- DATA shake,hit,break,kick,punch,knock,read,climb,look,go DATA quit,get,grab,pick,take,look,throw,chuck,open,read DATA bust,pull,see DATA end '--------- 'Noun data '--------- DATA tree,apples,window,door,sign,store,in,inside,fruit,cord DATA string DATA end '------------- 'Location data '------------- DATA window DATA end ENDGAME: SCREEN 0, 0, 0, 0: WIDTH 80, 25: COLOR 7, 0: CLS END SUB EmptyChar DO LOOP UNTIL INKEY$ = "" END SUB SUB Hints ' HINTS (Type as shown): ' ' HIT TREE ' GET APPLES ' THROW APPLE AT WINDOW ' GO IN ' PULL CORD ' QUIT END SUB DEFSNG A-Z SUB LONE DIM SIGN(120) PALETTE 15, 0 LOCATE 1, 1: PRINT "CONVIENCE STORE" GET (0, 0)-(118, 7), SIGN LOCATE 1, 1: PRINT SPACE$(40) PALETTE 15, 15 LINE (0, 177)-(319, 125), 10, BF LINE (0, 0)-(319, 120), 1, BF LINE (0, 120)-(319, 125), 2, BF CIRCLE (300, 10), 16, 14 PAINT (300, 10), 14 DO RANDOMIZE TIMER A = INT(RND * 319) + 1 B = INT((176 - 125 + 1) * RND + 125) LINE (A - 100, B)-(A + A, B + 1), 2, B LINE (A - 100, B - 120)-(A + A, B - 121), 9, B C = C + 1 LOOP UNTIL C = 60 LINE (20, 130)-(220, 60), 14, BF LINE (10, 60)-(230, 59), 6, BF LINE (11, 59)-(30, 35), 6 LINE (229, 59)-(210, 35), 6 LINE (210, 35)-(30, 35), 6 PAINT (100, 45), 6 PUT (57, 50), SIGN, OR LINE (35, 130)-(72, 70), 0, B LINE (73, 130)-(110, 70), 0, B PAINT (40, 120), 12, 0: PAINT (100, 80), 12, 0 LINE (35, 131)-(15, 177), 8 LINE (110, 131)-(130, 177), 8 LINE (35, 131)-(110, 131), 8 LINE (130, 177)-(15, 177), 8 PAINT (80, 150), 7, 8 LINE (130, 177)-(15, 177), 7 LINE (69, 97)-(67, 103), 7, BF LINE (76, 97)-(78, 103), 7, BF LINE (130, 72)-(190, 110), 0, B LINE (131, 73)-(189, 109), 11, BF LINE (186, 75)-(182, 75), 15 LINE (186, 75)-(186, 85), 15 LINE (134, 107)-(134, 105), 15 LINE (134, 107)-(135, 107), 15 LINE (140, 109)-(180, 102), 12, BF CIRCLE (145, 106), 3, 15, 1.7, 4.6 LINE (148, 104)-(148, 108), 15: LINE (148, 108)-(151, 108), 15 CIRCLE (156, 106), 2, 15 LINE (161, 104)-(164, 104), 15 LINE (160, 104)-(160, 106), 15: LINE (161, 106)-(164, 106), 15 LINE (163, 108)-(160, 108), 15: LINE (164, 108)-(164, 107), 15 LINE (167, 104)-(167, 108), 15: LINE (167, 104)-(170, 104), 15 LINE (167, 108)-(170, 108), 15: LINE (167, 106)-(169, 106), 15 LINE (173, 104)-(173, 108), 15: CIRCLE (174, 106), 3, 15, 4.7, 1.5 LINE (290, 133)-(270, 60), 6, BF LINE (286, 66)-(285, 126), 8: LINE (281, 77)-(279, 110), 8 LINE (290, 133)-(310, 140), 6: LINE (270, 133)-(250, 140), 6 LINE (310, 140)-(280, 135), 6: LINE (280, 135)-(250, 140), 6 PAINT (277, 134), 6 CIRCLE (260, 56), 25, 2: PAINT (260, 50), 2 CIRCLE (280, 45), 33, 2: PAINT (290, 45), 2 CIRCLE (303, 53), 22, 2: PAINT (315, 53), 2 'Draw Apples CIRCLE (266, 60), 4, 12: PAINT (266, 60), 12: LINE (266, 57)-(266, 56), 0 CIRCLE (277, 43), 4, 12: PAINT (277, 43), 12: LINE (277, 40)-(277, 39), 0 CIRCLE (293, 62), 4, 12: PAINT (293, 62), 12: LINE (293, 59)-(293, 58), 0 END SUB SUB LTWO LINE (0, 0)-(320, 178), 0, BF LINE (47, 30)-(319, 145), 8, B LINE (45, 30)-(45, 145), 8 LINE (45, 29)-(0, 0), 8 LINE (47, 28)-(320, 28), 8 LINE (47, 28)-(4, 0), 8 LINE (3, 0)-(320, 0), 8 LINE (319, 0)-(319, 28), 8 LINE (0, 0)-(0, 177), 8 LINE (0, 177)-(45, 146), 8 LINE (47, 147)-(320, 147), 8 LINE (47, 147)-(3, 177), 8 LINE (3, 177)-(320, 177), 8 LINE (319, 177)-(319, 147), 8 PAINT (100, 10), 7, 8: PAINT (10, 100), 8: PAINT (100, 150), 6, 8 LINE (165, 7)-(175, 15), 0, B LINE (166, 8)-(174, 15), 8, BF CIRCLE (170, 30), 30, 8, .1, 3.05, 1 / 2 CIRCLE (169, 30), 30, 8, .1, 3.05, 1 / 2 PAINT (170, 26), 2, 8 CIRCLE (170, 30), 30, 0, .1, 3.05, 1 / 2 CIRCLE (169, 30), 30, 0, .1, 3.05, 1 / 2 CIRCLE (180, 29), 10, 7, .5, 1.5, 1 CIRCLE (179, 29), 10, 7, .5, 1.4, 1 LINE (178, 28)-(178, 55), 7 CIRCLE (178, 56), 1, 4: PAINT (178, 56), 4 END SUB SUB MBOX (Nlines%) IF Nlines% > 3 THEN n = 10 * Nlines% - Nlines% ELSE n = 10 * Nlines% IF Nlines% = 1 THEN n = 12 LINE (23, 37)-(300, 37 + n), 7, B LINE (24, 38)-(299, 36 + n), 0, BF LINE (26, 38 + n)-(301, 39 + n), 8, BF LINE (301, 40)-(302, 39 + n), 8, BF END SUB DEFINT A-Z SUB parseit UserInput$ = LCASE$(UserInput$) + " " '-------------- 'Parse sentence '----------------------------- 'The first 3 letters of a verb 'and the first 4 letters of a 'noun is all that is needed. '----------------------------- DO WHILE LEN(UserInput$) FOR ve = 1 TO LEN(UserInput$) Char$ = MID$(UserInput$, ve, 1) IF Char$ = " " OR Char$ = "!" OR Char$ = "." OR Char$ = "," + "" THEN VrbHold$ = LEFT$(UserInput$, ve - 1) UserInput$ = MID$(UserInput$, ve + 1) Count1 = 1 Count2 = 1 Count3 = 1 DO 'get verb IF LEFT$(VrbHold$, 5) = LEFT$(Verb$(Count1), 5) THEN v$ = Verb$(Count1) v = Count1 ve = 1 END IF Count1 = Count1 + 1 IF Verb$(Count1) = "end" THEN EXIT DO LOOP IF n = 0 THEN DO 'get noun IF LEFT$(VrbHold$, 4) = LEFT$(noun$(Count2), 4) THEN n$ = noun$(Count2) n = Count2 ve = 1 EXIT DO END IF Count2 = Count2 + 1 IF noun$(Count2) = "end" THEN EXIT DO LOOP END IF IF n > 0 THEN DO 'get location IF LEFT$(VrbHold$, 4) = LEFT$(place$(Count3), 4) THEN p$ = place$(Count3) p = Count3 EXIT SUB END IF Count3 = Count3 + 1 IF place$(Count3) = "end" THEN EXIT DO LOOP END IF END IF NEXT LOOP END SUB DEFSNG A-Z SUB PAUSE (SECS!) BEGIN! = TIMER DO LOOP UNTIL TIMER - BEGIN! > SECS! END SUB DEFINT A-Z SUB ScrollDown FOR I% = 8240 TO 0 STEP -80 M% = FIX(I% / 256): L% = I% - (M% * 256) OUT &H3D4, 12: OUT &H3D5, M%: OUT &H3D4, 13: OUT &H3D5, L% WAIT &H3DA, 8: 'waits for vertical retrace FOR DELAY = 0 TO 100: NEXT: 'Adjust for different scroll speed NEXT END SUB SUB ScrollUp FOR I% = 0 TO 8240 STEP 80 REM M% stands for MSB and L%=LSB M% = FIX(I% / 256): L% = I% - (M% * 256) OUT &H3D4, 12: OUT &H3D5, M%: OUT &H3D4, 13: OUT &H3D5, L% WAIT &H3DA, 8 'Wait for vertical retrace FOR D = 0 TO 100: NEXT: 'Adjust for different scroll speed NEXT END SUB