floppyseekcommand.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 61 行
JAVA
61 行
/*
* $Id: FloppySeekCommand.java,v 1.1 2003/11/25 11:50:45 epr Exp $
*/
package org.jnode.driver.floppy;
import org.jnode.util.TimeoutException;
/**
* @author epr
*/
public class FloppySeekCommand extends FloppyCommand {
/** The cylinder to seek to */
private final int cylinder;
/**
* Create a new instance
* @param drive
* @param cylinder
*/
public FloppySeekCommand(int drive, int cylinder) {
super(drive);
this.cylinder = cylinder;
}
/**
* @param fdc
* @see org.jnode.driver.floppy.FloppyCommand#setup(org.jnode.driver.floppy.FDC)
* @throws FloppyException
*/
public void setup(FDC fdc) throws FloppyException {
final byte[] cmd = new byte[3];
cmd[0] = 0x0f;
cmd[1] = (byte)getDrive();
cmd[2] = (byte)cylinder;
fdc.setDorReg(getDrive(), true, true);
fdc.sendCommand(cmd, false);
}
/**
* @param fdc
* @see org.jnode.driver.floppy.FloppyCommand#handleIRQ(org.jnode.driver.floppy.FDC)
* @throws FloppyException
*/
public void handleIRQ(FDC fdc)
throws FloppyException {
try {
final int st0 = fdc.getST0();
final int cmdState = (st0 & ST0_CMDST_MASK);
if (cmdState != ST0_CMDST_NORMAL) {
throw new FloppyException("Seek failed [command state=" + cmdState + "]");
}
notifyFinished();
} catch (TimeoutException ex) {
notifyError(new FloppyException(ex));
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?