C64IntroBASIC2Commodore’s course about their crappy antique BASIC

After completing this course, I was totally frustrated, because I still couldn’t use the colour, graphics or sound facilities of my C64. After reading several more books, which I hoped would supply this missing information, I was demoralised, because I realised that the built in Commodore BASIC V2 was totally inadequate to produce hires graphics and sound on the Commodore 64, although almost every other “home computer” on the market costing under £500, or even under £300, in 1984 came with a built in BASIC which could do hires graphics and sound using dedicated commands, instead of resorting to PEEK and POKE and trying to memorise a list of numbers that seemed as long as the contents of a phone book! The only exceptions I’m aware of, apart from portable calculator type computers, were the Sinclair ZX81 (no hires graphics or colour), TI99/4A (no hires graphics or sprites using its built in BASIC), the Jupiter Ace (with built in Forth instead of BASIC), and the Sharp MZ80K (BASIC had to be loaded from tape). This meant that I may as well just have written the names of all the available computers on pieces of paper, put them into a bag or a hat and drawn one out, instead of reading the filthy and obscene lies in “The A-Z of Personal Computers”, claiming that the Commodore 64 was easier to use than the BBC Micro! The chances are that the name of the computer I’d have pulled out wouldn’t have been one made by Commodore, Texas Instruments, or Sharp, so then I’d have been happy. On this basis, the Sinclair Spectrum, as well as the Acorn Electron, Dragon, Tandy, Oric, Atari, and Colour Genie computers all wiped the floor with the Commodore 64!

People who had programmed the Dragon, Tandy, or MSX computers (which weren’t officially available outside Japan until about 5 months after I got my C64), were using Microsoft extended BASIC, so were well prepared to move on to programming applications and games using the very similar versions of Microsoft BASIC supplied with the Amiga, Apple MacIntosh, and PC compatible computers, while the truly amazing BBC BASIC continued on the Acorn Archimedes, then was ported to Microsoft Windows as BBC BASIC for Windows (which also runs under Linux using WINE), and has been reborn as Brandy BASIC for Linux, including the current absolutely astounding Raspberry Pi computer, which was designed to encourage people to learn programming. As for people who managed to learn most of the locations to PEEK and POKE on the C64, these were totally useless on any other computer, except for most things on the Commodore 128 where they could type them into the built in Monitor, or an assembler as decimal, but then they’d be immediately converted into hexadecimal, so they wouldn’t recognise the numbers unless they learnt them all over again in hexadecimal. It seems that most C64 locations when used in Commodore BASIC 7 with POKE commands don’t work on the C128, because of the area of RAM reserved for BASIC 7, as well as the use of “shadow registers”, meaning different memory locations!

This course was called “An Introduction to BASIC”, so you’d think that Commodore would have published a follow up for the C64, but it seems they never did. There was actually a kind of follow up called something like “Advanced BASIC” which referred back to “An Introduction to BASIC”, but this book was for users of the Commodore 128 with BASIC 7, as well as the Commodore 16 and Commodore Plus 4 with BASIC 3.5. Each exercise in this book was marked according to whether or not it was compatible with BASIC 3.5 and BASIC 7, just BASIC 7, or possibly just BASIC 3.5. In general almost all BASIC 3.5 programs which don’t use PEEK or POKE commands will RUN under BASIC 7, but the C128 officially only has the same 16 colours as the C64 and I have yet to see any evidence that it has more than 16 hardware colours, although you can use stipple effects to simulate more colours or quickly alternate between colours to create an optical illusion, so the COLOR commands of BASIC 3.5 have to be changed, as well as the SOUND commands, because the C16/Plus 4 sound chip is very rudimentary compared to the C128 SID chip.

At the end of the day, the course “An Introduction to BASIC” was published by Commodore, so this was their officially sanctioned way of teaching C64 owners how to use the crappy Commodore BASIC V2 they’d lumbered them with, due to the lack of any warnings to C64 buyers. This makes Andrew Colin’s own music notation the officially approved Commodore way to play 3 note polyphonic music on the C64 in Commodore BASIC V2, even though I never read any articles in other books or magazines using this method. The magazine and book listings I found could only play monophonic music on the C64.

As for other methods of playing music on the C64, such as obscure or very expensive music editors, mostly not even available until after I sold my C64 in early 1985, it’s as if you’d bought a washing machine, then someone who didn’t work for the manufacturer told you the manufacturer’s manual was crap, but if you read their book about how to get the most out of your washing machine, including making hardware upgrades, fitting an external control device to override the manufacturer’s controls, and even a new ROM, then your clothes would be much cleaner, last longer, and it could show you how to convert your washing machine into a full blown computer, or even get it to repair worn out clothes!

An amazing musical alternative to Commodore BASIC V2 with all its PEEK and POKE commands is a Music Macro Language (MML), which was developed by Microsoft and used in versions of Microsoft BASIC built in to systems released on the market before or at about he same time the Commodore 64 came out. These systems include the NEC PC-6001 or NEC TREK (1981), NEC PC-8801 or “PC-88” (1981), Tandy “Coco” (model 1 1980, model 2 1983), Dragon 32 (1982), and MSX (1983 in Japan, 1984 outside Japan). There were also similar languages such as Yamaha’s “FM Music Macro” (product No. YRM-11) language on cartridge for their CX5M computers and SFG-01 or SFG-05 FM sound generator modules which could be plugged into other MSX computers, as well as the MSX Audio and MSX Music hardware cartridges with their own MML. The MML syntax enables programmers to define sequences of musical notes as strings. These strings were easy to write, because they used the actual names of musical notes, along with sharps or flats, octave selection with O followed by a number, note lengths AND rests! These could be played either with a command such as PLAY “CDEFGAB” or A$=”CDEFGAB”:PLAY A$ to play a major scale or some other note sequence. It seems this PLAY command only allowed monophonic music until the arrival of the amazing, even more advanced MSX BASIC V1.0, which allowed strings to be separated by commas to play multichannel tunes. Of course, the Commodore 64 required an extended BASIC or a special language like Synthy to do this, but then you couldn’t share your creations with other C64 owners who didn’t have a copy of the same software. Yamaha released a Music Macro cartridge which enabled users of their CX5M MSX music computer as well as other MSX users of their SFG-01 and SFG-05 FM sound modules to program FM sound in a BASIC type language, instead of just the standard 8910 chip sound with the MSX BASIC command PLAY. This Music Macro cartridge could even speak or sing, but only using syllables which exist in the Japanese language, such as YA, MA, HA, WA, NA, RA, BA, FA, KA, SHI, CHI, YU, MU, RU, SU, BU, etc. Unfortunately, I never used the Yamaha Music Macro cartridge on my CX5M, although I did see a demo in a music shop in London’s West End. I think it’s safe to assume this language is quite similar to the standard upgrades MSX Audio and MSX Music. Of course, the important point is that these languages were standard, unlike some obscure pieces of software for the C64 which may have copied them, like xpmck, but I think this was probably released after I was forced out of mind numbing frustration to sell my Commodore 64 in early 1985. Don’t forget, Microsoft never intended their 1977 version of 6502 BASIC to be built in to a computer with colour, graphics and sound, which was released FIVE YEARS LATER!!!! When computers with colour, graphics, and sound started to be released, Microsoft wrote commands to use these facilities.

People in Britain, Ireland, the USA, Canada, Australia, New Zealand and some other countries, could have been programming amazing music on MSX computers with a plug in cartridge containing MSX Audio or MSX Music if not for Commodore’s price war, as well as no Internet and extreme linguistic censorship. These cartridges worked on MSX, as well as MSX2, but MSX2 was never officially released in these countries. It seems a bit like fitting a Soundblaster card to an early PC. This upgraded sound standard was supported by various games, such as “F-1 Spirit: The Way to Formula 1”. Here’s a playthrough of that game, which last for 1 hour 25 mins, but even if you only watch the first few minutes, you’ll soon be able to hear it’s better than the Commodore SID chip. Even MSX1 graphics at 256×192 are better than the C64 and more colourful than the Sinclair Spectrum as well, but this game may be in an MSX2 graphics mode!

MSX2 was available in continental Europe, the Far East, the USSR, and South America. I saw and used some MSX2 computers at a show in Earl’s Court, London in 1985 or 1986 and have never forgotten this experience! They included near photo quality video digitising similar to 16 bit computer quality. I didn’t get a chance to play any music on them, only on a Toshiba keyboard with MSX1, though. These computers’ graphics generally looked better than Jack Tramiel’s Atari ST, were totally superior to the C64, but not as good as the Amiga A1000, although the A1000 was so expensive that not many people could afford it. The Amiga and Atari ST dominated the computer news in the magazine “Popular Computing Weekly”, although most people were still using and buying 8 bit computers.

Unfortunately, I could never even get an MSX2 upgrade kit for my MSX1 Yamaha CX5M Music Computer. I’d probably have had to go into a shop in the Netherlands to find one, because Dutch firm Philips produced MSX computers, but there was no Internet and no Dutch computer magazines available. I wasn’t doing much travelling at the time either. I might have been able to get a Dutch pen pal to buy an MSX2 upgrade kit and post it to me, but they may just have kept the money for themselves instead.

Finally, here’s a video about programming music on MSX, which was actually converted from a C64 tune! The main things to look out for in this video are that, although the start screen says MSX BASIC 2.1 and doesn’t mention any extensions or upgrades, these are contained in the standard MSX Audio or MSX Music cartridge. It starts up with the command CALL MUSIC, which was used on the Yamaha CX5M in direct mode only. On the CX5M it just brought up a screen allowing users to play the FM sound module in real time, without buying any additional composer software. The actual commands used in MSX Audio or MSX Music may be similar to Yamaha’s own “FM Music Macro” cartridge, certainly going beyond the standard MSX BASIC V1.0 Music Macro Language in any case. The commands in this example include PLAY#2 , with a more advanced type of macro than MSX BASIC 1.0 in the strings, and TEMPO$=””. All of this without a PEEK or POKE in sight!

That’s all for this series about “An Introduction to BASIC”. Look forward to another article about programming in the near future!

Posted October 5, 2014 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: