Tuesday, September 4, 2018

The new 6502 Shack

I've create a new blog dedicated to the MOS 6502 microprocessor and the computers that are built on it, and also a new Facebook group for it.  Read more about it here.

Sunday, September 2, 2018

Taking Stock of the Final Expansion 3 Kit

I finally sat down yesterday and printed out the bill of materials for the Final Expansion 3 kit.  The assembly instructions can be found here.  https://www.lemon64.com/forum/viewtopic.php?p=767044

Note: This isn't a kit for the beginner, so if you are one you will have a better chance at success with help from someone with experience.  This is not a knock on the quality of the kit, which seems to be quite good.

So, I carefully examined each part on the bill of materials.  It was easy to identify most parts because they have markings that are listed.  There are three tiny parts without markings.  One is a crystal which is a tiny little metal can with two leads coming out of one end.  The other is a small white cardboard carrier with two tiny little rectangular dots.  These dots are two surface mount capacitors.

There are five surface mounted parts in this kit.  Assembling these is considered an advanced skill.  This will be my first time with surface mount components.  I am eager to give this a go.  YouTube videos showing how to do this are aplenty.

After carefully examining everything, I was able to account for all the parts in the kit.

Here is a photo of the unpopulated board.


I also posted a video about all this. 

Getting Ready to Build the Final Expansion 3 FE3 Kit for the VIC-20



Next stop - Assembly!  :-)

Thursday, August 30, 2018

Gakken Mini Blocks - Blink and You Miss It

I discovered sadly that Gakken made a cute little version of their EX system called Gakken Mini Blocks, but they stopped making them before I noticed.  I think this is so neat.  I blogged about my love of the Gakken Denshi Blocks a long time back.  See http://microcomputing.blogspot.com/2007/

Some people are selling these on ebay, but they are discontinued.  :-(  Too bad.

Here is a photo.


I also found a link to a video about it.  The presenter explains the product and assembles a simple computer circuit.



Wednesday, August 29, 2018

Upgrading to a Soldering Station

For some years now I have been using a cheap soldering iron with a 15W/30W switch that I purchased from Radio Shack (I miss them).  This has been just fine for the electric guitar modifications that I like to make, but I'm not comfortable using this iron for the Final Expansion 3 cartridge for my VIC-20.  I decided to purchase a soldering station with temperature control so I can tweak it while I'm doing my work.

Here is the station I bought on Amazon for about $30.

This is an AOYUE 469, which is a 60W iron.  It has a nice steel spring to keep the iron, which is much better than the cheap stamped stand I was using.  It has a place to put your spool of solder, and a place for a sponge (that's not a Post-it note!) to keep the iron tip clean.


Here you can see this does not let you specify a temperature.  The specifications provided state that the temperature is from 300F to 480F.  But, the dial goes to from 1 to 8 (not to 11)!


This is a photo of iron tip.  If you look carefully, it seems they have pre-tinned it for me.







Monday, August 27, 2018

Prelude to a Kit (Final Expansion 3)

Let me just show a few photos of what came in the Final Expansion 3 kit for the VIC-20 (that I ordered from SkydivinGirl over on the Atari Age forum) before I get down to beginning assembly, just so people can see what is in the box.

Here is how it came packaged.  I think this is fine because there is nothing in here that could be considered fragile, at least in the sense that glass is fragile.  ;-)


This is the bare board in a nice bright fire engine red.  You may notice there are a few spots where parts will need to be surface mounted, but its mostly thru-hole.  It should be a pretty easy build.  I used to do a lot of PCB assembly in my youth, so I'm comfortable with this.



The ICs came in this anti static bag. My understanding is that the ROMs are already programmed.


Here are the capacitors, resistors and other parts.


Finally it comes with two different kinds of stickers to choose from for the top of the cartridge case, which is not included.




I decided that I would not buy the optional case, which is more than $20 by itself.  Instead I decided to sacrifice an original VIC-20 Mole Attack! game to provide a cartridge.  I will need to cut some openings for the SIO ports that Final Expansion 3 uses to connect to the VIC-20 serial port and also out to another serial device such as a floppy drive.  Also openings for the SD card slot and for a bank of DIP switches will be needed.



Finally I'll note that the kit doesn't come with any assembly instructions, which surprised me.  Instead I needed to Google for them.  Save a tree?

Here's the link for the instructions.  They are for an older version of the board, but they should suffice.   http://www.lemon64.com/forum/viewtopic.php?p=767044

Saturday, August 25, 2018

Starfield Simulation in Liberty BASIC

Here is the starfield simulation that for the VIC-20 that I posted a few days ago, but ported as simply as possible to Windows using the Liberty BASIC language (http://www.libertybasic.com).  If you compare them side by side you can see that a lot of the original code is preserved across the translation.

Enjoy!

 dim st(9,1)  
 gosub [setup]  
 timer 20, [cycle]  
 [cycle]  
   for c=0 to n  
     xold=st(c,0)  
     yold=st(c,1)  
     st(c,0)=xold*1.23  
     st(c,1)=yold*1.23  
     x=int(st(c,0))  
     y=int(st(c,1))  
     if abs(x)<15 and abs(y)<15 then  
       gosub [clearStar]  
      else  
       if abs(x)>200 or abs(y)>200 then  
         st(c,0)=(rnd(1)-0.5)*3  
         st(c,1)=(rnd(1)-0.5)*3  
        else  
         gosub [drawStar]  
       end if  
     end if  
   next c  
   wait  
   goto [cycle]  
 [clearStar]  
   #starfield "color black ; place "; xCenter + xold; " "; yCenter + yold  
   #starfield "\."  
   return  
 [drawStar]  
   gosub [clearStar]  
   #starfield "color white ; place "; xCenter + x; " "; yCenter + y  
   #starfield "\."  
   return  
 [setup]  
   input"# stars (1-10)";n  
   n=n-1  
   for x=0 to n  
     st(x,0)=(rnd(1)-0.5)*200  
     st(x,1)=(rnd(1)-0.5)*200  
   next x  
   open "starfield" for graphics as #starfield  
   #starfield "home ; posxy xCenter yCenter"  
   #starfield "down ; fill black ; backcolor black"  
   #starfield "trapclose [quit]"  
   return  
 [quit]  
   close #starfield  
   end  
Here is a quick video I did to showcase my VIC-20 and my other 6502 computers including a Commodore 128, an Apple Iic, and an Atari 800XL.  Enjoy!


The next video will be about the Final Expansion 3 kit that I will be soldering together.

Wednesday, August 22, 2018

VIC-20 Final Expansion 3 kit

In order to get serious about doing anything on the Commodore VIC-20 you really need to be able to get files into and out of the real machine, in my humble opinion.  I have also started using the VICE emulator, but whatever you do should be tested on the real hardware, and ultimately that's where the fun is.  ;-)

So, I've looked at a few options and I've settled on the Final Expansion 3 (FE3) cartridge kit.  I'm very comfortable soldering things together, and it makes things more interesting.  I also purchased a budget temperature controlled soldering station because the cheap iron I've been using for years doesn't seem suitable to me for doing this project because there is a little bit of surface mount soldering involved.

Here are a couple of photos of the blank board.



One really cool feature of this board the serial ports that hang off the back.  I can plug my VIC-20 serial port into the FE3 and use it's 512K of flash RAM (or an inserted SD card) as a huge floppy disk, and I'm told that I can even plug my Commodore 128 into it while it is being powered by the VIC-20, and use it as a floppy drive for that machine too!  Very cool!

Tuesday, August 21, 2018

Starfield Simulation in Commodore BASIC

I posted a challenge in the VIC-20 group on Facebook.  The idea was to replicate the forward screen of the starship Enterprise from Star Trek.  This shows stars moving from the center of the screen to the edges, simulating forward motion.  It isn't meant to be an accurate 3D simulation.  ;-)

Here is my code of this.  One other person also submitted a version of it.  This could form the basis for a game.

[Update] --- I made a new version of this in Liberty BASIC!  Click to see the new version

 10 gosub 500  
 100 for c=0 to n  
 110 xold=st(c,0)  
 120 yold=st(c,1)  
 130 st(c,0)=xold*1.23  
 140 st(c,1)=yold*1.23  
 150 x=int(st(c,0))  
 160 y=int(st(c,1))  
 165 if abs(x)<2 and abs(y)<2 then 320  
 170 if abs(x)>10 or abs(y)>10 thenst(c,0)=(rnd(1)-.5)*3:st(c,1)=(rnd(1)-.5)*3:goto150  
 180 pstar=center+x+y*22  
 190 poke center+int(xold)+int(yold)*22,32  
 200 poke pstar,108  
 300 next c  
 310 goto 100  
 320 poke center+int(xold)+int(yold)*22,32  
 400 next c  
 410 goto 100  
 500 poke 36879,14  
 501 input"# stars (1-10)";n  
 502 n=n-1  
 505 print"{clrscrn}";  
 510 dim st(9,1)  
 520 for x=0 to n  
 530 st(x,0)=(rnd(1)-.5)*10  
 540 st(x,1)=(rnd(1)-.5)*10  
 550 next x  
 590 center=7932  
 600 return  

Monday, August 20, 2018

Introducing The Friendly Computer!

When Commodore introduced the VIC-20 they called it The Friendly Computer.  This is probably more because of the manual they included with it than because of anything else.  The book was really easy to understand.


Here is my own VIC-20.  This is an early one, with the squared off keys and the two-prong power plug.  I've got it plugged into a Sylvania TV using an RF modulator.

If you look closely at the screen it reports CBM BASIC V2, and 3583 BYTES FREE.  The computer comes with 5K RAM, but it uses some of that to map the screen, and some more for managing the BASIC interpreter.  If they had thought to provide 8K RAM this would have doubled the amount the programmer has access to.  This would have made the VIC-20 a lot more powerful.

Nowadays people wonder how anything could every be written with only 3.5K RAM, but we were so used to this back then.  You might be surprised how much can be done with a little ingenuity.  As a comparison, the original Atari 2600 VCS game console had only 128 bytes of RAM.  The VIC-20 has 28 times more RAM!  In addition, you could plug a RAM expansion cartridge into the VIC-20 to add more RAM.  Commodore made several sizes up to 16K RAM, and other companies made bigger ones.

I also have a Commodore C2N cassette drive.  I also had one of these in the 80's.  I have been using the tape drive to save some small programs.  This is nothing like a floppy drive, but you can save programs by name, and it sure beats retyping in programs every time you want to use them.

I also have a Commodore 1571 floppy drive.  These are great, but they don't make it possible to send and received programs to and from other people on the Internet because the disks have a format that can't be read on Macs or PCs.  I want to share what I'm doing, so I have purchased a kit to build my own SD flash memory adapter that will behave like a floppy drive and also let me use the SD card to copy files to other computers so I can share with others.  I'm very excited about that and I'll blog about it also.

Back to BASICs

Some time ago I began to assemble a small collection of vintage home computers in order to begin blogging about what makes these machines so appealing.  In particular, programming these computers in BASIC in my early years made a huge impression on me and my creation of Liberty BASIC was inspired by my love for BASIC.

I have obtained the following machines in working condition.

Apple //c
Commodore 128 (a Commodore 64 compatible machine which also has a Z80 processor)
Commodore VIC-20
Atari 800XL
TRS-80 Color Computer 2 (not sure I will actually use this one)
And a few less popular computers that might make guest appearances.

To begin with, I am focusing on the Commodore VIC-20.  I have some ideas about very simple and fun projects in BASIC, and some Forth.  Since most of these machine also have a 6502 processor, perhaps there will also be some posts about that.


Wednesday, July 13, 2016

Ziff Davis Interactive, Liberty BASIC, and Bill Gates

Robert Gerami, a close friend of mine worked for Ziff Davis (the owner of PC Magazine) in Cambridge, Massachusetts.  He was in charge of their free downloadable utilities.  They were particularly well known for their whimsical screensavers, including one where a cartoon of Bill Gates would smash your Windows 3 desktop to reveal a shiny new Windows 95 desktop which would then be eaten by bugs before your eyes.

Robert liked what he saw in Liberty BASIC and decided to offer me a chance to have it featured on their web site as a special edition.  But, before he was willing to do this he want it to support making API calls.

The best part of this arrangement was that Ziff Davis would pay me to do the development, and that the resulting work would still be owned by me.

This is one of the important features of what became Liberty BASIC v2.0.  This was promoted by Ziff Davis Interactive on their website for several years.

Thursday, January 21, 2016

DOOM and the raiders of the lost hours

My first PC compatible computer ran DOS and Windows, and OS/2 and... DOOM.

In between rounds of development work on Liberty BASIC I would take breaks playing DOOM.  By today's standards this is a crude looking game, but back then it was really groundbreaking.  Playing it in a dark room was a good way to scare yourself half to death.  Today I would surely consider it rather tame.  The only thing that really compared to it was a game called Ultima Underworld which was actually a smoother and more detailed real-time 3D game.

In the world of PC gaming it really was all DOS.  Running Windows or OS/2 sucked up too many resources from what was typically a 33MHz 80486 computer.  The game would not play well.  Even when running DOS you needed to use HIMEM and play all the tricks in the book for there to be enough memory.

Other games that wasted my time included Falcon 3.0 which is probably the perfect air combat simulator and a cool game called Theatre of War which was sort of a real time version of Chess, kinda.

Friday, January 15, 2016

When a bad sector error is not a drive problem

When I was working on my book for NRI Schools I was having a lot of bad sector errors and cross linked sector errors on my computer.  Stuff like that.  Every day.

I even continued to get these after I upgraded my hard drive so I began to smell a rat.  My 32MB of RAM tested good so it wasn't that.  If the processor cache RAM was bad this should also cause the main RAM test to fail, unless the algorithm for the memory test is too naive.  I decided to replace the cache RAM chips on my motherboard anyways.  I think this was 128K of chips in eight sockets on my motherboard.  I don't remember how much this was, but I don't think it was very expensive.

I'm sure I got the RAM chips from Metrowest Computers in Framingham, Massachusetts because that's where I bought the computer from.  I tore the machine down.  I was very careful not to static out anything.  Inserting those little DIP chips with their little legs requires some care or they get bent!

Got it all back together and crossed my fingers as I booted it up successfully.  :-)

I never got another sector error.  Mission accomplished.

Thursday, January 14, 2016

Murphy's Law of book publishing

Once the book was all proofed and the camera ready art produced, and once I had the color separation for the cover all produced I was ready to order the first run of books which was approximately 1000 copies.

NRI Schools sent me a check in advance for these books.  How can you beat that?  So I sent everything off to Whitehall Publishing and waited nervously.

A couple of weeks later several heavy boxes arrived.  So exciting!

I cracked open one of the boxes and grabbed one of the fresh books.  What a neat thing to hold the result of so much work in my hands.  This really looked just like a book that you would buy at the store.

And then... I opened the book to the first page and my heart sank.  The very page had a spelling mistake.  I misspelled the word congratulations.  :-/

It read Congradulations.   What?  How could I miss that?

Ah well, it was still a great day!  :-)

