...
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:
...