WHY COMMODORE PET AND VIC-20 PROGRAMMERS HAD A HEAD START PROGRAMMING THE COMMODORE 64   2 comments

WHY COMMODORE PET AND VIC-20 PROGRAMMERS HAD A HEAD START PROGRAMMING THE COMMODORE 64

(DEBUNKING “CODE NOTES – TAURUS 2”)

Video

“Sheep in Space” a C64 game by Jeff “Yak” Minter

 

The Commodore PET wasn’t allowed to be called PET in Europe because it was a Philips trademark, so it was often called what it was marked as a model number 20XX, 30XX or 40XX (X meaning any number) on the case. A typical model, as listed in the lying buyers’ guide “The A-Z of Personal Computers” was the Commodore 4016, released in 1980 with a 40 column 25 row screen, built in mono monitor, no graphics except character graphics, a cassette recorder, only beep as audio and 16K RAM, but the model 4032 came with 32K, although their RAM could be upgraded. Of course, some of this information could be misleading or lies, as in their C64 review. I saw this model or similar at about three different educational establishments, finally studying word processing on it using the software “Wordcraft” (featured being pirated on ITV’s Database series in 1984) at a college for the last three months of 1987, before they were replaced with CPT machines with custom portrait style monitors. My opponent TMR of the rival blog http://c64crapdebunk.wordpress.com has had the cheek to claim in his post on https://c64crapdebunk.wordpress.com/2015/12/18/code-notes-taurus-2/ accompanying a demo by famous C64 games programmer Jeff Minter (who programmed games featuring Mutant Camels as well as light synthesisers) that Commodore PET/20XX/30XX/40XX programmers and VIC-20 owners such as Jeff Minter and himself weren’t somehow well prepared for programming the C64 by programming the PET/20XX/30XX/40XX or VIC-20 before. Jeff Minter started using a Commodore PET/20XX/30XX/40XX as long ago as the late seventies, when hardly anyone had a computer, so this means he probably had quite an easy time of it, under no pressure to write any programs quickly to compete with anyone, because there was basically no competition. I don’t even remember hearing about the Sinclair ZX80 until years later, but I did hear about the ZX81.

BTW, I’m sorry for any text in a different colour or videos appearing only as links, but this is due to problems caused by a new WordPress editor. If only they’d stuck with the old one which worked!

 

I think that Jeff Minter is a bit of a mystery, allegedly born in April 1962, but obsessed with “Psychedelic” concepts which were fashionable when he was supposed to be only about 5 years old and the Wikipedia article on https://en.wikipedia.org/wiki/Jeff_Minter claim he was still at some kind of “school” when he was 18-19, but this isn’t likely in Britain where he might have been at a college or university not a “school”. This article also contradicts itself by saying he wrote a game for the Commodore PET in 1979, but only “took up computer programming in earnest” in December 1981-January 1982, and also says that in 1981 he had been studying at The University of East Anglia, then gave up.

Meanwhile, in 1982 me and my Mum ran away from home to get away from the slum my Dad had created with unfinished DIY jobs and hoarding, then we didn’t come back for about six months, so that was a big distraction for me. Luckily for Jeff Minter he got a Sinclair ZX80 and also had at least access to a Sinclair ZX81, Atari 8 bit computers, and a Sinclair Spectrum, all of which he developed software for. TMR even said that the featured Jeff Minter demo “Taurus 2” worked by “adding values together from a sine curve”, as if people who aren’t good at maths would understand how this was done! I’m going to explain why his claim that programming a Commodore PET/20XX/30XX/40XX didn’t help Jeff Minter program the C64 is all lies!

Video

 

https://www.youtube.com/watch?v=bNAS-fJpKaE

A Commodore PET 2001 playing Pac Man and Space Invaders

 

The Commodore PET/20XX/30XX/40XX and VIC-20 use more or less the same BASIC as the C64, although the PET BASIC kept being debugged, but had few if any commands added until V4.0, which were for disk usage. The PET series had no colour or graphics and hardly any sound either. The games that could be written for these computers could only contain mono text and character graphics with beeps, as in the video above. Atari games consoles of the time had colour graphics, but weren’t designed to be programmed by the users. Commodore BASIC supported the PET’s hardware and was a simple introduction to computer programming without having to worry about lots of 5 digit memory locations to PEEK and POKE. BASIC V2 for the VIC-20 and C64 was based on PET BASIC 4.0, but had the disk drive commands deleted, because the evil Jack Tramiel and his cohorts thought that home users wouldn’t need them! They even required disk users to specify the device number 8 because they thought most users would only have cassette drives. In the USA and Germany there were soon lots of C64 owners buying disk drives, but I never met any C64 users who had one.

C64crapPET

A Commodore 4016

 

The Commodore 64 operating system is the Commodore Kernal, built in on ROM. This is a collection of about 39 routines accessed by a jump table of addresses which, as explained on https://en.wikipedia.org/wiki/KERNAL are almost all the same on the Commodore PET/20XX/30XX/40XX range of computers and the VIC-20. None of these routines handle colour, graphics, or sound. I think that Commodore added a few routines for their later computers, meaning that all the PET jump table entries would still work, but there are a few extra routines on the C64, more on the Commodore 16 and Plus/4 and even a few more additional routines on the Commodore 128. A lot of these Kernal Routines are mentioned in the book “Machine Language for the Commodore 64 and Other Commodore Computers” by Jim Butterfield. The Kernal routines on the Commodore 64 are printed in the “Commodore 64 Programmers’ Reference Guide” on pages 272-273 with names and memory locations and some of them are as follows.

CHRIN $FFCF/65487 – input character from channel (e.g. from keyboard)

CHROUT $FFD2/65490 – output character to channel (e.g. to text screen)

GETIN $FFE4/65508 – get character from keyboard buffer

PLOT $FFF0/65520 – read/set X Y cursor position (e.g. how to compensate for the lack of a PRINT TAB(X,Y) command)

SAVE $FFD8/65496 – save RAM to device (e.g. could have been added to useless graphics programs in cassette magazines and type ins that didn’t have a SAVE option)

SCNKEY $FF9F/65439 – scan keyboard

None of these routines would have enabled Jeff Minter or TMR to program graphics and sound demos, but they would have helped them doing some Machine Code programming and encouraged them to learn more. They and other programmers could have specified the X AND Y coordinates for games characters made up of PETSCII graphics characters, then taken input from the keyboard to control them, etc.

Some time ago, I did a few posts about using the built in MONITOR program, on the C128. These were adapted from routines listed in Jim Butterfield’s book “Machine Language for the Commodore 64 and Other Commodore Computers”, which was published before the C128 was announced. In spite of this, the book explained that the Kernal routines were common to all Commodore computers (not referring to any PC clones they’d made, or the Amiga) and that you may just have to relocate where in RAM these routines would be stored and assembled from. I found that the C128 didn’t like the locations given, so I moved them to higher locations and they worked! You can read about this on https://commodore64crap.wordpress.com/2013/10/29/the-commodore-128-the-fixed-and-upgraded-commodore-64-part-2/

That’s all for now! Look forward to some more posts in the very near future, such as another in the series “DRAWING THE LINE”, as well as more development of a game in “OH, THAT WOULD BE VERY DIFFICULT!” I hope to bring these both to a spectacular climax before being evicted sometime in January 2016.

 

Advertisements

Posted December 22, 2015 by C64hater in Uncategorized

2 responses to “WHY COMMODORE PET AND VIC-20 PROGRAMMERS HAD A HEAD START PROGRAMMING THE COMMODORE 64

Subscribe to comments with RSS.

  1. Pingback: Why the author is wrong about the PET and VIC | C64 Crap Debunk

  2. I decided to approve the comment above from TMR and reply in the comments section, rather than write a lengthy de debunk post of it.


    Commodore PET games collection

    Obviously, when I said that Commodore PET and VIC-20 programmers had a head start on programming the Commodore 64, I was referring to them having access to a simple computer which could introduce them to the concepts of programming. It would have been possible for Jeff Minter to create an early version of “Sheep in Space” or any arcade game using character graphics in mono and with only beeps as a sound effect, before taking this basic design then upgrading it by adding sprites, scrolling, raster interrupts, and synthesised sound. I remember seeing a video of Jeff Minter talking about starting to design games just by using graph paper, so this proves that you don’t have to think about sprites or hires graphics to start with. Clicking on the link above should bring up a video which is linked to a total of 87 Commodore PET games showing what kind of games could be created on that range of computers.

    Here’s a video showing a lot of games programmed in the old USSR (Union of Soviet Socialist Republics) or Soviet Union, where the game TETRIS was created. This is relevant because these games all use only text characters in a Russian and English character set, possibly without even any graphics characters, on a mono 80 column B&W display. If you wonder what any of the text says, some words are similar to English with some characters the same as in English, while some other characters are “false friends”, meaning they look like the western/Roman/Latin alphabet, but are pronounced differently. Characters which are the same are A, E, K, M, O, and T. The “false friends” are B = V, H = N, P = R, C = S, X = CH as in Scottish loch. People who know the Greek alphabet will recognise Beta, Gamma, Delta, and Phi. A full explanation of the Russian alphabet is on http://learn-russian-alphabet-starting.blogspot.co.uk/ I really don’t know what kind of computers these games were programmed on, but I suppose they could be running a pirated Soviet version of CP/M, MS-DOS, or UNIX. AFAIK computers which were popular in the USSR included several clones of the Sinclair ZX Spectrum computer, MSX and MSX2 were used in schools, and there were copies of computers from the rest of the World, because the USSR hadn’t signed the International Copyright Convention, so no legal action could be taken by Sinclair or Amstrad about the Spectrum clones, plus the fact that people were getting away with cloning IBM PCs and Apple ][ computers in the western World anyway.

    Of course, with the C64 users were eager to learn how to control the sprites and hires or even lores graphics, but the PET had no such facilities to distract them from designing games. Obviously, it was very difficult to control C64 sprites once they’d been defined and even more difficult to use bitmapped graphics, but on the C64 programmers had to try and do this, otherwise their games wouldn’t be taken seriously.

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s

%d bloggers like this: