Omnimaga

Calculator Community => TI Calculators => Axe => Topic started by: ikemike on February 08, 2011, 11:58:37 pm

Title: Greyscale Pictures
Post by: ikemike on February 08, 2011, 11:58:37 pm
I am a noob at Axe Parser, and would like some advice regarding greyscale pictures. I have done the following code:
Code: [Select]
.EVERYDAY the Same Dream
ClrDraw
DiagnosticOff

GetCalc("appvSC",1*1536)→P
.Scene2
[000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
00001FF00000000000000000
000010100000000000000000 //This is where the problem is
000010100000000000000000
000010100000000000000000
000010100000000000000000
000010100000000000000000
00001FF00000000000000000
0000000003FFF00000000000
0000000003FFF00000000000
0000000002001003F0000000
0000000002001003F0000000
0000000002001003F0000000
0000000002001003F0000000
000000000200100000000000
000000000200100000000000]→Pic1
[FFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFF80403FFFF
FFFFFFFFFFFFFFF80403FFFF
FFFFFFFFFFFFFFF80403FFFF
FFFFFFFFFFFFFFF80403FFFF
FFFFFFFFFFFFFFF80402007F
FFFFFFFFFFFFFFF81402007F
FFFFFFFFFFFFFFF80402007F
FFFFFFFFFFFFFFFFFFFE007F
FFFFFFFFFFFFFFFFFFFE007F
FFFFFFFFFFFFFFFFFFFE007F
FFFFFFFFFFFFFFFFFFFE007F
FFFFFFFFFFFFFFFFFFFE007F
FFFFFFFFFFFFFFFFFFFE007F
FFFFFFFFFFFFFFFFFFFE017F
FFFFFFFFFFFFFFFFFFFE017F
FFFFFFFFFFFFFFF80402017F
FF80200FFFFFFFFAAC0A017F
FF80A80FFFFFFFF80402007F
FF80200FFFFFFFFBF402007F
FF80200FFFFFFFFBF402007F
FF80200FFFFFFFFBF402007F
FF80200FFFFFFFFBF402007F
FF80200FFFFFFFF80402007F
FF80200FFFFFFFF80402007F]→Pic2

Copy(Pic1,P,768)
Copy(Pic2,P+768,768)

GetCalc("appvSC")→P
Copy(P,L₆,768)
Copy(P+768,L₃,768)
Repeat getKey(15)
DispGraphr
End

The place where the problem is is marked. Can somebody please examine this code and tell me what is going wrong? The error is "bad number". The hex was created using sourcecoder with a 96*31 picture with 3 greyscale colors.
Title: Re: Greyscale Pictures
Post by: Xeda112358 on February 09, 2011, 12:00:50 am
Ah, I am not sure, but does all of the hex need to be on one line? Like, instead of:
Code: [Select]
...
FF80200FFFFFFFFBF402007F
FF80200FFFFFFFFBF402007F
...
put all the hex on one line:
Code: [Select]
...FF80200FFFFFFFFBF402007FFF80200FFFFFFFFBF402007F...
Title: Re: Greyscale Pictures
Post by: ikemike on February 09, 2011, 12:51:16 am
This is the new code I have. I'm getting an error with the Pic1.
Code: [Select]
.EVERYDAY THE SAME DREAM
ClrDraw
DiagnosticOff

GetCalc("vSC",1*1536)→P
GetCalc("vP1",1536)→Pic1
GetCalc("vP1",1536)→Pic2
[0]→Pic1
[0]→Pic2
Fill(Pic1,1536)
Fill(Pic2,1536)
.Scene2
[00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001FF0000000000000000000001010000000000000000000001010000000000000000000001010000000000000000000001010000000000000000000001010000000000000000000001FF000000000000000000000000003FFF000000000000000000003FFF000000000000000000002001003F00000000000000002001003F00000000000000002001003F00000000000000002001003F0000000000000000200100000000000000000000200100000000000]→Pic1
[FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80403FFFFFFFFFFFFFFFFFFF80403FFFFFFFFFFFFFFFFFFF80403FFFFFFFFFFFFFFFFFFF80403FFFFFFFFFFFFFFFFFFF80402007FFFFFFFFFFFFFFFF81402007FFFFFFFFFFFFFFFF80402007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE017FFFFFFFFFFFFFFFFFFFFE017FFFFFFFFFFFFFFFF80402017FFF80200FFFFFFFFAAC0A017FFF80A80FFFFFFFF80402007FFF80200FFFFFFFFBF402007FFF80200FFFFFFFFBF402007FFF80200FFFFFFFFBF402007FFF80200FFFFFFFFBF402007FFF80200FFFFFFFF80402007FFF80200FFFFFFFF80402007F]→Pic2
conj(Pic1,P,768)
conj(Pic2,P+768,768)

GetCalc("vSC")→P
conj(P,L₆,768)
conj(P+768,L₃,768)
Repeat getKey(15)
DispGraph
End
Title: Re: Greyscale Pictures
Post by: ikemike on February 09, 2011, 01:05:23 am
My new code:
Code: [Select]
.EVERYDAY THE SAME DREAM
ClrDraw
DiagnosticOff

GetCalc("vSC",1*1536)→P
.Scene1
[00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001FF0000000000000000000001010000000000000000000001010000000000000000000001010000000000000000000001010000000000000000000001010000000000000000000001FF000000000000000000000000003FFF000000000000000000003FFF000000000000000000002001003F00000000000000002001003F00000000000000002001003F00000000000000002001003F0000000000000000200100000000000000000000200100000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80403FFFFFFFFFFFFFFFFFFF80403FFFFFFFFFFFFFFFFFFF80403FFFFFFFFFFFFFFFFFFF80403FFFFFFFFFFFFFFFFFFF80402007FFFFFFFFFFFFFFFF81402007FFFFFFFFFFFFFFFF80402007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE017FFFFFFFFFFFFFFFFFFFFE017FFFFFFFFFFFFFFFF80402017FFF80200FFFFFFFFAAC0A017FFF80A80FFFFFFFF80402007FFF80200FFFFFFFFBF402007FFF80200FFFFFFFFBF402007FFF80200FFFFFFFFBF402007FFF80200FFFFFFFFBF402007FFF80200FFFFFFFF80402007FFF80200FFFFFFFF80402007F]→P
conj(P,L₆,720)
conj(P+720,L₃,720)
Repeat getKey(15)
DispGraph
End
Title: Re: Greyscale Pictures
Post by: Michael_Lee on February 09, 2011, 01:07:05 am
Why are you copying only 720 bytes?
Title: Re: Greyscale Pictures
Post by: Ikkerens on February 09, 2011, 02:57:29 am
Such arrays are stored in a different way in axe, you might want to look at this:

Code: (Axe) [Select]
[FFFF->Pic1
[FFFF
[FFFF
[FFFF
[0000->Pic0
[0000
[0000
[0000
Title: Re: Greyscale Pictures
Post by: aeTIos on February 09, 2011, 03:51:14 am
^^ He's right.
Title: Re: Greyscale Pictures
Post by: squidgetx on February 09, 2011, 07:22:43 am
He's only copying 720 bytes since his picture doesn't take up the whole screen (What are the dimensions of your pic btw? If the length is less than 96 it could get a little messy)
Anyway, if you want to put the pic data into the appvar, you'd have to do something like...
Code: [Select]
GetCalc("appvSC",1536)->P
Copy([Hex],P,720*2)
Copy(P,L6,720)
Copy(P+720,L3,720)
Repeat getKey(15)
Dispgraphr
End
But there's not really a point to putting it into an appvar anyway since it's stored in the program...so
Code: [Select]
[Hex]->Pic1
Copy(Pic1,L6,720)
Copy(Pic1+720,L3,720)
Repeat getKey(15)
Dispgraphr
End
Title: Re: Greyscale Pictures
Post by: ikemike on February 09, 2011, 05:58:08 pm
These pictures are 96*31. I have figured out, since the actual image is fine, it's just the area it doesn't cover that glitches, that I can just put a black rectangle where the glitches are.

By the way, is there a fast way to display a non 96*64 picture on a different part of the screen?
Title: Re: Greyscale Pictures
Post by: Xeda112358 on February 09, 2011, 08:32:01 pm
You could try sprites but I do not know if Axe can make odd sized pictures.
Title: Re: Greyscale Pictures
Post by: ikemike on February 09, 2011, 08:39:07 pm
Is there a way to have sprites simply go on top of the background, and not disturb the background itself? In BASIC, you always had to compensate the sprite's movement by replacing the pixels behind it. Does Axe have a simpler way? Or is it the same as BASIC, and will I have to reload the background back onto the screen every time my sprite moves?

By the way, the sprite is greyscale.
Title: Re: Greyscale Pictures
Post by: Xeda112358 on February 09, 2011, 08:41:26 pm
The sprite automatically overwrites the background, I think, unless you choose some other logic method. And you will need to reload the image, I think.
Title: Re: Greyscale Pictures
Post by: ikemike on February 10, 2011, 01:22:10 am
I am having another problem. Why does this not display the two pictures in succesion after pressing 2nd?
Code: [Select]
.EVERYDAY EVERY DAY THE SAME DREAM
ClrDraw
DiagnosticOff

GetCalc("vSC",2*1536)→P
.Scene2
[00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001FF0000000000000000000001010000000000000000000001010000000000000000000001010000000000000000000001010000000000000000000001010000000000000000000001FF000000000000000000000000003FFF000000000000000000003FFF000000000000000000002001003F00000000000000002001003F00000000000000002001003F00000000000000002001003F0000000000000000200100000000000000000000200100000000000]→Pic1
[FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80403FFFFFFFFFFFFFFFFFFF80403FFFFFFFFFFFFFFFFFFF80403FFFFFFFFFFFFFFFFFFF80403FFFFFFFFFFFFFFFFFFF80402007FFFFFFFFFFFFFFFF81402007FFFFFFFFFFFFFFFF80402007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFE017FFFFFFFFFFFFFFFFFFFFE017FFFFFFFFFFFFFFFF80402017FFF80200FFFFFFFFAAC0A017FFF80A80FFFFFFFF80402007FFF80200FFFFFFFFBF402007FFF80200FFFFFFFFBF402007FFF80200FFFFFFFFBF402007FFF80200FFFFFFFFBF402007FFF80200FFFFFFFF80402007FFF80200FFFFFFFF80402007F]→Pic2
conj(Pic1,P,768)
conj(Pic2,P+768,768)
.Scene1
[0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007FFC00000000000000000000400400000000000000000000400400000000000000000000400400000000000000000000400400000000000000000000400400000000000000000000400400000000000000000000400400000000000000000000400400000000000000000000400400000000000000000000520400000000000000000000731C00000000000000000000731C00C00000000000000000731C00C00000000000000000731C00C00000000000000000731C00C00000000000000000610400D00000060000000000400400DC0000060000000000400400FC0000060000000000400400FC0000060000000000400400FC000006000000000F540400FC000006000000000F760400FFFFFFFE000000000F7FFC00]→Pic3
[FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080FFFFFFFFFFFFFFFFFFFF8080FFFFFFFFFFFFFFFFFFFF8080FFFFFFFFFFFFFFFFFFFF8080FFFFFFFFFFFFFFFFFFFF8080FFFFFFFFFFFFFFFFFFFF8080FFFFFFFFFFFFFFFFFFFF8080FFFFFFFFFFFFFFFFFFFF8080FFFFFFFFFFFFFFFFFFFF8080FFC007FFFFFFFFFFFFFF8080FFFB5FFFFFFFFFFFFFFF8080FFF207FFFFFFFFFFFFFF8080FFFF1FFFFFFFFFFFFFFF8080FFFF1FFFFFFFFFFFFFFF8080FFFF1FFFFFFFFFFFFFFF8080FFFF1FFFFFFFFFFFFFFF8080FFFF9FFFE0FFFFFFFFFF8080FFFFDFFFD8000007FFFF8080FFFFFFFFDC7FFFFFFFFF8080FFFFFFFFFC7FFFFFFFFFFFFFFFFF07FFFC7FFFFFFFFFFFFFF9FF8FFFFC7FFFFFFFFFFFFFFFFF8FFFFC7FFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFF]→Pic4
conj(Pic3,P+(768*2),768)
conj(Pic4,P+(768*3),768)

For(Z,0,1)
conj(P+(Z*1536),L₆,768)
conj(P+(Z*1536+768),L₃,768)
ref(0,32,96,33)
Repeat getKey(54)
DispGraph
End
End
Title: Re: Greyscale Pictures
Post by: Michael_Lee on February 10, 2011, 01:52:39 am
By any chance, does pressing [2ND] for the first time end the program?
If so, then adding a
Code: [Select]
While getKey(0)
    DispGraphr
End
after your first Repeat loop might help.
Title: Re: Greyscale Pictures
Post by: ikemike on February 10, 2011, 07:33:53 am
Thanks. I forgot that Axe is 9001% faster than BASIC. =)