-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
scroll not working superchip8 unit tests to be added.
- Loading branch information
Showing
62 changed files
with
1,661 additions
and
569 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package dev.krk.chipsekiz.hal; | ||
|
||
public enum Direction { | ||
Up, Down, Left, Right, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
chipsekiz/src/main/java/dev/krk/chipsekiz/interpreter/IChipVariation.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6 changes: 3 additions & 3 deletions
6
chipsekiz/src/main/java/dev/krk/chipsekiz/interpreter/IExecutor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,10 @@ | ||
package dev.krk.chipsekiz.interpreter; | ||
|
||
import dev.krk.chipsekiz.hal.ICharacterAddressLocator; | ||
import dev.krk.chipsekiz.opcodes.Opcode; | ||
import dev.krk.chipsekiz.vm.IVirtualMachine; | ||
|
||
public interface IExecutor { | ||
void execute(IVirtualMachine vm, IHal hal, ICharacterAddressLocator characterAddressLocator, | ||
Opcode opcode); | ||
void execute(Opcode opcode); | ||
|
||
void setVM(IVirtualMachine vm); | ||
} |
4 changes: 2 additions & 2 deletions
4
chipsekiz/src/main/java/dev/krk/chipsekiz/interpreter/IInterpreterFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
package dev.krk.chipsekiz.interpreter; | ||
|
||
public interface IInterpreterFactory { | ||
IInterpreter create(IHal hal); | ||
public interface IInterpreterFactory<THal> { | ||
IInterpreter create(THal hal); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
37 changes: 26 additions & 11 deletions
37
chipsekiz/src/main/java/dev/krk/chipsekiz/interpreter/InterpreterFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,44 @@ | ||
package dev.krk.chipsekiz.interpreter; | ||
|
||
import dev.krk.chipsekiz.Decoder; | ||
import dev.krk.chipsekiz.hal.ICharacterAddressLocator; | ||
import dev.krk.chipsekiz.IDecoder; | ||
import dev.krk.chipsekiz.loader.Loader; | ||
import dev.krk.chipsekiz.sprites.CharacterSprites; | ||
import dev.krk.chipsekiz.superchip.decoder.SuperChipDecoder; | ||
import dev.krk.chipsekiz.superchip.interpreter.ISuperChipHal; | ||
import dev.krk.chipsekiz.superchip.interpreter.SuperChipExecutor; | ||
import dev.krk.chipsekiz.superchip.sprites.SuperChipCharacterSprites; | ||
import dev.krk.chipsekiz.superchip.vm.SuperChipVM; | ||
import dev.krk.chipsekiz.tracer.ITracer; | ||
import dev.krk.chipsekiz.vm.IVirtualMachineFactory; | ||
import dev.krk.chipsekiz.vm.VM; | ||
|
||
import javax.annotation.Nullable; | ||
|
||
public class InterpreterFactory { | ||
public static Interpreter create(IHal hal, | ||
@Nullable ICharacterAddressLocator characterAddressLocator, @Nullable ITracer tracer, | ||
public static IInterpreter create(IHal hal, @Nullable ITracer tracer, | ||
@Nullable IDebugger debugger) { | ||
IExecutor executor = new Executor(false, true); | ||
IDecoder decoder = new Decoder(); | ||
IExecutor executor = | ||
new Executor(null, hal, CharacterSprites.getAddressLocator(), false, true); | ||
|
||
return create(hal, characterAddressLocator, tracer, debugger, executor); | ||
return create(VM::new, decoder, hal, tracer, debugger, executor); | ||
} | ||
|
||
public static Interpreter create(IHal hal, | ||
@Nullable ICharacterAddressLocator characterAddressLocator, @Nullable ITracer tracer, | ||
@Nullable IDebugger debugger, IExecutor executor) { | ||
public static IInterpreter createSuperChip(ISuperChipHal hal, @Nullable ITracer tracer, | ||
@Nullable IDebugger debugger) { | ||
IDecoder decoder = new SuperChipDecoder(); | ||
IExecutor executor = | ||
new SuperChipExecutor(null, hal, SuperChipCharacterSprites.getLargeAddressLocator()); | ||
|
||
return create(SuperChipVM::new, decoder, hal, tracer, debugger, executor); | ||
} | ||
|
||
private static IInterpreter create(IVirtualMachineFactory vmFactory, IDecoder decoder, IHal hal, | ||
@Nullable ITracer tracer, @Nullable IDebugger debugger, IExecutor executor) { | ||
Loader loader = new Loader(); | ||
Decoder decoder = new Decoder(); | ||
|
||
return new Interpreter(loader, decoder, executor, hal, characterAddressLocator, tracer, | ||
debugger, 0x1000, CharacterSprites.DefaultLayout(), true); | ||
return new Interpreter(vmFactory, loader, decoder, executor, hal, tracer, debugger, 0x1000, | ||
CharacterSprites.DefaultLayout(), true); | ||
} | ||
} |
Oops, something went wrong.