このエントリーをはてなブックマークに追加

東芝P351系制御コード

東芝P351

東芝P351は輸出向けのシリアルドットプリンターです。東芝のオフコンやパソピア1600等で使われていました。ヨーロッパ/アメリカ輸出向けなので漢字ROMを持っておらず、マルチバイト文字にも対応していません。

デュアルモードプリンター(J31DMP0x)シリーズとは異なるコード体系を持っています。QumeモードにするとQume社のコマンドが使用可能になり、また東芝独自の拡張コマンドも使用可能になります。IBM互換モードにするとデュアルモードプリンターの英語モードと同様、ESC/Pコマンドを受け付けるようになります。

インターフェイスはシリアルとパラレルの2種類用意されており、どちらを使うかはデュップスイッチで切り替えます。

デュップスイッチ

デュップスイッチ1~3は、背面のプリンターケーブルのコネクタ周辺にあります。また、デュップスイッチ4はカバーの中に隠れていますので、デュップスイッチ4を切り替えるためにはカバーを外す必要があります。

デュップスイッチ1

デュップスイッチ1は、インターフェイスに関する設定を行います。工場出荷時は全てがオフ(パラレルI/F)になっています。
8 インターフェイス/プロトコルの選択
7
6 ボーレートの選択
5
4
3 パリティーチェックの選択
2
1 ストップビットの選択

インターフェイス/プロトコルの選択 (ビット7、ビット8)
パラレルI/Fを使うかシリアルI/Fを使うかを切り替えます。また、シリアルI/Fを使うのであれば、プロトコルを選択します。
8 7 意味 デフォルト
OFF OFF パラレルI/F
OFF ON シリアルI/F(X-ON、X-OFF)
ON OFF シリアルI/F(Ready、Busy)
ON ON シリアルI/F(ETX、ACK)

ボーレートの選択(ビット4、ビット5、ビット6)
シリアルI/Fを使う場合のボーレートを選択します。
4 5 6 意味 デフォルト
OFF OFF OFF 110BPS
OFF OFF ON 300BPS
OFF ON OFF 600BPS
OFF ON ON 1200BPS
ON OFF OFF 2400BPS
ON OFF ON 4800BPS
ON ON OFF 9600BPS
ON ON ON 19200BPS

パリティチェックの選択 (ビット2、ビット3)
シリアルI/Fを使う場合のパリティーチェックの有無を選択します。
2 3 意味 デフォルト
OFF OFF 偶数パリティ
OFF ON 奇数パリティ
ON OFF パリティーチェックを無視
ON ON パリティービットなし

ストップビットの選択 (ビット1)
シリアルI/Fを使う場合のストップビットの長さを選択します。
1 意味 デフォルト
OFF 1ビット
ON 2ビット

デュップスイッチ2

デュップスイッチ2は、ビット長やキャラクターセット等を設定します。工場出荷時はビット2のみがオンになっています。
10 ビット長の選択
9 キャラクターセットの選択
8
7
6 文字間ピッチの選択
5
4 イメージ印刷モードの選択
3 フォントの選択
2
1

ビット長の選択 (ビット10)
データーを何ビット長にするかを選択します。7ビット長の場合は、 使えるキャラクターコードが00~7Fまでになります。 7ビットだと日本語だとカナが出なかったり漢字が使えなかったりといろいろ問題があるのですが、 アメリカやヨーロッパ言語だけれあれば7ビットで十分だったりもします。
10 意味 デフォルト 
OFF 8ビット ◯ 
ON 7ビット  

キャラクターセットの選択(ビット7、ビット8、ビット9)
7 8 9 意味  デフォルト
OFF OFF OFF 米国セット  ◯
OFF OFF ON 英国セット  
OFF ON OFF 仏国セット  
OFF ON ON 独国セット  
ON OFF OFF スエーデンセット  
ON OFF ON ノルウェイセット  
ON ON OFF スペインセット  
ON ON ON IBMセット  

文字間ピッチの選択 (ビット5、ビット6)
文字間ピッチを選択します。後からアプリ側でエスケープシーケンスで変更する事もできます。
5 6 意味  デフォルト
OFF OFF 10CPI  ◯
OFF ON 12CPI  
ON OFF プロポーショナル  
ON ON 16.7CPI(コンデンス&ドラフト印字)  

