Another Illegal Fuction Call Error
Posted: Mon Oct 29, 2012 8:21 pm
I can't figure out why I'm getting an Illegal Function Call error on this line
PRINT M4$
LOCATE 26, 21
My code:
'************************** PROGRAM 9.2 *************************
' THIS IS A MENU-DRIVEN PROGRAM TO CONVERT TO AND FROM U'S',
' EUROPEAN, AND GREAT BRITAIN CURRENCIES
' PROGRAM VARIABLES
'
' CHOICE AND CHOICE$ MENU CHOICES
' M1$, M2$, M3$, M4$, M5$, M6$ AND M7$ USED TO DISPLAY THE MENU
' F1$ F2$, F3$, AND F4$ USED TO PRINT OUT THE FORMULAS
' E$ USED TO DISPLAY AN ERROR MESSAGE
' ANSWER$ CHOICE TO PREFORM A CALCULATION
' USD U.S. DOLLARS
' ERR EURROS
' GBP GREAT BRITAIN POUNDS
' PAUSE$ PAUSE TO READ A MESSAGE
' ***************************** MAIN MODULE **************************
COLOR 14, 3
GOSUB InitializePrintImages
LET CHOICE = 0
DO UNTIL CHOICE = 5 ' 5 IS ENDING VALUE
GOSUB PrintMenu ' PRINT MENU & INPUT CHOICE
SELECT CASE CHOICE
CASE 1 '1 converts US Dollars to Euros
GOSUB CalculateUSDToEUR
CASE 2 '2 converts Euros to US Dollars
GOSUB CalculateEURToUSD
CASE 3 '3 converts US Dollars to British Pounds
GOSUB CalculateUSDToGBP
CASE 4 '4 converts British Pounds to US Dollars
GOSUB CalculateGBPToUSD
CASE 5 '5 quits
CLS
LOCATE 20, 21
PRINT " A penny for you thoughts equals "
LOCATE 22, 21
PRINT " 1 cent in America, "
LOCATE 24, 21
PRINT " 78/100ths of a cent in Europe,"
LOCATE 26, 21
PRINT " and 64/100th of a cent in Great Britain. Good Day!"
LOCATE 36, 21
LOCATE 25, 30
CASE ELSE
LOCATE 18, 25
PRINT E$
LOCATE 30, 47
PRINT " "
INPUT "", CHOICE$
LET CHOICE = VAL(CHOICES$)
END SELECT
LOOP
END
' ************************ INITIALIZE PRINT IMAGES **************
InitializePrintImages:
LET M1$ = "MENU CHOICES"
LET M2$ = "1. CONVERT U.S. DOLLARS TO EUROS"
LET M3$ = "2. CONVERT EUROS TO U.S. DOLLARS"
LET M4$ = "3. CONVERT U.S. DOLLARS TO BRITISH POUNDS"
LET M5$ = "4. CONVERT BRITISH POUNDS TO U.S. DOLLARS"
LET M6$ = "5. END"
LET M7$ = "ENTER MENU CHOICE"
LET F1$ = "1 U.S. DOLLAR (USD) = 0.78 EUROS (EUR)"
LET F2$ = "1 EURO (EUR) 1.28 U.S. DOLLARS (USD)"
LET F3$ = "1 U.S. DOLLAR (USD) = 0.63 BRITISH POUNDS (GBP)"
LET F4$ = "1 BRITISH POUND (GBP) = 1.58 U.S. DOLLARS (USD)"
LET E$ = "INVALID CHOICE. ENTER 1 - 5 ONLY"
RETURN
' ************************** PRINT MENU ******************
PrintMenu:
CLS
LOCATE 15, 34
PRINT M1$
LOCATE 20, 21
PRINT M2$
LOCATE 22, 21
PRINT M3$
LOCATE 24, 21
PRINT M4$
LOCATE 26, 21
PRINT M5$
LOCATE 28, 21
PRINT M6$
LOCATE 30, 28
PRINT M7$
LOCATE 30, 47
INPUT "", CHOICE$
LET CHOICE = VAL(CHOICE$)
RETURN ' TO MAIN MODULE
' *********************** CALCULATE U.S. DOLLARS TO EUROS ***********
CalculateUSDToEUR:
CLS
LOCATE 20, 21
PRINT F1$
GOSUB DesireCalculation
IF UCASE$(ANSWER$) = "Y" THEN
GOSUB PerformUSDToEUR
END IF
RETURN
' ************************ PERFORM USD TO EUR CALCULATION ********
PerformUSDToEUR:
CLS
LOCATE 15, 21
PRINT "CONVERT U.S. DOLLARS TO EUROS"
LOCATE 20, 21
INPUT "ENTER U.S. DOLLAR AMOUNT $", USD
LET EUR = USD * .78
LOCATE 22, 21
PRINT USD; "U.S. DOLLARS EQUALS "; EUR; "EUROS"
LOCATE 30, 21
INPUT "PRESS RETURN TO CONTINUE ", PAUSE$
RETURN
' ********************** CALCULATE EUROS TO U.S. DOLLARS *****************
CalculateEURToUSD:
CLS
LOCATE 20, 21
PRINT F2$
LOCATE 22, 21
PRINT USD; "U.S. DOLLARS EQUALS "; GBP; "BRITISH POUNDS"
LOCATE 30, 21
INPUT "PRESS RETURN TO CONTINUE ", PAUSE$
RETURN
' *********************** CALCULATE BRITISH POUNDS TO U.S. DOLLARS *******
CalculateGBPToUSD:
CLS
LOCATE 20, 21
PRINT F4$
GOSUB DesireCalculation
IF UCASE$(ANSWER$) = "Y" THEN
GOSUB PerformGBPToUSD
END IF
RETURN
' ******************* PERFORM GBP TO USD CALCULATION *******************
PerformGBPToUSD:
CLS
LOCATE 15, 21
PRINT "CONVERT BRITISH POUNDS TO U.S. DOLLARS"
LOCATE 20, 21
INPUT "ENTER BRITISH POUNDS AMOUNT ", GBD
LET USD = GBD * 1.58
LOCATE 22, 21
PRINT GBD; "BRITISH POUNDS EQUALS "; USD; "U.S. DOLLARS"
LOCATE 30, 21
INPUT "PRESS RETURN TO CONTINUE ", PAUSE$
RETURN
' ********************* DESIRE CALCULATION ******************
DesireCalculation:
LOCATE 22, 15
PRINT "PERFORM A CALCULATION USING THIS FORMULA (Y/N)";
INPUT ANSWER$
DO WHILE UCASE$(ANSWER$) <> "N" AND UCASE$(ANSWER$) <> "Y"
LOCATE 22, 63
GOSUB DesireCalculation
IF UCASE$(ANSWER$) = "Y" THEN
GOSUB PerformEURToUSD
END IF
LOOP
RETURN
' ***************** PERFORM EURO TO USD CALCULATION **************
PerformEURToUSD:
CLS
LOCATE 15, 21
PRINT "CONVERT EUROS TO U.S. DOLLARS"
LOCATE 20, 21
INPUT "ENTER EUROS AMOUNT ", EUR
LET USD = EUR * 1.28
LOCATE 22, 21
PRINT EUR; "EUROS EQUALS "; USD; "U.S. DOLLARS"
LOCATE 30, 21
INPUT "PRESS RETURN TO CONTINUE ", PAUSE$
RETURN
' ***************** CALCULATE U.S. DOLLARS TO BRITISH POUNDS **************
CalculateUSDToGBP:
CLS
LOCATE 20, 21
PRINT F3$
GOSUB DesireCalculation
IF UCASE$(ANSWER$) = "Y" THEN
GOSUB PerformUSDToGBP
END IF
RETURN
' ******************* PERFORM USD TO GBP CALCULATION ****************
PerformUSDToGBP:
CLS
LOCATE 15, 21
PRINT "CONVERT U.S. DOLLARS TO BRITISH POUNDS"
LOCATE 20, 21
INPUT "ENTER U.S. DOLLAR AMOUNT $", USD
LET GBP = USD * .63
LOCATE 22, 21
PRINT USD; "U.S. DOLLARS EQUALS "; GBP; "BRITISH POUNDS"
LOCATE 30, 21
INPUT "PRESS RETURN TO CONTINUE ", PAUSE$
RETURN
' ******************* DESIRE CALCULATION ************************
LOCATE 22, 15
PRINT "PERFORM A CALCULATION USING THIS FORMULA (Y/N)";
INPUT ANSWER$
DO WHILE UCASE$(ANSWER$) <> "N" AND UCASE$(ANSWER$) <> "Y"
LOCATE 22, 63
INPUT ANSWER$
LOOP
RETURN
' ************************** END OF PROGRAM ************************
How should I fix this problem?
PRINT M4$
LOCATE 26, 21
My code:
'************************** PROGRAM 9.2 *************************
' THIS IS A MENU-DRIVEN PROGRAM TO CONVERT TO AND FROM U'S',
' EUROPEAN, AND GREAT BRITAIN CURRENCIES
' PROGRAM VARIABLES
'
' CHOICE AND CHOICE$ MENU CHOICES
' M1$, M2$, M3$, M4$, M5$, M6$ AND M7$ USED TO DISPLAY THE MENU
' F1$ F2$, F3$, AND F4$ USED TO PRINT OUT THE FORMULAS
' E$ USED TO DISPLAY AN ERROR MESSAGE
' ANSWER$ CHOICE TO PREFORM A CALCULATION
' USD U.S. DOLLARS
' ERR EURROS
' GBP GREAT BRITAIN POUNDS
' PAUSE$ PAUSE TO READ A MESSAGE
' ***************************** MAIN MODULE **************************
COLOR 14, 3
GOSUB InitializePrintImages
LET CHOICE = 0
DO UNTIL CHOICE = 5 ' 5 IS ENDING VALUE
GOSUB PrintMenu ' PRINT MENU & INPUT CHOICE
SELECT CASE CHOICE
CASE 1 '1 converts US Dollars to Euros
GOSUB CalculateUSDToEUR
CASE 2 '2 converts Euros to US Dollars
GOSUB CalculateEURToUSD
CASE 3 '3 converts US Dollars to British Pounds
GOSUB CalculateUSDToGBP
CASE 4 '4 converts British Pounds to US Dollars
GOSUB CalculateGBPToUSD
CASE 5 '5 quits
CLS
LOCATE 20, 21
PRINT " A penny for you thoughts equals "
LOCATE 22, 21
PRINT " 1 cent in America, "
LOCATE 24, 21
PRINT " 78/100ths of a cent in Europe,"
LOCATE 26, 21
PRINT " and 64/100th of a cent in Great Britain. Good Day!"
LOCATE 36, 21
LOCATE 25, 30
CASE ELSE
LOCATE 18, 25
PRINT E$
LOCATE 30, 47
PRINT " "
INPUT "", CHOICE$
LET CHOICE = VAL(CHOICES$)
END SELECT
LOOP
END
' ************************ INITIALIZE PRINT IMAGES **************
InitializePrintImages:
LET M1$ = "MENU CHOICES"
LET M2$ = "1. CONVERT U.S. DOLLARS TO EUROS"
LET M3$ = "2. CONVERT EUROS TO U.S. DOLLARS"
LET M4$ = "3. CONVERT U.S. DOLLARS TO BRITISH POUNDS"
LET M5$ = "4. CONVERT BRITISH POUNDS TO U.S. DOLLARS"
LET M6$ = "5. END"
LET M7$ = "ENTER MENU CHOICE"
LET F1$ = "1 U.S. DOLLAR (USD) = 0.78 EUROS (EUR)"
LET F2$ = "1 EURO (EUR) 1.28 U.S. DOLLARS (USD)"
LET F3$ = "1 U.S. DOLLAR (USD) = 0.63 BRITISH POUNDS (GBP)"
LET F4$ = "1 BRITISH POUND (GBP) = 1.58 U.S. DOLLARS (USD)"
LET E$ = "INVALID CHOICE. ENTER 1 - 5 ONLY"
RETURN
' ************************** PRINT MENU ******************
PrintMenu:
CLS
LOCATE 15, 34
PRINT M1$
LOCATE 20, 21
PRINT M2$
LOCATE 22, 21
PRINT M3$
LOCATE 24, 21
PRINT M4$
LOCATE 26, 21
PRINT M5$
LOCATE 28, 21
PRINT M6$
LOCATE 30, 28
PRINT M7$
LOCATE 30, 47
INPUT "", CHOICE$
LET CHOICE = VAL(CHOICE$)
RETURN ' TO MAIN MODULE
' *********************** CALCULATE U.S. DOLLARS TO EUROS ***********
CalculateUSDToEUR:
CLS
LOCATE 20, 21
PRINT F1$
GOSUB DesireCalculation
IF UCASE$(ANSWER$) = "Y" THEN
GOSUB PerformUSDToEUR
END IF
RETURN
' ************************ PERFORM USD TO EUR CALCULATION ********
PerformUSDToEUR:
CLS
LOCATE 15, 21
PRINT "CONVERT U.S. DOLLARS TO EUROS"
LOCATE 20, 21
INPUT "ENTER U.S. DOLLAR AMOUNT $", USD
LET EUR = USD * .78
LOCATE 22, 21
PRINT USD; "U.S. DOLLARS EQUALS "; EUR; "EUROS"
LOCATE 30, 21
INPUT "PRESS RETURN TO CONTINUE ", PAUSE$
RETURN
' ********************** CALCULATE EUROS TO U.S. DOLLARS *****************
CalculateEURToUSD:
CLS
LOCATE 20, 21
PRINT F2$
LOCATE 22, 21
PRINT USD; "U.S. DOLLARS EQUALS "; GBP; "BRITISH POUNDS"
LOCATE 30, 21
INPUT "PRESS RETURN TO CONTINUE ", PAUSE$
RETURN
' *********************** CALCULATE BRITISH POUNDS TO U.S. DOLLARS *******
CalculateGBPToUSD:
CLS
LOCATE 20, 21
PRINT F4$
GOSUB DesireCalculation
IF UCASE$(ANSWER$) = "Y" THEN
GOSUB PerformGBPToUSD
END IF
RETURN
' ******************* PERFORM GBP TO USD CALCULATION *******************
PerformGBPToUSD:
CLS
LOCATE 15, 21
PRINT "CONVERT BRITISH POUNDS TO U.S. DOLLARS"
LOCATE 20, 21
INPUT "ENTER BRITISH POUNDS AMOUNT ", GBD
LET USD = GBD * 1.58
LOCATE 22, 21
PRINT GBD; "BRITISH POUNDS EQUALS "; USD; "U.S. DOLLARS"
LOCATE 30, 21
INPUT "PRESS RETURN TO CONTINUE ", PAUSE$
RETURN
' ********************* DESIRE CALCULATION ******************
DesireCalculation:
LOCATE 22, 15
PRINT "PERFORM A CALCULATION USING THIS FORMULA (Y/N)";
INPUT ANSWER$
DO WHILE UCASE$(ANSWER$) <> "N" AND UCASE$(ANSWER$) <> "Y"
LOCATE 22, 63
GOSUB DesireCalculation
IF UCASE$(ANSWER$) = "Y" THEN
GOSUB PerformEURToUSD
END IF
LOOP
RETURN
' ***************** PERFORM EURO TO USD CALCULATION **************
PerformEURToUSD:
CLS
LOCATE 15, 21
PRINT "CONVERT EUROS TO U.S. DOLLARS"
LOCATE 20, 21
INPUT "ENTER EUROS AMOUNT ", EUR
LET USD = EUR * 1.28
LOCATE 22, 21
PRINT EUR; "EUROS EQUALS "; USD; "U.S. DOLLARS"
LOCATE 30, 21
INPUT "PRESS RETURN TO CONTINUE ", PAUSE$
RETURN
' ***************** CALCULATE U.S. DOLLARS TO BRITISH POUNDS **************
CalculateUSDToGBP:
CLS
LOCATE 20, 21
PRINT F3$
GOSUB DesireCalculation
IF UCASE$(ANSWER$) = "Y" THEN
GOSUB PerformUSDToGBP
END IF
RETURN
' ******************* PERFORM USD TO GBP CALCULATION ****************
PerformUSDToGBP:
CLS
LOCATE 15, 21
PRINT "CONVERT U.S. DOLLARS TO BRITISH POUNDS"
LOCATE 20, 21
INPUT "ENTER U.S. DOLLAR AMOUNT $", USD
LET GBP = USD * .63
LOCATE 22, 21
PRINT USD; "U.S. DOLLARS EQUALS "; GBP; "BRITISH POUNDS"
LOCATE 30, 21
INPUT "PRESS RETURN TO CONTINUE ", PAUSE$
RETURN
' ******************* DESIRE CALCULATION ************************
LOCATE 22, 15
PRINT "PERFORM A CALCULATION USING THIS FORMULA (Y/N)";
INPUT ANSWER$
DO WHILE UCASE$(ANSWER$) <> "N" AND UCASE$(ANSWER$) <> "Y"
LOCATE 22, 63
INPUT ANSWER$
LOOP
RETURN
' ************************** END OF PROGRAM ************************
How should I fix this problem?