/*************************************************************************/
/*                           Wall Street Blues                           */
/*                          AREXX Programming by                         */
/*                          Charles A. Van Tuyl                          */
/*                               aka Caesar                              */
/*      $VER:Wall Street Blues, v2.0 (04-12-94) by Charles Van Tuyl      */
/*                Gold City User's Group BBS (502) 942-3660              */
/*                  AUGNet 222:5000/2   C-Link! 911:6300/4               */
/*************************************************************************/
options results
signal on syntax
tr = transmit; gu = getuser
path='Pfiles:Stocks/'
path1='Pfiles:Stocks/Users/'
path2='Pfiles:Stocks/Companies/'
path3='Pfiles:Stocks/News/'
XX=20000                 /* Amount a User Starts With*/
gu 1;name=result
GC=0;MP=0;PM=0;SB=0;SD=0;GT=0;UA=0;UE=0;GP=0;GB=0;CA=0
if ~exists(Path1||'') then do
tr 'c1Error! Files or directories are missing. Now resetting game 1.w2'
tr '#0Pfiles:Stocks/Reset}'
end
if ~exists(Path3||'') then do
tr 'c1Error! Files or directories are missing. Now resetting game 2.w2'
tr '#0Pfiles:Stocks/Reset}'
end
if ~exists(path||'ST.data') then do
tr 'c1Error! Files or directories are missing. Now resetting game 3.w2'
tr '#0Pfiles:Stocks/Reset}'
end
if ~exists(path||'U3') then do
tr 'c1Error! Files or directories are missing. Now resetting game 4.w2'
tr '#0Pfiles:Stocks/Reset}'
end
if ~exists(path||'SU.data') then do
tr 'c1Error! Files or directories are missing. Now resetting game 5.w2'
tr '#0Pfiles:Stocks/Reset}'
end
if ~exists(path||'U4') then do
tr 'c1Error! Files or directories are missing. Now resetting game 6.w2'
tr '#0Pfiles:Stocks/Reset}'
end
if ~exists(Path||'DowJones') then do
tr '#0Pfiles:Stocks/DowMaint}'
end
signal off error;call open(file,path||'DowJones','R')
ZA=readln(file);ZB=readln(file);ZC=readln(file);ZD=readln(file);ZE=readln(file);ZF=readln(file);ZG=readln(file);ZH=readln(file);ZI=readln(file)
ZJ=readln(file);ZK=readln(file);ZL=readln(file)
close(file); signal on error
call COMLOAD
call open(file,path||'ST.data','R')
ST=readln(file); call close file
call open(file,path||'SU.data','R')
SU=readln(file); call close file
tr '*0Pfiles:Stocks/Intro}'
call NEWS
call WINNER
call LADDER
if ~exists(path1||name) then do
tr 'f1n5c3A New Investor! w1c2Now adding you to the game...'
CA=20000;ST=ST+1;t=XX;BL=XX
signal off error; call open(file,path||'U3','A')
string=right(t,9)||' '||left(name,20)
writeln(file,string)
call close file
file1='pfiles:Stocks/U3'
file2='pfiles:Stocks/tU3'
call open(file,path||'ST.data','W'); writeln(file,ST)
call close file; signal on error
call SAVE
tr '*0Pfiles:Stocks/Instructions}'
tr '#0Pfiles:Stocks/sort}'
end
if exists(path1||name) then do
tr 'f1n5c3Welcome to Wall Street! w1c2Now recalling your portfoliow2';call LOAD
BA=AA*GC;BB=MP*AB;BC=PM*AC;BD=SB*AD;BE=SD*AE;BF=GT*AF;BG=UA*AG;BH=UE*AH;BI=GP*AI;BJ=GB*AJ
BK=BA+BB+BC+BD+BE+BF+BG+BH+BI+BJ;BL=BK+CA

MAIN:
tr '*0Pfiles:Stocks/Mainmenu}'
sendstring 'n1>5c5Please select an option.  ';call GETNUM;b=x
if b<=0 | b>=10 then signal MAIN
if b=1 then call BUY
if b=2 then call COMP
if b=3 then call PORTF
if b=4 then call LADDER
if b=5 then call INSTR
if b=6 then call NEWS
if b=7 then call WINNER
if b=8 then call QUIT
call MAIN

LOAD:
signal off error
tr 'Reading...............'
open(file,path1||name,'R')
GC=readln(file);MP=readln(file);PM=readln(file);SB=readln(file);SD=readln(file);GT=readln(file);UA=readln(file);UE=readln(file);GP=readln(file);GB=readln(file);CA=readln(file);BL=readln(file)
tr 'Got it...................w1'
close(file); signal on error
return

SAVE:
signal off error; open(file,path1||name,'W')
writeln(file,GC); writeln(file,MP); writeln(file,PM); writeln(file,SB); writeln(file,SD); writeln(file,GT); writeln(file,UA); writeln(file,UE); writeln(file,GP); writeln(file,GB); writeln(file,CA);writeln(file,BL)
close(file); signal on error
return

COMLOAD:
signal off error
open(file,path2||Prices,'R')
AA=readln(file);AB=readln(file);AC=readln(file);AD=readln(file);AE=readln(file);AF=readln(file);AG=readln(file);AH=readln(file);AI=readln(file);BL=readln(file)
close(file); signal on error
AJ=1000
return

PORTF:
BA=AA*GC;BB=MP*AB;BC=PM*AC;BD=SB*AD;BE=SD*AE;BF=GT*AF;BG=UA*AG;BH=UE*AH;BI=GP*AI;BJ=GB*AJ
BK=BA+BB+BC+BD+BE+BF+BG+BH+BI+BJ;BL=BK+CA
TR 'n2f1c7                              Shares         Price         Current'
TR 'c7Company Name                  Owned          Per Share     Value'
tr 'n1c2Hales Business Assoc.c7     1%' 'c1:c2'Right(GC,6)'>9$'Left(AA,6)'c3       $'Left(BA,8)
tr 'c3Logsdon Realty Inc.         ' 'c1:c3'Right(MP,6)'>9$'Left(AB,6)'c3       $'Left(BB,8)
tr 'c2Netzel Mutual Fundc7        4%' 'c1:c2'Right(PM,6)'>9$'Left(AC,6)'c3       $'Left(BC,8)
tr 'c3Van Tuyl Development Co.c7  7%' 'c1:c3'Right(SB,6)'>9$'Left(AD,6)'c3       $'Left(BD,8)
tr 'c2Allison Oil Drilling        ' 'c1:c2'Right(SD,6)'>9$'Left(AE,6)'c3       $'Left(BE,8)
tr 'c3Wells Trucking Company      ' 'c1:c3'Right(GT,6)'>9$'Left(AF,6)'c3       $'Left(BF,8)
tr 'c2Collins Automobile c7       2%' 'c1:c2'Right(UA,6)'>9$'Left(AG,6)'c3       $'Left(BG,8)
tr 'c3Miller Mining, Inc.c7       6%' 'c1:c3'Right(UE,6)'>9$'Left(AH,6)'c3       $'Left(BH,8)
tr 'c2Trumbo Electric Co.     c7  3%' 'c1:c2'Right(GP,6)'>9$'Left(AI,6)'c3       $'Left(BI,8)
tr 'c3Gold City Municipal Bondsc7 5%' 'c1:c3'Right(GB,6)'>9$'Left(AJ,6)'c3       $'Left(BJ,8)
tr 'n1c7Your Current Stock Value      c3$'BK
tr 'n1c7Your Current Cash Holdings    c3$'CA
tr 'n1c7Your Current Net Worth        c3$'BL
tr 'n1c5<Press Any Key>g1'
return

BUY:
TR ' n2f1c7                                  Shares        Price'
TR ' c7  Company Name                   Owned         Per Share'
tr ' n1c7 1.c2Hales Business Assoc.c7     1%' 'c1:c2'Right(GC,6)'>9$'Left(AA,7)
tr ' c72.c3Logsdon Realty Inc.         ' 'c1:c3'Right(MP,6)'>9$'Left(AB,7)
tr ' c73.c2Netzel Mutual Fundc7        4%' 'c1:c2'Right(PM,6)'>9$'Left(AC,7)
tr ' c74.c3Van Tuyl Development Co. c7 7%' 'c1:c3'Right(SB,6)'>9$'Left(AD,7)
tr ' c75.c2Allison Oil Drilling        ' 'c1:c2'Right(SD,6)'>9$'Left(AE,7)
tr ' c76.c3Wells Trucking Company      ' 'c1:c3'Right(GT,6)'>9$'Left(AF,7)
tr ' c77.c2Collins Automobile c7       2%' 'c1:c2'Right(UA,6)'>9$'Left(AG,7)
tr ' c78.c3Miller Mining, Inc.c7       6%' 'c1:c3'Right(UE,6)'>9$'Left(AH,7)
tr ' c79.c2Trumbo Electric Co.     c7  3%' 'c1:c2'Right(GP,6)'>9$'Left(AI,7)
tr 'c710.c3Gold City Municipal Bondsc7 5%' 'c1:c3'Right(GB,6)'>9$'Left(AJ,7)
tr 'n2c7Your Current Cash Holdings    $c7' CA
ZZ=0
sendstring 'n1c2Would you like to c3Bc2uy or c3Sc2ell? ';call GETANS
if ans='B' then signal BUYA
if ans='S' then signal SELLA
signal MAIN

BUYA:
sendstring 'c1<9<9<9<4Please select a Company to BUY shares from. c7 ';call GETNUM;a=x
if a<=0 | a>=11 then signal BUY
sendstring 'c1Please select amount of shares to BUY. A = Max.c7 ';call GETNUM
if a=1 then call BUY1
if a=2 then call BUY2
if a=3 then call BUY3
if a=4 then call BUY4
if a=5 then call BUY5
if a=6 then call BUY6
if a=7 then call BUY7
if a=8 then call BUY8
if a=9 then call BUY9
if a=10 then call BUY10
signal BUY

SELLA:
sendstring 'c1<9<9<9<4Please select a Company to SELL shares. c7 ';call GETNUM;c=x
if c<=0 | c>=11 then signal BUY
sendstring 'c1Please select amount of shares to SELL. A = Maxc7 ';call GETNUM
if c=1 then call SELL1
if c=2 then call SELL2
if c=3 then call SELL3
if c=4 then call SELL4
if c=5 then call SELL5
if c=6 then call SELL6
if c=7 then call SELL7
if c=8 then call SELL8
if c=9 then call SELL9
if c=10 then call SELL10
signal BUY
return

BUY1:
if AA=0 then signal BUY
if x='A' then do
x=CA/(AA*.03+AA);call CUTIT;end
ZZ=x*AA 
ZZ=ZZ+(ZZ*.03)
XL=x
sendstring 'n1c2Total of c7'XL'c2 shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if ZZ>CA then do
sendstring 'n1c1You only have $'CA 'w2'
return
end
CA=CA-ZZ; gc=gc+x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

BUY2:
if AB=0 then signal BUY
if x='A' then do
x=CA/(AB*.03+AB);call CUTIT;end
ZZ = x * AB 
ZZ=ZZ+(ZZ*.03)
XL=x
sendstring 'n1c2Total of c7'XL'c2 shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if ZZ>CA then do
sendstring 'n1c1You only have $'CA 'w2'
return
end
CA=CA-ZZ; mp=mp+x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

BUY3:
if AC=0 then signal BUY
if x='A' then do
x=CA/(AC*.03+AC);call CUTIT;end
ZZ = x * AC 
ZZ=ZZ+(ZZ*.03)
XL=x
sendstring 'n1c2Total of c7'XL'c2 shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if ZZ>CA then do
sendstring 'n1c1You only have $'CA 'w2'
return
end
CA=CA-ZZ; pm=pm+x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

BUY4:
if AD=0 then signal BUY
if x='A' then do
x=CA/(AD*.03+AD);call CUTIT;end
ZZ = x * AD 
ZZ=ZZ+(ZZ*.03)
XL=x
sendstring 'n1c2Total of c7'XL'c2 shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if ZZ>CA then do
sendstring 'n1c1You only have $'CA 'w2'
return
end
CA=CA-ZZ; sb=sb+x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

BUY5:
if AE=0 then signal BUY
if x='A' then do
x=CA/(AE*.03+AE);call CUTIT;end
ZZ = x * AE 
ZZ=ZZ+(ZZ*.03)
XL=x
sendstring 'n1c2Total of c7'XL'c2 shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if ZZ>CA then do
sendstring 'n1c1You only have $'CA 'w2'
return
end
CA=CA-ZZ; sd=sd+x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

BUY6:
if AF=0 then signal BUY
if x='A' then do
x=CA/(AF*.03+AF);call CUTIT;end
ZZ = x * AF 
ZZ=ZZ+(ZZ*.03)
XL=x
sendstring 'n1c2Total of c7'XL'c2 shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if ZZ>CA then do
sendstring 'n1c1You only have $'CA 'w2'
return
end
CA=CA-ZZ; gt=gt+x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