イメージ印字モードの選択 (ビット4)
イメージ印字モードの選択をします。イメージ印字(ESC ;)、高品位イメージ印字(ESC GS)のみで印字が行われ、内蔵フォントは一切出なくなります。

ここで設定するのはあくまで電源投入時のモードであり、後からアプリ側でイメージ印字オン(ESC=)、イメージ印字オフ(ESC?)のエスケープシーケンスで切り替える事もできます。
4 意味 デフォルト 
OFF イメージ印字モードオフ ◯ 
ON イメージ印字モードオン  

フォントの選択(ビット1、ビット2、ビット3)
フォントを選択します。後からアプリ側でエスケープシーケンスで変更する事もできます。こういう仕様というのは、得てして将来拡張のために予約した時に限って将来の拡張はないものです。
1 2 3 意味  デフォルト
OFF OFF OFF ドラフト印字  
OFF OFF ON 高品位フォント1(Elite)  ◯
OFF ON OFF 高品位フォント2(Courier)  
OFF ON ON フォントカートリッジ1のフォント  
ON OFF OFF フォントカートリッジ2のフォント  
ON OFF ON 将来の拡張のために予約  
ON ON OFF  
ON ON ON  

デュップスイッチ3

デュップスイッチ3は、ページ長や印字動作に関する設定等を設定します。工場出荷時はビット2のみがオンになっています。
8 ページ長の選択
7 両方向印字の選択
6 静音モードの選択
5 LFコマンド受信時の自動復改の設定
4 自動改行の設定
3 エミュレーションモードの設定
2 電源投入時にオンラインにするかどうかの選択
1 行バッファの選択

ページ長の選択 (ビット8)
1ページの長さを設定します。ストックフォームは通常66行ですが、A4単票用紙をタテで使うのであれば72行にします。
8 意味 デフォルト 
OFF 66行 ◯ 
ON 72行  

両方向印字の選択 (ビット7)
両方向印字か片方向印字かを選択します。後からアプリ側でエスケープシーケンスで切り替える事もできます。
7 意味 デフォルト 
OFF 両方向印字 ◯ 
ON 片方向印字  

静音モードの選択 (ビット6)
通常モードか静音モードかを選択します。後からアプリ側でエスケープシーケンスで切り替える事もできます。
6 意味 デフォルト 
OFF 通常モード ◯ 
ON 静音モード  

LFコマンド受信時の自動復改の設定 (ビット5)
LFコマンド受信時にヘッドが左端に戻るかどうか。Linuxで使うのであれば、改行コードはLF(0AH)のみなのでオンにします。MS-DOSやWindowsで使うのであれば、改行コードはCR LFなのでOFFにしておきます。後からアプリ側でエスケープシーケンスで切り替える事もできます。
5 意味 デフォルト 
OFF 自動復改しない ◯ 
ON 自動復改する  

自動改行の設定 (ビット4)
ヘッドが右端に達した時に自動改行するかどうか。後からアプリ側でエスケープシーケンスで切り替える事もできます。
4 意味 デフォルト 
OFF 自動改行しない ◯ 
ON 自動改行する  

エミュレーションモードの設定(ビット3)
QumeモードかIBMモードかを選択します。東芝コマンドは基本的にQume社のコマンド体系に基づいています。東芝コマンドはQume社のコマンドの上位互換で、Qume社のコマンドを内包しています。したがって、東芝モードの事をここでは「Qumeモード」と呼んでいます。また、IBMモードにすると、ESC/P系のコマンド体系になります。後からアプリ側でエスケープシーケンスで切り替える事もできます。
3 意味 デフォルト 
OFF Qumeモード ◯ 
ON IBMモード  

電源投入時にオンラインにするかどうかの選択(ビット2)
電源投入時にオンライン(印字可)になるかならないかを選択します。
2 意味 デフォルト 
OFF オフライン  
ON オンライン  ◯

行バッファの選択(ビット1)
行バッファを選択します。ちなみに、一見多い方が良いように思えますが、あんまりバッファが大きいと、お客さんによっては「印字中止キーを押したのに印字が止まらない」「バグではないのか?」という人もいるので困ったものです。(そういう人に「バッファ」の意味を説明しようとしても無理かと・・・)
1 意味 デフォルト 
OFF 4KB  ◯
ON 256KB  

デュップスイッチ4

デュップスイッチ4は、普段はカバーの下に隠れています。なので、切り替える時はカバーを外す必要があります。
6 改行コードの選択
5 テストモードの選択
4 印字位置の微調整
3
2
1

CRコード受信時の動作の選択(ビット6)
復改コード(CR=0DH)を受信した時にどうするか。Macで使うのであれば、改行コードはCRのみなのでオンにします。MS-DOSやWindowsで使うのであれば、 改行コードがCR LFなのでオフにしておかないと、DOS/Windows系の改行コードを受信する毎に2行ずつ改行してしまいます。
6 意味 デフォルト 
OFF ヘッドが復改するだけ。  ◯
ON ヘッドが復改してさらに紙送りもする。

テストモードの選択(ビット5)
プリンターをセルフテストにするかサービステストにするか・・・っていうか、サービステストって何だよ!?
5 意味 デフォルト 
OFF セルフテスト  ◯
ON サービステスト  

印字位置の微調整(ビット1~4)
ビット1~4の組み合わせで、0~15の値を表します。

のように、ヘッドが左←右の方向に動く時に左にズレる場合は、ビット1~4を低い値にします。


のように、ヘッドが左←右の方向に動く時に右にズレる場合は、ビット1~4を高い値にします。

ESCシーケンス

P351にはQumeモードとIBMモードがあり、デュップスイッチで切り替えるようになっています。ここでは、Qumeモードについて説明します。

IBMモードについては、ESC/Pと同じですので、ESC/P系制御コードのページを御覧ください。

プリンター初期化
ESC SUB I(1B 1A 49)
ESC CR P(1B 0D 50)
プリンターを電源投入時の状態にします。電源投入時の状態は、デュップスイッチの設定に従います。二種類ありますが、どちらも同じです。

エミュレーションモードの選択
ESC _(1B 5F)
エミュレーションモードをQumeモードにするか、IBMモードにするかを選択します。ESC _に続いて0でQumeモード、1でIBMモードになります。電源投入時はデュップスイッチの設定に従います。このコマンドを受信するとプリンターは(エミュレーションモード以外は)電源投入時の設定に戻ります。

それはいいんだけど、マニュアルにはパラメーターがバイナリなのかテキストなのか書いてません。他のコマンドにパラメーターをバイナリで指定するコマンドが少ない事からも、おそらくテキストではないかと思われます。

フォントの選択
ESC *(1B 2A)
フォントを選択します。ESC *に続いて1バイトのテキスト(30H~37H)で指定します。

0 ・・・ 高速印字
1 ・・・ 高品位 Elite
2 ・・・ 高品位 Courier
3 ・・・ 高品位プロポーショナル
4 ・・・ 高品位ダウンロード文字1
5 ・・・ 高品位ダウンロード文字2
6 ・・・ 高品位カートリッジ1のフォント
7 ・・・ 高品位カートリッジ2のフォント

ダウンロード文字の登録
ESC &(1B 26)
ダウンロード文字を登録します。

書式

ESC & C1 C2 C3 C4 C5 C6 N1 N2 W1 W2 P1 P2 DATA・・・

C1 フォントNo.
テキストで4または5を指定します。4でダウンロード文字1、5でダウンロード文字2になります。

C2 デフォルトのピッチ
テキストで、N E Pのいずれかを指定します。
N ・・・ ノーマルピッチ 10CPI
E ・・・ エリートピッチ 12CPI
P ・・・ プロポーショナルピッチ

C3 存在するピッチ
テキストで1~7を指定します。
1 ・・・ 1/10
2 ・・・ 1/12
3 ・・・ 1/10、1/12
4 ・・・ プロポーショナル
5 ・・・ 1/10、プロポーショナル
6 ・・・ 1/12、プロポーショナル
7 ・・・ 1/10、1/12、プロポーショナル

1/10=パイカピッチ
1/12=プロポーショナルピッチ

C4 登録/更新
1バイトのテキストで指定します。0で登録、1で更新です。すでに登録されているコードに新規登録、または登録されていないコードに更新をしようとした時は無視されます。

C5 C6 予備
未使用。2バイトの0(30H 30H)をセットします。

N1 シフトイン/シフトアウト
シフトイン(0FH)かシフトアウト(0EH)を指定します。

N2 コード
登録するコードを指定します。登録できるコードは、シフトイン時は21~7E、シフトアウト時はA0~BFですが、この場合実際には20~3Fに登録されます。シフトイン時の20Hや7FHには文字を登録する事ができません。ここに00(NULL)を指定すると、このコマンドはここで終了します。

W1 W2 キャラクター幅
キャラクターの幅を2バイトのテキストで、1/180インチ単位で指定します。01~23まで指定できます。

P1 P2 データー幅
データーの幅を2バイトのテキストで指定します。キャラクターの幅は1/180インチ単位で指定しますが、データーの幅は1/360インチ単位で指定します。したがって、データー幅はキャラクター幅の2倍-2を越えてはいけません。(2ラインは余白です。)

データー・・・
キャラクターのパターンを送信します。先の指定のデーター幅x4バイト必要ですが、実際には下位6ビットしか使いません。下位ビットが下、上位ビットが上です。



注意:
以下、「」内はマニュアルからの引用です。

・「水平に隣接した、いかなるドットも使ってはならない。1ドット1/360インチのアドレスを選択できるが、実際に印字できるのは1/180インチだからである。」って、なんのこっちゃ!? しかし、水平に隣接させちゃいけないんだとえらい難しい気も!?まあ、偶数カラムは全部0にしとけば間違いないかと。

・「23ライン目24ライン目はアンダーライン用のリザーブである。ここにドットを打ってもアンダーラインに上書きされる。」・・・要するにここにドットを打っても消されちゃうよって事みたい。

・「印字ヘッドのオーバーヒートを防ぐためにも、打刻するドットは全体の15%を越えてはならない」んだそうです。

トップマージン
ESC +(1B 2B)
現在の用紙の位置がトップマージンになります。

ボトムマージン
ESC -(1B 2D)
現在の用紙の位置がボトムマージンになります。

左マージン
ESC 9(1B 39)
現在のヘッドの位置が左マージンになります。

右マージン
ESC 0(1B 30)
現在のヘッドの位置が右マージンになります。

改行幅
ESC L(1B 4C)
改行幅を1/48インチ単位で設定します。ESC Lに続いて2桁のテキストで指定します。大抵は2桁で足りるのですが、どうしても3桁を指定したい時は、十の位のみ16進数(A~F)が指定できます。一の位は10進数です。

代替改行幅の指定
ESC ES(1B 1E)
改行幅を1バイトのバイナリで指定します。ただし、実際の値はそれに-1した値です。00(NUL)が指定された場合は無視されます。

パラメーター 設定される値
01H 0
02H 1
03H 2

文字間ピッチ
ESC E(1B 45)
文字間ピッチを1/120インチ単位で設定します。ESC Eに続いて2桁のテキストで指定します。大抵は2桁で足りるのですが、どうしても3桁を指定したい時は、十の位のみ16進数(A~F)が指定できます。一の位は10進数です。

代替文字間ピッチの指定
ESC US(1B 1F)
文字間ピッチをキャラクター1文字で指定します。後は「代替改行幅の指定」と同じなので、そちらを見てください。

ページ長指定
ESC F(1B 46)
1ページの長さを1/6インチ単位で指定します。ESC Fに続いて2桁のテキストで指定します。大抵は2桁で足りるのですが、どうしても3桁を指定したい時は、十の位のみ16進数(A~C)が指定できます。パラメーターは00~C7までが指定できます。

水平タブ全クリア
ESC 2(1B 32)
水平タブを全てクリアします。

現在位置の水平タブクリア
ESC 8(1B 38)
現在のヘッドの位置にある水平タブをクリアします。

現在位置の水平タブセット
ESC 1(1B 31)
現在のヘッドの位置を水平タブとして設定します。

水平タブセット(リスト)
ESC ( (1B 28)
水平タブをリストに従って設定します。ESC (に続いて、カンマ区切りで2桁のテキストで指定します。一番最後はピリオドを送信します。水平タブは0-159カラムまで指定でき、最大32個まで指定できます。2桁で足りない時は、十の位のみ16進数(A-F)が指定できます。

水平タブクリア(リスト)
ESC ) (1B 49)
水平タブをリストに従ってクリアします。リストの書式は「水平タブセット(リスト)」と同じですので、そちらを御覧ください。

1/2行バック改行
ESC D(1B 44)
現在設定された改行幅の半分だけ逆改行します。改行幅に奇数が指定されている時は、小数点以下切り捨てになります。

1/2行順改行
ESC U(1B 55)
現在設定された改行幅の半分だけ順改行します。改行幅に奇数が指定されている時は、小数点以下切り捨てになります。

1行逆改行
ESC LF(1B 0A)
1行逆改行します。現在用紙の先頭にある時は無視されます。ストックフォームで印字されている時は逆改行しても問題ないのですが、カットシートフィーダーで単票用紙を使っている時は、用紙の1/4以上を逆改行させないでください。また、用紙のボトム位置まで4行以内の時に逆改行させるとジャムるので、しないようにしてください。

用紙位置相対移動
ESC V(1B 56)
用紙位置を現在の位置から相対的に移動させます。移動量は1/48インチ単位で3桁のテキストで指定しますが、独自の16進数で指定します。具体的には、キャラクターコードから40Hを引いた値が設定値になります。

引数
@ 0
A 1
B 2
C 3
D 4
E 5
F 6
G 7
H 8
I 9
J 10
K 11
L 12
M 13
N 14
O 15

つまり、 @@@=000、 @@A=001、@@B=002・・・ OOO(オーオーオー)=4095になります(注1)。 また、1桁目に限り、P~Vが指定できます。

引数
P -0
Q -1
R -2
S -3
T -4
U -5
V -6

つまり、キャラクターコードで15(0FH)だけ下駄履かせされた値はマイナスになります。つまり、P@Aは-001、P@Bは-002、VOOは-1791になります。(注2

注1: 注2:
とはいえ、今即興で関数電卓で計算しただけで、正確性は定かではありません。もし計算が違っていても、決してYahoo知恵袋や教えてgoo等に晒すのはやめてください。

マイナスの値が指定された時は逆改行になります。ただし、トップマージンを越えて順改行、逆改行できるのは連続用紙(ストックフォーム)だけです。単票用紙の場合は、トップマージンよりも前には逆改行できませんし、ボトムマージンより下に改行させると次の紙の先頭になります。

垂直タブ絶対位置移動
ESC P(1B 50)
n番目の垂直タブの位置に移動します。ESC Pに続いて2桁のテキストで指定します。十の位に限り、16進数(A~F)が指定できます。

代替垂直タブ絶対位置移動
ESC VT(1B 0B)
n番目の垂直タブの位置に移動します。タブ番号はキャラクター1文字で指定します。後は「代替改行幅の指定」と同じなので、そちらを見てください。

順改行開始
ESC 5(1B 35)
順方向に改行します。つまり、逆改行モードを解除します。

逆改行開始
ESC 6(1B 36)
逆方向改行モードになります。すでに逆改行モードになっている場合は無視されます。復改コード(CR)を受信するか、順改行コマンドを受信すると解除されます。

1/120インチバックスペース
ESC BS(1B 08)
ヘッドが1/120インチだけ左に戻ります。

重ね打ち
ESC N(1B 4E)
次の文字を印字するまで、印字ヘッドがその場に留まります。

印字位置相対位置移動
ESC H(1B 48)
印字位置を相対的に移動させます。ESC Hに続いて独自の16進数3桁で指定します。パラメーターについては、「用紙位置相対移動」と同じなので、そちらを御覧ください。

水平位置相対移動
US(1F)
印字ヘッドを1/120インチ単位で相対的に移動させます。1Fに続いて1バイトのバイナリで移動量を指定します。01H~3FHまでが右、41H~7FHまでが左に移動します。ただし、41H~7FHは40Hを引いた値が移動量になります。

パラメーター 移動量(n/120インチ)
01H 1
02H 2
03H 3
: 
 3FH  63

パラメーター 移動量(n/120インチ)
41H -1
42H -2
43H -3
: 
 7FH  -63

水平タブ位置に移動
ESC C(1B 43)
n番目の水平タブの位置に移動します。パラメーターは2桁のテキストです。十の位のみ16進数(A~F)が指定できます。

代替水平タブ位置に移動
ESC HT(1B 09)
n番目の水平タブの位置に移動します。パラメーターは代替改行幅の指定と同じです。

自動復改、改行オン
ESC W(1B 57)
ヘッドが右マージンに達した時に、自動改行&復改をします。

自動復改、改行オフ
ESC Z(1B 5A)
ヘッドが右マージンに達した時は、復改コードを受信するまで印字するデーターは捨てられます。

自動改行オン
ESC , (1B 2C)
復改コード(CR)を受信した時に改行をするようにします。Macでは改行コードがCRのみなのでこのモードにしておきます。MS-DOSやWindowsでは改行コードがCR LFなので、このモードにすると改行コードの受信で2回改行してしまうので注意が必要です。

自動改行オフ
ESC . (1B 2E)

右マージンコントロールオン
ESC O(1B 4F)
もし右マージンまであと5キャラ以内のところで空白(20H)を受信したら、自動的に改行します。まあ、英語圏ならではの機能ですね。日本語なら好きな場所で改行できますから。

右マージンコントロールオフ
ESC Y(1B 59)

両方向印字
ESC <(1B 3C)
片方向印字
ESC <(1B 3E)
電源投入時はデュップスイッチ3-7の設定に従いますが、このコマンドで変更する事ができます。

無印字モードオン
ESC S(1B 53)
印字データーに従ってヘッドが動くだけで、何も印字しなくなります。ヘッドの故障(ベルトとか)をチェックする場合に使います。

無印字モードオフ
ESC T(1B 54)

プロポーショナルピッチオン
ESC $(1B 24)
プロポーショナルピッチモードになります。

プロポーショナルピッチオフ
ESC %(1B 25)

ボールド体オン
ESC K(1B 4B)
ボールド体になります。具体的には、同じ文字を多重印字します。ESC Kに続いて以下の値を1桁のテキストで指定します。

1 ・・・ 二重印字
2 ・・・ 三重印字
3 ・・・ 四重印字
4 ・・・ 五重印字

ボールド体オフ
ESC M(1B 4D)

影付き文字印字オン
ESC Q(1B 51)
文字を縦と横に1ドットずつズラしてもう1回印字します。

影付き文字オフ
ESC R(1B 52)

イタリックオン
ESC DC2(1B 12)
斜字体になります。

イタリックオフ
ESC DC4(1B 14)

1/60グラフィックモードオン
ESC 3(1B 33)
以後、スペースやバックスペースは1/60インチになります。また改行は1/48インチになります。自動改行や自動復改は無効になります。

1/120グラフィックモードオン
ESC G(1B 47)
以後、スペースやバックスペースは1/120インチになります。また改行は1/120インチになります。

1/60または1/120グラフィックモードオフ
ESC 4(1B 34)
1/60、1/120いずれのグラフィックモードもオフになります。

プログラムモードオン
ESC SO(1B 0E)
20H未満のコード(コントロールコード)を受信した場合に、NUL、ESC、DC2のように何が受信されたを印字するようになります。

第二プログラムモードオン
ESC #(1B 23)
20H以上のコードは等倍フォントで印字され、20H未満のコードは全て無視されます。

プログラムモードオフ
ESC SI(1B 0F)

横倍角オン
ESC !(1B 21)
横二倍角になります。

横倍角オフ
ESC "(1B 22)

アンダーラインオン
ESC I(1B 49)

アンダーラインオフ
ESC J(1B 4A)

コンデンスモードオン
ESC [(1B 5B)
高速印字モードになります。

コンデンスモードオフ
ESC J(1B 5D)

グラフィックモードオン
ESC =(1B 3D)
グラフィックモードになります。イメージ印字のみが有効となり、内蔵フォントは使えなくなります。

キャラクターモード
ESC ?(1B 3F)
グラフィックモードを終了し、キャラクターモードに戻ります。

イメージ印字
ESC ; (1B 3B)
イメージ印字を開始します。1ドットにつき横1/180インチです。ESC ;に続いて列数、データー・・・と指定します。列数は4バイトのテキストで指定します。たとえば10列なら0010とします。データーは1列につき4バイトなので、10列なら40バイト必要です。データーのフォーマットは「ダウンロード文字の登録」と同じですので、そちらをご覧ください。

高品位イメージ印字
ESC GS(1B 1D)
パラメーターについては「イメージ印字」と全く同じですが、こちらは1ドットにつき横1/360インチで印字されます。したがって、「イメージ印字」よりも倍の密度で印字されます。

このページの先頭へ
  広告