Jump to content
IGNORED

Spinning the drive for head cleaning


Recommended Posts

I recall a program or two which would run up the drive motor for head-cleaning purposes. I have not been able to turn one up in searches.

 

Anyone happen to know of one or a "M-W" that I can use to do it? I would like to clean my 1571s, 1541s, and MSD-2 with a proper kit.

Link to comment
Share on other sites

The best way by far is to just pull the cover off and use isopropyl alcohol on a cotton bud or lint free non-abrasive cloth.

 

Use a cleaning floppy and it'll still have residue - the problem with leaving gunk behind is it just promotes wearing more coating off subsequent disks you use.

 

Command to start the drive - IIRC the "I" command runs it for a few seconds, probably nowhere near enough.

Not sure if a format command will work - it might be that it verifies some data early in the process.

Though format, or some utility that spins as well as moving the head would be a good idea - ensures that the gunk doesn't all end up in one place on the cleaning floppy.

Edited by Rybags
Link to comment
Share on other sites

For the 1541, the relevant part of the ROM is

F9E8 AD 00 1C LDA $1C00
F9EB 29 FB    AND #$FB   drive motor on
F9E0 8D 00 1C STA $1C00

Seems I should be able to whip up an M-W and M-E for this. The 1571 appears to be the same for 1541-compatibility.

  • Like 1
Link to comment
Share on other sites

For the 1541, the relevant part of the ROM is

F9E8 AD 00 1C LDA $1C00
F9EB 29 FB    AND #$FB   drive motor on
F9E0 8D 00 1C STA $1C00

Seems I should be able to whip up an M-W and M-E for this. The 1571 appears to be the same for 1541-compatibility.

 

Here is a BASIC version that will spin the motor:

 

OPEN15,8,15:PRINT#15,"M-E"+CHR$(130)+CHR$(249):CLOSE15

 

Found this on a website. Worked on my 1541. Don't forget to change the OPEN command to fit your drive device number.

  • Like 1
Link to comment
Share on other sites

Is it enough to spin the motor with a cleaning floppy, shouldn't you move the head as well?

 

The U1 command will attempt to read a block. Of course it will trigger error messages but I seem to remember it is possible to send further commands anyway, or at least empty the error channel all the time.

 

Perhaps a program like this one would work?

 

 

10 open 1,8,15:open 2,8,2,"#"
12 for i=1 to 3 : rem number of passes
15 print#1,"u1:";2;0;1;0 : rem innermost track
20 input#1,e,e$,t,s : rem wait for error
25 print#1,"u1:";2;0;35;0 : rem outermost track
30 input#1,e,e$,t,s
32 next i
35 close 2:close1
Link to comment
Share on other sites

 

Is it enough to spin the motor with a cleaning floppy, shouldn't you move the head as well?

 

The U1 command will attempt to read a block. Of course it will trigger error messages but I seem to remember it is possible to send further commands anyway, or at least empty the error channel all the time.

 

Perhaps a program like this one would work?

10 open 1,8,15:open 2,8,2,"#"
12 for i=1 to 3 : rem number of passes
15 print#1,"u1:";2;0;1;0 : rem innermost track
20 input#1,e,e$,t,s : rem wait for error
25 print#1,"u1:";2;0;35;0 : rem outermost track
30 input#1,e,e$,t,s
32 next i
35 close 2:close1

 

I think the problem with moving the head during is that these cleaning disks are at least a little abrasive, and moving the head has the potential to put abrasions across the normal motion of regular disks. As well, since the head essentially makes contact with and drags across the cleaning disk, moving the heads may put undue lateral stress on them and their supports.

 

That is my hypothesis, in any case, and why I would be hesitant to try it. I welcome any comments on this thought.

Link to comment
Share on other sites

 

Here is a BASIC version that will spin the motor:

 

OPEN15,8,15:PRINT#15,"M-E"+CHR$(130)+CHR$(249)

 

Found this on a website. Worked on my 1541. Don't forget to change the OPEN command to fit your drive device number.

 

Interesting... that routine is:

F982 AD 00 1C LDA $1C00
F985 09 04    ORA #$04     turn drive motor off
F987 8D 00 1C STA $1C00
F98A A9 3C    LDA $3C
F98C 85 48    STA $48
F98E 60       RTS

This is from Abacus Software's Anatomy of the 1541 Disk Drive. Notice how the routines are reversed from what we expect and observed behavior. Maybe an error in the book's disassembly.

Link to comment
Share on other sites

 

Interesting... that routine is:

F982 AD 00 1C LDA $1C00
F985 09 04    ORA #$04     turn drive motor off
F987 8D 00 1C STA $1C00
F98A A9 3C    LDA $3C
F98C 85 48    STA $48
F98E 60       RTS

This is from Abacus Software's Anatomy of the 1541 Disk Drive. Notice how the routines are reversed from what we expect and observed behavior. Maybe an error in the book's disassembly.

 

I've never really taken a look at the disassembly of this before.

 

You can turn the motor off with:

 

OPEN15,8,15:PRINT#15,"M-E"+CHR$(232)+CHR$(249):CLOSE15

Link to comment
Share on other sites

 

I've never really taken a look at the disassembly of this before.

 

You can turn the motor off with:

 

OPEN15,8,15:PRINT#15,"M-E"+CHR$(232)+CHR$(249):CLOSE15

 

