Why was the Commodore 64 such crap?!   16 comments

(This post has now been stuck to the top of this blog as an introduction to explain what it’s all about! Please scroll down past the next post to read the latest post)

I hope to sum up in this post why the Commodore 64 was such crap, then go into more detail later on. Here’s a list of reasons why it was crap.

1. It was a revamped version of a failed games console called the Commodore Max, which was only released in Japan. It should never been marketed as or called a computer.

2. It didn’t have 64K RAM. There may have been 64K of RAM chips in the Commodore 64, but it was virtually impossible to access 64K RAM, no matter what programming language you used, due to gobbledegook excuses such as “some memory locations can be RAM or ROM” and “some chips overlay portions of the RAM”. WTF?! Of course, under Commodore BASIC V2, users had only 38K free. Decades later I found out that to use the 64K RAM, programmers had to turn off the BASIC, KERNAL and CHARGEN character ROMs. This meant not only did they have to avoid the built in Commodore BASIC V2, but also include any routines they needed for input, and output, file handling, as well as a character set in their programs. This was probably why the Sinclair ZX Spectrum was originally designed to have only 48K maximum. (This paragraph was updated in June 2023)

3. The version of BASIC on the Commodore 64 wasn’t even written for the Commodore 64, but recycled from years before. It was standard PET BASIC, as used on Commodore PET computers from 1977 onwards! It was V2 of this BASIC, but that made no real difference. In 1977 or 1978 hardly any individuals owned a computer, only companies and governments. People in those days were amazed to have a computer at all. By 1982 when the Commodore 64 came out, things had changed a lot, thanks partly to cheap Sinclair and Acorn computers, and people had higher expectations of what they wanted to do with a computer. Unfortunately, they wouldn’t be able to do these things with Commodore 64 BASIC, which was stuck firmly back in the 1970’s, had only 71 commands, none for colour, graphics, or sound. The on board Commodore 64 BASIC, on ROM like almost all other computers, never had any commands added to it, which could have been done with a ROM upgrade. ROM upgrades were offered by Sinclair, and Atari, amongst others.

Posted August 5, 2012 by C64hater in Uncategorized

Commodore 64 crap!   Leave a comment

(This post has now been stuck to the top of this blog as an introduction to explain what it’s all about! The post below this one is the latest post)

This is the blog Commodore 64 crap. It exposes how and why the Commodore 64 was crap and just a games console masquerading as a computer. I had the misfortune to buy a Commodore 64 as my first computer. I had to sell it 10-11 months later with some books and software for about half price of the total.

Posted August 5, 2012 by C64hater in Uncategorized

BUILD YOUR OWN COMMODORE 128 – PART 2    Leave a comment

BUILD YOUR OWN COMMODORE 128 – PART 2 

An IBM AT Model F keyboard

One thing you need to do to recreate the look and feel of a Commodore 128D (C128D) is to buy a suitable keyboard.

The original C128 and C128D have their own layout of keyboard, which is no longer made. It seems to have been inspired by an old school PC keyboard from about 1981-1984, but isn’t identical. Of course it’s not easy or may not even be possible to get one of those PC keyboards which is working today. The keys which have been added since those days are the cluster of six keys between the main keyboard and the numeric keypad, as well as the Windows key and the Menu key. 

Naturally, the C128/C128D keyboard features Commodore style keys, similar to the C64, as well as other Commodore 8 bit computers. This means that it’s marked with PETSCII graphics characters. 

In case you don’t know PETSCII is a modified version of ASCII, which has two character sets as well. The main difference is that when in the character set which contains upper case and lower case letters and symbols the codes are 65 for “A” and 97 for “a”, although standard ASCII uses 65 for “a” and 97 for “A”. PETSCII also includes a “£” currency symbol, although standard ASCII of that period didn’t include this. 

The keyboard is also marked with colours which you can set the text and graphics characters to, by pressing the CTRL or C= (Commodore “chicken head” symbol) keys in combination with the number keys on the top row of the main keyboard. You can also set RVS ON or RVS OFF like this as well.  It includes a whole C64 type keyboard plus “extended keys”. Unlike the C64, it also has a numeric keypad, as well as a row of sixteen keys across the top arranged in groups of four. This row includes four cursor keys.

Some people have been known to use a C64 keyboard with an adaptor to replace a C128 keyboard with a genuine C128D. However, the C64 keyboard is missing thirty of the C128 keys!

The C128/C128D keyboard is of a general layout called ANSI (American National Standards Institute), which is slightly different from another layout called ISO (International Standards Organisation or International Organisation for Standardisation). The main differences between these two layouts is that ANSI is mainly for English language, but ISO can more easily be used for any language. When using modern Mac computers, Apple recommends that anyone “planning to do anything with languages” buys a Mac with an ISO keyboard. 

Using the English language QWERTY layout which it’s designed for, an ANSI keyboard has no key between the left SHIFT key and the Z key, but an ISO keyboard using the English QWERTY layout has an extra key in between the left SHIFT key and the Z key. Of course, non QWERTY ISO layouts still have this extra key, but on a German QWERTZ layout it’s between the left SHIFT key and the Y key. The ANSI keyboard also has a rectangular RETURN or ENTER key on one row, while the ISO keyboard has an upside down L shaped RETURN or ENTER key, which spans two rows of the keyboard.  

While trying to set this keyboard up, at first I was using whatever is the default keyboard layout for Combian 64. I didn’t know how to change the settings, although I soon found out. 

All the C128 and C128D keyboards I’ve seen have physically ANSI keyboards, but that’s not the whole story. I used to own a German version C128, which I bought from eBay Germany. However, as the C128 and C128D are more advanced than the C64, German language versions also have a German character set, although on the C64, people typing in German had to use the alternative spellings “ae” for ä, “oe” for ö, “ue” for ü, and “ss” for ß (Eszett). The German C128 keyboards also have the extra German characters Ä, Ö, Ü, and ß. The character ß is called “Eszett”, meaning sz in old German Gothic script, which has the modern alternative spelling ss. Eszett isn’t even used in Swiss German or on Swiss keyboards. These German characters are marked on the keys in addition to the default English characters, as well as the character § , which refers to sections of legal documents. They have an extra Z on the Y key and an extra Y on the Z key. This gives a German language QWERTZ layout, as well as characters for an English language QWERTY layout, but the keyboard is still physically an ANSI layout. The German keyboard layout can be activated by pressing the key marked ASCII/DIN, which is the fourth key on the top row. ASCII stands for American Standard Code for Information Interchange, while DIN stands for “Deutsches Institut für Normung”. This key is marked CAPS LOCK on non German language C128/C128D keyboards. It can also be activated by software using a certain memory location. 

The left side of the ANSI USB keyboard after applying some C128 style stickers

Bearing all of this in mind, I bought a white ANSI keyboard from Amazon especially for use with my self built C128D. I had already bought two sets of white Commodore 128 keyboard stickers from 4keyboard.com in Niagara Falls, New York, USA, so I’d have a spare set in case I had any problems with these stickers. These stickers feature the default English language characters only. The alternative suppliers in other countries were either out of stock or much more expensive. These stickers took about two weeks to arrive at my address somewhere in Europe, so this should give you a rough idea of how long they’d take to reach you wherever you live. 

I plugged this keyboard into my Raspberry Pi with the Combian 64 emulator running in C128 mode, then started pressing each key to check which C128 key it was equivalent to. I soon had most of the keyboard covered in these stickers, but I found that a few keys didn’t print any characters at all. I also found that the four physical C128 function keys were mapped to the PC style function keys marked F1, F2, F3, and F4, instead of to the top row of the numeric keypad, which is the position where they are on a real C128 keyboard. I wasn’t sure where the C128 CTRL key was, but I confirmed much later that it was the PC TAB key. The C128 RUN/STOP key was mapped to the PC ESC key in the top left hand corner. 

The right side of the ANSI USB keyboard after applying some C128 style stickers

Sadly, after all this work, I was unable to find any key that printed the = sign! This is essential for typing in BASIC programs, so I wondered what I could do about it. 

Unfortunately, the ANSI keyboard I had bought wasn’t even 100% identical to the layout pictured on Amazon! The RETURN/ENTER key is a kind of L shape spanning two keyboard rows, instead of being a rectangular key on one row only. I wondered because of this if the key that would be the C128 RESTORE key was missing. Luckily, I found that the RESTORE key had been mapped to one of the PC keys that don’t exist on a C128/C128D keyboard. These are the group of six keys in between the main PC keyboard and the numeric pad. These keys didn’t even exist on classic PC keyboards such as the IBM PC XT, which the C128/C128D keyboard is similar to, but not identical. This is also the group of keys where I found the CLR/HOME key and the £ key had been mapped onto. 

Unfortunately, I later found out that NONE of the ANSI PC keyboard keys would print the = sign! What a disaster, after all my work fixing the C128 keyboard stickers onto this keyboard! Once stuck they’re firmly stuck. Of course, the alternative of not being firmly stuck wouldn’t enable me to apply them onto another keyboard, because they wouldn’t stick firmly enough. To cap it all, the key where I thought the = sign should be, refused to print any symbol at all! This key is the one with the “\” and “|” symbols, above the right SHIFT key and left of the RETURN/ENTER key. 

That’s all for now! Look forward to the continuation of the keyboard setup, then the rest of the C128D build in future instalments of this series coming very soon. 

Posted July 2, 2023 by C64hater in Uncategorized

THE MISSING COMMODORE 64 MANUAL!   Leave a comment

THE MISSING COMMODORE 64 MANUAL!

Mastering Machine Code on Your Commodore 64 by Mark Greenshields

The Missing Manual is a series of books by Pogue Press/O’Reilly & Associates Inc, but from what I can tell they never published one for the Commodore 64. However, here’s a book I’ve recently found which certainly fits the bill. This book is called “Mastering Machine Code on Your Commodore 64” by Mark Greenshields, published by Interface Publications in 1984! It was first printed in May 1984, not long after I got my Commodore 64. 

After reading it, I can definitely say that it should have been licensed by Commodore and included in the box which every Commodore 64 was supplied with. Of course, the reason why it wasn’t given away by Commodore was probably because it cost £7.95. Commodore Founder Jack Tramiel’s original reason for buying a “perpetual license” for the Microsoft 6502 8K BASIC in 1976 (antique by the time the C64 was released)  was so that he didn’t have to pay a US$3 royalty for each single computer he sold. The exchange rates for the Pound Sterling against the US Dollar during this time period (according to https://www.macrotrends.net/2549/pound-dollar-exchange-rate-historical-chart  ) were £1.00 = US$2.03 on January 5, 1976;  £1.00 = US$1.78 on July 5, 1976; £1.00 = US$1.67 on December 6, 1976; so he was avoiding paying a royalty of about £1.82 per computer sold for this. I think this was enough to buy three “Teach Yourself Books” at the time. The “Teach Yourself Books” series is about learning languages and possibly some other things as well. I bought several of them over the years. During 1984, the exchange rates were £1.00 = US$1.41 on January 2, 1984; £1.00 = US$1.32 on July 2, 1984; £1.00 = US$1.15 on December 31, 1984; so this meant an average of £1.00=US$1.29 during 1984 making the cost of this book about US$10.28 during that year. Obviously Microsoft’s fees for BASIC language royalties had probably increased as well, but Jack Tramiel’s attitudes hadn’t changed.  

Jack Tramiel left Commodore in January 1984, then this book was allegedly  published in March 1984, just before I got a Commodore 64, but it was marked as printed or reprinted in May 1984. The people still running Commodore learnt everything they knew about business from Jack Tramiel, so that’s probably why they didn’t consider including this book with the Commodore 64.

I was on a quest to find a book which would finally enable me to program my C64. My quest involved reading lots of magazines, then travelling across London, buying books, each time hoping I’d bought the book that would change my situation. I once thought of rushing to a computer show I’d just heard on TV was selling Oxford Pascal at a big discount, with commands for graphics, colour and/or sound. This book is the one I was searching for!

I wondered why I didn’t buy this book before selling my C64. I decided to look for any reviews I might have read. so here’s what I found out from downloading some magazines which I actually bought in 1984. 

It was reviewed in “Your Commodore” Issue No. 1, October 1984. I clearly remember the cover of this issue, indicating it was lying around at home for some time. I also found a review in “Commodore Horizons” Issue No. 10, October 1984. I remember buying Commodore Horizons, but I don’t remember reading this particular issue. I probably gave up on this magazine before then. Unfortunately, neither of these reviews says that this book is absolutely, amazing, every C64 owner should buy one, or that it will change your life. This is why I didn’t buy it. 

The Your Commodore review says that this book shows the reader how to do pixel and character scrolling, sprites, music with scales and tunes using one channel as well as THREE CHANNELS, interrupts, raster scan graphics, hires graphics, and adding commands to BASIC. This is what’s really important about this book, but it takes up less than 10% of the review! It also mentions the sections the book is divided up into, and criticises it for listing the programs in Assembly Language Mnemonic format which requires an Assembler. These programs are also listed in Machine Code format! He even said that many of the 12 Appendices seemed to have been reprinted from the Commodore 64 manual! 

The Commodore Horizons reviewer even had the cheek to say that he had problems loading SuperMON after he’d typed it in and saved it to tape! This sounds like a technical problem which could have been overcome with a bit of effort. He could even have got a copy of SuperMON from somewhere else. It was available as part of a developers’ kit from Commodore and as a Public Domain program. This review is from a magazine published by Sunshine Books, who also published a lot of useless books about the C64 which I actually DID buy! The review does praise the book, though. It mentions that it includes details of how to do smooth screen scrolls, sprite manipulation, interrupts, rasters, and hires graphics! It also says the the title claiming that it teaches you about “mastering” Machine Code isn’t exaggerated!     

First of all, the book gives a type in listing for the excellent Monitor/Simple Assembler SuperMON by Jim Butterfield (RIP). He was a genius who had been using mainframe computers since 1963, before the classic series of Doctor Who started and before US President Kennedy was assassinated. He also bought the KIM 1 computer, by a company which was taken over by Commodore before they produced their first PET! He also bought a PET and studied it intensely. He wrote for The Transactor specialist Commodore magazine.

SuperMON was partly based on the built in Monitors in all Commodore 8 bit computers produced before the VIC-20, which Jack Tramiel obviously thought Commodore 64 and VIC-20 owners didn’t need, the same as they didn’t need simple disk commands such as DIRECTORY, DSAVE”filename”, DLOAD”filename” and BOOT”filename” on the C128. They could just make do with LOAD”$”,8 followed by LIST , as well as SAVE “filename”,8 and LOAD”filename”,8 instead. Of course, I mustn’t forget to mention LOAD”*”,8 instead of an auto booting disk drive as well. Unfortunately, I recently found out that the Commodore Monitors on various or even ALL their computers before the Commodore 16 and Commodore Plus/4 didn’t include an Assembler, they could only handle raw Machine Code itself. The inclusion of SuperMON alone makes it much better than The Commodore 64 Programmer’s Reference Guide, which just tells you to go out and buy the C64MON cartridge. 

This book craps all over the fairly useless official Commodore 64 Programmers’ Reference Guide! The Assembly Language programs in this book show you how to create scrolling text, Raster Interrupt graphics which enable you to mix display modes on the same screen (something that Atari 8 bit computers were designed to do with their Atari BASIC Display Lists) as well as displaying 24 sprites on the screen at once, playing music using all three sound channels of the SID chip running in time with each other (the reason I put the C64 on my shortlist of computers to consider buying), pixel scrolling, and even how to add some all important graphics commands to the C64’s built in BASIC V2! People who are serious about learning how to program the C64 must get this book! 

I looked round for some more books written by Mark Greenshields, then I found the book “Mastering the Commodore 64”. This book was published in 1983 and contains an Acknowledgements page written by Mark giving the date as February 1983! I haven’t got a copy of this book, but I was amazed to find that a new edition of it is available on Amazon. 

According to the preview on their site, it includes chapters or sections about Machine Language, Colour in Machine Code, Animation in Machine Code, Sound and Music in Machine Code, Programmable Characters in Machine Code, Sprites in Machine Code, Commodore 64 Architecture and Interrupts. As this was only a few months after the Commodore 64 was released, I think I can definitely say that Mark couldn’t have gained all of his knowledge about 6502 compatible Assembler/Machine Code from using the Commodore 64! The Commodore 64 uses the 6502 derivative 6510 CPU. He must have learnt 6502 Assembler/Machine Code from using an older 6502 based computer. The list of computers he may have got this knowledge from is as follows…

  • Acorn Atom
  • Apple II
  • Atari 400/800
  • BBC Micro
  • Any Commodore computer released before the Commodore 64
  • Commodore VIC-20
  • Microtan 65
  • Oric1 

Of course, one of the other books about using Machine Code/Assembly Language on the C64 was “Machine Code Games Routines for the Commodore 64” written by Paul Roper, who said in his introduction that he had been programming the 6502 CPU for some time before the C64 with it compatible 6510 CPU came out  and he mentioned he had an Acorn Atom computer with a built in Assembler. 

Mark Greenshields also wrote another book called “40 Best Machine Code Routines for The Commodore 64”, now also available on Amazon!

The book “Mastering Machine Code on Your Commodore 64” by Mark Greenshields is available in a new edition on Amazon. I think people should buy it from there to thank Mark Greenshields for his amazing work! 

Posted May 27, 2023 by C64hater in Uncategorized

BUILD YOUR OWN COMMODORE 128! – PART 1   Leave a comment

BUILD YOUR OWN COMMODORE 128! – PART 1

A Commodore 128D

As I previously said years ago, I think the Commodore 128 is the fixed, upgraded Commodore 64. It was the last 8 bit computer created by Commodore. They moved on to building IBM PC clones and the Amiga range of computers. IBM PC clones are now just called PCs, but IBM appropriated the term PC (Personal Computer) for their own personal computer. Before it became popular, ANY computer designed for use by one person at a time was called a PC! This meant a computer which wasn’t a mainframe or a minicomputer, which had terminals networked to it, that could be used by various people at the same time. The Commodore 128 was also called a PC in some of its advertising.

The Commodore 128 is available in three models. These are the original Commodore 128 in a wedge shaped doorstop style unit, the later Commodore 128D made up of a metal box containing the motherboard and a disk drive with a separate keyboard which plugged into the main unit, as well as the Commodore 128D(CR), standing for “Cost Reduced”, in the same configuration as the Commodore 128D, although the main unit is made of plastic, instead of metal. I think that most C128 computers were the wedge shaped/doorstop variety, though. I really prefer the C128D and C128D(CR) variations with their professional look. 

The main problem with the Commodore 64 is its totally crappy, antique BASIC. This was more or less the same as Commodore PET BASIC released in 1977! That’s the reason it had no commands for colour, graphics, or sound. In those days, computers didn’t have colour, graphics, or sound! 

The Commodore 128 can perform most functions using its own built in Commodore BASIC 7. This includes colour, hires graphics, sprites, sound and structured programming. The general thinking about “home computer” programming in the 1980s was that you were supposed to learn how to do things in BASIC first of all, then this would encourage or even enable you to do the same things in Assembly Language/Machine Code, meaning a lot faster. This was very important for creating games. It was quite possible on the C128, but on the C64 all colour (except coloured text), graphics (except Commodore PETSCII graphics characters) and sound (except PRINT CHR$(7) ) had to be produced using the dreaded PEEK and POKE commands. I think that POKE was used more often than PEEK, though. I do know that most POKE commands were followed by five digit memory addresses in Decimal, because the crappy BASIC didn’t even support Hexadecimal, they seemed like random locations, although the Hex values showed that they weren’t, and they could be followed by any number from 0-255. What a nightmare!!

Another serious omission of the Commodore 64 was that there was no built in Machine Code Monitor program. AFAIK, this was built in to ALL Commodore 8 bit computers, except the VIC-20 and the Commodore 64. 

On the Commodore 128, the Monitor is started just by typing the command MONITOR in direct mode, or by pressing the key marked F8. You can also type MO SHIFT+N instead. The fact that there was a Monitor built in, which accepted both Assembly Language and raw Machine Code encouraged computer journalists to write articles and books about programming in these languages using the MONITOR. By contrast, most Commodore 64 owners didn’t have a Monitor program or an Assembler. I never owned one during my time as a C64 owner. I read a bit about them, but I didn’t know if this would solve my problems with the C64. Other methods were to finally find a book which would show me a new way, or to buy another programming language on cassette or cartridge which could be compiled into stand alone code. I don’t actually think there was any such thing, though. AFAIK compilation required a disk drive which cost more than the C64 itself.  

An amazing hack for the C128 I recently found out about is that using a short Machine Code program it’s possible to run C64 software from a D64 disk image in C128 BASIC 7 mode, instead of being confronted with the nasty C64 Commodore BASIC V2 screen and running it from there. I read that most things in Assembly Language are the same on the C128 as on the C64. This means the software looks as if it’s native C128 software!  

Not all that many Commodore 128 computers were ever made or sold, compared with the Commodore 64. Things could have been so different if Commodore had reduced its price, or better still discontinued the C64, leaving the C128 in its place. 

Nowadays, there aren’t all that many used Commodore 128 computers left to buy. You can find them on various websites at much higher prices than the crappy Commodore 64. I think the solution is to build your own! 

Building your own Commodore 128 might sound like a daunting task, but actually it doesn’t require a soldering iron. You can build a reproduction using an emulator, a modern USB keyboard, some C128 keyboard stickers, a Raspberry Pi computer, an SD card, and some kind of box to help create the look and feel of the main unit.

A C128D keyboard

Here are some suggested components for the C128D build…

Emulators. These will be the heart of your C128D system! 

Combian 64 Emulator for the Raspberry Pi (a version of VICE, so it can emulate ANY of the Commodore 8 bitters)

BMC64/BMC128 for the Raspberry Pi. This is a bare metal emulator for the Raspberry Pi computer, meaning that it doesn’t run on top of another operating system such as a Linux distro. It requires the user to download and rename various ROM images. However, in spite of a few attempts, I can’t yet get it to boot up. All I get is an error message!  

Box (main unit)…

You have to just get the best kind of box you can find or whatever you can afford for the main unit. I think the size is too big for most if not all 3D printers. As there are keyboard stickers available in black or white only, I went for white because the original C128D is beige, so white is closer to that than black. This meant buying a white keyboard to go with it. Due to this, I decided to get a white box to match the keyboard. I had a long think and a good look round at what was available. I was considering a white storage box of about the right size, but I wasn’t happy with any of the ones I saw. There were a few C128D/C128D(CR) cases available, but these seemed more expensive than what I wanted to pay. I saw some old MacIntosh LCII boxes from the early 1990s. These were originally white and the front fascia looks similar to a C128D/C128D(CR), meaning that it has a disk drive slot on the right hand side, as well as a horizontal groove in the middle of the front fascia. This sounds like a fairly good deal, but you’ll have to make your own decision. They may be yellowed, but can obviously have the  Retrobrite treatment. This box gives approximately the right look and feel, although unfortunately it’s not as wide as the USB keyboard, so it looks smaller than a C128D/C128D(CR) casing. It can also be used to house the Raspberry Pi.  

So, that’s the theory. In my next article, I start showing you how to put everything together. 

Posted May 15, 2023 by C64hater in Uncategorized

HAPPY 40th ANNIVERSARY TO THE ACORN ELECTRON COMPUTER!   Leave a comment

HAPPY 40th ANNIVERSARY TO THE ACORN ELECTRON COMPUTER!

This year (2023) marks the fortieth anniversary of the Acorn Electron computer!

Here’s a summary of the Acorn Electron’s pros and cons…

  • A cut down cheaper version of the BBC Micro, running the same BBC BASIC programming language built in, which could also be mixed with 6502 Assembly Language in the same program
  • Most BBC BASIC programs could run on the Acorn electron as well
  • It could display text in 80 columns, as well as 40 columns and 20 columns
  • Its highest resolution display mode was 640×256 in 2 colours
  • It was featured on the TV series “Me and My Micro” presented by Fred Harris as one of only two computers which they used to teach BASIC programming. The other was the Sinclair ZX Spectrum.
  • It lacked the many interfaces of the BBC micro, which most people may never have used, but they were partly responsible for the BBC Micro’s higher price
  • It lacked the three channel sound synthesizer chip of the BBC micro, having only a one channel tone generator
  • It could only display 8 different colours, as used in Teletext/Videotext
  • It lacked the Teletext/Videotext display mode of the BBC Micro, which was called MODE 7

To sum this up, the Acorn Electron had almost everything I was looking for in a computer! I must emphasise that I wanted to buy a computer, not just a games console with a keyboard. I wanted a computer which I could program! 

I read in the fairy story book “The A-Z of Personal Computers” that some computers had a synthesiser chip built in, while others had only a tone generator, or worse still just a beeper. This encouraged me to try and kill two birds with one stone by getting one of the computers that had a synthesiser chip built in. It meant making up a shortlist of these computers. Unfortunately, the Acorn Electron wasn’t on this shortlist because it had only a one channel tone generator. My shortlist read something like this (in alphabetical order)…

  • Atari 400/800/600XL/800XL
  • BBC Micro
  • Commodore 64
  • EACA EG2000 Colour Genie
  • Memotech MTX 500/512
  • Oric 1/Oric Atmos
  • Sord M5/CGL M5
  • Spectravideo 318/328
  • Tatung Einstein
  • Texas Instruments TI99/4A

The situation back in early 1984 when I was reading up on computers was that there were lots of new computers with more coming out all the time. Some of them, like the  EACA EG2000 Colour Genie, the Memotech MTX, the Sord M5/CGL M5, and the Spectravideo 318/328, weren’t very popular, but that could all have changed not long after I got the computer. I was also living not far from the dealer Silica Shop, who were Atari 400/800/600XL/800XL specialists, although they sold other computers as well.  My preference was the BBC Micro, which cost £399 at this time. However, my Dad was too miserly to buy this because there were other computers that were about half this price. 

In 1983, the Commodore 64 had also been selling for £399, so if I’d got a computer in 1983 instead, then it wouldn’t have been a Commodore 64. Unfortunately for me, by this time Commodore had slashed the price of the C64 to £199. The Texas Instruments TI99/4A was discontinued just before we went shopping for a computer, but I can’t remember if I actually heard about this before then. Most computer magazines were published monthly, there was no Internet, and I don’t remember reading any computer magazines except “The A-Z of Personal Computers” before then. 

I even heard after getting a C64 that it was possible for the Acorn Electron to use three channels of sound with Machine Code routines! I thought this was really amazing, because you also needed Machine Code to play three channel sound on the Commodore 64 to get the notes on the three channels to play in time with each other. 

To see what awaited new Acorn Electron owners, please watch the following video.

Posted March 12, 2023 by C64hater in Uncategorized

CRAPPY FORTIETH ANNIVERSARY TO THE COMMODORE 64!   1 comment

The model of Commodore 64 I was unlucky enough to get, with beige function keys, plus the useless User’s Guide

The Commodore 64 computer was first released in late 1982, so that marks its 40th anniversary. That’s why I didn’t want to make this post earlier in the year.

I’ve read lots of stories about The fortieth anniversary of the Commodore 64.

Unfortunately, these articles mainly feature games to the exclusion of all else!

The Commodore 64 was marketed as a computer, not just a games console. I got a Commodore 64 in 1984 mainly as a COMPUTER, not just for playing games. 

I was living in the UK, where computers from various countries around the World were sold. These included the UK, the USA, Japan, and Hong Kong. No home computers from elsewhere in Europe were being sold in the UK at that time, though. There was no sign of Thomson (France), Triumph Adler (Germany), and Olivetti (Italy) was definitely business only. If I’d lived in the USA, then I’d have had much less choice, because nearly all the computers being sold there were from the USA, or had limited distribution (e.g. BBC Micro, Memotech MTX), due to trade restrictions.

I made a shortlist of computers which had sound synthesizer chips that were at least 3 note polyphonic, instead of just a tone generator or beeper. I should explain at this point that a synthesizer is a device that can be programmed to produce an infinite range of sounds, and polyphonic means the ability to play more than one note at a time. I did this to kill two birds with one stone, because I also wanted a synthesizer. These computers included the Atari 400, Atari 800, Atari 600XL, Atari 800XL, the BBC Micro, Commodore 64, Memotech MTX, Oric 1, and the Oric Atmos.

Unfortunately, it was my Dad who made the final decision about which computer to buy, although he was only LENDING me the money. He hadn’t read anything about computers except how many K (Kilobytes) of RAM memory different models had. His attitude was like he was buying a washing machine, or a video recorder, which would all do basically the same things. He was also quite miserly and wouldn’t buy a BBC Micro for £399 when there were plenty of other computers like the Commodore 64 available for £200 or less. 

My stupid Dad with his ITA (Ivory Tower Attitude) or IKBA (I Know Best Attitude) approved of the Commodore 64, because “At least it’s 64K!”, “Atari is mainly games”, and he thought the Sinclair ZX Spectrum was crap because of its calculator style keyboard as well as because “Word processing. Word PROCESSING!” was my passport to employment. I didn’t even consider the Sinclair ZX Spectrum because it had only a single channel sound beeper. 

After spending months studying my Commodore 64 at home and at a local computer club, I eventually found out that what I’d ended up with was a device that was virtually impossible to program for anything except displaying text and graphics characters using its built in version of the BASIC programming language, although almost all other computers sold for under £500 had their own customised BASIC built in on ROM to support their graphics and sound hardware.

I think the only “home computers” lacking this were the Jupiter Ace with its FORTH language, and the Sharp MZ80K which had to load BASIC from cassette every time. The Atari 400 and 800 computers had no language built in, but were often supplied with the Atari BASIC cartridge and if not, then Atari users could easily buy this cartridge, which contained what was considered to be the standard BASIC for the Atari 8 bit computers.

My amazing three channel synthesizer chip could only play one channel tunes in BASIC, because using two or three channels meant that the three channels were out of time with each other. I’d also sacrificed most of the things I wanted to do on a computer just to get that three channel synthesizer chip!

My plan before buying a computer was to use music I’d written in the built in BASIC in any program I might write. This proved to be impossible for me to do on the C64. I soon read about a special music programming language called “Synthy”, then eventually bought some software called “Multisound Synthesizer” from Commodore’s VICSoft mail order company. Unfortunately, this software wouldn’t load! I asked for a replacement, but all I got was a refund! Even so, there seemed to be no way of incorporating music from any software package in my own BASIC programs.

As for my Dad’s saying “At least it’s 64K!” that wasn’t right either, because there was only 38K free to BASIC! To access any more than 38K I was supposed to either use commercial software written by other people or learn an obscure language called Assembly Language or Machine Code, which wasn’t supposed to be for beginners. The alternative was an “extended BASIC” such as Turbo BASIC, Simons’ BASIC, or Ultra BASIC, which severely limited the market for your programs because they required the Copyrighted extended BASIC to run. Also, not all that many third party books or articles about programming in these extended BASICs were written. One exception was INPUT magazine. I really wish I’d read Issue 3 of INPUT magazine before going shopping for a computer, because that issue revealed just how crappy the Commodore 64 was, when they said that a simple BASIC graphics program couldn’t run on the Commodore 64, although they printed versions for the Acorn Electron/BBC Micro, Dragon/Tandy computers, and the Sinclair Spectrum. There was no easy way of doing this on the Commodore 64, or Commodore VIC-20! Of course, the Sinclair ZX-81 had no colour or graphics at all.

After all this, as well as doing a lot of research, I ended up selling my Commodore 64, then buying an Amstrad CPC664 with a colour monitor. This time I knew exactly what I was getting! It had an advanced BASIC, a built in disk drive and even came with the LOGO programming language, and CP/M 2.2 OS, which the C64 could hardly run at all, because Commodore’s official CP/M cartridge was crap!

Unfortunately, the CPC664 was discontinued after only a few months, replaced by the CPC6128,  although the older CPC464 was allowed to continue. All three computers were mainly compatible, except for software which required the later CP/M Plus OS, itself needing 128K to run. Third party RAM upgrades were available. I bought one of these and got a copy of CP/M Plus much later. 

The Commodore 64 was planned as a hastily cobbled together computer, by the total con man Jack Tramiel. I heard his motto was “Business is war!”

The Commodore 64 was largely based on previous Commodore computers. It had the Commodore KERNAL OS on ROM, virtually unchanged since the Commodore PET/2000. It also had Commodore BASIC V2, with the same commands as the PET/2000 and the VIC-20, without any commands for colour, graphics, or sound, and not even a PRINT command which could set the vertical as well as the horizontal position, or the ELSE command! The limited PRINT command really made life difficult for starting to program simple games in BASIC.

The BASIC was also too slow to play three channels of sound with notes on different channels keeping time with each other! This crappy BASIC was because another quote from Jack Tramiel when asked by Microsoft in 1976 to pay a $3 fee for each computer he sold with Microsoft BASIC installed was “I’m already married!” Instead of this, he paid $25,000 for a “perpetual license”. This meant he could use it on as many computers as he liked for as long as he liked. Bill Gates and Microsoft probably thought he’d come back to them for an upgraded version 2-3 years after that, but this total miser never, ever did!

Jack Tramiel left Commodore in early 1984, bought Atari’s computer division from Warner Brothers, then went to Metacomco to get them to create ST BASIC for his Atari ST computers. People in general didn’t like ST BASIC, but at least it was on disk instead of ROM, so it was easily replaced.

Meanwhile, Commodore finally went back to Microsoft to get an up to date BASIC created for their new Amiga computer, released in 1985. The Amiga’s design and technology was nothing like the Commodore 64, but was descended from the amazing Atari 400/800 computers, which were years ahead of their time when released in 1979. Both the Atari and Amiga computers had a special display processor with direct memory access (DMA) to the video memory. The Ataris used the Antic chip, while the Amiga used its Copper. This meant they could both create custom display modes using lists. The Atari used Display Lists, while the Amiga used Copper Lists. Both of them had a lot more colours than other computers when they were released. Atari had 128 colours (later increased to 256 with a chip upgrade, which could even be fitted to older Ataris as an upgrade), while the Amiga had 4,096 colours (but couldn’t be upgraded to more colours). Both these computers had FOUR channel sound instead of three channel sound.

This new Commodore deal with Microsoft also meant a credit for Microsoft on the boot screen of their new Commodore 128 computer. Unfortunately, Commodore still refused to release a ROM update to the BASIC in their Commodore 64 computer! They should have just killed the Commodore 64 in 1985 and replaced it with the Commodore 128, along with a price cut for the C128 not long after that, but they were too greedy and irresponsible. They also had poor management of their funds, throwing money away.

Apart from BASIC, some other corners were cut on the C64. These included limitations called attributes, colour bleed, or colour clash, where if more than 1 (hires mode) or 3 (lores mode) foreground colours were used in each character square, one of the colours already there would change, making the hires mode with 8×8 pixel character squares similar to the Sinclair ZX Spectrum. This meant that most games used the rough 160×200 pixel lores graphics. The official disk drive system was painfully slow, which was something to do with it being a serial device instead of a parallel device. Even loading software from cassette could be faster than disk! Apart from this, there was no reset switch, and no internal speaker, so sound might be distorted, which it WAS on my C64, as it had to go through the TV, monitor, or a hi fi system.

So, to sum up, getting a Commodore 64 was one of the worst disasters in my life, like getting a tooth knocked out at school. Crappy Fortieth Anniversary!

Posted December 31, 2022 by C64hater in Uncategorized

HAPPY 40th ANNIVERSARY TO THE SINCLAIR ZX SPECTRUM!! – PART 1   1 comment

HAPPY 40TH ANNIVERSARY TO THE SINCLAIR ZX SPECTRUM!! – PART 1

The Sinclair ZX Spectrum

The Sinclair ZX Spectrum is now celebrating its 40th anniversary!

It was basically the next logical step in Sinclair’s progression, following the ZX80 and the ZX81. It was based on the same basic design, meaning a Z80 processor and a cheap keyboard with single BASIC keyword entry by pressing single keys or a combination of keys, instead of typing the commands in letter by letter like on most other computers. It added more RAM, colour, hires graphics, and a slightly better keyboard to the ZX81 design, backed up by the extra BASIC commands to make use of the colour and graphics.

A large part of the Sinclair ZX Spectrum’s appeal was its price, undercutting almost every other computer on the market, like the ZX80 and ZX81 before it.

As it was so popular, lots of companies started making upgrades for it. These included proper keyboards, three channel sound synthesizer chips, and disk drives.

Sinclair BASIC commands for colour are
ATTR, INK, PAPER, FLASH, BRIGHT, INVERSE, OVER, BORDER

The commands for graphics are
PLOT, DRAW, CIRCLE, POINT

For more information about Sinclair BASIC, see the manual on https://worldofspectrum.net/ZXBasicManual/index.html

Unfortunately, Spectrum graphics suffered from “attributes”, dot creep, or colour bleeding. This meant there was only one foreground colour and one background colour allowed in each 8×8 pixel square. This meant that with Spectrum games, large parts of the screen had the same foreground colour. For more details see

Spectrum programmers were trying to develop techniques to override this limitation and it seems some of them succeeded, but I’m not sure where to find examples of this. You may find some on
https://zxart.ee/eng/graphics/top-rated/

The Commodore 64 also suffered from this limitation in its hires 320×200 mode, though, which resulted in most C64 games being in the rougher 160×200 lores mode.

The Spectrum had just one sound command called BEEP , but this enabled Spectrum users to compose simple little tunes with one channel of sound. It was a bit like a Stylophone, a flute, or a recorder.

Just these 13 commands were enough to make the Spectrum a completely different kind of computer from the Commodore 64! Spectrum users could learn to do things first in BASIC before learning some Machine Code to do the same things faster, but Commodore 64 owners couldn’t do that, because Commodore BASIC V2 commands didn’t support colour (except for text), graphics, or sound.

The Sinclair ZX Spectrum was never released in the USA. Instead, there was the Timex Sinclair 2068, which was based on the Spectrum, but not compatible with most Spectrum software. I think it also had an additional hires graphics mode, which didn’t have the attributes, dot creep, or colour bleeding.

http://rk.nvg.ntnu.no/sinclair/computers/timex/ts2068.htm

A lot of Spectrum clones were produced, especially in Eastern Bloc/Warsaw Pact/Comecon countries, but not so for the C64 because it used custom chips. Spectrum DIY clones are still being produced.

Posted April 23, 2022 by C64hater in Uncategorized

FIXING THE COMMODORE 64   8 comments

FIXING THE COMMODORE 64

Recently, I found two videos on YouTube about third parties’ attempts at fixing the Commodore 64 which were done decades ago. Of course, Commodore couldn’t have cared less, OR they COULD have cared less, depending on where you’re from!

Jack Tramiel and his sons Sam Tramiel and Leonard Tramiel were involved in a conspiracy to con people that they were buying a computer with similar capabilities to other computers on the market in the time period 1982-1984 when they left Commodore after their investor financier Irving Gould told Jack Tramiel that his sons couldn’t join the board and/or inherit the company. The damage had already been done to unsuspecting members of the public, then people like me bought a Commodore 64 after the Tramiels had left Commodore!

Jack Tramiel cut corners on the BASIC language and KERNAL ROM OS in the C64, but not on its hardware, except for the hi res graphics mode which had colour bleed or attributes, to save on RAM in a similar effect to the Sinclair ZX Spectrum. Due to this, most C64 games used the blocky 160×200 multicolour mode. This software or firmware had the effect of crippling the C64! He left other people to sort out his mess. This resulted in a slew of extended BASICs on the market, each with their own set of commands, while nearly all the books and magazine articles about programming the C64 had to use the standard Commodore BASIC V2, because that was the BASIC every C64 owner had. 

The Commodore BASIC V2 built into the C64 is on an 8K ROM and the KERNAL is on another 8K ROM. By the time the C64 came out, other computers like the Tandy “Coco” Color Computer were using 16K versions of BASIC, though. MSX computers released In 1983 had a total of an amazing 32K built in on ROM for not only the BASIC, but their OS routines, which were extensive, containing commands and routines for colour, graphics, and sound. Unfortunately, they also suffered from some hi res graphics colour bleed or attributes, but this was only in horizontal groups of 8 pixel areas, instead of 8×8 pixel squares. 

I found two stories about classic attempts to  fix the C64 recently. These were in videos by “8-Bit Show and Tell” and “Computer Archeology” both on YouTube. 

MASTEROM

The YouTube channel “8-Bit Show and Tell” discovered MASTEROM by Norland which replaced the C64 BASIC ROM, containing some new commands. I didn’t see any demonstration of any colour, graphics, and sound commands which C64 owners were crying out for, but they did give an explanation of how the extra commands had been added. Unfortunately, the undersized 8K Commodore BASIC V2 ROM in the C64 had routines for using cassettes as well as disks built in, although most users would probably only want to use the cassette OR disk routines, but not both of them, unless they were copying cassette software to disk, disk software to cassette for poorer C64 owners, or producing software for sale on cassette. 

I only ever used the cassette routines because the Commodore 1541 disk drive cost more than the C64 itself and my Dad only bought me a C64 in the first place because he was a miser, and definitely a Philistine as well! I should explain that this expression applies in cases such as buying electric guitars and computers. Why buy a computer for 399 of your local currency units when you can buy another computer for 199 local currency units instead? There were also copies of famous makes of electric guitars available for 200 local currency units, so why pay 400, 600, or more for them? The answer of course is that you’re not buying a washing machine, so you need to read up on the subject first before buying, or take the advice of someone who has read up on it, which in this case was me! In the MASTEROM featured in this video, Norland deleted the cassette routines, then used this space for some extra commands!

BASIC 3.5 on the C64

Another fix, explained in this Italian language video, is software only, not on ROM, but it seems to work well. It’s BASIC 3.5 for the C64! This is the version of BASIC built into the Commodore 16 and Commodore Plus/4 computers. 

I was once feeling so desperate that I nearly sent Commodore a begging letter asking them to exchange my Commodore 64 for a Commodore 16! This was so I could do some things which I thought at the time were amazing, such as drawing lines on the screen and playing simple tunes with more than one of the three sound channels running at the same time. 

Unfortunately, the Commodore 16 and Commodore Plus/4 lacked a synthesizer chip and sprites. They only had a 2 channel tone generator and some kind of user defined graphics which could be made by copying something the user had drawn on the screen, a bit like a Blitter chip without the Blitter! Not only that, but I heard that the business suite of programs built into the Plus/4 required a disk drive to save files! 

I first heard of an extended BASIC for the C64 which was “language compatible” with BASIC 3.5 in 1985 before I sold my C64, but this product featured in an Italian language video is from 1990, supplied by the German 64’er magazine, which I’ve previously mentioned in this blog. 

Commodore made up what other people considered to be the “funny Commodore dialect” of BASIC. This probably started with their own filing commands, meaning OPEN and CLOSE used with lots of numbers followed by the VIC-20 Super Expander cartridge. The Commodore unique commands for colour, graphics, and sound included GRAPHIC for screen display modes (similar to the Atari BASIC command GRAPHICS), SCNCLR to clear the screen, but the commands CIRCLE to draw circles, and DRAW to draw lines were similar to the BASIC dialects by Sinclair and Acorn for example. 

In this Italian language video about BASIC 3.5 for the Commodore 64, I can tell you that first of all a programmer gives a running commentary on various non graphic, non sound based commands which are for program control, as well as decimal to hexadecimal (and vice versa) conversions. There’s no mystery in the video what he’s talking about up until at least 24 minutes 37 seconds and even 38 minutes in. Finally, at 38 minutes 36 seconds into the video he starts demonstrating the all important graphics commands which made C64 owners like me drool at a computer club when I saw commands like this being used on other computers, such as the Sinclair QL from over the other side of the room.  At 51 minutes 30 seconds into the video he demonstrates the built in Machine Code Monitor which would have made such a big difference if it had been included in the C64! I never, ever programmed in Machine Code or Assembly Language on the C64, I only read about it, but didn’t bother to buy an Assembler, thinking instead that a book which was cheaper would solve all my problems with this computer.  

So, to sum up, what this all means is that the Commodore 64 can be fixed, but this fix must be internal, with software or firmware on an internally fitted ROM. The size of the ROM might have to be 16K, but I’m not sure if or how that’s possible. In later C64 models the BASIC and KERNAL were combined onto a single 16K chip, though. Another idea might be to wire the replacement internal 16K ROM up to the cartridge port, disabling it. I never, ever used any cartridges when I owned a C64. The replacement ROM might have a dipolar switch or a keyboard combination to select it or the original C64 BASIC and KERNAL, possibly re enabling the cartridge port if it wasn’t selected. 

Posted January 9, 2022 by C64hater in Uncategorized

MAKING FLOWCHARTS – PART 1   5 comments

MAKING FLOWCHARTS – PART 1

A flowchart about preparing a bath

I first heard about designing computer programs by making flowcharts at my local computer club, then I found out more by reading some books which I can’t remember the names of now. 

This was followed up in the torturous course “An Introduction to BASIC” for the Commodore 64, published by Commodore themselves, so this means it certainly applies to the Commodore 64, as well as to better thought out and designed computers, such as the Apple ][ , Atari 400/800/XL/XE, BBC Micro and Acorn Electron, Dragon computers, Memotech MTX, MSX computers, Tandy Color Computer, Thomson computers, etc, etc.

The whole idea behind flowcharting according to the great author Rodnay Zaks (Programming the 6502, Programming the Z80, Programming the 68000, etc) is that about 90% of people need to make a flowchart in order to design and keep track of a program, although 10% of people don’t. Unfortunately, most people think they’re in the 10% of people who don’t need to do this. Not only that, but for other programmers trying to follow or modify the program later on, the lack of a flowchart makes it very difficult to do. 

The symbols used in flowcharts may vary slightly according to where you read about them. As far as I remember, the symbols used are a circle or a sausage shape for the beginning as well as for the end of a program or part of a program shown in isolation, a square for a stage a program has to go through, and a diamond for a stage where a decision has to be made. You have to write inside each symbol a short description of the action that’s going on at that stage. Apart from this, the symbols have to be connected by lines with arrows showing how to get from one of them to the others, which is called logic flow. 

A flowchart about controlling heating

When I first heard about flowcharts, I also read that it was best to make them on the back of old envelopes, but I’m not sure about that! 

Nowadays, some new symbols seem to have been added to flowcharts, but you can believe me when I say that you only need circles, squares, and diamonds. 

This is all you need to know to start making your own flowcharts!

Posted October 25, 2021 by C64hater in Uncategorized

RIP TMR!   2 comments

(It’s been some time now since I made a post on this blog. This was due to a Commodore 64 program conversion problem which I couldn’t solve)

 

TMR AT DEATH’S DOOR

I’d just like to say RIP (Rest in Peace) to my opponent TMR/Jason Kelk. He died in hospital in Leeds, UK, where he was for over 14 months, on June 18, 2021 of his long term conditions Type 2 diabetes and asthma, which were exacerbated by a viral infection, although I don’t know exactly what virus it was. I don’t know where Leeds is anymore, because of frequent boundary changes, except it’s east of Manchester. News reports said he died of “COVID-19”, but this can’t be true because no such virus has been isolated! This means that people talking about “COVID-19” don’t know what it is, except often a convenient label for their purposes, including curfews, house arrest, and forced vaccinations. 

TMR was a maths whiz, which enabled him to deal with lots of numbers such as memory locations on the Commodore 64. Before this, he owned a Commodore VIC-20, which was fairly similar to the Commodore 64 as it contained the 6502 CPU which is almost the same as the 6510 in the C64, the Commodore KERNAL OS on ROM, as well as Commodore BASIC V2, like on the Commodore 64. These factors made it relatively easy for him to program the Commodore 64, but very difficult or impossible for other people like me. 

The COVID-19 narrative was made up by a team at Imperial College, London, UK. They were working closely with their benefactors in the Chinese Government, the British Government, Bill Gates (I liked his earlier work on BASIC for the Tandy, Dragon, MSX, and Amiga computers), and Doctor Tedros of the World Health Organisation (WHO). The main author of this was Professor Neil (lockdown) Ferguson. He previously made up lots of fairy stories, saying that thousands or millions of people would die of BSE/vCJD, SARS, Swine Flu, and Bird Flu. After all these fantasies, I don’t think anyone should believe a single word he says any more! I think he needs a good POKE 53265,PEEK(53265) AND 23 (C64 POKEs to turn off the screen display), which might shut him up!

Meanwhile, as usual, lots of people in the World have been dying. None of them died of “COVID-19”, though. 

As for myself, I was really ill with cold and flu type symptoms in October 2019 (before “COVID-19” started), when I lost my voice for only the second time in my life, but I managed to do some talking, although I sounded like the Speaker John Bercow (Order! Order!!), of the House of Commons, UK, who had been suffering from this illness just before me. Apart from John Bercow, I never heard anything about it in the news anywhere, unlike “COVID-19”.

However, this blog isn’t about TMR, it’s about how the Commodore 64 is crap, due to a poorly thought out design without even a custom BASIC language built in to control its hardware or even any KERNAL ROM routines for colour, graphics, or sound. Some people managed to program it, but not using Commodore’s techniques of PEEKing and POKEing themselves half to death without mentioning that Assembly Language done with an Equates file was easier than trying to do this!! I plan to continue this blog in the same vein. 

If anyone wants to make a comment such as how dare I oppose the COVID-19 narrative and that I’m responsible for various COVID-19 deaths, then please don’t bother. I quite easily dare to oppose it because I’m an INDIVIDUAL who doesn’t believe everything I’m told and I’m not responsible for any deaths. 

Posted October 7, 2021 by C64hater in Uncategorized

OH THAT WOULD BE VERY DIFFICULT! – PART 6   6 comments

OH THAT WOULD BE VERY DIFFICULT! – PART 6


C128 sprite collision 1

Several months ago, I posted here that I was trying to convert a crappy C64 BASIC V2 listing, which contained lots of PEEK and POKE commands, into the much improved C128 Commodore BASIC V7 language, which as you should know from previous posts, documentation in official Commodore manuals, as well as from books and magazines by third party publishers, includes commands for colour, graphics, and sound, which Commodore 64 owners had been deprived of. C64 BASIC contains only 71 commands, while C128 BASIC contains over 140 commands!

Unfortunately, although I seemed to be making progress, I got some unwanted, or even totally weird, effects in my code. I’ve posted some videos here, showing the development process so you can see what happened. I thought there may have been some more videos I made about this, but I can’t find them, so it seems not, because they should all have been automatically uploaded to my Google account, under Google Photos. In this post I may mention something that I attempted to do after making all these videos. This is because the whole process has totally confused me. I eventually gave up, but then people wanted to know what progress I’d made and a possible solution.


C128 sprite collision 2

After extensive research, I think I’ve found out what the problem is. Unfortunately, it’s a problem with Commodore BASIC V7 itself.

During the period after the C64 was released in 1982 with its 1977 style BASIC, other computer desgners (e.g. MSX, Amstrad) started to release versions of BASIC which included interrupt commands. This means commands that constantly monitor the situation, regardless of which other commands anywhere in your program are being executed at the time. Commodore BASIC V7 also includes interrupt commands. The command MOVSPR number, X, Y is a very powerful, interrupt driven command, which will start a sprite moving even in direct mode, without being contained in a program. The problem is that although Commodore BASIC V7 includes interrupt commands to get sprites moving, the way of dealing with collisions is to redirect control to subroutines with the command COLLISION type, line number. The problem seems to be that although this command is also interrupt driven, it needs to redirect control to a line number, can’t override or turn off the MOVSPR command and whatever commands you may include in your subroutine, even when you use another MOVSPR command, aren’t powerful enough to react against the first MOVSPR command, which just continues happily on its merry way! I have done extensive searches, including reading through books on how to program the C128, but haven’t been able to find a single program listing of how to use COLLiSION in a way that would enable this program to work in the same way as on the C64. One game listing I found just stopped and said something like “You’re dead!” when a collision occurred. I eventually came to the conclusion that this would require another routine written in Assembly Language/Machine Code to set up an interrupt, called with a SYS command, which would be constantly checking the situation, ready to redirect control to another Assembly Language/Machine Code routine in the same code that deals with it!


C128 sprite collision 3

I can’t help wondering what happened with Commodore BASIC V7 to cause this problem. I think it may have been yet another case of rushing to release a computer onto the market before development was finished, even though Jack Tramiel left the company before the earlier Commodore 16 and Commodore Plus/4 were released. Unfortunately, he taught the Commodore staff all they knew about business. The C128 development team might have finished work on the MOVSPR number, X, Y command, then been given a deadline by Commodore to have the BASIC completed in time for a show or in tiime to manufacture the first C128 computers.


C128 sprite collision 4

So that’s it, I’m afraid. I can’t find any solution to this problem! Why not try going over the examples I’ve listed on this site? Can anyone reading this provide a solution?

Posted November 30, 2019 by C64hater in Uncategorized