DCPUTeam/DCPUToolchain

Where logic goes to take a dump...

Closed this issue · 7 comments

In latest build (dcputoolchain-windows--f98784405065ebd372058ab26a7ff768492a9b19) for windows , logic instructions are NOT working:
Just try and run this code:
.loop:
IFE 0,1
set [0x8000],0xA041 ;why does this gets executed,FTW?????
set pc,.loop
The same is for all other IF instructions.
Note: The codes works just fine on 0x10co.de with Toolchain compiler selected.
Edit: it only errors in loop code

Edit 2: Also fails in linux :(
This is my first programing in assembly and i'm trying to make racing game.
I wish it was my error but if it runs in one emulator but not in another then this isn't my mistake?
Here is the code, maybe some can use it to debug emulator: http://0x10co.de/o2gcs

i think this might be related to issue #210 , which i fixed a while back. This is weird.
I will try to reproduce this on my linux machine later. Thanks for noting.

This bug seems to have to do with IFs on literals, and issue #224 has to do with interrupts.

@unbibium @hyperfang8 : can you confirm the fix please?

I think the issue is only in the emulator because compiled binary works fine with other emulators?

are you sure this is still happening in the latest version?
i think i fixed this in commit 1024204

If the problem is that "IFE 0, 1" doesn't skip, then this is fixed in the build I'm using.

In fact, I use that construct with DEFINEs to run optional debugging subroutines, until such time as I get a better grasp of doing that with the preprocessor.

alright, thanks. marked as resolved!