:"ChessNut ClrDraw UnArchive Pic1 RecallPic 1 Archive Pic1 Pause ClrDraw If S!=~1 Then UnArchive Pic2 RecallPic 2 Archive Pic2 Else UnArchive Pic3 RecallPic 3 DelVar Pic3 End DelVar S Lbl A Text(49,66,Str1 Text(56,66,Str1 If Z=7 Then Text(7,66,Str1 Text(21,66,Str1 Text(28,66,Str1 If T=1 Text(28,66,"White If T=~1 Text(28,66,"Black End If not(C Text(35,66,Str1 0->theta While theta=0 getKey->theta End If theta=41 Then 1->W Text(Z,66,"A Else If theta=42 Then 2->W Text(Z,66,"B Else If theta=43 Then 3->W Text(Z,66,"C Else If theta=51 Then 4->W Text(Z,66,"D Else If theta=52 Then 5->W Text(Z,66,"E Else If theta=53 Then 6->W Text(Z,66,"F Else If theta=54 Then 7->W Text(Z,66,"G Else If theta=55 Then 8->W Text(Z,66,"H Else If theta=45 Then 7->Z Goto A Else If theta=22 Then Text(7,66,Str1 Text(21,66,Str1 ClrHome Stop Else If theta=23 Goto U End Text(49,66,"Error! Pause Text(49,66,Str1 Goto A End End End End End End End End End #End Lbl D 0->theta While theta=0 getKey->theta End If theta=92 Then 8->V Text(Z,70,"1 Else If theta=93 Then 7->V Text(Z,70,"2 Else If theta=94 Then 6->V Text(Z,70,"3 Else If theta=82 Then 5->V Text(Z,70,"4 Else If theta=83 Then 4->V Text(Z,70,"5 Else If theta=84 Then 3->V Text(Z,70,"6 Else If theta=72 Then 2->V Text(Z,70,"7 Else If theta=73 Then 1->V Text(Z,70,"8 Else If theta=45 Then 7->Z Goto A Else If theta=22 Then Text(7,66,Str1 Text(21,66,Str1 ClrHome Stop Else If theta=23 Goto U Text(49,66,Str1 Text(49,66,"Error! Pause Text(49,66,Str1 End End End End End End End End End End If Z=7 Then 0->theta Text(56,66,"OK? While theta!=105 and theta!=45 and theta!=22 and theta!=23 getKey->theta End Text(56,66,Str1 If theta=105 Then V->N W->O If (T>0 and [J](N,O)<=0) or (T<0 and [J](N,O)>=0 Then Text(49,66,"Error! Pause Text(49,66,Str1 Else 21->Z End Goto A End If theta=45 Then 7->Z Goto A End If theta=22 Stop If theta=23 Goto U End If Z=21 Then 0->theta Text(56,66,"OK? While theta!=45 and theta!=105 and theta!=22 and theta!=23 getKey->theta End Text(56,66,Str1 If theta=105 Goto T If theta=45 Then Text(21,66,Str1 Goto A End If theta=22 Stop If theta=23 Goto U End Lbl U Menu("Loss Options:","Checkmate",M,"Resignation",R,"Cancel",B Lbl M 1->C Goto Y Lbl R 0->C Lbl Y Text(0,66,Str1 Text(7,66,Str1 Text(14,66,Str1 Text(21,66,Str1 If not(C Text(35,66,Str1 Text(42,66,Str1 Text(49,66,Str1 Text(56,66,Str1 If C Then Text(35,66,"Check Text(42,66,"Mate! End If not(C Text(35,66,"Resigns. Pause ClrHome Stop Lbl B 7->Z Goto A Lbl T {0}->|LR {0}->|LC [J](N,O)>0->H H-1->U If abs([J](N,O))=1 Then If (H and N>1) or (U and N<8) Then If not([J](N-(H+U),O) Then augment(|LR,{(H+U)(N-(H+U))})->|LR augment(|LC,{2HO-O})->|LC If (H and N=7 and not([J](N-2(H+U),O))) or (U and N=2 and not([J](N-2(H+U),O)) Then augment(|LR,{N-2(H+U)})->|LR augment(|LC,{2HO-O})->|LC End End If O<8 Then If (H and [J](N-1,O+1)<0) or (U and [J](N+1,O+1)>0 Then augment(|LR,{(H+U)(N-(H+U))})->|LR augment(|LC,{(H+U)(O+1)})->|LC End End If O>1 Then If (H and [J](N-1,O-1)<0) or (U and [J](N+1,O-1)>0 Then augment(|LR,{(H+U)(N-(H+U))})->|LR augment(|LC,{(H+U)(O-1)})->|LC End End End If (H and N=5) or (U and N=4 Then If O<8 Then If [J](N,O+1)=~[J](N,O) and not([J](N-(H+U),O+1) Then If (H and |LBR(dim(|LBR))=N and |LBC(dim(|LBC))=O+1 and |LB(dim(|LB))=~1) or (U and |LWR(dim(|LWR))=N and |LWC(dim(|LWC))=O+1 and |LW(dim(|LW))=1 Then If (H and not(sum(|LBR=3 and |LBC=O+1 and |LB=~1))) or (U and not(sum(|LWR=6 and |LWC=O+1 and |LW=1))) Then augment(|LR,{(H+U)(N-(H+U))})->|LR augment(|LC,{(H+U)(O+1)})->|LC End End End End If O>1 Then If [J](N,O-1)=~[J](N,O) and not([J](N-(H+U),O-1) Then If (H and |LBR(dim(|LBR))=N and |LBC(dim(|LBC))=O-1 and |LB(dim(|LB))=~1) or (U and |LWR(dim(|LWR))=N and |LWC(dim(|LWC))=O-1 and |LW(dim(|LW))=1 Then If (H and not(sum(|LBR=3 and |LBC=O-1 and |LB=~1))) or (H and not(sum(|LWR=6 and |LWC=O-1 and |LW=1))) Then augment(|LR,{(H+U)(N-(H+U))})->|LR augment(|LC,{(H+U)(O-1)})->|LC End End End End End End If abs([J](N,O))=2 or abs([J](N,O))=5 Then 1->F 1->G 1->J 1->K For(I,1,7 If F and N-I>=1 Then If (H and [J](N-I,O)<=0) or (U and [J](N-I,O)>=0 Then augment(|LR,{(H+U)(N-I)})->|LR augment(|LC,{2HO-O})->|LC If [J](N-I,O 0->F Else 0->F End Else 0->F End If G and N+I<=8 Then If (H and [J](N+I,O)<=0) or (U and [J](N+I,O)>=0 Then augment(|LR,{(H+U)(N+I)})->|LR augment(|LC,{2HO-O})->|LC If [J](N+I,O 0->G Else 0->G End Else 0->G End If J and O-I>=1 Then If (H and [J](N,O-I)<=0) or (U and [J](N,O-I)>=0 Then augment(|LR,{2HN-O})->|LR augment(|LC,{(H+U)(O-I)})->|LC If [J](N,O-I 0->J Else 0->J End Else 0->J End If K and O+I<=8 Then If (H and [J](N,O+I)<=0) or (U and [J](N,O+I)>=0 Then augment(|LR,{2HN-N})->|LR augment(|LC,{(H+U)(O+I)})->|LC If [J](N,O+I 0->K Else 0->K End Else 0->K End If not(F or G or J or K 9->I End End If abs([J](N,O))=3 Then If N+1<=8 Then If O+2<=8 Then If (H and [J](N+1,O+2)<=0) or (U and [J](N+1,O+2)>=0 Then augment(|LR,{(H+U)(N+1)})->|LR augment(|LC,{(H+U)(O+2)})->|LC End End If O-2>=1 Then If (H and [J](N+1,O-2)<=0) or (U and [J](N+1,O-2)>=0 Then augment(|LR,{(H+U)(N+1)})->|LR augment(|LC,{(H+U)(O-2)})->|LC End End If N+2<=8 Then If O+1<=8 Then If (H and [J](N+2,O+1)<=0) or (U and [J](N+2,O+1)>=0 Then augment(|LR,{(H+U)(N+2)})->|LR augment(|LC,{(H+U)(O+1)})->|LC End End If O-1>=1 Then If (H and [J](N+2,O-1)<=0) or (U and [J](N+2,O-1)>=0 Then augment(|LR,{(H+U)(N+2)})->|LR augment(|LC,{(H+U)(O-1)})->|LC End End End End If N-1>=1 Then If O+2<=8 Then If (H and [J](N-1,O+2)<=0) or (U and [J](N-1,O+2)>=0 Then augment(|LR,{(H+U)(N-1)})->|LR augment(|LC,{(H+U)(O+2)})->|LC End End If O-2>=1 Then If (H and [J](N-1,O-2)<=0) or (U and [J](N-1,O-2)>=0 Then augment(|LR,{(H+U)(N-1)})->|LR augment(|LC,{(H+U)(O-2)})->|LC End End If N-2>=1 Then If O+1<=8 Then If (H and [J](N-2,O+1)<=0) or (U and [J](N-2,O+1)>=0 Then augment(|LR,{(H+U)(N-2)})->|LR augment(|LC,{(H+U)(O+1)})->|LC End End If O-1>=1 Then If (H and [J](N-2,O-1)<=0) or (U and [J](N-2,O-1)>=0 Then augment(|LR,{(H+U)(N-2)})->|LR augment(|LC,{(H+U)(O-1)})->|LC End End End End End If abs([J](N,O))=4 or abs([J](N,O))=5 Then 1->F 1->G 1->J 1->K For(I,1,7 If F and N-I>=1 and O-I>=1 Then If (H and [J](N-I,O-I)<=0) or (U and [J](N-I,O-I)>=0 Then augment(|LR,{(H+U)(N-I)})->|LR augment(|LC,{(H+U)(O-I)})->|LC If [J](N-I,O-I 0->F Else 0->F End Else 0->F End If G and N-I>=1 and O+I<=8 Then If (H and [J](N-I,O+I)<=0) or (U and [J](N-I,O+I)>=0 Then augment(|LR,{(H+U)(N-I)})->|LR augment(|LC,{(H+U)(O+I)})->|LC If [J](N-I,O+I 0->G Else 0->G End Else 0->G End If J and N+I<=8 and O-I>=1 Then If (H and [J](N+I,O-I)<=0) or (U and [J](N+I,O-I)>=0 Then augment(|LR,{(H+U)(N+I)})->|LR augment(|LC,{(H+U)(O-I)})->|LC If [J](N+I,O-I 0->J Else 0->J End Else 0->J End If K and N+I<=8 and O+I<=8 Then If (H and [J](N+I,O+I)<=0) or (U and [J](N+I,O+I)>=0 Then augment(|LR,{(H+U)(N+I)})->|LR augment(|LC,{(H+U)(O+I)})->|LC If [J](N+I,O+I 0->K Else 0->K End Else 0->K End If not(F or G or J or K 9->I End End If abs([J](N,O))=6 Then For(I,~1,1 For(J,~1,1 If N+I>=1 and N+I<=8 and O+J>=1 and O+J<=8 Then If ((H and [J](N+I,O+J)<=0) or (U and [J](N+I,O+J)>=0) Then augment(|LR,{N+I})->|LR augment(|LC,{O+J})->|LC End End End End If (H and not(sum(|LW)=6)) or (U and not(sum(|LB)=~6)) Then If not([J](N,O+1)) and not([J](N,O+2)) and [J](N,8)=2(H+U Then augment(|LR,{N})->|LR augment(|LC,{O+2})->|LC End If not([J](N,O-1)) and not([J](N,O-2)) and not([J](N,O-3)) and [J](N,1)=2(H+U Then augment(|LR,{N})->|LR augment(|LC,{O-2})->|LC End End End If sum(abs(|LR)=V and abs(|LC)=W Then [J](V,W)->B [J](N,O)->[J](V,W 0->[J](N,O {0}->|LR {0}->|LC If B=0 and W!=O and abs([J](V,W))=1 Then If V=4 Then 5->V Else 4->V End 0->[J](V,W) 1->P 1->B End Else 7->Z Text(49,66,"Illegal Text(55,66,"Move. Pause Goto A End 7->Z 0->C If abs([J](V,W))=6 and (O+2=W or O-2=W) 1->R If (V=1 and [J](V,W)=1) or (V=8 and [J](V,W)=~1 Menu("Pawn Promotion:","Queen",Q,"Rook",O,"Bishop",I,"Knight",K Goto P Lbl Q 5->[J](V,W) Goto P Lbl O 2->[J](V,W) Goto P Lbl I 4->[J](V,W) Goto P Lbl K 3->[J](V,W) Lbl P [{!} Missing Line that was accidentally deleted; my best guess is the following line:] N(T>0 and |LB(dim(|LB))=-1 and |LBR(dim(|LBR))=W and |LBC(dim(|LBC))=V-1) + N(T<0 and |LW(dim(|LW))=1 and |LWR(dim(|LWR))=W and |LWC(dim(|LWC))=V+1)->L H-1->U If not(R) or abs([J](V,W))!=2 Then If [J](V,W)>0 Then augment(|LWR,{V})->|LWR augment(|LWC,{W})->|LWC augment(|LW,{[J](V,W)})->|LW Else augment(|LBR,{V})->|LBR augment(|LBC,{W})->|LBC augment(|LB,{[J](V,W)})->|LB End Else 0->R End If B Then If iPart((V+W)/2)=(V+W)/2 Then For(I,7V-6,7V-1 Line(7W-6,~I,7W-1,~I,0 End Else For(I,7V-6,7V-1 Line(7W-6,~I,7W-1,~I End End If P Then 0->P 0->B If V=5 Then 4->V Else 5->V End Goto P End End If L=4 and [J](V,W)=1 Then If [J](V+1,W)=~1 and not(B Then If iPart(((V+1)+W)/2)=((V+1)+W)/2 Then For(I,7(V+1)-6,I,7(V+1)-1 Line(7W-6,~I,7W-1,~I,0 End Else For(I,7(V+1)-6,7(V+1)-1 Line(7W-6,~I,7W-1,~I End End End End If L=5 and [J](V,W)=~1 Then If [J](V-1,W)=1 and not(B Then If iPart(((V-1)+W)/2)=((V-1)+W)/2 Then For(I,7(V-1)-6,7(V-1)-1 Line(7W-6,~I,7W-1,~I,0 End Else For(I,7(V-1)-6,7(V-1)-1 Line(7W-6,~I,7W-1,~I End End End End If iPart((N+O)/2)=(N+O)/2 Then For(I,7N-6,7N-1 Line(7O-6,~I,7O-1,~I,0 End Else For(I,7N-6,7N-1 Line(7O-6,~I,7O-1,~I End End If abs([J](V,W))=1 Then Pxl-Change(7V-2,7W-2 Pxl-Change(7V-3,7W-2 If (H and iPart((V+W)/2)!=(V+W)/2) or (U and iPart((V+W)/2)=(V+W)/2) Then Pxl-Change(7V-3,7W-3 Pxl-Change(7V-3,7W-4 End Pxl-Change(7V-4,7W-3 Pxl-Change(7V-4,7W-4 Pxl-Change(7V-3,7W-5 Pxl-Change(7V-2,7W-5 Pxl-Change(7V-2,7W-4 Pxl-Change(7V-2,7W-3 End If abs([J](V,W))=2 Then Pxl-Change(7V-2,7W-2 Pxl-Change(7V-3,7W-2 Pxl-Change(7V-4,7W-2 Pxl-Change(7V-5,7W-2 Pxl-Change(7V-2,7W-3 Pxl-Change(7V-4,7W-3 If (H and iPart((V+W)/2)!=(V+W)/2) or (U and iPart((V+W)/2)=(V+W)/2) Then Pxl-Change(7V-3,7W-3 Pxl-Change(7V-3,7W-4 Pxl-Change(7V-3,7W-5 Pxl-Change(7V-4,7W-4 End Pxl-Change(7V-2,7W-4 Pxl-Change(7V-5,7W-4 Pxl-Change(7V-2,7W-5 Pxl-Change(7V-4,7W-5 Pxl-Change(7V-2,7W-6 Pxl-Change(7V-3,7W-6 Pxl-Change(7V-4,7W-6 Pxl-Change(7V-5,7W-6 End If abs([J](V,W))=3 Then Pxl-Change(7V-1,7W-3 Pxl-Change(7V-1,7W-4 Pxl-Change(7V-1,7W-5 Pxl-Change(7V-2,7W-5 Pxl-Change(7V-3,7W-5 Pxl-Change(7V-4,7W-4 Pxl-Change(7V-5,7W-3 Pxl-Change(7V-5,7W-2 Pxl-Change(7V-4,7W-2 Pxl-Change(7V-3,7W-2 Pxl-Change(7V-2,7W-3 If (H and iPart((V+W)/2)!=(V+W)/2) or (U and iPart((V+W)/2)=(V+W)/2) Then Pxl-Change(7V-2,7W-4 Pxl-Change(7V-3,7W-4 Pxl-Change(7V-3,7W-3 Pxl-Change(7V-4,7W-3 End End If abs([J](V,W))=4 Then Pxl-Change(7V-1,7W-3 Pxl-Change(7V-1,7W-4 Pxl-Change(7V-1,7W-5 Pxl-Change(7V-2,7W-3 Pxl-Change(7V-2,7W-5 Pxl-Change(7V-3,7W-3 Pxl-Change(7V-3,7W-5 Pxl-Change(7V-4,7W-4 Pxl-Change(7V-5,7W-3 Pxl-Change(7V-5,7W-5 Pxl-Change(7V-6,7W-4 If (H and iPart((V+W)/2)!=(V+W)/2) or (U and iPart((V+W)/2)=(V+W)/2) Then Pxl-Change(7V-2,7W-4 Pxl-Change(7V-3,7W-4 Pxl-Change(7V-5,7W-4 End End If abs([J](V,W))=5 Then Pxl-Change(7V-1,7W-3 Pxl-Change(7V-1,7W-4 Pxl-Change(7V-1,7W-5 Pxl-Change(7V-2,7W-3 Pxl-Change(7V-2,7W-5 Pxl-Change(7V-3,7W-4 Pxl-Change(7V-4,7W-3 Pxl-Change(7V-4,7W-5 Pxl-Change(7V-5,7W-4 Pxl-Change(7V-6,7W-3 Pxl-Change(7V-6,7W-5 If (H and iPart((V+W)/2)!=(V+W)/2) or (U and iPart((V+W)/2)=(V+W)/2) Then Pxl-Change(7V-2,7W-4 Pxl-Change(7V-4,7W-4 Pxl-Change(7V-6,7W-4 End End If abs([J](V,W))=6 Then Pxl-Change(7V-1,7W-3 Pxl-Change(7V-1,7W-4 Pxl-Change(7V-1,7W-5 Pxl-Change(7V-2,7W-3 Pxl-Change(7V-2,7W-5 Pxl-Change(7V-3,7W-3 Pxl-Change(7V-3,7W-5 Pxl-Change(7V-4,7W-4 Pxl-Change(7V-5,7W-3 Pxl-Change(7V-5,7W-5 Pxl-Change(7V-6,7W-3 Pxl-Change(7V-6,7W-5 If (H and iPart((V+W)/2)!=(V+W)/2) or (U and iPart((V+W)/2)=(V+W)/2) Then Pxl-Change(7V-2,7W-4 Pxl-Change(7V-3,7W-4 Pxl-Change(7V-5,7W-4 Pxl-Change(7V-6,7W-4 End End If R Then If W=7 Then 6->W 8->O Else 4->W 1->O End [J](N,O)->[J](V,W 0->[J](N,O Goto P End ~T->T Goto A