aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMaya <10861407+serenibyss@users.noreply.github.com>2024-11-11 08:08:14 -0600
committerGitHub <noreply@github.com>2024-11-11 14:08:14 +0000
commit2f91cdfc597ebf80ba5b0160f9a05a53ad10037f (patch)
tree358946c690a9677ad7db01b5287260f1d184b7ed /src/main/java
parent2850aac3830d7603aabe69a50adb983885854ca0 (diff)
downloadGT5-Unofficial-2f91cdfc597ebf80ba5b0160f9a05a53ad10037f.tar.gz
GT5-Unofficial-2f91cdfc597ebf80ba5b0160f9a05a53ad10037f.tar.bz2
GT5-Unofficial-2f91cdfc597ebf80ba5b0160f9a05a53ad10037f.zip
Remove OC AVR architecture (#3474)
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/tectech/compatibility/openComputers/AvrArchitecture.java307
1 files changed, 0 insertions, 307 deletions
diff --git a/src/main/java/tectech/compatibility/openComputers/AvrArchitecture.java b/src/main/java/tectech/compatibility/openComputers/AvrArchitecture.java
deleted file mode 100644
index c12ac0e754..0000000000
--- a/src/main/java/tectech/compatibility/openComputers/AvrArchitecture.java
+++ /dev/null
@@ -1,307 +0,0 @@
-package tectech.compatibility.openComputers;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.GZIPOutputStream;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-
-import org.apache.commons.compress.utils.IOUtils;
-
-import com.github.technus.avrClone.AvrCore;
-import com.github.technus.avrClone.instructions.ExecutionEvent;
-import com.github.technus.avrClone.instructions.InstructionRegistry;
-import com.github.technus.avrClone.instructions.exceptions.DebugEvent;
-import com.github.technus.avrClone.instructions.exceptions.DelayEvent;
-import com.github.technus.avrClone.memory.EepromMemory;
-import com.github.technus.avrClone.memory.RemovableMemory;
-import com.github.technus.avrClone.memory.program.ProgramMemory;
-
-import li.cil.oc.Settings;
-import li.cil.oc.api.Driver;
-import li.cil.oc.api.driver.Item;
-import li.cil.oc.api.driver.item.Memory;
-import li.cil.oc.api.machine.Architecture;
-import li.cil.oc.api.machine.ExecutionResult;
-import li.cil.oc.api.machine.Machine;
-import li.cil.oc.api.machine.Signal;
-import li.cil.oc.common.SaveHandler;
-import tectech.TecTech;
-import tectech.util.Converter;
-
-@Architecture.Name("AVR 32Bit Clone")
-@Architecture.NoMemoryRequirements
-public class AvrArchitecture implements Architecture {
-
- private final Machine machine;
- private AvrCore core;
- private boolean debugRun;
- private int delay;
- private int[] tempData;
- private int memSize;
-
- public AvrArchitecture(Machine machine) {
- this.machine = machine;
- }
-
- @Override
- public boolean isInitialized() {
- return core != null && core.checkValid();
- }
-
- @Override
- public boolean recomputeMemory(Iterable<ItemStack> components) {
- computeMemory(components);
- return true;
- }
-
- private void computeMemory(Iterable<ItemStack> components) {
- int memory = 0;
- for (ItemStack component : components) {
- Item driver = Driver.driverFor(component);
- if (driver instanceof Memory memoryDriver) {
- memory += memoryDriver.amount(component) * 256; // in integers
- } // else if (driver instanceof DriverEEPROM$) {
-
- // }
- }
- memory = Math.min(
- Math.max(memory, 0),
- Settings.get()
- .maxTotalRam());
- if (memory != memSize) {}
- }
-
- @Override
- public boolean initialize() {
- core = new AvrCore();
-
- computeMemory(
- this.machine.host()
- .internalComponents());
-
- if (isInitialized()) {
- machine.beep(".");
- return true;
- }
- return false;
- }
-
- @Override
- public void close() {
- core = null;
- tempData = null;
- delay = 0;
- }
-
- @Override
- public void runSynchronized() {
- core.cycle();
- }
-
- @Override
- public ExecutionResult runThreaded(boolean isSynchronizedReturn) {
- if (core.awoken) {
- delay = 0;
- for (int load = 0; load < 512;) {
- load += core.getInstruction()
- .getCost(core);
- ExecutionEvent executionEvent = core.cpuCycleForce();
- if (executionEvent != null) {
- if (executionEvent.throwable instanceof DelayEvent) {
- delay = executionEvent.data[0];
- break;
- } else if (executionEvent.throwable instanceof DebugEvent) {
- if (debugRun) {
- // aBaseMetaTileEntity.setActive(false);
- break;
- }
- }
- }
- }
- } else if (delay > 0) {
- delay--;
- if (delay == 0) {
- core.awoken = true;
- }
- }
- return null;
- }
-
- @Override
- public void onSignal() {
- Signal signal = machine.popSignal();
-
- core.interruptsHandle();
- }
-
- @Override
- public void onConnect() {
- // init network components, in case init was called from load logic (pre first tick?)
- }
-
- @Override
- public void load(NBTTagCompound avr) {
- debugRun = avr.getBoolean("debugRun");
- delay = avr.getInteger("delay");
- core.active = avr.getBoolean("active");
- core.awoken = (avr.getBoolean("awoken"));
- core.programCounter = avr.getInteger("programCounter");
- InstructionRegistry registry = InstructionRegistry.REGISTRIES.get(avr.getString("instructionRegistry"));
- if (registry != null) {
- byte[] instructions = SaveHandler.load(
- avr,
- this.machine.node()
- .address() + "_instructionsMemory");
- byte[] param0 = SaveHandler.load(
- avr,
- this.machine.node()
- .address() + "_param0Memory");
- byte[] param1 = SaveHandler.load(
- avr,
- this.machine.node()
- .address() + "_param1Memory");
- if (instructions != null && param0 != null
- && param1 != null
- && instructions.length > 0
- && param0.length > 0
- && param1.length > 0) {
- int[] instr = null, par0 = null, par1 = null;
- try {
- GZIPInputStream gzis = new GZIPInputStream(new ByteArrayInputStream(instructions));
- instr = Converter.readInts(IOUtils.toByteArray(gzis));
- IOUtils.closeQuietly(gzis);
- } catch (IOException e) {
- TecTech.LOGGER.error("Failed to decompress instructions memory from disk.");
- e.printStackTrace();
- }
- try {
- GZIPInputStream gzis = new GZIPInputStream(new ByteArrayInputStream(param0));
- par0 = Converter.readInts(IOUtils.toByteArray(gzis));
- IOUtils.closeQuietly(gzis);
- } catch (IOException e) {
- TecTech.LOGGER.error("Failed to decompress param0 memory from disk.");
- e.printStackTrace();
- }
- try {
- GZIPInputStream gzis = new GZIPInputStream(new ByteArrayInputStream(param1));
- par1 = Converter.readInts(IOUtils.toByteArray(gzis));
- IOUtils.closeQuietly(gzis);
- } catch (IOException e) {
- TecTech.LOGGER.error("Failed to decompress param1 memory from disk.");
- e.printStackTrace();
- }
- if (instr != null && par0 != null
- && par1 != null
- && instr.length == par0.length
- && instr.length == par1.length) {
- core.setProgramMemory(new ProgramMemory(registry, avr.getBoolean("immersive"), instr, par0, par1));
- }
- }
- }
- if (avr.hasKey("eepromSize")) {
- core.restoreEepromDefinition(EepromMemory.make(avr.getInteger("eepromSize")));
- }
- byte[] data = SaveHandler.load(
- avr,
- this.machine.node()
- .address() + "_dataMemory");
- if (data != null && data.length > 0) {
- try {
- GZIPInputStream gzis = new GZIPInputStream(new ByteArrayInputStream(data));
- tempData = Converter.readInts(IOUtils.toByteArray(gzis));
- IOUtils.closeQuietly(gzis);
- } catch (IOException e) {
- TecTech.LOGGER.error("Failed to decompress data memory from disk.");
- e.printStackTrace();
- }
- }
- core.checkValid();
- }
-
- @Override
- public void save(NBTTagCompound avr) {
- avr.setBoolean("debugRun", debugRun);
- avr.setInteger("delay", delay);
- avr.setBoolean("active", core.active);
- avr.setBoolean("awoken", core.awoken);
- avr.setInteger("programCounter", core.programCounter);
- ProgramMemory programMemory = core.getProgramMemory();
- if (programMemory != null) {
- try {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- GZIPOutputStream gzos = new GZIPOutputStream(baos);
- gzos.write(Converter.writeInts(programMemory.instructions));
- gzos.close();
- SaveHandler.scheduleSave(
- machine.host(),
- avr,
- machine.node()
- .address() + "_instructionsMemory",
- baos.toByteArray());
- } catch (IOException e) {
- TecTech.LOGGER.error("Failed to compress instructions memory to disk");
- e.printStackTrace();
- }
- try {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- GZIPOutputStream gzos = new GZIPOutputStream(baos);
- gzos.write(Converter.writeInts(programMemory.param0));
- gzos.close();
- SaveHandler.scheduleSave(
- machine.host(),
- avr,
- machine.node()
- .address() + "_param0Memory",
- baos.toByteArray());
- } catch (IOException e) {
- TecTech.LOGGER.error("Failed to compress param0 memory to disk");
- e.printStackTrace();
- }
- try {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- GZIPOutputStream gzos = new GZIPOutputStream(baos);
- gzos.write(Converter.writeInts(programMemory.param1));
- gzos.close();
- SaveHandler.scheduleSave(
- machine.host(),
- avr,
- machine.node()
- .address() + "_param1Memory",
- baos.toByteArray());
- } catch (IOException e) {
- TecTech.LOGGER.error("Failed to compress param1 memory to disk");
- e.printStackTrace();
- }
- avr.setBoolean("immersive", programMemory.immersiveOperands);
- avr.setString("instructionRegistry", programMemory.registry.toString());
- }
- RemovableMemory<EepromMemory> eeprom = core.getEepromMemory();
- if (eeprom != null) {
- avr.setInteger(
- "eepromSize",
- eeprom.getDefinition()
- .getSize());
- }
- if (core.dataMemory != null) {
- try {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- GZIPOutputStream gzos = new GZIPOutputStream(baos);
- gzos.write(Converter.writeInts(core.dataMemory));
- gzos.close();
- SaveHandler.scheduleSave(
- machine.host(),
- avr,
- machine.node()
- .address() + "_dataMemory",
- baos.toByteArray());
- } catch (IOException e) {
- TecTech.LOGGER.error("Failed to compress data memory to disk");
- e.printStackTrace();
- }
- }
- }
-}