Archive for September 2015



Machine Language for Commodore Computers

The best 6502 Machine Language book?

In his latest pro Jack Tramiel, pro C64 propaganda, TMR on his blog “C64 Crap Debunk” made this post , which I’ll now debunk.

I had already said lots of times that I was trying to find out how anyone could have learnt to program the C64 in or before 1985. TMR has previously claimed he did this, but had consistently refused to post a little program or source code on his blog. I was shocked when he eventually posted one in September 2015. The maths obsessed, monolingual TMR then claimed that I am “mathematically challenged” because he has only been giving away source code for twenty years, but I’m trying to find out why I couldn’t learn to program the Commodore 64 about 30 years ago. It doesn’t matter to me that the source code written by TMR was done after that time period, only that he claims to have originally learnt these techniques before I sold my Commodore 64 in March or April 1985.

Of course, I’m not good at maths, meaning geometrical formulae, but I have no problems with arithmetic.

TMR then goes on to claim that a double sized standard C64 font is somehow graphics. Obviously, text isn’t graphics. I think he should consult a dictionary.

As for using development tools running on Windows, Linux, or Mac OSX, this may be OK just to save time, but if it enables the user to do something not possible on an original C64, then it’s CHEATING! TMR still hasn’t explained how he created the double sized C64 ROM font, or how this could be done using only a C64.

Even in 1984-1985 I read about development systems for some popular 8 bit computers running on “business computers” or mainframes, but I didn’t understand the point of them. If programmers preferred to use these systems to create software for the C64, then that might explain why I was having so much trouble on a real C64. I’ll never forget reading that some C64 software was created on the BBC Micro.

TMR went on to say that he first sat down with an Assembly Language book in 1984, but he doesn’t bother to mention the title of the book, which is the most important thing. The best 6502 Assembly Language book is widely believed to be “Machine Language for the Commodore 64 and other Commodore Computers” by Jim Butterfield, as I mentioned in , but as the example programs in this book are designed to run on ALL Commodore 8 bit computers, this means that the book doesn’t deal with colour, graphics, or sound.

I made the mistake of forgetting, or not fully understanding that there is a simple C64 game written in 6502 Assembler in “The Hex Files” Part 9 on the page , probably because I was tired and may have had enough to drink. In any case the full game isn’t listed and explained on that page. You have to download the source code, including game_2.asm, from the link given. Even the file game_1.asm has 235 lines, but only about 25 of these lines are shown on the web page. Reading this file with its many comments then makes it clear that this is a simple game with sprite collisions and joystick control. The end of that page talks about the next instalment and “see you again”, but there are no further instalments on that site.

Of course, this information about techniques of how people could program a simple game on the Commodore 64 has come 31 years too late for me, as well as other people studying the Commodore 64 at the same time. Apart from this, computer manufacturers themselves are responsible for providing documentation about how to program and use their computers. What I mean is that Commodore should have provided Assembly Language listings for simple games and applications in their own manuals! I think it was in about September 1984 that I started visiting lots of department stores to try out BBC, MSX, and Amstrad CPC464 computers. Obviously, most of the the information in the series “The Hex Files” didn’t come from Commodore, so where did it come from?

Don’t forget that when I owned a C64, I started by reading “An Introduction to BASIC”, the “Commodore 64 Microcomputer User Manual” (which was missing when we bought it), and the “Commodore 64 Programmer’s Reference Guide”, so that should have been enough to get me off to a good start. Unfortunately, these books all said that the way to use colour, graphics, and sound on the C64 was with lots of PEEK and POKE commands. The conman running the consumer electronics shop where we bought it gave me the totally misleading answer “It’s EASY! You just use PEEK and POKE commands”, when when I asked how to “access the synthesiser circuits”. Obviously, nothing could be more difficult than using these commands to play music.

Here’s a short, but amazing program, similar to one I wrote shortly after getting my Amstrad CPC664 computer in May 1985. I’d like to see anyone do this on a Commodore 64.





Konstantin Chernenko

Konstantin Chernenko, Leader of the USSR for most of 1984

