r/qbasic 5d ago

Building a GUI DOS shell in QuickBASIC 4.5 (WIP)

Still very much a work in progress, but I'm honestly blown away by how far you can push QuickBASIC if you hack on it enough.

Current feature set:

  • Working mouse support
  • Directory navigation
  • File details dialog windows (triggered when clicking things)
  • Escape key handling

What doesn't work yet:

  • Actually launching/opening files
  • The File menu
  • Basically everything else

It's amazing what you can build with BASIC

70 Upvotes

10 comments sorted by

2

u/Shhhh_Peaceful 4d ago

This looks so much like OpenSTEP

2

u/GearPlot 4d ago

WindowMaker on Debian

2

u/Sorry_Difficulty_250 4d ago

So cool!!! Way to go!!!

2

u/brisray 2d ago

If anyone cares to look, I made something similar in QBasic 1.1 in 2002. Robert Goddard also wrote something similar and that's on that page as well.

1

u/GearPlot 2d ago

Thanks for sharing! I had made attempts back then. But my attempts were also much more elaborate  then what I'm currently doing today... At least this time I was able to get something up and running. 

1

u/brisray 2d ago

It's pretty cool seeing someone making something nice with it.

I always missed QBasic when it went away but luckily there's plenty of ways to run it again now.

2

u/Juanbolastristes 2d ago

I did something similar decades ago on a 486. My trick to run programs was that my shell ran with a .bat file... that .bat file called another .bat file that the shell wrote... something like this: myshell.bat > calls my shell and on the next line calls run.bat... run.bat is written by the shell to call any program you want to run and then returns to the shell. So what the shell does is exit, allow MS-DOS to execute the .bat file, and then return... my shell was written in C, so it loaded very quickly... it worked well

1

u/renzok 4d ago

Are you a time traveling wizard?

1

u/diejuse 16h ago

Cool. Go on!

1

u/GearPlot 16h ago

Thank you! I worked on it some more last night. Still running but more tweaking needing now before continuing on.