heh! That is the entry point to the first routine segment I posted at $9FE8, which is marked to turn the drive motor on. Yeah, looks like a little error in the book. Thanks for the information; since I did not think the JSR would get RTSd properly or without changing something important, I was going to take out the relevant parts of the routine(s) to put in a buffer and execute from there. This is much better!

Link to comment
Share on other sites

Regarding moving or not moving the head, it probably is 20 years ago I cleaned a 5.25" floppy drive the last time, although I semi-regularly use them. Back then I am reasonably sure the "recommended" program, whether it was by the disk manufacturer or a magazine, was to move the head but I totally buy what you write about abrasive material and that the head could struggle moving along the surface. I don't know what moving the head would add, unless you want to clean a bigger part of the head than what normally lies to the surface and by moving it in both directions, you get alcohol and rubbing off residue on the entire head.

Link to comment
Share on other sites

I'd go for move the head. These things are noisy and sound worse than they are, most of what you hear is just the surface rubbing against the jacket.

If you leave residue on the head, the job is only 1/4 done. Having crud on the head just promotes abrasion and addition of more crud.

Link to comment
Share on other sites

  • 2 weeks later...

There you go:

10 REM DISK DRIVE CLEANER PROGRAM 
20 REM VERSION 1.0 
30 REM BY MEL MOORE 
40 REM DRIVE CLEANING ROUTINE FROM 
50 REM QUANTUMLINK - UPLOADED BY 
55 REM HUTCH 09/21/85 
60 REM MAIN PROGRAM 
70 GOSUB 500 :REM PRINT INSTRUCTIONS 
80 GOSUB 1000 :REM SELECT DRIVE NUMBER 
90 GOSUB 2000 :REM CLEAN DRIVE 
95 GOSUB 3000 :REM CONTINUE OR STOP 
500 PRINT"{clear}": REM PRINT INSTRUCTIONS 
505 PRINT"this program will allow you to clean your disk drives witout having" 
510 PRINT"to turn off your computer." 
520 PRINT 
530 PRINT"please select which drive you wish to" 
540 PRINT"clean then follow the instructions." 
550 PRINT 
560 PRINT"the drive cleaning programs will " 
570 PRINT"default to a 30 second time by" 
580 PRINT"pressing return at the prompt." 
581 PRINT:PRINT"press any key to continue" 
590 GET A$:IF A$ = "" THEN 590 
700 RETURN 
950 REM 
960 REM 
970 REM 
999 REM SELECT DRIVE TO CLEAN 
1000 PRINT"{clear}":PRINT"please select the drive" 
1010 PRINT 
1020 INPUT "you wish to clean "; CL 
1030 IF CL < 8 OR CL > 9 THEN GOTO 1000 
1040 RETURN 
1950 REM 
1960 REM 
1970 REM 
2000 PRINTCHR$(147)"{space*8}disk{space*2}cleaning program" 
2010 PRINTCHR$(17)CHR$(17)"{space*7}{rvson}insert cleaning disk now! {rvsoff}" 
2020 PRINT:PRINT"{space*5}and press {rvson}return{rvsoff} when ready!" 
2030 GET A$:IF A$="" THEN 2030 
2040 N=30 
2050 PRINT:PRINT:PRINT"{space*9}# of seconds for cleaning (30)":INPUT N 
2060 PRINTCHR$(147) 
2070 PRINT"{space*7}cleaning now in effect!!" 
2080 PRINT:PRINT"{space*6}{rvson}do not disturb drive now!!{rvsoff}" 
2090 PRINT:PRINT:PRINT"{space*4}{rvson}the red light doesn't come on!{rvsoff}" 
2100 A=TI 
2110 OPEN 15,CL,15:PRINT#15,"m-w"CHR$(0)CHR$(28)CHR$(1)CHR$(244) 
2120 IF TI-A<(N*60)THEN 2120 
2130 PRINT#15,"m-w"CHR$(0)CHR$(28)CHR$(1)CHR$(240) 
2140 CLOSE 15 
2150 PRINTCHR$(147) 
2160 PRINT:PRINT:PRINT"{space*5}take the cleaning diskette " 
2170 PRINT:PRINT"{space*7}{rvson}out of the drive now !!!{rvsoff}" 
2175 PRINT 
2180 PRINT "press any key to continue" 
2200 GET A$: IF A$ ="" THEN GOTO 2200 
2210 RETURN 
2220 REM 
2230 REM 
2240 REM 
2250 REM 
2999 REM CONTINUE OR STOP 
3000 PRINT"{clear}":PRINT"do you wish to clean another" 
3010 INPUT "drive (y/n)"; AG$ 
3020 IF AG$ = "y" THEN GOTO 80 
3030 PRINT"{clear}{white}{8}{lcase}{210}eturning to {195}ommodore {199}azette...." 
3040 PRINT"{home}{black}{down*2}load"CHR$(34)"program.menu"CHR$(34)","DV"{home}";:POKE198,4 
3050 POKE631,13:POKE632,82:POKE633,117:POKE634,13:END

Cheers,

Oge

  • Like 1
Link to comment
Share on other sites

I found another means that may be of use to someone:

 

The SAMS book "Commodore 1541 Troubleshooting & Repair Guide" has a listing for a BASIC program to assist in repairs/cleaning. It can turn the motor on/off, bump the head, move it half tracks etc.. Not that long as well.

 

It's on page 30 (Fig. 3-1). You can download a PDF here, but it's very hard to read:

 

http://www.bombjack.org/commodore/books.htm

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...