Code:
#pragma mode( separator(.,;) integer(h32) )
LOCAL deg:=(0),rad:=0,tn:=0,Da:=(0);
LOCAL len:=0,chd:=0,ext:=0,mo:=0,rr:=0;
LOCAL sec1,seg,fil,type1:="Arc Deffinition";
LOCAL CHECK1,MENU:=0,buttonlabellist;
HCDISP();
Survey();
//BEG VC PRGM
//VARS:
LOCAL g1:=−4,g2:=6,VCSTART,STARTELEV,VCEND,ELEVEND,a;
LOCAL f,LENGTH :=1000,K1,xt,VPI:=4200,VPIE:=332.68,Elev1;
LOCAL VO2,VO1,x1,LENGTH1,STA,xt1,INT:=50;
LOCAL SSTA,l1:=400,l2:=200,n1;
LOCAL HD:=HDigits,HF:=HFormat,ENT:=Entry;
//PRGMS:
STA1();
VCHL();
VCHL1();
DATA();
UEC();
RESET();
SET();
VCHL1()
BEGIN
IF xt<VCSTART OR xt>VCEND THEN
//IF xt<0 OR xt>LENGTH THEN
L0:= " No Turning Point… ";
DATA;
VCHL
ELSE
L0:="High/Low Sta @ "+STA1+" - "+VO2;
DATA;
VCHL
END;
END;
VCHL()
BEGIN
IF SSTA<VCSTART OR SSTA>VCEND THEN
xt:=VCSTART;
x1:=xt-VCSTART;
WHILE xt<VCEND
DO
IF xt<VPI THEN
VO1:=f*((x1/(l1*100))²);
VO2:=(STARTELEV+(((x1/100)*g1))+VO1);
L0(0):=STA1+" - "+VO2;
xt:=-(xt MOD INT)+xt;
xt:=INT+xt;
x1:=xt-VCSTART;
ELSE x1:=VCEND-xt;
VO1:=f*((x1/(l2*100))²);
VO2:=((ELEVEND-((x1/100)*g2))+VO1);
L0(0):=STA1+" - "+VO2;
xt:=xt+INT;
IF xt>VCEND THEN BREAK;
END;
END;
END;
xt:=VCEND;
x1:=VCEND-xt;
VO1:=f*((x1/(l2*100))²);
VO2:=(ELEVEND-(((x1/100)*g2))+VO1);
L0(0):=(STA1+" - "+VO2);
ELSE xt:=SSTA;
IF xt≤VPI THEN
xt-VCSTART▶x1;
VO1:=f*((x1/(l1*100))²);
VO2:=(STARTELEV+(((x1/100)*g1))+VO1);
L0(0):=STA1+" - "+VO2;
ELSE VCEND-xt▶x1;
VO1:=f*((x1/(l2*100))²);
VO2:=(ELEVEND-(((x1/100)*g2))+VO1);
L0(0):=(STA1+" - "+VO2);
END;
END;
Entry:=0;
STARTVIEW(−6,1);
EDITLIST(L0);
RESET;
STARTVIEW(−8,1);
STARTVIEW(−1,1);
END;
//INPUT FORM 1
VC_LIST()
BEGIN
SET;
INPUT({g1,g2,VPI,VPIE,LENGTH,INT,SSTA},"Verticle Curves",
{" % Grade In "," % Grade Out "," VPI Sta "," VPI Elev"," Length"," Sta Interval","Special Station"},
{"% Grade In","% Grade Out","VPI Sta","VPI Elev","Length of Curve; Enter '0' for unsymetrical curve"," Sta Interval","Enter '0' to Calculate full curve at intervals"},
{g1,g2,VPI,VPIE,LENGTH,INT,0});
IF LENGTH≠0 THEN
l1:=LENGTH/200;
l2:=l1
ELSE
UEC
END;
LENGTH1:=LENGTH/100;
a:=g2-g1;
VCSTART:=VPI-l1*100;
STARTELEV:=VPIE-l1*g1;
ELEVEND:=VPIE+(l2*g2);
VCEND:=VPI+l2*100;
K1:=(LENGTH1)/a;
f:=(((l1*l2)/(2*(l1+l2)))*a);
//HL POINT
HDigits▶n1;
HDigits:=2;
xt:=VCSTART-(((l1²*g1)/(2*f))*100);
x1:=xt-VCSTART;
VO1:=f*((x1/(l1*100))²);
VO2:=(STARTELEV+(((x1/100)*g1))+VO1);
IF xt>VPI THEN
//xt:=VCEND-(((((l2)²)*ABS(g2))/(2*f))*100);
xt:=VCEND-((((l2²)*g2)/(2*f))*100);
//xt:=VCSTART-(((l1²*g1)/(2*f))*100);
VCEND-xt▶x1;
VO1:=f*((x1/(l2*100))²);
ELEVEND-(x1/100*g2-VO1)▶VO2;
END;
VCHL1;
END;
STA1()
BEGIN
STA:=STRING(xt);
WHILE DIM(STA)<6 DO
STA:="0"+STA
END;
STA:=ROTATE(STA,-HDigits-3);
STA:=STA+"+";
STA:=ROTATE(STA,HDigits+3);
END;
DATA()
BEGIN
L0(0):="VPI: "+VPI;
L0(0):="VPI Elev: "+VPIE;
L0(0):="Length: "+LENGTH;
L0(0):=" ℓ₁: "+(100*l1)+" ℓ₂: "+(100*l2);
HDigits:=4;
L0(0):="Grade In: "+g1+"%";
L0(0):="Grade Out: "+g2+"%";
HDigits:=2;
END;
UEC()
BEGIN
INPUT({l1,l2},"Tangent Lengths",
{" ℓ₁: "," ℓ₂: "});
LENGTH:=l1+l2;
l1/100▶l1;
l2/100▶l2
END;
RESET()
BEGIN
Entry:=ENT;
HDigits:=HD;
HFormat:=HF;
END;
SET()
BEGIN
HDigits▶HD;
HFormat▶HF;
Entry▶ENT;
HFormat:=1;
HDigits:=4;
Entry:=2;
END;
//END VC PRGM
CC()
BEGIN
MENU:=1;
INPUT({{deg,[0],{10,40,0}},{Da,[0],{10,40,1}},{tn,[0],{10,40,2}},{ext,[0],{10,40,3}},{len,[0],{10,40,4}},{rad,[0,8],{10,40,5}},{chd,[0],{10,40,6}},{mo,[0],{60,35,6}}},"Input Curve Data",
{"△: ","D: ","T: ","E: ","L: ","R: ","Ch: ","M: "},
{" Delta"," Deg. Curve"," Tangent"," External"," Length"," Radius"," Chord"," Mid. Ordinate"},{deg,Da,tn,ext,len,rad,chd,mo});
IF deg≠0 AND rad≠0 THEN
tn:=0;
Da:=(0);
len:=0;
chd:=0;
ext:=0;
mo:=0;
rr:=0;
END;
IF Da≠0 THEN
CHOOSE(rr,"Curve Type","Arc Deffinition","Chord Deffinition");
IF rr=1 THEN
rad:=5729.528/Da;
type1:="Arc Deffinition"
ELSE
rad:=5729.648/Da;
type1:="Chord Deffinition"
END;
END;
IF deg≠0 AND tn≠0 THEN
tn/TAN(deg/2)▶rad;
END;
IF deg≠0 AND len≠0 THEN
len/(deg*(π/180))▶rad;
END;
IF deg≠0 AND chd≠0 THEN
chd/2/SIN(deg/2)▶rad;
END;
IF deg≠0 AND ext≠0 THEN
((COS(deg/2)*ext)-ext)▶rad;
END;
IF deg≠0 AND mo≠0 THEN
(mo/(1-(COS(deg/2))))▶rad;
END;
IF rad≠0 AND tn≠0 THEN
2*ATAN(tn/rad)▶deg;
END;
IF rad≠0 AND len≠0 THEN
len/rad*180/π▶deg;
END;
IF rad≠0 AND chd≠0 THEN
2*ASIN(chd/2/rad)▶deg;
END;
IF rad≠0 AND ext≠0 THEN
2*ACOS((1+ext/rad))▶deg;
END;
IF tn≠0 AND chd≠0 THEN
2*ACOS(chd/2/tn)▶rad;
TAN(tn)/(2*ACOS(chd/2/tn))*2▶deg;
END;
IF tn=0 THEN
rad*TAN(deg/2)▶tn;
END;
IF len=0 THEN
rad*deg*(π/180)▶len;
END;
IF chd=0 THEN
SIN(deg/2)*rad*2▶chd;
END;
IF ext=0 THEN
(rad/COS(deg/2))-rad▶ext;
END;
IF mo=0 THEN
(rad*(1-(COS(deg/2))))▶mo;
END;
IF Da=0 THEN
Da:=5729.528/rad;
END;
→HMS(deg)▶deg;
→HMS(Da)▶Da;
((π*rad²)*(deg/360))▶sec1;
(sec1-((COS(deg/2)*rad*chd)/2))▶seg;
((rad*tn)-sec1)▶fil;
MENU:=1;
HCDISP;
MENU:=0;
Survey;
STARTVIEW(−8,1);
STARTVIEW(−1,1);
END;
EXPORT Survey()
// Parameters: buttonlabellist is a list which should contain at most 6 strings for the button labels
// Returns:
// * If one of the buttons in "buttonlabellist" was pressed returns the ID (1 to 6) of the button.
// * If a button is pressed which is not labeled by "buttonlabellist" returns negative ID of the button (-6 to -1)
// * If none of the on screen buttons was pressed returns 0
BEGIN
IF MENU=0 THEN
RECT_P();
buttonlabellist :={"Exit","","","","V ↷","H ↷"};
END;
IF MENU=1 THEN
buttonlabellist :={"⇨Main","","","","","H ↷"};
END;
LOCAL selection, mouselist;
DRAWMENU(buttonlabellist);
selection := 0; //preinitialize with 0 which is returned if none of the buttons is pressed
mouselist:=WAIT(-1); // Wait until screen is touched
// Check whether one of the on-screen buttons was pressed:
IF (TYPE(mouselist)==6) THEN // Check whether we have a touch event (==list)
IF (mouselist(1)==3) THEN // Check whether a button was pressed
IF (mouselist(3) >= #DD:-16h) THEN // check whether it was one of the 6 buttons at the bottom
selection:=CEILING((mouselist(2)+1)*6/320); // Screen is 320px wide. There are six buttons. hence divide
// mouse value by 320/6. To avoid getting a value of zero when the user presses exactly at the left
//border a 1 is added to the mouse value
IF (selection > length(buttonlabellist)) THEN // Check whether a valid button was pressed.
//selection := -selection;
END;
END;
END;
END;
IF selection=6 AND MENU=0 THEN
deg:=(0);
rad:=0;
tn:=0;
Da:=(0);
len:=0;
chd:=0;
ext:=0;
mo:=0;
rr:=0;
CC;
Survey;
END;
IF selection=6 AND MENU=1 THEN
CC;
Survey;
END;
IF selection=5 AND MENU=0 THEN
VC_LIST;
Survey;
END;
IF selection=1 AND MENU==0 THEN
END;
IF selection=1 AND MENU=1 THEN
MENU:=0;
Survey;
END;
IF selection=1 AND MENU=0 THEN
KILL;
END;
END;
HCDISP()
BEGIN
RECT_P();
//Labels
TEXTOUT_P("Delta:",G0,10,15,2,RGB(0,0,0));
TEXTOUT_P("Degree Curve:",G0,10,30,2,RGB(0,0,0));
TEXTOUT_P("Tangent:",G0,10,45,2,RGB(0,0,0));
TEXTOUT_P("External:",G0,10,60,2,RGB(0,0,0));
TEXTOUT_P("Length:",G0,10,75,2,RGB(0,0,0),100,RGB(0,255,0));
TEXTOUT_P("Radius:",G0,10,90,2,RGB(0,0,0),100,RGB(255,255,0));
TEXTOUT_P("Chord:",G0,10,105,2,RGB(0,0,0));
TEXTOUT_P("Middle",G0,10,123,2,RGB(0,0,0));
TEXTOUT_P("Ordinate:",G0,10,135,2,RGB(0,0,0));
TEXTOUT_P("Sector:",G0,10,165,2,RGB(0,0,0));
TEXTOUT_P("Segment:",G0,10,180,2,RGB(0,0,0));
TEXTOUT_P("Fillet:",G0,10,195,2,RGB(0,0,0));
//Returns
TEXTOUT_P(deg,G0,100,15,2,RGB(0,0,0));
TEXTOUT_P(Da,G0,100,30,2,RGB(0,0,0));
TEXTOUT_P(tn,G0,100,45,2,RGB(0,0,0));
TEXTOUT_P(ext,G0,100,60,2,RGB(0,0,0));
TEXTOUT_P(len,G0,100,75,2,RGB(0,0,0),100,RGB(0,255,0));
TEXTOUT_P(rad,G0,100,90,2,RGB(0,0,0),100,RGB(255,255,0));
TEXTOUT_P(chd,G0,100,105,2,RGB(0,0,0));
TEXTOUT_P(mo,G0,100,135,2,RGB(0,0,0));
TEXTOUT_P(sec1,G0,100,165,2,RGB(0,0,0));
TEXTOUT_P(seg,G0,100,180,2,RGB(0,0,0));
TEXTOUT_P(fil,G0,100,195,2,RGB(0,0,0));
//Border
TEXTOUT_P("╔",G0,0,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,7,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,14,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,21,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,28,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,35,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,42,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,49,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,56,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,63,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,70,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,77,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,84,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,91,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,98,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,105,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,112,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,119,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,126,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,133,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,140,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,147,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,154,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,161,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,168,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,175,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,182,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,189,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,196,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,203,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,210,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,217,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,224,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,231,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,238,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,245,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,252,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,259,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,266,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,273,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,280,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,287,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,294,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,301,0,2,RGB(0,0,0));
TEXTOUT_P("═",G0,308,0,2,RGB(0,0,0));
TEXTOUT_P("╗",G0,314,0,2,RGB(0,0,0));
TEXTOUT_P("║",G0,0,15,2,RGB(0,0,0));
TEXTOUT_P("║",G0,314,15,2,RGB(0,0,0));
TEXTOUT_P("║",G0,0,30,2,RGB(0,0,0));
TEXTOUT_P("║",G0,314,30,2,RGB(0,0,0));
TEXTOUT_P("║",G0,0,45,2,RGB(0,0,0));
TEXTOUT_P("║",G0,314,45,2,RGB(0,0,0));
TEXTOUT_P("║",G0,0,60,2,RGB(0,0,0));
TEXTOUT_P("║",G0,314,60,2,RGB(0,0,0));
TEXTOUT_P("║",G0,0,75,2,RGB(0,0,0));
TEXTOUT_P("║",G0,314,75,2,RGB(0,0,0));
TEXTOUT_P("║",G0,0,90,2,RGB(0,0,0));
TEXTOUT_P("║",G0,314,90,2,RGB(0,0,0));
TEXTOUT_P("║",G0,0,105,2,RGB(0,0,0));
TEXTOUT_P("║",G0,314,105,2,RGB(0,0,0));
TEXTOUT_P("║",G0,0,120,2,RGB(0,0,0));
TEXTOUT_P("║",G0,314,120,2,RGB(0,0,0));
TEXTOUT_P("║",G0,0,135,2,RGB(0,0,0));
TEXTOUT_P("║",G0,314,135,2,RGB(0,0,0));
TEXTOUT_P("╠",G0,0,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,7,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,14,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,21,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,28,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,35,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,42,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,49,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,56,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,63,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,70,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,77,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,84,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,91,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,98,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,105,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,112,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,119,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,126,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,133,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,140,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,147,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,154,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,161,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,168,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,175,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,182,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,189,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,196,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,203,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,210,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,217,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,224,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,231,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,238,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,245,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,252,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,259,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,266,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,273,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,280,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,287,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,294,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,301,150,2,RGB(0,0,0));
TEXTOUT_P("═",G0,308,150,2,RGB(0,0,0));
TEXTOUT_P("╣",G0,314,150,2,RGB(0,0,0));
TEXTOUT_P("║",G0,0,165,2,RGB(0,0,0));
TEXTOUT_P("║",G0,314,165,2,RGB(0,0,0));
TEXTOUT_P("║",G0,0,180,2,RGB(0,0,0));
TEXTOUT_P("║",G0,314,180,2,RGB(0,0,0));
TEXTOUT_P("║",G0,0,195,2,RGB(0,0,0));
TEXTOUT_P("║",G0,314,195,2,RGB(0,0,0));
//TEXTOUT_P("║",G0,0,210,2,RGB(0,0,0));
//TEXTOUT_P("║",G0,314,210,2,RGB(0,0,0));
//TEXTOUT_P("║",G0,0,220,2,RGB(0,0,0));
//TEXTOUT_P("║",G0,314,220,2,RGB(0,0,0));
TEXTOUT_P("╚",G0,0,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,7,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,14,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,21,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,28,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,35,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,42,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,49,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,56,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,63,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,70,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,77,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,84,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,91,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,98,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,105,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,112,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,119,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,126,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,133,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,140,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,147,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,154,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,161,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,168,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,175,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,182,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,189,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,196,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,203,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,210,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,217,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,224,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,231,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,238,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,245,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,252,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,259,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,266,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,273,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,280,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,287,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,294,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,301,210,2,RGB(0,0,0));
TEXTOUT_P("═",G0,308,210,2,RGB(0,0,0));
TEXTOUT_P("╝",G0,314,210,2,RGB(0,0,0));
MENU:=1;
Survey;
//WAIT(−1)
END;