I built an independent reimplementation of the QBasic 1.1 compiler, virtual machine, and IDE that runs entirely in the browser. TypeScript with a Svelte 5 frontend.
Ah it looks like the editor does, but the run screen does not. My guess would be since it’s emulating dos programs, probably the keyboard should always be visible.
For the past 6 months I've actually also been working on a nearly cycle-accurate QBASIC 1.1 simulator (and corresponding virtual hardware layer) that runs entirely in the browser.
I've got a stack of books on my desk from when I was a kid in the 90s that have literally been my religious texts (Undocumented DOS, The Programmer's PC Sourcebook, etc), so I know how hard it is to get this right.
I've actually posted about it a couple times here in HN.
Anyway small bit of feedback:
Technically if you don't clear the screen (using CLS, or set a SCREEN mode other than zero), the cursor retains its position even between program executions.
So basically if you have a program like this:
PRINT "WHY IS A RAVEN LIKE A WRITING DESK"
END
And then you run it again - the output screen should display:
WHY IS A RAVEN LIKE A WRITING DESK
WHY IS A RAVEN LIKE A WRITING DESK
There's a thousand other subtleties like this that make the proverbial "last mile" sometimes feel insurmountable. Fun though!
Looks cool, but unfortunately doesn’t trigger the keyboard on mobile
Thank you for the feedback! I just tried on two iPhone and Android phones and it brought up the keyboard.
Ah it looks like the editor does, but the run screen does not. My guess would be since it’s emulating dos programs, probably the keyboard should always be visible.
Ah many thanks! Fixed it!
Nice job~
For the past 6 months I've actually also been working on a nearly cycle-accurate QBASIC 1.1 simulator (and corresponding virtual hardware layer) that runs entirely in the browser.
I've got a stack of books on my desk from when I was a kid in the 90s that have literally been my religious texts (Undocumented DOS, The Programmer's PC Sourcebook, etc), so I know how hard it is to get this right.
I've actually posted about it a couple times here in HN.
Anyway small bit of feedback:
Technically if you don't clear the screen (using CLS, or set a SCREEN mode other than zero), the cursor retains its position even between program executions.
So basically if you have a program like this:
And then you run it again - the output screen should display:
There's a thousand other subtleties like this that make the proverbial "last mile" sometimes feel insurmountable. Fun though!
* Your definition of "fun" may vary.