Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This is an instruction from the “Extended Instruction Set”, and so it is logical that we die on it on the Unibone. Trick is going to be to extend the emulator to support the extended instruction set too.

Notes (to be deleted)

20241204

Hope to have implemented ash. When running it reports:

Code Block
-- ext: 72227
ASH: reg=2, in=6, shift=5
ASH: out=300

After that the console shows:

Code Block
 ILL INTER 010
 PC 033050 PS 000344

and the stdout log shows:

Code Block
-- ext: 74504

which is a XOR instruction:

...

So, some more messing with the Unibone source code, and now we get:

Code Block
-- ext: 77101
-- ext: 72227
ASH: reg=2, in=6, shift=5
ASH: out=300
-- ext: 74504
XOR: reg=5, in=0, val=177777
- result=177777
-- ext: 74103
XOR: reg=1, in=166670, val=77777
- result=111107
-- ext: 74204
XOR: reg=2, in=101440, val=177777
- result=76337
-- ext: 77507

And it dies again:

...

Which is:

...

Son of a bitch… Implementing that too. And now we’re getting somewhere:

...

After extending the instruction set

Running the test again:

...

Next round is to try ZUACD0, but that is again bad luck:

...