Here's everything for A-M, _player1537 is working on N-#. Hopefully _player won't be too much longer. But I can most certainly finish N-#, but I said _player could do it. I'll hold off.
It's in CSV format. The Unicode appears to break here, so I'll post a link to download this as well, as it views just fine in OpenOffice once imported.

The first column is a bit redundant, but there are a few tokens that are one way in the Catalog but display another in-program. Take the very first token for example. Then, the first three of N are different - n(STAT), n(RECUR) & n(Financial) - but all appear as 'n' once in a program.

Here are all the tokens from the catalogue. We'll be working on the misc characters soon.

Here is the spreadsheet containing the current list of tokens.
https://docs.google.com/spreadsheet/ccc?key=0Ai5HI0wB7bW6dGVZWVJ6ZENVSW44SXhCbEE0MlZyR2c&hl=en_US#gid=10
Nice work.
Do we have the format for these files yet?
merthsoft wrote:
Do we have the format for these files yet?
An excellent question. When we do, I'll have to teach SourceCoder what to do with them.
I have the format, somewhere on my HDD...
If you can find it, I know what I'm doing tomorrow. Hurry up and get the rest of the tokens, _player.
FWIW, here is a Prizm program containing each token in the catalog, followed by a newline. 0D is a new line, and the program starts with 6 of them (So you know where the data starts). http://tanner.isthecoolest.com/filesys/HEX2.g3m . I'll make tokens in a few :/
_player1537 wrote:
FWIW, here is a Prizm program containing each token in the catalog, followed by a newline. 0D is a new line, and the program starts with 6 of them (So you know where the data starts). http://tanner.isthecoolest.com/filesys/HEX2.g3m . I'll make tokens in a few :/
Didn't I send you my program, albeit HEX.g3m, with all the tokens in the catalog? Nonetheless, we'll at least we'll be able to compare the number of line breaks and see if we match up. If you have more/less then one of us is off.

Before I do that, did you add breaks after each letter of the alphabet? If so, how many?

Haha. If you can't find the time I'll be more than happy to do N-#.
Heh, that _is_ the file you sent me Razz I still want to make half the list, to say I helped out Smile
Oh. I'm guessing you made a duplicate then? Darn. I was really hoping to compare the number of tokens (actually line breaks) in each.
merthsoft wrote:
If you can find it, I know what I'm doing tomorrow. Hurry up and get the rest of the tokens, _player.


