10000 '********************************************************** 10010 ' 10020 'VERTEX STANDARD VX-7 10030 'クローンデータ変換プログラム Ver2.00 (Oct 20 2002) 10040 'MG対応 CNVVX7B.BAS 10050 ' 10060 'Copyright by Heian Software Engineering 10070 '(C)2002 H.S.E. Allrights reserved. 10080 ' 10090 '********************************************************** 10100 ' 10110 ' 10120 ' 10130 *START 10140 CLEAR 10150 DEFINT A-Z 10160 WIDTH 80,25:CONSOLE 0,25,1,1:COLOR 7,0,0,7,2:CLS 2 10170 KEY 2,"system"+CHR$(&HD) 10180 GOTO *MAIN 10190 ' 10200 *INIT.DATA.TABLE 10210 D.MAX=&H3FFF 10220 DIM D(D.MAX) 10230 FOR INIT.DATA.TABLE.W=0 TO D.MAX:D(INIT.DATA.TABLE.W)=-1:NEXT 10240 RESTORE *INIT.DATA.TABLE:GOSUB *READ.ERROR.MES 10250 DATA 60,"*** 入力データが不足しています。(060) ***" 10260 DATA 61,"*** 入力データ構造に誤りがあります。(061) ***" 10270 DATA -1,"" 10280 RETURN 10290 ' 10300 *READ.DATA.TABLE 10310 READ.DATA.TABLE.N=&H3F52 10320 READ.DATA.TABLE.NC=0 10330 *READ.DATA.TABLE.0000 10340 IF EOF(1) THEN READ.DATA.TABLE.ERR=60:RETURN 10350 LINE INPUT #1,READ.DATA.TABLE.I$ 10360 IF READ.DATA.TABLE.I$="" THEN GOTO *READ.DATA.TABLE.0000 10370 IF LEFT$(READ.DATA.TABLE.I$,1)="'" THEN GOTO *READ.DATA.TABLE.0000 10380 IF LEN(READ.DATA.TABLE.I$)<>9 THEN READ.DATA.TABLE.ERR=61:RETURN 10390 READ.DATA.TABLE.IH$=MID$(READ.DATA.TABLE.I$,1,2) 10400 READ.DATA.TABLE.IL$=MID$(READ.DATA.TABLE.I$,3,2) 10410 READ.DATA.TABLE.ID$=MID$(READ.DATA.TABLE.I$,8,2) 10420 IF HEX.CHR$(VAL("&H"+READ.DATA.TABLE.IH$))<>READ.DATA.TABLE.IH$ THEN READ.DATA.TABLE.ERR=61:RETURN 10430 IF HEX.CHR$(VAL("&H"+READ.DATA.TABLE.IL$))<>READ.DATA.TABLE.IL$ THEN READ.DATA.TABLE.ERR=61:RETURN 10440 IF HEX.CHR$(VAL("&H"+READ.DATA.TABLE.ID$))<>READ.DATA.TABLE.ID$ THEN READ.DATA.TABLE.ERR=61:RETURN 10450 READ.DATA.TABLE.AD=VAL("&H"+READ.DATA.TABLE.IH$)*256+VAL("&H"+READ.DATA.TABLE.IL$) 10460 IF READ.DATA.TABLE.AD>READ.DATA.TABLE.N THEN READ.DATA.TABLE.ERR=61:RETURN17300 IF READ.DATA.TABLE.AD<0 THEN READ.DATA.TABLE.ERR=61:RETURN 10470 D(READ.DATA.TABLE.AD)=VAL("&H"+READ.DATA.TABLE.ID$) 10480 READ.DATA.TABLE.NC=READ.DATA.TABLE.NC+1 10490 ' 10500 IF READ.DATA.TABLE.NC MOD 256=0 THEN PRINT "*"; 10510 IF READ.DATA.TABLE.NC<=READ.DATA.TABLE.N THEN GOTO *READ.DATA.TABLE.0000 10520 READ.DATA.TABLE.ERR=0 10530 FOR READ.DATA.TABLE.W=0 TO READ.DATA.TABLE.N 10540 IF D(READ.DATA.TABLE.W)<0 THEN READ.DATA.TABLE.ERR=60 10550 NEXT 10560 RETURN 10570 ' 10580 ' 10590 *READ.HEX.CHR 10600 DIM HEX.CHR$(255) 10610 FOR READ.HEX.CHR.W=0 TO 255:HEX.CHR$(READ.HEX.CHR.W)=RIGHT$("0"+HEX$(READ.HEX.CHR.W),2):NEXT 10620 RETURN 10630 ' 10640 ' 10650 *INIT.ERROR.MES 10660 DIM ERROR.MES$(200) 10670 RESTORE *INIT.ERROR.MES 10680 GOSUB *READ.ERROR.MES 10690 DATA 0,"--- 正常終了(000) ---" 10700 DATA -1,"" 10710 RETURN 10720 ' 10730 *READ.ERROR.MES 10740 READ READ.ERROR.MES.W 10750 IF READ.ERROR.MES.W=>0 THEN READ ERROR.MES$(READ.ERROR.MES.W):GOTO *READ.ERROR.MES 10760 RETURN 10770 ' 10780 *READ.HDV.STR 10790 HDV.STR.MAX=1 10800 DIM HDV.STR$(HDV.STR.MAX) 10810 FOR READ.HDV.STR.W=0 TO HDV.STR.MAX:HDV.STR$(READ.HDV.STR.W)="???":NEXT 10820 RESTORE *READ.HDV.STR 10830 FOR READ.HDV.STR.W=0 TO HDV.STR.MAX 10840 READ HDV.STR$(READ.HDV.STR.W) 10850 IF HDV.STR$(READ.HDV.STR.W)="???" THEN READ.HDV.STR.W=HDV.STR.MAX+1 10860 NEXT 10870 DATA "N","H","???" 10880 HDV.STR.DEF=0 10890 RETURN 10900 ' 10910 *CMP.HDV.STR 10920 CMP.HDV.STR.N=-1 10930 FOR CMP.HDV.STR.W=0 TO HDV.STR.MAX 10940 IF HDV.STR$(CMP.HDV.STR.W)=CMP.HDV.STR.S$ THEN CMP.HDV.STR.N=CMP.HDV.STR.W:CMP.HDV.STR.W=HDV.STR.MAX+2 10950 NEXT 10960 RETURN 10970 ' 10980 ' 10990 *READ.PWR.STR 11000 PWR.STR.MAX=3 11010 DIM PWR.STR$(PWR.STR.MAX) 11020 FOR READ.PWR.STR.W=0 TO PWR.STR.MAX:PWR.STR$(READ.PWR.STR.W)="???":NEXT 11030 RESTORE *READ.PWR.STR 11040 FOR READ.PWR.STR.W=0 TO PWR.STR.MAX 11050 READ PWR.STR$(READ.PWR.STR.W) 11060 IF PWR.STR$(READ.PWR.STR.W)="???" THEN READ.PWR.STR.W=PWR.STR.MAX+1 11070 NEXT 11080 DATA "L1","L2","L3","HI","???" 11090 PWR.STR.DEF=0 11100 RETURN 11110 ' 11120 *CMP.PWR.STR 11130 CMP.PWR.STR.N=-1 11140 FOR CMP.PWR.STR.W=0 TO PWR.STR.MAX 11150 IF PWR.STR$(CMP.PWR.STR.W)=CMP.PWR.STR.S$ THEN CMP.PWR.STR.N=CMP.PWR.STR.W:CMP.PWR.STR.W=PWR.STR.MAX+2 11160 NEXT 11170 RETURN 11180 ' 11190 ' 11200 *READ.STP.STR 11210 STP.STR.MAX=15 11220 DIM STP.STR$(STP.STR.MAX) 11230 FOR READ.STR.STR.W=0 TO STR.STR.MAX:STR.STR$(READ.STR.STR.W)="???":NEXT 11240 RESTORE *READ.STP.STR 11250 FOR READ.STP.STR.W=0 TO STP.STR.MAX 11260 READ STP.STR$(READ.STP.STR.W) 11270 IF STP.STR$(READ.STP.STR.W)="???" THEN READ.STP.STR.W=STP.STR.MAX+1 11280 NEXT 11290 DATA "5","10","12.5","15","20","25","50","100","9","???" 11300 STP.STR.DEF=0 11310 RETURN 11320 ' 11330 *CMP.STP.STR 11340 CMP.STP.STR.N=-1 11350 FOR CMP.STP.STR.W=0 TO STP.STR.MAX 11360 IF STP.STR$(CMP.STP.STR.W)=CMP.STP.STR.S$ THEN CMP.STP.STR.N=CMP.STP.STR.W:CMP.STP.STR.W=STP.STR.MAX+2 11370 NEXT 11380 RETURN 11390 ' 11400 ' 11410 *READ.SMP.STR 11420 SMP.STR.MAX=3 11430 DIM SMP.STR$(SMP.STR.MAX) 11440 FOR READ.SMP.STR.W=0 TO SMP.STR.MAX:SMP.STR$(READ.SMP.STR.W)="???":NEXT 11450 RESTORE *READ.SMP.STR 11460 FOR READ.SMP.STR.W=0 TO SMP.STR.MAX 11470 READ SMP.STR$(READ.SMP.STR.W) 11480 IF SMP.STR$(READ.SMP.STR.W)="???" THEN READ.SMP.STR.W=SMP.STR.MAX+1 11490 NEXT 11500 DATA "SIMP","-DUP","+DUP","TXRX","???" 11510 SMP.STR.DEF=0 11520 RETURN 11530 ' 11540 *CMP.SMP.STR 11550 CMP.SMP.STR.N=-1 11560 FOR CMP.SMP.STR.W=0 TO SMP.STR.MAX 11570 IF SMP.STR$(CMP.SMP.STR.W)=CMP.SMP.STR.S$ THEN CMP.SMP.STR.N=CMP.SMP.STR.W:CMP.SMP.STR.W=SMP.STR.MAX+2 11580 NEXT 11590 RETURN 11600 ' 11610 ' 11620 *READ.MDE.STR 11630 MDE.STR.MAX=3 11640 DIM MDE.STR$(MDE.STR.MAX) 11650 FOR READ.MDE.STR.W=0 TO MDE.STR.MAX:MDE.STR$(READ.MDE.STR.W)="???":NEXT 11660 RESTORE *READ.MDE.STR 11670 FOR READ.MDE.STR.W=0 TO MDE.STR.MAX 11680 READ MDE.STR$(READ.MDE.STR.W) 11690 IF MDE.STR$(READ.MDE.STR.W)="???" THEN READ.MDE.STR.W=MDE.STR.MAX+1 11700 NEXT 11710 DATA "N-FM","AM","W-FM","???" 11720 MDE.STR.DEF=0 11730 RETURN 11740 ' 11750 *CMP.MDE.STR 11760 CMP.MDE.STR.N=-1 11770 FOR CMP.MDE.STR.W=0 TO MDE.STR.MAX 11780 IF MDE.STR$(CMP.MDE.STR.W)=CMP.MDE.STR.S$ THEN CMP.MDE.STR.N=CMP.MDE.STR.W:CMP.MDE.STR.W=MDE.STR.MAX+2 11790 NEXT 11800 RETURN 11810 ' 11820 ' 11830 *READ.TON.STR 11840 TON.STR.MAX=255 11850 DIM TON.STR$(TON.STR.MAX) 11860 FOR READ.TON.STR.W=0 TO TON.STR.MAX:TON.STR$(READ.TON.STR.W)="???":NEXT 11870 RESTORE *READ.TON.STR 11880 FOR READ.TON.STR.W=0 TO TON.STR.MAX 11890 READ TON.STR$(READ.TON.STR.W) 11900 IF TON.STR$(READ.TON.STR.W)="???" THEN READ.TON.STR.W=TON.STR.MAX+1 11910 NEXT 11920 DATA "67.0","69.3","71.9","74.4","77.0","79.7","82.5","85.4","88.5","91.5" 11930 DATA "94.8","97.4","100.0","103.5","107.2","110.9","114.8","118.8","123.0","127.3" 11940 DATA "131.8","136.5","141.3","146.2","151.4","156.7","159.8","162.2","165.5","167.9" 11950 DATA "171.3","173.8","177.3","179.9","183.5","186.2","189.9","192.8","196.6","199.5" 11960 DATA "203.5","206.5","210.7","218.1","225.7","229.1","233.6","241.8","250.3","254.1" 11970 DATA "???" 11980 TON.STR.DEF=0 11990 RETURN 12000 ' 12010 *CMP.TON.STR 12020 CMP.TON.STR.N=-1 12030 FOR CMP.TON.STR.W=0 TO TON.STR.MAX 12040 IF TON.STR$(CMP.TON.STR.W)=CMP.TON.STR.S$ THEN CMP.TON.STR.N=CMP.TON.STR.W:CMP.TON.STR.W=TON.STR.MAX+2 12050 NEXT 12060 RETURN 12070 ' 12080 ' 12090 *READ.DCS.STR 12100 DCS.STR.MAX=255 12110 DIM DCS.STR$(DCS.STR.MAX) 12120 FOR READ.DCS.STR.W=0 TO DCS.STR.MAX:DCS.STR$(READ.DCS.STR.W)="???":NEXT 12130 RESTORE *READ.DCS.STR 12140 FOR READ.DCS.STR.W=0 TO DCS.STR.MAX 12150 READ DCS.STR$(READ.DCS.STR.W) 12160 IF DCS.STR$(READ.DCS.STR.W)="???" THEN READ.DCS.STR.W=DCS.STR.MAX+1 12170 NEXT 12180 DATA "023","025","026","031","032","036","043","047","051","053" 12190 DATA "054","065","071","072","073","074","114","115","116","122" 12200 DATA "125","131","132","134","143","145","152","155","156","162" 12210 DATA "165","172","174","205","212","223","225","226","243","244" 12220 DATA "245","246","251","252","255","261","263","265","266","271" 12230 DATA "274","306","311","315","325","331","332","343","346","351" 12240 DATA "356","364","365","371","411","412","413","423","431","432" 12250 DATA "445","446","452","454","455","462","464","465","466","503" 12260 DATA "506","516","523","526","532","546","565","606","612","624" 12270 DATA "627","631","632","654","662","664","703","712","723","731" 12280 DATA "732","734","743","754" 12290 DATA "???" 12300 DCS.STR.DEF=0 12310 RETURN 12320 ' 12330 *CMP.DCS.STR 12340 CMP.DCS.STR.N=-1 12350 FOR CMP.DCS.STR.W=0 TO DCS.STR.MAX 12360 IF DCS.STR$(CMP.DCS.STR.W)=CMP.DCS.STR.S$ THEN CMP.DCS.STR.N=CMP.DCS.STR.W:CMP.DCS.STR.W=DCS.STR.MAX+2 12370 NEXT 12380 RETURN 12390 ' 12400 ' 12410 *READ.SQL.STR 12420 SQL.STR.MAX=7 12430 DIM SQL.STR$(SQL.STR.MAX) 12440 FOR READ.SQL.STR.W=0 TO SQL.STR.MAX:SQL.STR$(READ.SQL.STR.W)="???":NEXT 12450 RESTORE *READ.SQL.STR 12460 FOR READ.SQL.STR.W=0 TO SQL.STR.MAX 12470 READ SQL.STR$(READ.SQL.STR.W) 12480 IF SQL.STR$(READ.SQL.STR.W)="???" THEN READ.SQL.STR.W=SQL.STR.MAX+1 12490 NEXT 12500 DATA "NONE","TONE","TSQL","DCS","???" 12510 SQL.STR.DEF=0 12520 RETURN 12530 ' 12540 *CMP.SQL.STR 12550 CMP.SQL.STR.N=-1 12560 FOR CMP.SQL.STR.W=0 TO SQL.STR.MAX 12570 IF SQL.STR$(CMP.SQL.STR.W)=CMP.SQL.STR.S$ THEN CMP.SQL.STR.N=CMP.SQL.STR.W:CMP.SQL.STR.W=SQL.STR.MAX+2 12580 NEXT 12590 RETURN 12600 ' 12610 ' 12620 *READ.SKP.STR 12630 SKP.STR.MAX=1 12640 DIM SKP.STR$(SKP.STR.MAX) 12650 FOR READ.SKP.STR.W=0 TO SKP.STR.MAX:SKP.STR$(READ.SKP.STR.W)="???":NEXT 12660 RESTORE *READ.SKP.STR 12670 FOR READ.SKP.STR.W=0 TO SKP.STR.MAX 12680 READ SKP.STR$(READ.SKP.STR.W) 12690 IF SKP.STR$(READ.SKP.STR.W)="???" THEN READ.SKP.STR.W=SKP.STR.MAX+1 12700 NEXT 12710 DATA "N","S","???" 12720 SKP.STR.DEF=0 12730 RETURN 12740 ' 12750 *CMP.SKP.STR 12760 CMP.SKP.STR.N=-1 12770 FOR CMP.SKP.STR.W=0 TO SKP.STR.MAX 12780 IF SKP.STR$(CMP.SKP.STR.W)=CMP.SKP.STR.S$ THEN CMP.SKP.STR.N=CMP.SKP.STR.W:CMP.SKP.STR.W=SKP.STR.MAX+2 12790 NEXT 12800 RETURN 12810 ' 12820 ' 12830 *READ.PRF.STR 12840 PRF.STR.MAX=1 12850 DIM PRF.STR$(PRF.STR.MAX) 12860 FOR READ.PRF.STR.W=0 TO PRF.STR.MAX:PRF.STR$(READ.PRF.STR.W)="???":NEXT 12870 RESTORE *READ.PRF.STR 12880 FOR READ.PRF.STR.W=0 TO PRF.STR.MAX 12890 READ PRF.STR$(READ.PRF.STR.W) 12900 IF PRF.STR$(READ.PRF.STR.W)="???" THEN READ.PRF.STR.W=PRF.STR.MAX+1 12910 NEXT 12920 DATA "N","P","???" 12930 PRF.STR.DEF=0 12940 RETURN 12950 ' 12960 *CMP.PRF.STR 12970 CMP.PRF.STR.N=-1 12980 FOR CMP.PRF.STR.W=0 TO PRF.STR.MAX 12990 IF PRF.STR$(CMP.PRF.STR.W)=CMP.PRF.STR.S$ THEN CMP.PRF.STR.N=CMP.PRF.STR.W:CMP.PRF.STR.W=PRF.STR.MAX+2 13000 NEXT 13010 RETURN 13020 ' 13030 ' 13040 *READ.TAG.STR 13050 TAG.STR.MAX=512 13060 DIM TAG.STR$(TAG.STR.MAX) 13070 FOR READ.TAG.STR.W=0 TO TAG.STR.MAX:TAG.STR$(READ.TAG.STR.W)="???":NEXT 13080 RESTORE *READ.TAG.STR 13090 FOR READ.TAG.STR.W=0 TO TAG.STR.MAX 13100 READ TAG.STR$(READ.TAG.STR.W) 13110 IF TAG.STR$(READ.TAG.STR.W)="???" THEN READ.TAG.STR.W=TAG.STR.MAX+1 13120 NEXT 13130 DATA "0","1","2","3","4","5","6","7","8","9"," ","A","B","C","D","E":'0 13140 DATA "F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U":'1 13150 DATA "V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k":'2 13160 DATA "l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",".":'3 13170 DATA ",",":",";","!","”","#","$","%","&","’","(",")","*","+","−","・":'4 13180 DATA "=","<",">","?","@","[","¥","]","^","_","\","{","|","}","→","←":'5 13190 DATA "▲","▼","〜","★","÷","×","√","λ","μ","π","φ","ω","Ω","℃","☆","£":'6 13200 DATA "±","∫","♪","●","♭","○","「","」","・","♂","♀","〒","あ","い","う","え":'7 13210 DATA "お","か","き","く","け","こ","さ","し","す","せ","そ","た","ち","つ","て","と":'8 13220 DATA "な","に","ぬ","ね","の","は","ひ","ふ","へ","ほ","ま","み","む","め","も","や":'9 13230 DATA "ゆ","よ","ら","り","る","れ","ろ","わ","を","ん"," "," ","が","ぎ","ぐ","げ":'A 13240 DATA "ご","ざ","じ","ず","ぜ","ぞ","だ","ぢ","づ","で","ど","ば","び","ぶ","べ","ぼ":'B 13250 DATA "ぱ","ぴ","ぷ","ぺ","ぽ","ぁ","ぃ","ぅ","ぇ","ぉ","ゃ","ゅ","ょ","っ","ア","イ":'C 13260 DATA "ウ","エ","オ","カ","キ","ク","ケ","コ","サ","シ","ス","セ","ソ","タ","チ","ツ":'D 13270 DATA "テ","ト","ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ","マ","ミ","ム","メ":'E 13280 DATA "モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ","ヲ","ン","ガ","ギ","グ","ゲ":'F 13290 DATA "ゴ","ザ","ジ","ズ","ゼ","ゾ","ダ","ヂ","ヅ","デ","ド","バ","ビ","ブ","ベ","ボ":'0 13300 DATA "パ","ピ","プ","ペ","ポ","ァ","ィ","ゥ","ェ","ォ","ャ","ュ","ョ","ッ","愛","圧":'1 13310 DATA "伊","位","井","育","一","茨","英","衛","越","円","遠","横","岡","沖","屋","温":'2 13320 DATA "音","化","歌","河","火","香","鹿","賀","海","柿","隔","学","潟","間","関","菅":'3 13330 DATA "岩","基","機","気","城","岐","急","救","九","京","教","橋","玉","禁","金","区":'4 13340 DATA "空","熊","栗","群","郡","形","警","月","県","原","言","限","庫","込","古","五":'5 13350 DATA "語","口","広","航","高","合","刻","国","黒","根","佐","災","埼","西","坂","崎":'6 13360 DATA "察","札","沢","澤","三","山","四","士","市","止","紙","滋","児","時","示","自":'7 13370 DATA "七","取","手","殊","酒","州","秋","集","十","重","書","小","消","上","新","森":'8 13380 DATA "神","水","制","青","静","石","設","仙","千","川","線","船","相","総","送","束":'9 13390 DATA "測","続","村","隊","台","大","第","滝","単","知","中","庁","朝","町","聴","長":'A 13400 DATA "鳥","定","鉄","天","田","電","戸","都","度","土","島","東","盗","藤","道","徳":'B 13410 DATA "特","読","栃","奈","縄","二","日","沼","濃","能","馬","売","舶","八","阪","飯":'C 13420 DATA "尾","媛","百","表","秒","浜","富","府","阜","武","部","幅","福","分","文","聞":'D 13430 DATA "兵","並","放","芳","防","北","幌","本","毎","万","宮","無","名","木","谷","野":'E 13440 DATA "葉","陽","絡","梨","良","林","鈴","連","路","六","和","〓","〓","〓","〓","〓":'F 13450 DATA "???" 13460 TAG.STR.DEF=0 13470 RETURN 13480 ' 13490 *CMP.TAG.STR 13500 CMP.TAG.STR.N=-1 13510 FOR CMP.TAG.STR.W=0 TO TAG.STR.MAX 13520 IF TAG.STR$(CMP.TAG.STR.W)=CMP.TAG.STR.S$ THEN CMP.TAG.STR.N=CMP.TAG.STR.W:CMP.TAG.STR.W=TAG.STR.MAX+2 13530 NEXT 13540 RETURN 13550 ' 13560 ' 13570 *SCAN.MG.LIST 13580 SCAN.MG.LIST.NO=-1 13590 FOR SCAN.MG.LIST.W0=1 TO 9 13600 FOR SCAN.MG.LIST.W1=0 TO 47 13610 IF FNMG.LIST(SCAN.MG.LIST.W0,SCAN.MG.LIST.W1)=SCAN.MG.LIST.NI-1 THEN SCAN.MG.LIST.NO=SCAN.MG.LIST.W0 13620 NEXT 13630 NEXT 13640 RETURN 13650 ' 13660 ' 13670 ' 13680 *GET.MEMORY.STR 13690 GET.MEMORY.STR.OFFSET=&H1322+22*(GET.MEMORY.STR.N-1) 13700 HDV.STR$=HDV.STR$(FNBIT.MASK(D(GET.MEMORY.STR.OFFSET),1,1)) 13710 PWR.STR$=PWR.STR$(FNBIT.MASK(D(GET.MEMORY.STR.OFFSET+1),7,2)) 13720 STP.STR$=STP.STR$(FNBIT.MASK(D(GET.MEMORY.STR.OFFSET+1),3,4)) 13730 SMP.STR$=SMP.STR$(FNBIT.MASK(D(GET.MEMORY.STR.OFFSET+1),5,2)) 13740 MDE.STR$=MDE.STR$(FNBIT.MASK(D(GET.MEMORY.STR.OFFSET+5),1,2)) 13750 TON.STR$=TON.STR$(FNBIT.MASK(D(GET.MEMORY.STR.OFFSET+18),7,8)) 13760 DCS.STR$=DCS.STR$(FNBIT.MASK(D(GET.MEMORY.STR.OFFSET+19),7,8)) 13770 SQL.STR$=SQL.STR$(FNBIT.MASK(D(GET.MEMORY.STR.OFFSET+20),1,2)) 13780 TAG.STR$="" 13790 FOR GET.MEMORY.STR.W=0 TO 7 13800 TAG.STR$=TAG.STR$+TAG.STR$(D(GET.MEMORY.STR.OFFSET+6+GET.MEMORY.STR.W)+256*FNBIT.MASK(D(GET.MEMORY.STR.OFFSET+21),GET.MEMORY.STR.W,1)) 13810 NEXT 13820 FRQ0.STR$=HEX.CHR$(D(GET.MEMORY.STR.OFFSET+2))+LEFT$(HEX.CHR$(D(GET.MEMORY.STR.OFFSET+3)),1)+"."+RIGHT$(HEX.CHR$(D(GET.MEMORY.STR.OFFSET+3)),1)+HEX.CHR$(D(GET.MEMORY.STR.OFFSET+4)) 13830 IF RIGHT$(FRQ0.STR$,1)="2" OR RIGHT$(FRQ0.STR$,1)="7" THEN FRQ0.STR$=FRQ0.STR$+"5" ELSE FRQ0.STR$=FRQ0.STR$+"0" 13840 FRQ1.STR$=HEX.CHR$(D(GET.MEMORY.STR.OFFSET+15))+LEFT$(HEX.CHR$(D(GET.MEMORY.STR.OFFSET+16)),1)+"."+RIGHT$(HEX.CHR$(D(GET.MEMORY.STR.OFFSET+16)),1)+HEX.CHR$(D(GET.MEMORY.STR.OFFSET+17)) 13850 IF RIGHT$(FRQ1.STR$,1)="2" OR RIGHT$(FRQ1.STR$,1)="7" THEN FRQ1.STR$=FRQ1.STR$+"5" ELSE FRQ1.STR$=FRQ1.STR$+"0" 13860 SKP.STR$=SKP.STR$(FNBIT.MASK(FNFLAG.LIST(GET.MEMORY.STR.N),3,1)) 13870 PRF.STR$=PRF.STR$(FNBIT.MASK(FNFLAG.LIST(GET.MEMORY.STR.N),2,1)) 13880 SCAN.MG.LIST.NI=GET.MEMORY.STR.N:GOSUB *SCAN.MG.LIST 13890 IF SCAN.MG.LIST.NO>0 THEN MGL.STR$=RIGHT$(STR$(SCAN.MG.LIST.NO),1) ELSE MGL.STR$="" 13900 MCH.STR$=RIGHT$(STR$(W),LEN(STR$(W))-1) 13910 MEMORY.STR$="" 13920 MEMORY.STR$=MEMORY.STR$+MCH.STR$+"," 13930 MEMORY.STR$=MEMORY.STR$+FRQ0.STR$+"," 13940 MEMORY.STR$=MEMORY.STR$+STP.STR$+"," 13950 MEMORY.STR$=MEMORY.STR$+TAG.STR$+"," 13960 MEMORY.STR$=MEMORY.STR$+MGL.STR$+"," 13970 MEMORY.STR$=MEMORY.STR$+SMP.STR$+"," 13980 MEMORY.STR$=MEMORY.STR$+FRQ1.STR$+"," 13990 MEMORY.STR$=MEMORY.STR$+MDE.STR$+"," 14000 MEMORY.STR$=MEMORY.STR$+SQL.STR$+"," 14010 MEMORY.STR$=MEMORY.STR$+TON.STR$+"," 14020 MEMORY.STR$=MEMORY.STR$+DCS.STR$+"," 14030 MEMORY.STR$=MEMORY.STR$+PWR.STR$+"," 14040 MEMORY.STR$=MEMORY.STR$+HDV.STR$+"," 14050 MEMORY.STR$=MEMORY.STR$+SKP.STR$+"," 14060 MEMORY.STR$=MEMORY.STR$+PRF.STR$ 14070 ' 14080 RETURN 14090 ' 14100 ' 14110 ' 14120 *WAIT.TYPE.COMMAND 14130 IF INKEY$<>"" THEN GOTO *WAIT.TYPE.COMMAND 14140 *WAIT.TYPE.COMMAND.1000 14150 WAIT.TYPE.COMMAND.C$=INKEY$ 14160 IF WAIT.TYPE.COMMAND.C$="" THEN GOTO *WAIT.TYPE.COMMAND.1000 14170 IF INSTR(WAIT.TYPE.COMMAND.S$,WAIT.TYPE.COMMAND.C$)<>0 THEN RETURN 14180 GOTO *WAIT.TYPE.COMMAND.1000 14190 ' 14200 ' 14210 *FINISH 14220 CLOSE 14230 PRINT:PRINT 14240 IF ERROR.CODE=0 THEN COLOR 7 ELSE COLOR 2 14250 PRINT ERROR.MES$(ERROR.CODE) 14260 COLOR 7 14270 END 14280 ' 14290 *MAIN 14300 GOSUB *READ.HEX.CHR 14310 GOSUB *INIT.ERROR.MES 14320 GOSUB *INIT.DATA.TABLE 14330 GOSUB *READ.HDV.STR 14340 GOSUB *READ.PWR.STR 14350 GOSUB *READ.STP.STR 14360 GOSUB *READ.SMP.STR 14370 GOSUB *READ.MDE.STR 14380 GOSUB *READ.TON.STR 14390 GOSUB *READ.DCS.STR 14400 GOSUB *READ.SQL.STR 14410 GOSUB *READ.TAG.STR 14420 GOSUB *READ.SKP.STR 14430 GOSUB *READ.PRF.STR 14440 DEF FNBIT.MASK(A,B,C)=(A \ 2^(B+1-C)) AND ((2^C)-1) 14450 DEF FNMG.LIST(A,B)=(D(&HEA2+(A-1)*96+B*2) AND &H7F)*256+D(&HEA2+(A-1)*96+B*2+1) 14460 DEF FNFLAG.LIST(A)=((D(&H1202+(A-1)\2)\16) AND &HF)*(1+((A-1) MOD 2=0))+((D(&H1202+(A-1)\2)\1) AND &HF)*(1+((A-1) MOD 2=1)) 14470 ' 14480 ' 14490 ' 14500 PRINT "処理を選択してください" 14510 PRINT 14520 PRINT "0:クローンデータ から メモリーデータ(テキスト) に変換" 14530 PRINT 14540 PRINT "1:メモリーデータ(テキスト) から クローンデータ に変換" 14550 PRINT 14560 WAIT.TYPE.COMMAND.S$="01":GOSUB *WAIT.TYPE.COMMAND 14570 IF WAIT.TYPE.COMMAND.C$="0" THEN GOTO *MAIN.5000 ELSE GOTO *MAIN.6000 14580 ' 14590 ' 14600 '0:クローンデータ→テキスト 14610 *MAIN.5000 14620 LINE INPUT "クローンデータ(入力)ファイル:",IN.FILE$ 14630 OPEN IN.FILE$ FOR INPUT AS #1 14640 GOSUB *READ.DATA.TABLE 14650 CLOSE #1 14660 PRINT 14670 IF READ.DATA.TABLE.ERR<>0 THEN ERROR.CODE=READ.DATA.TABLE.ERR:GOTO *FINISH 14671 LINE INPUT "メモリーデータ(出力)ファイル:",OUT.FILE$ 14680 OPEN OUT.FILE$ FOR OUTPUT AS #2 14690 GOSUB *MAIN.7050:GOSUB *MAIN.7000:O$=MEMORY.STR$ 14700 PRINT O$ 14710 PRINT #2,O$ 14720 FOR W=1 TO 500 14730 IF (FNFLAG.LIST(W) AND 3)<>3 THEN GOTO *MAIN.5700 14740 GET.MEMORY.STR.N=W 14750 GOSUB *GET.MEMORY.STR 14760 O$=MEMORY.STR$ 14770 PRINT O$ 14780 PRINT #2,O$ 14790 *MAIN.5700 14800 NEXT 14810 ERROR.CODE=0:GOTO *FINISH 14820 ' 14830 ' 14840 '1:テキスト→クローンデータ 14850 *MAIN.6000 14860 LINE INPUT "テンプレート用クローンデータファイル:",IN.FILE$ 14870 OPEN IN.FILE$ FOR INPUT AS #1 14880 GOSUB *READ.DATA.TABLE 14890 CLOSE #1 14900 PRINT 14910 IF READ.DATA.TABLE.ERR<>0 THEN ERROR.CODE=READ.DATA.TABLE.ERR:GOTO *FINISH4930 FOR MAIN.W=&H1322 TO &H3E19:D(MAIN.W)=&HFF:NEXT:'メモリーデータ本体 14920 FOR MAIN.W=&H1202 TO &H12FB:D(MAIN.W)=&H0:NEXT:'有効性フラグ 14930 FOR MAIN.W=&H742 TO &H753:D(MAIN.W)=&HFF:NEXT:'MG所属メモリ数 14940 FOR MAIN.W=&HEA2 TO &H1201:D(MAIN.W)=&HFF:NEXT:'MG所属メモリ 14950 OPEN "ERRVX7.TXT" FOR OUTPUT AS #2 14960 ' 14970 LINE INPUT "メモリーデータ(入力)ファイル:",IN.FILE$ 14980 OPEN IN.FILE$ FOR INPUT AS #1 14990 RESTORE *MAIN.6900:GOSUB *READ.ERROR.MES 15000 F.ERROR=0 15010 DIM MG(9) 15020 GOSUB *MAIN.7050:MCH.STRX$=MCH.STR$ 15030 *MAIN.6010 15040 IF EOF(1) THEN GOTO *MAIN.6800 15050 INPUT #1,MCH.STR$,FRQ0.STR$,STP.STR$,TAG.STR$,MGL.STR$,SMP.STR$,FRQ1.STR$,MDE.STR$,SQL.STR$,TON.STR$,DCS.STR$,PWR.STR$,HDV.STR$,SKP.STR$,PRF.STR$ 15060 IF MCH.STR$=MCH.STRX$ THEN GOTO *MAIN.6010 15070 IF FRQ0.STR$="" THEN GOTO *MAIN.6010 15080 GOSUB *MAIN.7000 15090 ' 15100 PRINT MEMORY.STR$ 15110 PRINT #2,MEMORY.STR$ 15120 MCH=VAL(MCH.STR$) 15130 IF MCH<1 OR MCH>500 THEN ERROR.CODE=157:GOSUB *MAIN.6600:MCH=1 15140 MEMORY.STR.OFFSET=&H1322+22*(MCH-1) 15150 ' 15160 CMP.STP.STR.S$=STP.STR$:GOSUB *CMP.STP.STR 15170 IF CMP.STP.STR.N<0 THEN CMP.STP.STR.N=STP.STR.DEF:ERROR.CODE=102:GOSUB *MAIN.6600 15180 D(MEMORY.STR.OFFSET+1)=(D(MEMORY.STR.OFFSET+1) AND &H0) OR ((CMP.STP.STR.N*&H1) AND &HF) 15190 ' 15200 ' 15210 CMP.SMP.STR.S$=SMP.STR$:GOSUB *CMP.SMP.STR 15220 IF CMP.SMP.STR.N<0 THEN CMP.SMP.STR.N=SMP.STR.DEF:ERROR.CODE=103:GOSUB *MAIN.6600 15230 D(MEMORY.STR.OFFSET+1)=(D(MEMORY.STR.OFFSET+1) AND &HFF) OR ((CMP.SMP.STR.N*&H10) AND &H30) 15240 ' 15250 ' 15260 CMP.PWR.STR.S$=PWR.STR$:GOSUB *CMP.PWR.STR 15270 IF CMP.PWR.STR.N<0 THEN CMP.PWR.STR.N=PWR.STR.DEF:ERROR.CODE=104:GOSUB *MAIN.6600 15280 D(MEMORY.STR.OFFSET+1)=(D(MEMORY.STR.OFFSET+1) AND &HFF) OR ((CMP.PWR.STR.N*&H40) AND &HC0) 15290 ' 15300 ' 15310 CMP.MDE.STR.S$=MDE.STR$:GOSUB *CMP.MDE.STR 15320 IF CMP.MDE.STR.N<0 THEN CMP.MDE.STR.N=MDE.STR.DEF:ERROR.CODE=105:GOSUB *MAIN.6600 15330 D(MEMORY.STR.OFFSET+5)=(D(MEMORY.STR.OFFSET+5) AND &H0) OR ((CMP.MDE.STR.N*&H1) AND &H3) 15340 ' 15350 ' 15360 CMP.TON.STR.S$=TON.STR$:GOSUB *CMP.TON.STR 15370 IF CMP.TON.STR.N<0 THEN CMP.TON.STR.N=TON.STR.DEF:ERROR.CODE=106:GOSUB *MAIN.6600 15380 D(MEMORY.STR.OFFSET+18)=(D(MEMORY.STR.OFFSET+18) AND &H0) OR ((CMP.TON.STR.N*&H1) AND &HFF) 15390 ' 15400 ' 15410 CMP.DCS.STR.S$=DCS.STR$:GOSUB *CMP.DCS.STR 15420 IF CMP.DCS.STR.N<0 THEN CMP.DCS.STR.N=DCS.STR.DEF:ERROR.CODE=107:GOSUB *MAIN.6600 15430 D(MEMORY.STR.OFFSET+19)=(D(MEMORY.STR.OFFSET+19) AND &H0) OR ((CMP.DCS.STR.N*&H1) AND &HFF) 15440 ' 15450 ' 15460 CMP.SQL.STR.S$=SQL.STR$:GOSUB *CMP.SQL.STR 15470 IF CMP.SQL.STR.N<0 THEN CMP.SQL.STR.N=SQL.STR.DEF:ERROR.CODE=108:GOSUB *MAIN.6600 15480 D(MEMORY.STR.OFFSET+20)=(D(MEMORY.STR.OFFSET+20) AND &H0) OR ((CMP.SQL.STR.N*&H1) AND &H3) 15490 ' 15500 ' 15510 CMP.HDV.STR.S$=HDV.STR$:GOSUB *CMP.HDV.STR 15520 IF CMP.HDV.STR.N<0 THEN CMP.HDV.STR.N=HDV.STR.DEF:ERROR.CODE=109:GOSUB *MAIN.6600 15530 D(MEMORY.STR.OFFSET)=(D(MEMORY.STR.OFFSET) AND &H0) OR ((CMP.HDV.STR.N*&H2) AND &H2) 15540 ' 15550 ' 15560 D(MEMORY.STR.OFFSET+21)=0 15570 TAG.STR$=TAG.STR$+"        " 15580 FOR MAIN.W=0 TO 7 15590 CMP.TAG.STR.S$=MID$(TAG.STR$,1+MAIN.W*2,2):GOSUB *CMP.TAG.STR 15600 IF CMP.TAG.STR.N<0 THEN ERROR.CODE=150:GOSUB *MAIN.6600 15610 D(MEMORY.STR.OFFSET+6+MAIN.W)=CMP.TAG.STR.N MOD 256 15620 D(MEMORY.STR.OFFSET+21)=D(MEMORY.STR.OFFSET+21)\2 OR ((CMP.TAG.STR.N \ 256)*&H80) 15630 NEXT 15640 ' 15650 MAIN.W13$=FRQ0.STR$:GOSUB *MAIN.6950 15660 IF ERROR.CODE<>0 THEN GOSUB *MAIN.6600 15670 D(MEMORY.STR.OFFSET+4)=MAIN.W102 15680 D(MEMORY.STR.OFFSET+3)=MAIN.W101 15690 D(MEMORY.STR.OFFSET+2)=MAIN.W100 15700 GOSUB *MAIN.7100 15710 IF (CMP.BND.STR.N=0) AND (CMP.STP.STR.N=1 OR CMP.STP.STR.N=8) THEN GOTO *MAIN.6070 15720 IF (CMP.BND.STR.N>0 AND CMP.BND.STR.N<11) AND (CMP.STP.STR.N<8) THEN GOTO *MAIN.6070 15730 IF (CMP.BND.STR.N=11) AND (CMP.STP.STR.N=1 OR CMP.STP.STR.N=2 OR CMP.STP.STR.N=4 OR CMP.STP.STR.N=5 OR CMP.STP.STR.N=6 OR CMP.STP.STR.N=7) THEN GOTO *MAIN.6070 15740 ERROR.CODE=156:GOSUB *MAIN.6600:GOTO *MAIN.6080 15750 *MAIN.6070 15760 IF CMP.BND.STR.N<0 THEN ERROR.CODE=155:GOSUB *MAIN.6600:GOTO *MAIN.6080 15770 IF (CMP.STP.STR.N=0) AND ((MAIN.FL MOD 50)<>0) THEN ERROR.CODE=154:GOSUB *MAIN.6600 15780 IF (CMP.STP.STR.N=1) AND ((MAIN.FL MOD 50)<>0) THEN ERROR.CODE=154:GOSUB *MAIN.6600 15790 IF (CMP.STP.STR.N=2) AND ((MAIN.FL MOD 125)<>0) THEN ERROR.CODE=154:GOSUB *MAIN.6600 15800 IF (CMP.STP.STR.N=3) AND ((MAIN.FL MOD 50)<>0) THEN ERROR.CODE=154:GOSUB *MAIN.6600 15810 IF (CMP.STP.STR.N=4) AND ((MAIN.FL MOD 100)<>0) THEN ERROR.CODE=154:GOSUB *MAIN.6600 15820 IF (CMP.STP.STR.N=5) AND ((MAIN.FL MOD 125)<>0) THEN ERROR.CODE=154:GOSUB *MAIN.6600 15830 IF (CMP.STP.STR.N=6) AND ((MAIN.FL MOD 250)<>0) THEN ERROR.CODE=154:GOSUB *MAIN.6600 15840 IF (CMP.STP.STR.N=7) AND ((MAIN.FL MOD 500)<>0) THEN ERROR.CODE=154:GOSUB *MAIN.6600 15850 IF (CMP.STP.STR.N=8) AND ((((MAIN.FH MOD 10)*1000+MAIN.FL/10) MOD 9)<>0) THEN ERROR.CODE=154:GOSUB *MAIN.6600 15860 ' 15870 *MAIN.6080 15880 MAIN.W13$=FRQ1.STR$:GOSUB *MAIN.6950 15890 IF ERROR.CODE<>0 THEN GOSUB *MAIN.6600 15900 D(MEMORY.STR.OFFSET+17)=MAIN.W102 15910 D(MEMORY.STR.OFFSET+16)=MAIN.W101 15920 D(MEMORY.STR.OFFSET+15)=MAIN.W100 15930 ' 15940 D(MEMORY.STR.OFFSET+5)=D(MEMORY.STR.OFFSET+5) OR &H30 15950 D(MEMORY.STR.OFFSET+14)=&H0 15960 IF (CMP.STP.STR.N=2) OR (CMP.STP.STR.N=5) OR (CMP.STP.STR.N=7) OR (CMP.STP.STR.N=7) THEN D(MEMORY.STR.OFFSET)=D(MEMORY.STR.OFFSET) OR 5 15970 IF (CMP.STP.STR.N=8) THEN D(MEMORY.STR.OFFSET)=D(MEMORY.STR.OFFSET) OR 2 15980 ' 15990 CMP.SKP.STR.S$=SKP.STR$:GOSUB *CMP.SKP.STR 16000 IF CMP.SKP.STR.N<0 THEN CMP.SKP.STR.N=SKP.STR.DEF:ERROR.CODE=112:GOSUB *MAIN.6600 16010 ' 16020 CMP.PRF.STR.S$=PRF.STR$:GOSUB *CMP.PRF.STR 16030 IF CMP.PRF.STR.N<0 THEN CMP.PRF.STR.N=PRF.STR.DEF:ERROR.CODE=113:GOSUB *MAIN.6600 16040 IF CMP.PRF.STR.N=1 AND CMP.SKP.STR.N=1 THEN ERROR.CODE=111:GOSUB *MAIN.6600:CMP.PRF.STR.N=0:CMP.SKP.STR.N=0 16050 MAIN.W1=(CMP.SKP.STR.N*4+CMP.PRF.STR.N*8+3) AND &HF 16060 IF MCH MOD 2=0 THEN MAIN.W1=MAIN.W1*16 16070 D(&H1202+(MCH-1)\2)=D(&H1202+(MCH-1)\2) OR MAIN.W1 16080 IF MGL.STR$="" THEN GOTO *MAIN.6099 16090 MGL.STR=VAL(MGL.STR$):IF MGL.STR<1 OR MGL.STR>9 THEN ERROR.CODE=110:GOSUB *MAIN.6600:GOTO *MAIN.6099 16100 IF MG(MGL.STR)>47 THEN ERROR.CODE=153:GOSUB *MAIN.6600:GOTO *MAIN.6099 16110 D(&HEA2+(MGL.STR-1)*96+MG(MGL.STR)*2)=(MCH-1) \ 256 16120 D(&HEA2+(MGL.STR-1)*96+MG(MGL.STR)*2+1)=(MCH-1) MOD 256 16130 MG(MGL.STR)=MG(MGL.STR)+1 16140 *MAIN.6099 16150 GOTO *MAIN.6010 16160 ' 16170 *MAIN.6600 16180 PRINT ERROR.MES$(ERROR.CODE) 16190 PRINT #2,ERROR.MES$(ERROR.CODE) 16200 IF ERROR.CODE=>150 THEN F.ERROR=1 16210 RETURN 16220 *MAIN.6700 16230 PRINT #2,ERROR.MES$(ERROR.CODE) 16240 GOTO *FINISH 16250 *MAIN.6800 16260 FOR MAIN.W=1 TO 9 16270 IF MG(MAIN.W)<=0 THEN GOTO *MAIN.6810 16280 D(&H742+(MAIN.W-1)*2)=0 16290 D(&H742+(MAIN.W-1)*2+1)=MG(MAIN.W)-1 16300 D(&H5BA)=0:D(&H63A)=0 16310 D(&H5BB)=MAIN.W-1:D(&H63B)=MAIN.W-1 16320 *MAIN.6810 16330 NEXT 16340 MAIN.W0=0:MAIN.W1=0 16350 FOR MAIN.W=0 TO &H7F 16360 MAIN.W0=(MAIN.W0+D(&H592+MAIN.W)) MOD 256 16370 MAIN.W1=(MAIN.W1+D(&H612+MAIN.W)) MOD 256 16380 NEXT 16390 D(&H611)=MAIN.W0 16400 D(&H691)=MAIN.W1 16410 MAIN.W0=0 16420 FOR MAIN.W=0 TO &H3F51 16430 MAIN.W0=(MAIN.W0+D(MAIN.W)) MOD 256 16440 NEXT 16450 D(&H3F52)=MAIN.W0 16460 IF F.ERROR<>0 THEN ERROR.CODE=152:GOTO *FINISH 16470 LINE INPUT "クローンデータ(出力)ファイル:",OUT.FILE$ 16480 OPEN OUT.FILE$ FOR OUTPUT AS #3 16490 FOR RR=0 TO &H3F52 16500 PRINT #3,HEX.CHR$(RR \ 256)+HEX.CHR$(RR MOD 256)+" : "+HEX.CHR$(D(RR)) 16510 NEXT 16520 ERROR.CODE=0:GOTO *FINISH 16530 ' 16540 *MAIN.6900 16550 DATA 102,"*** ステップの指定に不正があり、デフォルトに置換しました。(102) ***" 16560 DATA 103,"*** 単/複の指定に不正があり、デフォルトに置換しました。(103) ***" 16570 DATA 104,"*** パワーの指定に不正があり、デフォルトに置換しました。(104) ***" 16580 DATA 105,"*** モードの指定に不正があり、デフォルトに置換しました。(105) ***" 16590 DATA 106,"*** トーンの指定に不正があり、デフォルトに置換しました。(106) ***" 16600 DATA 107,"*** DCSの指定に不正があり、デフォルトに置換しました。(107) ***" 16610 DATA 108,"*** スケルチの指定に不正があり、デフォルトに置換しました。(108) ***" 16620 DATA 109,"*** HDVの指定に不正があり、デフォルトに置換しました。(109) ***" 16630 DATA 110, "*** メモリーグループの指定に不正があり、無視しました。(110) ***" 16640 DATA 111, "*** スキップと特殊を同時指定できないので、双方ともOFFにしました。(111) ***" 16650 DATA 112,"*** スキップの指定に不正があり、デフォルトに置換しました。(112) ***" 16660 DATA 113,"*** 特殊の指定に不正があり、デフォルトに置換しました。(113) ***" 16670 DATA 150,"*** 指定されたタグ文字列の中に使用できない文字があります。(150) ***" 16680 DATA 151,"*** 周波数の指定に不正があります。(151) ***" 16690 DATA 152,"*** 致命的なエラーがありました。(152) ***" 16700 DATA 153,"*** メモリグループの数が多すぎます。(153) ***" 16710 DATA 154,"*** ステップと周波数の間に整合性がありません。(154) ***" 16720 DATA 155,"*** 指定された周波数は、VX−7の受信範囲外です。(155) ***" 16730 DATA 156,"*** ステップとバンドの間に整合性がありません。(156) ***" 16740 DATA 157,"*** メモリ番号が不正です。(157) ***" 16750 DATA -1,"" 16760 *MAIN.6950 16770 MAIN.W12$="000"+MAIN.W13$+"0000" 16780 MAIN.W10=LEN(MAIN.W12$) 16790 MAIN.W11=INSTR(1,MAIN.W12$,".") 16800 IF MAIN.W11=0 THEN MAIN.W11=LEN("000"+MAIN.W13$) 16810 IF MAIN.W11<=3 THEN MAIN.W11=4 16820 MAIN.FH$=MID$(MAIN.W12$,MAIN.W11-3,3) 16830 MAIN.FL$=MID$(MAIN.W12$,MAIN.W11+1,3) 16840 MAIN.FLX$=MID$(MAIN.W12$,MAIN.W11+1,4) 16850 'color 4:PRINT MAIN.FH$,MAIN.FL$,MAIN.FLX$:color 7 16860 MAIN.FH=VAL(MAIN.FH$) 16870 MAIN.FL=VAL(MAIN.FLX$) 16880 MAIN.W100$=MID$(MAIN.FH$+MAIN.FL$,1,2):MAIN.W100=VAL("&H"+MAIN.W100$) 16890 MAIN.W101$=MID$(MAIN.FH$+MAIN.FL$,3,2):MAIN.W101=VAL("&H"+MAIN.W101$) 16900 MAIN.W102$=MID$(MAIN.FH$+MAIN.FL$,5,2):MAIN.W102=VAL("&H"+MAIN.W102$) 16910 IF HEX.CHR$(MAIN.W100)<>MAIN.W100$ THEN ERROR.CODE=151:RETURN 16920 IF HEX.CHR$(MAIN.W101)<>MAIN.W101$ THEN ERROR.CODE=151:RETURN 16930 IF HEX.CHR$(MAIN.W102)<>MAIN.W102$ THEN ERROR.CODE=151:RETURN 16940 ERROR.CODE=0:RETURN 16950 ' 16960 ' 16970 *MAIN.7000 16980 MEMORY.STR$="" 16990 MEMORY.STR$=MEMORY.STR$+MCH.STR$+"," 17000 MEMORY.STR$=MEMORY.STR$+FRQ0.STR$+"," 17010 MEMORY.STR$=MEMORY.STR$+STP.STR$+"," 17020 MEMORY.STR$=MEMORY.STR$+TAG.STR$+"," 17030 MEMORY.STR$=MEMORY.STR$+MGL.STR$+"," 17040 MEMORY.STR$=MEMORY.STR$+SMP.STR$+"," 17050 MEMORY.STR$=MEMORY.STR$+FRQ1.STR$+"," 17060 MEMORY.STR$=MEMORY.STR$+MDE.STR$+"," 17070 MEMORY.STR$=MEMORY.STR$+SQL.STR$+"," 17080 MEMORY.STR$=MEMORY.STR$+TON.STR$+"," 17090 MEMORY.STR$=MEMORY.STR$+DCS.STR$+"," 17100 MEMORY.STR$=MEMORY.STR$+PWR.STR$+"," 17110 MEMORY.STR$=MEMORY.STR$+HDV.STR$+"," 17120 MEMORY.STR$=MEMORY.STR$+SKP.STR$+"," 17130 MEMORY.STR$=MEMORY.STR$+PRF.STR$ 17140 RETURN 17150 ' 17160 *MAIN.7050 17170 MCH.STR$="メモリ番号" 17180 FRQ0.STR$="周波数" 17190 STP.STR$="ステップ" 17200 TAG.STR$="タグ" 17210 MGL.STR$="MG" 17220 SMP.STR$="単/複" 17230 FRQ1.STR$="周波数’" 17240 MDE.STR$="モード" 17250 SQL.STR$="スケルチ" 17260 TON.STR$="トーン" 17270 DCS.STR$="DCS" 17280 PWR.STR$="出力" 17290 HDV.STR$="変調度" 17300 SKP.STR$="スキップ" 17310 PRF.STR$="特殊" 17320 RETURN 17330 ' 17340 *MAIN.7100 17350 CMP.BND.STR.N=-1 17360 IF (MAIN.FH=0) AND (MAIN.FL<5040) THEN RETURN 17370 IF MAIN.FH=0 THEN CMP.BND.STR.N=0:RETURN 17380 IF (MAIN.FH=1) AND (MAIN.FL<8000) THEN CMP.BND.STR.N=0:RETURN 17390 IF MAIN.FH<30 THEN CMP.BND.STR.N=1:RETURN 17400 IF MAIN.FH<76 THEN CMP.BND.STR.N=5:RETURN 17410 IF MAIN.FH<88 THEN CMP.BND.STR.N=3:RETURN 17420 IF MAIN.FH<108 THEN CMP.BND.STR.N=4:RETURN 17430 IF MAIN.FH<137 THEN CMP.BND.STR.N=9:RETURN 17440 IF MAIN.FH<174 THEN CMP.BND.STR.N=6:RETURN 17450 IF MAIN.FH<222 THEN CMP.BND.STR.N=4:RETURN 17460 IF MAIN.FH<420 THEN CMP.BND.STR.N=10:RETURN 17470 IF MAIN.FH<470 THEN CMP.BND.STR.N=8:RETURN 17480 IF MAIN.FH<770 THEN CMP.BND.STR.N=4:RETURN 17490 IF MAIN.FH<999 THEN CMP.BND.STR.N=11:RETURN 17500 RETURN