QBasic syntax error?

B

Bill Bowden

Guest
Why does QBasic give me a syntax error with this code?

----------------------------------------------------------------------------------------

DATA 0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,2 '11100001011100

CLS

WHILE TI < 2 AND INKEY$ = ""

READ TI

IF TI = 0 THEN

IF I = 0 AND P = 1 THEN PRINT "1";
IF I = 1 AND P = 1 THEN PRINT "0";
P = P + 1
IF P = 2 THEN P = 0

END IF

IF TI = 1 THEN

I = I + 1
IF I = 2 THEN I = 0
IF I = 0 THEN PRINT "0";
IF I = 1 THEN PRINT "1";

END IF

WEND

IF P = 0 THEN END
IF I = 1 THEN PRINT "0" ELSE PRINT "1"

END
 
On Thu, 20 Dec 2012 21:28:36 -0800 (PST), Bill Bowden
<bperryb@bowdenshobbycircuits.info> wrote:

Why does QBasic give me a syntax error with this code?
Comments aren't permitted on DATA statements, memory serving.
When I get a moment, I'll double check that detail, though.

Jon
 
On Thu, 20 Dec 2012 21:28:36 -0800, Bill Bowden wrote:

Why does QBasic give me a syntax error with this code?


----------------------------------------------------------------------------------------

DATA 0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,2 '11100001011100

CLS

WHILE TI < 2 AND INKEY$ = ""

READ TI

IF TI = 0 THEN

IF I = 0 AND P = 1 THEN PRINT "1";
IF I = 1 AND P = 1 THEN PRINT "0";
P = P + 1
IF P = 2 THEN P = 0

END IF

IF TI = 1 THEN

I = I + 1
IF I = 2 THEN I = 0
IF I = 0 THEN PRINT "0";
IF I = 1 THEN PRINT "1";

END IF

WEND

IF P = 0 THEN END
IF I = 1 THEN PRINT "0" ELSE PRINT "1"

END
acause you're using BASIC. Do the job in C and you'll get more syntax
errors at first, but once you have them straightened out your program
will run faster (and be much more cool).

--
My liberal friends think I'm a conservative kook.
My conservative friends think I'm a liberal kook.
Why am I not happy that they have found common ground?

Tim Wescott, Communications, Control, Circuits & Software
http://www.wescottdesign.com
 
On Fri, 21 Dec 2012 00:44:17 -0600, Tim Wescott <tim@seemywebsite.com>
wrote:

On Thu, 20 Dec 2012 21:28:36 -0800, Bill Bowden wrote:

Why does QBasic give me a syntax error with this code?


----------------------------------------------------------------------------------------

DATA 0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,2 '11100001011100

CLS

WHILE TI < 2 AND INKEY$ = ""

READ TI

IF TI = 0 THEN

IF I = 0 AND P = 1 THEN PRINT "1";
IF I = 1 AND P = 1 THEN PRINT "0";
P = P + 1
IF P = 2 THEN P = 0

END IF

IF TI = 1 THEN

I = I + 1
IF I = 2 THEN I = 0
IF I = 0 THEN PRINT "0";
IF I = 1 THEN PRINT "1";

END IF

WEND

IF P = 0 THEN END
IF I = 1 THEN PRINT "0" ELSE PRINT "1"

END

acause you're using BASIC. Do the job in C and you'll get more syntax
errors at first, but once you have them straightened out your program
will run faster (and be much more cool).
Yeah, then you can chase a latent bug a week and be just like
Microsoft.
 
On Dec 21, 1:32 am, Jon Kirwan <j...@infinitefactors.org> wrote:
On Thu, 20 Dec 2012 21:28:36 -0800 (PST), Bill Bowden

bper...@bowdenshobbycircuits.info> wrote:
Why does QBasic give me a syntax error with this code?

Comments aren't permitted on DATA statements, memory serving.
When I get a moment, I'll double check that detail, though.

Jon
Bingo! Kill the comment.

George H.
 
On 12/21/2012 01:44 AM, Tim Wescott wrote:
On Thu, 20 Dec 2012 21:28:36 -0800, Bill Bowden wrote:

Why does QBasic give me a syntax error with this code?


----------------------------------------------------------------------------------------

DATA 0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,2 '11100001011100

CLS

WHILE TI< 2 AND INKEY$ = ""

READ TI

IF TI = 0 THEN

IF I = 0 AND P = 1 THEN PRINT "1";
IF I = 1 AND P = 1 THEN PRINT "0";
P = P + 1
IF P = 2 THEN P = 0

END IF

IF TI = 1 THEN

I = I + 1
IF I = 2 THEN I = 0
IF I = 0 THEN PRINT "0";
IF I = 1 THEN PRINT "1";

END IF

WEND

IF P = 0 THEN END
IF I = 1 THEN PRINT "0" ELSE PRINT "1"

END

