my carry flag conditional for subtraction operations is not right... somehow....
return ((~oldSrc + 1) & 0xFF > oldDst)
@vahnj 8 bit - anding with 0xFF confines it to 8 bits
@Fuego oops off by power of one
ok so it's for the interpretation of the game - but if you're working in a larger memory space you have to keep in mind that the leftmost bit is supposed to represent being the negative number which can potentially be 0 in this case, right?
assuming i remember bitwise stuff right
@vahnj so if we want to test
00 - A0
~0 is 0xFF + 1 is 0x100 > 0xA5
which is right and 0 > 0xA5 is wrong....
you're right - thank you :)
register should be masked but the test here shouldnt be <3
@Fuego nice glad that helped!
@vahnj *dances* spent an hour walking back from the crash to find where i differed and when and then I've been scratching my head staring at that thing... haha
@Fuego assembly is a heck!! I really enjoyed hardware stuff in school though bc these little puzzles are way fun
@vahnj apparently also I just learned that CMP CPX and CPY do not set carry in any sane way
They just set carry if the register is larger than the operand which mathematically... is.... nonsense...?
@Fuego lolllll yea register math is fun and ridiculous
@Fuego try talking about it in plain english maybe?
what's the memory space you're working with? looks like 16 bit?
why are you doing & 0xFF? that's not gonna do anything to the number i think