diff --git a/hal/module.go b/hal/module.go index cade819..7bf48c4 100644 --- a/hal/module.go +++ b/hal/module.go @@ -37,7 +37,7 @@ func (h *Module) setProgramCounter(counter int64) error { } func (h *Module) increaseProgramCounter() { - h.register[0]++ + h.pCounter++ } func (h *Module) debug(format string, args ...interface{}) { @@ -52,7 +52,7 @@ func (h *Module) Step() error { instruction := h.programStorage[h.programCounter()] h.increaseProgramCounter() if instruction == nil { - h.debug("Skip undefined instruction %d", h.programCounter()) + //h.debug("Skip undefined instruction %d", h.programCounter()) return nil } h.debug("Instruction: %s", instruction.Instruction.Name) @@ -93,6 +93,7 @@ func NewNamedHALModule(program Program, registerSize uint64, ioSize int64, debug } module := &Module{ + pCounter: 1, programStorage: program, register: make([]float64, registerSize), IO: ios, diff --git a/programs/storage.hal b/programs/storage.hal new file mode 100644 index 0000000..eba6a08 --- /dev/null +++ b/programs/storage.hal @@ -0,0 +1,9 @@ +1000 DUMPREG +1010 DUMPPROG +1020 LOAD 1036 +1030 ADDNUM 1 +1040 STORE 512 +1050 LOAD 1037 +1060 ADD 512 +1070 OUT 1 +1080 STOP \ No newline at end of file