今年のHSPコンテスト2016にHSPTV部門で参加させていただいてます。
ランキング機能のコメント文字列にデータを埋め込むと面白いことができそうですが、注意点もたくさんありそうです。
手元の環境ではうまく動作するけど、実際のインターネットサーバー上ではうまくいかないことも多いです。
結局私は断念してしまいましたが、仕様というか注意点というか、よくわからないことをまとめてみました。
・hsptvapp.asを使って管理できる
いままでhsptv.asしか知りませんでした。
いままでは投稿プログラム内にデバッグモードを仕組み、それを使って文字列データを管理していました。
hsptvapp.asとスタートアップコード(コンテストに登録すると割り当てられるコード)を使えば、
そのプログラムに該当するランキング情報を管理できます。
・インデックス0の情報をリセットできない
リファレンスを読むかぎり、下のスクリプトでランキング情報をリセットできると思いますが、
repeat 30
hsptv_up cnt,"",0x3000
loop
インデックス0の情報だけリセットできません。
データ領域を割り当てるときは、インデックス1以降を使ったほうが良さそう。
・文字数
リファレンスでは、1コメントあたり255文字まで(256ではない)送受信可能とのことですが、
半角64文字までしか確認できませんでした。
ちなみに、全角では32文字でした(2バイト文字?)。
・文字の調査
使用できる/使用できない文字を調べました。
調べた対象は、キーボード入力できる半角文字(半角英数字、半角記号、半角カナ)です。
全角文字や漢字は調べていません。
・使用できない文字
(改行)
コメント入力にmesboxを使うと入力できてしまうので注意。
inputでは改行を入力できない。
&
hsptvのリファレンスに記載されている通り、使用できません。
。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚(半角カナ)
半角カナも文字化けで使用できません。
・使用できる文字
\
エスケープシーケンスとして認識されると思いましたが、
入力ボックス上で入力すれば文字通り「\n」が送受信できました。
しかし、HSPスクリプト上の文字列"\n"では改行になります。
"
\と同じく使用可能。これもHSPスクリプト上で使うと文字列の整合性が崩れます。
(例)"----"----"
・結論
ランキング機能のコメント文字列にデータを埋め込むには
0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno
などの64通り(6ビット)の文字を使うと良さそう。
HSPスクリプト上の文字列定義では\に注意。