acause you're using BASIC. Do the job in C and you'll get more syntax
errors at first, but once you have them straightened out your program
will run faster (and be much more cool).
Also it won't be shouting blather at the top of its little lungs. When
I read this sort of code, I always think of Robbie the Robot.

10 WHILE 1
20 PRINT "DANGER WILL ROBINSON!!!!!"
30 WEND

;)

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs
Principal Consultant
ElectroOptical Innovations LLC
Optics, Electro-optics, Photonics, Analog Electronics

160 North State Road #203
Briarcliff Manor NY 10510

hobbs at electrooptical dot net
http://electrooptical.net
 
"Tim Wescott" <tim@seemywebsite.com> schreef in bericht
news:ptednXeyw_TcmEnNnZ2dnUVZ_rmdnZ2d@web-ster.com...
On Thu, 20 Dec 2012 21:28:36 -0800, Bill Bowden wrote:

Why does QBasic give me a syntax error with this code?


----------------------------------------------------------------------------------------

DATA 0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,2 '11100001011100

CLS

WHILE TI < 2 AND INKEY$ = ""

READ TI

IF TI = 0 THEN

IF I = 0 AND P = 1 THEN PRINT "1";
IF I = 1 AND P = 1 THEN PRINT "0";
P = P + 1
IF P = 2 THEN P = 0

END IF

IF TI = 1 THEN

I = I + 1
IF I = 2 THEN I = 0
IF I = 0 THEN PRINT "0";
IF I = 1 THEN PRINT "1";

END IF

WEND

IF P = 0 THEN END
IF I = 1 THEN PRINT "0" ELSE PRINT "1"

END

acause you're using BASIC. Do the job in C and you'll get more syntax
errors at first, but once you have them straightened out your program
will run faster (and be much more cool).

--
My liberal friends think I'm a conservative kook.
My conservative friends think I'm a liberal kook.
Why am I not happy that they have found common ground?

Tim Wescott, Communications, Control, Circuits & Software
http://www.wescottdesign.com
Hmm... C tends to be more dangerous when used by the ignorant.

petrus bitbyter
 
On Dec 21, 11:22 am, Phil Hobbs
<pcdhSpamMeSensel...@electrooptical.net> wrote:
On 12/21/2012 01:44 AM, Tim Wescott wrote:





On Thu, 20 Dec 2012 21:28:36 -0800, Bill Bowden wrote:

Why does QBasic give me a syntax error with this code?

---------------------------------------------------------------------------­-------------

DATA 0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,2  '11100001011100

CLS

WHILE TI<  2 AND INKEY$ = ""

   READ TI

   IF TI = 0 THEN

          IF I = 0 AND P = 1 THEN PRINT "1";
          IF I = 1 AND P = 1 THEN PRINT "0";
          P = P + 1
          IF P = 2 THEN P = 0

   END IF

   IF TI = 1 THEN

          I = I + 1
          IF I = 2 THEN I = 0
          IF I = 0 THEN PRINT "0";
          IF I = 1 THEN PRINT "1";

   END IF

WEND

     IF P = 0 THEN END
     IF I = 1 THEN PRINT "0" ELSE PRINT "1"

END

acause you're using BASIC.  Do the job in C and you'll get more syntax
errors at first, but once you have them straightened out your program
will run faster (and be much more cool).

Also it won't be shouting blather at the top of its little lungs.  When
I read this sort of code, I always think of Robbie the Robot.

10 WHILE 1
20 PRINT "DANGER WILL ROBINSON!!!!!"
30 WEND

;)

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs
Principal Consultant
ElectroOptical Innovations LLC
Optics, Electro-optics, Photonics, Analog Electronics

160 North State Road #203
Briarcliff Manor NY 10510

hobbs at electrooptical dot nethttp://electrooptical.net- Hide quoted text -

- Show quoted text -
Now, now... for 'we bears of very little brain'* basic is a fine
language.
I've got several little programs that help me on my way.

GOSUB nitpick

All in good fun :^)
Hey there's this white fluffy stuff falling outside my window.
What's that?
And here's wishing all the SEBers a wonderful Holiday season!
I'm cutting out early to go decorate Xmas cookies at granma's with the
kids.

George H.



SUB nitpick
basic doesn't need line numbers anymore
the commands are still in caps, but I use lower case for variables
which makes it easier to read.
Robbie the Robot (a nice Asimov story.) was not on the screen with
Will Robinson. (Undoubtedly the worst Sci-fi series ever!)
RETURN

*no insult intended for other basic users.
 
On Fri, 21 Dec 2012 06:55:59 -0800 (PST), George Herold
<gherold@teachspin.com> wrote:

On Dec 21, 1:32 am, Jon Kirwan <j...@infinitefactors.org> wrote:
On Thu, 20 Dec 2012 21:28:36 -0800 (PST), Bill Bowden

bper...@bowdenshobbycircuits.info> wrote:
Why does QBasic give me a syntax error with this code?

Comments aren't permitted on DATA statements, memory serving.
When I get a moment, I'll double check that detail, though.

Jon

