The Opposite to the Commodore 64   Leave a comment


SinclairCirclesA short Sinclair Spectrum BASIC program for drawing circles with increasly large diameters. This is impossible in Commodore BASIC V2 without the use of a seemingly endless sequence of POKEs, but according to TMR Spectrum components were obsolete!

I’m sorry for the lack of any new articles on this blog recently. I was doing some work on a planned quite long article revealing how to draw some lines on the Commodore 64 graphics screen, and although I managed to find out a bit about this from old Commodore 64 magazine articles, it was totally mind bending. Before the line drawing program there was a program about plotting points, but it didn’t work! It was impossible to debug it because of all the PEEKs and POKEs. When I tried to adapt these techniques to draw lines in a slightly different pattern, not surprisingly I found I couldn’t work out how to do it, because this involved complicated geometrical equations. I was persecuted by a maths teacher who was obsessed with geometry and often had to miss half an hour of the lunch break to stare at geometry problems in a text book because he thought I would somehow magically realise how to do them. Not everyone can do geometry, although everyone can learn to speak another human language, as proved by people in lots of non English speaking countries speaking two or more languages. BASIC is also a language, but not a human one.

The whole point of this blog is computer literacy versus computer illiteracy. A prime example of computer illiteracy is Commodore 64 BASIC V2, which, because that computer was released in 1982, was designed to put people off learning to program, leave it to the “experts” and just play games and use other software instead. This version of BASIC might have been OK to use in 1977 on the original Commodore PET, but definitely a crime against computer literacy when reused on the Commodore 64 in 1982! Microsoft, who developed this version of BASIC for the 6502 processor, never intended for their BASIC to be used on hardware like this, and they remained hard at work improving their BASIC for various processors to take account of new hardware used and reused by various manufacturers. Lots of people, or even most people, have also had problems learning BASIC, so it seems that a more human language such as Logo may be needed. Logo is a dialect of Lisp, while BASIC, C, and various other languages are based on FORTRAN.

I was very surprised to read on the blog criticism of various computers just because they used hardware which was a few years old, 5 years old, or even older. I don’t think I’ve ever objected on this blog to the age of hardware components. This is totally irrelevant to the point I’m making about computer literacy! It’s also interesting to note what year various processors came out compared with when they became popular. Some examples of this are the MOS 6502,  the Zilog Z80 and the Motorola 68000 CPU. The 6502 first came out in 1975, while the Z80 followed in 1976 and the 68000 in 1979! I can’t think of any computers which used a 68000 family CPU (including the 68008, 68010, 68020, etc) until the original Apple MacIntosh (68000) and Sinclair QL (68008), which both came out in 1984, so according to this line of thinking they were using totally outdated technology, because they were based round a 5 year old CPU!



An example of Sinclair Spectrum graphics programming complete with the short program which produced it. This suffers slightly from the 8×8 colour attribute mode colour bleed, but when using higher resolution graphics of 320×200 the Commodore 64 suffered from the very same shortfall! This was programmed in the FUSE emulator running under UNIX OS.

Another post which was totally irrelevant was a graphics screen of a tortoise or a turtle done on a Commodore 64! I assume this was done using a graphics editor, not actually programmed by calculating which one of 16 colours to make each pixel on the screen. I assume it was in the low resolution 160×200 display mode, so that’s 32,000 pixels to POKE!

Commodore designed some custom new hardware in the form of the VIC-II video chip and the SID sound chip. This may have been a good idea, but it was certainly a very bad idea when they failed to provide unsuspecting buyers of the Commodore 64 with a built in programming language which could make use of this hardware. I was also conned by a certain magazine which was a buyers’ guide to computers available at the time. It may be best not to mention its name. I hope the Editor has suffered a painful death since then for all the stress she caused me. I think this magazine was the only buyers’ guide about computers that I read before going shopping for one. As there were various members of staff working on it, I assume that reviews of different computers were written by different members of staff, then it would have been up to the Editor to read them, and check they were OK before she made some final edits so they all fitted together. Unfortunately, however it happened, some compatible computers got quite different scores in the reviews. I particularly remember the reviews of the Acorn Electron and BBC Micro (also by Acorn). Both computers should have scored the same on almost all points, but they didn’t! The Electron was just a cut down, cheaper version of the BBC Micro, which at one stage was the same price as the Commodore 64, meaning £199. They only shared one component, the 6502 CPU, though. The only differences in using those two computers were that the Electron had no Teletext Mode 7, fewer interfaces, one channel sound instead of 3 channel sound, slightly less RAM (although both officially had 32K), a poorer quality keyboard, and various BBC software wouldn’t run on it, so Electron versions were often produced. They had star ratings for various things, including “User Friendliness”. The Commodore 64 scored 4 stars, the same as the Atari 8 bit, but the BBC Micro only score 3 stars! Since being conned by that magazine into buying a Commodore 64, I’ve always read at least two buyers’ guides about any electronic device before buying it. This saved me from experiences with analogue satellite receivers such as “crap sound on Hot Bird”, caused by fixed instead of programmable audio sub carrier tuning on lots of analogue satellite receivers. They only had a choice of 2 or 3 audio sub carriers. This was OK for Sky and other channels carried on the Astra 1 satellites at 19.2 degrees east, but not for some channels on the Hot Bird satellites at 13 degrees east. All that buyers had to do was read the technical specifications listed in at least two satellite equipment magazines over a period of a few days to know what they were getting. As with computers years before that, good receivers were often the same price or cheaper than the receivers with crap sound on Hot Bird, etc.

