SHARP PC-1450 の使い方

SHARP PC-1450 に関する記事です。主にマニュアルを紛失して使い方がわからなくなった方への情報です。

このトピックでは文字が黄色のキーはSHIFTキーを押した後にキートップの文字のキーを押すことを意味しています。 例えば@SHIFT+Iを意味します。



SHARP PC-1450 諸元

SHARP PC-1450 は PC-1401 と PC-1350 を合わせたような機種です。

スペック

SHARP PC-1450 のスペックは以下の通りです。

機能 PC-1450
CPU SC61860 (768KHz)
RAM 4KB (CE-211M)
液晶ディスプレイ 16桁 / 1行
(5x7 ドットマトリクス)
インターフェィス ペリフェラルポート 11ピン (2.54mm ピッチ)
シリアル I/O ポート 15ピン (1.27mm ピッチ)
バッテリー CR2032 x 2
消費電力 0.03W
本体寸法 182(W)×72(D)×16(H)mm
本体重量 約175g
価格 ¥26,800
発売年 1985


使い方

とりあえず電池の入れ方からでしょうか?


電池の入れ方

電池はCR2032 が 2 枚必要です。PC-1450 の RAM はすべて RAM カード側にあるので RAM カードのバックアップ電池が生きている限り、手順さえ間違えなければ電池交換で内容が消える事はありません。

  1. 電源を OFF にする
  2. ロックスイッチを外して裏蓋を外し、保護板を外す。
  3. 先の尖ったものでストッパーを押して外し、電池押さえをスライドさせると電池を交換できる。
  4. 保護板を取り付け、裏蓋を取り付け、ロックスイッチでロックする。
  5. 電源が OFF の状態で ALL RESET ボタンを押す。
  6. 電源を ON にする

今でこそ CR2032 は 100 円ショップで 3 枚 110 円で売られていたりしますけど、当時はそこそこ高かったんですよねぇ...。


電池の入れ方 (その2)

メモリカードを取り外して電池交換をする方法もあります。

  1. 電源を OFF にする
  2. RAM カードを外す
  3. 電池を交換する
  4. 裏蓋を取り付け、ロックスイッチでロックする
  5. 電源を ON にし、 ALL RESET ボタンを押す
  6. 画面右側に * が表示される事を確認して電源を OFF にする
  7. ロックスイッチを外して裏蓋を外す
  8. RAM カードを取り付ける
  9. 裏蓋を取り付け、ロックスイッチでロックする
  10. 電源を ON にする

電池交換をする度に RAM カードを外すのは面倒なので、上で書いた方法でいいかと思います。

※ RAM カードを取り付けずに電源を ON にすると画面右側に * が表示されるのが正常な状態です。RAM カードやゼブラコネクタが壊れていると、画面に * が表示されたまま何もできません。


電源の ON / OFF

電源の ON / OFF は本体左上のスライドスイッチで行います。

電源 ON の状態でも何もせずにしばらく放置すると勝手に電源が OFF になります (オートパワーオフ)。オートパワーオフから復帰するには、ON(BRK)を押してください。


モード切替

PC-1450 には 3 つの動作モードがあります。モード切替は本体左側にあるCALBASICで行います。デフォルトで関数電卓モードです。

モード ボタン 説明
関数電卓モード CAL 関数電卓です。
RUN モード BASIC 電卓として使ったり、プログラムの実行を行います。
PROGRAM モード プログラムの入力を行います。

BASIC の RUN / PROGRAM モードはBASICキーでトグル切り替えです。

CAL BASIC
関数電卓モード (何も起きない) BASIC
RUN モード
RUN モード 電卓モード BASIC
PROGRAM モード
PROGRAM モード 電卓モード BASIC
RUN モード

ファイルの操作

ファイル操作は [RUN] モードで行います。

プログラムの実行

メモリ上の BASIC プログラムは RUN コマンドで実行できます。RUN コマンドの書式は以下の通りです。

RUN [{行番号 | ラベル}]

RUN コマンドは RUN モード (RUN) で実行します。プログラムモード (PRO) になっている場合にはスライドスイッチを切り替えて押して RUN モード (RUN) にする必要があります。

引数として行番号を指定すると BASIC プログラムの途中から実行する事ができます。BASIC プログラムを終了させるにはBREAK(ON) キーを押します。

データレコーダー (カセットレコーダー)

