First of I must say a huge thank you to the people who have spent time on my darn errors, I have now installed XP PRO, thinking perhaps it was the OS, although I swear the game ran well in ME until I format C drive and re-installed QB4.5.
Now the error's I get are
16 bit MS-DOS Subsystem
C:\Windows\Command\QB.exe
Invalid Start-up Directory, Please Check Your PIF File,
Choose Close To Terminate The Application.
Bought A book Revolutionary Guide To QBasic, with it you get a Floppy, I had trouble loading this with XP but eventually installed it into C:\REVQB.
I got from the Library a book " Beginning Programming For Dummies" but there isn't any reference to these error or there causes.
Regarding the d/loading a new version of QB4.5 I cant find one on-line, yet.
So I am very close to calling it a day with this, although I did enjoy QB,
I have pasted the Game ( BrainAche ) below, please remember I only began learning QB Dec 2002, and as I found out more I then used this in the game, so the game also was a hands on learning as I go tool.
'BrainAche The Game 1-December 2002.
DECLARE SUB MainWindow ()
DECLARE SUB Instruction ()
DIM a%(1 TO 5): DIM a$(1 TO 5): DIM B%(1 TO 5): X = 5: Y = 9
V = 11: Z = 44: SS = 1
MainWindow
RANDOMIZE TIMER
FOR T = 1 TO 5: B%(T) = INT(RND * 25) + 97: NEXT T ' code is produced...
LINE (365, 410)-(525, 440), 14, B
PRINT CHR$(B%(1)); CHR$(B%(2)); CHR$(B%(3)); CHR$(B%(4)); CHR$(B%(5)) '<<<<< Answer<<<<<<
' Yellow Letter box.........
Renew:
q = 0: T = 0: FOR T = 1 TO 5: keypress$ = "": COLOR 10
WHILE keypress$ = ""
KP:
keypress$ = INKEY$
IF keypress$ < CHR$(97) OR keypress$ > CHR$(122) THEN GOTO KP
IF keypress$ <> "" THEN a$(T) = (keypress$): q = q + 3
LOCATE 27, 47 + q: PRINT UCASE$(a$(T)); "."
WEND: NEXT T
LOCATE 25, 45: COLOR 2: PRINT " Sure N. / Y = AnyKey."
keypress$ = "": WHILE keypress$ = ""
keypress$ = INKEY$
IF keypress$ = "n" THEN GOSUB LetterBox: GOTO Renew
WEND:
FOR T = 1 TO 5: LOCATE X, Y: COLOR 10: PRINT UCASE$(a$(T))
Y = Y + 3: NEXT T: X = X + 2: Y = 9: GOSUB LetterBox
IF X = 26 THEN END
' Display input from keyboard option to delete last input....
T = 0: FOR T = 1 TO 5: a%(T) = ASC(a$(T)): NEXT T
' from strings to numbers....
GOSUB Filter1
GOTO Renew
END
LetterBox:
LOCATE 27, 49: PRINT " "
RETURN
Filter1:
T = 0
FOR T = 1 TO 5
IF B%(T) = a%(T) THEN LOCATE V, Z: COLOR 4: PRINT "O": Z = Z + 6: a%(T) = 0: cc = cc + 1
IF cc = 5 THEN PRINT "you have won" '<<<<<<<<<<<<<<
NEXT T
' correct postion correct letter.
DO
FOR T = 1 TO 5
IF B%(T) = a%(SS) THEN LOCATE V, Z: COLOR 14: PRINT "#": a%(SS) = 0: Z = Z + 6: cc = cc + 1
NEXT T
SS = SS + 1
LOOP UNTIL SS >= 6
FOR T = cc + 1 TO 5
LOCATE V, Z: COLOR 9: PRINT "@": Z = Z + 6: NEXT T
V = V + 1: Z = 44: SS = 1: cc = 0
RETURN
' Places Result Mark On Code Carpet.................
SUB Instruction
'It does exactly what it says on the can.....
Instruction:
SCREEN 12
LOCATE 10, 7: COLOR 6: PRINT "Computer will choose 5 random letters from the Alphabet."
LOCATE 11, 7: PRINT "Your goal"
LOCATE 11, 16: COLOR 12: PRINT "(if you care to accept it)"
LOCATE 11, 43: COLOR 6: PRINT "is to find out which letters"
LOCATE 12, 17: PRINT "it has chosen and also the correct position."
LOCATE 14, 24: PRINT "Example:":
LOCATE 14, 32: COLOR 2: PRINT "The Code is A.B.C.D.E,"
LOCATE 15, 17: COLOR 6: PRINT "(A) Being Position 1. (B) being position 2 etc"
LOCATE 17, 7: PRINT "You will recieve a"
LOCATE 17, 24: COLOR 4: PRINT "Red Mark"
LOCATE 17, 33: COLOR 6: PRINT "for correct letter in a correct position;"
LOCATE 18, 7: PRINT "However, you will not know"
LOCATE 18, 34: COLOR 5: PRINT "which"
LOCATE 18, 40: COLOR 6: PRINT "letter is in the correct position."
LOCATE 19, 7: PRINT "You will only know you have a"
LOCATE 19, 37: COLOR 10: PRINT "correct"
LOCATE 19, 45: COLOR 6: PRINT "letter in a"
LOCATE 19, 57: COLOR 10: PRINT "correct"
LOCATE 19, 65: COLOR 6: PRINT "position."
LOCATE 21, 7: PRINT "The position of the"
LOCATE 21, 27: COLOR 4: PRINT "Red Mark"
LOCATE 21, 36: COLOR 6: PRINT "does not necessarily mean that the letter"
LOCATE 22, 7: PRINT "is in that particular position."
LOCATE 24, 7: PRINT "You will receive a"
LOCATE 24, 26: COLOR 14: PRINT "Yellow Mark"
LOCATE 24, 38: COLOR 6: PRINT "if you have a correct Letter, but in the"
LOCATE 25, 7: COLOR 3: PRINT "wrong"
LOCATE 25, 13: COLOR 6: PRINT "Postion. "
LOCATE 26, 14: PRINT "You will receive a"
LOCATE 26, 31: COLOR 9: PRINT "Blue Mark"
LOCATE 26, 40: COLOR 6: PRINT " for an incorrect letter."
LOCATE 27, 34: COLOR 7: PRINT "!Good Luck!"
LOCATE 28, 14: COLOR 12: PRINT "! Tip !":
LOCATE 28, 22: COLOR 9: PRINT " PC Can, And Often Does Choose Double Letters."
SLEEP
END SUB
SUB MainWindow
SCREEN 12: CLS
LINE (10, 10)-(630, 460), 11, B, 900
LOCATE 4, 32: COLOR 5: PRINT " ! BrainAche ! "
LOCATE 5, 25: COLOR 4: PRINT " Do You Require Instructions."
LOCATE 6, 26: COLOR 6: PRINT " Press Y For Instruction's"
LOCATE 7, 28: COLOR 8: PRINT "Or Any Key To Continue."
LOCATE 8, 24: COLOR 9: PRINT "Press Return Key After Selection"
LOCATE 8, 59: INPUT "", yn$
IF yn$ = "y" THEN Instruction
'menu option...................
CLS : SCREEN 12: LINE (10, 10)-(630, 460), 4, B, 55: SLEEP 2
FOR T = 3 TO 66: LOCATE 2, T: PRINT " Brain-Ache.": GOSUB delay: NEXT T
BEEP: FOR T = 66 TO 34 STEP -1: LOCATE 2, T: PRINT " Brain-Ache. ":
GOSUB delay: NEXT T: BEEP: LOCATE 3, T: COLOR 2: PRINT " ***********"
SLEEP 2: GOSUB Side
'above it the border and the name.......
CIRCLE (315, 445), 10, 5: 'Fire Circle.........
X = 315: Y = 450: Z = 70: P = 9: W = 65: DO: E = INT(RND * 15 + 1)
LOCATE 5, P: PRINT "*": FOR q = 1 TO 50
COLOR E: LINE (X, Y)-(W, Z), E: LINE (X, Y)-(W, Z), 0: NEXT q
P = P + 3: W = W + 25: LOOP UNTIL P = 24: GOSUB Side
'the first 5 stars.........
P = 9: I = 70: s = 7: DO: Z = Z + 33: Loo = Loo + 1: FOR q = 1 TO 50
E = INT(RND * 15 + 1): LOCATE s, P: PRINT "*": COLOR E
LINE (X, Y)-(I, Z), E: LINE (X, Y)-(I, Z), 0: NEXT q
s = s + 2: IF Loo = 9 THEN Loo = 0: Z = 66: I = I + 24: s = 7: P = P + 3
LOOP UNTIL P = 24: GOSUB Side
' the rest of the right hand stars............
q = 5: T = 1: I = 250: DO: FOR U = 1 TO 50: E = INT(RND * 15 + 1)
LOCATE q, 30: COLOR E: PRINT "("; T; "

": LINE (X, Y)-(I, Z), 15
LINE (X, Y)-(I, Z), 0: NEXT U: T = T + 1: Z = Z + 40: q = q + 2
LOOP UNTIL q = 25: GOSUB Side
' the side numbers.............
CIRCLE (315, 445), 10, 0 ' ends the fire circle........
LINE (300, 150)-(600, 65), 4, B: LINE (300, 65)-(340, 90), 4
LINE (600, 65)-(550, 90), 4
LINE (300, 150)-(340, 135), 4: LINE (600, 150)-(550, 135), 4
FOR U = 1 TO 14
LINE (550, 135)-(340, 90), U, BF: FOR W = 1 TO 99900: NEXT W: NEXT U
' creates the code box flashing colours.............
LOCATE 7, 48: COLOR 12: PRINT "Processing Data"
LOCATE 8, 47: PRINT ":Intialising Code:"
Loo = 0: DO: U = INT(RND * 15 + 1): Loo = Loo + 1
LINE (340, 95)-(550, 95), U: LINE (340, 100)-(550, 100), U
LINE (340, 110)-(550, 110), U: LINE (340, 120)-(550, 120), U
LINE (340, 130)-(550, 130), U: FOR W = 1 TO 99900: NEXT W
LOOP UNTIL Loo = 26: BEEP: GOSUB delay
' inserts words, multi coloured lines............
P = 0: LINE (340, 90)-(550, 135), 2, BF
DO: aa = 0: q = q + 1: FOR aa = 97 TO 122
LOCATE 8, 47: PRINT CHR$(aa); " "; CHR$(aa - 1); " "; CHR$(aa - 2); " "; CHR$(aa + 2); " "; CHR$(aa - 3)
LOCATE 8, 56: PRINT " "; CHR$(aa + 2); " "; CHR$(aa - 1); " "; CHR$(aa); " "; CHR$(aa - 3); " "; CHR$(aa - 1)
GOSUB longdelay: NEXT aa: LOOP UNTIL q >= 20
LINE (340, 90)-(550, 135), 13, BF
LOCATE 8, 48: PRINT " Code Locked Down.": GOSUB Side
'Flash Alphabet then and code declaration...........
T = 0: X = 610: Y = 440: FOR T = 1 TO 170: CIRCLE (X - T, Y), 10, 7
GOSUB delay: CIRCLE (X - T + 1, Y), 10, 0: NEXT T
'create the fire circle and move it across the screen............
PSET (440, 440), 7: T = 0: X = 440: Y = 165: U = 345: V = 44: P = 11
DO: FOR T = 1 TO 200: I = INT(RND * 15 + 1): LINE (X, X)-(U, Y), I
LINE (X, X)-(U, Y), 0: NEXT T: LOCATE P, V: COLOR I: PRINT "."
V = V + 6: U = U + 50
IF V = 74 THEN Y = Y + 20: V = 44: P = P + 1: U = 345:
LOOP UNTIL P = 21: GOSUB Side: CIRCLE (440, 440), 10, 0:
' the stars below the Code Box.........
EXIT SUB
' just simple delays.........
longdelay: FOR QQ = 1 TO 88000: NEXT QQ: RETURN
delay:
FOR QQ = 1 TO 800: NEXT QQ: RETURN
'the brainache Icon moving up/down left side = below......
Side:
T = 3: DO: T = T + 1: LOCATE T - 1, 4: PRINT " ": LOCATE T, 4: PRINT "B"
LOCATE T + 1, 4: PRINT "r": LOCATE T + 2, 4: PRINT "a"
LOCATE T + 3, 4: PRINT "i": LOCATE T + 4, 4: PRINT "n"
LOCATE T + 5, 4: PRINT "A": LOCATE T + 6, 4: PRINT "c"
LOCATE T + 7, 4: PRINT "h": LOCATE T + 8, 4: PRINT "e"
GOSUB delay: LOOP WHILE T <= 19: T = 20: DO: T = T - 1
LOCATE T, 4: PRINT "B": LOCATE T + 1, 4: PRINT "r"
LOCATE T + 2, 4: PRINT "a": LOCATE T + 3, 4: PRINT "i"
LOCATE T + 4, 4: PRINT "n": LOCATE T + 5, 4: PRINT "A"
LOCATE T + 6, 4: PRINT "c": LOCATE T + 7, 4: PRINT "h"
LOCATE T + 8, 4: PRINT "e": LOCATE T + 9, 4: PRINT " "
GOSUB delay: LOOP UNTIL T = 4: RETURN
END SUB
Again Thanks to this forum and the people who make it.