

N88BASIC エミュレーターで下記のコードを実行したのですが、  
実行したまま応答せずに終了しませんでした。

エラーがあるとエラー行を警告してくれるエミュレーターですが、  
警告はありませんでした。

自己解決出来ずに投稿しました。  
ご知見を頂けますと幸いです。

[code]

    10 DEFINT I-N
    20 DIM F(4,4), G(4,4), D(4,4), E(4,4), FF(4,4), DD(4,4)
    22 DIM T(5), H(5), X(5), Y(5), P(5), Q(5), B(5), W(5), A(8,100), AA(100)
    30 DEF FNR(I,J)=F(I,3)*F(J,4)-F(I,4)*F(J,3)
    32 DEF FNRD(I,J)=D(I,3)*F(J,4)+F(I,3)*D(J,4)-D(I,4)*F(J,3)-F(I,4)*D(J,3)
    50 READ NL: N=NL+1:LPRINT :LPRINT "WALL CONSTRUCTION"
    52 LPRINT " LAYER TH   LAMDA   LAMDA'  A          A'        B       W"
    60 FOR L=0 TO N
    62 READ TH,CT,CH:LPRINT USING " ##  #.### ##.#### ##.#####";L,TH,CT,CH;
    64 IF TH=0 THEN T(L)=1/CT:  H(L)=1/CH: P(L)=0.5: Q(L)=0.5:LPRINT: GOTO 80
    66 READ DT,DH,B,W:LPRINT USING "##.####^^^^";DT,DH,B,W
    68 T(L)=TH/CT: H(L)=TH/CH: Z=SQR((DT-DH)^2+4*DT*DH*B*W)
    70 X(L)=TH^2*(DT+DH-Z)/(2*DT*DH): Y(L)=TH^2*(DT+DH+Z)/(2*DT*DH)
    72 P(L)=(1+(DT-DH)/Z)/2: Q(L)=(1-(DT-DH)/Z)/2: B(L)=DH*B/Z: W(L)=DT*W/Z
    80 NEXT 
    100 LPRINT :LPRINT "Step Responses in Exponential Series"
    102 LPRINT "  Teram   EXPNT";:FOR M=1 TO 4:LPRINT "    COEF";M;:NEXT
    104 LPRINT:LPRINT SPC(14);:FOR M=5 TO 8:LPRINT "    COEF";M;:NEXT
    110 K=0: S=0: GOSUB 200: R=FNR(1,2): GOTO 160
    120 GOSUB 200: R=FNR(1,2): RD=FNRD(1,2): Z=0: ZZ=0: IF K=1 THEN 140
    130 FOR I=1 TO K-1: Z=Z+A(0,I)/(S+AA(I)): ZZ=ZZ+A(0,I)/(S+AA(I))^2: NEXT 
    140 SS=S-(1/R-Z)/(RD/R^2-ZZ):PRINT "     ";SS
    150 IF S>SS THEN S=SS: GOTO 120 ElSE R=S*RD: AA(K)=-S: A(0, K)=1/RD
    160 A(1,K)=F(2,4)/R: A(2,K)=-F(2,3)/R: A(3,K)=FNR(3,2)/R: A(4,K)=FNR(4,2)/R
    162 A(5,K)=-F(1,4)/R: A(6,K)=F(1,3)/R: A(7,K)=FNR(1,3)/R: A(8,K)=FNR(1,4)/R
    170 LPRINT:LPRINT USING "#### ##.####^^^^";K,AA(K);: FOR M=1 TO 4
    172 LPRINT USING " ##.####^^^^";A(M,K);: NEXT:LPRINT:LPRINT SPC(16);
    174 FOR M=5 TO 8:LPRINT USING " ##.####^^^^";A(M,K);: NEXT:LPRINT
    180 IF K<101 AND S>-10 THEN K=K+1: S=0: GOTO 120
    182 END
    200 FOR I=1 TO 4: FOR J=1 TO 4: F(I,J)=0: D(I,J)=0: NEXT: F(I,I)=1: NEXT
    210 FOR L=0 TO N: T=T(L): H=H(L): P=P(L): Q=Q(L): B=B(L): W=W(L): X=X(L): Y=Y(L)
    220 IF S*X=0 THEN 240
    230 U=SQR(-S*X): X1=COS(U): X2=SIN(U)/U: X3=-U*SIN(U)
    232 X4=X*X2/2: X5=-X*(X1-X2)/(2*U^2): X6=X*(X1+X2)/2
    234 V=SQR(-S*Y): Y1=COS(V): Y2=SIN(V)/V: Y3=-V*SIN(V)
    236 Y4=Y*Y2/2: Y5=-Y*(Y1-Y2)/(2*V^2): Y6=Y*(Y1+Y2)/2: GOTO 250
    240 X1=1: X2=1: X3=0: X4=X/2: X5=X/6: X6=X: Y1=1: Y2=1: Y3=0: Y4=Y/2: Y5=Y/6: Y6=Y
    250 G(1,1)=P*X1+Q*Y1: G(1,2)=B*(X1-Y1): G(1,3)=T*(P*X2+Q*Y2): G(1,4)=H*B*(X2-Y2)
    252 G(2,1)=W*(X1-Y1): G(2,2)=Q*X1+P*Y1: G(2,3)=T*W*(X2-Y2): G(2,4)=H*(Q*X2+P*Y2)
    254 G(3,1)=(P*X3+Q*Y3)/T: G(3,2)=B*(X3-Y3)/T: G(3,3)=G(1,1): G(3,4)=G(1,2)*H/T
    256 G(4,1)=W*(X3-Y3)/H: G(4,2)=(Q*X3+P*Y3)/H: G(4,3)=G(2,1)*T/H: G(4,4)=G(2,2)
    258 E(1,1)=P*X4+Q*Y4: E(1,2)=B*(X4-Y4): E(1,3)=T*(P*X5+Q*Y5): E(1,4)=H*B*(X5-Y5)
    260 E(2,1)=W*(X4-Y4): E(2,2)=Q*X4+P*Y4: E(2,3)=T*W*(X5-Y5): E(2,4)=H*(Q*X5+P*Y5)
    262 E(3,1)=(P*X6+Q*Y6)/T: E(3,2)=B*(X6-Y6)/T: E(3,3)=E(1,1): E(3,4)=E(1,2)*H/T
    264 E(4,1)=W*(X6-Y6)/H: E(4,2)=(Q*X6+P*Y6)/H: E(4,3)=E(2,1)*T/H: E(4,4)=E(2,2)
    270 FOR I=1 TO 4: FOR J=1 TO 4: FF(I,J)=F(I,J): DD(I,J)=D(I,J): NEXT: NEXT
    272 FOR I=1 TO 4: FOR J=1 TO 4: F=0: D=0: FOR M=1 TO 4
    274 F=F+FF(I,M)*G(M,J): D=D+DD(I,M)*G(M,J)+FF(I,M)*E(M,J): NEXT
    276 F(I,J)=F: D(I,J)=D: NEXT: NEXT
    280 NEXT :RETURN
    500 DATA 2                      
    510 DATA 0, 8,  38              
    520 DATA 0.01, 0.5, 0.004, 2.2936E-04, 6.8966E-07, 1596.3, 5.5172E-04
    530 DATA 0.1, 1.25, 0.00168, 8.3949E-04, 4.9499E-07, 1367.6, 4.8615E-04
    540 DATA 0, 20, 95              
    
[/code]


CC BY-SA 4.0
2022-04-14T10:16:25.783
88336
2023-09-14T12:24:14.277
2023-09-14T12:24:14.277
3060
50731
question
basic
N88BASIC エミュレーターでコードを実行しても、応答なしで終了しない