ZXSpectrum文字セット


ZX_Spectrum_character_set
ZXスペクトラムの文字セットはの変形であるASCII英国で使用シンクレアZXスペクトラムの家族のコンピュータ。ASCII-1967に基づいていますが、文字^、 `DELは、↑、£、および©に置き換えられています。また、commonと、以外のC0制御コードの使用も異なり、ASCII範囲を超える128個の高ビット文字を使用します。印刷可能な文字とシステムフォントのZXスペクトラムの主なセットもまたによって使用される木星エースコンピュータ。BSCR
システムフォントでレンダリングされたZXSpectrum文字セット(ユーザー定義グラフィックス文字は含まれません)。

コンテンツ
1 印刷可能な文字
2 制御コード
3 未定義のコード
4 キャラクターセット
5 も参照してください
6 ノート
7 参考文献
8 外部リンク

印刷可能な文字
image"
  BASICキーワードとユーザー定義グラフィックス文字(デフォルトではAUのコピーとして定義)を含むすべての印刷可能なコードポイントを示すSinclairBASICプログラムの
スクリーンショット 標準的なUS-ASCII、0x20-0x7Fは、そのコードポイント0x5Eのを除き、スペクトラムの文字セットに含まれていることである上向き矢印(↑)の代わりに、キャレット(^)、0x60は、ポンド記号(£)の代わりに、低アクセント( `)、0x7Fは制御文字の代わりに著作権記号(©)です。↑として0x5Eを使用することは、古い1963バージョンのASCIIにも当てはまることに注意して£記号は、ASCIIの英国版(ISO-646-GB)のように0x23にマップされなかったため、ポンド記号と番号記号(#)の両方を同時に使用できます。↑文字はSpectrumのBASICのべき乗演算子であり、ASCII-1967と比較して置き換えられる^と同様に、BASICや他のプログラミング言語の他の多くの方言でべき乗に使用されます。 DEL
0x7Fを超えると、Spectrum文字セットは特別な目的のために高ビット範囲0x80–0xFFを使用します。0x80–0x8Fには、ZX80文字セットおよびZX81文字セット(他の場所にある)と同じ2×2ブロックグラフィック文字が含まれており、Block ElementsUnicodeブロックでも使用できます。ただし、ZX Spectrumの標準文字セットには、ZX80 / 81 50%ディザリングされた1×2ブロックのグラフィック文字は含まれコードポイント0x90–0xA4には、元々21個のユーザー定義グラフィック(UDG)文字が含まれ、0xA5–0xFFには、単一のコードポイントとしてトークン化されたBASICキーワードが含まれます。後で導入された128BASICモードでは、これは0xA2で終わる19 UDG文字に変更され、その後に2つの新しいトークンとが続きます。コードポイント0xC7–0xC9は、2文字の演算子であり、同様に単一のコードポイントにトークン化されます。これらのトークンを使用すると、行の先頭で1回キーを押すだけで(つまりコマンドモードで)BASICコマンドを入力でき、0xF6が生成されます。これは画面に完全なキーワードとして表示されますが、1バイトのトークンのみが格納されるため、インタプリタが1バイトを解析するか、テープなどの外部ストレージに保存/ロードする必要がSPECTRUMPLAY<=>=<>PRINTPPRINT
すべての非UDGスペクトラム文字はUnicodeにマッピングできます。ASCII-1967以外の3文字の↑、£、および©は、U + 2191、U + 00A3、およびU + 00A9に2×2ブロックのグラフィック文字であるブロック要素の後者のフォントサポートが普遍的ではないがU + 2580-U + 259Fでブロック。
UDG文字の形状はRAMメモリ領域にマップされ、文字AUのコピーに初期化されますが、たとえばBASICコマンドを使用して任意に再定義できますPOKE。システムフォントのすべての文字と同様に、8バイトに格納された8×8ピクセルのグリッドを使用します。それらを再定義すると、後続のPRINTステートメントでの外観が変更されますが、画面に既に描画されているUDG文字は変更されません。UDG文字の定義の場所は、BASIC関数を使用USRして、文字を引数として、たとえばUSR “”A””最初の文字を使用して決定できます。デフォルトでは、これは、48Kスペクトラムのメモリアドレス65368(0xFF58)〜65535(0xFFFF)にあるRAMの最後の168(21×8)バイトを指します。この場所は、メモリアドレス23675/6(0x5C7B / C)にあるシステム変数UDG によって示され、変更できます。TK90X、ZXスペクトラムのブラジルのクローンは、ポルトガル語で使用されるアクセント付き文字で、その後プリロードする機能とともに、これらのUDG文字グラフィカルに編集するROMアプリケーションに含まれます。(このため、TK90Xはコード0と1にそれぞれ「trace」と「udg」の2つの追加の基本コマンドを定義しました)
メインシステムフォントの定義である32(スペース)から127(著作権)は、メモリアドレス23606/7(0x5C36 / 7)にあるシステム変数CHARSによって参照されます。これは、スペース文字の最初のバイトより256バイト低いものとして定義され、文字をCHARS + 8×コードポイントに配置するための式を簡略化します。CHARS値のデフォルト値は15360(0x3C00)で、システムフォントはSpectrumのROMの最後のアドレス15616(0x3D00)から16383(0x3FFF)に代替フォント全体をRAMにロードし、それに応じてCHARS変数を再指定できます。

制御コード
制御コード領域(C0範囲)では、Spectrumは主に、前景色と背景色を制御するためにINKやPAPERなどの独自の制御を使用します。ただし、共通点BSとCRコード点はASCIIと同じです。カーソルダウン(0x0A、ASCIIラインフィード)は、OVER 1(透明なオーバープリント)で印刷された32スペースでシミュレートでき、カーソルアップ0x0B(ASCII垂直集計)は、32バックスペースでシミュレートできます。システムROMに障害があり、0x09でのカーソル右(ASCII水平集計を参照)が機能しません。
制御コード0x0Eは、テキスト処理を高速化するために、浮動小数点数が続くことを示すために使用されます。でシンクレアBASICのプログラム数値定数は、0x0Eのバイトに続くASCIIとして格納され、5バイトのバイナリ浮動小数点表現されています。BASICプログラムをリストする場合、ASCII部分のみが使用されますが、実行時にはバイナリ表現のみが使用されます。一部のSpectrumプログラムはこれを利用して数値を難読化しましたが、他のプログラムはメモリを節約するためにこれを利用しました。たとえば、次のように表示されるBASIC行にGO TO 10は、数字1と0のASCII文字に続いて、0x0Eバイトと10ではなく100の浮動小数点表現を含めることができます。プログラムは100行目にジャンプしました。

未定義のコード
範囲0x00–0x05、0x07、0x0A–0x0C、0x0F、および0x17–0x1Fは未定義です。ほとんどの場合、ディスプレイに印刷すると疑問符が表示されます。ただし、特定の制御コードと組み合わせてリテラル数値を表すために使用できます。たとえば、0x10 + 0x07は、インク(前景テキスト)の色を色番号7(白)に設定します。

キャラクターセット
スペクトル文字セット
0_キーを押す
0_文字1_ 2_ 3_ 4_ 5_ 6_ 7_ 8_ 9_ NS_ NS_ NS_ NS_ E_ NS_ _0
インク  0
ZXSpectrum80.svg  (A)(Q)VAL USR
フォーマット LPRINT リスト _1 論文 ! 1 NSZXSpectrum81.svg   (B) (R)
レン
STR $
動く LLIST させて _2 閃光 「」 2 NSZXSpectrum82.svg   (C) (S)
sin CHR $
消去
止まる
一時停止 _3 明るい # 3 NSZXSpectrum83.svg  (D)(T) COS いいえ
開いた #
読む 次 _4 真のビデオ
インヴァース $ 4 NSZXSpectrum84.svg  (E)(U) TAN 置き場
選ぶ # データ ポーク
_5 invビデオ
以上% 5 E U e u
ZXSpectrum85.svg  (F)RND ASN
また
マージ 戻す 印刷
_6 キャップスロック
コンマで &
6 V v
ZXSpectrum86.svg  (G)
INKEY $ACS と 確認 新着
プロット

_7
タブ ‘ 7 W w
ZXSpectrum87.svg  (H)PI ATN <= ビープ 国境 走る
_8 左 左 (( 8 NSZXSpectrum88.svg  (I)FN LN
> =
サークル
継続する
保存する
_9 右 右 )。
9 Y y
ZXSpectrum89.svg  (J)点 EXP <> インク DIM ランダム化
_NS 下 * : Z z
ZXSpectrum8a.svg  (K)
画面$ INT ライン 論文 レム
もしも
_NS 上+ ; K
[ k {{ ZXSpectrum8b.svg  (L)ATTR SQR
それから
閃光
にとって CLS _NS 消去 ZXSpectrum8c.svg  (M) で SGN 明るい
に行く
描く
_NS 入力
入力 – = ] }
ZXSpectrum8d.svg  (N)
タブ ABS ステップ
インヴァース GO SUB 晴れ
_E 拡張する
番号 >>↑ 〜
ZXSpectrum8e.svg  (O)
VAL $
ピーク DEF FN 以上 入力 戻る
_NS グラフィック/ ? O _ o
ZXSpectrum8f.svg  (P)
コード 猫
でる
ロード
コピー

も参照してください
ZX80文字セット
ZX81文字セットPETSCII ATASCII
AtariST文字セット
拡張ASCII

ノート
^US -ASCIIとは異なります。
^ l m n o p q r s UDG(ユーザー定義グラフィックス)文字。
^ 48BASICのUDGT、 128BASICのキーワードSPECTRUM。
^ 48BASICのUDGU、128BASICのキーワードPLAY。
^ 標準ROMでは、CHR$ 81行目から0行目へのバック、および0行目からのバックオフに失敗します。
^ 標準ROMCHR$ 9では、実際にはテキスト出力位置を移動しません。
^ 5バイトの浮動小数点数の前に付けるマーカーとしてBASICプログラムで使用されます。

参考文献
^ ZX Spectrumマニュアル、付録A、文字セット ^ ZX Spectrumマニュアル、第25章、システム変数 ^ 「LosComandosExclusivos de laTK90X」。
^ ローガン、イアン(1983)。あなたのスペクトルを理解する。メルボルンハウス。NS。189. ISBN  086161111X。
^ ウェアマウス、ジェフ。「ZXSpectrum用の16KROMを生成するためのアセンブリファイルリスト」。2015年8月25日にオリジナルからアーカイブされました。
^ Swann、RichardP。「パート4デクリプター」。ZXSpectrumをハックする方法。
Sinclair Basic Manual、Steven Vickers、Robin Bradbeer(ed。); パブ。シンクレアリサーチリミテッド。WorldofSpectrumのオンラインコピー

外部リンク
Sinclair Spectrum + MichaelZaretskiのWebサイトからの48K文字セット
Sinclair Spectrum + 48K文字セットからUnicodeへのマッピングテーブル同じサイトから
浮動小数点パッケージ”