home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
fish
/
code_examples
/
a68kex
/
slowme.asm
< prev
next >
Wrap
Assembly Source File
|
1991-01-17
|
3KB
|
111 lines
***********************************************
* 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