Some QB "quirks" are a very important part of QBASICby (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!
|Response Title||Author and Date|
|* Looks good||qbguy on Jan 8|