This is a weird one. In Nymless's menu, it calls all the menu options as subroutines. For the PLAY option, it does sub(NYM) This is the functioning sub(NYM)
:Lbl NYM :prgmSTRANGE :Return
This is the version that makes the prgmSTRANGE section be super slow (I think it messes with updating the screen) and corrupt? r3 while in prgmSTRANGE
For anyone who's interested, here's the v.7 source code, in text form, for the game portion of Nymless. The rest of the sources will be up shortly.
Spoiler For Game code, menu option PLAY, prgmSTRANGE:
Quote from: Axe
.NYMLESS L1→oINV L1+2→oSCL L1+4→oC2 L1+6→oSHM L1+8→oCROSS L1+10→oBARS L1+12→oSHMF 0→SCL→C2→CROSS→BARS→Y1T→SHM→SHMF+1→INV GetCalc("|vNYMSCAPE")→r3 DiagnosticOff Lbl 0 "|vNYMSTATE"→Pic1A GetCalc(Pic1A)→X1T For(Q,0,127 0→{Q*2+L4}r End If X1T Copy(X1T,^^oA,78) Copy(X1T+78,L1,12) DelVar Pic1A "|vNYMINE"→Str0M "|vNYMSHIM"→Str0S GetCalc(Str0M)→r1 {r1-2}r/4-1→r5 GetCalc(Str0S)→r2 {r2-2}r/8-1→r6 Else If r3 GetCalc(Str0M)→r1 {r1-2}r/4-1→r5 GetCalc(Str0S)→r2 {r2-2}r/8-1→r6 Copy(r3+768,^^oX,4) Copy(r3+772,^^oM,4) Copy(r3+776,^^oE,4) Else Rect(0,0,96,64)r RectI(2,2,92,60)r rand^92+2→X rand^60+2→Y rand^84+2→M rand^52+2→N rand^89+2→E rand^57+2→F 0→r1→r2→r5→r6 End X→T→R Y→U→S 0→A→B→O→theta→Y2T+1→W→r4 768→G For(Q,0,63 0→{Q+L4} End End If r3 Copy(r3,L3,768) End ClrDraw RepeatgetKey(15) RecallPic Lbl LINES Line(X,Y,T,U Line(T,U,R,S IfgetKey(23) →CROSS ElseIfgetKey(31) 0→CROSS End If CROSS Line(~B+X,~A+Y,U-S+T,T-R+U Line(B+X,A+Y,S-U+T,R-T+U End IfgetKey(22) →BARS ElseIfgetKey(30) 0→BARS End If BARS Line(~B+X,~A+Y,S-U+T,R-T+U Line(B+X,A+Y,U-S+T,T-R+U End IfgetKey(37) 1→C2 ElseIfgetKey(38) 0→C2 End If C2 If X-R or (Y-S) Circle(X+R/2,Y+S/2,√(X-R//2^^2+(Y-S//2^^2))) End End IfgetKey(42) 0→SCL ElseIfgetKey(43) 1→SCL ElseIfgetKey(44) 2→SCL End If W [3E4A8A92A2A2FE00]→Pic1 Pt-On(M,N,Pic1 RectI(E,F,3,3 Pxl-Change(E+1,F+1 Else [3E4282828282FE00]→Pic2 Pt-On(M,N,Pic2 End If r1!=0 and (r5+1!=0 For(Q,0,r5 Copy(Q*4+r1,^^oX2T,4 !If{Q+L4} Pt-On(X2T,Y2T,[997E7EE7E77E7E99] Else Pt-On(X2T,Y2T,[99667EBDBD7E6699] .[9966669999666699] .[99665AA5A55A6699] End End End IfgetKey(21) 1→Y1T ElseIfgetKey(29) 0→Y1T End If Y1T?X!=T??Y!=U Circle(X,Y,√(T-X^^2+(U-Y^^2))) End IfgetKey(46) 0→INV Fix 3 ElseIfgetKey(45) 1→INV Fix 2 End RectI(0,,G/8,1 !If INV DrawInv End ... If getKey(12) A->I B->A I->B End ... G?G-1→G Lbl SHIM If r2?r6+1 IfgetKey(48) 0→SHM ElseIfgetKey(47) 1→SHM End If r4 For(Q,0,r6 Copy(Q*8+r2,^^oX2T,8) RectI(X2T,Y2T,X3T,Y3T SHMF?SHMF/256=Q?SHM xor 1→SHM If SHM?X3T>2?Y3T>2 RectI(X2T+1,Y2T+1,X3T-2,Y3T-2) End SHMF?SHMF/256=Q?SHM xor 1→SHM End 0→SHMF End r4 xor 1→r4 End sub(DISP) G≤≤0+theta→theta Lbl PAUSE IfgetKey(27) For(7) Vertical - Vertical -r RectI(1,62,94,1 sub(DISP) Pause 20 End Fix 5 ... " "->Str1N For(Q,1,94 Text(95-Q,56,Str1N Pxl-Change(95-Q,62) sub(DISP) End ... Text(2,56,"Any key to resume" Fix 4 WhilegetKey(0) sub(DISP) End RepeatgetKey(0) sub(DISP) End If r3 Copy(r3,L3,768) Else ClrDrawr RectI(0,,96,64)r RectI(2,,92,60)r End End IfgetKey(17)?getKey(33) 1→theta End Lbl LOSS If theta .Fix 5 Text(0,0,"DEAD!" .Fix 4 IfgetKey(49) Goto 0 End End Lbl WIN If O "ROOM COMPLETE...."→Str1 ."YOUR WINNER!"->Str1 ."MORE TOURTURES AWAIT"->Str1 0→I For(Q,0,length(Str1) {Str1+Q}→{^^oI} For(P,4,96-(Q*4) Text(96-P,0,^^oI End End StoreGDB For(Q,0,95 Horizontal - Horizontal -r sub(DISP) End Return End Lbl HELPS !If theta IfgetKey(53) ClrDraw Pxl-On(X,Y) WhilegetKey(53) DispGraphr EndIfgetKey(15) IfgetKey(15) GetCalc(Pic1A,90)→X1T Copy(^^oA,X1T,78) Copy(L1,X1T+78,12) Return End End IfgetKey(52) ClrDraw If W RectI(E,F,3,3 Pxl-Off(E+1,F+1 WhilegetKey(52) DispGraphr End End End IfgetKey(51) ClrDraw If W Pt-On(M,N,Pic1 Else Pt-On(M,N,Pic2 End WhilegetKey(51) DispGraphr End End IfgetKey(50) ClrDraw Pxl-On(X,Y If W RectI(E,F,3,3 Pxl-Off(E+1,F+1 Pt-On(M,N,Pic1 Else Pt-On(M,N,Pic2 End WhilegetKey(50) DispGraphr End End End T→R U→S X→T Y→U .sub(DISP) Lbl MOVE !If theta IfgetKey(9)??getKey(4) Ifpxl-Test(X,Y+1)r ~7→B End End IfgetKey(54)??getKey(4) Ifpxl-Test(X-1,Y)r A+3→A B-2→B End Ifpxl-Test(X+1,Y)r A-3→A B-2→B End End End IfgetKey(1)?pxl-Test(X,Y-1)r B+3→B End Ifpxl-Test(X,Y+1)r !If theta-1?getKey(2)??getKey(3) A*15//32→A End End theta??A+getKey(3)-getKey(2)→A B+1→B B+Y^256→Y A+X^256→X .sub(DISP) Lbl LAND abs(A)→K abs(B)→L If K≥L K→H Else L→H 0→K→L End If H A>>0-(A<<0)→I B>>0-(B<<0)→J 0→K .sub(DISP) For(Q,0,H ReturnIfgetKey(15) Q*A//H+T→C Q*B//H+U→D If theta?getKey(41) .Pxl-On(C,D) Line(T,U,C,D) sub(DISP) End .Q+1*A//H+T->K .Q+1*B//H+U->L If r2-1?r6+1!=0 For(P,0,r6 Copy(P*8+r2,^^oX2T,8) If X2T≤C?X2T+X3T-1≥C?Y2T≤D?Y2T+Y3T-1≥D X3T-1/2+X2T-C→K Y3T-1/2+Y2T-D→L Q-1*A//H+T→X Q-1*B//H+U→Y If X2T+X3T-1<X abs(A)→A End If X2T>X ~abs(A)→A End If Y2T+Y3T-1<Y abs(B)→B End If Y2T>Y ~abs(B)→B End P*256+1→SHMF Goto theta End End End !If theta If W If E≤C?E+2≥C?F+2≥D?F≤D 0→W End ElseIf M≤C?M+6≥C?N≤D?N+6≥D 1→O End End Ifpxl-Test(C+I,D)r 0→A C→X End Ifpxl-Test(C,D+J)r 0→B D→Y End ... If pxl-Test(K,L)^^r !If K=C 0->A End !If L=D 0->B End C->X D->Y End ... If r1?r5+1 For(P,0,r5) !If{P+L4} Copy(P*4+r1,^^oX2T,4) If X2T≤C?X2T+7≥C?Y2T≤D?Y2T+7≥D ~64//(X2T-C+4)+A→A ~64//(Y2T-D+4)+B→B C→X D→Y 1→theta→{P+L4} Goto theta End End End End End End Lbl theta Pause 38 .sub(DISP) End Return Lbl DISP If SCL=2 DispGraphrr ElseIf SCL DispGraphr Else DispGraph End[/color]