Commodore 1541 *PRG Problems
I am the owner of a Commodore 64 and a 1541 disk drive. I was recently trying to save a program, but my disk would not accept it. When I tried saving it, I got a READ ERROR 20. I tried saving the program on another disk and had no problems. Can you please tell me what can cause a READ ERROR 20? I also have had problems with files that show up on my directory with an asterisk (*) before the PRG. What causes these asterisks to appear and how do I get rid of them?
Steven Swartzlander
The error you are getting indicates that what's called a block header has been destroyed on your disk. This may mean that your particular disk was ruined by a magnet or even some dust or a hair that slipped into the disk case. Error 20 usually happens when you try to write to a damaged block using the BLOCK-WRITE command. Since you say that you are just trying to save to the disk, it must mean that block 0 of track 18 is damaged. The disk controller always reads this particular block when it is about to save something to the disk. Block 0 on track 18 contains a map, called the BAM (for Block Allocation Map), of the entire disk showing which blocks are used and which are still available.
The best solution to your problem is to format another disk and try to transfer all the programs stored on the defective disk to the other one, using a disk duplicating program.
Your other problem with file type abbreviations preceded by an asterisk is very common. It occurs when a file has not been properly closed. The file usually cannot be salvaged. To get rid of these files, just place the disk containing them in the drive and type the following line:
OPEN 15, 8, 15, "V" : CLOSE 15
Your disk will spin for some time and it will even make some noise, and when the red light goes off you will have a disk with usable files. All the asterisk files will have been erased. It is quite important to erase such files lest they corrupt other files on a disk.