July 12th, 2024

PC-BASIC, a cross-platform interpreter for GW-BASIC

PC-BASIC is a versatile emulator offering bug-for-bug compatibility with Microsoft GW-BASIC. It supports legacy BASIC applications, classic games, various platforms, graphics, music, and features like printing and serial port support.

Read original articleLink Icon
PC-BASIC, a cross-platform interpreter for GW-BASIC

PC-BASIC is a free, cross-platform emulator for the GW-BASIC family of interpreters, offering bug-for-bug compatibility with Microsoft GW-BASIC. It supports various legacy BASIC applications and classic games designed for systems like MS-DOS, IBM PC, PCjr, and Tandy 1000. The emulator can run ASCII, tokenized, and protected BASIC programs, as well as support the Microsoft Binary Format for data file interchangeability. PC-BASIC is versatile, supporting GW-BASIC, BASICA, PCjr Cartridge BASIC, and Tandy 1000 BASIC on platforms that run Python. It emulates graphics from MDPA, CGA, EGA, VGA, PCjr, Tandy, Hercules, and Olivetti, along with Tandy and PCjr 3-voice music and IBM PC beeps. The emulator also simplifies printing, serial port support, multilingual capabilities, tape file handling, and command-line scripting. PC-BASIC is actively developed, welcoming feedback and suggestions, and is released under the GNU General Public License version 3.

Related

The Origin of the Species: NEC PC-8001 FDD Adapter

The Origin of the Species: NEC PC-8001 FDD Adapter

The 1979 NEC PC-8001 was a successful personal computer with expansion capabilities, N-BASIC in mask ROMs, and challenges in loading software via floppy disk drives. Insights into technical aspects and restoration efforts were discussed.

Re-visiting VM/386 (2023)

Re-visiting VM/386 (2023)

The author shares experiences with VM/386, an emulation software from 1988. Running on 86box, it enables multitasking on an 80386 processor with graphical PC programs, despite limitations hindering broader success.

"Micro Chart" CPU reference cards (6502, Z80, 8088/8086, 68000)

"Micro Chart" CPU reference cards (6502, Z80, 8088/8086, 68000)

A forum shared CPU reference cards for 6502, Z80, 8088/8086, and 68000. Enthusiasts appreciated the dense yet navigable content. Users discussed similar cards for SC/MP, 6800, 6809, and more microprocessors. Jonathan Bowen and Jason Scott's collections were mentioned. Links to PDP 8 and UK practical electronics info sheets were shared. Scans were uploaded for preservation, with interest in expanding accessibility on platforms like the Internet Archive.

RISC-V Emulator for Sophgo SG2000 SoC (Pine64 Oz64 / Milk-V Duo S)

RISC-V Emulator for Sophgo SG2000 SoC (Pine64 Oz64 / Milk-V Duo S)

A RISC-V emulator tailored for Sophgo SG2000 SoC now supports Pine64 Oz64 and Milk-V Duo SBCs. It emulates SG2000 memory map, UART controller, and 64 interrupts, enabling NuttX testing. Future plans include GPIO emulation.

Tandy WP-2 Running an Infocom Interpreter (2014)

Tandy WP-2 Running an Infocom Interpreter (2014)

A tinkerer adapted the Tandy WP-2 word processor to run Infocom games smoothly by expanding memory and modifying an interpreter. The successful adaptation highlights the WP-2's versatility for gaming enthusiasts.

Link Icon 8 comments
By @jll29 - 3 months
I got to re-appreciate BASIC when evaluating options for teaching 11-year-old kids a bit how to program (in a single session).

People recommended Scratch etc. but I felt talking about programs was important also, which is easier when you write textual statements. At some point, I briefly considered using an emulated BASIC due to the simplicity and built in graphic, but I ended up using Python together with the pyturtle library for LOGO-like graphics, because the main exercise was to let kids draw a house on paper and then ask them to generate the drawing commands (also first on paper). Using Python has the advantage that nothing they learned was "wasted" or "academic use only" - you can immediately build on or monetize Python knowledge.

Interpreted BASIC certainly is a development forward from compiled FORTRAN from a didactic point of view.

By @donatj - 3 months
> It runs ASCII, tokenized and protected BASIC programs and supports the Microsoft Binary Format for full interchangeability of data files.

I wonder, does that possibly include QBasic binary format? I have a couple hundred games I wrote as a kid in this format that I have yet to automate a fix for.

I also have an outstanding Stack Overflow question about the process.

https://stackoverflow.com/questions/53051061/convert-from-qb...

By @incanus77 - 3 months
The wildest part of this excellent software is that you can feed it WAV files of tape-recorded BASIC programs and it can decipher them.
By @msla - 3 months
There's also Bywater BASIC, which apparently isn't being developed anymore:

https://github.com/nerun/bwbasic

(It's also in the repos of many major Linux distributions as bwbasic.)

A blog post where the developer comments on it a bit:

https://virtuallyfun.com/2010/06/09/bywater-basic/

By @fritzy - 3 months
There's similar projects like QB64 and L-Basic. I have to wonder if keeping language variants alive will be of historic significance hundreds of years from now. Will anyone care about early computing to this extent?
By @acheron - 3 months
Awhile back I wrote a clojure program to take old PLAY statements (for playing notes on the PC speaker) from GW BASIC and generate a wav file. At the time writing GW BASIC it seemed pretty straightforward, but there are a lot of interesting timing options built into it.
By @32bitkid - 3 months
For a while, I was using PC-BASIC to generate audio files for the IBM PCjr cassette interface to do some more diagnostics, for a machine that I had that didn’t have a working disk drive. I don’t even know if there is anything else out there to generate those at this point. PC-BASIC is great!
By @hulitu - 3 months
> PC-BASIC, a cross-platform interpreter for GW-BASIC

Can it run nibbles ?