⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 moschannel3.java

📁 本程序是在软件模拟的计算机系统上设计一个多道程序的操作系统MOS
💻 JAVA
字号:
public class MosChannel3 {
	private byte mos_chst = FinalVar.CHST_STAT_FREE;
	private byte disk_times = 0;
	private MosMM mm;
	private MosDisk disk;
	MosVar var = null;

	public MosChannel3(MosMM mm,MosDisk disk, MosVar var) {
		this.mm = mm;
		this.disk = disk;
		this.var = var;
	}
//	write表示从键盘缓存区写入输入井,read表示从输入井读到内存程序区或从输出井读到打印缓存区;
	public void startChannel3(byte mode,byte addr_from,byte addr_to) {
		var.getMain().var_ioi_label.setText("3");
		if(mode == FinalVar.CHST3_READ) {
			diskWrite(addr_from,addr_to);
		}
		else if(mode == FinalVar.CHST3_WRITE) {
			diskRead(addr_from,addr_to);
		}
		setDiskTimes();
		var.getMain().mosp.var_out_label[3].setText("" + this.getDiskTimes());
		var.getMain().var_ioi_label.setText("0");
	}

//	从内存程序区写入输出井,需要传递所要传送的数据data,以及输出井地址addr_to;
	public void startChannel3(byte[] data,byte addr_to) {
		diskWrite(data,addr_to);
		setDiskTimes();
	}

	private void diskWrite(byte addr_from,byte addr_to) {
		byte[] data = new byte[40];
		data = mm.mmRead(addr_from, FinalVar.MM_READ_PAGE);
		disk.diskWrite(data, addr_to);
	}

	private void diskRead(byte addr_from,byte addr_to) {
		byte[] data = new byte[40];
		data = disk.diskRead(addr_from);
		mm.mmWrite(data, addr_to);
	}

	private void diskWrite(byte[] data, byte addr_to) {
		disk.diskWrite(data, addr_to);
	}

	public void setDiskTimes() {
		disk_times++;
	}

	public byte getDiskTimes() {
		return disk_times;
	}

	public void setMosChst(byte mos_chst) {
		this.mos_chst = mos_chst;
		if(this.mos_chst == FinalVar.CHST_STAT_FREE){
			var.getMain().var_chan3_label.setText("闲");
		}
		else {
			var.getMain().var_chan3_label.setText("忙");
		}
	}

	public byte getMosChst() {
		return this.mos_chst;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -