太ペンや極太ペンを使用時には斜め方向に入力することでさらに少しだけ太くすることができます。なお、Aボタン、Bボタンは超極太ペンとして使用できます。広範囲の塗りつぶし用に使ってみてください。(超極太は若干処理落ちする)
消しゴム機能はキャンバスの色をスポイトで取得して描画することで可能です。(レイヤー機能はないので透明色を考慮する必要がない)
アンドゥは無いですが、ラクガキ絵専用と割り切れば問題ないでしょう。
タッチペンを使い自由自在にお絵描きができます。プチコンmkIIでも処理落ち無く快適に描くことができます。ペン(ブラシ)の太さは十字ボタンを押しながら描くことでワンタッチで瞬時に変更が可能です。(同一ストローク内での太さ変更も自由自在)
描画の色を変更したい場合はL ボタン(もしくはR ボタン)を押しながら好きな色をスポイトで取得すればOKです。
パレットの色を任意の色に変更したいという場合(パレットに無い色を使いたい場合)はX ボタンを押した後、6桁の16進数でRGBの指定をします。これによって、現在描画色がその指定色に変更となります。例えば、R=240、G=160、B=128の色ならばF0A080 と入力します。RGB各256段階の入力ができますが、プチコンmkIIの仕様上、Rは32諧調、Gは64諧調、Bは32諧調の合計65536色の範囲に丸められます。(これは32768色+透明色のプチコン3号よりも多い)
ちなみにプチコンmkIIはパレット発色であるため色を変えた場合はキャンバスで使用さているその色コードの色がすべて変更となります。例えばカラーでお絵描きをしていて線画を黒にしていた場合にそれを茶色に変更したらすでに描画済みの線画の色もすべて茶色に変更してくれるため非常に便利です。
セーブは一時ファイル"GRP1:_" への上書き保存を行います。これはファイル名を決める煩わしさがないため楽なのですが、上書きされては困る場合はRENAME "GRP:_"," (任意のファイル名) " としてあらかじめ変更しておくと良いでしょう。
このツールはブラシの太さをワンタッチで瞬時に変えられる というのが他のお絵描きツールにはない大きな特徴なのですが、それに加えてブラシの太さに連動したカーソル表示機能 も他のお絵描きツールにはない特徴となっています。
このブラシ連動のカーソルは消しゴム機能を使う場合(描いた絵を部分的に消す場合)に非常に有用で、大きな範囲を太いブラシで一気に消す場合もどの範囲が消せるかも一目瞭然だし、「描いて(消しゴムで)削る」という描き方をしている人にとっては非常に使いやすいツールとなっています。
あとデフォルトの背景の色である白はパレットの右下にある白とは別の色なのです。したがって、背景色をスポイトで色選択してからX ボタンで任意の色に変更した場合は背景の色を変えることができますが、その場合も白色は使用可能なのです。(だから、このツールで使用可能な色数は65536色中216色、ではなくて217色となっている)
実はこのツールは説明しなくても分かる人も多いと思いますが、プチコン3号で作った「PETIT PAINT 2 QSP」 のmkII移植版です。PETIT PAINT 2 QSPではオプションだったパレット生成機能を標準搭載してmkII独自機能に対応したものということです。
高機能なお絵描きツールがたくさん揃っているプチコン3号とは異なり、プチコンmkIIはお絵描きツールはあまり潤沢とは言えません。したがって、このツールの存在価値は大きいでしょう。
《 改造点 》
◎セーブ時のダイアログの出る回数を減らす
このソフトは使いやすさを重視して作られていますが、プチコンmkIIの仕様上デフォルトのパレットから色を変更した場合はCOLリソースのセーブやロードの必要性が出てきます。(セーブするごとにダイアログが2回出る)
X ボタンによる色変更を使用しないのであれば毎回出るダイアログが少しうざく感じるかもしれません。もしも、色変更を使用しないのであれば4行目のLOAD"COL2L:_",0 、18行目のSAVE"COL2L:_",0 を削除することで、余分にダイアログが表示されることは無くなります。(ただし、標準の217色以外は使えなくなる)
色変更をしないのであればX ボタンを押したときの処理も削除できます。15行目のFOR J=B!=64TO 0 から17行目のNEXT までの範囲が削除可能です。
これによって大幅なプログラムリスト短縮が可能になるためセーブやロード時に任意のファイル名が選択できるようにしても良いかもしれません。
◎カーソルの色を変更する
このソフトのウリとなっているタッチ時に出てくるブラシの大きさを示しているカーソルですが、標準ではグレー(色コード1)となっています。これは色コード1〜30の範囲(ただし、色コード15以外)で自由に変更することが可能です。
例えば赤(色コード2)に変更したい場合は25行のGCIRCLE M.N,R,1 の「1」を「2」に変更、GPAINT M+!R*H,C,1 の「1」を「2」に変更すればOKです。この2か所ある「1」を変えることで好きな色にカーソルを変更できます。使用可能な色コードの範囲内であれば描画色の補色(目立ちやすい色)にするということも可能です。
◎常時60fpsで動作させる
このソフトでは極細ペンは60fps、それより太いペンは30fpsで動作させることで処理落ち無しを実現していますが、常時60fpsで動作させることも可能です。
20行のFOR K=1TO 24 の「24」を「11」に変更、K/24 の「24」を「11」に変更、21行のK/24 の「24」を「11」に変更、VSYNC K>23 の「23」を「10」に変更、24行のVSYNC K<24 を削除とすればOKです。
これによって、極細ペン以外を使用時の追従性はアップしますが、素早く動かした時に線が途切れやすくなったり、(線が途切れかけてしまい)線が汚くなったりします。私は線のきれいさを選択しましたが、追従性が気になっている人はこの改造を行ってみるとよいでしょう。
↑TOP
【mkII専用】 (ホームメニュー対応 ) 2013年3月3日 公開
QRコード (ファイル名:OCHAPDB)
《 使用方法 》
ボタン操作によって演奏できるドラムとタッチ操作によって自由自在に弾くことのできるベース演奏プログラムを合わせて1画面のサイズに収めたものです。
ベースとドラムは動作中いつでも簡単に切り替え可能です。
ベース [START] ボタン
ドラム [START] ボタン + 何か別のボタン※押すボタンは[START][SELECT]以外ならどれでも良い
※起動時に選択する場合は[START]ボタンで起動する際に軽く押してすぐに離せばドラムになり、[START]ボタンを長押しすればベースになる。
ドラムのボタン操作はDS用ソフト「バンブラDX」のロックドラムと同一で下記のようになっています。
◎ドラムのボタン操作
[↑] ボタンクローズ
[↓] ボタンタム M
[←] ボタンタム L
[→] ボタンタム H
[A] ボタンスネア
[B] ボタンバスドラ
[X] ボタンタンバリ
[Y] ボタンリム
[L] ボタンオープン
[R] ボタンシンバル
同時ボタン入力が可能でそれぞれ別トラックで音を出しているため複数の音を同時に奏でることが可能 です。
ベースは[A][B][X]{R] ボタンで押さえるフレット番号を指定します。
◎ベースのボタン操作
[A] ボタンフレット番号 1
[B] ボタンフレット番号 2
[X] ボタンフレット番号 4
[R] ボタンフレット番号 8
各ボタンは同時に押すことで[B]ボタン+[X]ボタン ならば2+4=6 でフレット番号6を押さえたことになります。上画面に出ている数字は現在押さえているフレット番号を示します。ベース譜を元に演奏する場合は下画面に出ている音名ではなくこちらを見ながら演奏すると良いでしょう。弦の音名は押さえているフレット番号によって変わります。
なお、ベース演奏する際は[A][B][X][Y] ボタンを下にした縦持ちスタイル となります。また縦持ち弦は1本1本独立管理されており、音量調整も自由自在に可能です。これはPETIT GUITAR と同一なのでくわしくはこちら をご覧になってください。うまく使いこなせばタッピングなどの演奏表現もできるかもしれません。
《 改造点 》
◎ベースの音色を変える
7行のBGMSET 命令の中で使用されている@34 を適当な数字に変えてください。@32 〜@39 が各種ベースになっています。
◎ドラムセットの音色を変える
5行のMID$ の中にある*-/2&$6%.1 の10文字を変えます。左から順に上下左右[A][B][X][Y][L][R] ボタンに対応する音色となっていて@128 のドラム系の中の音からNコマンド指定時の高さの音色 を選びます。(C4=N60となる)
選んだ音色の数字をCHR$ で1文字にして上記10文字の指定の場所の文字と入れ替えるだけです。
例えば[L] ボタンでマラカスの音を鳴らしたい場合はマラカスは04A#=N70 なのでCHR$(70) である「F」を[L] ボタンの位置(9文字目) にある「.」と入れ替えれば良いです。
《 実行動画 》
VIDEO
このプログラムはキーボード 、ボーカル 、ギター を作ったならばドラムやベースも欲しいかも・・・ということで作ったものです。
ドラムは7行で作れたのでベースと併せて1本にまとめました。
↑TOP
【mkII専用】 (ホームメニュー対応 ) 2013年2月20日 公開
QRコード (ファイル名:OCHACONE)
《 使用方法 》
グラフィックを全く使わずコンソールキャラのみで作ったお絵かきツールです。
開始時はLOADするファイル名を入力します。ファイルがない時はそのまま[A] ボタンを空入力すればキャンセルできます。そして、下画面にタッチペンを使って枠内にドット単位で絵が描けます。画面上に並んでいる15色のパレットから自由に色を選ぶことが可能です。
終了するときは[L] もしくは[R] ボタンを押してください。終了時にはファイルをセーブすることもできます。ロードしたときと同じファイル名でよければそのまま[A] ボタンを押してください。何も入力せず[A] ボタンを押せばキャンセルしてそのまま終了します。
なお、ファイルはGRPリソースではなくCHRリソースで記録 されています。
あと、終了時にはコンソール(BGF)は、元に戻しているのだけどそのデータをスプライトキャラ(SPU0)にコピーしたまま書き換わった状態なので手動でCHRINIT"SPU" としてください。
《 改造点 》
◎線を引く
現在はツールとしては機能は非常に貧弱で点を打つだけしかできません。ゆっくりタッチペンを動かせば点が繋がって線になるもののストレスを感じる人もいるでしょう。タッチペンを速く動かし1フレームの移動量が1ドットを越える場合には前フレームでタッチした座標と現在タッチしている座標を直線で繋げばスムーズな描画が可能になります。
直線描画のアルゴリズムにはさまざまなものがありますが、ブレゼンハムのアルゴリズムがシンプルかつ高速で良いかもしれません。
《 実行画面 》
このプログラムはコンソールキャラを書き換えることでGPSETのような動作をさせているだけであり、ツールとしての使い勝手はそれほど良くはありませんが、当初考えたネタ通りのもの(1ドット単位で色を自由に変えられるお絵かきツール)が出来たと思います。
↑TOP
【mkII専用】 (ホームメニュー対応 ) 2013年1月14日 公開 2013年1月16日 更新
QRコード (ファイル名:OCHAPGTR)
《 使用方法 》
タッチ操作によって自由自在に弾くことのできるギター演奏プログラムです。
このPETIT GUITAR を使用する時は本体を[A][B][X][Y] ボタンが下になるように縦にして(つまり画面左側の1番太い弦が使用時には1番上になる) 左手で本体を支えます。そして、残った右手で弦を弾きます。簡単に言えば普通にギターを弾く感じで操作してもらえたらいいということです。
コードは[A][B][X][Y]{R] ボタンを使って選択します。(下記使用ボタン一覧表 参照)
左手の準備ができたら右手で弾くのですが、弦は1本1本独立して制御している ためどのように弾いても構いません。(弾かない弦があるならば弾かないという選択も可能だし、1本ずつ弾いていけば単音演奏も可能)
また、弦は弾く場所で音量が変わってきます。下画面の一番下が最大で上に行くごと(Y座標が小さくなるごと) に音が小さくなります。上手く弾けばビブラートっぽい音も出せると思います。
あと、画面の上1/3は消音として働きますので「弦を押さえて音を消す」という動作も可能です。弦1本1本音量調節が可能なので効果的に使えば演奏の幅が広がるでしょう。
下画面操作図
※下画面には線のみが表示されます
音階の選択
A 1 [A] ボタン
B 2 [B] ボタン
C 3 [A]+[B] ボタン
D 4 [X] ボタン
E 5 [A]+[X] ボタン
F 6 [B]+[X] ボタン
G 7 [A]+[B]+[X] ボタン
# [Y] ボタン
コードの種別の選択
メジャー 何もボタンを押してない状態で [R] ボタン を押す
マイナー [A] ボタン を押しながら[R] ボタン を押す
セブン [B] ボタン を押しながら[R] ボタン を押す
マイナーセブン [A]+[B] ボタン を押しながら[R] ボタン を押す
例えばCm を選択する場合には[A] ボタンを押しながら[R] ボタンを押して一旦ボタンを離した後に[A] +[B] ボタンを押せば良いです。(同時押しもOKなので[A][R] 同時押しの後で[R] を離しつつ[B] を押してもいい)
操作は少し複雑ですが、[X][B]{A] ボタンを2進数に置き換えてボタン操作の隣に書いている数字に当てはめればこの表そのものを覚える必要はないことが分かるでしょう。(例:[X] 押す、[B] 押さない、{A] 押す→ 101 → 5 → E )
このプログラムは1画面のリストサイズに収めるため上画面の情報表示はシンプルになっています。(ver.1.1で表示方法が変更になりました)
コードはA 、A# 、B 、C 、C# 、D 、D# 、E 、F 、F# 、G 、G# の12音階で表示(すべて開放弦の場合は「@ 」と表示) されますが、コードの種別(マイナー、メジャーなど) はリストのサイズの関係上数字で記されています。
コードの種別
0 メジャー
1 マイナー
2 セブン
3 マイナーセブン
4〜7 (未使用)
つまり、画面上に「A」、「1」表示されていたらそれはAm を意味します。(4〜7の未使用のコードを選択した場合は音階を指定してもすべて開放弦の場合と同じ音が鳴ります)
《 更新情報 》
◎ver.1.1 (2013/01/16)
ギターコードのデータにミスがあったので修正しました。
画面表示を少し分かりやすく改善しました。(数字だけの情報だったのがC# とか表示されるようになった)
《 改造点 》
◎音色を変える
1画面のリストサイズに抑えるため音色変更の設定機能ないので14行のBGMSET 命令の中で使用されている@27 を適当な数字に変えてください。@24 〜@31 が各種ギターになっています。
◎コードを分かりやすくする
数字では押しているコードの種別がが分かりにくいという人は18行の末尾に「;」を付けて19行と20行の間に次の行を加えてください。
?MID$("□□ m□ 7□ m7,P*2,2)
※□ はスペースを示す
これでC 、3 だった画面表示がCm7 のように変わります。
◎コードを追加する
コードがメジャー、マイナー、セブン、マイナーセブンだけでは不足という人は各自で追加してください。
コードは6弦〜1弦までの押さえるフレットを数字で表した6桁の数(例えばAm の場合は002210 という感じで開放弦は0にしておく)に圧縮をかけて2バイトにしています。その圧縮プログラムを用意しましたのでご利用下さい。
INPUT D$
A=9
FOR I=0TO 5
P=VAL(MID$(D$,I,1))
A=A+!!P*(P<A)*(P-A)
P(I)=P
NEXT
A=A-1
FOR I=0TO 5
P(I)=P(I)-A*!!P(I)
NEXT
E$=CHR$(A+P(0)*16+P(1)*64+1)+CHR$(P(2)+P(3)*4+P(4)*16+P(5)*64+1)
D$ に6桁の数字を入れるとE$ に2桁の文字が入ります。これをA、A#、B、C、C#、D、D#、E、F、F#、G、G#の順に12回行い合計24文字が1種別のコードデータとなります。このデータを6行目末尾のA$ に加えてください。データを加えた場合には7行目のFOR文の終了値はLEN(A$)/2-1 に変更してください。
またコードを追加した際に上記のコード表示の改造を行っている場合は追加したコードの名称をMID$の引数に加えてください。デフォでは0〜7の8種のコードが登録でき、[Y] ボタンを活用すればさらに8〜15までが使えるため最大で16種のコードを登録できます。(9種以上のコードを使用するには19行目末尾の P=C を P=C+E*8 にする。11種以上のコードは変数A$ に格納できないので分割処理を行う必要がある)
《 実行動画 》
VIDEO
このプログラムはSOUND PAD で新しい持ち方を考えた時にギターへの応用ができそうということで作ったものです。
コードのデータ作成はこちらのサイトのコード表 (外部サイトへのリンク) を参考にしました。データ化の際に入力ミスなどがありましたらご連絡ください。
↑TOP
【mkII専用】 (ホームメニュー対応 ) 2012年12月9日 公開
QRコード (ファイル名:OCHAPBF)
《 使用方法 》
難解プログラミング言語「Brainfuck」のインタープリタです。Brainfuckは"+ "、"- "、"< "、"> "、". "、", "、"[ "、"] "の8つの命令で成り立っています。詳しくはWikipediaなどで調べてください。
まず実行したら画面上に「CODE」と表示されます。ここでBrainfuckのソースコード(プログラム)を入力すればそれを実行します。この入力したコードはファンクションキーの[F1] に入っているので活用してください。
この直接入力による実行ではLINPUT命令の仕様上32文字までしか入力できません。しかし、ソースコードの入ったMEMリソースファイルをあらかじめ用意しておけばこのコード入力の場面でファイル名を入力すると255文字までのコードを実行できます。MEMリソースはPETIT EDITOR などを用いて入力してあらかじめセーブしておくと良いでしょう。(APPENDしてラベルスタート を使うとその都度PETIT EDITORをLOADする必要がなく非常に便利)
また空入力(何も入力しないで[A] を押す) の場合は前回実行したコードを再び実行します。
実行中は画面上に「RUN」と表示されコードの中で現在実行中の部分と操作しているポインタ(ポインタが示す値は2桁の16進数で表示) に緑色のカーソルがあります。なおこの実行速度は十字ボタンや[A][B] ボタンを押している間は変更できます。上が1.5倍速、下が2倍速、左が3倍速、右が5倍速、[A] が10倍速、[B] が30倍速(それ以外のボタンを押せば100倍速以上) ですが、慣れたら[A][B] しか使わなくなるかもしれません。
文字出力は緑色の枠内に行われます。実行が終わったら再び最初と同じようにコードの入力を求める状態になります。
あとは適当にコーディングして試してみてください。(Brainfuckは非実用言語だけどポインタ操作の概念を学んだりコード短縮を楽しむことはできる)
なお、このPetit Brainfuckはいくつか制限があります。
◎Petit Brainfuckの仕様
命令 " , " (入力命令) はサポートされない
ソースコードは最大255文字まで
要素数は60個(0〜59)(ループしているので-1は59と見なされる)
出力文字は63文字まで
" [ "、" ] " を入れ子にして使用できない( [ ] は可だけど [[ ]] は不可)
コードを直入力しているのかファイル名を入力しているかを短いリストで識別を行っている都合上ファイル名の先頭に"_"があるMEMリソースファイルは読み込めません。4行目の末尾に+(A==95) を付ければ"_"で始まるファイル名も読み込めるようになります。
Brainfuckがどんなものかよく分からない人、命令の使い方を知りたい人、サンプルコードを見てみたい人のために可読性重視の「Brainfuckインタープリタ」のページを作りました。命令の実装方法なども記しているので良かったらご覧になってください。
(プチコン用)Brainfuckインタープリタ
《 改造点 》
このPetit Brainfuckは1画面のリストサイズながら使用時の快適さや実行時の分かりやすさを優先して、なおかつホームメニューでの実行を可能になるように作ったため上記のような仕様上の制限があります。そのためそれらを改善する方法を書いていきます。
◎命令 " , "(入力命令) をサポートする
11行と12行の間に次の1行を入れたらOKです。
IF P==44THEN LOCATE 0,0?"CHR":FOR H=0TO 1H=ASC(INKEY$()+N$)NEXT:P(C)=H-1
命令 " , " を実行する際に「CHR」と表示されるのでそこで何か1文字入力すればそのキャラコードの値がポインタに入ります。
◎ソースコードを256文字以上対応にする
これはMEMリソースのサイズ制限によるものです。ファイルをGRPに保存すれば48KBへと大幅拡大されますが、プチコン内部の保存領域を大きく占有してしまうし、それに対応したテキストエディタも必要になってきます。
それが問題ないならば48KBのうち現在実行中のコードから256バイト分を読み出して表示すればレイアウトはほとんど変更することなく実現できます。
ちなみに256文字ではなく255文字が仕様上の上限になっているのはコードのサイズが0文字の場合にMID$でNullが返されてしまいASCでエラーが発生してしまうのでコードの末尾にスペースを付けているためです。
コードが0文字の時は再入力を行うようにすれば上限の256バイトまで使用可能になります。(まぁ上限が255文字から256文字になるだけで1文字分しか変わりませんが)
◎要素数を61個以上にする
Brainfuckでは十分な要素数の配列(Wikipediaによると少なくとも30000個)を必要と定義づけられていますが、このPetit Brainfuckはソースコードの上限サイズが255バイトなので要素数60個でほとんど問題ないと思います。しかし、上記のようにソースコードのサイズ上限を引き上げた場合はこの限りではありません。
このPetit Brainfuckでは操作しているポインタ(要素)を視認できるようにしていますが、これは画面表示レイアウト上80個が限界(リスト短縮の都合上60個を上限としている)であり、それ以上増やす場合はレイアウトを根本的に変える必要があります。要素数を増やした場合にはすべてを表示できないので現在操作している前後10〜20個の要素のみを画面に表示するようにすると良いでしょう。
◎出力文字を64文字以上にする
これも画面レイアウト上の制限です。
現在の枠は32文字x2行(ただし、最初の1文字目は未使用)ということで63文字が上限となっているのですが、これも出力文字であるN$をRIGHT$を使用して最新の64文字のみにするなどの変更をすれば表示レイアウトを維持したまま上限を超えることは可能になります。
◎" [ "、" ] " を入れ子にして使用できるようにする
現在は実行されたコードの中で最も新しい "[ " と次に真っ先に来る "] " のみが考慮されています。(ソースサイズの上限が255バイトであるため入れ子で使用することはほぼないと思う)
入れ子(=多重ループ)で使用できるようにするのは簡単で "[ " が現れるたびにネストをインクリメントし "] " が現れたらデクリメントしてその値がゼロになった時にループから抜けるようにするだけです。
文章だけでは分かりにくいため上記の「Brainfuckインタープリタ」 のページに詳細を記しているのでそれを参考にしてみてください。
手っ取り早く行いたいならば「Brainfuckインタープリタ」のサブルーチン@WHILE と@WEND を入力(ただし、変数Jは変数Kに置き換え) して22行と23行のIF文を次のように修正すれば入れ子対応になります。
22行 IF P==91THEN GOSUB @WHILE
23行 IF P==93THEN GOSUB @WEND
◎ブレークポイントを設定できるようにする
次の1行を23行と24行の間に入れたらOKです。
IF P==35THEN LOCATE 0,0LINPUT"BRK";A$WAIT 20
コードの中に"# "を記述すると画面上に「BRK」と表示されてそこで一時停止します。解除は[A] ボタンでできます。
(P==35 を P==35OR(512AND B) にすると実行中いつでも[R] ボタンでBRK できます。)
《 実行動画 》
VIDEO
PEIT EDITORを活用できるようなプログラムを作ろうと考えてこれを作ったわけですが、一部制限があるもののBrainfuckに興味がある人でお手軽な実行環境が欲しいという人には十分な内容になっていると思います。
↑TOP
【mkII専用】 (ホームメニュー対応 ) 2012年11月23日 公開 2012年11月25日 追記
QRコード (ファイル名:OCHAEDIT)
《 使用方法 》
MEM$の編集に特化した簡易テキストエディタです。256文字までのテキストを編集できます。
起動したらロード画面になるので編集したいMEMリソースのファイル名を入力してください。空入力の場合は現在のMEM$の内容を編集します。(mkIIでは[A] ボタンに[ENTER] キーが割り振られているので何も入力せず[A] ボタンを押すだけで空入力になる)
ロードが終わったら編集画面になります。ここではソフトウェアキーボードで文字入力、十字ボタンでカーソル移動、[Y] ボタンで削除、[X] ボタンで挿入ができます。
セーブをしたい場合は[R] もしくは[START] ボタンを押せばセーブ画面になるのでファイル名を入力してください。セーブせずに別のファイルをロードしたい場合にはセーブ画面のファイル名も空入力にすれば良いです。セーブ画面の次はまたロード画面になります(煩雑そうに見えるけど使ってみるとメニューでセーブを選ぶよりも手軽になっている)
セーブ画面で「RELOAD. 」の文字が出ている段階で編集したMEM$の内容が確定されてファンクションキー[F1] にその内容が入ります。セーブはしないけど一時的に保存しておきたい場合にも[A]ボタンのみの空入力は便利 です。確定データはファンクションキーに入っているためリテラルデータとしてプログラム内などで活用できます 。(プログラム内での活用については、下記の実行動画の1分20秒以降の部分を参照)
ただし、ファンクションキーを使ったデータの一時保存は「プログラムを作る」で実行時のみ有効です。「ホームメニュー」で実行した場合には一時保存ではなくファイル名を入れて保存してください。
画面表示については画面の上が現在編集をしているファイル名でその下に表示されているのがその編集中のMEM$のサイズとカーソルの座標です。(座標は縦横の座標ではなく1〜256 で何文字目の部分にカーソルがあるのかを示している)
またファイルの末尾には[EOF] (「end of file」の意味)と表示されています。カーソルのある位置に文字が自由に入力できますが何もない部分には自動的にスペースが挿入されていきます。末尾にスペースができた場合には見た目と実際のファイルサイズの違いがあるためこの[EOF] によってどこがファイルの末尾なのかを判断してください。
◎ボタン操作
ソフトウェアキーボード カーソルの場所に文字を入力 ※すでに文字がある場合には上書きしながら入力していく
[F1] キーデータの活用 ※短いルーチンを活用する場合に便利
十字ボタン カーソルの移動 ※上下左右は繋がっているけど左右においては座標の数字通りの移動となるため右下と左上が繋がっている
[X] ボタンスペースを挿入する ※サイズが256文字になっている場合は挿入できない
[Y] ボタン1文字削除 ※カーソルがある場所の1文字を削除
[R] もしくは[START] ボタンセーブ画面に移動 ※セーブ画面の後にデータが確定されてロード画面になる
《 改造点 》
1画面のサイズで必要な機能は粗方入っているのですがあと需要があるとすれば[BS] ボタン機能と新規ファイル作成機能くらいでしょう。
◎[BS]キーの機能を付ける方法
[B] ボタンを[BS] キーとして使用したい場合は15行と16行の間に下記の1行を加えると良いです。
IF B==32THEN M$=LEFT$(M$,Z-!!Z)+RIGHT$(M$,(L-Z)*(L>=Z))Z=Z-!!Z
これによって、[BS] キーのようにカーソルの1つ前の文字が削除できるようになります。
◎新規作成機能を付ける方法
[L]+[A] ボタンで新規作成を行いたい場合は7行と8行の間に下記の1行を加えると良いです。
IF B==272THEN M$=""B$=""MEM$=""
この機能を付けなくても削除ボタンで全部消してやればいい(消したあと[R]ボタンで確定する)だけだし、その手間も面倒ならば実行モードで手動でMEM$=""CLEAR を実行すれば問題ありません。
あと削除、挿入などのボタン割り当てが気に入らない人は(1画面プログラムでありながら)IF文でBUTTON()関数の値を判定しているだけなのでリストを見れば簡単に改造が可能です。
アンドゥ、リドゥ、選択・コピー・貼り付けなどもあると便利ですが、この程度のサイズの編集ならば無くても問題ないでしょう。(これらの機能が欲しい人は各自で実装してください)
このPETIT EDITOR はサイズが小さいためMEM$を編集して使うプログラムにAPPENDして使えば一旦セーブして実行するという面倒な作業が不要になります。
その場合は、プチコンは先頭行からでないと実行できないため途中の行(PETIT EDITORを置いた行)から実行するのが大変ですが、あらかじめPETIT EDITOR の先頭にラベル@EDIT (重複する場合は他のラベル名) を付けておいてラベルスタート を先頭行(1行目)に入れておけば RUN @EDIT もしくは @EDIT[START] ですぐに使用できるようになるため非常に快適です。
《 実行動画 》
VIDEO
MEM$(MEMリソースを使ったセーブデータ)の編集だけではなく単にテキストエディタとして1行プログラムや140文字プログラムを書くのに使えると思います。プログラムへの書き出しもファンクションキー経由で簡単にできます。
プチコン本体のエディタは折り返し機能がないので長いリストを見辛いし、使用文字数も分からないためこのPETIT EDITOR は活躍できるでしょう。
APPEND命令とは異なり自由な場所に挿入できるためよく使うルーチンをこのPETIT EDITOR で書いてセーブしておけばプチコンのプログラム開発効率もアップする かもしれません。
2012年11月25日追加
上記の通常版のPETIT EDITOR はMEM$の編集に重点を置いたため「上書きモード」で入力し[DEL] で削除、[INS] で挿入となっていますが、これではプログラムを書いたりする場合にはやや使いづらいかと思います。
そこで「挿入モード」で入力し[BS] で削除するPETIT EDITOR type B を作りました。(わざわざ別バージョンにしたのは1画面に収めるため)
PETIT EDITOR type B → プログラムリスト / QRコード (ファイル名:OCHAEDTB)
ボタン操作は通常版と比べて[Y] ボタンが[BS] (カーソル前の1文字削除) へと変更となっています。(あと[DEL] と[INS] がない以外は通常版と同じ)
《 type Bの注意点 》
サイズが256文字に達している時は文字入力ができないので不要な文字を削除してください。
256文字目は[BS] では削除できないので一旦255文字目を削除した後に256文字目を入力 してください。
↑TOP
このページは2012年11月以降に初公開した1画面プログラムを記載しています。
1画面プログラムのページ → 1page 2page プチコンオリンピック
RETURN /RETURN *MAIN