Finally, the shock news is that on September 19, 2015 I found a routine in a book which draws a line on the C64 screen from corner to corner! Just imagine you’re in a newsagent, or a book shop in 1984, when Margaret Thatcher was British Prime Minister, Helmut Kohl was West German Chancellor, Ronald Reagan was US President, Konstantin Chernenko was leader of the USSR from February 13 that year (replacing Yuri Andropov), 3.5 inch floppy disks were new on the market, and most of the World might be destroyed by a nuclear war with a 4 minute warning, or even a 30 minute warning depending on where you lived. This background almost pales into insignificance for you in your quest to draw a line across the graphics screen of your Commodore 64, something which is child’s play for owners of other popular “home computers” not made by Commodore. You look round at the selection of C64 books available from different publishers trying to find one which will enable you to succeed in your goal. I can’t transport you back to 1984 yet, but one of the books on the page contains this information. Unfortunately, the book talks about saving your files to disk, with some BASIC listings written to save to disk, without any option to save to cassette, which was all I had at the time. In that case when I read the words “save to disk”, not accompanied by “or tape”, then I may just have put the book back on the shelf. I hope someone lets me know when they find it. This quest I’ve set you may sound like mental cruelty, but it’s nothing compared to the torture Jack Tramiel and his co conspirators at Commodore, put me and millions through, even after Jack Tramiel left. My attempts in the series “Drawing The Line” failed to draw the line from the top left to the bottom right hand corner of the screen, because the line ended at a position somewhere to the left of that. Happy hunting!

This blog has no means of funding, I’m actually quite skint or broke, and my life is in danger from eviction by a property speculator, probably taking place in January 2016. If you’d like to make a donation, please send me an email on , then I’ll tell you how to do that.

Posted September 20, 2015 by C64hater in Uncategorized



A little C64 demo which prints a greeting and flashes the border

TMR has had the cheek to try and debunk my last post “TMR GIVES THE GAME AWAY!” in his childish post on

In spite of refusing to list any programming techniques on his blog (apart from one video of a polyphonic piece of music without a breakdown of the program) for three years now, He has also had the cheek to finally claim that he has been releasing source code for nearly twenty years, although when I was looking round to find out how someone might have been able to learn to actually program the C64 if that was their only computer not long after it was released, I couldn’t find any really useful source code and none by TMR.

In his debunk, although there are no graphics in his 20 column scroller, he confesses that some graphics he did for the C64 (I don’t know what graphics he means) “were created with Pro Motion on Windows”, so this is obviously CHEATING, because I’m only interested in what people could have achieved and how it was done with what was available to them up until the time I sold my C64 in about April 1985. I seem to remember reading somewhere at the time I owned a C64 about a technique to create larger text, but I don’t think this was in Assembly Language.

There’s some more source code of another demo by TMR on , which seems to contain a greeting, sprites and music, but I haven’t got my Commodore 128 set up at the moment, so I haven’t run it.

Optical illusion

Are you losing your grip on reality?

On September 1, 2015 I was shocked to find a short Commodore 64 Assembly Language course by TMR (who makes no secret of the fact his real name is Jason Kelk), called “The Hex Files”, which starts on and may have been written in 2004. I think everyone reading this should visit that site and save it to their hard drives before it gets deleted. This 9 part course introduces readers to Assembly Language programming on the C64, as well as including techniques on how to print text on the screen, and even write a scroller, complete with sprites and music! He doesn’t explain what led him to this knowledge, though. Unfortunately, I’m not sure how anyone would move on from just printing or scrolling text, displaying sprites and playing some music. I wonder why the course stopped after 9 parts as well.

Jack Tramiel

Jack Tramiel the main culprit

Obviously, Commodore and Jack Tramiel in particular, f***ed things up pretty badly with the Commodore 64. They should have included documentation with every single Commodore 64 which started off something like “Dear Commodore 64 Owner, I hope you enjoy programming and using your new Commodore 64. Unfortunately, my way of doing business means that I could only justify the expense of including an old version of the programming language BASIC with the Commodore 64, because I got a good deal on it from Microsoft way back in 1977, when computers had only LED, printed out, or at best monochrome screen displays and weren’t designed to play music, although a few people managed this. The improvements we’ve made since then don’t include any commands for writing programs which use the colour, graphics, or sound on your Commodore 64, so you can only use this BASIC to write programs that are text only, although the text can be in various colours. To use 16 colour graphics, play sound effects, music, and lots of other things we at Commodore haven’t even thought of yet, you must learn 6502 Assembly Language. You need a program called an Assembler to bypass your Commodore 64’s BASIC interpreter and write in mnemonics which stand for its native Machine Code language. We have included a simple Assembler on a cassette tape in the package containing your Commodore 64 to get you started. In the accompanying ‘Microcomputer User Manual’ you must read about how to get started programming in BASIC as well as getting started in 6502 Assembly Language. At the back of this book is a list of other books published by Commodore which will enable you to take things further with these languages if you choose to do so. Of course, you may decide not to continue programming, then you can still use programs and games written by other people. Yours faithfully Jack Tramiel”

Commodore never included any such documentation with the C64, so it was not only the crappy BASIC, but also their many convoluted, mind bending, nervous breakdown causing, Commodore BASIC V2 listings, each containing multiple PEEK and POKE commands, to do things that version of BASIC was never ever designed to do, which drove me and others to the verge of a nervous breakdown, making some people lose all interest in programming, or forcing them into selling their Commodore 64 computers to get a computer from another manufacturer complete with a reasonable version of BASIC. I remember my Dad asking me “How is it that some people have managed to write programs for the Commodore 64?”, meaning programs such as anything with graphics, etc which we were talking about. I replied “I don’t know”, then his conclusion was “They must be exceptional”. I now know that it was because they had been given information I hadn’t had. I feel much better knowing that it wasn’t MY fault, but the fault of Commodore, especially Jack Tramiel, for not supplying this information in their manuals. It was also caused by Jack Tramiel being too miserly to pay Microsoft more money or include the Super Expander BASIC, as well as my Dad being miserly by not coughing up £399 for a BBC Micro Model B, which I asked for, saving him about £200, but costing me an unknown amount of money in magazines, books, and software, as well as all the stress involved, to find out what a disaster the C64 was.

As for me, I chose the Amstrad CPC 464 computer (rebadged as Schneider CPC464 in Germany), but then actually ended up buying the improved, short lived, compatible Amstrad CPC 664. The built in Locomotive BASIC had over twice the number of commands as Commodore BASIC V2, and double the size of video RAM, giving it individual pixel clarity, resolutions of 160×200 with 16 colours, 320×200 with 4 colours, and 640×200 with 2 colours, all from a palette of 27 colours.

Now I’m finally going to face moving two desktop PCs around so I can transfer some picture and video files from my mobile phone and compact digital camera onto a computer I built running only the Linux Mint operating system, free of Windows altogether. I have to move two desktop PCs around because I have recently had to use an emulator to transfer some other files under Windows, both my laptop’s USB ports are broken and I can’t afford a replacement. Both my mobile phone and compact digital camera are full up, causing some of the files not to save properly and be corrupted. I can then delete the original files from these devices, creating some space to take pics of my MSX2 computer’s display on a CRT screen. After this, I’ll continue with my series “Oh, that would be VERY difficult!”, showing how bouncing sprites off each other and developing this into a game is fairly easy on MSX computers.

This blog has no means of funding, I’m actually quite skint or broke, and my life is in danger from eviction by a property speculator, probably taking place in January 2016. If you’d like to make a donation, please send me an email on , then I’ll tell you how to do that.

Posted September 17, 2015 by C64hater in Uncategorized

TMR GIVES THE GAME AWAY!   Leave a comment


C64 Programmer's Reference Guide

You won’t find the answers in here!

I’m long overdue with the continuation of my series of articles “Oh That Would Be VERY difficult!”, because first of all I have to copy then delete some corrupted files off my phone and compact digital camera before taking some accompanying pics of the actual BASIC program. This will be posted soon. Meanwhile, here’s a surprise post about a shocking original post by TMR.

I have recently been shocked by the latest post on the blog C64 Crap Debunk by TMR. I couldn’t believe it when I read it after his three years of blogging that the Commodore 64 isn’t a pile of unprogrammable crap because he can somehow program it in Assembly Language/Machine Code. TMR refused to ever explain on his blog how this was possible, but now he has finally posted a video of a vertical scroller with accompanying music on with a link to the source code on , showing how it was done!!!!

Hypno spiral

Did someone hypnotise TMR into this revelation?

I don’t think TMR realised that by posting this, he was giving the game away, letting us into his “tricks of the trade” which he previously refused to give away any information about. Perhaps someone spiked his drink or hypnotised him into doing it. I can assure you it wasn’t me, but congratulations to whoever was responsible. I have saved the source code onto two of my PCs, in case TMR takes it down after it dawns on him exactly what he’s done.

The source code that TMR wrote is 403 lines long, but includes lots of comments. Below is a small portion of it.

; Stop interrupts, disable the ROMS and set up NMI and IRQ interrupt pointers
code_start sei
lda #$35
sta $01
lda #<nmi_int
sta $fffa
lda #>nmi_int
sta $fffb
lda #<irq_int
sta $fffe
lda #>irq_int
sta $ffff
; Set the VIC-II up for a raster IRQ interrupt
lda #$7f
sta $dc0d
sta $dd0d
lda $dc0d
lda $dd0d
lda #raster_1_pos
sta $d012
lda #$1b
sta $d011
lda #$01
sta $d019
sta $d01a

Some binary data, making up the music, as well as enlarged 20 column text (easily available from BASIC on better designed computers such as the BBC Micro, Amstrad CPC, and Acorn Electron) is read in from separate files, so this doesn’t give the reader any real idea how this data was created.

Of course, nothing like this program appears anywhere in the accompanying Commodore 64 Microcomputer User Manual, or the Commodore 64 Programmer’s Reference Guide (which only scratches the surface of Assembly Language), so I have no idea how or where TMR found out how to do this, but I think it may have been something to do with playing around with the more simple Commodore VIC-20, which also had the crappy Commodore BASIC V2, for some time before getting a Commodore 64.

This blog has no means of funding, I’m actually quite skint or broke, and my life is in danger from eviction by a property speculator, probably taking place in January 2016. If you’d like to make a donation, please send me an email on , then I’ll tell you how to do that.

Posted September 16, 2015 by C64hater in Uncategorized



The game "Danger Zone"

The game “Danger Zone”!

I’ve just recently found out that TMR of the opposition blog C64 Crap Debunk has started writing his own original posts instead of just debunks of my posts, so this must be opposed! No mercy will be shown!

In his post “Code Notes – Planet Invasion” on TMR presents a video of a C64 demo, which was produced in 1987. This was about two years after I was pushed to the verge of a nervous breakdown by Commodore BASIC V2, then gave up on the Commodore 64 completely. TMR doesn’t present any evidence that this group started programming the C64 in 1984 or 1985. After I gave up and sold my Commodore 64, some other books and software may have been released to make it slightly easier to program the C64, although of course these were probably all third party books and software, not released by Commodore, the culprits who caused the C64 to be so f*ckin’ difficult to program in the first place.

Hello World in C54 Assembler

How to print “Hello World” in C64 Assembler.

TMR presents the demo “Planet Invasion” by a group called “The Harlow Cracking Service”, as seen in the video . I assume this group was from Harlow, Essex, northeast of Greater London.

Of course, as you may have already guessed, in his post about this demo, TMR doesn’t give a flowchart or list even one Machine Code/Assembly Language, or Commodore BASIC V2 instruction showing how this demo was programmed, so that means he doesn’t actually explain how to program this or a similar demo at all. I think the whole demo would start by opening a graphics screen, but it may only be using character graphics and sprites, so that’s how confusing his post is.

A video of the demo “Planet Invasion”

To cap it all “The Harlow Cracking Service” stole some music by Rob Hubbard, probably because they couldn’t write their own music. I think this was because there are no commands to produce music on Commodore BASIC V2 as used on the C64, so this helped prevent the group from getting used to writing simple little tunes, which would have got them started., They did produce another demo called “The Mad Music Demo” , but on that demo it seems all the music was programmed by Ben Dalglish,, a prolific games music musician who doesn’t seem to have been a member of their group, so they may have stolen his music as well. They also produced a game called “Danger Zone”, also with music by Ben Dalglish.

At the end of the day, the whole situation was caused by Jack Tramiel, whose experiences in concentration camps during WWII had caused him to take the attitude “Business is war!” This made him too mean to pay Microsoft $3 per computer sold for BASIC, let alone the slightly higher price this may have increased to later on.

Of course, the C64 could have been sold in different versions at different prices, one with up to date Microsoft BASIC, one with the crappy Commodore BASIC V2, and one without BASIC. This, with some accompanying notices that the up to date Microsoft BASIC on the most expensive model couldn’t be used to write software for the other two models could have alerted me and other unsuspecting buyers to steer well clear of the Commodore 64!

Unfortunately, I’ve had some technical problems with my camera phone as well as my compact digital camera, but I hope to make another post during the next week, which will be the next instalment in the series “Oh That Would Be Very Difficult!”, so look forward to that.

Posted September 1, 2015 by C64hater in Uncategorized