Microsoft open sources GWBASIC
lproven at gmail.com
Tue May 26 09:50:03 CDT 2020
On Mon, 25 May 2020 at 20:53, Jim Brain via cctalk
<cctalk at classiccmp.org> wrote:
> Too late to fix silicon, the 6522 issue surfaced.
What 6522 issue?
This is way more depth about a machine I never owned than I personally
ever knew, I have to admit...
> Oh, and re-use all the VIC peripherals to save NRE costs!
I had to look that up.
Still, that degree of backwards-compatibility helps adoption of a new
model. ZX Spectrum owners could keep their ZX Printer from their ZX81,
for instance, and BASIC programs would still run. (Although I think
you had to re-enter them all -- not sure about tape storage
> Done, except Japan
> didn't see any need for it, so they deleted it. Argh!
But I thought the Japanese model didn't sell?
> As noted above, there was a famous meeting (at least for Commodore),
> where Peddle and others were talking about a color version of the PET.
News to me!
> Remember, Jack did calculators and typewriters, Peddle had done a lot of
> the evangelizing for a computer. But, Peddle was an engineer, and his
> machines we heavy, expensive, and complicated (dual CPUs in the drive,
I must admit, even in 1983 or something, that seemed extravagant to
me. I know that the Apple LaserWriter was a more powerful computer
than the Mac that drove it, but there were sound engineering reasons
for that -- but most 8-bit machines' standard floppy drives didn't
have CPUs, so why did the Commodore ones need them?
Later I learned about Woz' ingenuity in the Apple ][ drive design. I
appreciate that it was a machine from 5 full years before my ZX
Spectrum, but still, for all the stories about the amazing ingenious
cost-savings in the Apple ][, it was a very expensive computer indeed
when I was a schoolboy. Perhaps the single most expensive home
computer there was.
> A few folks hacked up a color PET
> proto, using a video IC that had been designed for game consoles but no
> one bought it, and pitched that it would work on a TV, was MOS IP, etc.
> Those folks won. Michael Tomczak(sp?) advocated for the better KB,
> seeing the ZX81 one and others of the time (the PET chicklet KB as
> well). I think they were already thinking of a 40 col machine at that
> moment, but needed an entry point. The VIC was it.
Aha, I see.
Well, for all that it didn't appeal to me, I think it was a decent
design and it sold well.
_At the time_ the deficiency of the 1541 disk drive didn't seem
important -- it was a motorcycle-priced accessory for a car-priced
computer, so almost nobody I knew owned one. It was extravagant beyond
But given that the C64 was massively better than the VIC-20 in every
other way, the fact that it had the same BASIC seemed a massive flaw.
And, as has been pointed out, there were speedup options for the C64's disks.
A better replacement BASIC is one thing -- if you don't have it, then
you can't use BASIC listings that require it, so the mass market will
only support the lowest common denominator. But a faster disk drive --
why not? So long as they can load the same disks as everyone else,
fine. It doesn't move the baseline so it's not a problem.
> I guess your point is that you don't agree with Jack's priorities. The
> VIC was a rush job, costs had to be low. BASIC v2 just fit in an 8kB
> ROM, and KERNAL fit in another 8kB. 8kB ROM was easy to make in house.
> Notice they used 2 ROMs instead of 1 16kB one. It was all about low NRE
> costs, using stuff off the shelf. Putting a third 8kB ROM in there for
> better BASIC was just an unneeded IC, plus someone would need to write
> the A/V code (CBM did not have a A/V capable BASIC at that time).
But CBM didn't write it in the first place, did they? It's MS BASIC.
I've read about the ROM sizes before, so there, I concede.
My personal reference points are the Spectrum and the BBC Micro.
In the Spectrum, there's no split between OS and BASIC -- they're the
same chunk of code, and it all fits in 16 KB leaving 48 KB of memory
map free for RAM. The initial models of Spectrum (16KB & 48KB) had no
bank switching support at all, AFAIK.
The Spectrum 128 had the same BASIC (with a few extra commands to
handle a RAMdisk and sound chip) but a better _editor_ -- so it just
had 2 different ROMs and paged them in and out according to what mode
it was in, since it needed bank-switching anyway to support the
The sad thing was that Sinclair didn't include the better graphics
modes from the failed US model Spectrum, the Timex-Sinclair 2068. This
also had the ability to page RAM in in place of the ROM, to run CP/M
-- something the Spectrum didn't get until the Amstrad Spectrum +3 in
1987. To this day I see the Spectrum 128 as a massive missed
opportunity -- if they'd only included the improvements from the only
other official successor to the original model, it would have been a
much more capable and more desirable machine.
Anyway, back to 6502 machines: the BBC Micro split the OS (MOS) and
BASIC (BBC BASIC) into different ROMs, just as the Commie 64 did.
However, Acorn's ROMs were 16 KB each not 8 KB each. That meant that
with both MOS and BBC BASIC paged in, the base model BBC Micro had
only 32 KB of memory map left for RAM, and that really wasn't enough.
Its highest-res graphics mode took ±20 KB of RAM, leaving a paltry
11KB for programs.
But I guess all this is unknown and irrelevant in the USA, where Acorn
barely sold at all and Sinclair did poorly.
Given that the functionality of the Commodore OS and BASIC seemed so
feeble compared to that of the Beeb, I remain surprised to this day
that CBM couldn't squeeze all that into 16KB.
> You and I had different youths. I paid $332USD for one in 1982 or
> something, and BASIC was the last thing on my mind.
Even if £1=$2 back then, that's still twice what my parents paid for
my first Spectrum, a 2nd hand rubber-keyboard 48 KB model.
When you bear in mind that most things in the UK cost more than in the
UK -- US gasoline is about ⅓-¼ of the price of European petrol, a $10
pair of Wranglers would cost £40 in the UK, etc. -- then you can see
that you were buying a much more expensive computer than I was.
> We know that now, but at the time, I don't think that was known.
> Regardless, you assume most early teens cared about the BASIC maturity,
> and I posit they did not. C64 buyers bought for the games, and folks
> quickly moved to ML if they wanted A/V. Maybe in your neck of the
> woods, things were different, but US buyers bought it to play.
Also fair. It's all most British schoolkids wanted, yes.
I collected games like some kids collected stamps: it was fun to have
a good collection, swap and trade, to have the latest or rarities --
but you don't actually _use_ the stamps in your collection, do you? I
didn't actually _play_ all the games. Most I loaded once, had a look
and then never opened again.
> I remember it differently. We oohed for a few minutes at the BASIC
> command, then we just copied an ML routine from COMPUTE's! Gazette into
> our app to get even fast circles and squares, and moved on. BASIC (and
> ML) was a means to an end. We wanted our masterpiece to emerge, and we
> really didn't care how it materialized. We even looked at the more
> complete BASICs as a crutch (which I actually think they were/are),
> since those programmers never dipped into ML to get the real speed!
> (Yeah, I know we vehemently will disagree on that point, but we all have
> our opinions)
No, it's legitimate. I looked at machine code and decided not to
bother. It was too hard, and what I wanted to do was explore coding --
patterns, fractals and cellular automata and things. I had no interest
in writing games and still don't, so I wasn't overly concerned with
Instead I bought Beta BASIC, which gave me 64-column text, named
procedures and so on and I was happy.
> At the time, there was no distinction. There were personal computers,
> and some people were using them for business. Apple IIs were finding
> work, why not the Commodore?
Oh well. Seems absurd to me, but hey.
> I'll partially concede, at least after Jack left. I think Jack knew
> what people wanted. He made, after all, one of the highest selling home
> computers of the day, if not for all time. He wanted the own the rest
> of the market, which the 116 would do by kicking the remaining low cost
> entries to the curb. BUt, once he started phoning it in, while secretly
> planning his departure, he did not have a protege to take the reins.
> I don't think things were that malicious. I see it more as "Hey! Market
> opportunity. How fast can we enter this space?". And we, hungry teens
> with persuasion skills and our parent's concern that if their child
> didn't learn this emerging computer thing they'd be destined for poverty
> for all time made sales fly!
> I can appreciate your advocacy of BASIC. I cannot agree with it, and I
> liked BASIC (on many machines) growing up. Once I entered software
> development as a vocation, I found BASIC had set up bad habits that it
> took years to unwind. I still have a fondness for the language, but I
> don't think it was all that educational. It was brute force, overly
> verbose at times, hard to follow in programs of anything above trivial
> sizes, etc. But, it must have it's sheering section, and so I defer to you.
I do not know what a "sheering section" means.
A lot of people still sneer at BASIC even now, decades after its slide
into obscurity, but I personally think it was a classic design.
There's a lot of stuff that people do not notice, let alone
appreciate, when today they advocate Python, say.
Traditional BASIC needs no concept of "files" or "editors". Type some
code, it executes. Prefix it with a number, it is stored for later.
Different numbers allow the sequence of the code to be set or changed,
and give a simple, obvious way to control the path of execution.
Once you remove that, there is a _massive_ extra layer of cognitive
load imposed: "this language runs code from a thing called a 'file'.
It executes it line by line. You use another program called an
'editor' to create that file. Files are kept in 'folders' and need to
be given unique names. Ah, no, if you want to move from one part of a
program to another, you need to set a 'label' in in the code, and jump
to that... or name your 'routine' which makes it into a 'producedure'
and then call the procedure by name..."
This is a hell of a lot to teach and to learn. I know; I may write
docs now, but before that, I was a software trainer and had to get
adults to absorb, use and retain this stuff. It's _hard_.
It seems utterly trivial to pro techies but it is not. It's very
abstruse and theoretical to non-techies.
Kemeny & Kurtz thought about this stuff, and devised simple solutions.
Guido van Rossum didn't. He was writing a different kind of tool, and
exposing the arcana of the C 'printf()' functions to his users was not
a problem for him. It really _is_ if you are 7 years old and trying to
learn this stuff.
This kind of cognitive disconnect is what killed Novell.
"Hey, we'll add features to Netware 4 that will make it much easier
for our big enterprise customers..."
"But they make it much *harder* for a mom-and-pop business with 1 server!"
"Aw, doesn't matter, they'll learn..."
[2 years pass]
"Hey, where did our market share go? Why is everyone buying NT 4
Server now? What happened? OMG why are we going bankrupt?!"
BASIC made learning programming easy. The result was a whole
generation of kids in the 1980s learned to program and started tech
companies, and many became wealthy or changed whole national
Today, you need to learn to use a computer first before you can learn
to program, consumer computers aren't programmable at all, and hey,
look at that, modern software is crappy unreliable bloatware that
needs constant patching and vast upgrades.
Meanwhile people who remember when computers were simple collect old
ones and form active communities online, discussing historical trivial
like the memory maps of 8-bit machines from 40 years ago.
What a mystery! Whatever could have happened? What could have caused
this? Nobody knows! It's insoluble!
> Yes, I'll agree when I think of bare-minimum, my first thought is the
> Sinclair. Maybe I should rephrase to be "the minimum to put in the
> machine that will offer selling points over competitors".
I think this is a difference of national economies at work again.
You casually mention buying a $350 computer when you were a kid. Good for you.
If computers never got cheaper than $350 then I would never have got a
computer when I was a kid, and today I'd be a marine biologist as I
In other words, this was a life-altering difference. The model of
machine I got was half the price of yours, brand new, and there was no
way my family could have afforded that _new_ at full price. It was,
after all, a toy for a child.
But second hand, at £80, it was just barely doable. Probably the most
expensive gift I'd ever had in my life until then.
These things were _vastly_ expensive luxury products back then, or at
least they were for British children.
Yet you or your family paid in real terms between 4× to 8× as much and
you didn't mind that it had some very serious drawbacks which you
discuss in great detail?
That's astonishing to me.
If I or my parents were spending this very significant sum, perhaps a
month's income for the whole family, then I want something as rounded,
as balanced, as capable in every aspect as can possibly be done for
Yet you say "yeah, well, the BASIC was crappy and the disk drives were
kinda crappy but I didn't care."
This is really quite profoundly shocking to me.
> If you mean putting the Z80 in there? Bil agrees with you. He hated the
> entire idea, and the engineering effort he expended to do it. But, when
> Marketing has promised it, evidently at Commodore, you made it happen.
> Hats off the engineers at CSG/MOS/CBM.
Again, I guess we are looking at this in very different ways.
For you, these seem to be small, unimportant issues. For me, at the
time, given the amount of money involved, they would be deal-breakers.
> Since I've sometimes had to do the bidding of the pointy haired boss, I
> admire the technical aspects of the decision. But, I agree with you it
> was a bad idea, if only because Commodore didn't vertically integrate
> the Z80, so it had to be sourced from Zilog, and it was lots more
> expensive that the 6502. So, instead of hanging this cart off the back
> for the few dozen folks who actually cared to do CP/M on the 128, and
> paid for the privilege of the Z80, CBM had to source one for each 128
> and keep the overall costs down in spite of it. Legend goes that CBM
> Europe threatened to rip the z80 out of every C128 they sold in Europe,
> I think because they had dissed it in competitor systems like the
> Sinclair, etc. (You can't actually do so, as the Z80 actually runs first
> in the C128, to work around an issue with another almost never used
> Commodore cartridge that had to work on Day 1: it's either Magic Voice
> or Super Expander, I forget which. Again, Commodore promised *ALL*
> Commodore released carts would be compatible [ except the CP/M cart,
> which they could ignore, on a technicality], and Bil had to use the Z80
> to boot the machine to accommodate that one cart!)
Astonishing. But then corporate decision-making often astonishes me.
Then again, baffling corporate/governmental decision making has
brought the world to the very brink of collapse, and I am not at all
sure that my baby daughter Ada -- named for Baroness Lovelace, of
course -- will live to the age that I was when I chose a Spectrum over
a C64. :-(
Liam Proven – Profile: https://about.me/liamproven
Email: lproven at cix.co.uk – gMail/gTalk/gHangouts: lproven at gmail.com
Twitter/Facebook/LinkedIn/Flickr: lproven – Skype: liamproven
UK: +44 7939-087884 – ČR (+ WhatsApp/Telegram/Signal): +420 702 829 053
More information about the cctech