I read years later that when the Commodore 64 first came out, hardly anyone knew how to program it at all, unless it was using techniques which also worked on older Commodore computers. What they had in common was the BASIC dialect, 6502 Assembly Language and Machine Code, as well as a collection of ROM routines being updated on every new Commodore model, which they called the “Kernal”, a misspelling of kernel. Apart from attempts at reverse engineering the Commodore 64 to find out what made it tick, people had to wait for the “Commodore 64 Programmer’s Reference Guide” to be published for the Commodore 64 to “give up its secrets”. I remember I got a copy of this book at the same time or very shortly after getting the Commodore 64. Unfortunately, my Commodore 64 came without the manual or “User Guide”. This was because the shopkeeper had sent the computer back “for checking”, but Commodore had failed to pack the User Guide with it. He also offered us “a cheap Dragon”. Little did I know that Dragon computers contained an advanced version of Microsoft Extended BASIC and would have been an amazing first computer, although the company Dragon Data went bust a few weeks later. I only knew it didn’t have a synthesizer chip, but a “tone generator” and just one channel sound. At that stage the dealer offered us a £20 discount, but I had the sense to realise that you wouldn’t buy a washing machine without a manual, so how could you buy a more complicated device like a computer without one?! I suggested we leave the shop and said to my Dad “I’ll GIVE you the £20!” Unfortunately, he had the wrong attitude, which I called the IKBA (I know best attitude), but other people call it the ITA (ivory tower attitude). At the time I received the threat it was that or nothing! I wish now that I’d just walked out of the shop there and then. I advise anyone against backing down to a threat like this. Your answer should always be “It’ll have to be nothing, then”. I think we bought the computer itself for £179, instead of the official price of £199. As we left, I asked the shopkeeper how to “access the synthesizer circuits”. He replied “It’s easy! You just use PEEK and POKE commands!” This was a total LIE! PEEK and POKE are only used when no dedicated command exists. Other computers had SOUND, ENVELOPE, PLAY, and BEEP commands! I could have walked out of the shop and bought myself a second hand Atari 400, as used by the amazing Frank Ostrowski, who had a fantastic introduction to computing on that model of Atari. He managed to extend the on board BASIC, command by command, until his extensions became “Turbo BASIC XL”. This was disk based, but I don’t think he had a disk drive when he started using the Atari 400. He was offered a contract by the company GFA to write a replacement BASIC for the Atari ST, after Jack Tramiel had managed to make a mess of that as well, which he called “ST BASIC”. I haven’t been able to find a list of ST BASIC commands, but have read that it was the same as ABasiC on early Amigas. This indicates to me that the commands were a mixture of Commodore BASIC 3.5 and Sinclair QL SuperBASIC. As Jack Tramiel had already left Commodore by the time they brought out the Amiga, they had no objection to paying Microsoft for a new version of BASIC, which they called AmigaBASIC. This was a port of Microsoft BASIC on the Apple MacIntosh. ST BASIC had various bugs and used 4 windows, which was the maximum number available under the GEM desktop on the Atari ST. I think this meant that programs written in ST BASIC couldn’t open a new window. At least the Atari ST was disk based, and ST BASIC wasn’t on ROM, only loaded from disk. GFA BASIC on disk could use a runtime module, enabling the programs to run on any Atari ST without the need for the owner to have a copy of the BASIC in question, unlike a cassette based Commodore 64. My Dad bought me the Commodore 64 complete with the course “An Introduction to BASIC”, to try and make up for the lack of the “User Guide” manual. This manual soon arrived back at the shop and we picked it up, but it was quite thin and not much good. Unfortunately, I didn’t manage to blow up the Commodore 64 or the TV by setting it up without the “User Guide”. I typed in programs from these books, including one which displayed a mouse tap dancing, but I had absolutely no idea how it worked, due to all the PEEK and POKE commands! There was even a section describing how to use something called the 64MON cartridge, which was a Machine Code Monitor. This was for editing or programming in Machine Code NOT Assembly Language! I have no idea why anyone would want to do this! Perhaps it was popular in the 1970s. The whole book had a historical, 1970s kind of attitude to it.

Computers such as the Sinclair Spectrum and MSX had the opposite attitude to the Commodore 64. This attitude was to use their own BASIC customised for their hardware, which wasn’t new, but tried and tested technology. The video chip used in MSX, Memotech MTX, and the Tatung Einstein had originally been used in the TI99/4A, powered by a 16 bit TI 9900 CPU, so you could even say it was 16 bit technology. The Sinclair Spectrum and MSX computers had high resolution graphics of 256×192 with 16 colours, the same as various other computers. Unfortunately, the Spectrum suffered from attribute mode, dot creep, or colour bleeding, because it could only display 1 foreground colour in each 8×8 character cell, while MSX had a similar system that could only display 1 foreground colour in each 8 pixel area of each horizontal line, although it had a lower resolution mode which didn’t suffer from this effect, but that was only 64×48 pixels or blocks. The Commodore 64 also suffered from colour attributes in each 8×8 area in its high resolution 320×200 graphics mode, so most games were written in the rougher, low resolution 160×200 mode. Most of the people who bought Sinclair Spectrums and MSX computers had probably never owned a computer before, so why would they care if its hardware had been used in older computers or not? When they got their computers home, they read manuals about programming this hardware using Sinclair BASIC or MSX BASIC, including colour, graphics, and sound, unlike on the Commodore 64.


Hypersports on the MSX with its “obsolete” TI 9918/9928/9929 graphics chip (256×192 display mode)


Hypersports on the C64, with its newer, custom, “more advanced” VIC II chip (160×200 display mode, as used for most C64 games to avoid attribute colour bleed)

So to sum up, it’s not the hardware you’ve got, but the attitude behind a certain computer and the programming languages available for it that decides what you can do with it! Finally, here’s a page I’ve just visited again, about how the Commodore 64 lost in a contest against the Sinclair Spectrum and NOT just because of its crappy BASIC!

Posted July 20, 2013 by C64hater in Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: