Microsoft open sources GWBASIC

Boris Gimbarzevsky boris at summitclinic.com
Sat May 23 21:15:50 CDT 2020


Thanks for that really detailed review of microprocessor history! A 
post to save.  Will have to doublecheck about the C64 as the first 
source I found was Wikipedia and usually look for another source to 
confirm that.  Have a book on disassembly of C64 ROMS which came in 
very helpfull when I was writing assembler for C64 using the slowest 
floppy disk drive I've ever encountered.

After your detailed discussion of the bizarre variety of early Intel 
microprocessors I now recall why I refused to have anything to do 
with PC's in late 1980's.  First played with a 512 K Mac in 1986 and 
was blown away.  Managed to get a Mac to program on while I was in 
med school and used C64 as my timing device for neurologic 
experimentation.  Glad I just did one contract programming job while 
I was in Calgary as had another option of porting my code to a PC 
with 80286 processor; once I had a look at the specs decided that I 
was much more comfortable with a 68000 based system.

Mac was really nice as it had a debugging switch and used to spend 
hours singlestepping through code and disassembled first Mac virus I 
encountered in 1988.  Mac was very nice as most used routines were 
all ROM based and could do a lot in 512 Kb of RAM.  Now run all of my 
Mac programs in BasiliskII given that Apple stopped supporting old 
code once they switched from PowerPC to Wintel CPU's.

Actually, in 1988 M$ QuickBasic was quite easy to use and made it 
trivial to do graphics and windows on a Mac.  The one paid project I 
did was to essentially rewrite a program that another programmer had 
tried to code in C, but crashed and burned when she tried to create 
forms and buttons - seemed simple when one looked through Inside 
Macintosh books but much faster to code in QuickBasic and there were 
errors in those Mac books.  The one drawback of QB was that it only 
supported 24 bit addressing as I discovered when I got my MacIIvx and 
upgraded RAM to 16 Mb. Used to think 32 Mb was an enourmous amount of 
RAM (in comparison to PDP-11 it was).

I've never liked M$ software as it seems whenever they produce a good 
product, they dump it and come up with something far worse and stop 
supporting the old one.  QuickBasic for Mac was very nice as it 
allowed me to concentrate on data acquisition and analysis with forms 
and button implementation code trivial (I wasn only 9 years beyond 
running data analysis on a 360 with FORTRAN and still have those card 
decks and Mac made me switch out of batch job mindset).  Also I 
consider the 1990 version of M$ word far superior to their latest 
versions.  Similarly, VB6 is what I switched to once I was forced to 
use PC's given that most medical software seems to run only on M$ 
platforms.  Hardcore Visual Basic was a great book and was nice to be 
able to code in VB6, have compiled programs that could be augmented 
with C subroutines or assembly code.  VB.NET is a POS whose only 
function seems to be putting people in a sandbox.

I think I naturally gravitated to Apple because in 1980's it was far 
more open than any M$ product.  Likely a lot of that was due to 
Wozniak who was happy to share everything whereas Jobs was probably 
reeling him in.  The impression I got of Bill Gates was that he was 
determined to extract as much money from every product M$ made and 
schemed how to extract money from people after they bought 
it.  Unfortunately, Mac is getting more and more sandboxed compared 
to the way they used to be but are orders of magnitude more stable 
than windoze.  I've slowly been migrating my large collection of VB6 
programs I've written over the last 20 years to Linux but still 
haven't managed to get VB6 development environment to run under 
Linux; can always run XP in a virtual machine for when I need 
that.  Interestingly, Windoze BasiliskII has no problem running under 
Wine as do most open source programs written for Windoze.

For the same thrill I used to get playing with a mix of hardware and 
code 40 years ago, I've developed a considerable affection for the 
Parallax Propeller chip.  Am very tempted to get Propeller2 which is 
still in development, but samples of prototypes are available.  All 
assembly language programming for the cogs, simultaneous execution in 
8 cogs and easy to do things like measure time of geiger counter 
events to 1 microsecond precision using one cog for generating high 
quality random numbers (low byte of interval).  Can do same thing in 
FPGA's, but that would be too steep a learning curve for me now.

Boris Gimbarzevsky

>On Fri, 22 May 2020, Boris Gimbarzevsky wrote:
>>Thanks for posting the timeline of various Basic interpreters.  I 
>>wasn't aware that Gates/Allen also wrote Basic for C64.
>
>Microsoft did a BASIC for the Commodore PET.  I wasn't aware that 
>they did the C64.
>
>>Did download the 8080 Basic source code out of interest, but in 
>>early 1980's had very little to do with IBM PC.
>
>PC was 8088, NOT 8080.
>BUT, an original 8080 source code can be run through some 
>algorithmic translation to automagically patch it into something 
>that is close enough to 8088.
>
>
>All of my knowledge of the following is third hand, and probably 
>mostly WRONG.  If you are lucky, maybe some of the folk here who 
>actually KNOW this stuff will step in and give the right information.
>Sequence is only approximate.
>
>
>Well, we can start by considering the 4004.  1971. It was not the 
>"FIRST" microprocessor, although the later chips based on it 
>dominated the market. 4 bit data bus. It was designed to be able to 
>make a whole range of Busicom calculators that could be essentially 
>the same hardware, and changing ROM, or moving a jumper from 
>cheapest model to most expensive model would void the warranty.
>
>Then came the 8008, with EIGHT bit data bus, and 14 bit address bus 
>(16K of RAM)
>
>Then came the 8080, with 8 bit data bus and 16 bit address bus (64K 
>of RAM)   That brought about a giant surge in hobbyists trying to 
>build computers, including the MITS Altair, etc.
>
>It is important to note that each Intel chip consisted of "minor" 
>modifications to the previous one.  That made it easier to modify a 
>design or software from one to the next one.  Minor patches tended 
>to be all that was needed.  THAT is important.  'course it means 
>that some aspects are really weird due to being patched on top of 
>patched, on top of patched, instead of redesigned.
>
>
>MEANWHILE, other companies started trying to get into the game.
>
>Motorola came out with the 6800, which was pretty cool.
>But, they were taking a long time to get around to the next ones, so 
>a group of engineers left and started MOS Technology, and came out 
>with the 6500.  Motorola's lawyers were not amused.  So, the 
>engineers redesigned an all new, "non-infringing" one called the 6502.
>
>Motorola eventually got around to trying to design "the best 8 bit 
>microprocessor", and came out with the 6809.
>They had designed from scratch, to try to make it the best, so it 
>had so much different, that previous machines could not be easily 
>modified for it, and had to be redesigned for it, and software 
>needed to be re-written, not just patched. They had difficulty 
>finding any takers, in spite of obvious design superiority, because 
>most manufaturers were already established with other chips.  BUT, 
>Radio Shack built a machine called "the Radio Shack Color Computer" 
>around a Motorola application note.  Radio shack didn't want it 
>competing with their other products, and didn't see any reason to 
>include capabilities, so they had horrible constraints, such as 
>chiclet keyboard, unexpandable RF video, cartridge slot instead of 
>expansion bus, etc.
>
>
>A lot of the early machines were intel 8080, which had 8 bit data 
>bus and 16 bit address bus, which meant maximum of 64K of RAM, 
>although it was not very hard to cheat for 128K.
>
>Gary Kildall needed an OS for managing his source code on 8 inch 
>disks that he added to his computer.  He wrote "Control Program and 
>Monitor", which later became "Control Program for Microcomputers" 
>("CP/M").  He tried to get Intel to market it, but they didn't think 
>that there would ever be enough market to sell an operating system 
>for a microcomputer.
>So, he started "Intergalactic Digital Research"
>
>Later, when the hobbyists grew up and lost their sense of humor,
>"Thinker Toys" became "Morrow designs".  (they had been having some 
>trademark issues)
>"Kentucky Fried Computer" became "Northstar"  (they had been having 
>some trademark issues)
>and "Intergalactic Digital Research" bcame "Digital Research Incorporated"
>
>
>Then Zilog came out with the Z80, which had major enhancements.
>BUT, code using those enhancements would not run on an 8080, so CP/M 
>remained 8080, and many/most? programmers stuck with 8080 for marketable code.
>Intel came out with the 8085, which had DIFFERENT [incompatible] 
>enhancements, so many/most? continued to stick with 8080 code.
>I think that the Radio Shack model 100 is 8085.
>
>
>A hobbyist named Steve Wozniak wanted to build a Z80 computer.  But 
>it was going to cost too much.  At Wescon (trade show), he got a 
>fantastic deal on some 6502 chips.  Not what he had been wanting, 
>but he could make it work, and he could afford them!
>
>He hooked up with Steve Jobs, who had some marketing ideas.  They 
>sold a bunch of "blue boxes", kited some checks, sold Jobs' VW bus 
>and Woz's calculator, and put together a batch of kits.  ($666.66; 
>they later said that they had not realized the theological 
>implications of the price)
>And, hence, we got "Apple Computer".  Later, Apple Music (Beatles) 
>talked to them about the name.  Apple Music agreed to not get into 
>computers, and Apple Computers agreed to not get into music.  Hmmm.
>
>Atari and Commodore both ended up also using the 6502.
>
>Motorola
>
>Then Intel decided to build a "16 bit processor".  The 8086 has a 16 
>bit data bus and a 20 bit address bus, for a maximum of 1M or RAM
>When the IBM PC wasbeing planned, there was a lot of difference in 
>cost between 8 bit and 16 bit support chips.
>The 8088 was ALMOST the same as an 8086, but with an 8 bit data bus, 
>which significantly reduced costs!  From an engineering perspective, 
>the 8088 is an 8 bit version of the 16 bit 8086.
> From a MARKETING perspective, it's 16 bit, or maybe 32 bit, or 
> maybe 64 bit, etc.  If a 4 bit machine has a 128 bit Smell-o-vision 
> port, marketing will call the machine "128 bit"
>
>The IBM PC was an 8088.
>
>IBM went to Microsoft to get BASIC for it.  Bill gates put on a suit 
>and met with them.
>The "Pirates Of The Valley" story of Microsoft cold-calling IBM to 
>sell an operating system PINS THE NEEDLE ON THE BOGUSIMETER.  The 
>author of that fiction needs a hot soldering iron shoved 8 inches up his nose.
>
>Microsoft was happy to oblige on BASIC.
>
>One of the IBM engineers had an Apple2 with a Microsoft "Softcard" 
>(Z80) to run CP/M.  So, IBM asked Microsoft to also supply "the 
>CP/M". Bill Gates explained that that was Digital Research.
>
>So, IBM went to Digital Research in Pacific grove to get "the CP/M".
>There was some "culture clash".  IBM showed up in blue suits.  There 
>is an unconfirmed report that somebody at DR thought that it was a 
>drug raid.  I have looked out that upstairs window, and can imagine it.
>The IBM suits encountered barefoot workers in shorts and not all 
>wearing shirts (both sexes?) female workers without bras.  cats and 
>a dog. plants. Surfboards and bicycles in every room.
>Gary Kildall wasn't even THERE!  He had gone to fly his plane up to 
>Oakland to visit Bill Godbout.  Official story is that that was an 
>essential errand to deliver some documentation (and no lower 
>employee could have put some shoes on and driven up?).  His wife was 
>there, and he had told her, "They're just coming to sign a license 
>agreement. Let them wait in the living room with the rest of the customers."
>IBM was not amused.
>
>IBM went back to Microsoft.  I heard that Bill Gates told his people 
>that anybody without a suit should stay home for the day.
>IBM said that they wante Microsoft to provide the OS.  Bill Gates 
>said, "we do BASIC.  We don't do operating systems."  IBM said that 
>they intended to get the BASIC and the OS from ONE source.  Bill 
>Gates said, "Let me tell you about our new OS department!"
>
>Then Bill Gates went down the street to Seattle Computer Products 
>and bought 86-DOS/QDOS ("Quick and Dirty OS"), including hardware to 
>run it on, and the contract of Tim Paterson who wrote it.
>Microsoft had a new OS department.
>
>
>Motorola STARTED work on "The best 16 bit processor".  Rather than 
>patching something earlier, and being stuck with legacy oddities, 
>they designed from scratch.  So, it took longer.
>
>Motorola eventually came out with the 68000, which was the best 16 
>bit processor. (or 32 bit or 64 bit if you are in marketing)
>
>
>The Apple3 was a major financial setback.  Much more money, for very 
>little more.
>Apple started on a total redesign.  It is rumored that for the Lisa, 
>they explicitly avoided anybody with prior experience to avoid 
>repeating previous bad ideas.  'course hiring brilliant folk 
>straight out of college meant that nobody had the prior experience 
>to know the consequences of building a machine for which software 
>could NOT just be patched from previous versions.  The Lisa was 
>magnificant!  and in a price range (>$20K?) where sales were to 
>overpaid exectuvies wanting to impress other overpaid 
>executives.  It actually came close to putting Apple on the rocks.
>And, it was an ALL-NEW (and improved) machine.  Old software 
>couldn't just be patched, it had to be re-written. The brilliant 
>recovery plan was to take the Lisa design and cut every corner that 
>could be cut, to make a machine that could be sold for $500. Once 
>they did, they found that they could still get away with selling it 
>for $2K.  it was mandated that the resulting machine would come with 
>four significant pieces of software.  By the time it was ready, 
>those had become Mac-Write, Mac-Paint, Mac-Write, and 
>Mac-Paint.  But that was enough.  The marketing people were smart 
>enough to change the grumbling about building a computer for 
>ignorant masses into "a computer for the rest of US"
>
>Later, Commodore (Amiga) and Atari (ST) used the 68000.  There are 
>some amazing stories (that i don't know) about that "technology swap"
>
>
>Intel came out with the 80286, 16 bit data bus with 24 bit address 
>bus.  with fewer limitations.  But still a few significant ones, 
>such as how to switch in and out of "protected mode". "It's like 
>having to turn your engine off to switch gears on the freeway".
>Bill Gates called the 80286, "Brain dead."
>In "real mode", which would be limited to 20 bits of address, it is 
>easy to cheat and enable A20, which permits 64K past the 1M 
>boundary.  THAT is required for Windoze 3.10
>
>Then came the 80386, which could sorta be called a 32 bit 
>processor.  And the 80386-SX, which analogous to the 8088, was a 16 
>bit version of the 32 bit 30386, permitting building a software 
>compatible machine using cheap 80286 support chips.
>
>80486, which is kinda like a 80386 plus 80387 math chip, and the 
>80486SX, with is 80486 without the math processor.
>
>and Pentium.  Intel had been finding out the hard way that it was 
>difficult to maintain trademark of a number (Oldsmobile "442" 
>notwithstanding)  Other manufacturers would make a 80386 like chip 
>and call it a 486, or an 80486 like chip and call it a 586, etc. So, 
>they had a naming session.  And the other entries were even worse 
>than "Pentium".
>I'm surprised that that didn't backfire horribly!  Consider: In 
>about 1965, Honeywell bought Pentax from Asahi.  Honeywell could 
>totally legitimately have come out with a processor (joint venture 
>with AMD/Cyrix/etc.?) and called it the "Pentaxium".  Intel wouldn't 
>even be able to object.
>
>
>Yeah, there have been more since then, but new stuff isn't 
>interesting for another ten or twenty years.  OR MORE for some of 
>the boring current stuff.
>
>
>--
>Grumpy Ol' Fred                 cisin at xenosoft.com
>
>
>
>>As was working with PDP-11's at that time, really disliked 8080 
>>instruction set and got a C64 instead which was considerably 
>>cheaper than IBM PC and much easier to write assembly code 
>>for.  C64 basic is fairly ugly but bought a 6502 assembler and just 
>>used Basic to display stuff on screen and call my work was done in 
>>assembly language code.  Had no trouble sampling switch data at 1 
>>KHz using my "toy" computer.  A couple of guys from UBC Physiology 
>>decided to build a programmable stimulator based on C64 which they 
>>were trying to sell for $2K, considerably less than the ~$10 K that 
>>the dedicated device that was commonly used then.  Even though 
>>their timing specifications matched the expensive device, a lot of 
>>researchers back then didn't want a "toy" to be part of their lab 
>>setup so sales were few.
>>
>>Recently found a movie Pirates of Silicon Valley which had some of 
>>early Microsoft history and, if depictions of individuals are true 
>>to reality, explains why I far preferred Mac in comparison to ugly 
>>early windows.  It also helped that 68000 was a very easy processor 
>>to migrate to after 8 years doing assembler/FORTRAN programming on 
>>a PDP-11.  Couldn't believe it when I had a full 512 Kb of RAM to play in.




More information about the cctalk mailing list