Bingo! Kill the comment.

George H.
Yeah, I went off and installed XP mode and then dragged my
entire Microsoft development environment (VBDOS, QB45,
QBASIC, QC2, ML/MASM, and a bunch of other "old tools") over
from an old machine and set up something I could test with.
Needed to do that, anyway. And yes, I did a quick test with
and without the comments and it worked without and didn't
work with.

This goes back to the 1970's, by the way. I used the original
Microsoft papertape BASIC (which I may still have in
papertape form if you can believe it) and had been "shocked"
that comments on DATA statements caused it to have parsing
problems. I was used to (1) languages that didn't support
comments, such as HP 2000F BASIC, and (2) languages which had
no problem with dealing with comments on DATA statements -- I
believe it was on a PDP-10, but memory is vague now. But I'd
never experienced one that couldn't handle something it
permitted.

I just figured that Microsoft's BASIC treated a DATA
statement almost like a REM statement -- it didn't parse it
or anything. It just accepted ANYTHING you typed there. It
was "your problem" and not theirs, what you did. Only at
run-time did it check and parse things. And since it was
nothing more than a keyword followed by unchecked text, they
took the easy way out and didn't bother supporting comment
recognition.

Still holds with their later tools, I see.

Jon
 
On Fri, 21 Dec 2012 10:23:31 -0800 (PST), George Herold
<gherold@teachspin.com> wrote:

On Dec 21, 11:22 am, Phil Hobbs
pcdhSpamMeSensel...@electrooptical.net> wrote:
On 12/21/2012 01:44 AM, Tim Wescott wrote:





On Thu, 20 Dec 2012 21:28:36 -0800, Bill Bowden wrote:

Why does QBasic give me a syntax error with this code?

---------------------------------------------------------------------------­-------------

DATA 0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,2  '11100001011100

CLS

WHILE TI<  2 AND INKEY$ = ""

   READ TI

   IF TI = 0 THEN

          IF I = 0 AND P = 1 THEN PRINT "1";
          IF I = 1 AND P = 1 THEN PRINT "0";
          P = P + 1
          IF P = 2 THEN P = 0

   END IF

   IF TI = 1 THEN

          I = I + 1
          IF I = 2 THEN I = 0
          IF I = 0 THEN PRINT "0";
          IF I = 1 THEN PRINT "1";

   END IF

WEND

     IF P = 0 THEN END
     IF I = 1 THEN PRINT "0" ELSE PRINT "1"

END

acause you're using BASIC.  Do the job in C and you'll get more syntax
errors at first, but once you have them straightened out your program
will run faster (and be much more cool).

Also it won't be shouting blather at the top of its little lungs.  When
I read this sort of code, I always think of Robbie the Robot.

10 WHILE 1
20 PRINT "DANGER WILL ROBINSON!!!!!"
30 WEND

;)

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs
Principal Consultant
ElectroOptical Innovations LLC
Optics, Electro-optics, Photonics, Analog Electronics

160 North State Road #203
Briarcliff Manor NY 10510

hobbs at electrooptical dot nethttp://electrooptical.net- Hide quoted text -

- Show quoted text -

Now, now... for 'we bears of very little brain'* basic is a fine
language.
I've got several little programs that help me on my way.

GOSUB nitpick

All in good fun :^)
Hey there's this white fluffy stuff falling outside my window.
What's that?
And here's wishing all the SEBers a wonderful Holiday season!
I'm cutting out early to go decorate Xmas cookies at granma's with the
kids.

George H.



SUB nitpick
basic doesn't need line numbers anymore
the commands are still in caps, but I use lower case for variables
which makes it easier to read.
Robbie the Robot (a nice Asimov story.) was not on the screen with
Will Robinson. (Undoubtedly the worst Sci-fi series ever!)
RETURN

*no insult intended for other basic users.
It's cold here in Arizona, too... 68°F >:-}

Damned AGW... I had to turn on the heat two days ago... got down to
65°F in the house.

Managed to go 2-1/2 months with neither A/C or heat!

...Jim Thompson
--
| James E.Thompson, CTO | mens |
| Analog Innovations, Inc. | et |
| Analog/Mixed-Signal ASIC's and Discrete Systems | manus |
| Phoenix, Arizona 85048 Skype: Contacts Only | |
| Voice:(480)460-2350 Fax: Available upon request | Brass Rat |
| E-mail Icon at http://www.analog-innovations.com | 1962 |

I love to cook with wine. Sometimes I even put it in the food.
 
On Fri, 21 Dec 2012 10:23:31 -0800 (PST), George Herold
<gherold@teachspin.com> wrote:

On Dec 21, 11:22 am, Phil Hobbs
pcdhSpamMeSensel...@electrooptical.net> wrote:
On 12/21/2012 01:44 AM, Tim Wescott wrote:





On Thu, 20 Dec 2012 21:28:36 -0800, Bill Bowden wrote:

Why does QBasic give me a syntax error with this code?

---------------------------------------------------------------------------­-------------