PC-1450 はメモリ上のプログラムをデータレコーダー (カセットレコーダー) へ保存したり、

CSAVE ["ファイル名"][,"パスワード"]

逆に読みこんだりできます。

CLOAD ["ファイル名"]

非公開命令ですが、メモリブロックをそのままバイナリファイルとして保存したり、

CSAVEM ["ファイル名";]開始アドレス, 終了アドレス

逆に読みこんだりする事もできます。開始アドレスを省略すると CSAVEM で保存した際の開始アドレスに読み込まれます。

CLOADM ["ファイル名";][開始アドレス]

CLOAD / CSAVE 系の命令を使うには以下のいずれかの機器が必要です。

周辺機器 カセットインターフェイス カセットレコーダ プリンタ
CE-124 - -
CE-126P -

CE-124 / CE-126P と接続して使う、データレコーダ CE-152 (コンパクトカセット) / CE-127R (マイクロカセット) もあります。


[電卓] モード (CAL)

電卓として使うのであれば [電卓] モードにします。普通の電卓として使うキーは以下の通りです。

キー キー入力 意味 備考
09 数値 -
AF 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⇔E5 だと小数点第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) を入力したい場合、
 
12EXP+/-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 ln (自然対数) value ln
ex SHIFTln exp (指数) value ex
log log10 (常用対数) value log
10x SHIFTlog 10x (10 の冪乗) value 10x
π SHIFTEXP π/ pi (円周率) value π
yx 冪乗 value1 yx value2 =
x√y SHIFTyx 冪根 value1 x√y value2 =
√ (平方根) value
3√ SHIFT 3√ (立方根) value 3√
x2 2乗 (平方) value x2
Δ% SHIFTx2 % (百分率) value Δ% 直前の値を 1/100 にする。
 
1200 の 15% を求める:
1200×*15SHIFTx2
 
180 が 1200 の何 % かを求める:
180÷/1200SHIFTx2
1/x 1/x (逆数) value 1/x 1/5 の場合には51/x
→rθ SHIFT1/x 極座標変換 value1 value2 →rθ 直交座標 (x,y) を極座標 (r, θ) へ変換する。直交座標 (6, 4) を極座標に変換するには
 
64SHIFT1/xと入力する。
 
最初は r (動径) が表示されている。もう一度を押すと θ(偏角) が表示される。
→xy SHIFT( 直交座標変換 value1 value2 →xy 極座標 (r, θ) を直交座標 (x,y) へ変換する。極座標 (7.2, 33.7) を直交座標に変換するには
 
72337SHIFT(と入力する。
 
最初は座標 x が表示されている。もう一度を押すと座標 y が表示される。
n! SHIFT) n! (階乗) value n!

[電卓] モード (BASIC)

簡易電卓として使うのであれば RUN モードにします。

キー キー入力 意味 備考
09 数値 -
小数点 -
除算 value1 value2
乗算 value1 value2
減算 value1 value2
加算 value1 value2
C・CE クリア - 表示されている値がクリアされる。エラー表示のクリアにも使う。
CA SHIFTC・CE クリアオール - すべての計算内容をクリアする
EXP 指数入力 - 指数入力を行う。例えば 1.2E-4 (1.2×10-4) を入力したい場合、
 
12EXP-4
 
と入力する事で 0.00012 を入力できる。
( / ) 演算順序指定 - 演算の順序を指定する。例えば (1+2)*3 のような場合に使う。
ENTER 計算実行 -

関数電卓のように使うにはさらに以下のキーを使います。

キー キー入力 意味 備考
DRG SHIFT 角度単位変更
DEGREE DEGREE (度) DEGREEENTER で角度の単位を度に変更。DEG のシンボルが点灯する。
RAD RAD (ラジアン) RADENTER で角度の単位をラジアンに変更。RAD のシンボルが点灯する。
GRAD GRAD (グラード) GRADENTER で角度の単位をグラードに変更。GRAD のシンボルが点灯する。
π SHIFT0 π/ pi (円周率) value π
√ (平方根) value
yx 冪乗 value1 yx 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 SHIFTcos ACS (逆余弦: arccos) cos-1 value
archypcos SHIFThypcos AHC (逆双曲線余弦) archypcos value
archypsin SHIFThypsin AHS (逆双曲線正弦) archypsin value
archyptan SHIFThyptan AHT (逆双曲線正接) archyptan value
sin-1 SHIFTsin ASN (逆正弦: arcsin) sin-1 value
tan-1 SHIFTtan ATN (逆正接: arctan) tan-1 value
cos COS (余弦) cos value
3 SHIFT CUR (立方根) 3 value
→DEC SHIFT→HEX DEC (16進→10進変換) →DEC value
→DEG DEG (度分秒→10進数度) →DEG value
→D・MS SHIFT→DEG DMS (10進数度→度分秒) →D・MS value
ex SHIFTln EXP (指数: ex) ex value EXPボタンでは E が入力されるだけ。
n! SHIFT) FAC (階乗: n!) value n!
hypcos HCS (双曲線余弦) hypcos value
→HEX HEX (10進→16進変換) →HEX value
hypsin HSN (双曲線正弦) hypsin value
hyptan HTN (双曲線正接) hyptan value
INT INT (整数化) INT value
ln LN (自然対数: loge) ln value
log LOG (常用対数: log10) log value
π SHIFTEXP PI (円周率) π ※擬似変数
→rθ SHIFT1/x POL (直交座標→極座標変換) →rθ (value1, value2)
1/x RCP (逆数: 1/x) 1/x value
→xy SHIFT( REC (極座標→直交座標変換) →xy (value1, value2)
RND RND (ランダム) RND value
X が負数の場合 直前に発生した乱数 (あるいは乱数列) と同じ乱数を発生させるために初期値を一定にする。
X が 0 から1 未満の場合 0 から 1 未満の乱数を発生させる。
X が1 以上の整数の場合 1 から X の値以下の乱数を発生させる。(1 ≦ RND X ≦ X)。
X が1 以上の実数の場合 1 から X の整数部に 1 を加えた値以下の乱数を発生させる。(1 ≦ RND X ≦ (INT X) + 1)
ただし、この場合は小数部の値によって乱数の発生に差が出る。
x√y SHIFTyx ROT (冪乗根) x√y value
SGN SGN (符号関数) SGN value
X > 0 1
X < 0 -1
X = 0 0
sin SIN (正弦) sin value
SQR (平方根) value
x2 SQU (2 乗) x2 value
tan TAN (正接) tan value
10x SHIFTlog TEN (指数: 10x) 10x value

統計モード

PC-1450 の電卓モードには、さらに統計モード (STAT) があります。統計モードに使うキーは画像の通りです。

統計モードに使うキーは以下の通りです。

キー キー入力 意味 備考
STAT SHIFT 統計モード切り替え STAT のシンボル (インジケーター) が切り替わる。
(x,y) RM 2 変数データの区切り
DATA M+ 1 変数データ入力 value DATA
1 変数データ入力 (度数n) value × n DATA 値 50 のデータを 4 件登録するには、50×4DATA
2 変数データ入力 value1 (x,y) value2 DATA
2 変数データ入力 (度数n) value1 (x,y) value2 × n DATA 値 (2,3) のデータを 5 件登録するには、2(x,y)3×5DATA
CD SHIFTDATA 1 変数データ削除 value CD
1 変数データ削除 (度数n) value × n CD 値 50 のデータを 4 件削除するには、50×4CD
2 変数データ削除 value1 (x,y) value2 CD
2 変数データ削除 (度数n) value1 (x,y) value2 × n CD 値 (2,3) のデータを 5 件削除するには、2(x,y)3×5CD

"1 変数"データ (x) に対する統計用のキーは次の通りです。

キー キー入力 変数 意味
( Z サンプル数
Σx ) Y サンプル (x) の総和
Σx2 SHIFT) X サンプル (x) の2乗和
SHIFT4 サンプル (x) の平均値
Sx SHIFT5 サンプル (x) の標準偏差値。
σx SHIFT6 サンプル (x) の母標準偏差値。

"2 変数"データ (x,y) に対する統計用のキーは次の通りです。

キー キー入力 変数 意味
( Z サンプル数
Σx ) Y サンプル (x) の総和
Σx2 SHIFT) X サンプル (x) の2乗和
SHIFT4 サンプル (x) の平均値
Sx SHIFT5 サンプル (x) の標準偏差値。
σx SHIFT6 サンプル (x) の母標準偏差値。
Σy X→M V サンプル (y) の総和
Σy2 SHIFTX→M U サンプル (y) の2乗和
Σxy SHIFT( W サンプル (x,y) の積和
SHIFT7 サンプル (y) の平均値
Sy SHIFT8 サンプル (y) の標準偏差値。
σy SHIFT9 サンプル (y) の母標準偏差値。
a SHIFT2 回帰式の係数 a
b SHIFT3 回帰式の係数 b
r SHIFT1 相関係数 r
SHIFT0 推定値 (y の値から x の値を推定)
SHIFT+/- 推定値 (x の値から y の値を推定)

※ 一部の統計量はメモリー (BASIC の変数) に引き継がれます。


編集

編集に使うキーは以下の通りです。

キー キー入力 意味 備考
/ 行アップダウン PROGRAM モードで、カーソルを上下に移動する。BASIC のリストを移動するのに使われる。
/ 左右カーソルシフト カーソルを左右に移動する。ENTERで計算を実行した直後に押されると、直前に実行した計算式を呼び戻す。
DEL SHIFT 削除 カーソル位置の文字を削除する。
INS SHIFT 挿入 カーソル位置に文字を挿入できる場所を確保する。確保された場所はカーソルの形状が変わる。

定義付けキー

定義付けキーに使うキーは以下の通りです。

キー キー入力 意味 備考
DEF 定義キー 定義付けキーを押す前に押すキー。DEF のシンボルが点灯する。
A=, Z  定義付けキー DEFに続けて押されると、BASIC プログラムは対応するラベルから実行される。キーQPは定義付けキーとして使えない。

次のような BASIC プログラムがあった場合、

10: "A": PRINT "FIZZ": END
20: "S": PRINT "BUZZ": END
30: "D": PRINT "FIZZBUZZ": END

RUN モードで、DEFAを押すと "FIZZ"、DEFSを押すと "BUZZ"、DEFDを押すと "FIZZBUZZ"と表示され、DEFFを押すとラベルが定義されていないのでエラーとなります。

定義付けキーと共に、AREAD 命令が使われる事があります。AREAD 命令は定義付けキーでの実行前に画面に表示されていたものを変数に読み込みます。この機能により、プログラムに引数を渡す事ができます。

AREAD 変数

次のプログラムをC・CE3DEFA で実行すると、

10 "A": AREAD V
20 PRINT V * 2

"6" が表示されます。RUN で引数を渡して実行する事はできません (そもそも "3 RUN" となってしまう)。



ハードウェア

カセットインターフェイス CE-124

CE-124 は幅広い機種で使えるカセットインターフェイスです (現物を所持していないので、サービスマニュアルの画像です)。

今となっては入手難の CE-124 を探すより、後述の『ポケ POWER +』 を購入するのが便利でいいと思います。はんだ付けが苦手でないのなら、自作してみるのも手だと思います。

ブレッドボードで構築する事もできますし、基板を使った場合でも \2,000円程度で作れます。

See also:


ポケ POWER +

ポケ POWER + は CR2032 を 2 枚使うポケコン用の外部電源です。カセットインターフェイス付きのものと付いていないものがあります。

See also:


プリンタ/カセットインターフェイス CE-126P

CE-126P はプリンタ/カセットインターフェイスです。

See also:


RS-232C レベルコンバータ CE-130T

RS-232C で通信するために必要なケーブルです。ハードウエアフロー制御に対応しています。


USB シリアル I/F を自作する

USB シリアル I/F は比較的簡単に自作できます。



ソフトウェア

Pocket Tools

Pocket Tools はポケコン用の各種ツールの集合体です。CE-124 等のカセットインターフェイスさえ持っていれば、PC との連携が可能になります。

次に挙げる機能がカセットインターフェイスが利用可能な SHARP 製ポケコンすべてにおいて利用可能です。すべてです。PC-1210 から PC-850S までもれなく利用できます。

PStart.exe が Pocket Tools の本体です。実行したらまずは "Edit SHARP SETtings" で環境設定を行います。お持ちの機種のコメントをアンコメントします。

rem set SHARPC=1100
rem set SHARPC=1246DB
rem set SHARPC=1211
rem set SHARPC=1245
rem set SHARPC=1251
rem set SHARPC=1260
rem set SHARPC=1262J
rem set SHARPC=1350
rem set SHARPC=1360K -o%KEYDIR%\KANJI.cfg
rem set SHARPC=1401
rem set SHARPC=1402
rem set SHARPC=1403
rem set SHARPC=1421
rem set SHARPC=1445
set SHARPC=1450
rem set SHARPC=1460

Pocket Tools が想定しているツールで、Pocket Tools のアーカイブに含まれていないものは以下の通りです。

用途 ソフトウェア
テキストエディタ PSPad
バイナリエディタ PSPad
WAV ファイル録音/編集 Audacity

自分の好きなツールを登録して使っても構いません。[Edit | Edit...] で、メニューの中味を編集する事ができます。


Audacity

フリーのサウンド編集ソフトです。CSAVE / CSAVEM された音声を録音/編集するのに使います。

ポケコンの CSAVE / CSAVEM を取り込む前に次の設定を行った方がいいと思います。

取り込み手順は、

  1. PC-1450で CSAVE または CSAVEM を実行できる状態にしておく。
  2. Audacity の録音ボタン () を押す。
  3. PC-1450 側でENTERキーを押して CSAVE または CSAVEM を実行。
  4. PC-1450 側でプロンプト (>) が表示されたら Audacity の停止ボタン (■) を押す。
  5. 取り込んだサウンドの前後にある、無音部分やノイズが乗った部分をカット (任意)。
  6. [ファイル | 書き出し | WAV として書き出し] で、*.wav 形式で保存。

となります。音声ファイルの形式は PC-1450 が取り込めるのなら *.wav 以外でも構わないのですが、Pocket Tools の事を考えると *.wav 形式で保存した方が便利です。

取り込んだ音声ファイルは、Pocket Tools で BASIC ソースや SHARP バイナリに変換し、それをさらに Pocket Tools で *.wav 形式で出力する事でキレイな音声ファイルにする事ができます。実機に取り込めないような音質の悪い音声ファイルでも BASIC ソースや SHARP バイナリに変換できる事があります。音声ファイルの前後の無音部分やノイズも取り除けるのでオススメです。


Pokekom Go

Pokekom Go は Android 用のポケコンエミュレータです。

Pokekom Go を使うには実機の ROM を吸い出す必要があります。

PC-1450 での ROM イメージ作成手順を以下に示します。効率は良くありませんが PC-1450 で同じように ROM 吸い出しを行えます。作業は Windows 上で行います。

  1. Pocket ToolsAudacity が使える状態にしておく。
  2. 内部 ROM (0000~1FFF) を 1KB ずつ吸い出す。デジホリの blog にあった BASIC プログラムをちょっと改変したものを Pocket Tools を使って PC-1450 に転送。

    100 H=&52:L=&00
    110 D=&400
    120 G=256:A=H*G+L:E=32768*(H>=128):F=D/G
    130 B=A+32:J=B/G:K=(B-E) AND &FF
    140 C=B+16:M=C/G:N=(C-E) AND &FF
    150 POKE A,0,3,16,J,K,132,24,7
    160 POKE A+8,2,F-1,52,2,255,52,0,1
    170 POKE A+16,130,19,4,8,144,53,144,219
    180 POKE A+24,4,38,47,13,47,18,55
    190 POKE B,0,0,N,M
    200 BEEP 2:FOR I=0 TO 32-F STEP F
    210 PRINT I/F: POKE B+1,I: CALL A
    220 CSAVE M C,C+D-1: BEEP 1
    230 NEXT I: BEEP 3
    
  3. 転送した BASIC プログラムを実行すると、最初に 2 回 BEEP が鳴る。これで準備完了。ENTER を押すと CSAVEM が始まるので、Audacity で録音して WAV 形式で保存 (INT01.wav のような連番の名前にしておくと判りやすい)。1KB 毎に BEEP で止まる。これを 8 回。1 回 40 秒弱。最後に BEEP が 3 回鳴ってプロンプトが出たら終了。
  4. 保存した *.wav ファイルを Pocket Tools で SHARP バイナリ形式 (*.IMG) に変換 ("Convert wav file to binary imagefile + parameter file" を実行)。
  5. 1KB の IMG ファイルが 8 つできたと思うので、これを結合。コマンドプロンプトから、
    COPY /b INT01.IMG + INT02.IMG + INT03.IMG + INT04.IMG + INT05.IMG + INT06.IMG + INT07.IMG + INT08.IMG INTERNAL_ROM.IMG
    のようにして結合する。間違って *.CFG ファイルを指定しないように注意。これで内部 ROM イメージ INTERNAL_ROM.IMG (8KB) が完成。
  6. 2000~7FFF の領域のフィラーファイルを作成する。コマンドプロンプトから、
    fsutil file createnew FILLER.IMG 0x6000
    のようにしてフィラーファイル FILLER.IMG (24KB) を作る。
  7. 外部 ROM (8000~FFFF) を 8KB ずつ吸い出す。デジホリの blog にあった BASIC プログラムをちょっと改変したものを Pocket Tools を使って PC-1450 に転送。

    100 L=&80:H=&100:D=&20
    110 BEEP 2:FOR I=L TO H-D STEP D
    120 PRINT (I-L)/D:A=I*256:B=D*256-1
    130 CSAVE M A,A+B:BEEP 1
    140 NEXT I:BEEP 3
  8. 転送した BASIC プログラムを実行すると、最初に 2 回 BEEP が鳴る。これで準備完了。ENTER を押すと CSAVEM が始まるので、Audacity で録音して WAV 形式で保存 (EXT01.wav のような連番の名前にすると判りやすい)。8KB 毎に BEEP で止まる。これを 4 回。1 回 3 分半程度。最後に BEEP が 3 回鳴ってプロンプトが出たら終了。
  9. 保存した *.wav ファイルを Pocket Tools で SHARP バイナリ形式 (*.IMG) に変換 ("Convert wav file to binary imagefile + parameter file" を実行)。
  10. 8KB の IMG ファイルが 4 つできたと思うので、これを結合。コマンドプロンプトから、
    COPY /b EXT01.IMG + EXT02.IMG + EXT03.IMG + EXT04.IMG EXTERNAL_ROM.IMG
    のようにして結合する。間違って *.CFG ファイルを指定しないように注意。これで内部 ROM イメージ EXTERNAL_ROM.IMG (32KB) が完成。
  11. すべての ROM イメージを結合する。コマンドプロンプトから、
    COPY /b INTERNAL_ROM.IMG + FILLER.IMG + EXTERNAL_ROM.IMG pc1450mem.bin
    のようにして結合する。これで PC-1450 の ROM イメージ pc1450mem.bin (64KB) が完成。

Pokecom GO を一度実行して終了すると、Android 端末のどこかに [pokecom] フォルダができているので、[ROM] サブフォルダの中に pc1450mem.bin をコピーします。Pokecom GO を再度起動すれば PC-1450 のエミュレータが動作するようになります。

※ 実機が壊れた時のために ROM を吸い出しておく事をオススメします。


内部 ROM 吸出しのチューニング

PC-1450 はメモリが多く増設も可能なので、一度に転送する量を増やして、取り込む回数を減らす事ができます。

機種 H の値 L の値 D の値 データ量 回数
PC-1450 (+ 4KB RAM)&52&00&8002 KB4 回
PC-1450 + 8 KB RAM&42&00&10004 KB2 回
&20008 KB1 回
PC-1450 + 16 KB RAM&22&00&10004 KB2 回
&20008 KB1 回

プログラムの先頭にある変数 H / L / D の初期値を機種に合わせて書き換えてください。HL の値は RAM の先頭 + &200 くらいが目安です。



Tips

イロイロ。


ASCII コード表はどうなってるの?

こうなっています。8bit でカナも英小文字もあります。

&00 の文字は NUL です。&20 の文字はスペースです。CHR$ でオレンジ色の場所のコードを指定するとエラーになります。


メモリマップはどうなってるの?

こうなっています。

PC-1450 8KB 16KB
内部 ROM 0000~1FFF
外部 ROM 8000~FFFF
RAM 5000~5FFF 4000~5FFF 2000~5FFF
VRAM 7000~70BF

RAM の特定の領域は決められた用途で使用されているため、基本的にユーザープログラムを置く事はできません。

PC-1450 8KB 16KB
フリーエリア 5030~5C2F 4030~5C2F 2030~5C2F
固定変数エリア 5C30 (Z) ~5CFF (A)
SIO バッファアドレス 5D00~5DAF
BASIC
先頭アドレスポインタ
L: 5F01
H: 5F02
BASIC
終了アドレスポインタ
L: 5F03
H: 5F04
変数ポインタ L: 5F07
H: 5F08
ストリングバッファエリア 5E60 ~5EAF
ストリングバッファポインタ 5F2F
リザーブエリア -

VRAM はこうなっています。

リニアにはつながっておらず、12桁目を境にアドレスの指定が変わります。

開始 終了 開始 終了
1 700070049 7028702C
2 7005700910702D7031
3 700A700E1170327036
4 700F7013127037703B
5 7014701813707B7077
6 7019701D1470767072
7 701E7022157071706D
8 7023702716706C7068

シンボルは 603C、603D と 607C に割り当てられています。

703C 703D 707C
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 PRINT DE G RAD ( ) [M] E

次のプログラムを PC-1450 で実行すると、

100 WAIT 0: PRINT " "
110 CALL &05A0
120 POKE &7000,&FF
130 POKE &703B,&FF
140 POKE &707B,&FF
150 POKE &7068,&FF
200 GOTO 200
210 END 

最初と最後、12 桁の境界に縦線が表示されます。

関連する非公開命令についても述べておきます。PEEK はアドレスで指定したメモリに格納されているデータを読み出します。

PEEK アドレス

POKE はアドレスで指定したメモリにデータを格納します。

POKE アドレス,データ[,データ][,データ]...

CALL は指定したアドレスから格納されている機械語プログラムを実行します。

CALL アドレス

プログラム中 (行番号 110) の CALL &05A2 は LCD を ON にするシステムサブルーチンを呼んでいます。VRAM を一括消去する最も簡単な方法は BASIC で PRINT " " を実行する事です。


ペリフェラルコネクタ (11ピン) のピンアサインは?

ペリフェラルコネクタ (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 って何?

プリンタが接続されている時にP⇔NP(SHIFTENTER) を押すと、PRINT の場所にシンボルが表示され、計算過程や結果がプリンタで印字されるようになります (エラーは印字されません)。もう一度P⇔NPを押すとシンボルが消え、元に戻ります。


システムサブルーチンのアドレスは?

システムサブルーチンは内部 RAM に取られている演算レジスタ (8 バイト) に値を入れて呼び出します。演算レジスタは X / Y / Z の他に DRA / DRB / DRC と呼ばれる事があります。

機種 X (DRA) Y (DRB) Z (DRC)
PC-1450 &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) 文字列長

&5200 に "ABC" という文字列が書き込まれている場合、

アドレス &5200 &5201 &5202 &5203 &5204 &5205 &5206 &5207
16進値 41 42 43
文字 A B C

X レジスタの内容は次のようになります。

&10 &11 &12 &13 &14 &15 &16 &17
- - - - D0 00 52 03

・システムサブルーチン

システムサブルーチンのアドレスは ROM バージョンによってバラバラです。

種別 機能 アドレス



加算 91F4
減算 820B
乗算 9215
除算 921F
べき乗 9228


EXP 9240
SIN 924E
COS 9255
TAN 925C
ASN 9263
ACS 926A
ATN 9271
DEG 92CB
DMS 92D2
ABS A483
INT A45F
SGN 936F
RND 92D9
SQR 9247
LOG 9239
LN 9231
文字 ASC 949E
CHR$ 95BE
STR$ 9526
VAL 9482


<> 948C
< 93FF
> 942C
= 9475
<= 938E
>= 9398

<> 9487
< 93AE
> 93B0
= 9439
<= 9498
>= 9389
表示 LCD ON 05A0
LCD OFF 059C
キー スキャン 12D1
サーチ 10進→2進変換
符号あり
1A8A
10進→2進変換
符号なし
1A95
2進→10進変換
符号あり
17DD
2進→10進変換
符号なし
17D6
行番号サーチ
2進表現
0F6E
変数のアドレスサーチ
単純変数
1F10
変数のアドレスサーチ
配列変数
1C1F
印刷 プリンタリセット BA3D
印字実行 BA98

※ 引用:


CE-126P 固有の文字を印字するには?

PC-1450 では CE-126P 固有の文字 (本体の LCD では表示できない文字) を出力する事が可能です。

機械語サブルーチンを呼んでコード表を印字するコードを書いてみました。PC-1450 に CE-126P を接続した状態で次のプログラムを実行してみてください。プログラムリストの最初の赤字の部分は ROM バージョンによって書き換える必要があります。

100 D=&BA:E=&98
110 I=&BA3D
120 O=&5200
130 F=&52:G=&0B
140 R=&10
150 POKE O+0,&10,F,G,&00,&17,&80+R,&18,&78
160 POKE O+8,D,E,&37,&20,&20,&20,&20,&20
170 POKE O+16,&20,&20,&20
180 CALL I
190 FOR Y=0 TO 15
200 FOR X=0 TO 15
210 C=X*16+Y
220 IF C=0 OR C=8 OR C=10 OR C=13 OR C=14 OR C=15 OR C=39 OR C=160 LET C=32 
230 POKE O+&13+X,C
240 NEXT X
250 CALL O
260 NEXT Y
270 END

コード表が印字されます。

呼ばれている機械語ルーチンは次のようになっています。&520B からの 24 バイトを演算レジスタ X/Y/Z にコピーし、印字実行システムサブルーチンをコールしています。

LIDP    &520B
LII     &17
LP+10   
MVWD    
CALL    &BA98
RTN     

CE-126P の特殊文字は次の通りです。

16進 10進 説明
00 0 ヌル
08 8 印字データメモリクリアコマンド
0A 10 用紙送りコマンド
0D 13 印字コマンド
0E 14 (不明)
0F 15 (不明)
20 32 スペース
27 39 スペース
A0 160 スペース

カセットインターフェイス経由で保存したファイルを読み込めないのだけれど?

多くの場合、読み込み (ロード) が悪いのではなく、保存 (セーブ) したファイルに問題があるので、[マイクのプロパティ] でマイク音量を最大にし、マイクブーストも最大にして保存してみましょう。

[マイクのプロパティ] に辿り着くには、

  1. [ファイル名を指定して実行] (〔Win〕 +〔R〕) で "mmsys.cpl ,1" を実行。
  2. 目的のマイクデバイスをクリックし、右下の [プロパティ] ボタンを押下。

とするのが最も簡単です。録音レベルやマイクブーストは [レベル] タブで設定しますが、マイクブーストの設定が存在しない事もあります。

マイクブースト機能がなくても AGC (Auto Gain Control) で代用できる場合があります。

PC (のサウンドカード) に何らかの増幅機能がないと取り込みは難しいと思います。増幅機能のある USB サウンドカードを購入するか、マイクアンプを使うしかないと思います。

音質が悪い *.wav ファイルをサウンド編集ソフトでいじってもあまり状況は好転しないと思いますが、ERROR 8 で失敗するレベルの *.wav ファイルなら Pocket Tools で BASIC ソースや SHARP バイナリに変換する事はできるかもしれません。変換が可能だった場合には、それを Pocket Tools で *.wav 形式にすれば取り込めると思います。

ERROR 6? PC-1402 用のソフトを PC-1450 にロードしようとしていませんか?それは容量不足のエラーです。


エラーコードの意味は?

次のようになっています。

エラーコード エラー内容
1文法エラー
2演算エラー
3DIM / 範囲チェックエラー
4ライン (行番号/ラベル) エラー
5ネスト (深み) エラー
6メモリエラー (容量オーバー)
7フォーマット (書式) エラー
8入出力エラー
9その他のエラー

ハードケースの内側にエラーコードが載っています。


PC-1450 のメモリを増やすには?

PC-1450 はメモリカードを交換する事でメモリを増やす事ができます。32KB のメモリカードも使えますが、PC-1450 では 16KB 分しか利用できません。

メモリカード 容量 サイズ
SHARP CE-211M4KBハーフ
SHARP CE-212M8KBハーフ
SHARP CE-201M8KBフル
RICOH IT-8
(LETTER MEMORY 8)
8KBフル
SHARP CE-2H16M16KBハーフ
SHARP CE-202M16KBフル
29Works CE-2MEM16L16KBフル
SHARP CE-2H32M32KBハーフ
29Works CE-2MEM3232KBハーフ
SHARP CE-203M32KBフル

8KB RAM カードは比較的簡単な改造で 16KB にする事ができます (画像は PC-1350 のものです)。


OPEN コマンドの詳細が解らない (RS-232C)

ごもっとも。OPEN コマンドの書式は以下の通りです。

OPEN "ボーレート,パリティ,キャラクタ長,ストップビット,転送種類,改行コード,EOF"

ボーレート

パリティ

キャラクタ長

ストップビット

転送種類

改行コード

EOF (ファイル終端)

パラメータを省略すると現在の値が使われます。現在の値は OPEN$ で確認できます。




ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。

メニュー: