An overriding memory for those who used 8-bit machines back in the day was of using BASIC to program them. Without a disk-based operating system as we would know it today, these systems invariably booted into a BASIC interpreter. In the 1970s the foremost supplier of BASIC interpreters was Microsoft, whose BASIC could be found in Commodore and Apple products among many others. Now we can all legally join in the fun, because the software giant has made version 1.1 of Microsoft BASIC for the 6502 open source under an MIT licence.
This version comes from mid-1978, and supports the Commodore PET as well as the KIM-1 and early Apple models. It won’t be the same as the extended versions found in later home computers such as the Commodore 64, but it still provides plenty of opportunities for retrocomputer enthusiasts to experiment. It’s also not entirely new to the community, because it’s a version that has been doing the rounds unofficially for a long time, but now with any licensing worries cleared up. A neat touch can be found in the GitHub repository, with the dates on the files being 48 years ago.
We look forward to seeing what the community does with this new opportunity, and given that the 50-year-old 6502 is very much still with us we expect some real-hardware projects. Meanwhile this isn’t the first time Microsoft has surprised us with an old product.
Header image: Michael Holley, Public domain.
Now we hope that MS release windows 95, 98 and DirectX (up to DirectX 9) under MIT.
man…it sounds like a pipe dream but i wonder if they shouldn’t actually do it. microsoft is losing their hegemonic position. they invented dot net in the late 90s with explicitly the same design goals and choices as android, but they stood still for 25+ years while android ate the meal they meant to prepare for themselves. and android is (somewhat) open source and that attribute has only helped google leap ahead of microsoft.
it really wouldn’t surprise me if microsoft tries to learn a lesson from this. i mean, who would have expected WSL 30 years ago?
the silver lining is that it will be too little too late and it won’t succeed and the few outsiders who bother to look at the source will claw out their own eyes but
Anyone who played around with VMWare, because that’s all it really is – a virtualized ubuntu console running under Windows.
I’ve run Ubuntu on MS Virtual PC 2004 about 20 years ago.
Mac users were accustomed to using PC emulators since the 90s.
Virtual PC 1 to 7, SoftWindows/95/98 etc.
They’ve looked same as Virtual Box does now.
Some had been using PC emulators in the 80s, already.
Such as PC-Ditto on Atari ST, SoftPC on 68k Macintosh..
They maybe couldn’t have run Linux, but perhaps Minix 0.x or 1.0.
Windows itself had been run in virtualization on Solaris or Caldera Linux in the 90s.
Via WABI, which ran the 386 Enhanced-Mode kernal on top of *nix, without using DOS.
WSL did exist 30 years ago, sort of. Look up Interix which used the almost never-used Windows NT kernel personalities feature to run a complete, standards-compliant Unix in parallel to the stock win32 personality.
It worked astonishingly well. I used it for a while as a Cygwin alternative. It was faster, more capable and more compatible. At one point I wrote a Linux binary loader for it, which let it run stock Linux binaries (poorly; the NT and Linux kernels have very different ideas of how some things work, and I needed to do stuff like catching NPEs and looking at the code to see what the application was actually doing in order to emulate operations which can’t be done natively). I got it working well enough to run Debian i386 in a chroot. https://cowlark.com/lbw/
It’s a shame Microsoft never actually told anyone about it!
It lasted up to Windows 8 for Microsoft eventually dropped it, but I believe a lot of the same tech went into WSL 1. WSL 2, however, is based on a VM running a hacked Linux kernel.
For running Linux, there also had been AndLinux and Co-Linux from about 20 years ago.
Worked fine on Windows XP, even WINE could be run.
https://andlinux.sourceforge.io/
The term WSL is false logic.
It should have been LSW, Linux Subsystem for Windows,
because Windows is the host and the subsystem serves it.
Back in the 90s, Windows NT was about such things about “OS/2 subsystem”, “POSIX subsystem” or the “Win32 subsystem”.
And all these subsystems were for Windows.
But now, with WSL, it seems that Windows NT is the obedient servant of Linux.
Which bows down an lets take Linux all of its resources and services.
That’s not how a host system is supposed to be.
Also, if there had been a sort of dosminix analogy based on Linux, there would have been LSD.
The Linux Subsystem for DOS. ;)
“The term WSL is false logic. It should have been LSW, Linux Subsystem for Windows”.
Totally agree, and it grates every time I see it. But I suppose the marketing people are Microsoft preferred Microsoft Windows Subsystem for Linux, a name that begins with “Microsoft Windows” rather than “Microsoft Linux”…
To be fair, Android and iOS aren’t exactly the embodiment of “progress”.
Things like the hamburger menu dumbed down user interface and created a generation of non computer-savvy users.
Even the web degenerated thanks to these mobile OSes.
Just look what happened to real, sophisticated websites of the 90s or 2000s were users had to actually “read” text.
This isn’t what my definition of progress, it’s a dystopia of users who nolonger understand the technology they’re using.
This can can get dangerous in a few decades.
It’s a far cry from the days of DOS when even the average Joe could use QBasic or debug.com and had an interrupt list book on his shelf. So sad.
i’m not sure if i agree with you or not but in support of your point
the biggest struggle i have with teaching my 13yo how to use a computer is that he never reads what’s on the screen. he never tries to understand what the state of the computer is. even as he becomes a more advanced user, he still first just clicks on whatever seems likely. using vague visual cues. thoughtlessly. and, i might add, ineffectively.
That’s probably because he’s 13. I somewhat remember doing that sometimes when I was his age, too. What you need to do is let him experiment, break, then have to fix it.
TBF I’ve just been trying to train a grown adult on a system and they’ve been doing very much the same.
I’m thinking legacy code even in Win 11 from the NT kernel makes this a security issue. I doubt it would ever happen, maybe 50 years from now.
Windows 11 is Windows NT 6.x in reality (it would be NT 6.5 now)
Belongs to same gang as Windows Vista/7/8.x and 10.
There hasn’t been much change since 2007 or so.
Microsoft barely touches the fundamental part anymore.
All the “gurus” of original Windows NT team are either retired or sux feet under.
https://www.osnews.com/story/28097/windows-10-bumps-kernel-version-to-100/
Not absolutely needed, since they’re a mess.
Windows 95 is a pile of poorly debugged drivers.
No really, it’s a pile of VXDs. It’s a hack, a really messy one.
DirectX is already available as an implementation via Wine and ReactOS project.
Virtualbox prior to 6.1 included experimental Direct3D 8/9 support for Windows XP.:
It was based on WineD3D and helped rendering Direct3D graphics on the host side via OpenGL.
DirectX 7 and below were handled via software rendering by the Direct3D HEL.
Why?
Wasn’t that the software that made Bill Gates whine in his open letter to hobbyists?
Yah. But did he actually write it? Or did he just take code that the Homebrew Computer Club members had written and shared with one another and ported that to the Altair? Maybe with this release we will finally find out!
I thought he complained about the 8080 version that was floating around rather than the 6502 version.
In terms of authorship, I think he did actually write the 8080 version along with Paul Allen and someone else using university resources. I wouldn’t be surprised if early 6502 versions were 1:1 hand translated versions of the 8080 version
It will be interesting to compare with this pre-release source for Logo for the Apple II https://github.com/PDP-10/its/blob/master/src/aplogo/logo.299
Jack Tramiel got rather annoyed when Microsoft’s Easter egg was found, the 50 odd bytes it used was real memory back then. (Especially on the VIC-20!)
Ben Eater has been compiling MSBASIC and adding new BASIC commands to support his 6502 kit for months now. Was this before the code was officially available?
wouldn’t matter the source is largely just assembly instructions, you can generate that easily from the ROM anyway.
the useful bits are the comments, but you can pretty easily use RE tools to work out call sites, etc
I remember when source code for Win2000 made public release, to spend hours of time to isolate a kernel, that was essentially built into everything. The problem with Windows NT, is the lack of separation, between developers and consumers. This writes itself into the code and of course, everyone pays, to have Intel doing their TCP/IP implementation for Windows, opposed to being able to drop that DLL and insert their own (open source) implementation, modified to suit their needs and continue, to load anything else that MSTC and Windows Registry decides to load..
Notice the upload time field in the files? I think this is the first oldest file uploaded to GitHub :)
It’s only me who finds extremely sad and lame that they used AI to generate the GitHub README.md contents? It feels so plastic…
When your OS was 6900 lines of assembly….