When I say jump...
After far more struggling than it should have taken, I've gotten all the jump and branch instructions in. What took so long was that I realized that I could make these instructions much more efficient than the ones I'd put in already...and that I could optimize many of the earlier ones in similar ways. However, since lots of the earlier logic is a bit snarled, I ended up breaking everything and having to back out half of my changes. So the new instructions are fast [and could be a bit faster], and the old instructions are waiting to be optimized. I'm not sure whether I'll do that yet; it may wait until I'm ready to do BC 2.0 [with parallel calculations instead of the current one-ball-at-a-time serialized ones].
Down:
- addc
- addci
- add
- addi
- subc
- subci
- sub
- subi
- or
- ori
- xor
- xori
- and
- andi
- sh
- shi
- lbr
- lba
- sbr
- sba
- b
- bc
- bal
- j
- jc
- jal
To Go:
- lsbr
- lsba
- ssbr
- ssba
- li
The multiplier will be accessed via instructions such as [ls]sb[ar]: load/store special byte to [immediate address/register address]. It's essentially off in IO space, or in a coprocessor, if you will.
Hmm...I may get rid of the 'b' in all those load+store instructions; it's a bit silly on an 8-bit machine.