I used TokenIDE (which is awesome, because it won't complain about an "invalid token" like TI-Connect CE loves to do) to view the code.

```
ClrHome
If det([[1
Then
Disp "INSTALL CELTIC 3
Return
End
real(13,1
Disp " O A S I S "
real(13,0
Repeat not(Ans
For(J,6,7
det(0,sub("rowSwap(Oasis2",1,J
End
If det(3,Ans
0
End
det(5,13,"rowSwap(Oasis
If Ans="1" and "70"=det(1,det(5,"rowSwap(Oasis
Then
Goto S:
End
If Ans≠"0
Then
det(0,"rowSwap(Oasis",5
For(A,1,69
det(6,"rowSwap(Oasis",sub(" 1",1+(A=13 or A=14),1),A
End
End
Repeat 1
Lbl 2
Output(8,1," NOW SORTING
For(F,4,5
det(0,"rowSwap(Oasis2",F
End
expr(det(5,14,"rowSwap(Oasis→J
If Ans
Then
" "+det(9,"AsmPrgm")+" OASIS "+det(9,det(17,"BB6D→Str2
Else
" "+det(9,":→Str2
End
1→H
For(F,1,27
det(32,sub("ABCDEFGHIJKLMNOPQRSTUVWXYZθ",F,1→Str1
If Ans≠".P:NT:FN
Then
0→G
Repeat G=length(Str1
sub(Str1,Ans+1,inString(Str1," ",Ans+1)-Ans-1
If Ans≠"C{UNKNOWN TOKEN [97]}>{UNKNOWN TOKEN [99]}UHorizGoto ►DMS" and (J xor inString(Str2," "+Ans+" "
Then
det(6,"rowSwap(Oasis2",Ans,H
H+1→H
End
inString(Str1," ",G+1→G
End
End
End
Lbl S
1→A
1→B
det(5,"rowSwap(Oasis2")-1→J
int(Ans/7)+not(not(fPart(Ans/7→dim(L₁
Fill(7,L₁
7-(sum(L₁)-J
If Ans≠7
Ans→L₁(dim(L₁
End
DelVar CDelVar K
Repeat K=45 or K=22
If K
Then
If K<22 or K>40
Then
If not(det(3,det(5,"XTEMP015
det(0,4,"XTEMP015
det(8,10,"rowSwap(Oasis",det(1,L₁
det(8,11,"rowSwap(Oasis",det(1,A
det(8,12,"rowSwap(Oasis",det(1,B
If 42=abs(K-63
Then
det(5,7B+A-7,"rowSwap(Oasis2
Else
det(5,K-10-25(K>40),"rowSwap(Oasis
End
If Ans≠"
Then
If not(det(3,det(5,Ans
Then
If det(4)>expr(sub(det(0,7,Ans),4,5
Then
real(10,0,15
ClrHome
prgmXTEMP015
End
Else
det(8,K-10-26(K>40),"rowSwap(Oasis","
End
End
real(10,1,15
expr(det(5,10,"rowSwap(Oasis→L₁
expr(det(5,11,"rowSwap(Oasis→A
expr(det(5,12,"rowSwap(Oasis→B
For(C,10,12
det(8,C,"rowSwap(Oasis","
End
ClrHome
real(13,1
Disp " O A S I S
real(13,0
Else
If K≠33
Then
"
For(C,2,8
Output(C,1,Ans+Ans
End
End
If K=31
Then
Output(8,4,"ROM:
Output(7,4,"RAM:
Output(6,5,"LOCK
Output(5,5,"HIDE
Output(4,5,"ARCHIVE
4→D
Repeat K=45
det(5,"rowSwap(Oasis2",7B+A-7
Output(3,4,det(0,7,Ans
Output(2,4,Ans
Output(8,8,det(4,1
Output(7,8,det(4
Output(D,4,"►
Repeat Ans
getKey→K
End
Output(D,4,"
D+(Ans=34 and D≠6)-(Ans=25 and D≠4→D
If 42=abs(K-63
Then
det(0,7,det(5,7B+A-7,"rowSwap(Oasis2
If D=5 and "A"=sub(Ans,1,1
Then
For(E,0,2
det(0,E+2(E=1)-2(E=2),det(5,7B+A-7,"rowSwap(Oasis2
End
Else
det(0,D-4+2(D=5)-(D=6),det(5,7B+A-7,"rowSwap(Oasis2
End
End
End
End
If K=33
Then
Output(A+1,1,"*
Output(2,11,"PRESS
Output(3,11,"A HOT
Output(4,12,"KEY
Repeat Ans and (Ans=45 or Ans<20 or (Ans>40 and Ans≠45 and Ans≠105
getKey
End
If Ans≠45
det(8,Ans-10-25(Ans>40),"rowSwap(Oasis",det(5,7B+A-7,"rowSwap(Oasis2
"
Output(2,11,Ans
Output(3,11,Ans
Output(4,11,Ans
End
If K=32
Then
Output(2,2,"SORT OPTIONS
Output(3,3,"SORT NOW
Output(4,3,"ARRANGE ROM
Output(5,3,"START SORT:
Output(6,3,"SORT FOR:
3→C
expr(det(5,13,"rowSwap(Oasis→E
expr(det(5,14,"rowSwap(Oasis→D
Repeat K=45
Output(C,2,"
C+(K=34 and C≠6)-(K=25 and C≠3→C
Output(C,2,"►
Output(7,2,sub("MIRAGEALL",1+6D,6-3D)+" PROGRAMS
Output(5,14,sub("YESNO ",3E+1,3
Repeat Ans
getKey→K
End
If 42=abs(Ans-63
Then
If C=3
Then
For(I,0,1
If not(I
Goto 2
End
Output(8,2,"
End
If C=4
Then
Output(1,1,"
GarbageCollect
real(13,1
Output(1,1," O A S I S
real(13,0
getKey
End
If C>4
Then
If C=5
not(E→E
If C=6
not(D→D
det(8,"rowSwap(Oasis",det(1,Ans),8+C
End
End
End
End
If K=23
Then
DelVar COutput(2,1,"C ROW:
Output(3,1,"O 1:
Output(4,1,"L 2:
Output(5,1,"L 3:
Output(6,1,"U 4:
Output(7,1,"M 5:
Repeat K=45
Output(2,9,"
Output(2,8,C+1+2not(not(C
10C-5not(not(C
For(D,3,7
Output(D,5,"
End
For(D,1+(C=7),5-(C=7
Output(D+2,5,det(5,Ans+D,"rowSwap(Oasis
End
Repeat Ans
getKey→K
End
C+(Ans=26 and C≠7)-(Ans=24 and C→C
End
End
End
K=33→C
End
Repeat K≠25 and K≠34
If not(C
Then
"
For(C,2,8
Output(C,1,Ans+Ans
End
For(C,2,1+L₁(B
Output(C,2,det(5,"rowSwap(Oasis2",C+7B-8
End
End
Repeat not(C) or (K≠25 and K≠34
Output(A+1,1,"►
det(0,7,det(5,"rowSwap(Oasis2",7B+A-7
Output(6,12,sub(Ans,1,3
Output(7,11,sub(Ans,4,5
getKey
Repeat Ans
getKey→K
End
Output(A+1,1,"
A+(Ans=34)-(Ans=25→A
If Ans>L₁(B) or not(Ans
Then
B+1-2not(Ans
Ans+dim(L₁)(not(Ans)-(dim(L₁)<Ans→B
max(1,A-7+14not(A→A
If Ans>L₁(B
L₁(B→A
0→C
End
End
End
End
ClrHome
For(J,6,7
det(0,sub("rowSwap(Oasis2",1,J
End
DelVar L₁DelVar Str1DelVar Str2Output(1,1,"
```