Sunday, January 10, 2016

Liberty BASIC book preproduction

In addition to actually writing the Liberty BASIC book which involved developing the tutorial examples and explaining them, creating a quiz for each chapter, developing and proofreading each chapter, etc. There was the matter of producing camera ready pages.  They needed to be a certain size and they wanted crop marks on the pages.

NRI Schools also wanted a full color color, which I really didn't know how to create.  A friend of mine named Robert Gerami actually helped me with the graphic, and he even added a funny cartoon to the back of the book.  The cartoon was of a building with a sign saying "Programming School" and there was a hot dog stand outside the building.  A character with a fishing rod up on the second floor was trying to snatch a hot dog from the vendor's stand with his fish hook!  It was a humorous way to polish off the book's cover design.

There was a local company that created the acetate color separations for the cover, and all this went off to a company called Whitehall Publishing.  They charged me approximately $6 for each copy of the book when ordered in 1,000 or more.

All I needed to do now was write the check and wait...

Friday, January 8, 2016

Writing a book was more than I bargained for

I really had no idea how much work this was going to be.  I had good starting material with the Liberty BASIC tutorial, which had actually been fashioned into a spiral bound book which I produced at the local Staples store, but this had to be more polished.

I had no serious word processing software.  This meant that I needed to use the Write application that came with Microsoft Windows.  The only strengths that this provided was that it was essentially free, it was easy to understand and didn't burden me with any strange gotchas that full blown word processors often do, and it allowed page footers.

