SHARP PC-1350 の使い方

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

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



SHARP PC-1350 諸元

SHARP PC-1350 はグラフィック液晶を備えたポータブルコンピュータです。

スペック

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

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


使い方

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


電池の入れ方

電池はCR2032 が 2 枚必要です。裏蓋を外し、メモリーカードが装着されていればそれも外し、さらに電池押さえをスライドさせると電池を交換できます。バックアップ電池はありませんので、電池交換をすると RAM の内容が消えてしまいます。

電池交換直後は動作がおかしい事があるので、何もキーを押さずに計算機裏面にある ALL RESET ボタンを押してください。

続けて、次のコマンドを入力すると PC-1350 が完全に初期化されます。

CALL &EF88
POKE &6EAF,0

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


電源の ON / OFF

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

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


モード切替

PC-1350 には 3 つの動作モードがあります。

モード 説明
RUN モード 電卓として使ったり、プログラムの実行を行います。
PROGRAM モード プログラムの入力を行います。
RESERVE モード リザーブキーへの登録を行います。

MODEキーで RUN モードと PROGRAM モードの切り替えです。SHIFTMODEと押すと RESERVE モードへ移行します。


ファイルの操作

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

プログラムの実行

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

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

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

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

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

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

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

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

CLOAD ["ファイル名"]

メモリブロックをそのままバイナリファイルとして保存したり、

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

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

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

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

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

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


[電卓] モード

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

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

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

キー キー入力 意味 備考
DEGREE DEGREE (度) DEGREEENTER で角度の単位を度に変更。
RAD RAD (ラジアン) RADENTER で角度の単位をラジアンに変更。
GRAD GRAD (グラード) GRADENTER で角度の単位をグラードに変更。
π SHIFTI π/ pi (円周率) value π
SHIFTO √ (平方根) value
SHIFT- 冪乗 value1 value2

次の演算子も使えます。これらの演算子は BASIC プログラム内でも使えます。

キー キー入力 意味 備考
AND AND (論理積) value1 AND value2
NOT NOT (否定) NOT value
OR OR (論理和) value1 OR value2

次の関数も使えます。これらの関数は BASIC プログラム内でも使えます。

キー キー入力 意味 備考
ABS ABS (絶対値) ABS value
ACS ACS (逆余弦: arccos) ACS value
ASN ASN (逆正弦: arcsin) ASN value
ATN ATN (逆正接: arctan) ATN value
COS COS (余弦) COS value
DEG DEG (度分秒→10進数度) DEG value
DMS DMS (10進数度→度分秒) DMS value
EXP EXP (指数) EXP value
INT INT (整数化) INT value
LOG LOG (常用対数: log10) LOG value
LN LN (自然対数: loge) LN value
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)
ただし、この場合は小数部の値によって乱数の発生に差が出る。
SGN SGN (符号関数) SGN value
X > 0 1
X < 0 -1
X = 0 0
PI PI (円周率) PI ※擬似変数
SIN SIN (正弦) SIN value
SQR SQR (平方根) SQR value
TAN TAN (正接) TAN value

編集

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

キー キー入力 意味 備考
/ 行アップダウン PROGRAM モードで、カーソルを上下に移動する。BASIC のリストを移動するのに使われる。
/ 左右カーソルシフト カーソルを左右に移動する。ENTERで計算を実行した直後に押されると、直前に実行した計算式を呼び戻す。
DEL SHIFT 削除 カーソル位置の文字を削除する。
INS SHIFT 挿入 カーソル位置に文字を挿入できる場所を確保する。確保された場所はカーソルの形状が変わる。
カナ カナ カナ入力モードに切り替える。もう一度押すと英字入力モードに戻る。
SML SHIFTカナ 英小文字 英小文字入力モードに切り替える。カナでカナ入力モードに、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 変数

次のプログラムをCL3DEFA で実行すると、

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

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


リザーブキー

PC-1245 ではSHIFTAとキーを押す事で "INPUT" が入力されますが、PC-1350 ではSHIFTと組み合わせるA の 18 キーを自由に定義する事ができます。つまりは簡易的なキーボードマクロです。

右上のスライドスイッチを RSV の位置 (RESERVE モード) にしてSHIFTAINPUTENTERと登録すると、他のモードで PC-1245 と同様にSHIFTA で "INPUT" が入力できます。

RESERVE モードでSHIFTAとすると、現在の登録内容を確認できます。この状態でを押すと、内容を変更できるようになります。すべてのリザーブキーを削除するには、RESERVE モードで NEW ENTERを実行します。

RESERVE モードで CSAVE するとリザーブキーの設定内容を保存する事ができます。設定を読み込むには RESERVE モードで CLOAD します。

リザーブキーのためのメモリは 144 バイト用意されています。少ないように思えるかもしれませんが、BASIC の命令は 1 バイトで表す事ができます。




ハードウェア

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

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

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

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

See also:


ポケ POWER +

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

See also:


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

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


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=1260
rem set SHARPC=1262J
set SHARPC=1350
rem set SHARPC=1360K -o%KEYDIR%\KANJI.cfg

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

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

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

リザーブキーの保存と読込

リザーブキーを記録した WAV 形式ファイルは Wav2rsv.cmd を使って SHARP バイナリ形式に変換できます。リザーブキーの SHARP バイナリは Rsv2wav.cmd を使って WAV 形式ファイルへ変換する事ができます。

いずれもデフォルトではメニューに登録されていませんので、手動で登録する必要があります ([Edit | Add file...] でスクリプトを指定)。


Audacity

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

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

取り込み手順は、

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

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

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


Pokekom Go

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

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

PC-1350 での ROM イメージ作成手順を以下に示します。効率は良くありませんが RAM カードありなし問わず、PC-1350 のすべてで同じように ROM 吸い出しを行えます。作業は Windows 上で行います。

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

    100 H=&62: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~3FFF の領域のフィラーファイルを作成する。コマンドプロンプトから、
    fsutil file createnew FILLER.IMG 0x6000
    のようにしてフィラーファイル FILLER.IMG (24KB) を作る。
  7. 外部 ROM (8000~FFFF) を 8KB ずつ吸い出す。デジホリの blog にあった BASIC プログラムをちょっと改変したものを Pocket Tools を使って PC-1350 に転送。

    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 (16KB) が完成。
  11. すべての ROM イメージを結合する。コマンドプロンプトから、
    COPY /b INTERNAL_ROM.IMG + FILLER.IMG + EXTERNAL_ROM.IMG pc1350mem.bin
    のようにして結合する。これで PC-1350 の ROM イメージ pc1350mem.bin (64KB) が完成。

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

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


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

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

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

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



Tips

イロイロ。


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

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

&00 の文字は NUL です。&20 の文字はスペースです。


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

こうなっています。

PC-1350
内部 ROM 0000~1FFF
外部 ROM 8000~FFFF
RAM 2000~6FFF (16KB RAM カード)
4000~6FFF (8KB RAM カード)
6000~6FFF (RAM カードなし)
VRAM 7000~7FFFF

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

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

PC-1350 の 6F6F~6FFE の 144 バイトはリザーブキー用に使われています。ここを CSAVEM / CLOADM する事でリザーブキーの内容を保存/読込できます。

'PC-1350
CSAVEM &6F6F,&6FFE

VRAM はリニアにはつながっておらず、X 方向は 30ドットおきにアドレスの指定が変わります。

X
0~29 30~59 60~89 90~119 120~149
開始 終了 開始 終了 開始 終了 開始 終了 開始 終了
Y
0~7 7000701D7200721D7400741D7600761D7800781D
8~15 7040705D7240725D7440745D7640765D7840785D
16~23 701E703B721E723B741E743B761E763B781E783B
24~31 705E707B725E727B745E747B765E767B785E787B

シンボルは 783C と 787C に割り当てられています。PC-1350 には角度のシンボルを表示する機能がないのですが VRAM にマップされているため、PEEK &787C AND 7 で状態を確認できます。同様に PEEK &783C AND 4 でプリンタの状態を確認できます。

783C 787C
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
SML カナ PRO RUN PRINT DEF SHIFT GRAD RADIAN DEGREE

次のプログラムを PC-1350 で実行すると、最初と最後、30 ドットの境界に縦線が表示されます。

100 WAIT 0: PRINT " "
110 CALL &04B1
120 POKE &7000,&FF
130 POKE &7040,&FF
140 POKE &701E,&FF
150 POKE &705E,&FF
160 POKE &7200,&FF
170 POKE &7240,&FF
180 POKE &721E,&FF
190 POKE &725E,&FF
200 POKE &7400,&FF
210 POKE &7440,&FF
220 POKE &741E,&FF
230 POKE &745E,&FF
240 POKE &7600,&FF
250 POKE &7640,&FF
260 POKE &761E,&FF
270 POKE &765E,&FF
280 POKE &7800,&FF
290 POKE &7840,&FF
300 POKE &781E,&FF
310 POKE &785E,&FF
320 POKE &781D,&FF
330 POKE &785D,&FF
340 POKE &783B,&FF
350 POKE &787B,&FF
360 GOTO 360
370 END 

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

PEEK アドレス

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

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

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

CALL アドレス

プログラム中 (行番号 110) の CALL &04B1 は 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

通常のピンヘッダやブレッドボード用のジャンパーワイヤーを使って接続できます。


シリアル I/O コネクタ (15ピン) のピンアサインは?

シリアル I/O コネクタ (15ピン) のピンアサインは以下の通りです。

NO 信号名 シンボル IN/OUT
1 フレームグラウンド
(Frame Ground)
FG -
2 送信データ
(Send Data)
SD OUT
3 受信データ
(Recieve Data)
RD IN
4 送信要求
(Request to Send)
RS OUT
5 送信可
(Clear to Send)
CS IN
6 (NC) -
7 信号用接地
(Signal Ground)
SG -
8 キャリア検出
(Data Carrier Detect)
CD IN
9 (NC) -
10 (電源電圧) VC -
11 受信可
(Recieve Ready)
RR OUT
12 ペリフェラル応答
(Peripheral Acknowledge)
PAC IN
13 (電源電圧) VC -
14 データターミナルレディ
(Data Terminal Ready)
ER OUT
15 ペリフェラル要求
(Peripheral Request)
PRQ OUT

こちらはハープピッチのピンヘッダを使って接続できます。


P⇔NP って何?

プリンタが接続されている時にP⇔NP(SHIFTENTER) を押すと、計算過程や結果がプリンタで印字されるようになります (エラーは印字されません)。もう一度P⇔NPを押すと元に戻ります。モードを示すインジケーター (シンボル) がないのでちょっと不便です。


ROM バージョンを知るには?

PC-1350 の ROM バージョンは次のコマンドで調べる事ができます。

PEEK &FFF0

PC-1350 には 2 バージョンあります。

PC-1350
16進数 CE 03
10進数 206 3

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

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

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

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

アドレス &6200 &6201 &6202 &6203 &6204 &6205 &6206 &6207
16進値 41 42 43
文字 A B C

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

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

・システムサブルーチン

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

種別 機能 FFF0 の値
CE 03



加算 89628AB8
減算 89798ACF
乗算 89838AD9
除算 898D8AE3
べき乗 89968AEC


EXP 89AC8B02
SIN 89B88B10
COS 89C18B17
TAN 89C88B1E
ASN 89CF8B25
ACS 89D68B2C
ATN 89DD8B33
DEG 89EB8B41
DMS 89F28B48
ABS 8E9F8FF4
INT 8E7B8FD0
SGN 8A008B56
RND 89F98B4F
SQR 89B38B09
LOG 89A58AFB
LN 899D8AF3
文字 ASC 8B1E8C74
CHR$ 8B3E8C94
STR$ 8BA68CFC
VAL 8C028D58


<> 8B0F8C65
< 8A858BDB
> 8AB58C0B
= 8AFB8C51
<= 8A1F8B75
>= 8A2C8B82

<> 8B0A8C60
< 8A348B8A
> 8A368B8C
= 8ABD8C13
<= 8A188B6E
>= 8A1A8B70
表示 LCD ON 04B1
LCD OFF 04AD
全画面表示 D2B6D534
表示のスクロールアップDEADE23C
1文字表示 E549E983
データセット 1CEF
プリントバッファクリア1E0C
キー スキャン 0436
サーチ 10進→2進変換
符号あり
162F
10進→2進変換
符号なし
163A
2進→10進変換
符号あり
11B7
2進→10進変換
符号なし
11B0
行番号サーチ
2進表現
B6E1B8F4
変数のアドレスサーチ
単純変数
1AED
変数のアドレスサーチ
配列変数
17F5
SIO関連 SIO の回路を開く FA67FC7B
SIO の回路を閉じる FA83FC97
CS モニタ 1E4B
CD モニタ 1E60
インターフェース条件の取り込み1E43
1バイトデータの出力 EF2DF316
1バイトデータの入力 EE27F22A
終了コード出力 EDF7F1FA
SIOバッファの内容出力 EE14F217
内部表現の ASCII 列変換 EDB5F1B8
印刷 プリンタリセット A2BAA467
印字実行 8054

※ 引用:


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

PC-1350 では CE-126P 固有の文字 (本体の LCD では表示できない文字) を出力する事はできないようです。可読文字からカーソル用文字 (0xF9,0x9A) を除いた文字を出力できます。

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

100 D=&80:E=&54
110 I=&A467
120 O=&6100
130 F=&61: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

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

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

LIDP    &610B
LII     &17
LP+10   
MVWD    
CALL    &8054
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? RAM カード増設前提のソフトを PC-1350 にロードしようとしていませんか?それは容量不足のエラーです。


久しぶりに使ってみようと思ったら液晶が真っ黒なんだけど?

残念ながら液晶がダメになってしまったようです。交換用液晶がありますので取り換えてみては?

See also:

※仕様が似ている PC-2500(S) という機種がありますが、PC-1350 とは液晶のサイズが異なります。


他機種用の交換液晶はないの?

いくつかあります。

See also:



エラーコードの意味は?

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

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

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



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

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

メモリカード 容量
SHARP CE-201M8KB
RICOH IT-8
(LETTER MEMORY 8)
8KB
SHARP CE-202M16KB
29Works CE-2MEM16L16KB
SHARP CE-203M32KB

8KB RAM カードは比較的簡単な改造で 16KB にする事ができます。


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

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

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

ボーレート

パリティ

キャラクタ長

ストップビット

転送種類

改行コード

EOF (ファイル終端)

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


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

メニュー: