Archive for the ‘Uncategorized’ Category

THE MACHINE LANGUAGE BOOK OF THE COMMODORE 64 – PART 3   Leave a comment

THE MACHINE LANGUAGE BOOK OF THE COMMODORE 64 – PART 3

The_Machine_Language_Book_for_the_Commodore_64

The actual book cover

We’re now really getting down to understanding how the Commodore 64 works and how some people managed to program it, in spite of its totally crappy built in Commodore BASIC V2 language, which had no dedicated commands for colour, graphics, or sound, and didn’t support the Hexadecimal numbering system either, as well as Commodore’s crappy manuals totally leading people off track by telling them to PEEK and POKE to 5 digit decimal memory locations, instead of having the locations stored in files as hex labelled by EQU directives.

This year (2017) marks the 35th anniversary of the C64 being released. It also marks the 35th anniversary of me and my Mum running away from the home my Dad had turned into a slum with lots of unfinished DIY jobs and hoarding. Neither of these events is anything to celebrate, especially as my Mum and me ended up having to return to that slum after only about six months.

Some big news on this subject is that since my last post in this series, the companion disk image to this book has been made available on http://www.bombjack.org/commodore/books.htm , so you should be able to download that and run it on either a C64 emulator, or on a real C64 or C128 using an SD2IEC device. This means it should be possible to use the programs in the book with the exact syntax used, instead of having to convert them for use in another Assembler. In spite of this, readers should familiarise themselves with the syntax of other Assemblers, otherwise they’ll be stuck using the LEA Assembler.

Some more news, is that I’m going to list a few more 6502 Assembler directives, this time from yet another book about 6502 Assembly Language programming. This is called, surprisingly enough “6502 Assembly Language Programming”, was published by John Wiley & Sons Inc, and was written by THREE WOMEN! You can find it on ftp://ftp.apple.asimov.net/pub/apple_II/documentation/programming/6502assembly/6502%20Assembly%20Language%20Programming.pdf and elsewhere if you look round. Their names are Judi N Fernandez, Donna N Tabler, and Ruth Ashley. According to Amazon this book was published in 1983, before computers became really popular and there were a lot of women involved in programming computers before then. The book is about Assembly Language, but not on any specific computer. The Introduction/Preface mentions Commodore, Apple, and Atari computers as being 6502 based and that it applies to all those computers as well as to any other 6502 based computer, so it wouldn’t enable you to write any C64 demos. The Assembler Directives used in this book are called DS, ASC, DFB, ORG, and EQU. The labels used in programs in this book are all in upper case text without any characters to indicate that they are labels. Some examples are how the directives are used are as follows…

DS means Define Storage. This can be for any kind of data. One example of this is DS 10 , which reserves 10 bytes of storage.

ASC stores any ASCII text contained in single quotes. An example of this is ASC ‘WHY’

DFB means define byte. Examples given are DFB 3, $15, 12, 7 and DFB ‘H’ , ‘I’

ORG means where to store your code. An example of this is ORG $8000

EQU means equate or equals. An example of this is VIDEO EQU $D000

So, that’s all you need to know for now! This book has a chapter called “Extending BASIC”, but actually there are no extended BASIC commands in the book. All it shows you is how to pass parameters to a SYS command. This isn’t good, but not as bad as certain people listing a graphics program without any way to save your creations. In the next instalment, I’ll be trying to draw some lines across a C64 graphics screen in 6502 Assembly Language, based on an example in the book. I may even try to animate these lines, but that won’t be according to any mathematical formula, because don’t forget I’m useless at maths!

Finally, here’s some artwork I did in the C64 lores screen mode. No programming was required at all, I just used some software called Multipaint, which runs on Linux, Windows, and Mac OSX. I didn’t spend all that long working on it. It gives you a rough impression of the slum I grew up in, which was in stark contrast to the semi detached house next door. I found I couldn’t convert the original graphics file from .bin or .ocp (Advanced Art Studio) to GIF, JPG, or even BMP, so in the end I had to take a pic of it with my Android phone. I hope you enjoy it! 

C64Slum

Posted June 18, 2017 by C64hater in Uncategorized

THE COMMODORE 64 THE EU AND BREXIT   Leave a comment

THE COMMODORE 64 THE EU AND BREXIT

britainisolated

Britain in isolation

 

At the beginning of 1957, the European Economic Community (EEC) was formed. This group was originally made up of West Germany, France, Italy, Belgium, the Netherlands, and Luxembourg. They were joined in 1973 by Britain, Ireland, and Denmark, then in 1981 by Greece. The following year, the Commodore 64 was released.

 

The aims of the EEC (which later became the European Communities or EC, then later still the European Union or EU) were to prevent another war between its member states, protect them from being threatened by larger countries in the World, as well as to become more or less self sufficient, involving lots of trade protectionism, meaning that although some goods from the rest of the World would be allowed in, most of the goods consumed in the EEC would be produced in the EEC. The Common Agricultural Policy (CAP) made sure that the EEC could feed itself by paying farmers to keep producing as much food and drink as possible, surplus to demand. This created what were called a “butter mountain” and a “wine lake”. Sometimes, the butter had to be sold to the USSR because there was so much of it, but the objective of being self sufficient in food and drink had been achieved.

 

Unfortunately, things didn’t go entirely according to plan. Lots of foreign computers were widely sold in the EEC and at one stage Commodore was the largest supplier. Of course, there were also lots of computer manufacturers native to the EEC, including Sinclair, Acorn, Tangerine with their Oric and Microtan computers, Thomson, and Olivetti. I remember Ian McNaught-Davis (RIP) on the BBC’s Micro Live TV series presenting some charts which showed how there was a lot of trade protectionism in the USA, where European computers weren’t popular and even more so in Japan. I also remember Tony Bastable (RIP) in the ITV series Database reporting from Japan that they couldn’t find a single computer on sale which was European or American. They were ALL Japanese!

 

There is such a thing as non tariff barriers. Some examples of these were France insisting that all video recorders sold there must have SCART sockets, as well as forcing all Japanese video recorders to be inspected by a single inspector to slow them up getting through customs. Obviously, the EEC should have blocked Commodore from ever setting up a subsidiary inside the EEC, then set up some kind of quality control or non tariff barrier to stop Commodore computers from entering the EEC, but they failed to do either of those things.

 

An emulator of the Robotron A5105 computer released in mid 1989 in the final 15 months of East Germany

 

Meanwhile, in the Eastern Bloc, Warsaw Pact, or COMECON countries, western technology was either banned or not allowed to be sold to those countries, so they made their own. Sometimes, these computers were clones or lookalikes of western computers, such as the Sinclair Spectrum, Amstrad CPC, Apple ][, as well as high end IBM minicomputers or mainframes, but produced in the east. Other times they produced fairly original computers, such as the East German Robotron A5105, which was a combination of Amstrad CPC type hardware, that had been upgraded to display more colours (320×200 with 16 colours, 640×200 with 4 colours), but with a BASIC called RBASIC, similar to MSX BASIC. This proved it could be done. A demo disk shows a another  Robotron KC Kleincomputer model, which is just a CPC clone.

Robotron Kleincomputer CPC clone demo disk

 

Meanwhile, the Brazilian government allowed Brazilian companies to copy foreign companies’ designs and sell them in Brazil.

 

A Brazilian computer enthusiast shows off the TK90X Sinclair ZX Spectrum clone

 

The EEC could have made up some rules such as that foreign computers sold in the EEC would have to have a minimum spec before getting a permit to be sold. Computers made by companies in the EEC all seemed to have quite advanced versions of BASIC, so Commodore and Sharp (whose MZ80K had NO language on ROM), could have been required to have the same. Unfortunately, they weren’t.

 

In Sweden there was a quite well thought out computer called the ABC80 https://en.wikipedia.org/wiki/ABC_80  , which came out in 1978. This was based round the Z80 CPU and had its own type of BASIC, which was self compiling, so ran much faster than other dialects of BASIC, at a similar speed to Assembly Language/Machine Code. It also had a bus extension system, allowing it to accept plug in cards. Unfortunately, it didn’t have hires graphics, but these could have been added on a plug in card later on, plus there was an upgraded version for business, called the ABC800, which did have graphics. Unfortunately, this computer wasn’t very successful outside Sweden, which was probably due to Sweden only being part of EFTA instead of the EEC. Similarly, in New Zealand they also developed some innovative computers, such as the Poly-1 https://en.wikipedia.org/wiki/Poly-1  and the Aamber Pegasus https://en.wikipedia.org/wiki/Aamber_Pegasus , which even used a dial to select one of several boot ROMs, but as New Zealand had a small population and wasn’t part of a big integrated trading bloc, they weren’t very successful outside New Zealand, or even at all.    

 

Nowadays, about 85% of countries in the World are either in or about to join a bloc of countries promoting free trade, a common market, or economic and political union. There are blocs in southern Africa, west Africa, east Africa, the Indian subcontinent, southeast Asia, South America, and elsewhere https://en.wikipedia.org/wiki/Trade_bloc

littlebritain

Prime Minister Theresa May leads Britain into isolation

 

The phenomenon known as Brexit is short for Britain exiting the EU. If this mad shit actually happens, then it will mean no free access to the EU Single Market, a lack of resources to design and produce goods, as well as individual consumers in the EU boycotting British goods, which has already started. It can be summed up as “Little Britain”, named after the BBC sitcom. After this, there might actually be a lot of manufacturing in Britain by cottage industries, making copies of foreign computers because most people wouldn’t be able to afford the real thing, the same as happened in the USSR, where there were lots of Sinclair Spectrum clones. Of course, no other countries would buy these goods. The price of computers in Britain has already started to increase, as you can read about on https://www.theguardian.com/technology/2017/feb/16/microsoft-raises-prices-of-some-laptops-by-up-to-400-due-to-brexit?utm_source=esp&utm_medium=Email&utm_campaign=GU+Today+main+NEW+H+categories&utm_term=213681&subid=15597259&CMP=EMCNEWEML6619I2

 

Apart from the above, there could be lots of very cheap and crappy goods flooding into Britain from China, with hardly any restrictions at all. A lot of these goods could lack fundamental features that buyers would automatically think should be included, similar to the BASIC on the C64. Some examples of this from the past are Amstrad video cameras and satellite receivers. In spite of marketing the excellent CPC computer range, Amstrad later brought out a camcorder with no zoom, and no playback through the non existent viewfinder, as well as satellite receivers not designed to pick up more than 16 channels, without decoders, and no facility to tune into audio carriers on different frequencies from the Astra satellites. This was OK for the original unencrypted Sky TV UK package and other channels on the Astra 1 satellite, but required add ons when Astra 2 was launched, as well as when Sky UK was encrypted. I think people should watch out in case China produces a phone which can’t make phone calls, but can only send texts and run apps. Of course, I advise everyone against subscribing to Sky TV, or to unsubscribe if they already do, because it’s owned by Rupert Murdoch, who brainwashed lots of people in the UK into voting Leave, because “When I go to Downing Street they do as I say. When I go to Brussels they usually take no notice”. I think people should just download whatever is on Sky TV that they want to watch from Torrent sites, and subscribe to or build a VPN if necessary to subvert any restrictions on Torrents by their ISP. Also don’t watch Fox productions at all (e.g. 24, (Fear) The Walking Dead, The Simpsons), because Fox is owned by Rupert Murdoch, so they may contain brainwashing and even subliminal messages.

 

Just imagine what a difference it would have made! If the Commodore 64 had been banned in the EEC !

 

Posted February 17, 2017 by C64hater in Uncategorized

MAKING MUSIC – PART 2   Leave a comment

MAKING MUSIC – PART 2

The Batman TV series theme

 

I wanted to make music. I’d tried playing in bands, but the problem was musical differences. I ended up playing with people who badly wanted to sound like someone else instead of doing their own thing.

Eventually, I found out that I could use a computer to play all the instruments. It wasn’t a really good idea on computers which had only three or even four channel synthesizer chips, but the Yamaha CX5M Music Computer was much better with its eight channel synthesizer module.

Software which enabled people to program a synthesizer to play different instrumental parts at the same time was in general called a sequencer. Vince Clarke revealed in the BBC documentary “Synth Britannia” that he left Depeche Mode after finding out that sequencers enabled him to make all the music himself, although he still needed a singer to accompany him. After leaving to form Yazoo, followed by Erasure, his musical style didn’t really change, although you might not agree on that point. As for me, I found that I was up against other musicians determined to just be a pale copy of someone else. It was no good telling them here was a song or some music I’d written, “Now just get on and play it! do as you’re TOLD!” For that, I needed a computer which would obey my commands. I even had a Grandad who thought the solution to this was him having a big win doing the football pools gambling system, after which he said “You’ll get your band”. Perhaps he was thinking of something more like a 1940’s Big Band orchestra, where musicians might have been hired and paid to do as they were told, who knows?

My first adventures playing electric music involved reading the book “Lead Guitar” by Harvey Vinson. This explained to me about the pre Rock ‘n’ Roll music called The Blues, which it said was the ancestor or basis of Jazz, Country, Rock ‘n’ Roll, and later Rock Music, as well as Soul Music. It involved playing musical phrases called riffs over the same old chord sequence called “Twelve Bar Blues” or “Blues Progression”. It can be heard in most 1950’s Rock ‘n’ Roll Music, as well as the 1960’s Batman TV series theme music, and most Status Quo songs. Of course, this same old tune couldn’t carry on forever, people had got sick of it, so that meant I had hardly ever heard any songs which used it. The chord sequence went G G7 C G G D C G D7, with mostly Major chords and a few seventh chords here and there. If you started on another chord, such as E, then it would go E  E7 A E B A E B7, for example. You go up 2.5 tones at first, followed by 1 tone. On a guitar or bass guitar, each fret represents half a tone. It said I was supposed to make up my own riffs from the Major Blues Scale which would fit over the chord progression. These riffs were supposed to be moved across the guitar fretboard as the chords changed. It was totally cliched and had been done to death years before.

“Rock ‘n’ Roll” by Led Zeppelin, a band so derivative that they’ve settled out of court for Copyright infringement at least a few times

The first tune I ever learnt to play by anyone else was “Blitzkrieg Bop” by The Ramones. I started playing it on one string before learning to play it with bar chords, which means chords that can be moved up the fretboard by placing the index finger across all 6 strings. Chords which don’t use this technique are called open chords, meaning some of the strings aren’t fingered at all. “Blitzkrieg Bop” was off their first album “The Ramones” and didn’t feature the Blues Progression, although it contained chords which were the same distance apart, meaning E, A and B. My point is that the chord sequence wasn’t the same. Most Ramones songs were a kind of three chord song, but some of them featured additional chords used briefly and they could all be played using two movable bar chords, based round the open chords E and A, so no problems there after finding out just how to press down the strings with the index finger, which took me a few months.

The book “Lead Guitar” by Harvey Vinson didn’t mention that there were variations  on the 12 bar Blues, such as the 8 bar Blues, or 16 bar Blues, and even 32 bar Blues, which would have made things less monotonous.

 

Funky 16 bar Blues

 

8 bar Blues (2 variations)

A variation on the 12 bar Blues is the song “Let’s Dance” first performed by Chris Montez, which was a hit in 1962 (not to be confused with the David Bowie song of the same name), as well as appearing on The Ramones first album “The Ramones”. As for the 12 bar Blues Progression, it may have helped me learn to play electric  guitar and bass, but I found it was best to forget about it and make up my own chord sequences, like almost everyone else seemed to have done, changing chords whenever I felt like it.

“Blitzkrieg Bop” by The Ramones

There are 12 notes in an octave, including sharps and flats. This means there are only so many combinations of these notes that can be played, which can lead to claims of Copyright theft or plagiarism. Notes which are an octave apart obviously the same note just higher up or lower down. However, the system of dividing a range of frequencies up into 12 notes is totally artificial. There is actually a much larger, some say infinite, range of notes in between two notes an octave apart. These notes can only be played by stringed instruments without frets (e.g. Violins, Cellos, Double Bass, fretless Bass Guitar), employing different tunings, bending strings, or using pitch bend on electronic keyboards, synths, or samplers. Unfortunately, a lot of people, or even most people, are so used to hearing the traditional notes that they might complain such music is out of tune.   

So that explains the basics of how to play music. After that, you need to learn how to apply it on computers.

It’s now 2017, the 35th anniversary of the release of the Commodore 64, which is nothing to celebrate. However, it’s also the 30th anniversary of the release of the Amiga A500, the computer which enabled lots more people to afford an Amiga. Don’t forget that the Amiga has nothing to do with the C64 except that Commodore bought the company. The Amiga is based on Atari 8 bit computers, both projects headed up by Jay Miner (RIP). Unfortunately, the Amiga A500 had no expansion slots which accepted plug in cards, just the less capable side expansion edge connector often used for hard drives, as well as the trapdoor slot for RAM expansions, unlike IBM PC compatibles, the Apple ][, or even early S100 bus systems based on the Altair 8800 computer. This is one reason why it wasn’t more successful. Just imagine how things could have been if Amiga A500 owners could have plugged in an amazing third party graphics card which could have given the graphics edge back to the Amiga over PCs, instead of just keeping up with PCs when the AGA chipset was released. Commodore never upgraded the sound chip at all. As the Amiga developers said “We made the Amiga, THEY fucked it up!”, referring to Commodore as THEY.

 

Posted January 13, 2017 by C64hater in Uncategorized

MAKING MUSIC – PART 1   2 comments

MAKING MUSIC – PART 1

A weird tune I recently created on my new/old Yamaha CX5M Music Computer using the Yamaha FM Music Composer Program

 

After thinking a lot about The Machine Language Book of The Commodore 64, I was writing another post about it, but of course this is a very complicated subject, so I didn’t know how to finish it. I was also involved in political campaigns for the Mayor of London and Greater London Assembly (GLA), as well as the EU Referendum. I was devastated and sidetracked by the leave result, which means the abolition of the UK/Britain, serious isolationism for England and Wales and that I must leave the country ASAP. Then, I got an email asking if I was alright and when I’d make another post. My answer to that was I was still alive, but basically that I didn’t know when I’d make another post. Now, after over three months without any new posts, I decided to do this post instead.

 

Making music was one of the reasons I bought a Commodore 64. It was one of the computers described in that lying buyers’ guide “The A-Z of Personal Computers” as containing a 3 channel synthesizer chip. This detail was true, but of course there was a catch. After I found out that some computers had built in three channel synthesizers, while other computers only had tone generators or beepers, I decided to go for a computer which did have a synthesizer chip. This more or less limited my choice to one of the range of Atari computers with FOUR sound channels, the BBC Micro, the Commodore 64, the Oric-1, a Memotech MTX, or the Texas Instruments TI-99/4A. When I was choosing one, I didn’t know about any upgrade peripherals which could add a synthesizer chip to any of the other computers. I was disgusted when I found out I could’ve bought a peripheral for the Sinclair ZX Spectrum which added such a chip. Of course, there were also replacement keyboards for the rubber calculator key ZX Sinclair Spectrum, which would have shut my Dad right up with his saying of “Word processing. Word PROCESSING!”

 

The Commodore 64 seemed to have everything I needed, although I knew I didn’t really need 64K, because plenty of computers had less than that amount of RAM. It had a three channel synthesizer chip, came with “BASIC” built in, and had a good amount of software widely available for it. I thought the Commodore 64 came with everything I needed to play music on it. I was shocked to find out that it didn’t. After that, I bought an Amstrad CPC664, then started to have lots of fun drawing lines across the screen and playing simple tunes.

 

About two years after buying a C64, in early 1986, I bought a Yamaha CX5M Music Computer. This computer was part of the MSX standard, which I’d read a lot about, but I knew it contained an FM Synthesizer Module, which wasn’t part of the MSX standard. I was previously told in a music shop (i.e which sold musical instruments) that the Yamaha CX5M is a true musical instrument, but the Amstrad CPC wasn’t. It came with everything needed to play music on it. Built in was a non standard MSX command CALL MUSIC. The command CALL on MSX always refers to something contained on a ROM other than the MSX BASIC ROM. Typing this in at the MSX BASIC 1.0 Ok prompt turned off MSX BASIC 1.0 and brought up a page allowing the user to control the FM Synthesizer Module enough to play music. It even allowed the user to save or record the data to cassette or cartridge, although I never used this facility, I only recorded compositions from the FM Music Composer, and the DMS-1 cartridge. A synthesizer is called that because it can make up or synthesize an almost infinite range of sounds. An electronic keyboard is stuck with a fixed number of sounds. A synthesizer doesn’t actually have to have a music keyboard built in either. The FM Voicing Program was what enabled me to make up my own unique sounds.

 

I originally learnt to play music on an electric guitar and bass guitar, after playing only a few notes and a couple of short tunes on pianos. The electric guitar and bass seemed a better way of making music. I first learnt to play my first tune written by anyone else on just the sixth (i.e. the thickest) string before learning to play it using bar chords, meaning that the first finger is placed across all the strings, allowing guitarists to play the same chord shapes for Major, Minor, Seventh, Ninth, Minor Ninth, Diminished, etc chords at any fret, meaning root note, on the guitar.

 

One problem with that was the need to find other musicians who would agree exactly with my musical style, have the right image, etc. The CX5M made that unnecessary.

 

Unfortunately, I couldn’t make much use of the knowledge I’d gained from playing guitar and bass, because I was suddenly given only the choice of playing on a piano type keyboard, or inputting notes using the computer keyboard. There was no way to hook up a guitar to the CX5M via MIDI. There may have been MIDI guitars and MIDI guitar adaptors, but unfortunately, due to a design fault, MIDI IN on the original CX5M SFG-01 FM Synthesizer Module didn’t work! This meant I was stuck with the music keyboard and the computer keyboard.

 

I managed to compose several tracks on my trusty Yamaha CX5M, as well as input some sheet music and play it back. After that, I got sidetracked, as follows…

 

The Soho Roses’ final gig, in 1989 which I went to, showing the guitar based Glam/Sleaze or Glam/Trash Rock with accompanying fashions and lifestyle

 

About two years after buying the Yamaha CX5M, I experienced the attitude, as mentioned in the BBC Documentary “Synth Britannia” that synthesizers had gone out of fashion and guitars were back in fashion. In my case it was about being part of a close knit group or cult, based on a personal recommendation from someone I met. There was a lifestyle attached to that, with lots of gigs and some clubs, although I hadn’t been going out much in the period just before that, because it seemed there was nowhere to go and nothing to do, or anywhere I could go was totally out of fashion, due to the rapidly changing and cliquey attitude associated with the music. This made me go back to playing the electric guitar again, which I hadn’t forgotten how to play, as well as to neglect and even stop playing the CX5M altogether.

 

Synth Britannia (BBC)

 

Some time later, I answered a Musicians Wanted ad as a guitarist. The ad was placed by a female singer. We got together and formed the nucleus of a band. She also told me about a vacant flat, which was how I got my first flat. The two of us tried recording vocals, guitar, bass, and drums, in my bedroom, as well as in rehearsal studios onto a four track Fostex machine, which used the then standard compact audio cassettes as one sided instead of two sided. These recordings were all quite distorted, though. Unfortunately, we never managed to get any more members, or at least not permanent members. I could have programmed my CX5M to play the missing instruments of bass guitar and drums, but that was totally disapproved of in this scene, so we needed people to play bass and drums live, but I tried and failed to program convincing electric guitar type sounds on the CX5M. The main problems we faced were other people not wearing the right clothes and not having the right hairstyles, as well as the people we saw at gigs and clubs not being able to play any instruments, or already being in a band. I was driven in desperation to teach a woman we’d met who had “the right image” to play the bass guitar. Unfortunately, although she actually went out and bought her own bass guitar, she wasn’t dedicated enough to learning. She was from northern England, but living in London with her family. She kept hanging round with people visiting London from northern England, then later on complained that she didn’t have any friends in London, so she decided to go back up north! If we’d all been squatting together instead, then I think things would’ve been different.

 

As for the very short track at the start of this post which I composed on my new/old Yamaha CX5M, I should explain how I did it. A well known mnemonic (i.e. memory aid) to learning standard music notation is that the lines on the treble clef stave are, from the bottom to the top, “Every Good Boy Deserves Favour”. The spaces in between can be remembered by the word “FACE”. The bass clef stave is different, so I made up my own mnemonic for the lines, which is “Good Boys Deserve Favour Always”. You might like to make up your own mnemonic for the spaces in between, with the notes ACEG. Although I know what kind of sound one note followed by a particular other note will make, I decided to input all the notes on the treble clef without thinking how they’d sound. This created a different type of tune, which I think has given me my inspiration back to create more tracks. Unfortunately, my creativity was sucked dry a few years ago after being granted so many free recording sessions that I just couldn’t think of any more tunes. Of course, bands like 1950s Rock ‘n’ Rollers, or Status Quo would just have done more riffs based on the Blues Progression.

 

That’s all for now! You can look forward to another post about making music, or about “The Machine Language Book of The Commodore 64” in the near future.

 

Posted September 3, 2016 by C64hater in Uncategorized

THE MACHINE LANGUAGE BOOK OF THE COMMODORE 64 – PART 2   1 comment

THE MACHINE LANGUAGE BOOK OF THE COMMODORE 64 – PART 2

The_Machine_Language_Book_for_the_Commodore_64

The book in question

 

Now for another instalment about this amazing book, which wasn’t published or promoted by Commodore at all, but I think copies should have been given away with every Commodore 64 sold. At the very least, I think Commodore should have included a business reply card in each C64 box saying something like “Are you serious about programming your C64? If so, then you need this book! Please register your C64 with Commodore within 28 days of purchase to get a copy of this book at the discounted price of… Meanwhile we hope you enjoy using the built in Commodore BASIC V2, which is designed to produce text based applications only”. This card could also have mentioned some other amazing books by Data Becker/Abacus and by Compute! , where the exclamation mark is actually part of the name.

As I pointed out in the last post of this series, I couldn’t get the LEA Assembler I typed in to work, and couldn’t find a working copy of it for download either, so this means that I’d need to alter the Assembler Directives and syntax slightly to get any of the code in this book to Assemble and run on another Assembler.

The Merlin 64 Assembler seems to be a popular Assembler for the C64. I managed to download a PDF of this, which says that it was published in 1984, so that means I could have bought a copy while I owned my Commodore 64. The Table of Contents lists the Pseudo Opcodes or Directives as EQU (=), ORG, PUT, VAR, SAV, DSK, END, DUM, and DEND. It follows these up with lists of commands for what it calls formatting, strings, data and allocation. Some of these may be necessary, such as TXT, ASC, and .DFB, so I’ll look at the Directives and those other three commands first, then may come back to the several other commands listed in the manual later. The Directives are used as follows. Label EQU expression , or label = expression. Another one is ORG expression , which the manual explains is $8000 by default. This is much lower than the commonly used $C000 which LEA seems to use by default. PUT filename allows the user to place a filename in RAM for assembly at the location of this opcode. DSK filenme will assemble directly to disk. END denotes the end of your source file. TXT “ABC” will Assemble ABC as Commodore PETSCII, but ASC “ABC” will Assemble ABC into standard ASCII. It seems that DFB can be followed by any one byte long numbers or text, or even a list of these separated by commas.

The Machine Language Book of The Commodore 64 doesn’t list any Directives in its Table of Contents, so I’ll have to go through it to find out what they are. I’ve already mentioned in the previous post in this series that = is EQU and .EN is END , though. On page 94 it starts by telling us to define a label as some optional text in the first column. The example given is called simply LOOP , which isn’t followed by anything in that column. After this, we can use BNE LOOP to get back there. Labels can have a maximum length of five characters, which is much better than Commodore BASIC V2 limit of two significant characters for variable names. As I mentioned earlier .EN means that your source code ended with the previous line. The Directive ORG , meaning put the code at the following address, doesn’t seem to be needed, because there’s no mention of this or an equivalent in the first few example programs. On page 99, we learn that labels can also be used to stand for addresses in the memory map. In that case they have to be inputted using all three columns in the BASIC V2 editor. An example of this is VIDEO = $400 , which defines the screen memory as beginning at $400 or 1024 decimal. After this, we’re introduced to the use of *= instead of ORG. The Directive *= is placed in the second column, followed by the address $C000 in the third column. The address $C000 or 49152 decimal seems to be the most commonly used location for storing Machine Language programs on the C64, at least while the BASIC V2 interpreter is still turned on. The book explains that 4K of space is available at that location. It seems there’s a lot you can do with 4K on an 8 bit computer. On pages 100-101, we’re introduced to the Directive .BY , where it’s explained that this is used to store data or text which follows it. I think this would be .DFB in Merlin 64, DB, DEFB, or BYTE or some other Assemblers I’ve read about some time ago, but I can’t remember which ones. I think this knowledge may now be enough to convert some listings from this book for other Assemblers! Examples of .BY given are .BY 100 , .BY $7F , and .BY CR , which I think stands for carriage return, but there’s no mention of if or where this is defined. It may be that .BY is more complicated than similar directives in other Assemblers, because it can also divide a 16 bit value into two 8 bit values using the operators < and > , but I think we’ll leave that til later. Immediate addressing is carried out by prefixing operands with the # character, while zero page addressing is achieved by prefixing operands with the * character. After this, we’re told we now know enough to start using the LEA Assembler.

I’ve recently found a quite obscure book about 6502 Assembly Language and there’s also Jim Butterfield’s book, but I’ve decided to deal with them in a later post.

Unfortunately, it looks like I can’t afford to buy another C128 or even a C64 at the moment, especially as I still need to buy a frying pan, a saucepan, a sharp knife, a plunger, and go for some more badly needed nights out.

That’s all for now! The next stage is for you to absorb what you’ve read and I plan to try and convert some of the source code listings from this book for the Merlin 64 Assembler. Perhaps you’d like to have a go at this yourself.

Posted May 22, 2016 by C64hater in Uncategorized

THE MACHINE LANGUAGE BOOK OF THE COMMODORE 64 – PART 1   Leave a comment

THE MACHINE LANGUAGE BOOK OF THE COMMODORE 64 – PART 1

The_Machine_Language_Book_for_the_Commodore_64

The book that reveals lots of C64 mysteries

You can download a copy of this book from the page http://www.bombjack.org/commodore/books.htm about two thirds of the way down.

My original version of this post, or even of the whole series of these posts, was lost when my laptop was stolen by a schizophrenic bastard madman who had given me shelter under his roof, but then kicked me out on the street to die after just eight days because of his mad fantasies that I had stolen his rail card and was also trying to set fire to his house. Now I’m starting to write it again from scratch.

This is a truly amazing book by author Lothar Englisch published by Data Becker GmbH and republished by Abacus Software Inc about how people could manage to program the Commodore 64 to do lots of things that users of Atari 400/800/XL/XE computers, Apple ][ computers, Acorn computers, MSX computers, and virtually any non Commodore computer could do in BASIC. By that I mean write programs using colour, graphics, and sound which would run on any other computer of the same model or a compatible model. Of course, owners of the Commodore 16, Commodore Plus/4, Commodore 116, and Commodore 128 computers could do these things using their built in BASIC as well, although only the Commodore 128 has a synthesiser chip, while the others have just a tone generator.

Unfortunately, even in the Preface to this book there’s the statement “Many people try to learn it, but most quickly give it up because it is too complicated. Only a few actually use it”! This preface wasn’t written by the Author himself, but by someone higher up, involved with the Data Becker management, so I must assume from that that it’s very likely they know what they’re talking about. This means that most people attempting to learn 6502 Machine Language for the C64 would fail. After that, they probably have to wait for the Data Becker/Abacus BASIC compiler to be released, be lucky enough to hear that it existed, as well as probably buy a disk drive.

The Table of Contents doesn’t actually list everything in the book, but the back cover states clearly that readers will be able “to program high resolution graphics”! This simple statement would have been enough to persuade me, as well as thousands or millions of other C64 owners to buy the book. It includes a BASIC listing for an Assembler called LEA for Lothar Englisch Assembler, which is used alongside a program called UNTOKEN, that allows the user to type in Assembly Language using the Commodore BASIC V2 editor without the Assembly Language mnemonics being mistaken for short versions of BASIC commands, then tokenised and converted into the long versions of these commands. I typed in the whole Assembler, but then found that it didn’t work, so then I ran UNTOKEN, moved the cursor to some lines causing errors and re entered them, then found they worked. Unfortunately, there was another line causing errors, which I couldn’t really read in the book. I tried altering it, but couldn’t clear the error, so that meant I couldn’t get the Assembler to actually Assemble any code. You’re probably thinking now why not just use another Assembler? The answer to that is it’s not that simple, because some of the Directives and other syntax for this Assembler are slightly different to any other Assembler. This means that I need to make a list of Directives for all 6502 or C64 Assemblers, as well as make notes of what different syntaxes may be used before I understand what changes I need to make to the Assembler listings in this book to get them to Assemble and run on another Assembler. Labels are defined by = signs with a certain number of spaces, code ends with .EN , but I’m not sure what else. There seems to be no disk image anywhere for download with the contents of this book typed in. I eventually lost all my data after putting the disks in a suitcase which I couldn’t carry, so I placed it into Left Luggage at Victoria Coach Station, London at the rate of £10 per day. The suitcase was either dumped after a few hours, or destroyed three months later.

On page 167 this book finally gets down to drawing a diagonal line across the graphics screen, using five SYS calls, and four POKEs! This is obviously something that hundreds of thousands, or even millions, of C64 users had wanted to do ever since geting their C64s, otherwise why would it be in the book? This is followed by how to do that and more in Assembler/Machine Language. Later on, there’s even a section about how to extend the crappy Commodore BASIC V2.

Obviously, Commodore should have published a similar book to this one, at at least recommended it to all C64 owners, but AFAIK they didn’t do either of these things.

That’s all for now! I plan to make another post about this amazing book as soon as I can, but this will involve some more research into Directives on different Assemblers, buying a C128 or even a C64, etc.

Posted May 21, 2016 by C64hater in Uncategorized

WHY THE APPLE ][ COMPUTER IS NOTHING TO DO WITH THE COMMODORE 64 BEING CRAP   Leave a comment

WHY THE APPLE ][ COMPUTER IS NOTHING TO DO WITH THE COMMODORE 64 BEING CRAP

(DEBUNKING “CODE NOTES LANTERN OF D’GAMMA”)

AppleII

 

The amazing Apple ][ computer

TMR of the blog “C64 Crap Debunk” has recently been making posts about an Apple ][ demo called “Lantern of D’gamma” https://c64crapdebunk.wordpress.com/2016/05/12/code-notes-lantern-of-dgamma/ , as if this is supposed to somehow prove that the C64 isn’t crap. I’ll try to explain here why this is totally irrelevant to the C64.

The original Apple ][ computer was released in 1977 when people were amazed by any computer at all, but the ones I saw at my local computer club in 1984 were all either the later Apple ][e, or Apple ][europlus models, so I’ll concentrate on that. You can read the specs on http://www.apple-history.com/aiie

The Apple ][e or //e is a very sturdy computer, expandable by using plug in cards, but unfortunately it was too expensive for most people to consider buying at about US$1,395 or about £1,250. It was totally unnecessary for Apple to charge that much, because other companies round the World managed to make much cheaper clones of the Apple ][. All Apple products have been overpriced ever since.

Unfortunately, the basic Apple ][e had only a beeper instead of a synthesiser chip, so it wasn’t what I was looking for. It would have been even more expensive to buy an upgrade on a a plug in card. In the USA, Apple ][e users could plug into a TV and get colour graphics. I thought the computers and their green screen monitors looked quite professional, but I didn’t know that they couldn’t display colour on European PAL TVs without a graphics card.

The Apple ][e had a 32K ROM compared to the C64’s total of 16K ROM, including BASIC and an Assembler/Monitor, but as the system was mainly or entirely disk based, it was possible to load other versions of BASIC and other languages from disk.

Finally, here’s a graphics demo for the Apple ][e written in BASIC, without having to PEEK or POKE yourself to death!

https://www.youtube.com/watch?v=EI8AQrBCLH4#t=268.501

That’s all for now! Another post about how crappy the C64 is will be posted here soon.

Posted May 21, 2016 by C64hater in Uncategorized

How Jack Tramiel and his former company Commodore killed the Amiga computer!   Leave a comment

How Jack Tramiel and his former company Commodore killed the Amiga computer!

TramielGloats

Jack Tramiel gloating at all the mess he’s made

 

I’ll try to keep this post short and sweet, so I’ve used a bulletted list. I think that’s the best way.

jay-miner-1

Jay Miner the visionary with the Amiga computer he designed

 

  • Jack Tramiel bought Atari, the company which was supposed to buy the Lorraine Amiga computer from Amiga Inc
  • Jack Tramiel was only interested in a deal to buy the custom chips from Amiga Inc and not in employing the design team
  • Amiga Inc accepted a deal with Commodore who agreed to let them keep their jobs
  • Jack Tramiel tried to sue Commodore Amiga Inc over the rights for the Amiga custom chips
  • Jack Tramiel’s legal action delayed the release of the Amiga computer
  • Jack Tramiel brought out his own hastily cobbled together Atari ST computer before the delayed Amiga computer
  • Commodore soon kicked out the original Amiga design team because Jack Tramiel taught Commodore all they knew about doing business
  • Commodore’s own engineers didn’t really understand the Amiga
  • The original Amiga of 1985 was several years ahead of the competition but Commodore failed to upgrade it quickly enough so that it fell behind the competition
  • Commodore slashed their R&D budget

 

I think this proves conclusively that Jack Tramiel is responsible for killing the Amiga, leading to the rise of the big business IBM PC compatible computers (now just called PCs) and Apple Macs with home users, but with business software at business prices. You can thank Jack Tramiel for all of that.

KDE1

My Linux KDE Plasma interface

 

BTW, I’m writing this post on a Compaq Presario laptop, which cost me £81 on eBay http://www.xe.com/currencyconverter/  , onto which I’ve installed Linux Mint 17.3 Rosa KDE 64 bit edition, plus the Mac OSX like KDE Plasma interface, Cairo dock, and a Mac OSX theme, so this means I’ve saved a fortune by not buying an Apple Mac laptop.

 

For more details on how Jack Tramiel killed the Amiga click on the following links…

 

http://lowendmac.com/orchard/06/amiga-origin-commodore.html

 

http://classicgames.about.com/od/history/p/The-Life-Of-Jack-Tramiel-Part-3-From-Commodore-To-Atari.htm

 

http://classicgames.about.com/od/history/p/The-Life-Of-Jack-Tramiel-Part-4-The-Atari-Commodore-War.htm

 

That’s all for now! Another amazing post will follow soon.

 

Posted May 20, 2016 by C64hater in Uncategorized

The Commodore 64 Enigma   Leave a comment

The Commodore 64 Enigma

Bueie1d

Can anyone see a Commodore 128 computer, three electric guitars, a music keyboard,  a large satellite dish or any paintings in this builders’ mess?!

Since the destruction of my way of life by a wicked property developer and evil landlords who wouldn’t rent to me I have been considering what to do next. I think that suing the property developer is an option, due to his agreement confirmed in SMS text messages to give me a week to pick up any belongings I may not have been able to remove before the Bailiffs turned up, then the total mess shown above, which the builders caused by moving all my belongings into one of the four rooms, burying it under who knows what, as well as mixing it up in a quagmire of furniture and electrical appliances.

 

Normal service for this blog has now resumed, because I’m typing this post on a new (refurbished) laptop, onto which I’ve installed Linux Mint 17.3 Rosa with KDE Plasma Interface, looking quite like Mac OSX. I’m also in some better accommodation, with a WiFi connection, although the place isn’t as good as the flat I was evicted from. During the last few weeks I’ve cooked my first microwave meal since January, as well as cooking my first Chili con Carne since January and have been making cafetiere coffee for the first time since January too.

 

Unfortunately, the original version of this document was done on my Android phone, using the app Notes, which works fine whenever you haven’t got an Internet connection, although Microsoft Office online and Google Docs don’t always work without a connection, but then I happened to press my thumb down on the end of the document, which made it Select All then immediately Cut and the whole text was deleted without trace, so Android users should watch out for that!  

 

I lost most of my belongings including my Commodore 128 because of the eviction, so I ‘ve been considering how I can get another Commodore 128 or if not what I should do. The problem is that since I bought a Commodore 128 a couple of years ago this model of computer seems to have become rarer and more expensive than it used to be. I could always use a Commodore 64 emulator such as VICE, but that feels like cheating and encourages the use of development packages which simply weren’t available to bedroom programmers during the time period 1984 to 1985 when I owned a Commodore 64. I’ve just installed WinVICE onto Linux Mint and it runs under WINE.

 

I bought my Commodore 128 from eBay Germany. Most Commodore 128 computers which I’ve seen on eBay recently seem to be located in the United States instead of Germany or elsewhere in Europe, so this creates problems for me, due to the fact that they wouldn’t be compatible with my EU 230V 50Hz mains power supply, as well as the difficulty of finding a compatible TV or monitor, meaning an NTSC TV or a 60Hz monitor. Of course, while the Commodore 128 and Commodore 64 were being produced, the mains power supply in Britain was 240V and 220V on the Continent, but this didn’t make any real difference. This situation with it being more difficult to buy a C128 has led me to consider the possibility of buying a real Commodore 64 computer instead!

C64G1

A Commodore 64G

 

If I bought a Commodore 64 computer it would have to be a Commodore 64C, instead of the older bread bin model which I had before. Even a Commodore 64G model wouldn’t be different enough.

Commodore64Beige

A breadbin C64 with beige function keys like the one I owned

 

 

https://www.youtube.com/watch?v=ASfAPOiq_eQ

How The Enigma Machine worked

 

My  whole experience with the C64 makes me think of the WWII Nazi encryption machine The Enigma. Both machines produce incomprehensible code and both were created by evil people. The Commodore 64 is truly an enigma, due to Commodore manuals which hardly mention the graphics screen, online BASIC V2 courses which claim that hires graphics is beyond their scope, etc. It could be said to be a follow up to the Enigma machine, although the Enigma could be easier to understand, because it uses much older, therefore simpler technology than the Commodore 64, such as rotary wheels instead of chips, but don’t forget that lots of memory locations on the C64 can be either ROM or RAM.  Commodore left people to guess about lots of facilities. I previously wrote that it was impossible to access 64K on the C64, because that was one of the many mysteries which Commodore created, leading people to think it was impossible, as well as a big secret on how to detect the joysticks, as Sheldon Leemon wrote in a “Compute!” book. Even so, using the whole 64K on the C64 requires programmers to turn off not only the BASIC ROM, but also the Kernal, and the Character ROM to free up 16K, then they have to make up some kind of replacements for the contents of those chips in their actual program, like reinventing the wheel. For more details see http://www.atarimagazines.com/compute/issue32/112_1_COMMODORE_64_ARCHITECTURE.php

 

Another big problem with the Commodore 64 is that its built in BASIC V2 can’t deal with hexadecimal numbers, so that all the numbers to PEEK and POKE seem to be almost random, but when you see these numbers in hexadecimal instead of decimal, it immediately becomes clear there’s a pattern to them. Atari BASIC can’t handle hexadecimal numbers either, but doesn’t require nearly as many PEEK and POKE commands as Commodore BASIC V2.

 

https://www.youtube.com/watch?v=fmrtU7qsccM

“You Might Think” demo (1984)

 

TMR continues to post notes about demos and produce cloned versions of them, but this isn’t relevant because there were no demos in 1984 except perhaps one I’ve found called “You Might Think”, which was music only. Apart from this, he doesn’t explain how to get to that level of programming, but admits that it’s not for beginners. The only clue from him is that if you tried to program the C64 in your bedroom for long enough, then you’d succeed. Music was the very kind of thing I was hoping to do on my C64, but Commodore and Jack Tramiel made it impossible for me, although it was fairly easy to fry chicken breasts even with the pan spitting fat at me, bake cakes from pre packaged mixes with instructions on the back, etc, etc.

ToshibaMicrowave

The same model of Toshiba microwave my family used for several years

 

I had a few frustrating times while learning to cook, but nothing as bad as the C64. I thought that when cracking eggs into a pan to fry it was just pure luck whether the yolks broke or not, but then I found that you have to hold them not too high up from the pan when cracking them to avoid them breaking. If you start frying two eggs within seconds of each other, then they’ll be ready at the same time, so long as you remove the first egg from the pan first, unlike trying to play polyphonic music in Commodore BASIC V2, for example, where it seemed impossible to get the different sound channels to keep time with each other. Unfortunately, my Mum’s wrong instructions about how long to wait to defrost a chicken breast from the freezer or how long to defrost it in the Toshiba microwave caused me to miss the pilot episode of the sitcom “Mr Merlin”, which was never repeated, but there were no real disasters. The microwave in question had a digital display which was actually printed on rotary wheels instead of the more modern LED displays, but this was much better than just a dial with times printed round its edge because the cooking times could be programmed very accurately. We used that Toshiba microwave for several years, instead of having to sell it ASAP. This was because the manual wasn’t gibberish and it didn’t have to be programmed in Japanese or Commodore BASIC V2! If it actually did have to be programmed in Japanese or in Commodore BASIC V2, then you can bet there would be some smart alecs out there saying they could do it, so that in some way proved that anyone could do it. BTW, I advise everyone reading this to set an alarm if you’re drinking strong alcohol while boiling some rice in a saucepan, otherwise you could fall asleep, then wake up to a burning smell, and ashes in a ruined saucepan!

 

One way of “fixing” the Commodore 64 could be to plug in an Assembler cartridge so that it boots into the Assembler, but then you’d need to read some articles or books about some Assembly Language/Machine Code which produces some graphics and/or sound effects, which there didn’t seem to be many examples of back in 1984 when I was struggling with this. Quickly filling the text screen with occurrences of the same character, like in “Your 64” magazine, wasn’t much use. I don’t remember ever hearing of or seeing “The Commodore 64 Machine Language Book” by author Lothar Englisch for Data Becker/Abacus, which was certainly an eye opener for me when I downloaded it last year. More about this amazing book in another post soon.

 

https://www.youtube.com/watch?v=bIK3OYnD9MY

Sebastian (1968)

 

I think that code breaking, such as that done by Alan Turing and his team on the Enigma machine is inspiring. There have been plenty of films and documentaries about Turing recently, so above is a link to a half remembered Dirk Bogarde film called “Sebastian” I once saw, which could be a big inspiration to people trying to work out how the hell anyone could program the C64.

AlanTuing

Alan Turing (1912-1954)

I hope I’ll be inspired by the example of Alan Turing and his team to crack the Commodore 64 enigma!

 

 

 

Posted May 20, 2016 by C64hater in Uncategorized

TMR CAN’T COOK!   Leave a comment

TMR CAN’T COOK! 

Currywurst

A typical Currywurst (drool!)

In one of his recent posts entitled “Where to, guvnor?” (“Guvnor” is a term used in Britain by certain people who think that their customers are totally superior or of a higher class to them)  https://c64crapdebunk.wordpress.com/2016/01/17/where-to-guvnor/ TMR, the blogger behind “C64 Crap Debunk” mentioned that he can’t cook, or hardly at all. His exact words were…

“Your correspondent is a truly appalling cook and, although he’s just about capable of the basics, would expect anybody else to simply laugh at his opinion of what they’re doing in the kitchen;”

This is an amazing revelation! Now we can assume from this that C64 programmers are not only excellent at maths, but we can look into this new revelation that they can’t cook either!

TMR then went on to say…

“so why the author, as someone with no real programming knowledge, would expect to be taken seriously when writing about said subject is a mystery.”

This is actually quite simple to explain. The reason is that I’m playing a role like the character Jo Grant in classic Doctor Who (Third Doctor/Jon Pertwee era) https://www.youtube.com/watch?v=erx8RbignFs  , instead of the role of Liz Shaw from the same era. Liz Shaw was a qualified scientist, who tried to talk to the Doctor about technology on his own level, but most of the audience couldn’t understand what they were talking about. Jo Grant however, started off by telling the Doctor that she’d taken an ‘A’ Level in science, but then later admitted “I never said I passed!” This was so The Doctor would have to explain things to her to help the audience understand the technical terms The Doctor was talking about. What this means is that while TMR is just showing off as a know it all about programming the Commodore 64, I’m telling the vast majority of people how they might be able to learn to program it to do simple things, in spite of the shitty Commodore manuals.

Chili

Chili con Carne (yum yum!)

As for me, before the Commodore 64 came out, I was already cooking fried chicken breasts and baking cakes, so this explains why my brain wasn’t capable of programming the Commodore 64 in BASIC V2. Later on, I cooked potato, cheese and onion bake from a Toshiba microwave cookbook, then after abandoning the C64, I went on to creating my own BSE free recipes for Chili con Carne, and Spaghetti Bolognese, and even managed to assemble the ingredients for and cook a Currywurst, which a Danish/German woman from Flensburg said tasted quite authentic. This means I have no chance of ever coding a C64 demo, so I could only do the graphics, the music and cook the coders some of the  dishes mentioned above so they don’t have to live on fast food while coding!

commodore_c64_hr_2s

The type of Commodore 64 I owned (Yuck!)

TMR has spent quite a lot of time recently posting about C64 demos, but during my time as a Commodore 64 owner, I never heard about any demos at all, so I certainly wasn’t planning to create any. There may have been some official Commodore dealer demos, as well as a kind of demo of sprites and music on an official Commodore tape, bundled with my C64 or in the Introduction to BASIC course, but that’s it. If these demos required a disk drive, then obviously I couldn’t have loaded them. As far as I’m concerned, the type of demos he’s talking about only started with the Amiga and Atari ST computers. A further revelation about this was recently made by TMR, when it turned out that the first demos he ever saw weren’t actually released until 1986. This means that he never saw any demos during the period of time when I owned a C64.

 

That’s all for now! Look out for another revalation from me soon!!

 

 

 

 

Posted April 2, 2016 by C64hater in Uncategorized