#TotoArch - My new, kinda LEG-like, architecture

1 messages Β· Page 1 of 1 (latest)

tacit nest
#

This is a work in progress

Basically, I made the ALU, and I am now writing an instruction table of some sort.
I should note that I'm using the alpha version, and have not completed the new campaign, nor have I tackled the new assembler...

But I would like to hear your thoughts on my thing, any advice you may have, any footgun that I can avoid, etc

cunning merlin
#

The MUL/DIV/MOD isn't the best approach. You are merging 2x8 bits (16 bits) into 8 bits the splitting them again. Currently this is losing info, and it's simpler to just not do the merging & splitting.

plain bluff
forest veldt
#

Problems:

  • What Gelthor said about MUL/DIV/MOD
  • For adding and subtracting, do not use NEG - there is a much better way which uses a XOR and carry-in.
  • Make a 16bit decoder and use it with switches instead of a MUX-tree - the delay will be much lower
  • Arithmetic shift can be much more useful than you think - add it if you have the encoding space

Good things:

  • You do not have a MOV operation - this is good, because it can be simulated by C = A + 0, so you're not wasting decoding space for it
  • NOT can be simulated by A xor -1, so it's also good you don't have it (you need sign-extended immediates though)
#

One pet peeve: MUL/DIV/MOD have horrendous delay - if you care about keeping it low, do not add them yet

tacit nest
#

so

plain bluff
# tacit nest oops

A tip for the future: have a look at this,
it may be handy for bulding custom stuff:
#puzzle-help message => #puzzle-help message

forest veldt
tacit nest
#

if I replaced MUL/DIV/MOD by arithmetic shift, and maybe even rotations, I'd be better off? That way, I wouldn't even need to do that weird 16-bit splitting I'm currently doing
But also, I would have to output the adder's carry out, if only for adding more that 8-bit

#

... Everytime I try to design things, I end up thinking "The 6502 is genius design" πŸ˜‚

forest veldt
#

6502 is like a crab - all simple designs converge into it πŸ˜„

tacit nest
#

wait-

#

what if

#

all registers were 9 bit

#

that way, I can easily ripple carry bytes

forest veldt
tacit nest
plain bluff
# tacit nest all registers were 9 bit

But then you wouldn't perform operations on all bits in a register?
That seems slightly cursed πŸ€”, but then again the N64 did have the cursed 9-bit wide RAM, so ... 🀷.

forest veldt
plain bluff
#

Yeah, that ⬆️ is a more sane / common approach to this issue.

forest veldt
#

Well, my arch doesn't have any overflow checks built-in πŸ˜„
But it's 64bit so it doesn't hurt as much

tacit nest
#

but I think that for now, I'll try to complete the campaign in alpha, if that's even possible
I do wanna see what the new assembler is like, and what it enables

forest veldt
#

Most of the campaign is completable, but I suggest installing eryk500's campaign fixes

#

His message's incoming!

plain bluff
#

I can't fix any core issues with the game itself by myself though πŸ™.

tacit nest
#

shouldn't I just, like, get the patch right now?

forest veldt
#

Yes, preferably

plain bluff
tacit nest
#

oh ok

#

I will say, I don't think I've ever been this far into the game
or I don't remember

#

It's mostly the Add +5 challenge that made me think that the campaign is broken as is

forest veldt
#

Symphony replaced LEG

tacit nest
#

ahh, I see

plain bluff