2019年5月17日投稿 / 2020年4月12日更新 / 投稿者 : Na / タグ : 投稿プログラム 実用ツール
プチコンmkII用のプログラムやグラフィックなどを3号用に変換します。
(すべてのプログラムが動くわけではありませんが)
mkIIのプログラムやリソースをPetitModemなどでPCから転送して使用できます。
ver4.0で初代プチコンのプログラムに対応しました。
+ | 長いです |
「-MKIICVT」で各ファイルに行われる処理です 1.ファイルをIN$に読み込む 2.パッケージリソースがないか確認 3.CHR$(10)で(1行ごとに)区切ってL$に入れる 同様に各行について4.~12.を行う 4.濁点、半濁点を「た」「は」に置き換え 5.'またはREM以降を削除 6.文字列内とDATA以降すべてについて、1文字ごとにCHR$(1)を挿入 (変数や命令のチェックに引っかからないようにするため) 7.:をスペースに置き換え 8.?をPRINTに置き換え 9.行頭がラベルの場合、そのラベルより後を削除 10.mkIIの命令(@SYSCMD2に一覧が入っている)を探し、見つけたらその前に:を挿入 このとき前後の文字を調べ、それが命令であることを確認(INSTRR関数とREPCHK関数) ただしON,IFの後のGOTO,GOSUBの前には:を入れない(前にCHR$(1)を入れてチェックを回避) 11.FOR文以外で=(==や!=などではない)を見つけたら、その前にある変数を探し、その前に:を追加(変数への代入文) 12.:で区切って、それぞれに対してSCNV$関数(以下13.~34.)を実行 SCNV$関数 13.:で区切られた各文をS$とする 14.S$の最初にある命令を取り出しSCMD$とする 15.3号の予約語(@SYSRSV3に一覧がある)があれば、その前に_N_を挿入 16.AND,OR,XOR,NOTをCHR$(2~5)に置き換え 17.(または[を探し、その前に関数や命令でないものがあれば、それは配列変数であるので、 _A_を前に挿入(mkIIでは同名の変数が使えるが、3号では使えないので別名にする) AVAR$に変数名を追加 AVARDにその変数の次元を入れる (とそれに対応する)を[ ]に置き換え 18.DIM 配列[数] → REDIM ”_A_配列”,数,0 DIM 配列[数,数] → REDIM ”_A_配列”,数,数 に置き換え 19.SORT,RSORTの配列も_A_を追加 20.=の前、INPUT、~READにある変数をNVAR$に追加 (どの変数も必ず上のどれかで定義されるはずなので) 21.PRINTの場合 PRINT2 文字列or数値,フラグという書式にする (フラグ=0→改行、1→続ける(;)、2→タブ(,)) ただしPRINTは後でPRINT2に置き換えられるのでここではPRINTのままにする ,を,2:PRINTに置き換え ;を,1:PRINTに置き換え PRINTの後に何も書かれていない場合は””を追加 閉じていない文字列は閉じ、最後が,や;でなかった場合は最後に,0を追加 文字列、英数字、かっこが並べて書かれている場合は;の省略と考え,1:PRINTを追加 (関数の一部など例外あり) 22.AND,OR,XORについて、その前後を調べ、mkIIの演算順序(3号と異なる)に基づいて( )を挿入 23.%について、mkIIの演算順序に基づいてMOD2(数値,数値)にする 24.CHR$(2~5)をAND,OR,XOR,NOTに置き換え 25.DATAについて、 ””で囲まれた文字列はそのままにする 数値は””で囲む それ以外は”を別の文字(CHR$(12317))に置き換え、””で囲む (READS(READから置き換えられる)内でCHR$(12317)が”に戻される) 26.ON文の最後が,で終わっていたら削除 27.READ文について、数値の読み込みはREADV OUT、文字列はREADS OUTに置き換え 28.~READ系の命令の( )を外し、OUTを挿入 29.BGMSET,BGMPLAYの文字列をつなぐ,を+に置き換え 31.@ARGLISTにある命令について、引数が足りない場合は,を補い、省略された箇所には-524289を追加 (-524289はmkIIでは扱えない) 32.@ARGLIST2にある関数についても同様の処理を行う (ここでBUTTON,BTRIGの引数を1つ増やしているのはVSYNC自動挿入の処理で使用したためだが、現在は使われていない) 33.@REPLISTにある命令、関数を置き換える(置き換え後の命令は「-MKIILIB」にCOMMON DEFされている) 34.CHR$(1)をすべて削除 ここまでSCNV$関数 35.変換後の文をOUT$に書き出す 36.HD$にヘッダを書き込む NVAR$に入っているものを全部DEF CLEARと一緒に書き出す AVAR$に入っているものを全部要素数10でDIMする(mkIIでは未定義配列変数は要素数10の配列として扱われる) 37.末尾にDATA ”0”を追加(BGMSETDでのDATA 0忘れ対策) 38.スロット3に書き出し、SAVE |
動作しているところを撮影した写真や動画があれば貼り付けてください。
※ロゴは合成です
(写真は最新バージョンでない場合があります。)
プチコン3号用の公開キーです。トップメニューの「作品公開とダウンロード」から公開キーを入力すると、作品をダウンロードすることができます。
ver4.1.2
ver4.0
+ | 過去の更新履歴 |
ver3.2
ver3.1
ver3.0
ver2.3
ver2.2
ver2.1
ver2.0
ver1.4.1 変更点
ver1.4
ver1.3
ver1.2
ver1.1
ver1.0 |
※時々タイムスタンプを変更せずにページ更新しているため、いつのまにか追加されていることがあります
+ | 詳細 |
実行結果はすべてnew3DSのものです。
|
+ | 詳細 |
実行結果はすべてnew3DSのものです。
|
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)
バグ報告も受け付けています。
表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.316 秒 | このページの最終更新 : 2022/09/20 (火) 12:48:51 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30