its very convoluted.

From the code, it should read

swap ∟DECK(∟A(1)) value and ∟DECK(∟A(1)-1)

and

move ∟DECK(∟A(2)) to ∟DECK(∟A(2)-2) and shift ∟DECK(∟A(2)-2) and ∟DECK(∟A(2)-1) up by 1

whenever i pause to see ∟DECK, the first 2 or 3 times works, but after that, the second part (move…) gets reversed. i dont get it. the ∟A values are updated everytime.

why is 53 being sent to ∟A(1) every time when it is supposed to be shifted every time?

```
Lbl A:1→Z
F→dim(∟KEY
While F+1>Z
2→dim(∟A:1→Y
For(X,1,54
If ∟DECK(X)=53 ;update ∟A values
Then
X→∟A(Y
Y+1→Y
End:End
If ∟A(1)<=1 ;less than or equal to
54→∟A(1
∟DECK(∟A(1)→C
∟DECK(∟A(1)-1)→→D
C→∟DECK(∟A(1)-1)
D→∟DECK(∟A(1)
If ∟A(2)<=2 ;less than or equal to
54-∟A(2)→∟A(2
∟DECK(∟A(2)→C
∟DECK(∟A(2)-1)→D
∟DECK(A(2)-2)→E
C→∟DECK(∟A(2)-2)
D→∟DECK(∟A(2)-1)
E→∟DECK(∟A(2)
DelVar ∟A
1→Y:2→dim(∟A
For(X,1,54:
If ∟DECK(X)=53
Then
X→∟A(Y ;finds the new values for ∟A apparently
Y+1→Y
End:End
54→dim(∟DECK2
For(X,0,∟A(1)-2:∟DECK(X+1)→∟DECK2(56-∟A(1)+X):0→∟DECK(X+1):End
1→Y
For(X,∟A(2)+1,54:∟DECK(X→∟DECK2(Y:Y+1→Y:0→∟DECK(X:End
55-∟A(2)→A
For(X,∟A(1),∟A(2):∟DECK(X→∟DECK2(A:A+1→A:End
DelVar ∟DECKDelVar ∟A
∟DECK2→∟DECK
∟DECK(54→A:54→dim(∟DECK2
;cut deck↓
For(X,A+1,54:∟DECK(X)→∟DECK2(X-A):End
For(X,1,A:∟DECK(X→∟DECK2(X+54-A):End
DelVar ∟DECK:∟DECK2→∟DECK:DelVar ∟DECK2
;end cut deck
If ∟DECK(1) "is not" (53 ;loop comming from here
Then ; but why when something other
∟DECK(1→∟KEY(Z ; than A and B are typed???
Z+1→Z:
End
End
```