Remix.run Logo
vunderba 7 hours ago

Nice job. The sound effects are a bit too advanced because early IBM computers shipped with pretty simple, magnetically driven dynamic speakers.

On a related note, I’ve actually spent the last four months working on a 100% faithful adaptation of both QBasic and QuickBasic 4.5 that runs entirely in the browser on a virtual CPU and hardware abstraction layer. It’s a love letter to everyone who learned to program on Microsoft’s BASIC interpreters in the ’80s and early ’90s.

The best compliment I’ve received so far is from friends who grew up in the same era I did: when I fullscreen the browser, a few of them assumed it was a virtual machine running the real thing.

A QBasic port of the original BASIC-based DONKEY.BAS was one of the first programs I got running in it:

https://mordenstar.com/share/qbasic-core-demos

HeyLaughingBoy 7 hours ago | parent | next [-]

At my first job, our entire order-entry and inventory management system was written in QBASIC. I wish I had the source to try it out with this.

I know someone who might, if we could figure out how to get it off a DOS 5.25" floppy!

ColdStream 2 hours ago | parent | next [-]

The good news is that 5.25" floppies have tended to be more resilient to time than the 3.5" discs. Turns out just having less data spread over a larger space helped them in this regard.

Hardest part is usually trying to find working drives and a means of getting the data off the system.

VorpalWay an hour ago | parent [-]

The best (and most flexible) way to get data of old floppies is https://github.com/keirf/greaseweazle which reads the data at a raw magnetic level using a standard floppy drive and a custom open source circuit board which replaces the host controller.

However, if you are specifically dealing with PC floppies, it is potentially overkill (but it might still be the easiest way to hook up a 5.25" floppy drive to a modern computer).

5.25" drives may also need a separate power supply in addition to the greaseweazle, for 3.5" drives the GW has enough power to power the drive directly though.

vunderba 5 hours ago | parent | prev [-]

That’s awesome. If you ever end up getting a copy of it, I’d love to stress-test QBasic-Core against it since I built in a virtual hard drive to allow File I/O (PUT for random access, PRINT to file number, etc.)

I’ve got a fairly large collection of several hundred programs from the early to late ’90s that I’ve been carefully testing A/B testing against period accurate hardware and my simulator but actual professionally used QBASIC-based applications from back with the source intact are hard to come by.

d3Xt3r 4 hours ago | parent | prev | next [-]

And for the slightly younger folks who have more memories of Visual Basic than QBasic, check out GAMBAS: https://gambaswiki.org/website/en/main.html

vunderba 4 hours ago | parent [-]

Loved Visual Basic! VB3 was probably my first experience as a kid to the idea of “threading” and UI-blocking operations.

Remember this?

  DoEvents
d3Xt3r 4 hours ago | parent [-]

I do remember DoEvents! Sadly it's not present in GAMBAS, but there's WAIT, which is kinda the same: https://gambaswiki.org/wiki/lang/wait

mysterydip 7 hours ago | parent | prev | next [-]

This is fantastic! As one of those kids who spent the early 90s in QBasic, thank you!

NuclearPM 3 hours ago | parent | prev | next [-]

Do non-magnetically driven speakers exist?

racingmars 3 hours ago | parent [-]

Yes, electrostatic speakers are a good example. Also a lot of PC motherboards I've had over the years have had the little piezoelectric speaker. And while still magnetic, there are planar magnetic speakers which are much more like electrostatic speakers (just using a magnetic field instead of electric field) than the typical moving coil / dynamic speaker drivers that you think of.

LeBit 2 hours ago | parent [-]

This guy knows speakers.

I have a pair of Magneplanar speakers. They always impress people.

mosburger 6 hours ago | parent | prev | next [-]

aw neat I'd love to try doing this for its predecessor GWBASIC (my first programming language on the Tandy 1000EX)

vunderba 5 hours ago | parent [-]

You absolutely should!

I’ve already sunk hundreds of hours into building out the fidelity of QuickBASIC (everything down to emulating memory access so you can simulate realistic PEEKing and POKEing), so I don’t have the sanity points left to tackle any other variants myself, but I’d love to see a GW-BASIC version.

alana314 3 hours ago | parent | prev [-]

Nibbles!