60000 : 60010 ' ******************* 60020 ' * リナンバー * 60040 ' ******************* 60100 *R 60110 init "EMM:" 'RAMディスク初期化 60120 ラベル数!=200 '最大使用ラベル数 60130 dim 新行番号!(ラベル数!),開始行!(ラベル数!),終了行!(ラベル数!) 60140 dim パラメータ!(3),ターミネータ$(3) '省略時用設定値 60150 パラメータ!(0)=10 :ターミネータ$(0)="," '新行番号! 60160 パラメータ!(1)=10 :ターミネータ$(1)="," '増分 60170 パラメータ!(2)=1 :ターミネータ$(2)="-" '開始行 60180 パラメータ!(3)=65535:ターミネータ$(3)="." '終了行 60200 *R_コマンド入力 60210 key 0,chr$(30,13) 60220 line input A$ 60230 A=instr(A$+",",",") 60240 for I=0 to 3 60250 if len(A$)>A then 60260 B=instr(A+1,A$+ターミネータ$(I),ターミネータ$(I)) 60270 if B-A>0 then 60280 C=val(mid$(A$,A+1,B-A-1)) 60290 if C then パラメータ!(I)=C 60300 A=B 60310 end if 60320 end if 60330 next 60340 新行番号!=パラメータ!(0) 60350 開始行!=パラメータ!(0) 60400 *リスト入力準備 60410 list "EMM:リナンバーデータ" '一旦総てアスキーセーブ 60420 open "i",#1,"EMM:リナンバーデータ" 60430 repeat '開始行以前を読み捨て 60440 行番号!=val(left$(A$,5)) 60450 line input #1,A$ 60460 until val(left$(A$,5))>パラメータ!(2) 60470 if 行番号!>パラメータ!(0) then print [3] "sequence error":stop 60480 I=0 'ラベル数用カウンタ 60490 Fラベル=0 '前の行がラベルだフラグ 60500 *行番号調査 60510 repeat 60520 if 行番号! then 60530 J=7 60540 while mid$(A$,J,1)=" " 60550 J=J+1 60560 wend 60570 新行番号!=新行番号!+パラメータ!(1) 60580 開始行!=開始行!+パラメータ!(1) 60590 if mid$(A$,J,1)="*" and Fラベル<2 then 60600 新行番号!=-int(-新行番号!/100)*100 60610 Fラベル=1 60620 else if mid$(A$,J,2)="::" then 60630 新行番号!=-int(-新行番号!/10000)*10000 60640 Fラベル=2 60650 else if mid$(A$,J,1)=":" then 60660 新行番号!=-int(-新行番号!/1000)*1000 60670 Fラベル=2 60680 else 60690 Fラベル=0 60700 end if 60710 if Fラベル then 60720 終了行!(I)=開始行!-1 60730 print I,新行番号!(I),開始行!(I),A$ 60740 I=I+1 60750 開始行!(I)=開始行! 60760 新行番号!(I)=新行番号! 60770 end if 60780 end if 60790 line input #1,A$ 60800 行番号!=val(left$(A$,5)) 60810 until 行番号!=0 or 行番号!>パラメータ!(3) '終了行以降は無視 60820 close 60830 if 行番号!>0 and 行番号!<新行番号! then print "sequence error":stop 60840 if 行番号! then 終了行!(I)=行番号!-1 else 終了行!(I)=パラメータ!(3) 60850 I=I+1 60860 新行番号!(I)=パラメータ!(0) '一旦全体を揃える 60870 開始行!(I)=パラメータ!(2) 60880 終了行!(I)=パラメータ!(3) 60890 print:print 60900 *R_続き 60910 if I<1 then print "リナンバー終了":play "O8CRO7G":voice@ 2:end 60920 key 0,chr$(30,30,30,13)+"G.*R_続き"+chr$(5,13) 60930 print chr$(30,30)+"ren.";新行番号!(I);",";パラメータ!(1);",";開始行!(I);"-";終了行!(I);chr$(5) 60940 I=I-1 60950 stop