Quote:
The .g3m file format a very simple format, with three sections of security bytes that were slightly
annoying to figure out. Here are the rules governing each of the sections. Numbers of the form 0xNNh
refer to addresses offset from the starting address of the file while $NN refers to hex numbers.
0x14h - 0x13h = $48
0x1C - 0x1Dh = $1D
0x14h - 0x1Dh = $C3
0x13h - 0x1Ch = $5E
0x0Eh + 0x48h = $72
$38 - 0x48h = 0x1Dh
0x48h = (Length of the rest of the data) - $3.
There are always 13 00 bytes following 0x48h.
Algorithm for computing the security sequences:
$38 - 0x48h → 0x1Dh
$72 - 0x48h → 0x0Eh
0x1Dh + $C3 → 0x14h
0x14h - $48 → 0x13h
0x13h - $5E → 0x1Ch
0x00h through 0x0Dh:
AA AC BD AF 90 88 9A 8D 8A FF EF FF EF FF
0x0Fh through 0x12h:
FF FF FF
0x15h through 0x1Bh:
01 00 00 00 00 00 00
0x1Eh through 0x3Bh:
FF FE 50 52 4F 47 52 41 4D 00 00 00 00 00 00 00 00 00 00 00 00 01 73 79 73 74 65 6D 00 00
0x3Ch through 0x43h:
8 byte ASCII code for file name.
0x44h through 0x47h:
01 00 00 00
0x49h through 0x55h:
8 byte ASCII password to lock the program. Null bytes if no password
Finished my set of tokens. Format is "bytes:token", and can be matched by the following regexps:
Code:
BYTES: s/^\([^:]*\):.*$/\1/
TOKEN: s/^[^:]*:\(.*\)$/\1/
Edit: We seem to be missing 3 sets of bytes... :/ You had: 7FDD, next is 7FA3, AF, and then where I started.
Code:
7F64:n
F755:n
7FC0:n
7FC1:N-Dist
F707:n1
F928:n2
D9:Next
F7A1:None
F72B:Norm
F981:Normal
F980:NormalG
7FB3:NormCD(
F732:NormPD(
F9E2:Not
F9E8:NPPlot
F9E0:OnePropZTest
F9EE:OneSampleTTest
F713:OneSampleZTest
7FB1:OneWayANOVA
7FC7:OpenComport38k
7FC8: Or
7FC9:{^p}
88:{^p1}
7FD2:{^p2}
FB:{P bold}
7FCC:p
7FE2:P(
7FE4:P/Y(
F765:pa
7FE3:pab
F799:ParamType
7F4E:pb
F9BB:%
F9BC:Percent
F73A:PeriodsAnnual
E0:PeriodsSemi
F999:Pie
F7AA:Plot
F7A9:Plot/Line-Color
F7A8:PlotChg
F721:PlotOff
7F61:PlotOn
7F63:PlotPhase
7F67:Ply Coef
F9B6:Ply Result
F9B5:PMT
F990:PmtBgn
F98F:PmtEnd
80:PoissonCD(
F75E:PoissonPD(
F749:Pol(
7F4D:Power
ED:PowerReg
7F66:Prod
F7AD:Prog
F7AC:PV
F7AB:PxlChg
F7AF:PxlOff
FC:PxlOn
7F76:PxlTest(
F789:Q(
F787:{Q1}
7F77:Q1Q3TypeOnData
F759:Q1Q3TypeStd
F744:{Q3}
F75B:Quad
F746:QuadReg
7FF1:Quart
CA:QuartReg
7F96:{r bold}
7F94:r
F7DB:R EndjR Result
F7CB:R SelOff
7F95:R SelOn
FD:R Start
F764:R(
7FD6:r=Type
F90A:{r2}
F907:{r angle theta}
DB:{>r angle theta}
C1:Rad
7F89:Ran#
7F87:RanBin#(
7F88:RanInt#(
7F8A:RanList#(
F79F:RanNorm#(
F796:RclCapt
F794:RclGMEM
F798:RclPict
F908:RclV-Win
A0:Real
F712:Rec(
F716:Receive(
7F34:Receive38k
7F55:Red
7F24:Ref
F777:ReP
F776:Resid-List
F70C:Resid-None
7F19:Return
7F18:RightT{theta}max
7F1A:RightT{theta}min
F922:RightT{theta}ptch
7F11:RightXdot
7F10:RightXmax
7F12:RightXMin
7F15:RightXscl
7F14:RightYmax
7F16:RightYscl
7FBD: Rmdr
D3:Rnd
7F86:RndFix(
7F44:Row+
7F42:*Row
7F43:*Row+
7F56:Rref
F74A:S-Gph1
F74B:S-Gph2
F74C:S-Gph3
F71E:S-L-Broken
F71F:S-L-Dot
F71C:S-L-Normal
F71D:S-L-Thick
F9F4:S-L-Thin
F760:S-WindAuto
F761:S-WindMan
F750:Scatter
E4:Sci
7FD4:se
F910:Sel {a0}
F911:Sel {a1}
F9B3:Sell(
F711:Send(
F715:Send38k
7F2C:Seq(
F998:SetG-Color
7F29:{sigma}(
7F8C:{sigma}a{n}
7FB5:{sigma}a{n + 1}
7FB9:{sigma}a{n + 2}
7F8D:{sigma}b{n}
7FB6:{sigma}b{n + 1}
7FBA:{sigma}b{n + 2}
7F8E:{sigma}c{n}
7FB7:{sigma}c{n + 1}
7FBB:{sigma}c{n + 2}
F7D7:{sigma}dispOff
F7C7:{sigma}dispOn
C4:{little sigma}x
9F:{sigma}x
8F:{xigma}x{2}
DF:{sigma}xy
C6:{little sigma}y
CF:{sigma}y
BF:{sigma}y{2}
7F60:Sim Coef
7F62:Sim Result
7F9C:>Simp
F730:SimplifyAuto
F731:SimplifyMan
F7D1:SimulOff
F7C1:SimulOn
81:sin
91:sin{-1}
A1:sinh
B1:sinh{-1}
F734:SinReg
F733:Sinusoidal
F78E:SketchBroken
F78F:SketchDot
F78C:SketchNormal
F78D:SketchThick
F9F3:SketchThin
F9A1:Smpl_SFV(
F9A0:Smpl_SI(
7F28:Solve(
7F30:SolveN(
F7B0:SortA(
F7B1:SortD(
7FC6:sp
F74D:Square
7FDA:SSa
7FFC:SSab
7FFB:SSb
7FDC:SSe
7F3E:StdDev(
F706: Step
F92A:StickHoriz
F929:StickLength
F795:StoGMEM
F70E:Stop
F793:StoPict
F797:StoV-Win
F93F:Str
F932:StrCmp(
F93B:StrInv(
F930:StrJoin(
F934:StrLeft(
F931:StrLen(
F93A:StrLwr(
F936:StrMid(
F935:StrRight(
F93D:StrRotate(
F93C:StrShift(
F933:StrSrc(
F939:StrUpr(
7F4C:Sum
7F45:Swap
C5:sx
7FC4:sx1
7FC5:sx2
C7:sy
F7D9:T SelOff
F7C9:T SelOn
7FD3:t
FE:t(
83:tan
93:tan{-1}
F7A0:Tangent
A3:tanh
B3:tanh{-1}
F984:tCD(
F7A5:Text
F701:Then
F72C:ThickG
F9F5:ThinG
F9FD:tLow
F705: To
F983:tPD(
7F41:Trn
F9FE:tUp
F9E3:TwoPropZTest
F9ED:TwoSampleFTest
F9E9:TwoSampleTTest
F9E1:TwoSampleZTest
F9EF:TwoWayANOVA
7F09:T{theta}max
7F08:T{theta}min
7F0A:T{theta}ptch
7FCB:Upper
7F3F:Variance(
F91D:VarList
F788:VarRange
F740:1-Variable
F741:2-Variable
F7A3:Vertical
EB:ViewWindow
F708:While
F709:WhileEnd
C2:{x var}
CB:{x circumflex}
7FF4:{x bold}
F767:X=Type
F769:X<Type
F768:X>Type
F76F:X{<=}Type
F76E:X{>=}Type
7F78:{x1}
7FC2:{x bar 1}
F9F0:X1InvN
7F7A:{x2}
7FC3:{x bar 2}
F9F1:X2
7F7C:X2InvN
F921:{x3}
7F0B:Xdot
F9F2:Xfct
7F01:xInv
7F00:Xmax
7FB4:Xmin
7F02: Xor
7FF2:Xscl
F751:Xt
C3:xyLine
CC:{y bar}
7FF0:{y circumflex}
F7BF:{y bold}
F7BE:Y=DrawSpeedHigh
F763:Y=DrawSpeedNorm
F76B:Y=Type
F76A:Y<Type
F76D:Y>Type
F76C:Y{<=}Type
7F79:Y{>=}Type
7F7B:{y1}
7F7D:{y2}
F99F:{y3}
7F0C:Yellow
7F05:Yfct
7F04:Ymax
7F06:Ymin
7FF3:Yscl
7FD1:Yt
F9FB:z
F920:zLow
F9FC:ZoomAuto
D0:zUp
AB:{pi}
9C:!
AC:{degree}
BC:{r}
8C:{g}
86:{box}
96:{sqrt}
B8:{cube root}
B5:{x root}
9B:{10}
8B:{-1}
A8:{2}
BB:^
87:{bottom right corner}
7F54:-
3A:{angle measure}
3F::
0C:?
3D:{right triangle}
11:=
3C:{!=}
3E:<
10:>
12:{<=}
13:{>=}
27:{=>}
22:'
7E:"
2A:~
23:*
24:#
2C:$
28:,
29:(
5B:)
5D:[
5C:]
7B:\
7D:{
0B:}
0A:{E bold}
09:{P bold}
08:{T bold}
07:{G bold}
06:{M bold}
05:{k}
04:{m}
03:{n bold}
02:{p}
01:{f}
14:{f1}
15:{f2}
16:{f3}
17:{f4}
18:{f5}
19:{f6}
7F6A:List1
7F6B:List2
7F6C:List3
7F6D:List4
7F6E:List5
7F6F:List6
F7B2:VarList1
F7B3:VarList2
F7B4:VarList3
F7B5:VarList4
F7B6:VarList5
F7B7:VarList6
F7B8:File1
F7B9:File2
F7BA:File3
F7BB:File4
F7BC:File5
Let me make the format the same, and add some additional information.

Updated original post with a link to the CSV with the new information. The Catalogue name information is drastically missing from tokens N-#. I'll likely add that in a bit, but for now you have all the tokens from the catalogue. May be a bit hard to decipher some tokens since we can't represent them clearly.

Also, some tokens have spaces before & after them, but those got stripped by Google Docs. I don't think it matters all that much - right? - since the tokens will be represented properly on-calc.
It would be better to have those, imho. Because that is how it is rendered on-calc. And when we de-tokenize everything, it will keep the right formatting.
I need the spaces.

Qwerty.55 wrote:
merthsoft wrote:
If you can find it, I know what I'm doing tomorrow. Hurry up and get the rest of the tokens, _player.


Quote:
The .g3m file format a very simple format, with three sections of security bytes that were slightly
annoying to figure out. Here are the rules governing each of the sections. Numbers of the form 0xNNh
refer to addresses offset from the starting address of the file while $NN refers to hex numbers.
0x14h - 0x13h = $48
0x1C - 0x1Dh = $1D
0x14h - 0x1Dh = $C3
0x13h - 0x1Ch = $5E
0x0Eh + 0x48h = $72
$38 - 0x48h = 0x1Dh
0x48h = (Length of the rest of the data) - $3.
There are always 13 00 bytes following 0x48h.
Algorithm for computing the security sequences:
$38 - 0x48h → 0x1Dh
$72 - 0x48h → 0x0Eh
0x1Dh + $C3 → 0x14h
0x14h - $48 → 0x13h
0x13h - $5E → 0x1Ch
0x00h through 0x0Dh:
AA AC BD AF 90 88 9A 8D 8A FF EF FF EF FF
0x0Fh through 0x12h:
FF FF FF
0x15h through 0x1Bh:
01 00 00 00 00 00 00
0x1Eh through 0x3Bh:
FF FE 50 52 4F 47 52 41 4D 00 00 00 00 00 00 00 00 00 00 00 00 01 73 79 73 74 65 6D 00 00
0x3Ch through 0x43h:
8 byte ASCII code for file name.
0x44h through 0x47h:
01 00 00 00
0x49h through 0x55h:
8 byte ASCII password to lock the program. Null bytes if no password

I'm a little confused by this. Where's the data go? I guess I should just open some files up in a hex editor.
You can also look at that program I posted earlier and find the 6 0Ds, and that is where the data starts.
It looks like the csv file keeps the spaces, so it should be ok. Does " And" really only have the one space before it?
It should have one after it, too. That's how " Or " was.
Ok, I blame that on Comic, then, since it is " Or " in the CSV file Smile
merthsoft wrote:
I need the spaces.

<snip>
I'm a little confused by this. Where's the data go? I guess I should just open some files up in a hex editor.


That's the header format. The data goes immediately after it.

Also...



Quote:
The .g3m file format a very simple format, with three sections of security bytes that were slightly
annoying to figure out. Here are the rules governing each of the sections. Numbers of the form 0xNNh
refer to addresses offset from the starting address of the file while $NN refers to hex numbers.

0x14h - 0x13h = $48
0x1C - 0x1Dh = $1D
0x14h - 0x1Dh = $C3
0x13h - 0x1Ch = $5E
0x0Eh + 0x48h = $72
$38 - 0x48h = 0x1Dh

0x48h = (Length of the rest of the data) - $3.
There are always 13 00 bytes following 0x48h.
Algorithm for computing the security sequences:

$38 - 0x48h → 0x1Dh
$72 - 0x48h → 0x0Eh
0x1Dh + $C3 → 0x14h
0x14h - $48 → 0x13h
0x13h - $5E → 0x1Ch

0x00h through 0x0Dh:
AA AC BD AF 90 88 9A 8D 8A FF EF FF EF FF

0x0Fh through 0x12h:
FF FF FF

0x15h through 0x1Bh:
01 00 00 00 00 00 00

0x1Eh through 0x3Bh:
FF FE 50 52 4F 47 52 41 4D 00 00 00 00 00 00 00 00 00 00 00 00 01 73 79 73 74 65 6D 00 00

0x3Ch through 0x43h:
8 byte ASCII code for file name.

0x44h through 0x47h:
01 00 00 00

0x49h through 0x55h:

8 byte ASCII password to lock the program. Null bytes if no password

Afterwards: BASIC code


Keep in mind that it's not necessary to produce perfect .g3m files. They only have to be "close." The calculator has pretty good error recovery code and will fix a lot of errors such as an extraneous 1 where there's supposed to be a 0.
  
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 1 of 4
» All times are UTC - 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