4255 FOR X=1 TO SP
4260 PRINT X, SP$(X);: IF D_OUT$="Y" THEN PRINT #4, X, SP$(X);
4265 IF P$="Y" THEN LPRINT X, SP$(X);
4270 NEXT X: PRINT "": IF P$="Y" THEN LPRINT
4275 IF D_OUT$="Y" THEN PRINT #4, ""
4295 RETURN
入れ子とは、上記のように
PRINT ; LPRINT ; PRINT ; LPRINT ; のように交互に連続する状態。
99BasicではDOS-N88BASICと同様に、正常に機能します。(ファイル出力 PRINT #?, "***" の場合も)
DOS-BASICでは、「" Lp #6020"と" Lp #7020"」は、同一行に連続して印刷される。
ところがN88互換BASICでは、印刷されずに、画面表示されてしまう。原因は、#4260行のPRINT文末の「
; 」(=続くの命令)記号。これがあると、次にLPRINT命令があっても、PRINT命令として機能してしまう。
4255 FOR X=1 TO SP
4260 PRINT X, SP$(X);: IF D_OUT$="Y" THEN PRINT #4, X, SP$(X);
4265 IF P$="Y" THEN LPRINT X, SP$(X);
4270 NEXT X: PRINT "": IF D_OUT$="Y" THEN PRINT #4, ""
4274 IF P$="" THEN RETURN
4280 FOR X=1 TO SP
4285 IF P$="Y" THEN LPRINT X, SP$(X);
4290 NEXT X: IF P$="Y" THEN LPRINT
4295 RETURN
そのためにN88互換BASICでは、上記のようにPRINT部分(4255~4270行)とLPRINT部分(4280~4290行)を分けて、
PRINT ;を完結させてから、LPRINTに入る必要がある。
99Basicではこの必要性がありません。
Top 99Menu