its at http://www.ticalc.org/archives/files/fileinfo/112/11282.html

so any ideas?

]]>i use int( to make things simpler at times.

i sort of understand it, but for some reason, it doesnt work on the calc even though there is a perfectly good version of it for the 89

the cipher is basically like this, for as many times as needed:

- turn the original data into numbers (A=1,B=2,etc.), set deck
- move joker A (53.1) down 1 position mod 54 if necessary (from card 1, put between cards 2 and 3)
- move joker B (53.2) down 2 positions mod 54 if necessary (from card 1, put between cards 3 and 4)
- find the jokers, swap everything before first joker (card # 1,2,3..joker 1 [either one]) not including the joker with (joker 2,… 51,52,53,54 [other joker] to 51,52,53,54….joker 1….joker 2….1,2,3)
- look at bottom card (# 54). count down from top card to that number (get value 5, count down 5 cards). take those cards from 1-x and move x to 53 (card #6,7,8,9….53,1,2,3,4,5,54), but keep card 54 at #54
- take value of card 1 and count down that many cards (top card= card #1), take that cards as output (value 5 again;top cards=
**5**,**50**,**15**,**13**,**9**,45,36,5,… 9 is output)

i'll do the deck keying later, after i figure this out

]]>So, it seems to me that it should work, but I'm not quite sure I understand the cipher.

]]>http://www.schneier.com/solitaire.html ]]>

` ``{1,2,3,4,5,6,7,8,9,...48,49,50,51,52,53.1,53.2→DECK 53.1=Joker A 53.2=Joker B length(Str1→F 1→Z:F→dim(∟KEY DelVar ∟KEYDelVar ∟DECK2DelVar ∟A Lbl I While Z<F+1 1→Y For(X,1,54:If ∟DECK(X)=53.1:X→A:End ;find joker A ;-----------move joker A 1 down If ∟DECK(A)=53.1 and A=54 Then ∟DECK(1→C:∟DECK(54→D:D→∟DECK(1:C→∟DECK(54 End If ∟DECK(A)=53.1 and A not= 54 Then ∟DECK(A→C:∟DECK(A+1)→D:D→∟∟DECK(A:C→∟DECK(A+1) End ;-----------end move joker A 1 down For(X,1,54:If ∟DECK(X)=53.2:X→A:End ;find joker B ;-----------move joker B 2 down (3 down in calc lists, rotate back to 1 if neccessary) If A=52 Then For(X,53,54 ∟DECK(X→∟DECK(X-1) End 53.2→∟DECK(54 End If A=53 Then For(X,52,2,-1 ∟DECK(X→∟DECK(X+1) End 53.2→∟DECK(2 End If A=54 Then For(X,53,3,-1 ∟DECK(X→∟DECK(X+1) End 53.2→∟DECK(3 End If A<52 Then ∟DECK(A+1)→∟DECK(A ∟DECK(A+2)→∟DECK(A+1) 53.2→∟DECK(A+3) End ;-----------end move joker B 2 down 1→Y:2→dim(∟A:54→dim(∟DECK2 For(X,1,54 ;find jokers If int(∟DECK(X))=53 Then X→∟A(Y Y+1→Y End End ;triple cut- ;move everything from 1 to nearest joker to bottom, ;farther joker to 54 to back, everything in the middle ;stays For(X,1,∟A(1)-1 ∟DECK(X→∟DECK2(55-∟A(1)+X) End 1→Y For(X,∟A(2)+1,54 ∟DECK(X→∟DECK2(Y Y+1→Y End 1→Y For(X,1,54:If ∟DECK(X)=53.1:X→A:If ∟DECK(X)=53.2:X→B:End {A,B→A:SortA(∟A 1→Y For(X,∟A(1),∟A(2 ∟DECK(X)→∟DECK2(54-∟A(2)+Y) Y+1→Y End ;-----------------end triple cut DelVar ∟DECKDelVar ∟A ∟DECK2→∟DECK:∟DECK(54→A ;count cut number 54→dim(∟DECK2:∟DECK(54→∟DECK2(54 ;------------count cut (according to ∟DECK(54)) i think For(X,1,A i did this wrong ∟DECK(X→∟DECK2(53-A+X) End For(X,A+1,53 ∟DECK(X→∟DECK2(54-(54-X)-A) End '------------end count cut DelVar ∟DECK:∟DECK2→∟DECK:DelVar ∟DECK2 ∟DECK(1→A If int(A)=53:Goto I ;select key ∟DECK(A+1)→∟∟KEY(Z Z+1→Z End Pause ∟KEY ;see key`

when i press enter, with 5=F, the correct keys should be 4 49 10 24 8

i get 4 49 12 5 28

help

]]>any ideas?

]]>