/* POCKET -- SHARP PORTABLE COMPUTER PC-1450 エミュレータ */

【概要】
UN*X系OS (FreeBSD, Linux, MacOS X, etc.) で動作する
ポケットコンピュータPC-1450のエミュレータです。

【動作環境】
UN*X系OSで動くはずです。
画面サイズ96x24のANSI (VT100) 互換ターミナルでの実行を推奨します。

【追加で必要なファイル】
SC61860の内部ROMイメージを実機から取得して「cpu-1450.rom」として
保存しておいてください。外部ROMイメージも同様に採取のうえ
「bas-1450.rom」というファイル名で保存してください。
実行時のカレントディレクトリにこれらの2つのファイルが必要です。

【コンパイルおよび実行】
必要に応じてMakefileを編集します。たとえば、以下のとおり。
	% vi Makefile 
make(1) コマンドでバイナリを生成します。
	% make
生成された「pocket」が実行ファイルです。以下のように起動します。
	% ./pocket

【エミュレータの終了方法】
ctrl-dの入力で終了します。

【実機との相違】
カセットテープやプリンタなどのI/Oは使えません。
シリアルインターフェイスは、入力が sc.inp、出力が sc.out という
ファイルにそれぞれ対応します。
インターフェイスを「OPEN」命令で初期化しておけば、
「LOAD」や「SAVE」でプログラムを読み書きすることができます。
エミュレーションの速度は実行環境に依存します。
音は出ません。

【キーの割り当て】
^d (ctrl-d) は POWER スイッチを OFF にすることに対応します。
    (つまり pocket を終了します。)
[ 0-9a-z] は、そのまま [ 0-9A-Z] に対応します。
+, -, *, / も、そのまま +, -, *, / に対応します。
^n, ^p, ^b, ^f はカーソル移動キーに対応します。
^c は BRK, ^l は C/CE, ^m は ENTERキーに対応します。
大文字アルファベットは特殊キーに対応します。

【キーの対応表】
    H → hyp    S → sin    C → cos    T → tan    F → F<->E
    X → HEX    G → DEG    N → ln     L → log    I → 1/x     | → STAT
    E → EXP    ^ → x^y    R → SQRT   Q → x^2    ( → (       ) → )
    > → x->M   < → RM     P → M+     % → +/-    . → .       = → =
    A → CAL    B → BASIC  Z → SHIFT  D → DEF    M → SML     U → SHIFT
    K → カナ   [ → ゛     \ → ー 

【操作例】
	% make			コンパイル
	% pocket		実行
	3 0 S			sin(30) を計算します [ 3 0 sin ]
	6 9 U )			69の階乗を計算します [ 6 9 SHIFT ) ]	
	B			RUNモードに移行します [ BASIC ]
	o p e n ^M		
	l o a d ^M		sc.inp を BASICプログラムとしてロードします
	r u n ^M		プログラムを実行します

【参考文献】
1. 「I/O別冊 ポケコン・マシン語入門」（1984/09, 工学社）
2. 「シャープポケットコンピュータ機械語マニュアル」（1986/05, 工学社）
