Some QB "quirks" are a very important part of QBASIC

by (no login)


I think it's important to make a distiction between bugs/errors in QBASIC vs specifics.

Take the TIME$="00" bug I quoted on the forum. That's a bug. I take the time to research each command and note any unexpected behaviour.

If I see the unexpected behaviour as a bug then I fix the bug in QB64. So QB64 allows TIME$="00"

If I see the unexpected behaviour as reasonable, like adding trailing "garbage" to the string passed to TIME$ eg. TIME$="01:01:01d[va\nmb3298sda" still working then I make sure QB64 can handle this in the same way too. Sometimes I take an ecentricity and make it more general so that it can be explained in a simple rule. So I've made QB64 also allows trailing "garbage" if only hours or hours&minutes are specified whereas QBASIC does not.

Recently I implemented the PAINT statement with its string tiling option. Because the QBASIC help documentation is vague and its behaviour very specific I opted for implementing it with 100% compatibility and 100% of the same restrictions.

My goal is to code it once and code it right. It may not be using the fastest possible C++ code (although I always try to make it very effecient) but it works the way it is supposed to. Having said this, I'm sure there will be little bugs to fix in Demo #5 when it is released, especially because so much has been added since Demo #4.

I agree with MystikShadows. Ignoring these quirks would only mean things have to be coded again. It would also mean that programmers wanting a 100% compatible version of QBASIC would be very disappointed, including me.

There's no point rushing QB64 and having it turn into something less than what it could have been,

PS. I doubt Demo #6 will be anything more than improvements to the already implemented features of Demo #5!

Posted on Jan 8, 2008, 6:01 PM

Respond to this message   

Return to Index

Response TitleAuthor and Date
* Looks goodqbguy on Jan 8

 Copyright © 1999-2014 Network54. All rights reserved.   Terms of Use   Privacy Statement