BUY7:
if AG=0 then signal BUY
if x='A' then do
x=CA/(AG*.03+AG);call CUTIT;end
ZZ = x * AG 
ZZ=ZZ+(ZZ*.03)
XL=x
sendstring 'n1c2Total of c7'XL'c2 shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if ZZ>CA then do
sendstring 'n1c1You only have $'CA 'w2'
return
end
CA=CA-ZZ; ua=ua+x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

BUY8:
if AH=0 then signal BUY
if x='A' then do
x=CA/(AH*.03+AH);call CUTIT;end
ZZ = x * AH 
ZZ=ZZ+(ZZ*.03)
XL=x
sendstring 'n1c2Total of c7'XL'c2 shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if ZZ>CA then do
sendstring 'n1c1You only have $'CA 'w2'
return
end
CA=CA-ZZ; ue=ue+x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

BUY9:
if AI=0 then signal BUY
if x='A' then do
x=CA/(AI*.03+AI);call CUTIT;end
ZZ = x * AI 
ZZ=ZZ+(ZZ*.03)
XL=x
sendstring 'n1c2Total of c7'XL'c2 shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if ZZ>CA then do
sendstring 'n1c1You only have $'CA 'w2'
return
end
CA=CA-ZZ; gp=gp+x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

BUY10:
if x='A' then do
x=CA/(AJ*.03+AJ);call CUTIT;end
ZZ = x * AJ 
ZZ=ZZ+(ZZ*.03)
XL=x
sendstring 'n1c2Total of c7'XL'c2 bonds and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if ZZ>CA then do
sendstring 'n1c1You only have $'CA 'w2'
return
end
CA=CA-ZZ; gb=gb+x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return


SELL1:
if x='A' then x=GC
ZZ= x * AA 
ZZ=ZZ-(ZZ*.03)
XL=x
sendstring 'c2Total of c7'XL' c2shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if x>GC then do
sendstring 'n1c1You only have 'GC'w2' 
return
end
CA=CA+ZZ; gc=gc-x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

SELL2:
if x='A' then x=MP
ZZ = x * AB 
ZZ=ZZ-(ZZ*.03)
XL=x
sendstring 'c2Total of c7'XL' c2shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if x>MP then do
sendstring 'n1c1You only have 'MP 'w2'
return
end
CA=CA+ZZ; mp=mp-x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

SELL3:
if x='A' then x=PM
ZZ = x * AC 
ZZ=ZZ-(ZZ*.03)
XL=x
sendstring 'c2Total of c7'XL' c2shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if x>PM then do
sendstring 'n1c1You only have 'PM 'w2'
return
end
CA=CA+ZZ; pm=pm-x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

SELL4:
if x='A' then x=SB
ZZ = x * AD 
ZZ=ZZ-(ZZ*.03)
XL=x
sendstring 'c2Total of c7'XL' c2shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if x>sb then do
sendstring 'n1c1You only have 'SB 'w2'
return
end
CA=CA+ZZ; sb=sb-x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

SELL5:
if x='A' then x=SD
ZZ = x * AE 
ZZ=ZZ-(ZZ*.03)
XL=x
sendstring 'c2Total of c7'XL' c2shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if x>SD then do
sendstring 'n1c1You only have 'SD 'w2'
return
end
CA=CA+ZZ; sd=sd-x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

SELL6:
if x='A' then x=GT
ZZ = x * AF 
ZZ=ZZ-(ZZ*.03)
XL=x
sendstring 'c2Total of c7'XL' c2shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if x>GT then do
sendstring 'n1c1You only have 'GT 'w2'
return
end
CA=CA+ZZ; gt=gt-x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

SELL7:
if x='A' then x=UA
ZZ = x * AG 
ZZ=ZZ-(ZZ*.03)
XL=x
sendstring 'c2Total of c7'XL' c2shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if x>UA then do
sendstring 'n1c1You only have 'UA 'w2'
return
end
CA=CA+ZZ; ua=ua-x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

SELL8:
if x='A' then x=UE
ZZ = x * AH 
ZZ=ZZ-(ZZ*.03)
XL=x
sendstring 'c2Total of c7'XL' c2shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if x>UE then do
sendstring 'n1c1You only have 'UE 'w2'
return
end
CA=CA+ZZ; ue=ue-x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

SELL9:
if x='A' then x=GP
ZZ = x * AI 
ZZ=ZZ-(ZZ*.03)
XL=x
sendstring 'c2Total of c7'XL' c2shares and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if x>GP then do
sendstring 'n1c1You only have 'GP 'w2'
return
end
CA=CA+ZZ; gp=gp-x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return