DATA 0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,2  '11100001011100

CLS

WHILE TI<  2 AND INKEY$ = ""

   READ TI

   IF TI = 0 THEN

          IF I = 0 AND P = 1 THEN PRINT "1";
          IF I = 1 AND P = 1 THEN PRINT "0";
          P = P + 1
          IF P = 2 THEN P = 0

   END IF

   IF TI = 1 THEN

          I = I + 1
          IF I = 2 THEN I = 0
          IF I = 0 THEN PRINT "0";
          IF I = 1 THEN PRINT "1";

   END IF

WEND

     IF P = 0 THEN END
     IF I = 1 THEN PRINT "0" ELSE PRINT "1"

END

acause you're using BASIC.  Do the job in C and you'll get more syntax
errors at first, but once you have them straightened out your program
will run faster (and be much more cool).

Also it won't be shouting blather at the top of its little lungs.  When
I read this sort of code, I always think of Robbie the Robot.

10 WHILE 1
20 PRINT "DANGER WILL ROBINSON!!!!!"
30 WEND

;)

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs
Principal Consultant
ElectroOptical Innovations LLC
Optics, Electro-optics, Photonics, Analog Electronics

160 North State Road #203
Briarcliff Manor NY 10510

hobbs at electrooptical dot nethttp://electrooptical.net- Hide quoted text -

- Show quoted text -

Now, now... for 'we bears of very little brain'* basic is a fine
language.
I've got several little programs that help me on my way.

GOSUB nitpick

All in good fun :^)
Hey there's this white fluffy stuff falling outside my window.
What's that?
And here's wishing all the SEBers a wonderful Holiday season!
I'm cutting out early to go decorate Xmas cookies at granma's with the
kids.

George H.



SUB nitpick
basic doesn't need line numbers anymore
the commands are still in caps, but I use lower case for variables
which makes it easier to read.
Robbie the Robot (a nice Asimov story.) was not on the screen with
Will Robinson. (Undoubtedly the worst Sci-fi series ever!)
RETURN

*no insult intended for other basic users.
---
Power BASIC's Console Compiler commands are all lower case and the
source code is gorgeous.

Here's an example, the application being a 2 resistor voltage divider
solver, with the executable at abse:


function pbmain() as long

color 0,15
cursor on,10

e1sw:
gosub loopa
print "Solve for E1? <y/n>"
locate 13,20

e1yorn:
i$ = waitkey$
if i$ = "y" or i$ = "Y" or i$ = chr$(13) then goto e1out
if i$ = "n" or i$ = "N" then goto r1sw
goto e1yorn


r1sw:
print""
print "Solve for R1? <y/n>"
locate 14,20

r1yorn:
i$ = waitkey$
if i$ = "y" or i$ = "Y" or i$ = chr$(13) then goto r1out
if i$ = "n" or i$ = "N" then goto e2sw
goto r1yorn

e2sw:
print""
print "Solve for E2? <y/n>"
locate 15,20

e2yorn:
i$ = waitkey$
if i$ = "y" or i$ = "Y" or i$ = chr$(13) then goto e2out
if i$ = "n" or i$ = "N" then goto r2sw
goto e2yorn

r2sw:
print""
print "Solve for R2? <y/n>"
locate 16,20

r2yorn:
i$ = waitkey$
if i$ = "y" or i$ = "Y" or i$ = chr$(13) then goto r2out
if i$ = "n" or i$ = "N" then goto endsw
goto r2yorn

endsw:
print ""
print "End? <y/n> "
locate 17,11

endyorn:
i$ = waitkey$
if i$ = "y" or i$ = "Y" or i$ = chr$(13) then end
if i$ = "n" or i$ = "N" then goto more
goto endyorn

more:
print""
print "Another try? <y/n> "
locate 18,19

moreyn:
i$ = waitkey$
if i$ = "y" or i$ = "Y" or i$ = chr$(13) then goto e1sw
if i$ = "n" or t$ = "N" then end
goto moreyn



e1out:
print""
input "Enter resistance of R1 in ohms: " ,r1!
input "Enter voltage of E2 in volts " ,e2!
input "Enter resistance of R2 in ohms: " ,r2!

e1!=(e2!)*(r1!+r2!)/r2!

print""
print "E1 = "e1!" volts."

print "another run? <y/n> "
i$ = waitkey$
if i$ = "y" then gosub loopa else end
goto e1out


r1out:
print""
input "Enter voltage of E1 in volts: " ,e1!
input "Enter voltage of E2 in volts " ,e2!
input "Enter resistance of R2 in ohms: " ,r2!

r1!=(r2!)*(e1!-e2!)/e2!

print""
print "R1 = "r1!" ohms."

print "another run? <y/n> "
i$ = waitkey$
if i$ = "y" then gosub loopa else end
goto r1out


e2out:
print""
input "Enter voltage of E1 in volts: " ,e1!
input "Enter resistance of R1 in ohms: " ,r1!
input "Enter resistance of R2 in ohms: " ,r2!

e2!=(e1!*r2!)/(r1!+r2!)

print""
print "E2 = "e2!" volts."

print "another run? <y/n> "
i$ = waitkey$
if i$ = "y" then gosub loopa else end
goto e2out


r2out:
print""
input "Enter voltage of E1 in volts: " ,e1!
input "Enter resistance of R1 in ohms: " ,r1!
input "Enter voltage of E2 in volts " ,e2!


r2!=(e2!*r1!)/(e1!-e2!)

print""
print "R2 = "r2!" ohms."

print""
print "another run? <y/n> "
i$ = waitkey$
if i$ = "y" then gosub loopa else end
goto r2out



loopa:
cls
print""
print " E1"
print " |"
print " [R1]"
print " |"
print " +---E2"
print " |"
print " [R2]"
print " |"
print " GND
print""
print""

return

end function


--
JF
 
Jim Thompson wrote:
It's cold here in Arizona, too... 68°F >:-}

It's supposed to hit 28°F here in Central Florida in a couple hours.
 
On Dec 20, 10:32 pm, Jon Kirwan <j...@infinitefactors.org> wrote:
On Thu, 20 Dec 2012 21:28:36 -0800 (PST), Bill Bowden

bper...@bowdenshobbycircuits.info> wrote:

Why does QBasic give me a syntax error with this code?


Comments aren't permitted on DATA statements, memory serving.
When I get a moment, I'll double check that detail, though.

Jon
I forget to mention the code works ok with Borland Turbo Basic. I did
find that adding an extra '2' to the data list fixes the problem so it
runs right in QBasic. I'm just wondering why I need an extra data
character in one case and not the other?

-Bill
 
On Fri, 21 Dec 2012 18:38:46 -0800 (PST), George Herold
<gherold@teachspin.com> wrote:

On Dec 21, 3:06 pm, Jon Kirwan <j...@infinitefactors.org> wrote:
On Fri, 21 Dec 2012 06:55:59 -0800 (PST), George Herold

gher...@teachspin.com> wrote:
On Dec 21, 1:32 am, Jon Kirwan <j...@infinitefactors.org> wrote:
On Thu, 20 Dec 2012 21:28:36 -0800 (PST), Bill Bowden

bper...@bowdenshobbycircuits.info> wrote:
Why does QBasic give me a syntax error with this code?

Comments aren't permitted on DATA statements, memory serving.
When I get a moment, I'll double check that detail, though.

Jon

Bingo!  Kill the comment.

George H.

Yeah, I went off and installed XP mode and then dragged my
entire Microsoft development environment (VBDOS, QB45,
QBASIC, QC2, ML/MASM, and a bunch of other "old tools") over
from an old machine and set up something I could test with.
Needed to do that, anyway. And yes, I did a quick test with
and without the comments and it worked without and didn't
work with.

This goes back to the 1970's, by the way. I used the original
Microsoft papertape BASIC (which I may still have in
papertape form if you can believe it) and had been "shocked"
that comments on DATA statements caused it to have parsing
problems. I was used to (1) languages that didn't support
comments, such as HP 2000F BASIC, and (2) languages which had
no problem with dealing with comments on DATA statements -- I
believe it was on a PDP-10, but memory is vague now. But I'd
never experienced one that couldn't handle something it
permitted.

I just figured that Microsoft's BASIC treated a DATA
statement almost like a REM statement -- it didn't parse it
or anything. It just accepted ANYTHING you typed there. It
was "your problem" and not theirs, what you did. Only at
run-time did it check and parse things. And since it was
nothing more than a keyword followed by unchecked text, they
took the easy way out and didn't bother supporting comment
recognition.

Still holds with their later tools, I see.

Jon

I've got QB45 installed. I run half a dozen programs.
It runs in this little minimalist screen resolution, which is kinda
quaint, reminds me of grad school.
QB45 will run with 50 lines, if you want. If you set the DOS
box properties so that it starts with 50 lines, then QB will
use it. If not, QB45 will still be able to use 50 lines, but
you have to write a few lines of code then to force the line
change.

Jon
 
On Dec 21, 3:06 pm, Jon Kirwan <j...@infinitefactors.org> wrote:
On Fri, 21 Dec 2012 06:55:59 -0800 (PST), George Herold

gher...@teachspin.com> wrote:
On Dec 21, 1:32 am, Jon Kirwan <j...@infinitefactors.org> wrote:
On Thu, 20 Dec 2012 21:28:36 -0800 (PST), Bill Bowden

bper...@bowdenshobbycircuits.info> wrote:
Why does QBasic give me a syntax error with this code?

Comments aren't permitted on DATA statements, memory serving.
When I get a moment, I'll double check that detail, though.

Jon

Bingo!  Kill the comment.

George H.

Yeah, I went off and installed XP mode and then dragged my
entire Microsoft development environment (VBDOS, QB45,
QBASIC, QC2, ML/MASM, and a bunch of other "old tools") over
from an old machine and set up something I could test with.
Needed to do that, anyway. And yes, I did a quick test with
and without the comments and it worked without and didn't
work with.

