Issue 14 November 2007
Free to download magazine dedicated to Commodore Computers Available as Text Html PDF and Commodore 64 D64 disk image


November, bonfire night and remembrance Sunday; For me they both go hand in hand, this is because I think of all the services in remembrance Sunday not just people who have fought in wars. In an ideal world we wouldn’t have a war and would be able to talk out our problems over the table. It seems odd that a lot of wars are started by differing faiths and religions, the armed forces are there to ensure all our safety and give there lives to ensure we are safe.

So to are the Fire service, police doctors nurses, they all to some degree risk there lives for ours. Recently 3 firemen were while they tried to rescue and put out a fire in the UK. I thought of these as well as everyone else for the 2 minutes silence. It isn’t much but I wear a poppy and give 2 minutes of my time to remember the services skill commitment and dedication to our safety.


Another packed issue and the First Commodore Free competition see page 5 For details of how to enter .

Ok the best way to help would be “write something about Commodore” (yes for the observant I spelled the company correctly this time) _grin seriously though articles are always welcome,

Well they vary contact me if you have an idea but I am looking for Tutorials – (beginners and Expert)
Experiences with Commodore
Why I love Commodore machines
Interviews – maybe you have access to a power user

Thanks Nigel


Editor and Contents Page 2


General news                    Page 3
Midi news                       Page4

Commdore poster Page 5

Beginners guide to the 64 Page 6


Lord Ronin                      Page 9
Steffan Egger                   Page 12
Fotios                          Page 16
Mark Mc Dougall                 Page 18
Andrew Bourhill                 Page 20
Jozef Lasziop                   Page 24


Commodore 64 Hardware           Page 15
Dtv Modding                     Page 22

Hex files Page 26


A Recent email from Robert Bernardo

Hello, FCUG members,
I thought our table at this year's Nov. 3-4 Vintage Computer Festival 10.0 would be the capper for the year 2007!I was wrong!

Gigantic surprise! Former CEO of Commodore Business Machines, Jack Tramiel, will be making a rare public appearance! Yesterday I received a message on the answering machine from Karen Tucker, CMO/VP of Public Programs for the Computer History Museum in Mountain View (San Jose area), and California.

Here is part of what she said:

... I thought you might be happy to know that the museum is going to have a celebration of the impact of the Commodore 64 on December 10. It's kind of a 25th anniversary celebration, and Jack Tramiel will speak as well as Steve Wozniak and William C. Lowe, the father of the IBM PC, and Adam Chulaniak (sp?) who was the Amiga guy at Commodore, and we're still settling on the moderator. But I thought that if you are still part of the Fresno Commodore User Group... that you guys might want to make the trip down to Mountain View for this event on December 10.

The exact title of that night's program is "The Impact of the Commodore 64: A 25-Year Celebration".

Here are the specifics:

Location: Computer History Museum, 1401 N. Shoreline Blvd, (exit from the 101 Freeway) Mountain View, California 94043 Phone: 650 810-1010

Time and format of the event: Monday, Dec. 10 6 pm - 7 pm -- Museum member's reception with the guests. Beer, wine, and hors' doeuvres served. 7 pm - 8:30 or 9 pm -- First words/speech by Jack Tramiel, panel discussion, question-and-answer session Afterwards, informal chit-chat and possible autographs

Admission -- for the reception, free to museum members ($65 membership) for the event, free general admission ($10 donation requested) Seating capacity -- 400

Webpage -- Karen remarks that they are "stupidly slow" at updating the events' page at

but assures that the event "is really going to happen... definitely".

Guests on the panel discussion --

Jack Tramiel (pronounced /tra mel/, Karen tells), former CEO of Commodore Business Machines

Steve Wozniak of Apple fame

William C. Lowe, father of the IBM PC

Adam Chowaniec, former vice-president of technology for Amiga at Commodore Business Machines

John Markoff, moderator of the panel discussion and New York Times reporter and author of the computer history book, "What the Dormouse"

Others to speak/appear --

Leonard Tramiel, former vice-president of software development and v.p. of advanced technology at Atari Corporation

Jeri Ellsworth, engineer behind the CommodoreOne and the C64 DTV

Media recording - photography (no flash), videography, and audio-taping permitted. Possible webcast from Liquid Computing of Canada (Chowaniec's current company), which is sponsoring the event.

Here are Karen's answers to some questions -- On Oct 27, 4:45 pm, Joe C. wrote:
> +Do members get preferential/guaranteed seating?

Members receive preference but there is no guaranteed seating.

> +Will tickets be made available before the day of the event?

There will be a link on the CHM website for signing up, and an email announcement will be sent to the CHM mailing list.

> +Is Karen the point person for media pass requests?

The point person for media is Bob Stetson at stetson(at)

I met with Dale Luck, Amiga software engineer, on Nov. 4 at the Vintage Computer Festival 10.0.. After congratulating him and teasing him a bit on his recent marriage, I mentioned that Jack Tramiel would be speaking at the Computer History Museum on Dec. 10. Surprised, he remarked that he didn't know anything about it. I described the event to him and the times. I mentioned that Adam Chowaniec would be there, and he said that knew Adam. Dale was interested in going to the event and would tell other Amiga engineers, too.

         Robert Bernardo 
         Fresno Commodore User Group  
         The Other Group of Amigoids 


Just a quick message to let you know that there's a new C64 MIDI program called MyMIDI which includes support for the FB-MIDI interface. A .d64 image is available for download from the following URL.

MyMIDI requires a C64 with MIDI interface and a MIDI keyboard. MIDI keyboard notes are displayed on the screen and played by the SID chip.

Many thanks to 6R6 coding this program.


my-midi 0.2:
By GRG/SHAPE October 2007

Midi-keyboard data output to your screen. And also data input to music player.

C64 Key functions:

1       : Single voice play along
2       : Three voice play along (first 3 keys at a time)
3       : Concate (First in first out)
4       : 1 voice Arpeggio (127 keys with 10 fingers)
F       : Toggle filter on/off
B/SH+B  : Set band
X       : Set resonance
H       : Hardrestart type ( 1 = hardest )

W/SH+W : Waveform
A/SH+A : Attack
D/SH+D : Decay
S/SH+S : Sustain
R/SH+R : Release
+/- : Select arpeggio speed

MIDI key functions:
(This depends on your midi keyboard ofcourse) Keys : Play note on C64
Pitch Bend Wheel: Bend frequency on C64 Modulation Wheel: Set filter cutoff
Volume Slider : Set pulse

Modulation Wheel & Volume Slider:
There are 128 possible controllers on a MIDI device. These are numbered from 0 to 127.
Some of these controller numbers are assigned to particular hardware controls on a MIDI device. For example, controller 1 is the Modulation Wheel. Other controller numbers are free to be arbitrarily interpreted by a MIDI device. In this program Pulse control is assigned to 7, and filter cuttof is assigned to 1.

User defined interface:
You can customize the registers in case you have a interface not on the list.
Control register : Register for talking with your interface Status register : Register tells me if a byte is ready.

Tx data          : This is the send byte register.
Rx data          : This is the receive byte register.
Reset midi       : Used with control register - Resets your interface
Enable midi      : Used with control register - Set count division and enable midi.

Enable midi Irq : Used with control register - Set count division, enable midi and set irq line.

Fetching data is done through the irq interrupt. That means this program doesnt work with interfaces connected to a nmi line.

Known Bugs
If the midi keyboard sends too much data, the screen output routine will not be able to keep up with the data received. It will just print what currently is in buffer.

If the 1Voice arpeggio program hangs on a note - Press H to reset player.

My Setup:
C64 (6581 sid chip)
FB-Midi Card rev.1a in C64 cartridge port. ( my midi interface ) M-Audio Keystation 49e ( midi keyboard )

Commodore Free
Commodore Free now has a Message board
Commodore Free magazine message board. 22:34

A forum for the readers to share ideas or experiences. It can be found at Although not 8 bit friendly sorry

Commodore Poster Competition

Win one of these superb posters kindly Donated to Commodore Free magazine by

The poster will be delivered to the winners house Free of charge below are some details about the poster taken directly from the Website

History of Commodore Computers Poster
Poster Dimensions 24" x 36"

I have for sale "The History of Commodore Computers" poster which is the culmination of three years of work and research. The Commodore systems have been professionally photographed specifically for this poster and the photos appear nowhere else.

This poster is ideal for any vintage computer fan, Commodore Computer collector, classic or vintage memorabilia display. This is a limited edition poster and will not be re-printed!

Poster includes hi-resolution images of rare and hard-to-find systems including the KIM 1, PET 2001, PET 4016, PET 8032, VIC-20, C-64, C-64C, SX-64, C-128, C-128D, B-128, CBM 256-80, P-500, Plus/4, C-16, C-116, VC-20, Amiga 500, and selected diskette drives.

USA Ship $3.00

Canada Ship $5.99

International Ship $7.99

What do I have to do to win one of these superb posters?

Imagine I have made a Time capsule and It will be buried deep in the ground for our ancestors to find. The capsule will contain news papers magazines and videos that are current to the present day.

What Commodore items should be buried with the Capsule, also what other everyday household items could be included? The size of the capsule will be as large as a house at this time it’s a fictitious exercise, and everyone’s house size is different.

The best entry to the competition will win the poster 2 runners up will have there text printed in the magazine, so feel free to include a picture of yourself

Send the article and pictures to me via email plain text emails would be preferred but I can take most formats of text if you are in any doubt feel free to check via email

Many thanks to for the poster donation, the quality of the posters are superb I look forward to the submissions of text; articles can be as long as you like but less than 2 pages would be preferred

The closing date will be the end of February 2008, so you have plenty of time to get pen to paper,

THE Absolute Beginners guide to the Commodore 64

Some items in this article involve opening up your machine and testing electrical continuity; while this should be a safe process ensure the machine is Powered off and unplugged, also earth yourself this can be done by connecting a cable to your wrist and to a radiator or through the purchase of a Commercial earthling kit, computers are susceptible to static electricity

You follow the following article at your own risk and Commodore free and indeed I can’t be held responsible for problems caused by following this Article as a result of damage to yourself others and any electrical equipment.

My New Commodore 64 Computer

Commodore 64 history in brief
• Introduced at the winter Consumer Electronics Show in January 1982

• The machine is listed as the highest selling personal computer in the Gunnies book of records

• The machine was redesigned to make a reduced cost version this was the Commodore 64C system released around 1986 featuring a more streamline designed case and surface mounted chips to reduce costs

• The C64 uses a 8-bit MOS Technology 6510 microprocessor.

• The C64 had 64 kilobytes of RAM, only 38 KB is available for the Basic programmer to access

• The VIC-II, produced graphics and could display 16 colours, also eight hardware sprites

• The sound chip, SID, had three channels, each with its own ADSR envelope generator, and with several different waveforms, ring modulation and filter capabilities

• There are two versions of the SID chip. The first a 6581, which is to be found in all of the original "breadbox" C64s, and early versions of the C64C and the Commodore 128. It was later replaced with the MOS Technology 8580 in 1987 they both use different voltages and are not interchangeable

Retro Classic
So you obtained a Commodore 64 for whatever reason and the machine came with no instructions or manual just the Commodore 64 and hopefully a power pack in the form of an external "brick" you may be new to the system or returning to the machine after years of inactivity. The Commodore 64 is a well loved machine, it does contain some faults but most enthusiast choose to ignore them or class them as quirks rather than hardware and software bugs. I still remember the day I received my Commodore 64, mainly because it was Christmas day, but also remembering going to a Computer exhibition with my father in London and seeing Geos operating system and purchasing Geos and a 1541 floppy disk drive, this could of course be remembering a great childhood, I prefer just to remember my commodore 64 and me and dad wowing over Goes and thinking we must buy a printer for this system.

What can i do with this machine how is it supposed to be used and is there still support

Fear not! Applications, games and even new hardware is appearing all the time for one of the best systems ever created, but we don’t want to dwell on that for now what we want is to know the system is working and then see what "bits" we have

New starters
Lay all the parts out in front of you lets see what you have hopefully you will have at least these items

TV to connect the machine to other wise you wont be able to view a picture

Commodore 64 itself This may be a new designed Commodore 64c or the older more rounded shape

Picture of original 64

Picture or the redesigned 64 the 64c

Tv/Av lead

Commodore power supply

TV Connection
While the Commodore 64 can connect to a domestic TV via the aerial socket the picture isn’t as good as a dedicated Av connector, (more about this later) Plug in the power supply to the C64 the connector should only fit one way round and its location is on the right of the machine with the keyboard facing you, also here you will notice 2 joystick ports and a power switch (on/off) ensure the switch is off . Now connect the Tv / av cable to your commodore machine, this will connect to the Commodores modulator located at the rear of the machine

The modulator converts the digital signal produced by the machine to an analogue format for display on a standard domestic television via the Arial socket. One thing to be aware of is that different countries have different standards, for TV signals and for power, so if the Commodore 64 came to you from England and you are in the U.s.a the TV signal isn’t compatible and the power requirements are different, England or the UK. Use a Pal tv signal and U.s.a use NTSC so you would need a TV that can handle the different format. The other thing is that U.s.a use 110volts of electricity from the wall socket usually on a 2 pin plug whereas the UK. use 240 volts on a 3 pin plug (live, neutral and earth)

Now connect the other end of the Av cable to the tv and select an unused channel, tune on the Commodore 64 at the wall socket and at the machines switch (by the joystick port) now turn on the tv press the unused channel and follow the tv instructions to manually tune to a tv signal with luck you should find the commodore screen slowly fade into picture as you start to tune in.

Nothing is working
Ok don’t panic if this isn’t working first we need to check the Commodore 64 is receiving power, in the u.k. the plug that goes to the mains has a fuse this need checking to ensure its working, then look at the commodore 64 there will be a POWER light this should be glowing red, if not then you could try a friend and swap power supplies but also be aware the Commodore 64 has a fuse inside this could be blown and i have been given 3 or 4 machines where this was the only fault, its a clear glass fuse similar to the picture below,

test it with a multimeter or take it to an electrical specialist for a replacement they should be only a few U.k. pence, i was charged 10 pence for a replacement, and the guy in the shop even kindly tested it for me. See the how to use a multimeter for continuity testing section.

Still dead?
depending on the model, the old brown Bread box machines used socket mounted chips, look for the SID chip it should be as shown in the picture below This could have blown and while the machine will work without the SID chip albeit without sound it wont work with a blown one, so carefully remove it with a chip extractor or with 2 flat bladed screwdrivers remove the sid chip and then screw the case back together now try powering on and tuning the picture if you have a picture now you now you have a dead Sid chip, try eBay for a replacement ensure its the exact same model of sid remember there are two main revisions 6581 and 6580 they are NOT interchangeable

As described at the start of this article, using the aerial socket on a tv isn’t the best picture quality the Commodore can produce, on the rear of the machine is a AV??? Socket various cables have been made allowing the Commodore to connect to modern TV and Av equipment, for example your 32" plasma TV that may not have an internal tuner, only Scart and Composite connections try looking on Protovisions website as they sell various cables, also eBay sellers have Commodore 64 to scart cables as well as svideo and composite

Picture of Commodore to Av cable
Variants available for a few pounds, If soldering is a skill you possess you could even produce your own try looking here and here

for some ideas how to produce various cables.

Picture of a Commodore to Scart cable

As shown in older versions of Commodore free various boxes exist that will take a composite signal and create a picture viewable on a TFT Pc screen or an old CRT screen, the Crt screens are the big tvs the TFT are the slim sexy models, looking on eBay the Commodore 1084s monitors that were one favourite with Commodore users seem to be going for around £20 U.k. pounds really its better to use the money to purchase a cable, i purchased a cheap TV with Av sockets on the front and plug the Commodore into this, the picture is excellent the cable cost me £5 UK. from eBay and the TV cost me £89 new

how to use a multimeter for continuity testing. A mulimeter can be obtained for a few pounds the one I use cost me £3 u.k. pounds I am not an electrician so we are not going to be doing anything fancy like testing circuits For Basic fault finding a continuity test can save time and money

Set the multimeter to the ohm setting. now touch the two probes together and you should hear a noise and the display will change, this confirms that continuity or electrical current is flowing round the device, open the two probe contacts and the display will drop back to zero, showing us there is no continuity This can now be used on fuses Touch 1 probe to one end of the fuse and the other probe to the other end of the fuse if the multimeter makes a noise or the display changes we have continuity or current flowing through the fuse if the display doesn’t change then the fuse is dead. You can use this to check the fuse in the plug of the Commodore 64 and the internal glass fuse (I am sure there is a technical name for this fuse but I don’t know what it is)

Opening up the Commodore 64
This depends on the model but the basics are really the same. Ensure nothing is plugged into the machine. Turn the machine over on your lap so the keys are facing down and the under side is now facing up,

You will need a small cross head screwdriver to remove the screws from the base of the machine, Locate the screws as shown they should come out quite easily. Turn the machine over carefully noting where the screws fall out Also worth checking is that all the chips are secure by gently pressing them into there sockets (if they are socketed )

Interview with
Lord Ronin from Q-Link

<CF> could you tell the readers about your self?

<LR> Leading question {G} Well at this time I am 57 in body and still stuck at 18 in mind. Fanatical Commodore User, pipe smoker, martial artist, cat petter and Role Playing Gamer. Oh yeah I am also into mountain man recreation and Middle Ages recreation stuff.

<CF> That creates a few more questions to ask. First though who or what is Lord Ronin and if you would, tell us your real name?

<LR> Yeah man, I thought that would make more questions. {G} OK then, man I have to remember my original name. Right then, in the mundane world I am Sensei <term for a martial arts instructor> David Otto Edward Mohr. As for Lord Ronin from Q-Link. That is my Inet handle, my BBS handle, my writers handle and the handle that I use at Sci-Fi cons.

Ah, I can see the question in your eyes, even at an 8 hour time difference. Where did Lord Ronin originate? Well it is the name of my fist Dungeons & Dragons character. Made back in 1978ce. Gained the title of Lord when he progressed to a specific level. When I went onto Q-Link in early 1995ce.The handles that I wanted where all taken. Didn't want to be Warlord 124.So I took the name of my first RPG character. Later after the murder of Q-Link. I added the "from Q-Link" part. The rest just sort of grew.

<CF> Where do you live in the World?

<LR> Lovely Mossyton, or better know to the world as Astoria Oregon inthe states. Small little coastal community. Where the normal sky is grey.Remember we don't tan in the summer, we rust. {VBG}

<CF> Tell us about your first Commodore and how you received it.

<LR> That is a long one to answer. OK being short as possible. My frist ever PC was a Commodore 64, with a Sears SR 3000 monitor, couple of weak joysticks, one 1541 drive, an Okidata 120 printer a few factory disks in boxes and a disk box of "Arkhive" disks. Can tell you that one of the first three games that I played was the factory AcroJet game. All of us

in the kibbutz played it. Till we eventually destroyed the disk in some manner. Didn't know about making back ups at that time.

But unlike many users of the C= PC platform. I didn't score mine up in the 80s. In fact I didn't have a computer in the 80s, not a TV. Just long sessions of Role Playing Games. And an understanding wife at the time{BG}. In fact I was really a computer phobic. However me mum, down in Grants Pass, ah that is about 400 miles from me. She had joined the literacy group. In short she was teaching adults to read.

This was in the 80s. Well one of her students was into the Commodore 64. Don't ask I haven't a clue as how a man can operate the Commodore and not be able to read. She got semi bit by the Commodore bug. Scored up a MPS-803 printer,

the 64, thrid party monitor and one 1541 disk drive. Several disks from little companies. Many for her diet and diabeties care. A nice computer desk. OK not that nice cause I can't set it up for left handed. She kept on bugging me about the computer. Wanting me to score one up. At that time I was working on the road, as a fund raiser for Oregon Special Olympics.

Yeah the telemarketer scene. At least it was state licensed and bonded. One day, I was at her place helping her out while I worked in the area. She listened in, as I was running a Gamma World game for some of the other guys from the phone room. That was the start of her wanting me to try out a carer in writing. Bugged me about that as well. Said that she was going to pick up a computer for me.

Nothing happened for several years. Save that I became permanently disabled. Got a divorce, remarried and moved to a better place. Mum still kept on about the writing and the computer. As we moved the Game store to a new location in town. Setting it up actually. I got the word from the police, that she was in the hospital.

Quintuple bypass, and they had to jump start her about three times on the operating table. She wanted to see me. OK I found a ride, went the trip to see her. Already had the keys to her place. Her puppy had been taken by friends. Saw her at the hospital.

She was still loopy, more tubes in her than my 1936 radio. Kept on about two things. Her out of body experience, and that stupid computer. She beggd me to take it, from the storage shed. Was supposed to be a Channukha present. But it was a late one. OK I grabbed it to make her happy. Put it in a micro Toyota pickup truck. Which we came to call a Tonka toy. Drove the 400 miles back.

Set it up on the coffee table and started to see what it will do. So it is all her fault that I am a Commodore fanatic. {LOL} This happened in March of 1993ce. She lasted in fairly good health till around 1996ce. Then I had to make another trip there and collect the items she had willed to me. Yuppers, she gave me amongst personal treasures, her entire Commodore system.

<CF> Speaking of writing. You have done some writing for Commodore Free and other publications. Can you tells us what you write and what you use to write your documents?

<LR> First off, I do not think of myself as a writer. If it wasn't for the Commodore. I wouldn't be writing anything. Self taught typist on the Commodore. Because in my generation, only girls and poufs and those looking for an easy credit, took typing class. Man I wish I had done that instead of fencing class. At least the most used keys are under the left hand. I only have two fingers that work on the right hand.

Now I was an English editor for Go64 in years past. Did some of the Prose Quest for Fender at Load Star, was even asked to send in a second story. Trivia on that one. A fast rush job, based on Classic Traveller RPG. But it got me a few fan letters. {G} I also started the RPG section for Commodore Scene.

Did a few stories and loads of Geos stuff for RevDave at LoadStar. But I think the stories where too adult. Though based on the games as he requested. Geos Stuff didn't seem to pass muster. I was the NTSC English editor for the disk magazine SceneWorld.

I also did a spot as the retro reviewer. Those articles may not see publication till issue 16 is ever released. OK I also am the managing editor of the Commodore MaiLink. That is the bimonthly newsletter of the international group. Meeting Commodore 64/128 Users Through The Mail. Generally called in short the "MTTM". Been around since about 1987ce. Though truth be told. Since the loss of my HD and the ability to print or upload files. I have not been as active in that job as I once was.

I did a spate for the newsletter for the Eugene Oregon C= users group. Helping out the editor, Pnacolada. 5C's, a user group in Las Vegas Nevada, gets from me disks of submissions from time to time. As they make a disk format newsletter. I also write stories for the local users group. They are bad and drawn out and mainly the mature to adult level. At least that is my opinion. Which is not shared by some of the local members.

I use two writing tools. Most of the time it is EdStar II from the Load Star pass around issue #105. This does all the work that needs to be in stock C= SEQ format. The other tool that I use is GeoWrite with GeoPub and at one time Post Print. IF a copy needs to be in something else than Geos.I use wrong is write v8.1 to convert it to say PET or ascii.

<CF> A claim that you have made, is that you are the worlds most fanatical Commodore user. Would you explain that to us?

<LR> OK that is an easy one. I own several commodore systems. About 50+ 541 drives, half a dozen or so 1581s, over a dozen 1571s, pair of FDs, a CPU with a full 16mb of RAM. Over 3000 floppy disk. That is the 41/71 style. Not counting a few hundred 1581s and FDs. AT the moment I have a 128DCR with the SCPU and a 4+GB HD, awaiting configuration for the returning BBS and the local users group library. Sitting next to me. In the shop I have another 128DCR with a 1581 and a FD attached. That I use daily in the shop. Lets not go to the SX-64s, the Vic-20 or the C-16. I haven't played with them yet {VBG}.

I do own an Amiga 1200, Amiga 500, and an Amiga CD/TV. But since our Amiga guy ripped us off in 2006ce. We no longer have Amiga material or anyone to help set up that 1200 with the new chips etc. AS of this time, I also own a linux system. Which I am learning how to use. To show its status, I have named it "kajira".

This is the word for Slave Girl in the Gorean language from the John Norman Gor series. Main intention is to be able to connect it to the 128DCR.

In order to preserve C= files to a CD.
In short, the Commodore is my primary daily PC. I use the kajira for mundane things like paying bills online and going to places that lynx or The Wave on the C= and vcsweb, won't let me enter. I've been flamed on several lists, like comp.sys.cbm for using a Commodore. Lost my 10 year position at the OSFCI when there was a bit arguement about computer platforms. I stayed true to the C= and becasue I couldn’t see the forms in .PDF.

I lost out on my voting rights, membership and the lot. Even the committee position I held for the convention that year. I am still true to the Commodore. Knowing that it is the world’s greatest PC. But I have also been called biased, oh yeah and opinionated, not to forget the ever populat, "not with the times", although no-one has been able to satisfactorily explain that lemming mentality. {VBG}

<CF> We understand that you are a part of a local users group, and that you run or did run a BBS. Can you tell us more about that?

<LR> OK, the simple questions with the long drawn out answers. /me sipping the coffee and lighting the pipe again for the long report. Well is rather simple in actuality. On hollowed in 93ce. A guy that I used to work with at a ship building plant. Popped into my store down town. This with his kids for the shop owners candy giving.

He saw me in front of an amber screen with a breadbox 64. I had recently bought a collection from a business friend. He told me about the users group. How they had recently stopped being a copy party group and became an official users group. Gave me the number of the president, and left for other stores telling me about the loads of software that he and the group had.

Thought about it for a bit, like about a month. Made the call and found out that the people who I knew to be in computers, that I didn't want to meet <ex-wife and new husband>. I went to the December meeting and joined up in 93ce. My adopted son Mark Reed, a.k.a. Lord Alberonn and now the thieving sho-vah. Joined in January of 94ce. Make this part short. If I knew then what I know now. I wouldn't have joined! Round Robin discussion for officers, get the monthly disk for the C= and for the Amiga, see the demos and split for smeag knows what else.

In a short time I became the Editor of the newsletter. Having some prior experience in an international middle ages recreations group. Along with other experiences. Anyway, the newsletter was one sheet of paper. Meeting notes, officers and next meeting time and place. Folded over and the opposite side was the address wrapper. My first issue was 4 pages long. Got yeled at for spending that much money. Though the Newsroom programme I used did give more than what ever Amiga system was used. Fast forward to today. We are trying to return to the 20 page booklet format with post print. When we have a working printer. Till then it is a 12 pager on a dot matrix printer.

I also wormed my way into being the C=128 Librarian. As I was the only one that was using a128 at that time. Sorry to say that the library consisted of the 1218 Loadstar disks.

Now about 95/96ce the group had changed the name, using one of my suggestions. Which was more of a joke than a real suggestion. But at that time I decided to run for the Presidency. I had already done the start of a Color64 BBS for the group. Bought hardware and software, just received a large amount of magazines. I wanted more for the group.

What I didn't know was that I was being railroaded into the job. Was even nominated by the current president. Should have know something was wrong. When the sho-vah was made Amiga Librarian, and another member of my game group, was made Treasurer on his first meeting. In less than a year, all the old timers had moved along to other things. Rats leaving the ship is what we call it.

Since then, I was elected Chancellor <new title> for life. No one wants the Editing job for the newsletter, or the librarian job. Though I do have a few deputies.

BBS is down as I write these lines. But I am working on rebuilding it. Once had over 5 thousand files. Not all open to the general public. Many for the ACUG members only.

That HD is currently in the hands of Maurice Randall. Waiting for the data transfer he promised in January of 2006ce.

At this moment the group isn't as great or as big as it once was, but that I suspect will change with the return of the good Newsletter publication and the BBS.

<CF> Do you have any plans to drop the Commodore?

<LR> NO!

<CF> What do you do with the Commodore on a daily basis?

<LR> Mainly at this time it is writing. I review things for my own and other publications for the C=. Write letters, keep my shop records, and do a mess of RP Game related things with it, for my game group. Still learning things about files I gained from Q-Link or received in boxes, that where on Q-Link. Dealing with the games. Prepping for the return of the BBS. I do some file testing. Mainly to see if it works and what category it will be in on the board.

<CF> Seems as if you are a dedicated user. Thank you for this interview.

<LR> As we say in the Shadow run game "null perspiration chummer". My thanks to all that made it this far in my drivel. {VBG}

Stefan Egger
Free Commodore Magazine Editor

Q - Please introduce yourself to our reader

A -Hello! My name is Stefan Egger and I live in Vienna/Austria. I was born in 1989 and I’m now 18 years old. I study Informatics on the Vienna University of Technology now.

I’m webmaster of a German homepage SCACOM is a shortcut for Stefans Commodore Amiga Computer Online Museum. Please have a look at my page and write into the guestbook.Also there is a PDF magazine available.

Q - What was your first computing experience?

A -My first computer experience was because my father bought a brown C64 in 1986 (for 396 Euro). He told me that I played at an age of 4 or 5 years with this C64. Later he bought another C64c with Disk Drive and Final Cartridge 3 from my uncle. In 1998 we put away the C64. At this time I had a PlayStation… 2003 we found a C64 G (the white C64 in old case) on a flea market in the famous Schönbrunn. So we tested the new C64 and I was fascinated of it. In the year 2003 I got my first Amiga 500 too. Later I expanded my collection and I bought the C128D, another A500, A600 HD and a A1200 too.

Q - What in your opinion is special about Commodore Computers?

A -I think they have a interesting history. Commodore was one of the best-known computer manufacturers at the eighties. Everybody I know in my family had a C64 (my two uncles and the husband of my aunt). So they were very important that the computer has become a product “for the masses and not the classes”. I like the innovations too they made. For example the first computer PET, the best-seller C64, the multitasking Amiga. I think all these computers were very important for the history of computers! I personally like the CDTV but I sadly don’t own one. I like the idea and the innovative concept of it. It was the first computer with CD-Rom drive and it looks really cool! Also they are not only game machines. Amigas worked at the NASA space center in Cape Caneveral and also the well-known movie “Jurassic Park” for the special effects.

Q - What Commodore Machines do you own?

A –
1 brown C64
1 C64c

1 C64 G (is it known in your country, because I think it was Germany-only. It’s a white C64 in the original case)

1 C128-D
2 different Amiga 500
1 A600 with HD and Kickstart – Switcher with 1.3 and 2.0

1 A1200 HD with 40 GB HD, Blizzard 1230 IV with 64MB Fast RAM and a DVD-Rom drive.

Q - Do you have a favourite Commodore Machine?

A -I don’t know what I could say now. The C64 is the first computer I know and there are a lot of things I remember. For example one day my father and I wanted to play “Rock and Wrestle”. We had a original tape version and we loaded it with the 1530 datasette. Then we had to go to eat lunch. During the time the tape was loading and the SID-music played out of the speakers. After lunch we played the game together ;)

Amiga is special too because I like it very much. My first Amiga was the A500 as a present to me. I liked it very much and later I purchased an Amiga 600 because its very little and looks cool! Another reason was the easy data-transfer between Amiga and PC with a CF-Flash-Card. Then I got an A1200 with Blizzard 1230-IV. I installed the 40 GB HD and the 64MB RAM and the DVD-Drive. It was nice to built this system. I bought WHDload and I have a nice system to play a lot of games now. I like it very much!

Q - Do you still actively use Commodore machines?

A -Yes. I have the C128 D and Amiga 1200 always ready to use. Why the C128-d and not a C64? It’s a problem of space in our flat. So I had the C128D System under the Commodore monitor (model 1084). I have a MMC64 in it and only use it in C64 Mode.

Q - Can you tell our reader about the website what is available on the site?

A -There is basic information’s about Commodore computers on it as well as things for people that know Commodore well. So there are tutorials and my opinion on it. Also – and this is the special part – there are things like a quartet I made about Commodore to play with. Also the new magazine is available from there.

Q - Can you tell our reader about SCACOM Magazine, when did the first issue launch etc?

A -The first issue launched at 1st August 2007. The second issue was available in October 2007.

The next German issue will be available in December 2007.

The idea behind it was a magazine with new ideas. So it’s for all Commodore fans as well as for new fans of the computers. I wanted to include the new hardware and other things that are only available in SCACOM (PSP-emulation, rendering information and background pictures).

Also there can be issues with one theme only. The first time this will be the case is in February 2008. Then a whole magazine is full with stuff about the Commodore C264-series. This was only possible with a partnership with c16chris! I think that this series of computers was not perfect but a lot of Commodore fans ignore them. They are also part of the history of Commodore! Every two month there is a new issue available. I’ve done it two month because every month it’s very difficult to fill it with text.

Q - This is a PDF magazine, is the magazine available Free of cost?

A -Yes, it’s free downloadable PDF magazine with a lot of interesting things in it! So you can try it out easily!

Q - How long does the magazine take to produce and when is it released?

A -Every two month a new issue in German is ready for download. The English issues are difficult because I regular speak German. But I try my best and I hope you like it too! I cannot say how long it takes to make a magazine because I don’t make it at once but always in small parts!

Q - Is the magazine about all Commodore machines and related information or do you cover other news?

A -My magazine is about all Commodore computers (all 8 Bit computers as well as Amiga, DTV and the new PCs from Commodore Gaming as well as emulators). Also there are interesting things about PSP in it because I’m a big fan of the little Sony console. If it is a hacked PSP you can launch a C64 or Amiga emulator. You can read PDFs like SCACOM or Commodore Free too. This is part of SCACOM but there are only texts about PSP when it has to do with Commodore

Also there are articles about rendering. It’s another hobby of mine. You can look at the pictures in SCACOM 1 and 2 (German) I’ve created. Also there are rendered Background pictures included in the magazine.

Q - How many people write and produce the magazine?

A -This is THE big part what is special about SCACOM in contrast to other magazines available. There is no permanent editorial staff. I will ask people if they could make an article about something. Sometimes there are also people that contact me. So this is very interesting part because I like to get feedback and so I also get new contacts and friends! Also I think it’s interesting for the readers because I always try to include them. I take feedback seriously and try to improve the magazine. Also it’s a good concept because there are a lot of different people with different interests and texts.

Q - How can our reader help you with the magazine production?

A -Everybody can help! You can send your computer story, tutorial, texts, interviews or pictures to me! Everything would be helpful! Sure the author of each article has Copyright to the text published in the magazine.

Short: The best way to help would be if you write something about Commodore.

Q - Do you have plans to release an English version of the magazine?

A - Good news - Yes, I do! There will be the first English issue of “SCACOM-Aktuell” in the coming January 2008! For all readers who can’t read the German issues I make this special English version. But there are not all texts of the German version translated. There are parts of the first 3 German issues in English in it.

Contents will be:

Interview with Christophe Kohler
Background picture
Baracudas Story
Commodore Award
C64 Color Enhencher
Best real C64 Games List
Disk-Cover for 5,25“-Disks

And other stuff too!
It’s unsure when the “English issue 2“ will be released.

I hope that the mistakes will keep to a minimum and that you like the magazine. Also I hope that a lot of people will give feedback on it!

Q - Do you know how many people read the magazine?

A -Yes! There is the German website where you can download the SCACOM magazine. There is a counter for downloads too:

There are around 230 downloads of the first version, 190 downloads of the Update of issue 1 and 330 of the new issue 2. So it’s a total amount of 750 downloads! Here you can download it and check the new number of downloads!

Q - Producing a magazine such as this is tough, have you received many negative comments?

A -There was a heavy discussion on it, yes. A lot of people thought it would be better to include my texts in the German “CeviAktuell”. But this magazine is C64-only. I wanted to make texts about all Commodore computers.

Also the first version of SCACOM was designed badly. So there was an UPDATE of the first issue where there is a new Design. So readers can read it better. The content in the Update 1 issue was the same as in the issue 1.

Also a big point of negative comments was the lot of mistakes because I made the first issue alone in a short period of time. But now I have 3 proofreaders and so it’s not a problem in the next issues anymore! This change was a reaction of the feedback I received.

Q - Also has anyone praised you for starting such a project?

A -Yes, there are also people that want to support my idea and think that it is a great project! I have also received a lot of nice feedback!

I must thank all these people that helped me improving SCACOM such as my proofreaders, text writers and interview partners. I have to thank the people that gave feedback too!

Q - What is your favourite article you have written about so far?

A -I have to say that I’m in the CeviAktuell editorial staff too. My favourite article was published in CeviAktuell and was a text about rare Competition Pro Joysticks (the limited series and rare color versions of it). A lot of people said that they never saw all this special colors and versions of it.

Q – Thanks for talking to Commodore Free! Have you anything to add?

A -Thank you for the nice interview. I want to say that your readers should try SCACOM in German and English too. Don’t be afraid of the language, you can also look at the nice pictures!

Also I want to say is that everybody can publish the magazine on their homepage or a link to it. But only if there are no changes and there is a link to If you do so a lot of people can see my projects.

Hardware Accessories for
Commodore 64/128 computers

The following is a list of products currently available.

64KByte (8x8KB) cartridge for Commodore 64/128 computers Completed July 2007

The FB-512 cartridge is designed to support 64KB 27512 series EPROMs. These EPROMs can store the equivalent of eight generic 8KB Commodore cartridges on one chip.

Three mini-toggle switches are used to select which 8KB area of memory will be active and mapped to address $8000.

A fourth mini-toggle switch is used to support the native Commodore 128 mode by changing the logic state of the EXROM line on the cartridge port.

A mini push button reset switch and plastic PCB support is included.

RS-232 interface for the Commodore 64/128 User Port Completed August 2007

Price US $21.00 plus postage

The FBU_RS-232 interface supports various configuration modes using an 8-way DIP switch which allows individual selection of lines like DSR, DTR, RTS and CTS.

Speeds of 9600 baud are supported when used in UP9600 mode with Novaterm 9.6

The FBU_RS-232 interface also includes a mini reset switch and works in native C128 mode.Two plastic PCB supports are supplied.

Multi standard MIDI interface for the Commodore 64/128 Expansion Port Completed August 2007

Price US $29.00 plus postage

If you’re into creating music, FB-MIDI adds MIDI IN, MIDI OUT and MIDI THRU/OUT ports to your Commodore 64/128.

An 8-way DIP switch is used to support various C64 MIDI software standards like Sequential Circuits, Passport and Syntech (Sonus).

If you’re new to the world of MIDI, I suggest trying out MIDISLAVE MANAGER 1.1 with any MIDI capable music keyboard.

The FB-MIDI interface was designed to be fitted in a standard Commodore cartridge case that’s been slightly modified. Two plastic PCB supports are supplied for use without a cartridge case.

Please contact me for postage and payment details. Coming soon:

-       Stereo SID cartridge (Prophet64 compatible!)
-       Cartridge expander
-       plus more…

Interview with Fotios
Commodore 64 Hardware creator

Q - Can you please introduce yourself to our reader?

A - My name is Fotios and I'm based in Melbourne Australia. During my spare time I enjoy collecting and repairing various Commodore computers and accessories (mainly for the C128). A couple of months ago I started assembling a simple hardware project (EPROM cartridge) for my Commodore

128. It's now become a bit of a hobby and hope to make a number of various hardware accessories. My handle on most Commodore forums and user groups is Mangelore (taken from a character in the movie The 5th Element...)I'm currently employed at HP as a network consultant.

Q - What was your first computing experience?

A - My first computer was a Commodore 128 which was given to me as a gift from my father when I was about 14 years old. He'd spent a few months working overseas at the time and returned with a Commodore 128 in his luggage and some IBM PC Junior brochures. I then found out that the sales person was trying to sell him an IBM PC Junior but it was too bulky to take on a plane with him back home.... lucky me!

Q - How did you learn about Commodore?

A - It was the period when personal computers started invading homes. Friends of mine had Commodore 64's, Spectrums and Ataris. I got hooked onto a few C64 classics like Bruce Lee and Monty On The Run.

Q - Can you tell our reader about the Current products, what they do and the benefits they would give to a user?

A - Sure!
The FB-512 is a Commodore 64/128 cartridge designed to store up to eight 8KB cartridge images onto one 27C512 EPROM chip. The idea is to use an EPROM burner to store (burn) eight of your favourite 8KB cartridges onto the FB-512 EPROM chip.Toggle switches are then used to select the desired cartridge without having to unplug the FB-512 from the expansion port. I recently started including a pre-burnt EPROM chip with 8 of my favourite utilities,

The FBU_RS-232 converts the C64/128 User Port into an RS-232 interface. Users can then use a modem and terminal program like Novaterm or Desterm to dial-up a BBS (not many around these days), or transfer files using a null modem cable between their C64/128 and other computers.

It offers similar functionality to the VIC-1011A with the addition of a DIP switch that enables/disables certain lines like CTS/RTS. The FBU_RS-232 is also compatible with the UP9600 driver in Novaterm 9.6 which achieves 9600 baud through the User Port! I mainly use it with Desterm and my C128.

The FB-MIDI is a simple multi-standard MIDI interface for the Commodore 64/128 Expansion Port. I came across a program on the Internet called

MIDISlave. So, I decided to build this interface so I could connect my Yamaha MIDI keyboard to my Commodore 128. I also use it with another

program called Instant Music.

Q - the FB-MIDI can this be used with any music software, how is the device multi standard?

A - The FB-MIDI can only be used with C64/128 music programs that include MIDI support. When MIDI interfaces were being developed for the C64/128 in the 80's, there were a number of different standards (Passport, Sequential Circuits, Datel JMS/SIEL, etc). The main difference is the memory address locations used to access the interface. The JMS/Siel standard also uses a different clock divider for the UART.

Q - Some people may ask "why bother" so what prompted you to design these items

A - For the same reason we all use Commodore computers. It's fun! For me it's also a creative hobby. It gives me an opportunity to enhance my electronics knowledge while generating interest in the C64/128 platform with new hardware (as simple as it may be).

Q - What problems did you encounter designing the hardware?

A - The most challenging aspect is sourcing certain components like the User Port and Expansion Slot connectors. I've had no luck in locating Australian suppliers for these but eBay has come to the rescue at times. The other problem is "spare time" which is hard to come by these days due to work and family commitments.

Q - Did you find enough documentation about the machines to design the hardware or did you need to enlist the use of other?

A - Absolutely. The Internet is a great reference library for projects like these. I've also found Commodore user forums to be very helpful on a number of occasions.

Q - Can you walk our reader through the design processfrom concept to finished product?

A - When I first come up with an idea for a product, I'll create a list of desired features. These are split into two groups: "must have" and "nice to have" features. For example, let's take a quick look at the Stereo SID cartridge I'm working on.

Some of the desired features include:
- 9V and 12V SID chip support
- configurable memory address mapping
- Prophet64 compatibility

I then break down the product into various stages using a block diagram

which includes items like:
- DExx/DFxx memory mapping
- 9V/12V power supply circuit
- Audio Out stage
At this point I'll attempt to draw a schematic diagram using all available resources (Commodore motherboard schematics, reference guides, SID datasheets etc).If it's a simple circuit I'll wire up a prototype and pray to God that I don't blow up a Commodore computer during initial testing.

For more complex projects I create a PCB layout and have a small number of boards manufactured. For testing, I normally use my Gold Edition Commodore 128. Unlike the 1 millionth Gold Edition Commodore 64, this 128 has an all year round golden tan thanks to spending too much time in Solariums. Once all major bugs are worked out, I'll then optimise the PCB layout and order a few PCB boards to start assembling the final product.

Q - How would a potential purchaser go about obtaining one or all of these items?

A - Currently, I can only accept orders via e-mail and payment via paypal. I'm also thinking of listing some of these items on eBay from time to time as my web page is very basic at the moment. Let's not forget that these are projects I mainly create for my own use. I'm making them available for sale just in case others are interested in using these. With only a handful of products at this stage, I don't see

the benefit of creating a web store or eBay store. However, the interest to date has been fantastic. Many thanks to all of you who have ordered products. You're support is much appreciated.

Q - you have a Coming soon item list, can you give our reader some more information on what he may expect Stereo SID cartridge (Prophet64 compatible!) Cartridge expander plus more…

A - Well, I've always wanted a Stereo SID cartridge. I've seen instructions on the Internet on how to add a second SID chip into a Commodore 64 but the idea of piggybacking SID chips inside a 64 does not appeal to me. I spent some time trying to win one on eBay but was always outbid as high postage costs to Australia limit my chances of winning. So, after doing a bit of research I decided to make one.

The cartridge expander is a different story all together. I already own a few but they either lack a few features I need or seem poorly made. So, the one I've designed includes configurable memory addressing for two slots which in theory will allow concurrent use of multiple cartridges.

Other features are enable/disable options for many lines like EXROM, GAME, ROMH, ROML etc..., a reset button, protection fuse, status LEDs etc, optional vertical/horizontal mounting for one cartridge slot, etc... If anyone has any idea ideas for the ultimate cartridge expander, please e-mail them to me!

Q - Have you thought about something like an accelerator cartridge something like the Scpu from Maurice?

A - I actually own a SuperCPU128 and it's a fantastic product. Unfortunately, I don't think I'm up for the challenge to make a similar product. Hopefully, Maurice will be able to start production again of certain CMD products like the SCPU. The price these items fetch on eBay is scary...

Q - Stereo SID cartridge - this is a physical cartridge as opposed to opening up the machine and fitting it in place of the sid chip?

A - Yes, that's correct. It's a cartridge that adds a second SID chip to a Commodore 64/.128. It's been done before so there's not too much to get excited about. However, the cartridge pass-through slot will be a handy feature for Prophet64 users as they won't need to spend hours soldering SID2SID boards and wires inside their C64 to get stereo sound.

Please note that I will not be including a SID chip with this product. There will be an IC socket where users can install their own SID chips. By the way, I'm currently trying to think of a cool name for the Stereo SID cartridge. The reader that e-mails me with a name that I end up using for this product will receive one for free!

Q - Stereo SID cartridge will this work with any other software apart from Prophet 64

A - Of course! It should support any Stereo SID software out there as I plan to include a DIP switch that will reconfigure the second SID chip address into various DExx or DFxx memory locations.

Q - Do you have an estimated time the devices will be available?

A - I expect these to be available within a month or so. The hold up has been the expansion port connector.

Q - Have you thought about other distribution channels, maybe protovision?

A - Not at this point in time. Maybe down the track it might make sense to investigate further.

Q - how long does each piece of hardware take to create?

A - It depends how much free time I get and how complicated the product is. On average it tales me a month or so as I have a demanding full time job.

Q - Are the items readily available, that is when i place a purchase for an item how long will it take for delivery lets assume within the u.k.

A - Yes, these products are available and usually ship within 48 hours of payment. Shipping (airmail postage) from Australia to the rest of the world takes no more than 2 weeks.

To give you guys an idea of the shipping costs, airmail postage for an order that includes one or two products is: - US $9.50 to Europe
- US $8.20 to U.S./Canada

Insurance (signed delivery) is optional and costs another US $6.50 worldwide (but not available to all countries).

Interview with Mark McDougall Mark
Commodore FPGA 1541 project

Q - Can you introduce yourself to our reader?

A - My name is Mark McDougall and I live in Sydney, Australia. I'm an electronics design / computer software engineer who was first bitten by the arcade emulation bug around 1990. It has since snowballed into a full-blown hobby and now encompasses classic 8-bit micro computers and consoles as well as video arcade machines.

Away from computers, these days I try to keep fit by playing soccer pretty much all year-round - sorry, football (actually even us Aussies are dropping "soccer" in favour of "football") and going to the gym. And I'm definitely not a morning person! ;)

Q - What was your first Computing experience?

A - Somewhere in my 1st year of high school, when I was aged 13, my father purchased a 4K Level 1 TRS-80 Model I for himself. Or so he thought. I still recall that first day loading a version of Backgammon off cassette tape, and typing in BASIC listings from the user manuals. To this day I swear I spent more hours playing "Flying Saucers" and "Time Trek" than any computer or console game ever since!

Q - When did you come across the brand name commodore?

A - The C64 wasn't so big here in Australia - or at least in the circles I moved, so it wasn't until I saw an Amiga 1000 at a computer show that I really took much notice of the Commodore brand. By the time I had saved enough to buy a Commodore, the 500 had been released, so that was the first Commodore that I owned. Of course I still own it!

Q - Many people outside commodore ask why bother writing and creating software for out of date machines would you like to comment.

A - For me it's primarily a nostalgia thing. I recall those TRS-80 days very fondly, and I guess part of me gets to re-live those days whenever I'm working with or playing on the old machines. I also find that my attention span has shortened appreciably over the years, and as impressed as I am with some of the modern games, I find they require too much of my already limited spare time (and concentration) to get into them properly.

So the arcade games and classic computer games are more appealing to me - you can pick up a controller and start blasting away and (in my case at least) it's "GAME OVER" a few minutes later. And of course as every retro enthusiast will tell you, it was always about gameplay back then!

It's also a joy to discover software, and machines, that I didn't get to experience all those years ago. The C64 is a prime example - until a few months ago I had quite literally never played one - and having read some 30+ issues of "Retro Gamer" magazine, games like Lode Runner and Wizball were the first

disk images I tracked down when we decided to develop the 1541 emulation.

If you never experienced those days personally, I get that you don't get it! However I am surprised that some of the retro enthusiasts popping up over usenet etc these days are actually too young to have been there - it's good to see!

Q - Can you tell our readers about your FPGA 1541project?

A - The FPGA 1541 project is an offshoot from our "PACE" project, which has grown in scope to encompass pretty much anything related to the emulation and/or enhancement of classic arcade machines, microcomputers and consoles.

The idea of the FPGA 1541 project is to emulate the 1541 faithfully in hardware, rather than provide a device that connects to a C64 and appears to behave like a 1541 drive, but doesn't actually operate internally like a 1541. So inside an FPGA, we emulate the 6502 and 6522s so it runs the original DOS ROM code. We can then emulate the physical drive mechanism in whatever manner we choose - Compact Flash, SD/MMC card, etc - to create a device that can be physically attached to a real C64 and operate exactly like a 1541 but with a lot more storage than a single floppy disk.

We (my co-conspirator Chris & I) did know of various similar projects that emulated floppy disk storage devices on the C64, but none - as we understood - that directly emulated the hardware of a 1541. Aside from just being fun, we thought it more likely that we'd be able to provide a device more compatible with fastloaders etc if we did it this way. We also wanted a single solution that we could connect to either a real C64 or to say, FPGA64, inside the same chip.

Q - on your website you state "13-Aug-2007 The 1541 emulation is now reading the G64 image off Compact Flash" how far is there to go with the project?

We have an operational (read-only) 1541 running on various FPGA development boards that operates with both Compact Flash and SD card. At the moment the emulation is partly implemented within a 'soft-core' processor within the FPGA, something we are working at replacing so that the hardware required is much simpler and much cheaper - and hopefully bringing it into the budget of more enthusiasts.

Q. Will you be trying to emulate other drives, such as the 1581?

A - Most probably. If I understand correctly, there's no real leap in technology involved and we will be able to base the higher capacity drives off the 1541 emulation with moderate effort.

Q. Will your emulation be able to cope with software fastloaders and protection schemes?

A - Well that was a big point of the project. We initially started with D64 images, and generated G64 images on-the-fly within the FPGA with code lifted straight from MESS. As it stands now, the emulation makes use of G64 images, albeit support is preliminary.

Although the complications of protection schemes present their own challenge - not only to the emulation itself but also their encapsulation in the representative disk format like G64 - the emulation should be more faithful than other efforts and hopefully more compatible with fast loaders for example.

Q - Will there be a finished product to purchase or are you just designing the software?

A - No final decision has been made, but the thinking at this point is to release the complete design for a read-only version in the public domain, and provide a commercial hardware product that supports both reading and writing.

Q. How easy will it be to transfer images to/from the device?

A - That is something we're divided on at the moment. Ideally the user could insert an SD card in a PC and simply transfer D64/G64 disk images to the card. That complicates the design and adds cost to a product. The other end of the spectrum is to provide proprietary software to write disk images to the SD card in a custom format. And USB is also a popular option these days...

Q - Maybe this is a dumb question but How can the software be used and what can it be used on?

A - The user would be able to load as many D64/G64 images as the SD card can hold, and then plug the card into an emulated 1541 that can be connected to a real C64. There would be some user-interface that would allow the user to select which disk image is active, and obviously from that point on, the C64 sees that disk in the drive. It may also be possible to have the same device emulate a number of floppy drives simultaneously - but that could affect the final cost.

Not knowing much about the C64 family, I'm assuming it would be compatible (or trivial to support compatibility) with the various commodore machines that supported the 1541 and similar drives.

Q. Would you be able to link the PACE up to a real C64 to act as a virtual drive?

A - Definitely, as I've explained above - and is something we have already done!

Q - Does the software work on the C-1 for example?

A - Whilst not intimately familiar with the C-1, it is my understanding that the C-1 architecture isn't quite suitable for our project. The main FPGA on the C-1 is completely full with FPGA64 and the secondary FPGA is (IIUC) a closed design that handles I/O and video as well as bootstrapping the machine. I'd be happy to be proven wrong on that though.

Having said that, we have ported Peter's FPGA64 project to our own FPGA hardware and integrated our 1541 so that we have our own version of a 'commodore-on-a-chip'.

Q - Will the finished results be available to download and will there be a charge?

As I said earlier, I'd like to release something back into the public domain - a read-only design for example.

Q. What do you think of the other advanced storage methods for the C64, like the IDE64 interface or the MMC64 (which allows access to SD/MMC cards)?

A - To be honest, I don't know a great deal about them, but from what I've gleaned from reading about them, I think they're great products in their own right. Some also go beyond emulating storage devices as well, which is a plus.

I guess the main difference is that the heart of the 1541 project is the aim to faithfully emulate the architecture so that it runs the standard DOS ROMs. The upshot is that the design can also be combined with FPGA64 inside a single FPGA to give a single-chip solution.

Q - What does the project aim to do, I notice you have links and references to other commodore FPGA projects are you working together on a project?

A - Part of the problem with PACE is that the scope is ever-expanding as my interests in retro computers broadens. So it's a very difficult question to answer. And as technology advances it becomes easier and cheaper to implement things that were prohibitive only a few years ago - add this to the mix and it's very difficult to decide which aspect of PACE to devote the time to.

I've justified my aforementioned short attention span by proclaiming that PACE is currently in the proof-of-concept or 'prototype' phase. What this really means is that I do enough to get a particular emulation more-or-less running, and can then move on to other more interesting things without the tedious tying-up of loose ends or worrying about 101% compatibility. ;)

More often than not immediate ideas are spawned from FPGA projects released by other authors, or even discussions on the usenet newsgroups and mailing lists that I frequent. For instance right now we're waiting on prototype PCBs to come back from fabrication that I designed a few weeks ago to implement flash-based multi-carts on the TRS-80 Coco (a.k.a. Dragon 32) - originally spawned from a discussion on the Coco mailing list about a small run of custom EPROM-based carts.

The aim of the PACE project I guess is to be to hardware what MAME/MESS is to software. It'd be great if ultimately people could contribute to the project adding not only new emulations, but support for other FPGA hardware like development kits. We're trying to create a VHDL framework that speeds the development of new emulations. Of course we're far from achieving that and, just as MAME/MESS have done, there will be regular re-architecting along the way before it's even half right!

What we'd also like to do, ultimately, is to produce an FPGA-based hardware platform that is most suitable for the hardware emulation of as wide a range as possible of classic arcade, console and microcomputer platforms. The same hardware could be plugged into a VGA monitor and PS/2 keyboard, TV and console game controller (we've already done Gamecube and Maple Bus (Dreamcast) interfaces), or directly into a JAMMA arcade cabinet. Not unlike the C-1 but (with the benefit of hindsight and advancing technology) more flexible. Q - Can you tell our reader about some of the other projects reference don your website?

A - A few years ago, my colleague Chris Nott & I spun our first board for our PUCE (Programmable Universal Cartridge Emulator) which comprised three cartridge connectors - NES, SNES & N64 - connected to an FPGA. The idea was to produce a flash-based programmable cartridge that allowed the user to transfer cartridge images from any of these 3 consoles onto the card - together with the mapper logic - so one could play any game on the respective console.

We did have some success along the way, most notably on the SNES and N64, but ultimately due to our inexperience the card was simply too cumbersome to develop for and (ironically) not quite viable to emulate a NES cartridge.

Then we discovered that emulating complete arcade machines and 8-bit microcomputers in FPGAs was considerably more fun than emulating just the cartridges and PACE (Programmable Arcade Circuit Emulator) was born. To be fair we lucked into some suitable hardware for free and PUCE was all-but-forgotten. Just the other day, however, we did talk about resurrecting the project, albeit on new hardware.

The other cool project I was quite proud of was my "Space Invaders TRS-80 Bootleg" project, which involved patching the original Space Invaders ROM to run on a TRS-80 Model 4P with suitable hires hardware. It involved reverse-engineering pretty much every single instruction in the Space Invaders ROM code, which took a few weeks, and then another few weeks of developing the patches. I got it running on my real Model 4P - despite the fact I had no working disk drives - albeit at 50% - due only to the fact that there isn't a suitable 60Hz interrupt on the 4P. Still cool IMHO...

In closing:

The two most frustrating things for me are the lack of time to devote to my hobby, and the fact that my hobby now encompasses such a broad range of platforms! Hardware development is not only costly, but also time-consuming, and there's so many projects I'd like to tackle that are simply out of the question for me for the foreseeable future.

I'd love to be able to make a living out of it, but I'm yet to identify a segment of the market that I believe is viable to sustaining a steady income. So for now, I do what interests and challenges me, and/or projects that may be of some interest to at least a few others.

Perhaps of specific to your readers, of late I've become more aware of peripherals like the REU and Ethernet cards for the C64, and am interested in perusing designs for these. Another off-shoot is interfacing modern controllers to old computers and consoles - I've played Wizball on FPGA64 with a Nintendo Wavebird, for example!

In the past I baulked at the effort in producing PCBs but after recently completing a few prototypes for the Coco (flash carts) and Amiga (PS/2 mouse adapter), I'm starting to think that it makes more sense to produce a greater variety of relatively simple boards whilst PACE "matures". I think one advantage both Chris & I have is that we have both a broad range of interests across the spectrum of retro gaming and, though our work, a rather broad range of skills to match - so with enough different boards even a trickle of sales of each may be enough to fund development of more designs...

And thanks Nigel for taking interest in my obsession! ;)


Picture of Loadrunner
Running from FPGA

Interview with Andrew Bourhill
VB64 Creator
Commodore 64 Emulator for Windows

Q - Can you tell our readers a little about yourself?

Aged 34 years, married with one child (little girl aged 15 months) and another due any day now. I am training to be a driving instructor but have a full time job as a store manager for a large chain of convenience stores...

Q - How did you become involved in the Commodore Brand?

I got a zx spectrum at 10 years old and fell in love with it, it was a box of magic to me at that age. my brother broke it.. and my family replaced it with a commodore 64.. That was it I was hooked

Q - Tell our readers about Vb64 what exactly is it and what can it do for our reader?

VB64 is a c64 emulator, it emulates the internal functions of the key c64 components (cpu, vic, sid, memory, etc) it will just play some of those classic games from the day

Q - How many people worked on the project?

me , just me.. I had some help from dave horrocks (Hox64) when I first started, I was having problems with the CPU mmu configurations & david kindly went out of his way to help.. Btw (Hox64 rocks - its the best c64 emu there is)

Q - Where did you find the relevant documentation?

I have a really cool book for the c64 (programming the c64 by R C West), that book really has been one of the key reference points whilst working on vb64, Also project64 have some excellent docs on the cpu, vic, sid & cia

Q - Is the whole program written in Visual Basic?

its all pure vb6.. Every line

Q - Visual Basic isn't an application most would think to write an emulator did you experience many problems?

Vb has no bit operations.. you cant bit shift.. the whole language just isn’t cut out for emulation. one of the hardest parts I have had was the cpu's BCD mode.

Q - Were some of the problems down to Visual Basic?

yeh, trying to maintain a balance between speed and accuracy is near impossible in vb.. I have to use line based vic rendering for speed this makes some vic tricks impossible to display.. (i.e vb64 cant open Side-borders - yet) also sid emulation, vb aint fast enough to emulate and render the sid as re-sid does.. so I have come up with a rather novel way that takes barely any cpu time at all.. :)..

Q - Some user may wonder what Visual basic is can you give a brief outline of what exactly the programming language is?

its an event driven basic. With a visual designer for your GUI

Q - Have you thought about a VB128 or similar to support the Commodore 128 or other machines or do you want to concentrate your efforts on a really good Commodore 64 emulation platform?

oh yeh, I have a working (ish) vic-20 version and am doing the c16. these are most definitely in the pipeline

Q- Can you tell our reader what is implemented in VB64 and the compatibility?

CPU,VIC II, SID, CIA's 1&2, Keyboard, Joysticks, Tape deck.. compatibility is some where around the 80% mark.. my CIA emulation has some timing bugs that I am investigating.

Q - How do you measure compatibility, do you just run as many applications as possible and check them against a real Machine or is there some sort of standard to work against?

I have a folder with 100 c64 single file games & demos, I test each one.. if 50 of them work and the rest dont I say I have have 50% compatible (a simple and probably very shit method) hehe

Q - Maybe this is a silly question but could the SCPU from CMD be emulated with VB64, have you thought about adding Something like this sort of emulation feature?

when I started I looked in scpu and started writing some code to emulate and then decided against it (due to the overheads)

Q -There are quite a few Emulators for the Commodore 64 apart from the Visual Basic what makes your different?

hehe well its less compatible than most it has more bugs than most

Q - I suppose with Visual Basic you use Direct X is this why there is only a Windows version of the software?

no no, vb64 could actually be ported to linux or whatever , it is just basic.. the few functions I use from direct X could easily be replaced with say SDL..

Q – so linux has something like Direct X

yup.. SDL ;)

Q - Someone is going to ask, Will the source code be available for download?

yes absolutely.. but not just yet, I want to release the cource for vb64, 20 & 16 at the same time as it will be all one big project

Q - Is the software free to download?

Yes completely

Q - If our reader finds a bug should he report it to yourself?

yes please, bug reports do help..

Q - The website is quite sparse do you have plans to expand the site maybe a FAQ section?

I am building a website for all my vb emulators... the project will change from vb64 to VBCEP (visual basic commodore emulation project) it will be one Single package

What is VB64 ?

vb64 is a c-64 emulator written entirely in visual basic version 6, it was started in 2000 as a small hobby to see if at all it could be done this is the result.

What can it do ?

VB64 emulates the inner functions of the c64 to quite an accurate degree

•       6510 CPU - All opcodes (inluding all illegal opcodes) cycle exact 
•       Vic II         - Cycle accurate line based emulation (80% vic tricks work) 
•       Sid             - All waveforms (including mixed), ADSR envelopes, ring mod, digi's 
•       CIA 1 & 2 - Timers A & B, NMI, IRQ, TOD 

VB64 Will accept the following file formats, T64, PRG, P00, TAP, CRT No support for D64 as of yet but this is in the pipeline.

Wheres the source ?

VB64 is Closed source for the time being...

Where can I download it ?

Download latest Windows version V3.001

DTV mod:
C64 DTV in the original C64 case

When I first heard about the C64DTV, I knew this is what I have been waiting for. I always wanted a clone which is compatible with the original Commodore 64, but more powerful and has extra resources like other resolutions, more memory, etc. Fortunately the C64DTV (I own a European PAL version V2) can be hacked see this link

Many ways, and you can find a lot of information about it on the Internet. See my references below! I checked many hacking pages, so I knew that it is possible to attach an original disk drive via the IEC bus, and it is possible to attach PS2 keyboard to the unit. But as far as I know, no one tried to put the DTV back into an original C64 box (I can be wrong though). Then I found Lars Pontoppidan's MMC2IEC available here

project which uses MMC/SD card for the storage and it acts like a 1541 drive (sure a little bit better).

As I am experienced with microcontrollers as well as C/C++ and the assembly language, I knew that there is a way to handle the original C64 keyboard matrix with a microcontroller. Unfortunately the DTV does not have the keyboard rows/cols pin outs, so there is no perfect solution, but the PS2 implementation might be good enough for my purposes. I thought, the same microcontroller - in this case it's the Atmel ATMEGA32 with 32 I/O pins - could scan the keyboard matrix and send the necessary press and release codes on the PS2 bus to the DTV.

The PS2 port on the DTV is unidirectional; it means the host never sends data to the keyboard. Great. Thanks to the other researches that cool guys have done before, I had enough knowledge about everything. I knew how to generate PS2 codes, I knew how to scan the keyboard matrix, and thanks to Lars Pontoppidan, I had a solution for the IEC interface. All I had to do is just modify the original MMC2IEC design a little bit, and implement the keyboard scanner function.

I have spent about 3 weekends with this. Unfortunately the PS2 interface for the DTV has some odds. It also has some remapping, therefore my implementation had to do some workaround for special keys. For example on the C64 keyboard the key 2 has the “sign when it's shifted, the PC keyboard has the sign @. There are some other mismatches, which make my life difficult. Anyway, what you see here is the first version. I know it's not perfect, but it works.

I do not want to write about the other obvious hacks for the DTV, you can find out yourselves these ones (like joy port, video fix, updating the flash, etc), just google them. I am not really concerned about the IEC and MMC stuff either, Lars did a great job. I am only writing about the keyboard matrix here.

Theory: the IEC bus has higher priority than the keyboard matrix. Whenever the IEC works - which

means you load or save something - there is no keyboard scanning at all. When there is no disk

handling, the microcontroller has an idle time, in this case I scan the keyboard matrix as fast as I can. Every time I compare the last scanned values with

the new ones, so in case of one key there is four different states (0-pressed, 1-released) if we have the bit #1 as the old bit, and the bit #0 is the new bit:

• 00: was pressed before and still pressed

• 01: was pressed, now it's released

• 10: was released, now it's pressed

• 11: was released, still released

In case of 00 and 11 there is nothing to do, because the state of given key has not changed. If we get the 01 value, we have to generate a release code, whereas if we get the 10 value, we have to generate the press code. Because of the different keys (like 2/@ - 2/" or 6/^ - 6/&) sometimes it's more complicated, so we need to change the code or virtually press or release the shifts. This is all done by the UpdateKeyMatrix() function.

Let me highlight some points about the schematic.

• First of all, it's pretty simple. I used a 40PIN version of the microcontroller, where we have the PORTA and PORTC on the "right side" of the chip. This makes the soldering very easy.

• I use the PORTA and PORTC for the keyboard matrix (COLS and ROWS), but in this version I do not handle the Restore button. (maybe in the next version)

• I do not use LEDs, but they are on the PORTD bit #0 and bit #1. They were in the original MMC2IEC project but I just don't need them.

• Between the DTV and the AtMEGA microcontroller there are five data lines: PS2Data, PS2Clock, IECData, IECClock, IECAtn. These are on the PORTD.

• The PORTB is used to handle the SPI bus, this is what communicates with the SD/MMC card.

• I use the internal 8MHz clock source, but it's just around 7.6MHz because of the 3.3V Vcc voltage.

Some points about the software:

The main loop in the mmc2iec.c is pretty simple. It scans the keyboard if there is nothing else to do, otherwise the IEC handler works. Obviously I initialized the keyboard handler with the InitKeyMatrix() function before I use the UpdateKeyMatrix().

While (TRUE) {

// scan the keyboard normally (IDLE time) UpdateKeyMatrix();
// IEC-MMC handler (LOAD/SAVE)

Ps2.c: this is the one that sends a byte on the PS2 bus to the DTV. Simple as hell, as the PS2 port is only output for the microcontroller. I am not even sure that the parity bit generation is correct. If not, that means the DTV does not care about the parity bit. Good.

C64keymtx.c: the keyboard handler module. There is an array called "r" (unsigned char r[64] PROGMEM) which contains the PS2 codes. The only one exception is the colon ":" key, which is handled differently and I used 0xff for this key. Obviously, the table contains the keys based on the schematic - as you can see, the rows and cols are mixed, but it was the easiest way to solder and I did not mind to change the bits in the software. It does not matter anyway.

How it works? Read the source. It tells everything. One more thing to mention. You will find out that I used the goto statement inside the UpdateKeyMatrix() to break up the loops some cases. I know that every book says you should never use gotos. Bullshit. I use what I want to use. And besides, this is a microcontroller application where speed and space are factors. I tried some different ways. Anything else generates more code. BTW the WINAVR is just perfect, the best compiler I've ever seen. Still, some bytes matter to me. So for those who are against the goto: try to write an assembly code without braches and jumps. Good luck for that. Gotos don't mix up your code. If they do for you, you should find another job to do. Selling postcards for example. :-)


•       The shematics of the project
•       Source code mixed with the original MMC2IEC code. You need WINAVR to compile 

Links and references

•       Lars Pontoppidan's page, MMC2IEC
•       DTV hacking
•       Daniel Kahlin's webpage 
•       PonyProg, the application I use to program the Atmel microcontroller
•       A low cost programmer for the Atmel ATMEGA32 

(Don't forget to turn off the JTAG interface of the ATMEGA32, otherwise the PORTC won't work.)

Things to do for the next release
(just some ideas in my mind)

•       Accurate RESTORE key handling. Well, there is no RESTORE handler at all now. 
•       LED's. Just to make it perfect. 
•       Modify the DTV's flash so I won't need to press the CTRL key always. Absoultely required. 
•       Video fix and dedicated video and audio ports on the box. Won't be too hard. 
•       Soldering the joy ports as well. I will do. 
•       Hack the original IEC routines to speed up the load and save. There must be a way as we can modify the FLASH. Thanks, Mr. Kahlin. 
- Here you can see the fusebits settings for the microcontroller: Fusebits Diagram Shown above

Interview with Jozsef Laszlo
DTV mod: C64 DTV in the original C64 case

Q - Please introduce yourself to our readers!

A - I am Jozsef Laszlo, an IT engineer originally from Hungary but right now I live in Canada. I am 37 years old so I grew up in the time when the Commodore 64 and ZX Spectrum were "the" computers. I work for a video game producer company as a game programmer.

Q - What interested you in Commodore machines or do you just like the C64 DTV?

A - I like all the old machines. In fact, I collect them. I have a lots of old 8bits machines at home, most of the Commodore ones (16/64/128) and ZX Spectrums as well. When I first read about the DTV and it's success, I was happy because it means, I am not the only one who is in love with old stuffs. Obviously I wanted one. Actually when I saw how cheap it was, I bought two. One is still in the original joystick case, but the other one is in the C64 case.

Q - Someone must be reading thinking what is a C64 DTV can you introduce and describe the device?

A - It's a C64 (mostly) compatible device which originally was designed for a small TV game with 30 built-in games. Thanks to the hacking capabilities it's much more than that. I'd call the DTV a new C64 with advanced graphics modes, more memory and more features. You can turn the DTV into a classic C64 where you can expand your basic, overwrite your KERNAL, speed up your applications, etc. The DTV is a must for all C64 lovers.

Q - Quite a few sites are devoted to hacking the DTV were these useful or did you create your own procedure for Hacking the Device?
A - Yes, they were absolutely useful. Before you start hacking a device, you have to know it. Fortunately, these sites can help discover the device both from software and hardware point of view. I had to download all the documentations and schematics before I started my own hack.

Q - The device was designed with Hacking in mind is this correct?

A - Sure. The original device was designed by the same American lady called Jeri Ellsworth who designed the Commodore One as well. She did a marvellous job. I am pretty sure that she wanted "us" to hack the device. That's why you can find user port, keyboard and IEC connectors on the pcb. Thanks, Jeri.

Q - I have seen a few of the DTV devices in various cases, what prompted the decapitation of a real Commodore 64 to house the device?

A - I needed a DTV which is really close to the original C64.In normal hacks people use PS2 keyboards and connectors patched to the joystick case. For me it's just does not look like a computer. It deserves more. It deserves the original case. (Just my point though.) Besides, isn't it nice to see a C64 which is much more than a C64? Q - Do you have electronics Experience?

A - Yes I do. Originally I graduated as an Engineer of Automation and Industry Informatics which means both hardware and software experience. Earlier I worked with discrete IC's (74HC series)but now I'm rather interested in FPGA's. I have some Xilinx developer boards. I designed a ZX Spectrum.

Q - Did using the original Commodore Keyboard cause problems?

A - Some. The original design itself is quite strange. The keyboard membranes have some resistances (65-75 ohm), but there is no protectng diodes on the CIA lines, therefore it's possible to make a short circuit if one row drives Vcc while the other does Gnd and you press two keys in the same column. Therefore I needed a special row selection method in the software. Instead of rolling a single 0 bit (which means GND) through the rows I turn on the output for one row only. That means that there is now logical 1 on any other rows. This is a hardware issue. Another annoying problem is the ps2 mapping inside the DTV.The DTV's keyboard interface is a PC keyboard interface. On the PC keyboard certain symbols are not where they supposed to be. For example the keyboard 2 has the sign @ on the PC, while on the C64 it has the sign ". Therefore the microcontroller has to do some cheating and re-remapping some keys. For a perfect solution we'd need a more complex software for the microcontroller. It's not perfect now.

Q - Do you have any tips or better ways of working while doing the hack you would like to pass on to readers?

A - Be careful! If you are not experienced in soldering and electronics, ask someone who is. The DTV pcb is quite small, soldering is really tricky. You need thin wires and patience. And before you put your DTV into the case, plan the layout! Check if all the connectors, holes are gonna fit. You don't have to copy my solution. Try to plan a better one!

Q - The DTV is quite a small circuit board inside a large Commodore Case do you have plan's to add further hardware?

A - I will be soldering the joy ports as well so there will be a way to use original joysticks. I also plan to redesign the entire disk interface, because I want to free the IEC bus for external devices. I'd like to use a fast communication line between the DTV and the microcontroller for the "disk" operations. I never liked the IEC speed. It's just too slow. This means I'll have to modify the basic and the kernal as well. I'd like to see dos or unix-like commands so I can type DIR or CD or MKDIR.

Q - Did you experience any major problems in the process?

A - As I mentioned above, the keyboard remapping, changing codes on the fly and sending virtual shifts were problematic. On the hardware side, you have to be very careful with the AtMega's fuse bits. These are the configuration bits for the clock source or additional interfaces like SPI or JTAG. If you play with your fusebits, you can kick out your microcontroller easily. Don't do that. Ask experienced people!

Q - Do you still use Commodore machines?

A - Rarely but yes, I do. It's just so much fun.

Q - Has the device been taken too kindly by readers of the website?

A - I think people like it. Of course, tastes are different so I can imagine that someone found it silly to put back the DTV to the C64 case. Does not matter, does it? I am pretty sure that hardcore PC gamers (the new guys) think that old guys (we) are silly. I don't really mind. I am old enough to do what I really like. :-)

Q - Has anyone criticized you for decapitating a Commodore 64?

A - I have not got any criticism so far. Some mentioned bugs. Thanks for that!

Q - Do you plan any other DTV conversions into other cases?

A - I try to finish this one first, then we'll see. I really don't know yet. I'd like to go ahead with my FPGA project (ZX Spectrum) as well.

Q - Do you feel there are any limitations or problems with the DTV?

A - Well, it's obviously not 100% compatible with the original C64, therefore some games won't run. Thanks to some great guys, more and more old games are patched to work with DTV. So I'd say compatibility issues are annoying, but the advantages of the DTV eliminate them. What I really want to see is a new game which is specially has been written for the DTV and uses it's capacities.

Q - Our readers I know will be wanting to carry out the same process do you have a step by step process for the none technical that can maybe solder ok?

A - Sorry, not really. I truly think that inexperienced people should ask someone who did thinks like this before. You guys don't want to ruin your DTV, do you?

Q - Do you have any soldering tips for the none soldering readers?

A - See pervious answer. However, this is a profession that can be learnt. Ask someone to do it, then learn. That's what I did.

Q - Do you have anything to add or question you wished i had asked?

A - I'd rather just say something to your readers. Keep what you have, don't let the 8bits age disappear. Although it's history now, as long as we are here, 8bits machines won't die.

Hexfiles part 9
By Jason Kelk

Ah, there you are. I wondered where you'd got to. Ready to start playing with that new project I promised last issue then? Good, lets get on with it, shall we? We're going to write a little game. Don't worry, it's not going to be Armalyte or anything complex like that, we're just going to move a few sprites around for a starter. As usual, there is some source on the covermount, the filename is game_1.asm, so fire up your text editor and load it in.

The majority of the source is variations on routines we've covered in the past so you should be happy with them, so instead of dissecting the entire program a line at a time I'm just going to cover the points of interest.

So, starting from the top of the source and working down, the first stop is a routine called makespr which fills the last sprite of bank 0 ($3FC0 - $3FCF) with $FF to make it a solid block. This is just a temporary measure, eventually there will be real definitions but for now we just want to see where the sprites are. A little later on in the source (after the raster setup) is a loop called setsdp that points all eight sprites to $2800 for their data.

Right, now we have to set everything up. First, a quick call to xpand (which we'll cover in more detail soon), which is a routine that sets all the sprite positions up. Then comes something we've not used before:

                lda #$00
                sta sync
strtwait        cmp sync
                beq strtwait

Now at first sight this seems totally pointless, doesn't it? If sync is set to $00 it's not suddenly going to change whilst we're sitting in a loop ... Well, actually it is because the second raster split, which is at line $FC, sets sync to $01 once a frame, this routine actually synchronises the runtime code up with the raster, which is where the label gets it's name.

After that we read $D01E, which is the sprite to sprite collision register, but we don't do anything with the values since we're merely reading it in order to clear it for when the game starts.

Next up is the main loop of the game and it uses another loop to wait for sync to get the game movement synchronised to the raster interrupt; then we have three calls to subroutines, joyread reads the joystick in port 2, sprmove moves the sprite data and, again, xpand puts the sprite data into the registers. After the main processes we have another read of $D01E but this time we're going to actually be doing something with the data. As with other sprite registers, $D01E represents each sprite with a bit, there are eight sprites and eight bits just like the sprite enable register $D015 (covered in part 4) but these bits become set if two sprites collide.

So if sprites 0 and 1 bump into each other, $D01E is set to $03 (sprite 0 being the first bit and having a value of $01, sprite 1 being the second bit and representing the value $02) and if sprites 0 and 7 have a pile-up, $D01E reads $81.

There is a problem with $D01E though; if sprites 0 and 3 hit each other and at the same time sprites 1

and 6 have a prang, we can only see that sprite 0 has hit at least one of the others, not which one(s). In fact, if all four sprites hit each other the value in $D01E will be the same as when they collide as two pairs so whilst that's not a problem for what we're doing right now (since we just need to know if sprite 0 has hit something) later on it will get in the way so this is only a temporary measure and we'll be dropping the use of hardware collisions fairly soon.

Anyway, back to the source and after that read from $D01E we have a new command called LSR, which means Logical Shift Right. LSR moves all the bits in a byte down one, so the highest bit, the one that represents 128 moves down to the 64 position, the 64 to the 32 and so forth.

The lowest bit, the one representing 1, falls off the end and into the carry flag and the highest bit is left un-set by this operation. LSR has a number of uses, not least of which is that it basically divides any 8 bit number by two. In our code we have an LSR A which is C64Asm's way of saying that the Logical Shift Right will happen to the value in the accumulator, but LSR $4000 will work just as well and perform the operation on the appropriate byte in memory.

But why are we using LSR here? Well, it's a quick and dirty way of checking if the lowest bit of $D01E (the one representing sprite 0, our "player" sprite) is set. As I said, that low bit will fall into the carry flag and the BCC (Branch on Carry Clear) simply causes the program to move back to the label main if the carry flag is empty after that operation.

If the carry isn't empty that means sprite 0 is touching another sprite, so we do a quick INC $D027 to change the sprite colour for now to indicate that a collision has happened and then head back to main again.

The next part of the source is just the stock raster routines we've covered before, with raster2 setting sync to let the runtime code know it's time to start work before it calls $EA31. Then we arrive at xpand... this is the most complex routine in the entire piece of code, it takes the sprite co-ordinates from a table called sprtpos and puts them into $D000 onwards, but it does a little trickery to make handling the MSB easy for the rest of the program as well. This needs a complete breakdown of the code, but I need to cover two more new commands before that, ASL and ROR.

Accumulator Shift Left, or ASL to it's friends, is basically the reverse of LSR in that all the bits of a byte move up a place; the 1 bit is left un-set and the 128 bit gets nudged into the carry. And, since it's the opposite of LSR, it can also be thought of as multiplying an 8 bit number by two (although anything over $7f will need the ninth bit in the carry taken care of to get a correct answer). ROR, or ROtate Right, is almost the same as LSR, except that the the previous contents of the carry get pushed into the 128 bit before the other end falls into it.

Both commands can work directly to the accumulator or to memory as with LSR. (There is a fourth command to this set, ROL, which works like ASL but has the contents of the carry pushed onto the end like ROR and we'll come across that at another time.)

Okay, so now for a line by line look at xpand. the sprtpos table contains sixteen bytes and they are stored as sprite 0's X and Y, sprite 1's X and Y and so forth, the same order as $D000 onwards uses. The first couple of lines just copy sprtpos+1 (the first sprite's Y position) straight into the Y register:

xpand ldx #$00 We know this...

xpndloop lda sprtpos+$01,X Read the Y co-ordinate
sta $d001,x Set it into the sprite Y position

But the next bit to read sprtpos+$00 (the first sprite's X position) is a little more fiddly:

 lda sprtpos+$00,x      Read the X co-ordinate
 asl a          Multiply by 2

Here we are using a trick that the Commodore designers came up with ages ago (the same system is used for the X position of the light pen register). Because the screen is 320 pixels across we have to use the MSB (as explained in issue 10) but MSB handling is fiddly at the best of times. So we're taking the value in SPRTPOS and multiplying it by two using the ASL. But that doesn't actually sort out the MSB, does it? So...

ror $d010 Roll $d010 a bit to the right

...we move the contents of the carry into the top of the MSB (at the 128 position). Because the loop runs eight times the first bit in ends up in the lowest position, the second at the second lowest and so on, until the bit that needs to represent sprite 7 is at the highest position. Then we...

sta $d000,X Write to the sprite X position

...write back the contents of the accumulator to the sprite. Finally we manage the loop:

inx     Just a standard loop counter, but
inx     we're going up in steps of 2...
cpx #$10        ...until X reaches $10.

bne xpndloop

And to finish, we count up in steps of 2 until we reach $10 and have, therefore, run the loop eight times - since two bytes are transferred each iteration of the loop, that's all 16 bytes of sprtpos transferred during those eight passes. This loop may seem a little complex, but MSB handling is a tricky job anyway and although it sacrifices some of our movement control horizontally, this technique means that from here onwards all sprite X co-ordinates are just a value from $00 to $FF so we can do quick and simple mathematics to them in order to shift the sprites;

a simple INC to the first byte of sprpos once a frame will move the first sprite right all the way across the screen with no extra work needed. There are situations where it's necessary to make things move at a single pixel a frame, but for general useage, this goes and if it's good enough for Commodore's design team it's good enough for us!

After the xpand routine comes joyread, a routine to scan the joystick. First up is a read from $DC00 and we're using LSR again to move the bits off into the carry one at a time to see what state they're in. $DC00 actually works in reverse, if the first bit is clear that means that the joystich has been pushed up so our sprite needs to react. How do we test that?

With a Branch on Carry Set (BCS) command; if the carry is set after the LSR then the stick isn't being pushed up and we branch over the routine that moves the sprite up so that it doesn't move that way. The same goes for the other directions and then fire. The five joystick bits represent (lowest to highest) up, down, left, right and fire.

So we move the sprite up like this:

ldx sprtpos+$01 Read the sprite Y position dex
dex Subtract four

cpx #$32 $32 is the top line of the screen bcs setup

BCS again? Well yes, due to the way the 6510 does mathematics, BCS will act as a "greater or equal to" command here; if the contents of the X register are greater than or equal to $32 it'll branch to setup.

ldx #$32

Since this will only happen if X is less than $32 it makes sure X will always be $32 or greater, so not into the upper border.

setup stx sprtpos+$01 Store the X position back

The BASIC equivalent to the CMP, BCS and LDX there is IF Y<50 THEN Y=50. The down works in a similar manner, except that it's adding to the X register with four INXs and uses a BCC to branch over the LDX #$E5 (the lowest position a sprite can be at without being under the lower border) since BCC only works as a "less than" when used after the compare, not "less than or equal". (These tricks with BCC and BCS work after any compare command, not just those for the X register and can be very useful.)

Again, left and right are the same basic block of code as up and down, except that it has different stop positions for the edges of the screen and, because the X position of the sprites gets multiplied by two when they're displayed by xpand, the X position is only changed by 2 rather than 4.

Okay, we have one final loop to look at, sprmove takes the contents of sprtpos+$04 (sprite 3's X position) and adds the contents of another table called sprtspd to it, then goes through the sprite positions until it does sprite 7's Y position. Since sprtpos contains the present positions of the sprites and sprtspd contains their "speed" settings, the value that is added to each X or Y co-ordinate in turn to make the sprites move.

This sprtspd table uses some trickery, adding $FF, for example, to a byte will actually cause the byte to "wrap" around so the value goes down by 1. This is where xpand really comes into it's own, instead of having to know which direction the sprite is moving and have a routine to handle it we just perform an add! Sneaky, eh?

Righto, that's your lot for this installment, but next time we'll add some new features to our game, like some better collisions, an ingame soundtrack and some nice graphics. Load up game_2.asm to get the little game-ette going with a sprite and some backing music (as per how we did these things with the demo previously, so you should be able to work out for yourself how). As always, contact me with any questions and I'll see you next time, matey.

The source code for the routines above can be downloaded here for easier reference.

Commodore Free would like to thank Jason for granting permission to print the article.

Unfortunately at the moment this is the last article in the series, you could contact Jason and request more if you found the information useful