Author Topic: Bug Reports  (Read 448017 times)

0 Members and 15 Guests are viewing this topic.

Offline Matrefeytontias

  • Axe roxxor (kinda)
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1982
  • Rating: +310/-12
  • Axe roxxor
    • View Profile
    • RMV Pixel Engineers
Re: Bug Reports
« Reply #1935 on: August 05, 2014, 01:40:50 pm »
Code: [Select]
.db $7F ; says next instruction uses an address relative to the start of the axiom
.org $-1 ; since it's only used by Axe at compile time and not included in the final binary, tell the program counter it doesn't exist
Same for $49.

Offline Zemmargorp

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 115
  • Rating: +7/-2
  • Either programming or thinking of it.
    • View Profile
Re: Bug Reports
« Reply #1936 on: August 06, 2014, 08:55:01 am »
Code: [Select]
.db $7F ; says next instruction uses an address relative to the start of the axiom
.org $-1 ; since it's only used by Axe at compile time and not included in the final binary, tell the program counter it doesn't exist
Same for $49.
Thanks  :) ... it doesn't solve the problem, but I'm now at least sure that the error I encountered are not linked with it.


By the way, as we're in the "Bug Reports" section, here's a case where Axe Parser corrupts the memory due to a bad Axiom. If you want to reproduce this bug (on emulators of course) use the (buggy) axiom joined with the source written under. You'll get an "INVALID AXIOM" error, press clear, and try to open the source again... it crashes !
Code: (Source) [Select]
.AXE
#Axiom(AXEMENUS)
Menu(
Code: (Stats) [Select]

             009
E78009E8A3FE69F1
B9F1B000000000B3
700487F0A0000E60
000007BDE
I'm french, that's the reason why my English can be a bit approximate.

Offline Matrefeytontias

  • Axe roxxor (kinda)
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1982
  • Rating: +310/-12
  • Axe roxxor
    • View Profile
    • RMV Pixel Engineers
Re: Bug Reports
« Reply #1937 on: August 06, 2014, 04:32:04 pm »
This is usually caused by badly-aligned fields, and thus token hooks. I'm pretty sure I know what's causing it : you need to add to the size word one for every .org $-1 you wrote in your routine. This is because although PC doesn't take care of the special bytes, they still exist in the axiom (and not in the final Axe program) so they must be taken into account when calculating the routine's size.

Offline Zemmargorp

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 115
  • Rating: +7/-2
  • Either programming or thinking of it.
    • View Profile
Re: Bug Reports
« Reply #1938 on: August 07, 2014, 09:14:41 am »
This is usually caused by badly-aligned fields.
Yes, it is. This error is caused by a field using one byte instead of two. But Axe Parser should'nt corrupt the source.


You need to add to the size word one for every .org $-1 you wrote in your routine. This is because although PC doesn't take care of the special bytes, they still exist in the axiom (and not in the final Axe program) so they must be taken into account when calculating the routine's size.

I discovered it (a bit late, though). Ultimately, this is logical : I wrote the size as "labelEnd-labelBeginning", and writing ".org $-1" is used to not take into account the byte added (for labels).

Now I have a stable routine... Finally ! I may release a "beta" version soon (as the current version is not very practical), but I have to write a small documentation before, and do some more tests. I'll maybe post it tomorrow.
« Last Edit: August 07, 2014, 09:17:14 am by Zemmargorp »
I'm french, that's the reason why my English can be a bit approximate.

Offline Matrefeytontias

  • Axe roxxor (kinda)
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1982
  • Rating: +310/-12
  • Axe roxxor
    • View Profile
    • RMV Pixel Engineers
Re: Bug Reports
« Reply #1939 on: August 07, 2014, 09:55:52 am »
It's not Axe that corrupts things. It's the OS. And it's because the token hook definitions are misaligned, so the OS interprets then wrong. It tries to replace non-existing tokens with random strings of random size, so of course it doesn't work.

Offline Zemmargorp

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 115
  • Rating: +7/-2
  • Either programming or thinking of it.
    • View Profile
Re: Bug Reports
« Reply #1940 on: August 07, 2014, 11:10:31 am »
It's not Axe that corrupts things. It's the OS. And it's because the token hook definitions are misaligned, so the OS interprets then wrong. It tries to replace non-existing tokens with random strings of random size, so of course it doesn't work.
I'm not sure, because the calculator crashes only when I try to open the source after compiling it, whether it be from Axe using the [prgm] key to scroll to errors, or using the OS. Before compiling, even if the Axiom was corrupted, I could edit it without any damage.
I'm french, that's the reason why my English can be a bit approximate.

Offline Matrefeytontias

  • Axe roxxor (kinda)
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1982
  • Rating: +310/-12
  • Axe roxxor
    • View Profile
    • RMV Pixel Engineers
Re: Bug Reports
« Reply #1941 on: August 07, 2014, 11:45:56 am »
That's because Axe enables the OS's token hooks after having been able to parse the axiom once → after compiling it once. Then Axe doesn't do any other work than telling the OS "hey you, when you encounter this token replace it by this string that is this long". After that the OS does its thing itself when displaying programs' content.

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Bug Reports
« Reply #1942 on: November 16, 2014, 05:32:06 pm »
I tried a stupid program drawing a HLine between X1 and X2 with the three argument version, it didn't seem to do anything. Adding "L6" at the end solved the problem though, but isn't it meant to work if not specified ?
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Bug Reports
« Reply #1943 on: November 16, 2014, 05:39:20 pm »
I tried a stupid program drawing a HLine between X1 and X2 with the three argument version, it didn't seem to do anything. Adding "L6" at the end solved the problem though, but isn't it meant to work if not specified ?

Are you using Axe 1.2.2 or later (later meaning the dev version)? Because that's a known bug that I thought was fixed in 1.2.2.

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Bug Reports
« Reply #1944 on: November 16, 2014, 05:40:53 pm »
That's actually stupid. I thought this was a dev version but no, I tried that stupid program on the only computer I have that still runs 1.2.1 -.-
Sorry about that.
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline c4ooo

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 252
  • Rating: +10/-1
  • The impossible chemical compound.
    • View Profile
Re: Bug Reports
« Reply #1945 on: March 13, 2015, 10:00:30 pm »
This isn't really a bug, and I would personally want a you to do nothing about it, but you can actually play a sound using the freq() command with a time of zero. So I can do:
Code: [Select]
freq(260,0)

and it will whatever note has the wavelength of 260. The catch is that it plays it releay softly, and I have to use my guitar amp to hear it. So mabey change the documentacions to say "time should be greater then wavelength or else the sound will have to be amplified in order to hear it"
-German Kuznetsov
The impossible chemical compound.

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Bug Reports
« Reply #1946 on: March 13, 2015, 10:18:04 pm »
I looked at the source of that command and confirmed that it performs no port modulation if the second argument is less than the first. You might just be picking up on noise. :P

Offline c4ooo

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 252
  • Rating: +10/-1
  • The impossible chemical compound.
    • View Profile
Re: Bug Reports
« Reply #1947 on: March 13, 2015, 10:27:35 pm »
I looked at the source of that command and confirmed that it performs no port modulation if the second argument is less than the first. You might just be picking up on noise. :P
Does not sound like just random noise, unless the OS sends stuff out of the port automatically when you press the keys 2nd - sto (going down) which just happen to be the keys i happen to be using for my calc-a-phon  XD
But lie look into it. (tomorrow)

PS I am using axe v1.2.2
« Last Edit: March 13, 2015, 10:42:03 pm by c4ooo »
-German Kuznetsov
The impossible chemical compound.

Offline pimathbrainiac

  • Occasionally I make projects
  • Members
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1731
  • Rating: +136/-23
  • dagaem
    • View Profile
Re: Bug Reports
« Reply #1948 on: June 04, 2015, 05:07:14 am »
Apparently certain aspects of Axioms have been broken according to this post on CW. The same code compiles on an older version of Axe, but not the newer versions, and it's an Axiom thing. I haven't gotten around to testing to see if it is every axiom or Glib itself, but I thought you should know, since the discussion is going on elsewhere.
I am Bach.

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Bug Reports
« Reply #1949 on: June 04, 2015, 08:43:11 am »
Apparently certain aspects of Axioms have been broken according to this post on CW. The same code compiles on an older version of Axe, but not the newer versions, and it's an Axiom thing. I haven't gotten around to testing to see if it is every axiom or Glib itself, but I thought you should know, since the discussion is going on elsewhere.

It seems like you misunderstood what he was saying. He brought this problem to my attention a while ago and I fixed it for him in my in-development build of Axe. So he was saying that the Axiom doesn't work with any publicly released versions of Axe and that you need to use this development build.

I hope to make a public release of this eventually. But as of that build, the changes only fixed edge cases ran into by a few users and didn't seem warrant a release. And as of my current, internal build, lots of stuff is broken due to refactoring. :P
« Last Edit: June 04, 2015, 08:47:25 am by Runer112 »