Author Topic: Bug Reports  (Read 464412 times)

0 Members and 1 Guest are viewing this topic.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Bug Reports
« Reply #900 on: November 05, 2010, 07:52:26 pm »
It seems like DCS7 doesnt support descriptions when I compile an axe code to an Ion prog.

Doors definitely supports Ion descriptions... Do you have another shell you could try it in?
Ah I see. So this is definitively an issue on Axe's side.

Offline Aichi

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 290
  • Rating: +76/-3
    • View Profile
    • Devrays
Re: Bug Reports
« Reply #901 on: November 06, 2010, 02:59:42 am »
Here are 2 screenshots comparing an axe ion program description and a mimas ion program description.
    Mimas                                     Axe


Another Bug report:
When I use 'Pause ' (without argument) Axe is compiling the code without giving an error. If I execute the prog, the calc crashes. So it would be nice if Pause without an argument was an error.

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Bug Reports
« Reply #902 on: November 06, 2010, 10:28:27 am »
Using Pause without an argument likely uses the last answer as the argument. It may have "crashed" because you had a very large number there (or 0).
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

Offline Deep Toaster

  • So much to do, so much time, so little motivation
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 8217
  • Rating: +758/-15
    • View Profile
    • ClrHome
Re: Bug Reports
« Reply #903 on: November 07, 2010, 12:26:13 pm »
Another Bug report:
When I use 'Pause ' (without argument) Axe is compiling the code without giving an error. If I execute the prog, the calc crashes. So it would be nice if Pause without an argument was an error.

That's actually useful in some cases, like pausing for a calculated amount of time such as for a game with multiple speeds. It saves at least three bytes compared to pausing for an amount of time stored in a var. The docu should warn against this stuff, though, so people don't do it by accident.




Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Bug Reports
« Reply #904 on: November 08, 2010, 01:35:02 pm »
So, I think I have come up with a foolproof method for checking whether interrupts are enabled, even if an interrupt occurs at an inopportune moment:
Code: [Select]
;Push a zero byte to the stack and pop it
xor a
push af
pop af
ld a,i
jp pe,interrupts_on
;See if an interrupt triggered. If so, the byte on the stack will not be 0 anymore
;unless this code is executing from $0000-$00FF area, which would only happen if you are writing an OS
dec sp
dec sp
pop af
or a
jr z,interrupts_off
;If interrupts were on, set A to $FF so the increase will set parity even
ld a,$FF
interrupts_off:
;Set parity odd
inc a
interrupts_on:

Edit:
My code had a logical error, it should be fixed now
« Last Edit: November 08, 2010, 01:41:14 pm by calc84maniac »
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

Offline kindermoumoute

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 836
  • Rating: +54/-3
    • View Profile
Re: Bug Reports
« Reply #905 on: November 08, 2010, 02:19:50 pm »
I found a bug (I think) :
When I compile this code in Axe 0.4.4, it work :
Code: [Select]
:!If EXP1
:.Code
:ElseIf EXP2
:.Code
:End

But in 0.4.5, I'm obliged to do that :
Code: [Select]
:If EXP1=0
:.Code
:ElseIf EXP2
:.Code
:End

This is due to ERR:BLOCK when I compile.
???
Projects :

Worms armageddon z80 :
- smoothscrolling Pixelmapping : 100%
- Map editor : 80%
- Game System : 0%

Tutoriel français sur l'Axe Parser
- 1ère partie : en ligne.
- 2ème partie : en ligne.
- 3ème partie : en ligne.
- 4ème partie : 10%
- Annexe : 100%

Offline guy6020665

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 481
  • Rating: +7/-1
    • View Profile
Re: Bug Reports
« Reply #906 on: November 08, 2010, 02:58:14 pm »
Not sure if this has been mentioned already, but if you overwrite an external variable that's been in archive, it just gets deleted and not overwritten.

When I've done that it just becomes hidden and archived.

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Bug Reports
« Reply #907 on: November 08, 2010, 03:29:43 pm »
I found a bug (I think) :
When I compile this code in Axe 0.4.4, it work :
Code: [Select]
:!If EXP1
:.Code
:ElseIf EXP2
:.Code
:End

But in 0.4.5, I'm obliged to do that :
Code: [Select]
:If EXP1=0
:.Code
:ElseIf EXP2
:.Code
:End

This is due to ERR:BLOCK when I compile.
???

I have noticed this too, this problem isn't just you.

Offline ztrumpet

  • The Rarely Active One
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5712
  • Rating: +364/-4
  • If you see this, send me a PM. Just for fun.
    • View Profile
Re: Bug Reports
« Reply #908 on: November 08, 2010, 03:39:02 pm »
So, I think I have come up with a foolproof method for checking whether interrupts are enabled, even if an interrupt occurs at an inopportune moment:
Awesome!  Is this any slower than the routine currently being used?

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Bug Reports
« Reply #909 on: November 08, 2010, 04:44:01 pm »
Yes, it's slower, but it actually works. Well, in theory. I made a stupid mistake in that last code, so it won't work. This one might work (and is more optimized):
Code: [Select]
xor a
push af
pop af
ld a,i
jp pe,interrupt_check_end
dec sp
dec sp
pop af
add a,a
jr z,interrupt_check_end
xor a
interrupt_check_end:
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Bug Reports
« Reply #910 on: November 10, 2010, 05:24:48 pm »
The signed division auto optimizations are gone ???

EDIT: Also, sprite routines targeted to arbitrary buffers reverse the x and y arguments.

EDIT 2: Oh, and in the commands list you accidentally call EXP1**EXP2 signed multiplication instead of fixed point multiplication.
« Last Edit: November 11, 2010, 01:46:39 am by Runer112 »

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Bug Reports
« Reply #911 on: November 14, 2010, 10:53:23 pm »
Apparently Axe does not like a !If / ElseIf / ... / End block, or !If / Else!If / ... / End. Basically, a !If cannot start an ElseIf chain. It gives ERR:BLOCK.
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Bug Reports
« Reply #912 on: November 14, 2010, 11:10:40 pm »
I think I saw this reported elsewhere by another person, but I forgot which thread. Seems like a bad bug X.x

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Bug Reports
« Reply #913 on: November 14, 2010, 11:14:12 pm »
EDIT 2: Oh, and in the commands list you accidentally call EXP1**EXP2 signed multiplication instead of fixed point multiplication.
It actually is a signed fixed-point multiplication. The list doesn't say "fixed-point" in so many words, though it does describe the type of number it is.
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Bug Reports
« Reply #914 on: November 15, 2010, 12:39:15 am »
EDIT 2: Oh, and in the commands list you accidentally call EXP1**EXP2 signed multiplication instead of fixed point multiplication.
It actually is a signed fixed-point multiplication. The list doesn't say "fixed-point" in so many words, though it does describe the type of number it is.

You're right, there's definitely some signed stuff going on here. But it's a good thing you pointed this out, because now that I look into it more, it appears that the routine itself is buggy. For instance, ᴇ0400**ᴇ2000 evaluates to ᴇ8000, although I believe it should be ᴇ0000 signed. It seems to be a problem with signed overflows not carrying properly. As another example, ᴇ0410**ᴇ2000 evaluates to ᴇ7E00, although I believe it should be ᴇ0200.

Can someone please verify that this is a problem? Or tell me how I'm misunderstanding it and why it's not a problem?
« Last Edit: November 15, 2010, 12:45:42 am by Runer112 »