This goes back to the 1970's, by the way. I used the original
Microsoft papertape BASIC (which I may still have in
papertape form if you can believe it) and had been "shocked"
that comments on DATA statements caused it to have parsing
problems. I was used to (1) languages that didn't support
comments, such as HP 2000F BASIC, and (2) languages which had
no problem with dealing with comments on DATA statements -- I
believe it was on a PDP-10, but memory is vague now. But I'd
never experienced one that couldn't handle something it
permitted.

I just figured that Microsoft's BASIC treated a DATA
statement almost like a REM statement -- it didn't parse it
or anything. It just accepted ANYTHING you typed there. It
was "your problem" and not theirs, what you did. Only at
run-time did it check and parse things. And since it was
nothing more than a keyword followed by unchecked text, they
took the easy way out and didn't bother supporting comment
recognition.

Still holds with their later tools, I see.

Jon
I've got QB45 installed. I run half a dozen programs.
It runs in this little minimalist screen resolution, which is kinda
quaint, reminds me of grad school.

George H.
 
On Dec 21, 4:21 pm, Jim Thompson <To-Email-Use-The-Envelope-I...@On-My-
Web-Site.com> wrote:
On Fri, 21 Dec 2012 10:23:31 -0800 (PST), George Herold





gher...@teachspin.com> wrote:
On Dec 21, 11:22 am, Phil Hobbs
pcdhSpamMeSensel...@electrooptical.net> wrote:
On 12/21/2012 01:44 AM, Tim Wescott wrote:

On Thu, 20 Dec 2012 21:28:36 -0800, Bill Bowden wrote:

Why does QBasic give me a syntax error with this code?

---------------------------------------------------------------------------­­-------------

DATA 0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,2  '11100001011100

CLS

WHILE TI<  2 AND INKEY$ = ""

   READ TI

   IF TI = 0 THEN

          IF I = 0 AND P = 1 THEN PRINT "1";
          IF I = 1 AND P = 1 THEN PRINT "0";
          P = P + 1
          IF P = 2 THEN P = 0

   END IF

   IF TI = 1 THEN

          I = I + 1
          IF I = 2 THEN I = 0
          IF I = 0 THEN PRINT "0";
          IF I = 1 THEN PRINT "1";

   END IF

WEND

     IF P = 0 THEN END
     IF I = 1 THEN PRINT "0" ELSE PRINT "1"

END

acause you're using BASIC.  Do the job in C and you'll get more syntax
errors at first, but once you have them straightened out your program
will run faster (and be much more cool).

Also it won't be shouting blather at the top of its little lungs.  When
I read this sort of code, I always think of Robbie the Robot.

10 WHILE 1
20 PRINT "DANGER WILL ROBINSON!!!!!"
30 WEND

;)

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs
Principal Consultant
ElectroOptical Innovations LLC
Optics, Electro-optics, Photonics, Analog Electronics

160 North State Road #203
Briarcliff Manor NY 10510

hobbs at electrooptical dot nethttp://electrooptical.net-Hide quoted text -

- Show quoted text -

Now, now... for 'we bears of very little brain'* basic is a fine
language.
I've got several little programs that help me on my way.

GOSUB nitpick

All in good fun :^)
Hey there's this white fluffy stuff falling outside my window.
What's that?
And here's wishing all the SEBers a wonderful Holiday season!
I'm cutting out early to go decorate Xmas cookies at granma's with the
kids.

George H.

SUB nitpick
   basic doesn't need line numbers anymore
   the commands are still in caps, but I use lower case for variables
     which makes it easier to read.
   Robbie the Robot (a nice Asimov story.) was not on the screen with
Will Robinson.  (Undoubtedly the worst Sci-fi series ever!)
RETURN

*no insult intended for other basic users.

It's cold here in Arizona, too... 68°F >:-}

Damned AGW... I had to turn on the heat two days ago... got down to
65°F in the house.

Managed to go 2-1/2 months with neither A/C or heat!

                                        ...Jim Thompson
--
| James E.Thompson, CTO                            |    mens     |
| Analog Innovations, Inc.                         |     et      |
| Analog/Mixed-Signal ASIC's and Discrete Systems  |    manus    |
| Phoenix, Arizona  85048    Skype: Contacts Only  |             |
| Voice:(480)460-2350  Fax: Available upon request |  Brass Rat  |
| E-mail Icon athttp://www.analog-innovations.com|    1962     |

I love to cook with wine.     Sometimes I even put it in the food.- Hide quoted text -

- Show quoted text -
There's talk of a foot or more of snow. But I'll believe it when I
see it. (I like the snow.)

George H.
 
On Fri, 21 Dec 2012 17:55:42 -0800 (PST), Bill Bowden
<bperryb@bowdenshobbycircuits.info> wrote:

On Dec 20, 10:32 pm, Jon Kirwan <j...@infinitefactors.org> wrote:
On Thu, 20 Dec 2012 21:28:36 -0800 (PST), Bill Bowden

bper...@bowdenshobbycircuits.info> wrote:

Why does QBasic give me a syntax error with this code?


Comments aren't permitted on DATA statements, memory serving.
When I get a moment, I'll double check that detail, though.

Jon

I forget to mention the code works ok with Borland Turbo Basic. I did
find that adding an extra '2' to the data list fixes the problem so it
runs right in QBasic. I'm just wondering why I need an extra data
character in one case and not the other?

-Bill
Because QBASIC doesn't accept comments. Borland most
certainly does, by comparison.

Jon
 
On Dec 21, 4:40 pm, John Fields <jfie...@austininstruments.com> wrote:
On Fri, 21 Dec 2012 10:23:31 -0800 (PST), George Herold





gher...@teachspin.com> wrote:
On Dec 21, 11:22 am, Phil Hobbs
pcdhSpamMeSensel...@electrooptical.net> wrote:
On 12/21/2012 01:44 AM, Tim Wescott wrote:

On Thu, 20 Dec 2012 21:28:36 -0800, Bill Bowden wrote:

Why does QBasic give me a syntax error with this code?

---------------------------------------------------------------------------­­-------------

DATA 0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,2  '11100001011100

CLS

WHILE TI<  2 AND INKEY$ = ""

   READ TI

   IF TI = 0 THEN

          IF I = 0 AND P = 1 THEN PRINT "1";
          IF I = 1 AND P = 1 THEN PRINT "0";
          P = P + 1
          IF P = 2 THEN P = 0

   END IF

   IF TI = 1 THEN

          I = I + 1
          IF I = 2 THEN I = 0
          IF I = 0 THEN PRINT "0";
          IF I = 1 THEN PRINT "1";

   END IF

WEND

     IF P = 0 THEN END
     IF I = 1 THEN PRINT "0" ELSE PRINT "1"

END

acause you're using BASIC.  Do the job in C and you'll get more syntax
errors at first, but once you have them straightened out your program
will run faster (and be much more cool).

Also it won't be shouting blather at the top of its little lungs.  When
I read this sort of code, I always think of Robbie the Robot.

10 WHILE 1
20 PRINT "DANGER WILL ROBINSON!!!!!"
30 WEND

;)

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs
Principal Consultant
ElectroOptical Innovations LLC
Optics, Electro-optics, Photonics, Analog Electronics

160 North State Road #203
Briarcliff Manor NY 10510

hobbs at electrooptical dot nethttp://electrooptical.net-Hide quoted text -

- Show quoted text -

Now, now... for 'we bears of very little brain'* basic is a fine
language.
I've got several little programs that help me on my way.

GOSUB nitpick

All in good fun :^)
Hey there's this white fluffy stuff falling outside my window.
What's that?
And here's wishing all the SEBers a wonderful Holiday season!
I'm cutting out early to go decorate Xmas cookies at granma's with the
kids.

George H.

SUB nitpick
   basic doesn't need line numbers anymore
   the commands are still in caps, but I use lower case for variables
     which makes it easier to read.
   Robbie the Robot (a nice Asimov story.) was not on the screen with
Will Robinson.  (Undoubtedly the worst Sci-fi series ever!)
RETURN

*no insult intended for other basic users.

---
Power BASIC's Console Compiler commands are all lower case and the
source code is gorgeous.

Here's an example, the application being a 2 resistor voltage divider
solver, with the executable at abse:

function pbmain() as long

          color 0,15
          cursor on,10

e1sw:
          gosub loopa
          print "Solve for E1? <y/n>"
          locate 13,20

e1yorn:
          i$ = waitkey$
          if i$ = "y" or i$ = "Y" or i$ = chr$(13) then goto e1out
          if i$ = "n" or i$ = "N" then goto r1sw
          goto e1yorn

r1sw:
          print""
          print "Solve for R1? <y/n>"
          locate 14,20

r1yorn:
          i$ = waitkey$
          if i$ = "y" or i$ = "Y" or i$ = chr$(13) then goto r1out
          if i$ = "n" or i$ = "N" then goto e2sw
          goto r1yorn

e2sw:
          print""
          print "Solve for E2? <y/n>"
          locate 15,20

e2yorn:
          i$ = waitkey$
          if i$ = "y" or i$ = "Y" or i$ = chr$(13) then goto e2out
          if i$ = "n" or i$ = "N" then goto r2sw
          goto e2yorn

r2sw:
          print""
          print "Solve for R2? <y/n>"
          locate 16,20

r2yorn:
          i$ = waitkey$
          if i$ = "y" or i$ = "Y" or i$ = chr$(13) then goto r2out
          if i$ = "n" or i$ = "N" then goto endsw
          goto r2yorn

endsw:
          print ""
          print "End? <y/n> "
          locate 17,11

endyorn:
          i$ = waitkey$
          if i$ = "y" or i$ = "Y" or i$ = chr$(13) then end
          if i$ = "n" or i$ = "N" then goto more
          goto endyorn

more:
          print""
          print "Another try? <y/n> "
          locate 18,19

moreyn:
          i$ = waitkey$
          if i$ = "y" or i$ = "Y" or i$ = chr$(13) then goto e1sw
          if i$ = "n" or t$ = "N" then end
          goto moreyn

e1out:
         print""
         input "Enter resistance of R1 in ohms: " ,r1!
         input "Enter voltage of E2 in volts " ,e2!
         input "Enter resistance of R2 in ohms: " ,r2!

         e1!=(e2!)*(r1!+r2!)/r2!

         print""
         print "E1 = "e1!" volts."

         print "another run? <y/n> "
         i$ = waitkey$
         if i$ = "y" then gosub loopa else end
         goto e1out

r1out:
         print""
         input "Enter voltage of E1 in volts: " ,e1!
         input "Enter voltage of E2 in volts " ,e2!
         input "Enter resistance of R2 in ohms: " ,r2!

         r1!=(r2!)*(e1!-e2!)/e2!

         print""
         print "R1 = "r1!" ohms."

         print "another run? <y/n> "
         i$ = waitkey$
         if i$ = "y" then gosub loopa else end
         goto r1out

e2out:
         print""
         input "Enter voltage of E1 in volts: " ,e1!
         input "Enter resistance of R1 in ohms: " ,r1!
         input "Enter resistance of R2 in ohms: " ,r2!

         e2!=(e1!*r2!)/(r1!+r2!)

         print""
         print "E2 = "e2!" volts."

         print "another run? <y/n> "
         i$ = waitkey$
         if i$ = "y" then gosub loopa else end
         goto e2out

r2out:
         print""
         input "Enter voltage of E1 in volts: " ,e1!
         input "Enter resistance of R1 in ohms: " ,r1!
         input "Enter voltage of E2 in volts " ,e2!

         r2!=(e2!*r1!)/(e1!-e2!)

         print""
         print "R2 = "r2!" ohms."

         print""
         print "another run? <y/n> "
         i$ = waitkey$
         if i$ = "y" then gosub loopa else end
         goto r2out

loopa:
          cls
          print""
          print "    E1"
          print "    |"
          print "   [R1]"
          print "    |"
          print "    +---E2"
          print "    |"
          print "   [R2]"
          print "    |"
          print "   GND
          print""
          print""

          return

end function

--
JF- Hide quoted text -

- Show quoted text -
I ordered a copy of power basic for $50, on someone's recommendation
(James A.?)
I haven't written anything in it yet though.

George H.
 
On Dec 21, 7:42 pm, Jon Kirwan <j...@infinitefactors.org> wrote:
On Fri, 21 Dec 2012 17:55:42 -0800 (PST), Bill Bowden





bper...@bowdenshobbycircuits.info> wrote:

On Dec 20, 10:32 pm, Jon Kirwan <j...@infinitefactors.org> wrote:
On Thu, 20 Dec 2012 21:28:36 -0800 (PST), Bill Bowden

bper...@bowdenshobbycircuits.info> wrote:

Why does QBasic give me a syntax error with this code?

Comments aren't permitted on DATA statements, memory serving.
When I get a moment, I'll double check that detail, though.

Jon


I forget to mention the code works ok with Borland Turbo Basic. I did
find that adding an extra '2' to the data list fixes the problem so it
runs right in QBasic. I'm just wondering why I need an extra data
character in one case and not the other?

-Bill


Because QBASIC doesn't accept comments. Borland most
certainly does, by comparison.

Jon
I don't think the comments are the problem. In one case with Turbo
Basic the line reads "DATA
0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,2 '11100001011100"

In the second case with QBasic, the line reads "DATA
0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,2,2 '11100001011100 "

All I did was add an extra 2 which fixed the problem. But looking at
the code, the extra 2 at the end is not needed, but QBasic says it is.

-Bill
 
On 2012-12-22, Bill Bowden <bperryb@bowdenshobbycircuits.info> wrote:
On Dec 20, 10:32 pm, Jon Kirwan <j...@infinitefactors.org> wrote:
On Thu, 20 Dec 2012 21:28:36 -0800 (PST), Bill Bowden

bper...@bowdenshobbycircuits.info> wrote:

Why does QBasic give me a syntax error with this code?


Comments aren't permitted on DATA statements, memory serving.
When I get a moment, I'll double check that detail, though.

Jon

I forget to mention the code works ok with Borland Turbo Basic. I did
find that adding an extra '2' to the data list fixes the problem so it
runs right in QBasic. I'm just wondering why I need an extra data
character in one case and not the other?
qbasic is reading "2 'comment" as the last data value and can't
interperet that as a number.

Adding an extra datum stops it from looking at the last data value.



--
⚂⚃ 100% natural
 

Welcome to EDABoard.com

Sponsor

Back
Top