Author Topic: Bug Reports  (Read 458266 times)

0 Members and 1 Guest are viewing this topic.

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Bug Reports
« Reply #1725 on: May 25, 2012, 12:30:40 pm »
That actually isn't a bug with pt-Get(), that's an issue with the sprite drawing commands:

Is axe 1.1.1 known to be buggy with arbitrary buffers?

If you mean drawing sprites to arbitrary buffers, this should work fine in Axe 1.1.1. There is currently a bug in drawing sprites to arbitrary buffers in Axe 1.1.2, but it shouldn't have existed before this. However, you should be able to get around this bug in Axe 1.1.2 by adding 11 to the buffer argument in sprite drawing commands.
Ok thanks for the tip. It works :)
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 squidgetx

  • Food.
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1881
  • Rating: +503/-17
  • rawr.
    • View Profile
Re: Bug Reports
« Reply #1726 on: May 28, 2012, 09:47:35 pm »
In constant For(EXP) structure loops, ending with an EndIf throws an invalid token. Is this supposed to happen? (All I remember is that gotos cannot be used inside these loops)

EDIT; Not sure if this is a feature request or a bug report, but when the EXP in For(EXP) evaluates to 0, can the loop execute 0 times (ie, skip the loop) instead of 65535?
« Last Edit: May 28, 2012, 10:24:45 pm by squidgetx »

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 #1727 on: May 29, 2012, 12:21:42 am »
For the first one, I think this is intentional due to the way the loop is structured.

For the second one, if you want to handle 0 you'll have to do it manually (otherwise the compiler would have to generate the check even when it's not needed). This shouldn't be any less optimized than if the compiler itself generated the check:
Code: [Select]
If EXP
.I assume an empty For() works
For()
.Code here
End
End
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

Offline MGOS

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 336
  • Rating: +95/-0
    • View Profile
Re: Bug Reports
« Reply #1728 on: June 04, 2012, 03:13:56 pm »
I'm having trouble with getkey(49) (graph). It returns one each time the key down and [right + zoom or left + trace] are pressed (all three the same time)
« Last Edit: June 04, 2012, 04:51:34 pm by MGOS »

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Bug Reports
« Reply #1729 on: June 04, 2012, 04:17:08 pm »
Short explanation:

This isn't the fault of Axe, this is a hardware limitation. To make them simpler/cheaper to manufacture, many keypads/keyboards detect key presses using a grid layout, which can result in phantom key presses if certain keys are pressed together. As an interesting coincidence, this is very much related to my recent How cheap is your keyboard? topic. :P


Long explanation:

Spoiler For Technical explanation:
In the keypad hardware, the keys are laid out in a grid of horizontal and vertical "wires" in which a keypress connects the wires intersecting at the key's location:

                                                            Key Code
               FE            FD            FB            F7            EF            DF            BF            7F            
BFGRAPHTRACEZOOMWINDOWY=2ndMODEDEL
GDFSTOLNLOGx?¹MATHALPHA
rEF0147,SINAPPSX,T,?,n
oF7.258)COSPRGMSTAT
uFB(-)369(TANVARS
pFDENTER+-*/^CLEAR
FEdownleftrightup


To detect a key, the user first tells the keypad driver that we're looking to retrieve the state of keys in a certain key group. A read from the keypad driver then returns an 8-bit number, with 1s representing locations where the key group wire is not connected to the key code wire (key not pressed), and 0s representing locations where they are connected (key is pressed). For instance, if you pressed TRACE, that would connect the BF key group with the FD key code wires, resulting in the FD key code bit reading as 0 when the BF group is polled:

                                                            Key Code
               1            0            1            1            1            1            1            1            
BFGRAPHTRACEZOOMWINDOWY=2ndMODEDEL
GSTOLNLOGx?¹MATHALPHA
r0147,SINAPPSX,T,?,n
o.258)COSPRGMSTAT
u(-)369(TANVARS
pENTER+-*/^CLEAR
downleftrightup


Now if you pressed a second key, let's say the down arrow key, this wouldn't affect reading the BF key group. But press the down arrow key and the left arrow key, and this happens:

                                                            Key Code
               0            0            1            1            1            1            1            1            
BFGRAPHTRACEZOOMWINDOWY=2ndMODEDEL
GSTOLNLOGx?¹MATHALPHA
r0147,SINAPPSX,T,?,n
o.258)COSPRGMSTAT
u(-)369(TANVARS
pENTER+-*/^CLEAR
downleftrightup


I have italicized the GRAPH key because it is now being detected as a phantom key press. Before pressing the left arrow key, pressing TRACE connects the BF key group to the FD key code. Pressing the down arrow key has no effect on polling the BF key group because it connects the FE key group to the FE key code, neither of which connect to the BF key group. But pressing the left arrow key acts as a link, connecting the key code of the TRACE key to the key group of the down arrow key, resulting in the down arrow key's FE key code reading as pressed when polling the BF key group.
« Last Edit: June 05, 2012, 05:02:13 pm by Runer112 »

Offline MGOS

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 336
  • Rating: +95/-0
    • View Profile
Re: Bug Reports
« Reply #1730 on: June 04, 2012, 04:47:26 pm »
Ok, thanks for the explanation. That makes it a lot clearer for me. So I will have to use other key combinations to make sure nobody accidentally presses them like I did.

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Bug Reports
« Reply #1731 on: June 05, 2012, 12:48:45 am »
Here is a program made by zTrumpet to check if there will be conflicts ;)
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 Happybobjr

  • James Oldiges
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2325
  • Rating: +128/-20
  • Howdy :)
    • View Profile
Re: Bug Reports
« Reply #1732 on: June 05, 2012, 09:42:16 am »
Short explanation:

This isn't the fault of Axe, this is a hardware limitation. To make them simpler/cheaper to manufacture, many keypads/keyboards detect key presses using a grid layout, which can result in phantom key presses if certain keys are pressed together. As an interesting coincidence, this is very much related to my recent How cheap is your keyboard? topic. :P


Long explanation:

Spoiler For Technical explanation:
In the keypad hardware, the keys are laid out in a grid of horizontal and vertical "wires" in which a keypress connects the wires intersecting at the key's location:

                                                            Key Code
               FE            FD            FB            F7            EF            DF            BF            7F            
BFGRAPHTRACEZOOMWINDOWY=2ndMODEDEL
GDFSTOLNLOGx?¹MATHALPHA
rEF0147,SINAPPSX,T,?,n
oF7.258)COSPRGMSTAT
uFB(-)369(TANVARS
pFDENTER+-*/^CLEAR
FEdownleftrightup


To detect a key, the user first tells the keypad driver that we're looking to retrieve the state of keys in a certain key group. A read from the keypad driver then returns an 8-bit number, with 1s representing locations where the key group wire is not connected to the key code wire (key not pressed), and 0s representing locations where they are connected (key is pressed). For instance, if you pressed TRACE, that would connect the BF key group with the FD key code wires, resulting in the FD key code bit reading as 0 when the BF group is polled:

                                                            Key Code
               1            0            1            1            1            1            1            1            
BFGRAPHTRACEZOOMWINDOWY=2ndMODEDEL
GSTOLNLOGx?¹MATHALPHA
r0147,SINAPPSX,T,?,n
o.258)COSPRGMSTAT
u(-)369(TANVARS
pENTER+-*/^CLEAR
downleftrightup


Now if you pressed a second key, let's say the down arrow key, this wouldn't affect reading the BF key group. But press the down arrow key and the left arrow key, and this happens:

                                                            Key Code
               0            0            1            1            1            1            1            1            
BFGRAPHTRACEZOOMWINDOWY=2ndMODEDEL
GSTOLNLOGx?¹MATHALPHA
r0147,SINAPPSX,T,?,n
o.258)COSPRGMSTAT
u(-)369(TANVARS
pENTER+-*/^CLEAR
downleftrightup


I have italicized the GRAPH key because it is now being detected as a phantom key press. Before pressing the left arrow key, pressing TRACE connects the BF key group to the FD key code. Pressing the down arrow key has no effect on polling the BF key group because it connects the FE key group to the FE key code, neither of which connect to the BF key group. But pressing the left arrow key acts as a link, connecting the key code of the TRACE key to the key group of the left arrow key, and resulting in the left arrow key's FE key code reading as pressed when polling the BF key group.

we need to get that saved somewhere
School: East Central High School
 
Axe: 1.0.0
TI-84 +SE  ||| OS: 2.53 MP (patched) ||| Version: "M"
TI-Nspire    |||  Lent out, and never returned
____________________________________________________________

Offline TheMachine02

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 452
  • Rating: +105/-0
  • me = EF99+F41A
    • View Profile
Re: Bug Reports
« Reply #1733 on: June 12, 2012, 11:23:25 am »
err....

I have a strange bug in axe 1.1.2

I compiled a programme and <crash>  RAM clear  :banghead:

I compiled on ion a big programme ( 5752 octets)....
AXE/asm programmer - unleash the power of z80 //C++//C

epic 3D things http://www.ntu.edu.sg/home/ehchua/programming/opengl/CG_BasicsTheory.html

Offline MGOS

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 336
  • Rating: +95/-0
    • View Profile
Re: Bug Reports
« Reply #1734 on: June 12, 2012, 03:30:21 pm »
err....

I have a strange bug in axe 1.1.2

I compiled a programme and <crash>  RAM clear  :banghead:

I compiled on ion a big programme ( 5752 octets)....

I think it may help if you are more precise - can you attach the code (if it isn't lost), did any errors occur, was it while compiling, backing up or execution?

Offline TheMachine02

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 452
  • Rating: +105/-0
  • me = EF99+F41A
    • View Profile
Re: Bug Reports
« Reply #1735 on: June 13, 2012, 11:15:22 am »
code->lost

there no error occur, it's crash when it compiled
AXE/asm programmer - unleash the power of z80 //C++//C

epic 3D things http://www.ntu.edu.sg/home/ehchua/programming/opengl/CG_BasicsTheory.html

Offline MGOS

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 336
  • Rating: +95/-0
    • View Profile
Re: Bug Reports
« Reply #1736 on: June 18, 2012, 01:16:31 pm »
I have absolutely no idea why this line of code (even if it is in a condition and never ran in execution) mixes up things in the program (like graphics and data storage), but it still runs stable (no errors or crashes occur, it just doesn't do what it should).
Code: [Select]
{L1}+1->{L1}
if I change it to
Code: [Select]
1+{L1}->{L1}everything works perfectly (I know it is this line because I didn't change anything else and if I change it back the weird stuff happens again).

As said, the line is in a conditional and it doesn't have to run at all, the stuff happens always from the beginning of the execution, so it has to be axe's fault.

I can't post more because it is part of my contest entry and now I know what to change, so it's not a big deal for me, but it would be interesting to know why this stuff happens.
« Last Edit: June 18, 2012, 01:16:57 pm by MGOS »

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Bug Reports
« Reply #1737 on: June 18, 2012, 01:54:18 pm »

Strange, I just tried this with Axe 1.1.2, there was no problem.
Are you using 1.1.2 ?
Or are you sure those were the exact lines of code (maybe it was {L1}r instead of {L1}) ?
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 leafy

  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1554
  • Rating: +475/-97
  • Seizon senryakuuuu!
    • View Profile
    • keff.me
Re: Bug Reports
« Reply #1738 on: June 18, 2012, 02:07:29 pm »
I have absolutely no idea why this line of code (even if it is in a condition and never ran in execution) mixes up things in the program (like graphics and data storage), but it still runs stable (no errors or crashes occur, it just doesn't do what it should).
Code: [Select]
{L1}+1->{L1}
if I change it to
Code: [Select]
1+{L1}->{L1}everything works perfectly (I know it is this line because I didn't change anything else and if I change it back the weird stuff happens again).

As said, the line is in a conditional and it doesn't have to run at all, the stuff happens always from the beginning of the execution, so it has to be axe's fault.

I can't post more because it is part of my contest entry and now I know what to change, so it's not a big deal for me, but it would be interesting to know why this stuff happens.

If I remember correctly Axe does a derp if you add a constant after or something. I could be totally wrong though.
In-progress: Graviter (...)

Offline MGOS

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 336
  • Rating: +95/-0
    • View Profile
Re: Bug Reports
« Reply #1739 on: June 18, 2012, 03:26:49 pm »
Strange, I just tried this with Axe 1.1.2, there was no problem.
Are you using 1.1.2 ?
Or are you sure those were the exact lines of code (maybe it was {L1}r instead of {L1}) ?
Yeah, latest update, and exact those lines. I rewrote the whole part like 4 times, always the same result.
I didn't try {L1}++ because IIRC there was a something wrong with that.

If I remember correctly Axe does a derp if you add a constant after or something. I could be totally wrong though.
Possible. I think I had similar problems before but I didn't care much because they were gone after little changes (which were completely unrelated with the stuff that went wrong though).