Feeds

Could Bill Gates write code?

Yes. And then some, Altair BASIC dis-assemblers reckon

  • alert
  • submit to reddit

Secure remote control for conventional and virtual desktops

Even if you've been following our saga of Micro-Soft's 1975 Altair BASIC here and here, - one question remains unanswered.

Was it any good?

Reuben Harris has been disassembling a binary with some help from Monte Davidoff, the third author of Altair BASIC (along with Gates and Paul Allen) and who we interviewed here last week. He has the same question in mind:-

"'Could Bill Gates Write Code?' Or was he merely the luckiest man alive," before concluding... "Yes He Bloody Could!"

Although Reuben's analysis is not quite complete, he tells us that Gates, Allen and Davidoff threw every trick at the book to squeeze the interpreter into 4 kilobytes. They succeeded and left some headroom for the programs themselves - without which it would have been pretty useless, of course.

"It was pretty incredible - they were pretty good at what they were doing," he tells us.

Reuben draws out attention to a particularly Mel-like feat.

" I found a jump instruction that jumped to the middle of another instruction. Why was this extraordinary? Well, on the 8080, instructions were 1, 2, or 3 bytes in size. Since instructions could be more than one byte in length a programmer had to be careful that he didn't jump to, say, the second or third byte of a three-byte instruction; since he'd be executing arbitrary instructions that would almost certainly crash the whole program. What was going on??"

Reuben concludes this was entirely intentional. "Rather than skip over some small bit of conditionally-executed code that we don't want to execute, if that bit of code was small enough (ie one or two bytes) you could simply encode those one or two bytes inside a two or three byte instruction thus saving the three-byte instruction needed to jump over it. The best example of this technique is in BASIC's error message code "

All that... for three bytes.

You can play with Altair BASIC online, if you have a telnet client. It's at the splendid Online Software Museum here and a selection of "mindbendingly dumb" games are included.

Reuben has also pointed out the similarities between the Altair BASIC's error codes and the error codes returned by
modern Microsoft Basics
. Plus ca change.

Of course Monte Davidoff, who worked on two BASICs for Micro-Soft in all, tells us that the better algorithms could be used when the developers had more memory space. And we know from Bill Gates' foreword to Gordon Letwin's Inside OS/2 (Microsoft Press, 1988) that Letwin ripped up the designs for the earlier interpreters when he arrived at Microsoft. But that isn't really the point - the Altair BASIC is rightly feted not for being the most elegant, but for being the first and the smallest. And that's enough. ®

Related Links

Reuben Harris' analysis of Altair 4K BASIC
Play with Altair 4K BASIC at the Online Software Museum
The Story of Mel

Related Stories

Microsoft Altair BASIC legend talks about Linux, CPRM and that very frightening photo
Raiders of the Lost Altair BASIC Source Code

Beginner's guide to SSL certificates

More from The Register

next story
Euro Parliament VOTES to BREAK UP GOOGLE. Er, OK then
It CANNA do it, captain.They DON'T have the POWER!
Download alert: Nearly ALL top 100 Android, iOS paid apps hacked
Attack of the Clones? Yeah, but much, much scarier – report
NSA SOURCE CODE LEAK: Information slurp tools to appear online
Now you can run your own intelligence agency
Post-Microsoft, post-PC programming: The portable REVOLUTION
Code jockeys: count up and grab your fabulous tablets
Twitter App Graph exposes smartphone spyware feature
You don't want everyone to compile app lists from your fondleware? BAD LUCK
Microsoft adds video offering to Office 365. Oh NOES, you'll need Adobe Flash
Lovely presentations... but not on your Flash-hating mobe
prev story

Whitepapers

Designing and building an open ITOA architecture
Learn about a new IT data taxonomy defined by the four data sources of IT visibility: wire, machine, agent, and synthetic data sets.
A strategic approach to identity relationship management
ForgeRock commissioned Forrester to evaluate companies’ IAM practices and requirements when it comes to customer-facing scenarios versus employee-facing ones.
5 critical considerations for enterprise cloud backup
Key considerations when evaluating cloud backup solutions to ensure adequate protection security and availability of enterprise data.
Reg Reader Research: SaaS based Email and Office Productivity Tools
Read this Reg reader report which provides advice and guidance for SMBs towards the use of SaaS based email and Office productivity tools.
Protecting users from Firesheep and other Sidejacking attacks with SSL
Discussing the vulnerabilities inherent in Wi-Fi networks, and how using TLS/SSL for your entire site will assure security.