Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
Ah, ok, cool. So is there no footer? I like the error checking, that makes life a little easier.
No footer either, if I remember correctly.
I noticed in a very simple program I typed in (6 newlines, a comma, and that's it), that 3 null bytes were at the end.
I took the csv file and converted it into an XML file that tokens could handle, and here's the output of detokenizing that g3m file:
http://pastebin.com/L6376zxs
Note all the "NOT FOUND"s. This is where it was unable to find a token.


Ok, so I made some changes:

Code:
89: +
0E: ->
20: <space>
22: " (<double quote>)
$30: 0
$31: 1
$32: 2
$33: 3
$34: 4
$35: 5
$36: 6
$37: 7
$38: 8
$39: 9
$41: A
$42: B
$43: C
$44: D
$45: E
$46: F
$47: G
$48: H
$49: I
$4A: J
$4B: K
$4C: L
$4D: M
$4E: N
$4F: O
$50: P
$51: Q
$52: R
$53: S
$54: T
$55: U
$56: V
$57: W
$58: X
$59: Y
$5A: Z
E5E2: <3
LocusOff <-> Locate
Goto <-> Getkey
IfEnd -> If
Imp -> IfEnd
{angle measure} -> :
Err:520 <-> !=
Err:520 <-> &lt;
Err:520 <-> &gt;
{right triangle} -> =
Receive38k <-> Red

And that made it so I could detokenize the moving heart program of mine:

Code:
ClrText
2->X
2->Y
While 1
Getkey->K
If K!=0:Then
Locate X,Y," "
IfEnd
If K=27 And X<20
Then
X+1->X
IfEnd
If K=38 And X>1
Then
X-1->X
IfEnd
If K=28 And Y>1
Then
Y-1->Y
IfEnd
If K=37 And Y<7
Then
Y+1->Y
IfEnd
Red Locate X,Y,"<3 "
WhileEnd [NOT FOUND: 00][NOT FOUND: 40]IM

There's some sort of footer, the programs ends at the WhileEnd.
But, LocusOff can't be the same of Locate.

In my spreadsheet Locate is 85 while LocusOff is F710. Granted there's others, but still. What were the codes representing before you updated them?
They're not the same, I switched their values and it worked. Locate is F710.
Hm. I'm not sure how those got switched. Anyways, thanks for that Smile
Once you get the others, could I get a list of just the new ones?
The new ones, as in the ones other than the single character A-#? Sure.
Yeah, everything not on the original list or what I said.
I'm getting ready to shoehorn Prizm support into SourceCoder, doing all kinds of cleanup and consolidation. Are there indeed one- and two-byte tokens, just like in TI-BASIC?
I haven't fully compiled the list of the last tokens for _player to parse, but there are tokens with values of ## and #### already.
comicIDIOT wrote:
I haven't fully compiled the list of the last tokens for _player to parse, but there are tokens with values of ## and #### already.
Nifty. I'm hoping that they follow the same patterns as the TI-BASIC tokens, namely that no one-byte token has the same value as the first half of any two-byte sequence. If that holds true, then I can do tokenization and detokenization with no changes to my existing routines for the process.
It doesn't look that way. Here are the first two that start with 7F.


Code:
D Var,7F
Xmax ,7F00


It continues for 188 rows, including these two.
What endianness are the two-byte tokens, though? If they're little endian, then $7F00 becomes $00,$7F, and we have no problem.
KermMartian wrote:
What endianness are the two-byte tokens, though? If they're little endian, then $7F00 becomes $00,$7F, and we have no problem.


In reponse to a question about Casio Tokens, Qwerty.55 responds that they are Big Endian. Hmm.

Apparently, you can save-as a program. Sadly, you don't get any options. It saves as a TXT. Here's a list of tokens the calculator basically gave me.

Code:
'ProgramMode:RUN






++
Char-
*
/
^^
**
//
=
<>
<
>
<=
>=
(-)
#E5BE
#E5BF
#E6B0
#E6B1
#E5A3
#E5A4
Imaginary
#E5B0
Exp
#E64F
Infinity
#E542
Sqrt
#E551
#E54F
#E6BB
#E6B7
#E6B8
#E6B9
#E5C0
#E5C1
#E5C2
#E5C3
#E5C4
#E5C5
#E5C6
#E5C7
#E5C8
#E5C9
#E5CA
#E5CB
#E5CC
#E5CD
#E5CE
#E5CF
#E5D0
#E5D1
#E5D2
#E5D3
#E5D4
#E5D5
#E5D6
#E5D7
#E5D8
#E5D9
#E5DA
#E5DB
#E5DC
#E5DD
#E5DE
#E5DF
x-bar
y-bar
x-hat
y-hat
p-hat
Angle
dms
deg
rad
gra
#E6BD
#E6BE
#E6BF
#E6C0
#E6C1
#E6C2
#E6C3
#E6C4
#E6C5
#E6C6
#E6C7
#E6C8
#E6C9
#E6CA
#E6CB
#E6D6
#E6CC
#E6CD
#E6CE
#E6CF
#E6D0
#E6D1
#E6D2
#E6D3
#E6D4
#E6D5
#E6B2
#E6B3
#E6B4
#E6B5
#E6BC
#E6B6
#E6D7
#E6D8
#E6D9
#E6DA
#E6DB
#E6DC
#E6DD
#E6DE
X



         


I've sent five programs off to _player to be HEX'd for me. Until I get those back, heres a photo for each program showing all the tokens. Not the best representations, as I made them so I could easily spot missing tokens. It actually works out, that I was able to line up the characters exactly to the menus I got these from with little editing in the program. I got rid of spaces and breaks under "MATH" so I could fit it one screen.



I'm 50% sure I mixed up Greek & Latin here.






The code block above.
To permanently lock programs (aside from being able to unlock them with hex editors), just use a non-typeable character as the password. I recommend 0xE6A0.
I saw the option to lock a program but haven't had the chance to play with it.

I'm assuming unlocking programs would require that key?
Yes, it requires the key to exactly match in order to unlock it.
Would it be helpful to you guys to have the program I made that dumps out a txt file?

Also, we've discovered some things wrong with the list:
CoordOn -> F7C3
Break -> F70D
xyLine -> F751

(Thatnks JosJuice for helping out with these).

Also, for the record, it seems that with the last four bytes of the program, you ignore anything after the first 00. So, if the last four bytes are "31003131", that's just "1" (Thanks QWERTY).
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 2 of 4
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement