home *** CD-ROM | disk | FTP | other *** search
-
- ***********************************************
- * This little program speeds up *
- * the motors of floppys df0: - df3: *
- * This has two effects: *
- * 1. the floppy is speeded *
- * 2. the scratching sound the floppy *
- * usually makes becomes a whining sound *
- * *
- * I know of no negative effects *
- * *
- * E. Lenz *
- * Johann-Fichte-Strasse 11 *
- * 8 Munich 40 *
- * Germany *
- ***********************************************
-
- ; EXEC.library routines
-
- _AbsExecBase equ 4
- _LVOForbid equ -$84
- _LVOPermit equ -$8a
- _LVOFindName equ -$114
- _LVOGetMsg equ -$174
- _LVOReplyMsg equ -$17a
- _LVOWaitPort equ -$180
-
- PortStatus equ 34
- TrackPort equ 36
- SPReg equ 54
- IDNestCnt equ 294
- TrackTask equ 302
- DeviceList equ 350
-
- pr_MsgPort equ $5c
- pr_CLI equ $ac
- ThisTask equ $114
-
- moveq #0,d7
- movea.l _AbsExecBase,a6
- movea.l ThisTask(a6),a0
-
- ; Start from Workbench ?
-
- tst.l pr_CLI(a0)
- bne.s noWB Not from WB
-
- ; Get WB Message
-
- lea pr_MsgPort(a0),a0
- jsr _LVOWaitPort(a6)
- jsr _LVOGetMsg(a6)
- move.l d0,d7 Pointer to WB message
-
-
- noWB bsr.s Disable
-
- lea TrackName(pc),a1
- lea DeviceList(a6),a0
- jsr _LVOFindName(a6)
- movea.l d0,a5 a5 = trackdisk save
- beq.s Err
-
- ; speed up df0: to df3:
-
- moveq #12,d3
- l3 move.l TrackPort(a5,d3.w),d0 is drive implemented?
- beq.s l5
- movea.l d0,a3
-
- l1 btst #0,PortStatus(a3) wait until drive ready
- bne.s l1
- move.l #1800,$2c(a3) speed up step motor
- move.l #1,$30(a3) no wait after positioning
- lea TrackTask+SPReg(a3),a2
- movea.l (a2),a1
-
- l5 subq.l #4,d3
- bpl.s l3
-
- Err bsr.s Enable
- tst.l d7
- beq.s Nbench
-
- jsr _LVOForbid(a6)
- movea.l d7,a1
- jsr _LVOReplyMsg(a6) Reply to WB
- jsr _LVOPermit(a6)
-
- Nbench moveq #0,d0 No errors
- rts
-
-
- Disable move.w #$4000,$dff09a disable copper interrupts
- move.l a6,-(a7)
- movea.l _AbsExecBase,a6
- addq.b #1,IDNestCnt(a6)
- bra.s Ll1
-
- Enable move.l a6,-(a7) enable copper interrupts
- movea.l _AbsExecBase,a6
- subq.b #1,IDNestCnt(a6)
- bge.s Ll1
- move.w #$c000,$dff09a
- Ll1 movea.l (a7)+,a6
- rts
-
- TrackName dc.b 'trackdisk.device',0
- even
- end
-