This was hard work.  The process was to produce a draft of a chapter, print it out and then I would lay down on the carpet with a pencil and read it, marking it up as I went.  Then I would go back and enter in all my changes and repeat the process several times until that chapter seemed good enough for the book.

This took weeks.  By the time I was done, I was determined to never, ever do it again.  Of course this didn't end up being my last book.  :-/

Thursday, January 7, 2016

NRI Schools and my first book

About this time I received a phone call from someone at NRI Schools, McGraw-Hill Continuing Education Center which was a popular adult education company.  They told me that they were developing a new computer programming course and they wanted to base it on Liberty BASIC.  Wow!

Here's what they wanted to do.  They would write their own course, which would be a staple bound series of books that they would distribute to their students.  They also wanted an actual official Liberty BASIC manual from me for which they would prepay me.

This was to be a perfect bound book with a full color cover.  I had never done such a thing before, so I had a lot to learn.  It was very helpful that they were willing to prepay for the first 1000 copies of the book because otherwise I was not going to be able to bankroll this project.

I decided that the book would be based on the tutorial that came with Liberty BASIC.

This was going to be a lot of work, but it was very exciting!

Sunday, January 3, 2016

Bugs Bunny and Raytheon

When we were well along in our project for the Defense Nuclear Agency, a couple of developers from our team were chosen to go to Albuquerque, New Mexico to field test the system.  Part of the system was designed to help provide security by means of motion detection in the desert.

To make this happen we needed to build a custom computer that ran OS/2..  This PC included hardware which could interface with motion detection cameras in order to log motion detection events which included video frames showing what the motion was.  So we were all excited to know that our system was going to take pictures of tumbleweeds and Bugs Bunny in the desert wasteland.  ;-)

Most of the assembly of this custom hardware was done at the Wyman Street, Waltham IBM office where we worked, but Raytheon in Burlington, Mass was responsible for the final integration and shipment to the test grounds in Albuquerque.

So, off to Burlington we went with server in tow.  When you visit Raytheon you have to go in the front door and sign in, and you have to have an appointment with someone who will meet you at the door.  So one of my colleagues and I followed this procedure and found one of our other teammates working on the machine, trying to get OS/2 to start up and load all the drivers properly, but he was having some trouble.

Then a couple other members of our team showed up, but they were unescorted.  So they were asked how they got into the building.  They said rather innocently that they parked in back and as they approached the back door someone came out.  That person held the door for them and they got in without signing in at the front desk!  Uh, oh!  Who was it that let them in?  They didn't know this person, and presumably he went for a walk for took off in his car, so it wasn't going to be easy to figure this out.  They didn't know they were breaking security protocol.  Okay so they went to sign in.

Now we turned out attention to the server again.  We were trying to figure out how to get all the drivers working and we were having some trouble.  This fellow with a clipboard came to us and said that he needed to pack up the computer and put it on the truck to ship it to Albuquerque.  We told him that it wasn't ready, and he walked off.  Some time later he came back again and we told him it still wasn't ready.  Finally he returned and said, "Okay let's ship this thing.  I've got to check this off my list!"  We game him a sharp look and told him firmly "Look buddy, this machine isn't going anywhere until it works.  We will tell you when it's ready."  He did not like this at all, but we really couldn't have cared less.

I guess he thought a non-working computer was good enough for government work.


Friday, January 1, 2016

How to make a RAID array failsafe

The computer that we used to manage the source code for our Defense Nuclear Agency prototype was an IBM System 95 server.  One of the nice features of this system was a three hard drive RAID array.  The special property of this system was that if one of the drives failed, the contents of that drive are recomputed on the fly based on the other two good hard drives.  The drives were hot-swappable, so it was possible to eject the bad drive and replace it with a new one while the system was running.  That drive would then be formatted and it contents rebuilt from the other two drives while the system was in use.  Very cool technology!

One day we decided to reboot the server.  When we did the OS/2 operating system produced an error message on startup saying that one of the drives in the RAID array had failed.  We were shocked.  We should have received an indication of this when the drive actually failed.

So what happened?  These special hot swappable hard drives have an error light that turns on, and also a piezo buzzer that sounds when the drive fails.  The trouble is that the drive failed so completely that the piezo buzzer also failed.  We never heard the audible error sound that we were supposed to hear.  This was a vulnerable moment for us.  If one more of the hard drives were to suffer failure we would have lost work.  We did back up our code periodically to an external cartridge, but it had not been done for weeks.

So clearly IBM had some work to do perfecting their RAID products.  For example, if the piezo buzzers on the other hard disks were designed to sound when any of the other drives failed, this might have proven much more effective.

Thursday, December 31, 2015

Liberty BASIC at IBM!

While working on our prototype for the Defense Nuclear Agency I discovered that we needed to reset some files repeatedly whenever we tested and demonstrated the functionality of our system.