SELL10:
if x='A' then x=GB
ZZ = x * AJ 
ZZ=ZZ-(ZZ*.03)
XL=x
sendstring 'c2Total of c7'XL' c2bonds and 3% broker fee equals c7 $'ZZ   'c2Complete sale?c7[Y/N]'
call GETANS 
if ans ~= 'Y' then return
if x>GB then do
sendstring 'n1c1You only have 'GB 'w2'
return
end
CA=CA+ZZ; gb=gb-x
tr 'n1c5s1...............................s0DONE!w2'; signal BUY
return


LADDER:
z=0
tr 'f1n3>9>9>4c3This Months Wealthiest Investorsn3'
call open(sfile,path||'U3','R')
do i=1 to st
null=seek(sfile,(st-i)*31,'B')
inn=readln(sfile)
sendstring ">9>9cePlace "i
sendstring " c9"trim(substr(inn,11,20))
transmit " cfhas c9"compress(substr(inn,1,9))" cfdollars."
z=z+1
if z=15 then do
sendstring "Continue?"
bufferflush
getchar;a=upper(result);if a='###PANIC' then signal quit
sendstring "h9"
if a='N' then i=st
z=0
end
end
call close sfile
tr 'n2c5<Press Any Key>g1'
return

NEWS:
tr '*0Pfiles:Stocks/News/ne.data}^2'
tr '*0Pfiles:Stocks/News/ne1.data}^2'
tr '*0Pfiles:Stocks/News/ne2.data}^2'
tr '*0Pfiles:Stocks/News/ne3.data}^2'
tr '*0Pfiles:Stocks/News/ne4.data}^2'
tr '*0Pfiles:Stocks/News/ne5.data}^2'
tr '*0Pfiles:Stocks/News/ne6.data}^2'
tr '*0Pfiles:Stocks/News/ne7.data}^2'
tr '*0Pfiles:Stocks/News/ne8.data}^2'
tr '*0Pfiles:Stocks/News/ne9.data}^2'
tr 'n1The Dow Jones Index is at $'ZK
tr 'The Dow Jones change from yesterday is 'ZL'%'
tr 'n2c5<Press Any Key>g1'
return


WINNER:
z=0
tr 'f1n3>9>9>3c3Last Months Wealthiest Investorsn3'
call open(sfile,path||'U4','R')
do i=1 to su
null=seek(sfile,(su-i)*31,'B')
inn=readln(sfile)
sendstring ">9>9cePlace "i
sendstring " c9"trim(substr(inn,11,20))
transmit " cfhas c9"compress(substr(inn,1,9))" cfdollars."
z=z+1
if z=15 then do
sendstring "Continue?"
bufferflush
getchar;a=upper(result);if a='###PANIC' then signal quit
sendstring "h9"
if a='N' then i=su
z=0
end
end
call close sfile
tr 'n2c5<Press Any Key>g1'
return

COMP:
tr '#0Pfiles:Stocks/Companies/Prospectus}'

GETANS:
bufferflush
getchar
ans=upper(result)
if ans='###PANIC' then do
call save
exit
end
return

GETNUM:
x=0
do forever
bufferflush
receive;x=result
if x='###PANIC' then do
call save
exit
end
if x='' then do
x=0
return
end
if x='A' then return
if x='a' then x='A';return
if datatype(x,'W')~=1 | substr(x,1,1)='+' | substr(x,1,1)='0' then sendstring "Try entering a number!"
else break
end
return

INSTR:
tr '*0Pfiles:Stocks/Instructions}'
return

CUTIT:
IF x<10 THEN x=LEFT(x,1)
IF x>9 THEN DO
IF x<100 then x=LEFT(x,2) 
END
IF x>99 then DO
IF x<1000 THEN x=LEFT(x,3)
END
IF x>999 then DO
IF x<10000 THEN x=LEFT(x,3)
END
IF x>9999 then DO
IF x<100000 THEN x=LEFT(x,3)
END
IF x>99999 then DO
IF x<1000000 THEN x=LEFT(x,3)
END
IF x>999999 then DO
IF x<10000000 THEN x=LEFT(x,3)
END
IF x>9999999 then DO
IF x<100000000 THEN x=LEFT(x,3)
END
RETURN

QUIT:
call SAVE
exit

SYNTAX:
Tr 'Error:' errortext(rc) 'in line 'SIGL'.'
shutdown
end
end
exit
