ひろじいべーしっくch 第九回の動画の解説・補足。(0-009)
結論
TSCREEN 画面の基本的な設定をするよ。
TSCALE 文字の大きさを変更できるよ。
CHR$ コード(数値)に該当する文字にするよ。
T? テキストスクリーン番号の指定付きのPRINT命令だよ。
MOD 割った後の余りをだすよ。
プログラム
今回のプログラムはこちら。(公開キー44425K433、LOAD“N09_MOJI”)
このブログにおいてはなるべく専門用語を使用せずに非常に短く簡潔に説明しています。
詳細を知りたい方は公式リファレンス等も参照してください。
[]については省略可能ですが、一部の命令(例えばDIM命令等)については最低一つの[]は必要です。
TSCREEN
TSCREEN スクリーンID,フォント種類,文字サイズ[,幅,高さ]
読み方は「ティースクリーン、テキストスクリーン」。テキストスクリーンの広さと表示に使用するフォントの設定を行います。
スクリーンIDは文字を表示するスクリーンのIDで0~4です。(スクリーンIDについての詳細は「ランニング(0-007)動作の説明」で解説)
フォント種類は表示に用いるフォントの種類で8~64(8の倍数)です。24以上を指定すると、ユーザー定義文字のみ表示されるようになります。
文字サイズは、文字の表示サイズで8~64まで指定できます。
「幅, 高さ」は、テキストスクリーンの幅と高さを文字単位で指定することです。
・幅×高さが32768まで指定可能です。
・幅、高さを省略した場合、または0を指定した場合、現在の画面サイズを文字サイズで割った物が設定されます。
TSCALE
TSCALE スクリーンID,倍率X,倍率Y
読み方は「ティースケール、テキストスケール」。テキストスクリーンの拡大・縮小を行います。
スクリーンIDは文字を表示するスクリーンのIDで0~4です。
「倍率X,倍率Y」は拡大縮小の倍率を横(X)と縦(Y)に設定します。
・ハードウェアの仕様により、設定値により参照フォント画像が1ピクセルずれる事があります。
・THOMEで設定したホームポジションを中心に拡大・縮小します。
・1.0より大きな値で拡大(2.0で2倍)、1.0より小さな値で縮小(0.5で半分)。
CHR$()
CHR$(文字コード)
読み方は「キャラクターダラー」、指定された文字コードから文字を返します。
返値として、文字コードに対応する1文字の文字列が出力されます。例:A$=CHR$(&HE801)
TPRINT
TPRINT スクリーンID[,式[;または,式…]]
読み方は「ティープリント、テキストプリント」。
省略形として、T?と書いても良い。式を省略すると改行のみ行います。
スクリーンIDは文字を表示するスクリーンのIDで0~4です。
「式」とは、表示する変数、文字列変数、数値、文字列のことです。四則演算等や関数による計算式も記述ができます(計算結果が表示されます)。
;(セミコロン)は表示後に改行せず、次の表示を密着させます。
,(カンマ)は表示後に改行しないで、次の表示を一定間隔開けます。
MOD
整数 MOD 整数
読み方は「モッド、モジュラス」。英語modulusの省略。
左の数を右の数で割った余りです。右の数が0の場合エラーになります。
動作の説明
おおまかな動作の説明です。
2行目、実はTSCREEN 1,16,16,25,15が望ましい表記です。上記の通りでもエラーにはなりませんが、テキストスクリーン1の標準のフォントが16であることが理由です。
5行目で大きさとして1~4までの数字を質問して変数Sに代入されているので9行目は TSCALE 1,S,Sとなります。
10行目から17行目までFOR文でくりかえします。10行目で変数Iは13行目のCHR$命令で指定する文字コードの値と一致するようにTO文をIがN+M-1となった時に終了するようにしています。
12行目でテキストスクリーン番号の1番を指定してその色を変更している。
13行目の変数Iは現在表示中の文字コードを表しているので、CHR$(I)が表示したい文字になっています。13行目でその文字が空白でないならば、T?文でテキストスクリーン番号1を指定してその文字を表示するようにしている。
16行目の「I MOD 8」はIを8で割った余りを示しています。この余りが「<1」ということは0に該当するとき、つまり8で割り切れたらWAIT 1を実行して「少し休め」としています。
改造例
例(表示する文字を30000文字に固定する。)
6行目を削るか「‘」を先頭に追加してコメントにし、命令を削除と同様にします。
次の行にM=30000を追加します。(変更後の7行目。)
プログラムの実行についての解説
起動時の動作の説明です。
まず、「色はカラフルにしますか?[いいえ→99]」と質問してきます。99を入力すると色がほとんど白色になりますが、ユーザー定義文字などはオリジナルの色が表示されます。
次に「大きさ(1~4)」と聞いてきます。その次に「文字数」をと聞いてきます。目の保護のため1500を超える文字数は1500文字に訂正します。
「なんばんからですか」は下記の表の文字コードの入力を意味します。
動画で紹介した公式の文字一覧(プチコン3号用)はこちらです。
こちらのサイトのunicode.pdf と unicode-kanji.pdf をダウンロードして頂くことを強くお勧めします。公式のリファレンスブック(ISBN-13 : 978-4198652012)でもプチコン4として文字の一覧が掲載されているのは110頁から111頁の「ユーザー定義文字一覧」のみだからです。
こちらのサイトでの分類に「ユーザー定義文字(プチコン4用)」を加えたのが下記の一覧です。
文字コードは16進数ですので、使用する際には頭に「&H」をつける必要があります。
例:文字コードE800(16進数)の文字を画面に出力する場合→PRINT CHR$(&HE801)
「なんばんからですか」の質問において、例えば「&H801」と16進数の頭に「&H」を付けて入力することにより16進数のコード表に対応して表示させることができます。ただし、28行目の右端に示した数値は10進数のままです。16進数のまま表示をさせるには「LOCATE 43,28:?I」のところを「LOCATE 43,28:?HEX$(I)」に変更をしてください。
文字のグループ | 文字コード(16進数) | |
1 | コントロール文字 | 0000~000D |
2 | ASCII文字 | 0020~007F |
3 | 記号・ラテン | 00A0~017F |
4 | ラテン拡張B・修飾文字・その他アルファベット | 0192~0451 |
5 | 句読点類 | 2013~203B |
6 | その他記号 | 20A9~301F(2500~257Bを除く。) |
7 | 日本語類 | 3041~30FC、4EDD |
8 | Unicodeと類似した罫線 | 2500~257B |
9 | 漢字(JIS第一水準相当) | 4E00~9F8D |
10 | 行番号表示(以下すべてUnicodeと非対応) | E100~E17F |
11 | プチコンシリーズ互換絵文字A(初代時の番号+0xE200) | E200~E21F |
12 | 新絵文字A | E220~E27F |
13 | プチコンシリーズ互換絵文字B(初代時の番号+0xE200) | E280~E29F |
14 | 新絵文字B | E2A0~E2C9(~E2D2) |
15 | プチコンシリーズ互換絵文字C(初代時の番号+0xE200) | E2E0~E2FF |
16 | ユーザー定義文字(プチコン4用) | E800~F7FF |
17 | 半角(一般には使われないと思われるコード) | FF00~FF5E |
まとめ
TSCREEN テキストスクリーンの広さと表示に使用するフォントの設定を行います 。
TSCALE テキストスクリーンの拡大・縮小を行います。
CHR$ 文字コードから文字を返します。
T? テキストスクリーン番号の指定付きのPRINT命令です。
MOD 「整数MOD整数」で左の整数を右の整数で割った後の余りを表します。
プチコン4では17の文字グループがあります。
コメント