I was eager to put Liberty BASIC to good use, and since we were running on OS/2 this gave me an opportunity to create a utility that would make things easy.  Liberty BASIC to the rescue!

It was actually easier to create this utility in BASIC than it would have been in Smalltalk.  Smalltalk is very powerful and really is one of the best languages, but BASIC is stronger for banging out small and simple programs.

I took great pride that when were were demonstrating our system to the customer that they also got a demo of Liberty BASIC in action!

The IBM dress code

Our contracting work at IBM in Waltham was back when IBM had a particular dress code.  All the men had to dress like the agents in the Matrix (without sunglasses).  All the women also needed to wear a lady's business suit.

However since we were not employees we could wear whatever we liked.  The fun part of that is that we got to wear IBM badges which gave access in and out of the building, to the cafeteria, etc.  I got the biggest kick out of this because the IBM employees gave us the strangest looks.  They clearly could not figure out who we were and why we were permitted to dress in casual attire.

Wednesday, December 30, 2015

IBM Smalltalk and team development

One really great thing about getting the job at Gem Consulting was that we were developing in IBM Smalltalk for OS/2, on IBM computers at IBM.  So we had access to quality support.

My experience using Smalltalk up to this point was using Smalltalk/V which was a popular and very good Smalltalk product.  The IBM Smalltalk was fancier and included GUI drawing tools and source code management, and working with a team of developers (there were four of us) gave me important experience that I never had before.  I learned so much by developing software with others and it taught me to break software down into modules even more effectively than I ever had.

The working space was an audio visual presentation room with an LCD projector that dropped down from the ceiling.  Around the outside of the room were tables where we worked.  We were able to communicate effortlessly because we were in the same space, and when we needed to design or make plans we would all turn our chairs around and use tables in the middle of the room.

Our development of this project went swiftly and smoothly.  I really enjoyed this style of work.

Tuesday, December 29, 2015

Onward and upward!

In my time at CFC Incorporated I had several interviews for work in Smalltalk.  One of them was in Cambridge, Massachusetts.  They focused a lot on Unix in the interview, or at least that's the way I remember it.  I never got a call back from them.

Another interview was with a company in Waltham called Marble Associates where my friend Laird Popkin worked.  This job seemed fantastic, and the interview was going great.  But when they told me that it was a traveling job which required that I fly to the client every Monday through Thursday I regretfully declined because I was unwilling to be away from my wife and children and also my church community in that fashion.

One day in 1995 I was contacted by one Peter Statterman, and he told me that his company GEM Consulting was looking for an experienced Smalltalk developer for a joint IBM and Raytheon project for the Defense Nuclear Agency of the US military.

We met at a coffee shop in Natick, Massachusetts and he interviewed me.  I must have said something right because he hired me!  It was exciting to be working on a project for IBM on the OS/2 operating system platform.  I was already working on Liberty BASIC for OS/2 and so this gave me the experience I needed to jump right into the project.

GEM Consulting hired me as a subcontractor.  The money was really good, but it was only a three month contract to create a prototype.  If that went well they would extend that to another six month phase.

My intention was to focus on Liberty BASIC when the contract ended and try to launch a full time business.

This was the start of a new chapter in my software development career!

Tuesday, March 13, 2012

I do own a leather jacket!

Sometimes when a computer breaks the cure can be surprising. We purchased a very expensive software solution for one our engineering tasks. It came with an HP Unix workstation. I never really used this machine. It was a single task appliance and I'm not even sure precisely what it was for. One day however it refused to boot, and I guess we must have stopped paying for support because they called me over to have a look.

Turning the machine on yielded the usual power supply fan noise and nothing else. None of the expected hard drive spinning or seeking was heard. This could be a bad power supply, or it could be a failed hard drive controller, or it could be... sticktion! That is pronounced stick-shun. Yes, really. Look it up. This happens on some hard drives when the hard drive sits powered down for hours or days, and the mirror smooth surface of the hard disk platters get stuck to the magnetic heads which have come to rest on the surface. The coating is just soft enough to stick.

The only way to find out if the problem is sticktion is to open the machine and bang on the hard drive casing to see if the heads can be freed. An ideal tool for this is the plastic handle of a screwdriver.

We opened the computer and I rapped on the hard drive a few times with the butt end of a screwdriver. We turned on the computer and waited... success! I felt just like the Fonz! :-)