ペットシ

ペットシ
PETSCII(シフトありとシフトなし)
言語擬似グラフィックを使った英語
分類8ビット拡張初期ASCII
に基づくUS-ASCII(1963年版)

PETSCII ( PET 標準情報交換コード) は、 CBM ASCIIとも呼ばれCommodore Business Machines の8 ビットホーム コンピュータで使用される文字セットです。

この文字セットは1977年にPETで初めて使用され、その後 CBM-IIVIC-20Commodore 64Commodore 16Commodore 116Plus/4Commodore 128でも使用されました。ただし、Amigaパーソナルコンピュータファミリーでは、代わりにISO/IEC 8859-1規格が使用されています

歴史

文字セットは主にレナード・トラミエル(コモドールCEOジャック・トラミエルの息子)とPETの設計者チャック・ペドルによって設計された。[1] [2] [3] PETSCIIのグラフィック文字は、1977年にマイクロソフトの既存の6502 BASICに対する望ましい変更をマイクロソフトのリック・ウェイランドに説明した際に、コモドールがコモドールBASICに指定した拡張機能の1つであった。[4] VIC-20はPETと同じピクセル単位のフォントを使用していたが、VICの22列画面のため文字が幅広に見えた。しかし、コモドール64では、マシンの高解像度画面によって生じる色アーティファクトを避けるため、わずかに再設計された太い大文字フォント、基本的にはPETのフォントを太くしたバージョンが使用された。 C64 の小文字は、Atari 8 ビット コンピュータフォント (2.75 年前にリリース)の小文字と同一です。

ペドルは、PETでカードゲームを簡単に記述できるようにしたいという要望(彼が受け取った仕様リストの一部)が、カードのスーツ記号の組み込みを促したと主張している。 [2]

仕様

Commodore 64 のシフトモードと非シフトモードで表示される PETSCII チャート。(制御コードと 0xC0~0xFF の範囲の文字は表示されていません。これらはキーボードから返される標準的な大文字のキーコードで、0x60~0x7F の範囲に複製されます。)

「シフトなし」PETSCIIは、 ASCIIの1963年版に基づいています(ASCIIに基づく他のほとんどのコンピュータ文字セットが使用している1967年版ではありません)。PETSCIIは大文字のみで構成され0x5Eキャレット⟨^⟩の代わりに上矢印⟨↑⟩が、0x5Fのアンダースコア⟨_⟩の代わりに左矢印⟨←⟩が使用されています。オリジナルのCommodore PETを除くすべてのバージョンでは、 0x5Cのバックスラッシュ⟨\⟩の代わりにイギリスのポンド記号⟨£⟩が使用されています。ASCII-1967で追加されたその他の文字(小文字、アクサングラーブ中括弧、縦棒、チルダ)はPETSCIIには存在しません。コード 0xA0 ~ 0xDF は、CBM 固有のブロック グラフィック文字(水平線、垂直線、ハッチ、網掛け、三角形、円、カード スーツ)に割り当てられます。

PETSCIIには「シフト」モード(「ビジネスモード」とも呼ばれる)があり、0x41~0x5Aの大文字を小文字に変換し、0xC1~0xDAのグラフィックを大文字に変換します。大文字と小文字はASCIIとは逆になります。モードの切り替えは、Shiftキーのいずれかを押しながらCommodoreキーを押して放すことで行えます。シフトは、59468番地にPOKEコマンドで値14を指定して代替セットを選択するか、12を指定して標準セットに戻すことで実行できます。Commodore 64では、バイト53272のビット2を反転することでセットを切り替えます。PETの一部のモデルでは、PRINT CHR$(14)文字セットの変更に加えて行間隔を調整する特殊な制御コードを使用しても、同様の操作が可能です。POKEコマンドは引き続き使用可能で、行間隔は変更されません。[5]

PETSCIIには、、、、(最後の2つ反転表示文字の表示を有効/無効にする)などのカーソル制御コードと画面制御コードが含まれています。これらの制御コードはプログラムリストでは反転グラフィック文字として表示されますが、一部のコンピュータ雑誌では、より読みやすいリストを提供するために、上記の例のように、実際の名前を中括弧で囲んでコードに整形表示していました。PETSCIIには中括弧文字がないため、これは明白です。{HOME}{CLR}{RVS ON}{RVS OFF}

文字の保存(で使用されている「交換」マッピングCHR$())と文字の表示(「ビデオ」マッピング)には、異なるマッピングが使用されます。例えば、画面メモリに直接書き込んで「@ABC」という文字を画面に表示するには、64、65、66、67ではなく、10進数値0、1、2、3をPOKEします。[6] [7]

キーボードはデフォルトでコードページの下半分にアクセスします。Shiftキーを押しながらキーを押すと、対応する上半分のコードポイントが表示されます。PETSCIIコードポイントの中には、印刷できないものがあり、キーボード入力(F1、RUN/STOPなど)にのみ使用されます。

PET 2001キーボードレイアウト、PETSCII グラフィック文字の表示

文字セット

以下の表は、で使用される「交換」PETSCII エンコーディングを表していますCHR$()

制御文字は0x00~0x1Fおよび0x80~0x9Fの範囲で定義されていますが、定義される制御文字とその定義内容はシステムによって異なります。以下の表には制御文字は含まれていません。制御文字のエンコーディングについては、§ 制御文字で説明します。

0x60~0x7Fと0xE0~0xFFの範囲は重複範囲ですが、重複する範囲はシステムによって異なります。コモドールPETでは、それぞれ0x20~0x3Fと0xA0~0xBFが重複します。コモドールVIC-20、64、16、128では、それぞれ0xC0~0xDFと0xA0~0xBFが重複します。[6]これらの文字は見た目には重複していますが、意味は異なります。例えば、コモドールPETでは、コードポイント0x2Cと0x6Cはどちらもカンマ文字を生成しますが、入力フィールド間の区切り文字として機能するのは0x2Cだけです。[8]

\グラフィック文字は、0x5C( Commodore PETおよび他のシステムで共通£)、0xDE(Commodore PETとVIC-20ではU+1FB95 CHECKER BOARD FILL、他のシステムではU+1FB96 INVERSE CHECKER BOARD FILL)、および0x60~0x7F(Commodore PETでは別の範囲と重複)を除き、システム間でほぼ同一です。さらに、Commodore PET 2001のシフト文字セットでは、大文字と小文字が他のシステムとは逆になっています。

Unicodeの同等文字

PETSCII 文字は、Unicode標準ではさまざまなブロックで表現されます。

標準

次の表は、Commodore VIC-20、64、16、および 128 で使用される PETSCII エンコーディングを表しています。

シフトなし

シフトなしPETSCII [6] [10] [7] [11] [12]
0123456789BCDEF
0x
1倍
2倍 SP !#$%'*+-/
3倍0123456789:;<>?
4倍@BCDEFGHJKLM
5倍P質問RSTあなたVWXはいZ[£]
6倍🭲🭸🭷🭶🭺🭱🭴🭼🭽
7倍🭾🭻🭰🭵🮌π
8倍
9倍
NBSP🮏🮇
バックス🮈🮂🮃🭿
センチ🭲🭸🭷🭶🭺🭱🭴🭼🭽
診断🭾🭻🭰🭵🮌π
NBSP🮏🮇
FX🮈🮂🮃🭿π
  PETSCII バリアントによって異なります。

シフト

シフトPETSCII [6] [10] [7] [13] [14]
0123456789BCDEF
0x
1倍
2倍 SP !#$%'*+-/
3倍0123456789:;<>?
4倍@1つのbcdefグラムhjlメートルno
5倍pqrstあなたv×yz[£]
6倍BCDEFGHJKLM
7倍P質問RSTあなたVWXはいZ🮌🮕/🮖 [あ]🮘
8倍
9倍
NBSP🮏🮙🮇
バックス🮈🮂🮃
センチBCDEFGHJKLM
診断P質問RSTあなたVWXはいZ🮌🮕/🮖 [あ]🮘
NBSP🮏🮙🮇
FX🮈🮂🮃🮕/🮖 [あ]
  PETSCII バリアントによって異なります。
  1. ^ abc これは、VIC-20ではU+1FB95 CHECKER BOARD FILL、Commodore 64およびCommodore 128ではU+1FB96 INVERSE CHECKER BOARD FILLです。

コモドールPET

シフトなし

非シフトPETSCII(PET)[6] [15]
0123456789BCDEF
0x
1倍
2倍 SP !#$%'*+-/
3倍0123456789:;<>?
4倍@BCDEFGHJKLM
5倍P質問RSTあなたVWXはいZ[\]
6倍 SP !#$%'*+-/
7倍0123456789:;<>?
8倍
9倍
NBSP🮏🮇
バックス🮈🮂🮃🭿
センチ🭲🭸🭷🭶🭺🭱🭴🭼🭽
診断🭾🭻🭰🭵🮌π
NBSP🮏🮇
FX🮈🮂🮃🭿π
  標準PETSCIIとは異なります。

シフト

シフトPETSCII(PET)[6] [16]
0123456789BCDEF
0x
1倍
2倍 SP !#$%'*+-/
3倍0123456789:;<>?
4倍@1つのbcdefグラムhjlメートルno
5倍pqrstあなたv×yz[\]
6倍 SP !#$%'*+-/
7倍0123456789:;<>?
8倍
9倍
NBSP🮏🮙🮇
バックス🮈🮂🮃
センチBCDEFGHJKLM
診断P質問RSTあなたVWXはいZ🮌🮕🮘
NBSP🮏🮙🮇
FX🮈🮂🮃🮕
  表示される大文字と小文字は Commodore PET 8032 と一致します。Commodore PET 2001 では反対の大文字と小文字が使用されます。
  標準PETSCIIとは異なります。

制御文字

グラフィック文字はコモドールシステム間でほぼ共通でしたが、制御文字は頻繁に変更されました。以下の表は、コモドールPET 2001、コモドールPET 8032、VIC-20コモドール64コモドール16コモドール128(40桁モードおよび80桁モード)における制御文字の意味を示しています。

PETSCII制御文字[6] [17]
ヘックス小数点ペット 2001PET 8032VIC-20C64C16C128(40列)C128(80列)
000
011
022下線オン
033停止
044
055
066
077ベルベル
088ロックケース
099タブケースのロックを解除タブ
0A10改行
0B11ケースのロックを解除
0℃12ロックケース
0D13戻る
0E14小文字
0F15ウィンドウ上部を設定フラッシュオン
1016
1117カーソルダウン
1218リバースオン
1319
1420削除
1521キルライン
1622右に消去
1723
1824タブセット/クリア
1925上にスクロール
1A26
1B27ESCESC
1C28
1D29カーソル右
1E30
1階31
80128
81129オレンジダークパープル
82130フラッシュオン下線オフ
83131走る
84132フラッシュオフ
85133F1
86134F3
87135ダブルベルF5
88136F7
89137タブセット/クリアF2
8A138F4
8B139F6
8C140F8ヘルプF8
8D141Shift +リターン
8E142大文字
8階143ウィンドウの端を設定するフラッシュオフ
90144
91145カーソルアップ
92146リバースオフ
93147クリア
94148INST
95149上に行を挿入茶色ダークイエロー
96150左に消去ピンク黄緑ピンク
97151ダークグレーピンクダークグレーダークシアン
98152ミディアムグレー青緑ミディアムグレー
99153下にスクロールライトグリーン水色ライトグリーン
9A154水色ダークブルー水色
9B155ライトグレーライトグリーンライトグレー
9C156
9D157カーソル左
9E158黄色
9階159シアン

VIC-20とC64/128の色についてはVIC-IIの記事に記載されています。

基数128

PETSCIIの最初の192コードのうち、32~127と160~192の128のグラフィック文字があります。これにより、DATA文やPETSCII対応マシン間で「base128」形式のエンコーディングが可能になります。これには制御文字も含まれ、これらは引用符で囲むと表示されますが、どの制御文字が定義されているかはシステムによって異なります。

「Base 128」エンコーディングの主な用途は、コモドールBASICのDATA文です。バイナリデータは比較的低いオーバーヘッドで格納できるため、1文字のデータで7ビットのデータをエンコードできます。標準的な80文字の行では、通常4文字が行番号に、2文字が省略形のDATA文(dA)に使用されます。カンマとコロンはBASICにとって重要なので、引用符も必要となり、データには73文字が残ります。1文字あたり7ビットの場合、1つのDATA行には511ビットのバイナリデータを格納でき、効率は79%です。3桁の行番号を使用すると、効率は80%に向上します。2桁の行番号を使用すると、効率は82%になります。

行番号1行あたりのデータ文字数1行あたりのビット数効率最大行数最大合計データバイト数
1-9 [あ]765320.831259598
10~99755250.820312905,906
100~999745180.80937590058,275
1000~9999735110.79843759,000574,875
10000-65535 [b]725040.787555,536 [b]約3.5MB
  1. ^ 行 0 が GOTO であると想定します。
  2. ^ ab 最大行番号はおそらく 1 ずれています。

Commodore BASIC でバイナリ データを保存する場合、通常は 2 桁または 3 桁の行番号が最適な選択肢のようです。

基数164

164個のPETSCII文字を引用符で囲んだ文字列で表現できるため、理論的にはBase 164も可能となります。これにより、カラー値、ファンクションキー、カーソルコントロールが追加されます。

参照

参考文献

  1. ^ レウナネン、マルク;ヘイキネン、テロ。アンダース・カールソン(2018年11月22日)。 「PETSCII – 文字セットとクリエイティブ プラットフォーム」(PDF)リプレイ。ポーランドのゲーム研究ジャーナル5 (1): 27–47土井:10.18778/2391-8551.05.02。
  2. ^ ab バグナル、ブライアン (2007). 『オン・ザ・エッジ:コモドールの壮大な興亡』ウィニペグ:バリアント・プレス. pp. 43, 54– 55. ISBN 978-0-9738649-0-8
  3. ^ Tramiel, Leonard (2021年12月27日). 「PETSCIIの作成」. Vintage Computer Stories . Blogspot.
  4. ^ “A Conversation with Chuck Peddle, Bil Herd, Jeri Ellsworth - part 3 - BIOS - blip.tv”. blip.tv. 2010年9月5日 [2009年]. 6:30. 2011年1月9日時点のオリジナルよりアーカイブ。(鏡)
  5. ^ Andersson, Larry (2000年11月25日). 「コモドール・ペット・コンピュータ よくある質問集」Zimmers.net 1.7.
  6. ^ abcdefg Oy, Aivosto (2014)、「Commodore PETSCII 文字セット」(PDF)Aivosto
  7. ^ abc Ewell, Doug; Bettencourt, Rebecca; Bánffy, Ricardo; Everson, Michael; Marín Silva, Eduardo; Mårtenson, Elias; Shoulson, Mark; Steele, Shawn; Turner, Rebecca (2019年1月4日)、「ReadMe.txt」、L2/19-025: レガシーコンピュータおよびテレテキストの文字をUCSに追加するための提案(PDF)、Unicodeコンソーシアム
  8. ^ Brain, Jim (1996年3月16日). 「Commodore Trivia Edition #26 Answers for February 1996」. Commodore Trivia (メーリングリスト). Brain Innovations, Inc. – Zimmers.net経由. Q $195) VIC-20以前のCBMマシンでは、どのchr$コードがchr$(44)と同じ文字、つまりカンマを出力しますか?A $195) 108. Q $196) $195で説明されている文字は何か役に立ちますか?A $196) INPUTで読み込んだ文字列にカンマを挿入します。INPUTはカンマ(chr$(44))を入力フィールド間の区切り文字として扱いますが、chr$(108)では同じ効果は得られません。そのため、ディスクに書き込まれたデータで44を108に置き換え、それをINPUTで読み込むことができます。


  9. ^ Ewell, Doug; Bettencourt, Rebecca; Bánffy, Ricardo; Everson, Michael; Marín Silva, Eduardo; Mårtenson, Elias; Shoulson, Mark; Steele, Shawn; Turner, Rebecca (2019年1月4日) L2/19-025: レガシーコンピュータとテレテキストの文字をUCSに追加するための提案(PDF)、Unicodeコンソーシアム
  10. ^ ab Bettencourt, Rebecca G. 「PETSCIIからUnicodeへのマッピング」KreativeKorp
  11. ^ Bettencourt, Rebecca (2018年4月20日)、「CVICIPRI.TXT」、L2/19-025: レガシーコンピュータとテレテキストの文字をUCSに追加する提案(PDF)
  12. ^ Bettencourt, Rebecca (2018年4月20日)、「C64IPRI.TXT」、L2/19-025: レガシーコンピュータとテレテキストの文字をUCSに追加する提案(PDF)
  13. ^ Bettencourt, Rebecca (2018年10月11日)、「CVICIALT.TXT」、L2/19-025: レガシーコンピュータとテレテキストの文字をUCSに追加する提案(PDF)
  14. ^ Bettencourt, Rebecca (2018年10月11日)、「C64IALT.TXT」、L2/19-025: レガシーコンピュータとテレテキストの文字をUCSに追加する提案(PDF)
  15. ^ Bettencourt, Rebecca (2018年4月20日)、「CPETIPRI.TXT」、L2/19-025: レガシーコンピュータとテレテキストの文字をUCSに追加する提案(PDF)
  16. ^ Bettencourt, Rebecca (2018年10月11日)、「CPETIALT.TXT」、L2/19-025: レガシーコンピュータとテレテキストの文字をUCSに追加する提案(PDF)
  17. ^ Commodore 128 プログラマーズ・リファレンス・ガイド(PDF) . Commodore Business Machines, Inc. 1986年2月. pp.  666– 668. ISBN 0-553-34292-4
  • PETSCIIからUnicodeへのマッピングとそれを使用したTrueTypeフォント
  • 8ビットのタイポグラフィ:システムフォント
  • オンラインPETSCIIアートエディター
  • PETSCII-アート
Retrieved from "https://en.wikipedia.org/w/index.php?title=PETSCII&oldid=1296970106"