I should really just read the QB Docs... there's CLEAR cmd..
Sun Feb 21, 2021 1:59am
The CLEAR command clears out the stack and any variables and starts fresh.
It would fix any stack space errors *IF* if could be called from subs/functions but it can't. It can only be called from the source module.
I could set the stack space larger at start up to delay it further using it though.
Also found out about the FRE call that gives back the amount of free memory left. When it dips into the negatives, that's when the stack space errors appear. Could potentially use that to "GOTO" the main module and call a CLEAR or something?
Nah... probably should just finally re-write the thing once I"m bored enough....
The pre-title/title screen should be the "loader" BAS file, then should chain to the main application BAS file.
There should be some sort of ON ERROR GOTO SomeErrorLabel. That error label should display an error message and end with "RUN" instead of "RESUME". This would restart the "application... more
I should really just read the QB Docs... there's CLEAR cmd..- Erik_,Sun Feb 21 2021 1:59am
By now, layer after layer of paint has been applied. It's almost to the point where you can't see the lines between courses of block.
Your solution kinda reminds me of that.
If they ever have to replace a block (doubtful, they're very tough) it'll never match. Who wants to put 50 coats of pa... more
Yeah, Wry will just have to be fixed properly. Or maybe you can set a GLOBAL that tells which menu to load then END SUB/EXIT the whole way back? Kinda like walking a tree?
Or expand the stack space in CONFIG.SYS?
Does that work in QB? I should give that a try. Not sure I'd use it as a fix but would be cool to see it in action.
I don't think you can pass a variable to a CALL or GOTO command. It will probably say "Subroutine or Label not defined" or something.
I wonder about a global stack count variabl... more
It'll work in QB because the stack is a system thing.
What variables do you need to pass in Wry?
I guess you could have a global and not worry about passing variables. (Globals are under used at times, IMO. If you're referring to an variable in almost every procedure maybe it should be globa... more
the Qbasic stack error. For some reason I always thought it was it's own stack error and the config.sys stack was for something else. Learn something new every day!
The variable would be for which screen to go to. I took that as have a global string that held the sub name of what to call next.
Basically make you a map. "IGNORING STATEMENT AT LINE 239." You then look at line 239 and it will tell you what sub it's in and where and you can add it back in.
Ok, so you might have to add a "page id" variable or something and have a long IF..ELSE IF chain (Um... QB had something like SELECT ... more
Might be easier to just manually take note where the secrets are and add them into the generated source code afterwards instead of having the parser do it. There aren't too many actually. The biggest thing is the invalid selection text but even then a good chunk of them are "YOU MAMA".
Wry HTML... more
If you think you'll rerun the parser many times, then it's worth adding the logic to add in those special cases.
I love the snow on Wry HTML. :-) It snowed today here but wasn't pretty and was just a rain snow mix. :-(
The amount of effort that went in to parse a single Qbasic BAS file into different output writers was silly but a fun thing to work on.
Creating the data files for Wry COBOL by hand would have been much less effort and probably quicker but zero fun. (Honestly, I probably would have never finishe... more
e they're fun." Some president misquoted somewhere.
Wait, so you can use a buggy QBASIC source as input to your parser to write a not very buggy QBASIC program? That's like Donald Knuth levels of computer science there!
Get on a regular release cycle where your parser fixes some bugs, adds a few new ones and you update every 2-4 weeks.
Just like every Android app out there, even the ones that should be technically finished! (How many updates does a sliding tile game need?)
Should have a release at the end of every 2 week sprint.
Thankfully at my job being a 20+ year old server side system we're not tied to that. They tried getting us to follow the agile flow to the "T" when it was first introduced to the company. We all had to go to a two day training session which... more