VOOZH about

URL: https://web.archive.org/web/20210627232857/https://devblogs.microsoft.com/commandline/microsoft-open-sources-gw-basic/

⇱ Microsoft Open-Sources GW-BASIC | Windows Command Line


Skip to main content
Read next
winget install learning
Last week we announced a package manager preview for Windows. Our goal is to provide a great product to our customers and community where everyone can contribute and ...
👁 Avatar
Andrew Clinick May 30, 2020

69 comments

Comments are closed. Login to edit/delete your existing comments

  • When Microsoft released MS-DOS 2.0 and GWBASIC it make IBM clones run the same software as PC-DOS and BASICA from IBM. It started the PC Clone era.

  • Preserving the timestamp on files (“38 years ago”) before importing into Github was a nice touch!

    • This is not a timestamp on files. This is a commit date which anyone could set to anything as long as you have push rights to the repo.
      Nice touch indeed, but not really a preservation 🙂

      • Yes, the code_of_conduct.md file is also dated “Feb 10, 1983” or about 21 years before the existence of MarkDown.

  • Any chance of opening Professional Basic 7.0? I can’t imagine it’s written in assembly. More likely it’s in C++.

    • PDS was QuickBASIC bundled with a few extra features & tools (inc. BASIC compiler). It was last released in 1990 – long before C++ became popular for commercial software development on the PC.

      There may be some C in there, but there’s a 90% chance that 90% of the code was all assembler even then.

      And, no, sorry, no plans to OSS QuickBASIC/PDS.

      • 90% assembler is about right. I recall that portions of the QuickBasic UI were in C, but the interpreter, runtime, and compiler were all hand-coded assembler. Each code review looked for both size and speed optimizations, with size taking precidence, since we had to fit the user’s code and data into the scarce memory in addition to our own.

      • I still have a payroll app I built with this in production. Still own the manuals and probably have the floppy disks somewhere. It was a great platform for building custom DOS-based software.

        I actually have DOSbox and PDS loaded for nostalgia. It’s a pain to work with, but it works.

        So the only true way to bring it forward would be a complete rebuild of a QBasic compiler from scratch. Has anyone done that?

        • Yes, QB64 is cross-platform (Windows, Linux, macOS) even includes a QBasic-like IDE. Not sure if the source is being maintained anymore, but it doesn’t seem to be. Its forums don’t have any new posts since 2018.

          http://www.qb64.net/

          • QB64 underwent a brief period of stagnation a few years ago and the QB64.net domain was lost (it is unknown who currently owns it, but it appears to have been hacked). Thankfully, a number of dedicated contributors recreated the site, have built active forums, and are regularly releasing updates (including a debugger, interpreter, and VB-esque form builder) at http://www.qb64.org/

            Highly recommend checking it out!

  • I wonder what are the legal obstacles MS is facing (if any) when releasing such ancient software.

    • I know one big problem with open sourcing proprietary software is that they often rely on other proprietary software and/or patents associated with them. Finding open source, yet compatible, equivalents can be difficult. It’s why it took Id Software forever to open source the Doom 3 engine.

      • GW-BASIC only contains Microsoft-owned IP. It’s also one of the reasons why we cannot provide source for ports to specific OEM hardware – they often required or implemented customizations for their specific architecture, hardware, etc.

        You think I’d risk my career by publishing Microsoft source code without fully reviewing with our legal teams? 😜

        • What about the “master sources” that you mention? While I understand that you can’t share the translator, that would give people quite a good insight on the process.

        • Ahh.. That explains why just the 8088 then… Bummer.. I think this is super cool for the retro computer community, and those building single board 8 bit computers of various types just for the learning experience (see Ben Eater’s 6502 series on Youtube for an awesome example!) but I was really hoping this had a chance of being extended eventually to the 6809 (for the TRS-80 COCO) but I guess there could be Tandy/Radio shack IP in there.. ugh..

          Back in the 5150 PC days, when I learned Assembly, I remember just how much it helped to have the IBM published source code to the IBM BIOS. Now a new generation can use this to learn too!

          Thanks for all the effort I’m sure this was.. I saw a thread just a few months ago discussing just how cold it would have to get in hell before this would happen, so although that specific discussion was about the 6502 C64 variant, I’m sure this was no small effort to get through all the red tape that would be protecting this in a company like Microsoft!

          Steve

        • I used to have a Tandy/Radio Shack TRS-80 model 1 (with an Z80 processor) and wrote a disassembler in Basic to disassemble the 12K ROM and figured out large portions of the code and was very impressed! But I also noticed that some portions of the code were written for the 8080 and other portions also used the extended Z80 instructions. BTW. later I also wrote a TRS-80 emulator.

  • 80s assembly code is something I’m not familiar with.
    Anyone manage to rebuilt it?

    🙂

    • There is the original Intel 8080 and later the Zilog Z80 (which is binary compatible but has extra instructions) and then Intel made the 8086 which is compatible on the assembler source code level but IBM used the Intel 8088, which is a 8086 with an external 8 bit (instead of 16 bit) data interface, which saves a lot on hardware costs.

      What do you mean with rebuilding 80’s code?

  • I am very happy that Microsoft continues in the work of releasing the sources of its historical software, this is certainly a positive thing. But Rich, I must correct you for the short historical paragraphs that you wrote, you managed to insert a serious historical error: The Apple Lisa wasn’t the first commercially available computer with a GUI but it was the Xerox Star workstation, officially named Xerox 8010 Information System, Introduced by Xerox Corporation on April 27, 1981.
    The Xerox Star (not to be confused with the 1973 Xerox Alto that wasn’t really a commercial system) was the first commercial system to incorporate a window-based graphical user interface with icons, folders, mouse (two-button), Ethernet networking, file servers, print servers, and also e-mail.
    Then, I see that you love your first computer, the BBC Micro, but you’ve had to know that the BBC was hardly known outside UK, worldwide sales are very low. In 1983 the IT world was dominated by Commodore with the Vic 20 and the Commodore 64 (both of them had Microsoft Basic also), and also your beloved 6502 was made by Commodore (in 1983 “MOS Technology” was named “Commodore Semiconductor Group” and fully owned by Commodore).

    • Hey Carlo. Thanks – I should’ve been clearer: I don’t believe that the Star was available at retail – only via business-business sales, whereas that Lisa was available at retail. I’ll amend the text above.

      While Commodore’s C64 and Vic20 (and PET, etc.) were indeed very popular here in the US and elsewhere in the world, and indeed in the UK too, the UK had its own explosion of computers:

      The BBC Micro Mode A & B, and/or Electron were present in the majority of UK secondary schools, colleges, and universities throughout the ’80s. They were preceded by the Acorn Atom, and was followed by the Acorn Archimedes which hosted the (then quite novel) Acorn RISC Machine processor. The processor was later spun-off (at Apple’s behest) into Advanced RISC Machines (now ARM Holdings), and renamed the processor to the Advanced RISC Machine – ARM – … derivatives of which now run many of the smartphones we all carry around with us today.

      Sinclair’s ZX-80, ZX-81, and ZX-Spectrum were also enormously popular (you may know clones offered by Timex. Also the Oric-1 and Oric Atmos, the Jupiter Ace (which used Forth as it’s programming language rather than BASIC).

      The Research Machines (RM) LINK’s 380-Z and 480-Z were also popular in some schools and colleges. RM went on to be the major supplier of PC architecture machines into Schools and colleges throughout the UK and much of EMEA and Asia throughout the ’90s.

      Interestingly, Apple had very little footprint in the UK & EMEA in the 80s and 90s – they were just sooo expensive when compared to home-grown tech and PC clones from Asia.

      And yet … despite owning MOS, CSG continued to brand their processors MOS until the late ’80s 😜 I’ll make a note above.

      • Thank you very much for your reply! Yes, I know the computer history of England (and Europe in general) as I’m italian and in the 80’s I studied in England, my first computer was a Sinclair ZX Spectrum (I also was 13 years old in 1983).
        Regarding the commercial issue or retail (in stores) I do not find relevant differences between the Xerox Star and the Lisa. They had similar commercial policies, dedicated to business and office programs, available in brand stores (Xerox also had its stores like Apple). Xerox also suffered from less recognition in the computer market as it was famous primarily for its photocopiers market domination. Both are to be considered commercial failures for very similar reasons, solved only by the Apple Macintosh which really was the first computer that popularized the window/icon interface and the mouse. So I would say that in general it cannot be said that the Lisa was the first available in stores or retail available since the availability of the Star was pretty the same, if you want you can say that the Lisa was the first Apple computer with icons and mouse, but in the end the most people of that time (like me) knew the mouse with the Apple Macintosh and for years nobody knew even about the existence of the Apple Lisa.

        • What I know is Steve from Apple scrapped the Lisa unit after he became incharge for Lisa. He treated Lisa was a failed product developed by ‘B’ class employees and layed off most of Lisa employees. Although Lisa is part of the Apple, he always treated it as rival.

    • My understanding is that nostalgic memories of the BBC Micro inspired the Raspberry Pi.

      Actually, as Eben Upton himself generously put it:
      “When we started Raspberry Pi, we had a simple goal: to increase the number of people applying to study Computer Science at Cambridge. By putting cheap, programmable computers in the hands of the right young people, we hoped that we might revive some of the sense of excitement about computing that we had back in the 1980s with our Sinclair Spectrums, BBC Micros and Commodore 64s.”
      https://www.raspberrypi.org/blog/ten-millionth-raspberry-pi-new-kit/

      Another account from IEEE Spectrum:
      “In 1988, 10-year-old Eben Upton bought his first computer: a beat-up, secondhand BBC Micro. This little machine was ubiquitous in British schools at the time, not least because it ran a simple programming language called BASIC, which Upton quickly mastered and used to create various games.”
      https://spectrum.ieee.org/geek-life/profiles/eben-upton-the-raspberry-pi-pioneer

      • Hey Jim! I am convinced that Eben & team’s approach and positioning was a major reason people paid attention to the Pi from even the earliest days. Note that the Pi wasn’t the first/only cheap single-board computer, but by plugging into the zeitgeist of the 80s I think they plumbed directly into the cerebral memory and pleasure centers of the brains of so many of us who got our start on simple, cheap (ish) home computers in the 80s.

        I wonder jow many early Pi’s were bought for their kids by parents who’d spent most of their youth in front of a BBC, Electron, C64, Speccy, etc. 😜

  • Why ar you unable to open-source the Instruction Set Architecture (ISA) translator? Is it because you don’t have the source code or because it’s still a secret?

    • Guessing they used The Seattle Computer Products Z80 to 8086 Translator. You can find a version (2.21) of it’s source (trans.asm) in the MSDOS 1.25 source

  • I started programming BASIC in the fall of 1981: Luxor ABC80 and Sinclair ZX81 BASIC. About 1983 I learned Forth. It was in spring 1987 that I started to program in Microsoft GW-BASIC, and then I wrote programs to simulate physics, e.g. elastic pendulum in 2D, orbits, and heat conduction. I also programmed Turbo Pascal at this time, but we were required at University to hand in some assignments in GWBASIC. One of the programs later became a success when I translated it into Scratch in 2013: https://scratch.mit.edu/projects/11504974/. The GW-BASIC source code is there too in Notes and Credits section.

Login