トピック

プチコン上で作るプチコンエディタの起動シーケンス案

「プチコン上で動くプチコンの高性能エディタ」について、ちゃんと作るとすると、起動が一番悩みどころなのかなーと思ったので、何か良いアイデアとか、使い勝手とかを聞いてみたいなーと。 ちゃんと起動できればPRGEDIT/PRGGET$系でなんとでもなりそうだし。 ※ほんとはちゃんといろいろさわってから立てた方が良さそうだったけど、ちょっと3号動かした結果とリファレンス一覧見てなので、実際やってみたらできるかもしれない? 本文じゃ長くて書けなかったので、以後コメントに。
5そうだね
プレイ済み
返信[1]
親投稿
とりあえず思いつく限りの手法とメリットデメリットを。 ・スマイルツールに登録して起動 使う側は楽、スマイルツールボタン誤タッチも回避できる。 スマイルツール呼び出し前のSLOTをちゃんと操作できるかが課題。 STARTで止められたらツール呼び出し前に戻るのでメモリデータが飛ぶかも? スマイルツール側で編集したSLOTにコードが残るなら、スマイルツールボタンがエディタ代わりに使えそう?
0そうだね
プレイ済み
返信[2]
親投稿
・エディタ.BASをSLOT 0に呼び出して実行→SLOT 1を対象にエディタ操作 エディタ上から実行しようとして USE 1 して実行すると SLOT1 は PRGEDITできなさそう(USE OFFみたいなの無さそう) エディタ上から編集コードを実行したら、STARTボタン/ENDでぬけて、またRUNすればよさそうかも?(STARTボタンで停止→STARTボタンでエディタ実行→エディタ上でRUN機能呼び出し) 編集するコードのメインループにエディタDEFを呼び出せばデバッグモードでassert やウォッチリストみないこともできそう
0そうだね
プレイ済み
返信[3]
親投稿
エディタの起動、編集SLOT、コード実行、コード実行後のエディタへの戻り がちゃんとできれば、あとはBASICコード上で文字列解析して好きなようにエディタが実装出来る感じかなーと。 命令テーブル作って一致するのを命令用の色で表示できるし、 ラベルも行番号とかタグジャンプできるし、 変数代入をみかけたら後ろのコメントを変数名の説明として別の変数使用場所で表示もできるし、 命令もわざわざ手打ちしなくても命令リストから選ぶだけでできそうだし、 キーボードも時前で全部作れちゃうし。
0そうだね
プレイ済み
返信[4]
親投稿
※時前→自前 エディタコード自体は DEF MAINあたりで全部くくっちゃえば名前空間の汚染もしなさそうだし。 コンソール画面だけしか使わなければ編集コード側でBGやSPRITEいじってても影響なさそうだし。 あれ、CHKVAR で変数名存在チェックはできるけど、変数の名前を文字列で渡して変数の値を取得ってなさげ?(VAR でできると思ったけどリファレンスになさそう?) BACKTRACEがDIRECTモード専用なので使おうとするならKEYでファンクションキー登録してなんやかんやが必要そう。 と、実機をさわらずにリファレンスを見ながら思いつくままにいろいろ書いてみた。
0そうだね
プレイ済み
返信[5]
親投稿
VAR関数は書いてないけど動く
3そうだね
プレイ済み
返信[6]
親投稿
れい rei-nntnd
今作ってる
2そうだね
プレイ済み
返信[7]
親投稿
myu314 myu314
BACKTRACEはDIRECTモードじゃ無くても動くけど、RUNした瞬間に前の記録消えるからDIRECTモード中に読むしか無いっていう。エラー情報含めて前のプログラム終了時点の情報残しておいてプログラムから取れるようにして欲しい……。 あとスマイルツールから起動すると、プロジェクトがスマイルツール側に変わってしまう当たりが面倒ポイントですかね。セーブロードやらないなら問題になりませんが。なんか環境変数的なものが欲しいなと今思っている所です。利便性考えるとファンクションキーに埋め込みかなぁ。 れいさん作ってるんですか!?楽しみです。 環境的なものにするんでしたっけ、仕様とか色々気になります。
1そうだね
プレイ済み
返信[8]
親投稿
れい rei-nntnd
たんじぇ氏と同じように俺も検討はしてみたんだが。 エディタなんで手軽に使えなきゃ意味ないので今のところ以下のような感じ。 SmileToolボタンに登録。 ボタンから起動したらSlot0を読み込む。 読み込みは遅いので読み込みつつ編集可能。 編集は内部メモリを更新するとともにSlotも更新。 スロット切り替えしたらまた別Slotから読み込む。 いまはここまでできてる。 で、作ってみた感じ問題だなってのが…
0そうだね
プレイ済み
返信[9]
親投稿
れい rei-nntnd
起動Slotがわからない。 SmileToolボタンを押した際のSlotがわからないので常に起動時にSlot0を読まざるを得ない点。これはちょっと寂しい。 PRGXXXが遅い。 RGEDIT/PRGINS/PRGDELがO(n)で遅すぎるのできつい。。 読み込みは裏で読み込めば気にならないんだけど、 更新するときはどうにもならなくて、複数行張り付けがうざい。 メモリ使用量。 メモリを結構食う。落ちるのを避けるために少し余裕を残しておきたいんだけど、 今のままだと12000行くらいで編集不可能になる。
0そうだね
プレイ済み
返信[10]
親投稿
れい rei-nntnd
まぁでも今一番つらいのがキーボード。 自分で作るとか… めんどくさすぎるしメモリが足りん。 あまりに面倒なので今はINPUT$使ってて INSとかDELとか特殊キーは記号のページを代わりに使ってる。 簡単なローマ字漢字変換もつけたいんだけどなぁ
0そうだね
プレイ済み
返信[11]
親投稿
れい rei-nntnd
現状。 PetitModemのソースを表示させたところ。 DEFと、型指定子付きの変数のハイライトがまあできてる。
0そうだね
プレイ済み
返信[12]
親投稿
れい rei-nntnd
PRGGET$が2回目以降呼び出すときにカレント行を進めてから読み込むことに今気づいた… バックグラウンドで読み込む処理いらなかった…
0そうだね
プレイ済み
返信[13]
親投稿
※忙しいときは土日仕事とか業界結構あるので気をつけよう! 確認したいことのほとんどは れいさんがやっていて、社長にもPRG系使い勝手微妙なのは伝わったっぽいので、今後のプチコンアップデートに期待。 命令と配列のアクセスの遅さは初期型3DSとNew3DSでどこまで違うのかもちょっと気になるけど、New3DSはDQ11までおあずけかなぁ。
0そうだね
プレイ済み
返信[14]
親投稿
New3DS手に入れたのでちょっとずつ再開中。 旧3DSとくらべて全然やるきがでる!(主に実行のスタートボタン位置) スマイルツール登録するとエラーメッセージからSLOT 4っぽいことはわかるけど、他のスロットではできるVAR("4:AAA")みたいな変数参照ができなかったけど、多分ちゃんとしたやりかたがありそう。(COMMON なんちゃらをまだ試してない) スマイルツールでエディタ起動→SLOT 0 編集→エディタ上でSLOT 0実行→SLOT 1にコードまるまるコピーして EXEC 1 → メインループで SLOT 4の EDITOR_DEBBUGER() 呼び出し、L+Rなどで実行中断 → メモリ見てステップ実行など、修正するなら SLOT 1に空コード読み込みして最初に戻る って流れが SLOT 4を呼び出せないとできなさそう。
0そうだね
プレイ済み
返信[15]
親投稿
ステップ実行じゃなくて次のデバッガ呼び出しまで実行かassertくらい。 プチコン上のエディタ起動シーケンスとしては、ひとまずスマイルツールからいろいろがんばれそうかもってのと(デバッガが実装できるかは微妙)、 ログもあるので、しばらくしたらトピックを閉じる方向で。
0そうだね
プレイ済み