public Branch execute(Processor cpu) { System.out.println("Warning: Using incomplete opcode: FRSTOR_94"); int addr = op1.get(cpu); cpu.fpu.setControl(cpu.linearMemory.getWord(addr)); cpu.fpu.setStatus(cpu.linearMemory.getWord(addr + 2)); cpu.fpu.setTagWord(cpu.linearMemory.getWord(addr + 4)); // cpu.linearMemory.setWord(addr + 6, (short) 0 /* cpu.fpu.getIP() offset*/); // cpu.linearMemory.setWord(addr + 8, (short) 0 /* (selector & 0xFFFF)*/); // cpu.linearMemory.setWord(addr + 10, (short) 0 /* operand pntr offset*/); // cpu.linearMemory.setWord(addr + 12, (short) 0 /* operand pntr selector & 0xFFFF*/); // for (int i = 0; i < 8; i++) { // byte[] extended = FpuState64.doubleToExtended(fpu.ST(i), false /* this is WRONG!!!!!!! // */); // for (int j = 0; j < 10; j++) // seg0.setByte(addr0 + 14 + j + (10 * i), extended[j]); // } return Branch.None; }
public Branch execute(Processor cpu) { int addr = op1.get(cpu) + op1.getBase(cpu); cpu.linearMemory.setWord(addr, (short) cpu.idtr.getLimit()); cpu.linearMemory.setDoubleWord(addr + 2, cpu.idtr.getBase() & 0x00ffffff); return Branch.None; }