Page 2 of 3
Posted: Fri 25 Aug, 2006 9:30 pm
by chickendude
...or maybe TI can let you know?
Posted: Fri 25 Aug, 2006 11:10 pm
by KevinJB
3fg says it's 412b.
Posted: Fri 25 Aug, 2006 11:15 pm
by threefingeredguy
Is this 83+ or 83 regular? Either way I don't see why they would call that area.
Posted: Fri 25 Aug, 2006 11:24 pm
by chickendude
83+.
Posted: Sat 26 Aug, 2006 11:45 pm
by elfprince13
chickendude wrote:There is already a BASIC>ASM program somewhere on ticalc, not sure how well it works though.
from what Ive seen, it doesn't.
King Harold wrote:Ive seen that one, i think elfprince means on-calc? right?
should be possible, afterall, we have the famous "three exec" and "fourexec" i dont see them being used a lot though lol
whats three exec and fourexec? and yes, I meant on-calc, it would be really hard to do offcalc without a ROM and an emulator...
Posted: Sun 27 Aug, 2006 6:00 am
by King Harold
three-exec and fourexec are bcalls that take 3 or 4 values off hte FPS to work with, with the function to perform in a, can all be found in the sysroutines pdf thingy..
Posted: Wed 30 Aug, 2006 4:53 pm
by Saibot84
Posted: Wed 30 Aug, 2006 5:10 pm
by King Harold
program controll flow might give some trouble, the rest shouldnt be any poblem, but i origionally only wanted to get rid of the silly way "Goto" works, its just too idiotic to let it continue to work like it currently does..
Posted: Wed 30 Aug, 2006 11:53 pm
by DarkAuron
I have a nice subroutine setup in my TILEMENU program for pure ti-le. It looks something like this:
Code: Select all
PROGRAM:TILEMENU
If (theta)=1:Then
For(I,0,1+int(H/2
Line(X,-Z-I,X+L,-Z-I,0
Line(X,-Z-H+I,X+L,-Z-H+I,0
End
For(I,0,1
Line(X+I,-Z-H-I,X+L+1,-Z-H-I
Line(X+L+I,-Z-I,X+L+I,-Z-H-I
End
Line(X,-Z,X+L,-Z
Line(X,-Z,X,-Z-H
0->(theta):Return:End
...
1->(theta):0->X:1->Z
52->L:22->H
prgmTILEMENU
That will create space for and draw in a window with a shadow by specifying x, y, length, and height parameters. If I wanted to add more subroutines to the program and still be optimal, I can put the subrountines in a If (theta):Then: ... :End block. It's a nifty way of adding in a subroutine to a program by using up a variable as a reference to which subroutine you're calling to. It'll still have to scan for the data but it's faster and more structurally sound than using Goto.
I did that above code to save space in the TILEMENU program without creating a new program. Saved me a few hundred bytes and made it easier to do more windows, plus calling to the program TILEMENU to make a new window from any of the Pure TI-le programs is cleaner, period.
Posted: Thu 31 Aug, 2006 2:22 pm
by King Harold
how does this relate to the label-jumper though?
you know you cant just put everything in if:then things..
that would cause HUGE memory leak..
by the way, your method takes more code, and i allready have some 7K and bigger basic programs, which run fine with normal Goto's, but they could be faster..
(i put a goto to somewhere in the middle at the beginning, and the code that has to run fast just after it, but it could be better..)
Posted: Thu 31 Aug, 2006 3:13 pm
by Saibot84
Posted: Thu 31 Aug, 2006 4:02 pm
by chickendude
Yea, so long as you reach End for every statement that requires it.
For example:
For(A,0,100
If A=20:Goto B
End
Lbl B
Since it never reaches the End, a memory leak will evnetually ensue. But DarkAuron's code, since each For() statement exits the loop through the use of the End command, it should be perfectly stable.
It's been so long since I've touched BASIC...
EDIT:
I'm not quite sure how the return statement works, but I think that might actually cause a memory leak, as it exits before the End is reached. Please correct me if I'm wrong!
Posted: Thu 31 Aug, 2006 5:25 pm
by Saibot84
AFAIK, "Return" closes any open If or if-then statements... but I forgot where I read that... /me tries on-calc... /me gets confused and gives up trying on-calc... Code: Select all
PROGRAM:AAB
:ClrHome
:1
:Lbl A
:Output(1,1,Ans
:If 1
:Then
:Ans+1
Goto A
that reached 635 before Err:Mem, all the while slowing down... however, "0:prgmAAA"Code: Select all
PROGRAM:AAA
:If Ans!=0
:Then
:Return
:End
:ClrHome
:1
:Lbl A
:Output(1,1,Ans
:prgmAAA
:Ans+1
:Goto A
this code happily reached 1500 and would have continued, w/o slowing down and thus, w/o leaking memory had I not pressed [ON] to break it. Code: Select all
PROGRAM:AAC
:If Ans!=0
:Then
:If 1
:Then
:Return
:End:End
:ClrHome
:1
:Lbl A
:Output(1,1,Ans
:prgmAAC
:Ans+1
:Goto A
this also did not leak any memory... thus Return can close more than one if-then statement
____________________
XDG Kat-Productions
-
Michael
MyBlog ChatWithMe
Posted: Thu 31 Aug, 2006 6:00 pm
by chickendude
Good work, detective!
Posted: Thu 31 Aug, 2006 6:01 pm
by King Harold
wasnt only "End" supposed to do that?
anyway, no trick is ever going to be as fast as a nice asm program to handle jumps..