SHARP PC-1401/02 に関する記事です。主にマニュアルを紛失して使い方がわからなくなった方への情報です。
このトピックでは文字が黄色のキーはSHIFTキーを押した後にキートップの文字のキーを押すことを意味しています。 例えば@はSHIFT+Iを意味します。
記事中で主に扱っているのは PC-1401 ですが、PC-1402 でもこのページの記事がほぼそのまま通用すると思います。PC-1401/02 は基本的にメモリサイズの違いしかありません。
SHARP PC-1401/02 のスペックは以下の通りです。
機能 | PC-1401 | PC-1402 |
CPU | SC61860 (576KHz) | |
RAM | 4KB | 10KB |
液晶ディスプレイ | 16桁 / 1行 (5x7 ドットマトリクス) |
|
インターフェィス | ペリフェラルポート 11ピン (2.54mm ピッチ) | |
バッテリー | CR2032 x 2 | |
消費電力 | 0.03W | |
本体寸法 | 170(W)×72(D)×9.5(H)mm | |
本体重量 | 約150g | |
価格 | ¥29,800 | ¥34,800 |
発売年 | 1983 | 1984 |
PC-1403 / PC-1403H という海外向けの製品がありますが、あちらは 24 桁 1 行で小文字が使えたり行列演算が行えたりと、PC-1460 を薄くしたような機種となっています。ほぼ別物ですので、当記事では扱いません。
以下、PC-14xx 系列に関する余談です。
とりあえず電池の入れ方からでしょうか?
電池はCR2032 が 2 枚必要です。裏蓋を外し、さらに電池押さえをスライドさせると電池を交換できます。バックアップ電池はありませんので、電池交換をすると RAM の内容が消えてしまいます。
電池交換直後は画面が化けたり、BUSY シンボル (インジケーター) が点灯したままの状態になっていたりするので、何もキーを押さずに計算機裏面にある ALL RESET ボタンを押してください。
今でこそ CR2032 は 100 円ショップで 3 枚 110 円で売られていたりしますけど、当時はそこそこ高かったんですよねぇ...。
電源の ON / OFF は本体左上のスライドスイッチで行います。
電源 ON の状態でも何もせずにしばらく放置すると勝手に電源が OFF になります (オートパワーオフ)。オートパワーオフから復帰するには、ON( )を押してください。
PC-1401/02 には 3 つの動作モードがあります。モード切替は本体左側にあるデフォルトで関数電卓モードです。
で行います。モード | ボタン | 説明 |
関数電卓モード | 関数電卓です。 | |
RUN モード | 電卓として使ったり、プログラムの実行を行います。 | |
PROGRAM モード | プログラムの入力を行います。 |
BASIC の RUN / PROGRAM モードは
キーでトグル切り替えです。関数電卓モード | (何も起きない) | BASIC RUN モード |
RUN モード | 電卓モード | BASIC PROGRAM モード |
PROGRAM モード | 電卓モード | BASIC RUN モード |
ファイル操作は [RUN] モードで行います。
プログラムの実行
メモリ上の BASIC プログラムは RUN コマンドで実行できます。RUN コマンドの書式は以下の通りです。
|
RUN コマンドは RUN モード (RUN) で実行します。プログラムモード (PRO) になっている場合にはスライドスイッチを切り替えて押して RUN モード (RUN) にする必要があります。
引数として行番号を指定すると BASIC プログラムの途中から実行する事ができます。BASIC プログラムを終了させるにはBREAK(ON) キーを押します。
データレコーダー (カセットレコーダー)
PC-1401/02 はメモリ上のプログラムをデータレコーダー (カセットレコーダー) へ保存したり、
|
逆に読みこんだりできます。
|
非公開命令ですが、メモリブロックをそのままバイナリファイルとして保存したり、
|
逆に読みこんだりする事もできます。開始アドレスを省略すると CSAVEM で保存した際の開始アドレスに読み込まれます。
|
CLOAD / CSAVE 系の命令を使うには以下のいずれかの機器が必要です。
周辺機器 | カセットインターフェイス | カセットレコーダ | プリンタ |
CE-124 | 〇 | - | - |
CE-126P | 〇 | - | 〇 |
CE-129P | 〇 | - | 〇 |
CE-124 / CE-126P と接続して使う、データレコーダ CE-152 (コンパクトカセット) / CE-127R (マイクロカセット) もあります。
電卓として使うのであれば [電卓] モードにします。普通の電卓として使うキーは以下の通りです。
キー | キー入力 | 意味 | 式 | 備考 |
~ | 数値 | - | ||
~ | 16進数値 | - | 16進表示の場合に使う。A(10)~F(15)。 | |
÷/ | 除算 | value1 ÷/ value2 | ||
×* | 乗算 | value1 ×* value2 | ||
減算 | value1 | value2|||
加算 | value1 | value2|||
+/- | 符号反転 | value +/- | 表示されている数値の「正(+)」と「負(-)」を入れ替える。 | |
小数点 | - | |||
イコール | - | 計算結果の表示 | ||
C・CE | クリア・クリアエントリー | - | 一度押すと表示されている値がクリアされる (訂正)。続けてもう一度押すと計算内容がクリアされる。 エラー表示のクリアにも使う。 |
|
CA | SHIFTC・CE | クリアオール | - | すべての計算内容をクリアする |
x→M | ストアメモリー | value x→M | 表示されている値を独立メモリーに設定する。0 を登録する (直前にC・CEを押す) 事で独立メモリーをクリアできる。 | |
RM | リコールメモリー | - | 独立メモリーの値を呼び出す。 | |
F⇔E | 表示方式指定 | - | 押すたびに 通常表示と指数表示を切り替える。 | |
TAB | SHIFTF⇔E | 小数点位指定 | - | 表示方式が通常表示時の小数点位を指定する。SHIFTF⇔E だと小数点第5位の表示となる。 |
M+ | メモリープラス | value M+ | 表示されている値を独立メモリーの値に加算する。 | |
→HEX | 16進表示 | - | 値を16進数表示にする。 | |
→DEC | SHIFT→HEX | 10進表示 | - | 値を10進数表示にする。 |
→DEG | 度.分秒→度 | value →DEG | 度.分秒を度に変換する。(無理矢理だが時刻計算をする事も可能) | |
→D.MS | SHIFT→DEG | 度→度.分秒 | value →D.MS | 度→度.分秒に変換する。(無理矢理だが時刻計算をする事も可能) |
EXP | 指数入力 | - | 指数入力を行う。例えば 1.2E-4 (1.2×10-4) を入力したい場合、 と入力する事で 0.00012 を入力できる。 |
|
/ | 演算順序指定 | - | 演算の順序を指定する。例えば (1+2)*3 のような場合に使う。 | |
DRG | SHIFT・ | 角度単位変更 |
関数電卓として使う場合にはさらに以下のキーを使います。
キー | キー入力 | 意味 | 式 | 備考 |
hyp | ハイパボリック | - | 続くsin,cos,tanをハイパボリック (双曲線) とする。 | |
archyp | SHIFThyp | アークハイパボリック | - | 続くsin,cos,tanをアークハイパボリック (逆双曲線) とする。 |
(座標の区切り) | - | 座標の区切りを入力、或いは座標の切り替えに使う。主に座標変換の入力の際に使われる。 | ||
sin | sin (正弦) | value sin | ||
sin-1 | SHIFTsin | arcsin (逆正弦) | value sin-1 | |
hypsin | sinh (双曲線正弦) | value hypsin | ||
archypsin | SHIFThypsin | arcsinh (逆双曲線正弦) | value archypsin | |
cos | cos (余弦) | value cos | ||
cos-1 | SHIFTcos | arccos (逆余弦) | value cos-1 | |
hypcos | cosh (双曲線余弦) | value hypcos | ||
archypcos | SHIFThypcosn | arccosh (逆双曲線余弦) | value archypcos | |
tan | tan (正接) | value tan | ||
tan-1 | SHIFTtan | arctan (逆正接) | value tan-1 | |
hyptan | tanh (双曲線正接) | value hyptan | ||
archyptan | SHIFThyptan | arctanh (逆双曲線正接) | value archyptan | |
ln (自然対数) | value | |||
ex | SHIFT | exp (指数) | value ex | |
log | log10 (常用対数) | value | ||
10x | SHIFT | 10x (10 の冪乗) | value 10x | |
π | SHIFT | π/ pi (円周率) | value π | |
冪乗 | value1 | value2|||
x√y | SHIFT | 冪根 | value1 x√y value2 | |
√ (平方根) | value | |||
3√ | SHIFT | 3√ (立方根) | value 3√ | |
2乗 (平方) | value | |||
Δ% | SHIFT | % (百分率) | value Δ% |
直前の値を 1/100 にする。 1200 の 15% を求める: ×*SHIFT 180 が 1200 の何 % かを求める: ÷/SHIFT |
1/x | 1/x (逆数) | value 1/x | 1/5 の場合には1/x | |
→rθ | SHIFT | 極座標変換 | value1 →rθ | value2直交座標 (x,y) を極座標 (r, θ) へ変換する。直交座標 (6, 4) を極座標に変換するには SHIFT1/xと入力する。 最初は r (動径) が表示されている。もう一度 を押すと θ(偏角) が表示される。 |
→xy | SHIFT | 直交座標変換 | value1 →xy | value2極座標 (r, θ) を直交座標 (x,y) へ変換する。極座標 (7.2, 33.7) を直交座標に変換するには SHIFT と入力する。 最初は座標 x が表示されている。もう一度 を押すと座標 y が表示される。 |
n! | SHIFT | n! (階乗) | value n! |
簡易電卓として使うのであれば RUN モードにします。
キー | キー入力 | 意味 | 式 | 備考 |
~ | 数値 | - | ||
小数点 | - | |||
除算 | value1 | value2|||
乗算 | value1 | value2|||
減算 | value1 | value2|||
加算 | value1 | value2|||
C・CE | クリア | - | 表示されている値がクリアされる。エラー表示のクリアにも使う。 | |
CA | SHIFTC・CE | クリアオール | - | すべての計算内容をクリアする |
指数入力 | - | 指数入力を行う。例えば 1.2E-4 (1.2×10-4) を入力したい場合、 と入力する事で 0.00012 を入力できる。 |
||
/ | 演算順序指定 | - | 演算の順序を指定する。例えば (1+2)*3 のような場合に使う。 | |
計算実行 | - |
関数電卓のように使うにはさらに以下のキーを使います。
キー | キー入力 | 意味 | 式 | 備考 |
DRG | SHIFT・ | 角度単位変更 | ||
DEGREE | DEGREE (度) | DEGREE で角度の単位を度に変更。DEG のシンボルが点灯する。 | ||
RAD | RAD (ラジアン) | RAD で角度の単位をラジアンに変更。RAD のシンボルが点灯する。 | ||
GRAD | GRAD (グラード) | GRAD で角度の単位をグラードに変更。GRAD のシンボルが点灯する。 | ||
π | SHIFT | π/ pi (円周率) | value π | |
√ (平方根) | value | |||
冪乗 | value1 | value2|||
^ | SHIFT | 冪乗 | value1 ^ value2 |
次の演算子も使えます。これらの演算子は BASIC プログラム内でも使えます。
キー | キー入力 | 意味 | 式 | 備考 |
AND | AND (論理積) | value1 AND value2 | ||
NOT | NOT (否定) | NOT value | ||
OR | OR (論理和) | value1 OR value2 |
次の関数も使えます。これらの関数は BASIC プログラム内でも使えます。
キー | キー入力 | 意味 | 式 | 備考 | ||||||||
ABS | ABS (絶対値) | ABS value | ||||||||||
cos-1 | SHIFT | ACS (逆余弦: arccos) | cos-1 value | |||||||||
archyp | SHIFT | AHC (逆双曲線余弦) | archyp value | |||||||||
archyp | SHIFT | AHS (逆双曲線正弦) | archyp value | |||||||||
archyp | SHIFT | AHT (逆双曲線正接) | archyp value | |||||||||
sin-1 | SHIFT | ASN (逆正弦: arcsin) | sin-1 value | |||||||||
tan-1 | SHIFT | ATN (逆正接: arctan) | tan-1 value | |||||||||
COS (余弦) | value | |||||||||||
3√ | SHIFT | CUR (立方根) | 3√ value | |||||||||
→DEC | SHIFT | DEC (16進→10進変換) | →DEC value | |||||||||
DEG (度分秒→10進数度) | value | |||||||||||
→D・MS | SHIFT | DMS (10進数度→度分秒) | →D・MS value | |||||||||
ex | SHIFT | EXP (指数: ex) | ex value | ボタンでは E が入力されるだけ。 | ||||||||
n! | SHIFT | FAC (階乗: n!) | value n! | |||||||||
HCS (双曲線余弦) | value | |||||||||||
HEX (10進→16進変換) | value | |||||||||||
HSN (双曲線正弦) | value | |||||||||||
HTN (双曲線正接) | value | |||||||||||
INT | INT (整数化) | INT value | ||||||||||
LN (自然対数: loge) | value | |||||||||||
LOG (常用対数: log10) | value | |||||||||||
π | SHIFT | PI (円周率) | π | ※擬似変数 | ||||||||
→rθ | SHIFT | POL (直交座標→極座標変換) | →rθ (value1, value2) | |||||||||
RCP (逆数: 1/x) | value | |||||||||||
→xy | SHIFT | REC (極座標→直交座標変換) | →xy (value1, value2) | |||||||||
RND | RND (ランダム) | RND value |
|
|||||||||
x√y | SHIFT | ROT (冪乗根) | x√y value | |||||||||
SGN | SGN (符号関数) | SGN value |
|
|||||||||
SIN (正弦) | value | |||||||||||
SQR (平方根) | value | |||||||||||
SQU (2 乗) | value | |||||||||||
TAN (正接) | value | |||||||||||
10x | SHIFT | TEN (指数: 10x) | 10x value |
PC-1401/02 の電卓モードには、さらに統計モード (STAT) があります。統計モードに使うキーは画像の通りです。
統計モードに使うキーは以下の通りです。
キー | キー入力 | 意味 | 式 | 備考 |
STAT | SHIFT | 統計モード切り替え | STAT のシンボル (インジケーター) が切り替わる。 | |
RM | 2 変数データの区切り | |||
M+ | 1 変数データ入力 | value | ||
1 変数データ入力 (度数n) | value | n値 50 のデータを 4 件登録するには、 | 。||
2 変数データ入力 | value1 | value2|||
2 変数データ入力 (度数n) | value1 | value2 n値 (2,3) のデータを 5 件登録するには、 | 。||
CD | SHIFT | 1 変数データ削除 | value CD | |
1 変数データ削除 (度数n) | value CD | n値 50 のデータを 4 件削除するには、CD。 | ||
2 変数データ削除 | value1 CD | value2|||
2 変数データ削除 (度数n) | value1 CD | value2 n値 (2,3) のデータを 5 件削除するには、CD。 |
"1 変数"データ (x) に対する統計用のキーは次の通りです。
キー | キー入力 | 変数 | 意味 |
Z | サンプル数 | ||
Y | サンプル (x) の総和 | ||
Σx2 | SHIFT | X | サンプル (x) の2乗和 |
x̄ | SHIFT | サンプル (x) の平均値 | |
Sx | SHIFT | サンプル (x) の標準偏差値。 | |
σx | SHIFT | サンプル (x) の母標準偏差値。 |
"2 変数"データ (x,y) に対する統計用のキーは次の通りです。
キー | キー入力 | 変数 | 意味 |
Z | サンプル数 | ||
Y | サンプル (x) の総和 | ||
Σx2 | SHIFT | X | サンプル (x) の2乗和 |
x̄ | SHIFT | サンプル (x) の平均値 | |
Sx | SHIFT | サンプル (x) の標準偏差値。 | |
σx | SHIFT | サンプル (x) の母標準偏差値。 | |
X→M | V | サンプル (y) の総和 | |
Σy2 | SHIFTX→M | U | サンプル (y) の2乗和 |
Σxy | SHIFT | W | サンプル (x,y) の積和 |
ȳ | SHIFT | サンプル (y) の平均値 | |
Sy | SHIFT | サンプル (y) の標準偏差値。 | |
σy | SHIFT | サンプル (y) の母標準偏差値。 | |
a | SHIFT | 回帰式の係数 a | |
b | SHIFT | 回帰式の係数 b | |
r | SHIFT | 相関係数 r | |
x´ | SHIFT | 推定値 (y の値から x の値を推定) | |
y´ | SHIFT | 推定値 (x の値から y の値を推定) |
※ 一部の統計量はメモリー (BASIC の変数) に引き継がれます。
編集に使うキーは以下の通りです。
キー | キー入力 | 意味 | 備考 |
/ | 行アップダウン | PROGRAM モードで、カーソルを上下に移動する。BASIC のリストを移動するのに使われる。 | |
/ | 左右カーソルシフト | カーソルを左右に移動する。 | で計算を実行した直後に押されると、直前に実行した計算式を呼び戻す。|
DEL | SHIFT | 削除 | カーソル位置の文字を削除する。 |
INS | SHIFT | 挿入 | カーソル位置に文字を挿入できる場所を確保する。確保された場所はカーソルの形状が変わる。 |
定義付けキーに使うキーは以下の通りです。
キー | キー入力 | 意味 | 備考 |
定義キー | 定義付けキーを押す前に押すキー。DEF のシンボルが点灯する。 | ||
~ , ~ | 定義付けキー | に続けて押されると、BASIC プログラムは対応するラベルから実行される。キー ~ は定義付けキーとして使えない。 |
次のような BASIC プログラムがあった場合、
|
RUN モードで、
を押すと "FIZZ"、 を押すと "BUZZ"、 を押すと "FIZZBUZZ"と表示され、 を押すとラベルが定義されていないのでエラーとなります。定義付けキーと共に、AREAD 命令が使われる事があります。AREAD 命令は定義付けキーでの実行前に画面に表示されていたものを変数に読み込みます。この機能により、プログラムに引数を渡す事ができます。
|
次のプログラムをC・CE で実行すると、
|
"6" が表示されます。RUN で引数を渡して実行する事はできません (そもそも "3 RUN" となってしまう)。
CE-124 は幅広い機種で使えるカセットインターフェイスです (現物を所持していないので、サービスマニュアルの画像です)。
今となっては入手難の CE-124 を探すより、後述の『ポケ POWER +』 を購入するのが便利でいいと思います。はんだ付けが苦手でないのなら、自作してみるのも手だと思います。
ブレッドボードで構築する事もできますし、基板を使った場合でも \2,000円程度で作れます。
See also:
ポケ POWER + は CR2032 を 2 枚使うポケコン用の外部電源です。カセットインターフェイス付きのものと付いていないものがあります。
See also:
CE-126P はプリンタ/カセットインターフェイスです。
See also:
Pocket Tools はポケコン用の各種ツールの集合体です。CE-124 等のカセットインターフェイスさえ持っていれば、PC との連携が可能になります。
次に挙げる機能がカセットインターフェイスが利用可能な SHARP 製ポケコンすべてにおいて利用可能です。すべてです。PC-1210 から PC-850S までもれなく利用できます。
PStart.exe が Pocket Tools の本体です。実行したらまずは "Edit SHARP SETtings" で環境設定を行います。お持ちの機種のコメントをアンコメントします。
|
Pocket Tools が想定しているツールで、Pocket Tools のアーカイブに含まれていないものは以下の通りです。
用途 | ソフトウェア |
テキストエディタ | PSPad |
バイナリエディタ | PSPad |
WAV ファイル録音/編集 | Audacity |
自分の好きなツールを登録して使っても構いません。[Edit | Edit...] で、メニューの中味を編集する事ができます。
フリーのサウンド編集ソフトです。CSAVE / CSAVEM された音声を録音/編集するのに使います。
ポケコンの CSAVE / CSAVEM を取り込む前に次の設定を行った方がいいと思います。
取り込み手順は、
となります。音声ファイルの形式は PC-1401/02 が取り込めるのなら *.wav 以外でも構わないのですが、Pocket Tools の事を考えると *.wav 形式で保存した方が便利です。
取り込んだ音声ファイルは、Pocket Tools で BASIC ソースや SHARP バイナリに変換し、それをさらに Pocket Tools で *.wav 形式で出力する事でキレイな音声ファイルにする事ができます。実機に取り込めないような音質の悪い音声ファイルでも BASIC ソースや SHARP バイナリに変換できる事があります。音声ファイルの前後の無音部分やノイズも取り除けるのでオススメです。
Pokekom Go は Android 用のポケコンエミュレータです。
Pokekom Go を使うには実機の ROM を吸い出す必要があります。
PC-1401 での ROM イメージ作成手順を以下に示します。効率は良くありませんが PC-1401/02 で同じように ROM 吸い出しを行えます。作業は Windows 上で行います。
|
|
|
|
|
|
Pokecom GO を一度実行して終了すると、Android 端末のどこかに [pokecom] フォルダができているので、[ROM] サブフォルダの中に pc1401mem.bin をコピーします。Pokecom GO を再度起動すれば PC-1401 のエミュレータが動作するようになります。
PC-1401 と PC-1402 にはメモリサイズ以外の相違はないので PC-1401 用の ROM をリネームすれば PC-1402 のエミュレータも動作するようになりますが、フリーエリアが PC-1401 のままの 3534 になります。ROM 内に RAM サイズが決め打ちで格納されているのだと思われます。
※ 実機が壊れた時のために ROM を吸い出しておく事をオススメします。
PC-1402 はメモリが多いので、一度に転送する量を増やして、取り込む回数を減らす事ができます。
機種 | H の値 | L の値 | D の値 | データ量 | 回数 |
PC-1401 | &3A | &00 | &800 | 2 KB | 4 回 |
PC-1402 | &22 | &00 | &1000 | 4 KB | 2 回 |
&2000 | 8 KB | 1 回 |
プログラムの先頭にある変数 H / L / D の初期値を機種に合わせて書き換えてください。HL の値は RAM の先頭 + &200 くらいが目安です。
イロイロ。
こうなっています。8bit ですが、カナも英小文字もありません。
&00 の文字は NUL です。&20 の文字はスペースです。CHR$ でオレンジ色の場所のコードを指定するとエラーになります。
こうなっています。
PC-1401 | PC-1402 | |
内部 ROM | 0000~1FFF | |
外部 ROM | 8000~FFFF | |
RAM | 3800~47FF | 2000~47FF |
VRAM | 6000~60BF |
RAM の特定の領域は決められた用途で使用されているため、基本的にユーザープログラムを置く事はできません。
PC-1401 | PC-1402 | |
フリーエリア | 3800~45CF | 2000~45CF |
固定変数エリア | 45D0 (Z) ~469F (A) | |
BASIC 先頭アドレスポインタ |
L: 46E1 H: 46E2 |
|
BASIC 終了アドレスポインタ |
L: 46E3 H: 46E4 |
|
ストリングバッファポインタ | 46F7 | |
変数ポインタ | L: 46FC H: 46FD |
|
ストリングバッファエリア | 4760 ~47AF | |
リザーブエリア | - | |
SIO バッファアドレス | - |
VRAM はこうなっています。
リニアにはつながっておらず、8桁目を境にアドレスの指定が変わります。
桁 | 開始 | 終了 | 桁 | 開始 | 終了 |
1 | 6000 | 6004 | 9 | 6067 | 6063 |
2 | 6005 | 6009 | 10 | 6062 | 605E |
3 | 600A | 600E | 11 | 605D | 6059 |
4 | 600F | 6013 | 12 | 6058 | 6054 |
5 | 6014 | 6018 | 13 | 6053 | 604F |
6 | 6019 | 601D | 14 | 604E | 604A |
7 | 601E | 6022 | 15 | 6049 | 6045 |
8 | 6023 | 6027 | 16 | 6044 | 6040 |
シンボルは 603C、603D と 607C に割り当てられています。
603C | 603D | 607C | |||||||||||||||||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
STAT | SML | 小文字 | カナ | CAL | RUN | PRO | HYP | SHIFT | DEF | BUSY | DE | G | RAD | ( ) | [M] | E |
次のプログラムを PC-1401/02 で実行すると、
|
最初と最後、8桁の境界に縦線が表示されます。
関連する非公開命令についても述べておきます。PEEK はアドレスで指定したメモリに格納されているデータを読み出します。
|
POKE はアドレスで指定したメモリにデータを格納します。
|
CALL は指定したアドレスから格納されている機械語プログラムを実行します。
|
プログラム中 (行番号 110) の CALL &05A2 は LCD を ON にするシステムサブルーチンを呼んでいます。VRAM を一括消去する最も簡単な方法は BASIC で PRINT " " を実行する事です。
ペリフェラルコネクタ (11ピン) のピンアサインは以下の通りです。ピン番号は本体上から順に振っていますが、資料によってはシールドが #1、SEL1 (IB5) が #2...MTout2 が #12 になっているものがあります。
NO | 端子 | 信号名 | IN/OUT | I/O |
1 | - | MTout2 | IN | - |
2 | GND | GND (+6V) | - | |
3 | VGG | VGG (0V) | - | |
4 | FO1 | Busy | OUT | OUT |
5 | FO2 | Din | OUT | OUT |
6 | Xin | MTin | IN | - |
7 | Xout | MTout1 | OUT | - |
8 | IB8 | Dout | IN | I/O |
9 | IB7 | ACK | IN | I/O |
10 | IB6 | SEL2 | OUT | I/O |
11 | IB5 | SEL1 | OUT | I/O |
通常のピンヘッダやブレッドボード用のジャンパーワイヤーを使って接続できます。
プリンタが接続されている時にP⇔NP(SHIFT ) を押すと、P というシンボルが表示され、計算過程や結果がプリンタで印字されるようになります (エラーは印字されません)。もう一度P⇔NPを押すと P のシンボルが消え、元に戻ります。
PC-1401/02 の ROM バージョンは次のコマンドで調べる事ができます。
|
PC-401/02 | ||
16進数 | 19 | 00 |
10進数 | 25 | 0 |
システムサブルーチンは内部 RAM に取られている演算レジスタ (8 バイト) に値を入れて呼び出します。演算レジスタは X / Y / Z の他に DRA / DRB / DRC と呼ばれる事があります。
機種 | X (DRA) | Y (DRB) | Z (DRC) |
PC-1401/02 | &10~&17 | &18~&1F | &20~&27 |
数値演算の場合、演算レジスタには BCD 形式で値を格納します。例えば X レジスタに格納するにはこうなります。
&10 | &11 | &12 | &13 | &14 | &15 | &16 | &17 | ||||||||
H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L |
指数符号 | 指数部 | 仮数符号 | 仮数部 | 補正 |
整数 1 はこのようになります。
&10 | &11 | &12 | &13 | &14 | &15 | &16 | &17 | ||||||||
H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L |
00 | 00 | 10 | 00 | 00 | 00 | 00 | 00 |
整数 12 (1.2e+1) はこのようになります。
&10 | &11 | &12 | &13 | &14 | &15 | &16 | &17 | ||||||||
H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L |
00 | 10 | 12 | 00 | 00 | 00 | 00 | 00 |
整数 123 (1.23e+2) はこのようになります。
&10 | &11 | &12 | &13 | &14 | &15 | &16 | &17 | ||||||||
H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L |
00 | 20 | 12 | 30 | 00 | 00 | 00 | 00 |
実数 0.0123 (1.23e-2) はこのようになります。
&10 | &11 | &12 | &13 | &14 | &15 | &16 | &17 | ||||||||
H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L |
99 | 80 | 12 | 30 | 00 | 00 | 00 | 00 |
整数 -123 (-1.23e+2) はこのようになります。
&10 | &11 | &12 | &13 | &14 | &15 | &16 | &17 | ||||||||
H | L | H | L | H | L | H | L | H | L | H | L | H | L | H | L |
00 | 28 | 12 | 30 | 00 | 00 | 00 | 00 |
例えば、X レジスタを使用する文字列の内部表現は次のようになっています。先頭 4 バイトは未使用です。
&10 | &11 | &12 | &13 | &14 | &15 | &16 | &17 |
- | &D0 (固定) | 文字列の格納されているアドレス (LH) | 文字列長 |
&4200 に "ABC" という文字列が書き込まれている場合、
アドレス | &4200 | &4201 | &4202 | &4203 | &4204 | &4205 | &4206 | &4207 |
16進値 | 41 | 42 | 43 | … | … | … | … | … |
文字 | A | B | C | … | … | … | … | … |
X レジスタの内容は次のようになります。
&10 | &11 | &12 | &13 | &14 | &15 | &16 | &17 |
- | - | - | - | D0 | 00 | 42 | 03 |
システムサブルーチンのアドレスは ROM バージョンによってバラバラです。
種別 | 機能 | 8002 の値 | ||
19 | 00 | |||
数 値 |
2 変 数 |
加算 | 8433 | |
減算 | 844A | |||
乗算 | 8454 | |||
除算 | 845E | |||
べき乗 | 8467 | |||
1 変 数 |
EXP | 847F | ||
SIN | 848D | |||
COS | 8494 | |||
TAN | 849B | |||
ASN | 84A2 | |||
ACS | 84A9 | |||
ATN | 84B0 | |||
DEG | 850A | 84F1 | ||
DMS | 8511 | 84F8 | ||
ABS | 94CE | 94F3 | ||
INT | 94AA | 94D1 | ||
SGN | 8558 | 853F | ||
RND | 8518 | 84FF | ||
SQR | 8486 | |||
LOG | 8478 | |||
LN | 8470 | |||
文字 | ASC | 8659 | ||
CHR$ | 867A | 8661 | ||
STR$ | 86D3 | 86BA | ||
VAL | 8728 | 870F | ||
比 較 |
数 値 |
<> | 864A | 8631 |
< | 85D7 | 85BE | ||
> | 85F2 | 85D9 | ||
= | 8636 | 861D | ||
<= | 8577 | 855E | ||
>= | 8584 | 856B | ||
文 字 |
<> | 8645 | 865C | |
< | 858C | 8553 | ||
> | 858E | 8565 | ||
= | 85FA | 8551 | ||
<= | 8653 | 865A | ||
>= | 8527 | 8559 | ||
表示 | LCD ON | 05A2 | ||
LCD OFF | 059E | |||
キー | スキャン | 048F | ||
サーチ | 10進→2進変換 符号あり |
1659 | ||
10進→2進変換 符号なし |
1664 | |||
2進→10進変換 符号あり |
13CC | |||
2進→10進変換 符号なし |
13C5 | |||
行番号サーチ 2進表現 |
BAF9 | BA87 | ||
変数のアドレスサーチ 単純変数 |
1AF4 | |||
変数のアドレスサーチ 配列変数 |
1809 | |||
印刷 | プリンタリセット | A8F2 | A88E | |
印字実行 | 804E |
※ 引用:
PC-1401/02 では CE-126P 固有の文字 (本体の LCD では表示できない文字) を出力する事が可能です。
機械語サブルーチンを呼んでコード表を印字するコードを書いてみました。PC-1401/02 に CE-126P を接続した状態で次のプログラムを実行してみてください。プログラムリストの最初の赤字の部分は ROM バージョンによって書き換える必要があります。
|
コード表が印字されます。
呼ばれている機械語ルーチンは次のようになっています。&3A0B からの 24 バイトを演算レジスタ X/Y/Z にコピーし、印字実行システムサブルーチンをコールしています。
|
CE-126P の特殊文字は次の通りです。
16進 | 10進 | 説明 |
00 | 0 | ヌル |
08 | 8 | 印字データメモリクリアコマンド |
0A | 10 | 用紙送りコマンド |
0D | 13 | 印字コマンド |
0E | 14 | (不明) |
0F | 15 | (不明) |
20 | 32 | スペース |
27 | 39 | スペース |
A0 | 160 | スペース |
多くの場合、読み込み (ロード) が悪いのではなく、保存 (セーブ) したファイルに問題があるので、[マイクのプロパティ] でマイク音量を最大にし、マイクブーストも最大にして保存してみましょう。
[マイクのプロパティ] に辿り着くには、
とするのが最も簡単です。録音レベルやマイクブーストは [レベル] タブで設定しますが、マイクブーストの設定が存在しない事もあります。
マイクブースト機能がなくても AGC (Auto Gain Control) で代用できる場合があります。
PC (のサウンドカード) に何らかの増幅機能がないと取り込みは難しいと思います。増幅機能のある USB サウンドカードを購入するか、マイクアンプを使うしかないと思います。
音質が悪い *.wav ファイルをサウンド編集ソフトでいじってもあまり状況は好転しないと思いますが、ERROR 8 で失敗するレベルの *.wav ファイルなら Pocket Tools で BASIC ソースや SHARP バイナリに変換する事はできるかもしれません。変換が可能だった場合には、それを Pocket Tools で *.wav 形式にすれば取り込めると思います。
ERROR 6? PC-1402 用のソフトを PC-1401 にロードしようとしていませんか?それは容量不足のエラーです。
次のようになっています。
エラーコード | エラー内容 |
1 | 文法エラー |
2 | 演算エラー |
3 | DIM / 範囲チェックエラー |
4 | ライン (行番号/ラベル) エラー |
5 | ネスト (深み) エラー |
6 | メモリエラー (容量オーバー) |
7 | フォーマット (書式) エラー |
8 | 入出力エラー |
9 | その他のエラー |
ハードケースの内側にエラーコードが載っています。
ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。