DCPUTeam / DCPUToolchain

[ARCHIVED] The code repository for the DCPU-16 Toolchain.
http://dcputoolcha.in/
MIT License
96 stars 14 forks source link

Where logic goes to take a dump... #223

Closed hyperfang8 closed 11 years ago

hyperfang8 commented 11 years ago

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

patflick commented 11 years ago

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.

unbibium commented 11 years ago

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

patflick commented 11 years ago

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

hyperfang8 commented 11 years ago

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

patflick commented 11 years ago

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

unbibium commented 11 years ago

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.

patflick commented 11 years ago

alright, thanks. marked as resolved!