Listing of file='3B' on disk='vmedia/glbr_22.wvd.zip'
# Sector 546, program filename = '3B' 0010 INPUT "ENTER SETTLEMENT DATE IN THE FORM MMDDYY",S 0020 INPUT "ENTER COUPON (%)",C 0030 INPUT "ENTER MATURITY DATE IN THE FORM MMDDYY",M 0040 INPUT "ENTER $ PRICE",Y 0050 INPUT "ENTER INCREMENT VALUE",I 0060 PRINT HEX(03); 0070 PRINT " YIELD TO $ PRICE TO" 0080 PRINT " MATURITY MATURITY" 0090 I1=5*I : Y=Y-I1 0100 S1=INT(S/10000) : S2=INT((S-S1*10000)/100) : S3=S-(S1*10000)-(S2*100) 0110 M1=INT(M/10000) : M2=INT((M-M1*10000)/100) : M3=M-M1*10000-M2*100 0120 IF M3>S3THEN 130 : M3=M3+100 0130 D=360*(M3-S3)+30*(M1-S1)+M2-S2 0140 % ## ####.### ####.### 0150 P1=Y 0160 FOR K=1TO 11 0170 R=100 : G=D : GOSUB 320 : Y=B 0180 PRINTUSING 140,K,Y,P1 0190 P1=P1+I : NEXT K : PRINT HEX(0C0C); : STOP 0200 IF G>=14491 THEN 220 0210 T1=G/30-INT(G/30) : N=INT(G/30)/6 : T=N-INT(N) : N=INT(N) : GOTO 230 0220 N=INT(G/180) : T=0 : T1=G/180-N 0230 GOSUB 290 : A=F1 0240 IF G<=14490THEN 250 : N=N+1 : GOTO 260 0250 T=T+1/6 : GOSUB 290 : T=T-1/6 : GOTO 270 0260 GOSUB 290 0270 P=INT((A+T1*(F1-A))*1000+.5)/1000 0280 RETURN 0290 F1=C*(T-1)/2+(R+(100*C/Y)*((Y/200+1)^(N+1)-1))/((Y/200+1)^(N+T)) 0300 F1=INT(F1*1000)/1000 0310 RETURN 0320 Y=5 : A1=1 0330 GOSUB 200 : F1=P 0340 F1=F1-P1 0350 GOSUB 440 0360 B=Y-F1/F2 0370 Z=B 0380 Y=INT(Y*1000+.5)/1000 0390 B=INT(B*1000+.5)/1000 0400 IF B=Y THEN 430 0410 Y=Z : A1=A1+1 : IF A1<12 THEN 330 0420 STOP "PRICE TO YIELD DOES NOT CONVERGE" 0430 RETURN 0440 X=(Y/200+1)^(-1*(N+T)) 0450 X1=((100*C/Y)*((N+1)/200)*(Y/200+1)^N)-((100*C/Y^2)*((Y/200+1)^(N+1)-1)) 0460 X=X*X1 0470 X1=R+(100*C/Y)*((Y/200+1)^(N+1)-1) 0480 X2=((N+T)/200)*(Y/200+1)^(-1*(N+T+1)) 0490 X1=X1*X2 0500 F2=X-X1 0510 RETURN