2013年12月7日土曜日

G850V エミュレータg800

PC上で実行できるエミュレータがありました。
SHARP PC-G850/G815/E200エミュレータ g800 version 0.9.9

1.g800win32.0.9.8.zipとcopyrom.zipをダウンロードして解凍


2.ROMイメージをPCに転送

copyrom フォルダ内の manual.txt に従って転送します。
当初、copyg850.hex を copyg850.dat にリネームして転送しようとしたが上手くいかない。そこで、copyg850.asmを転送後アセンブルして、ようやくマニュアルどおりに進行した。

PC-G850Vの場合 A=0,1,2,3,・・・・,E,F,10,11,12,13,14,15
ファイルは base.txt,rom00.txt,rom01.txt,・・・・・,rom15.txt
(全23ファイル)

転送したファイルは[ g800win32 ]フォルダ内に[ G850Vrom ]フォルダを作り保存します。
   g800win32
     ├ G850Vrom    ROMイメージファイル
     └ RAM       RAMエリア
       g800.exe    実行ファイル
       g800config   環境設定ファイル


3.g800configの編集

#ROMイメージのあるディレクトリを指定
   rom_dir G850Vrom
#RAMファイルパス名
   ram_path RAM
#CPUクロック周波数(kHz)
   clock 8000
#ソフトウェアキーを使うか
   software_key y

※キー割り当ての変更
[ g800config ]内の[ #キー ]で変更することが出来ます。
通常ではノートPCのようなテンキーの無いキーボードでは数字の入力すら出来ません。ソフトウェアキーに有るものは省き、数字を指定します。その他、よく使いそうな物も空いているキーに指定。

4.実行

G850V USBシリアルインターフェース

1.製作

ポケコン情報サイト 【Kazuchi Software】を参考に作りました。
(閉鎖されたみたいです)
1.基盤
2.FT232RL USB-シリアル変換モジュール
  (秋月 K-01977)
3.丸ピンICソケット(24P)[600mil]
4.ピンヘッダ L型 1x11
5.LED(黄、赤、緑)
6.抵抗330Ω 3ヶ

最後のページにサラッと書いてあった電源、送信、受信のLEDも付けます。
LEDの電流制限抵抗はデータシートでは270Ωですが、手持ちで近い値を使用。


2.USBドライバ(VCP)のインストール

Virtual COM Port Drivers

USBシリアルインターフェースをPCと接続し、[新しいハードウェアの検出ウィザード]でファイル保存場所指定からインストール。USBドライバのインストール後、VCPドライバのインストールが始まり、同様に場所指定からインストールする。デバイスマネージャの[ポート(COMとLPT)]で[USB Serial Port(COM ?)]を確認。ここでのCOMポート番号を控えておく。


3.EEPROM書込

FT_PROG 2.8.2.0 - EEPROM Programming Utility

3-1.FT_PROG.exeを起動しUSBシリアルインターフェースボードを接続

3-2.[Scan and Parse]アイコンをクリック


3-3.各種設定

[ I/O Controls ]で
    C3:RXLED#
    C4:TXLED#
に入れ替えます。
PCから送信したときRx LEDが点灯、ポケコンから送信するときにTx LEDが点灯するようになる。

3-4.[ Program Devices ]アイコンをクリック


3-5.[ Program ]ボタンをクリック


4.PCとの通信

PC側のソフトは PC-Gリンク を使用します。

・PC-G850V 通信設定
テキストエディタを呼び出し
   [ S ][ F ]
上下キーで項目移動、左右キーで設定変更、リターンキーで決定。
[ end of file ]のみキーボード入力
   baud rate   = 9600
   data bit    = 8
   stop bit    = 1
   parity     = none
   end of line  = CR LF
   end of file  = 1A
   line number  = yes
   flow      = RS/CS

[ ON ]キーを押すと設定から抜けます。

5.ファイル転送

_/_/_/ ポケコン → PC _/_/_/
   1.PC-Gリンクの受信ボタンを押す
   2.ポケコンのテキストエディタで
      [ S ][ S ]
_/_/_/ PC → ポケコン _/_/_/
   1.ポケコンのテキストエディタで
      [ S ][ L ]
   2.PC-Gリンクの送信ボタンを押す

G850V スピーカー内臓

BASIC言語とC言語でBEEP命令が使えるようになる。

ポケコン本体裏側、中央上にNAMEと書かれたシールを剥がすとφ20程の窪みがある。ここにスピーカー取り付けます。

JUNK品のワンダースワンからスピーカーを貰う


6ヶ所のネジを取り外す(要トルクスドライバー)


スピーカーは両面テープで固定。半田を溶かし、リード線ごと取り外します。


PC-G850V分解前に動作チェック。
11ピンコネクタの3番と7番に接続し、
   BEEP 3[RETURN]
ピー、ピー、ピーと3回鳴ればOK


リード線を通し、スピーカーを押し込む。


BZ+、BZ-というランドに半田付け。


ついでにDCジャックのリード線を入れ替えてセンタープラス仕様に変更。
秋月のACアダプターが使える。


完成。


BEEP命令

BASIC:BEEP n,s,d
C言語:beep(int s,int d,int n);
   n:回数・・・・・0~65535
   s:音階・・・・・0~255(小さいほど高音 230Hz~8kHz)
   d:音の長さ・・・0~65535

音階表(G850)参考
s周波数s周波数s周波数s周波数
ラ#246233.1
232246.9
218261.6105523.3491046.5212093.0
ド#206277.299554.4461108.7192217.5
194293.793587.3431174.7182349.3
レ#182311.187622.3401244.5162489.0
172329.682659.3371318.5152637.0
ファ162349.277698.5351396.9142793.8
ファ#152370.072740.0321480.0122960.0
143392.068784.0301568.0113136.0
ソ#135415.364830.6281661.2103322.4
127440.060880.0261760.093520.0
ラ#119466.256932.3241864.783729.3
112493.952987.8221975.573951.1
s = (1300000÷周波数-166)÷22

音の長さは周波数で指定する。
ラの音を1秒間鳴らすには
   BEEP 1,127,440[RETURN]
とします。(誤差あり)
ちなみに、テンポ60では4分音符の長さが1秒

2013年12月1日日曜日

1490UⅡ マシン語領域確保

確保したいバイト数を6桁の16進数で表し、2桁づつ区切ります。
例)4386バイト確保したい場合→(00 11 22)H
                  ↑ ↑ ↑
                  a b c
                 c  b  a
                 ↓ ↓ ↓

   POKE &BFE03,&1A,&FD,&B,&22,&11,&00[RETURN]
   CALL &FFFD8[RETURN]

マシン語の確保される領域の最終アドレスは、BFBFFH固定のため、
開始アドレスは
   BFBFFHー001122H+1
となる。


・開始アドレスの確認
BFD1AHからの3バイトに開始アドレスが格納されている。

   A=BFD1AH '下位
   B=BFD1BH '中位
   C=BFD1CH '上位
   PRINT HEX$ C;RIGHT$("0"+HEX$ B,2);RIGHT$("0"+HEX$ A,2)

1490UⅡ 外部コネクタ

PC-1490UⅡはCPUにSC-62015が使われており、CPU内部ラムに直接アクセスが可能。これによりオプション11pinコネクタやSIO15pinコネクタをコントロールできる。

SC-62015 ピンアサイン


オプション 11pin コネクタSIO 15pin コネクタ
PinCPU入出力Address,bitPinCPU入出力Address,bit
1MT21FG
2Vcc2SDTxDO
3Gnd3RDRxDI
4BUSYE6OF3H,64RSKO12OF1H,4
5DoutE10I/OF6H,2 / F4H,2ACK=Hiの時入力可5CSE2I/OF3H,2
6XinCIIFDH,BZ2,BZ1,BZ06N/C
7XoutCOOFDH,BZ2,BZ1,BZ07SGGnd
8DinE11I/OF6H,3 / F4H,38CDE1I/OF3H,1
9ACKE7IF5H,79N/C
10IO2E9I/OF6H,1 / F4H,1ACK=Hiの時入力可10Vc1Vcc
11IO1E8I/OF6H,0 / F4H,0ACK=Hiの時入力可 11RRKO13OF1H,5
12PARE0?/OF3H,0
13Vc2Vcc
14ERKO14OF1H,6
15PRQKO15OF1H,7
4pin:BUSY(E6)は出力専用だがF5H,6をHiにしたらどうなるのか、
9pin:ACK(E7)は入力専用だがF3H,7をHiにしたらどうなるのかは不明。

内部ラム 256byte
0123456789ABCDEF
00HWork Area
B0H
C0HSystem Reserved
D0Hblbhclchdldhsidi
E0HSystem ReservedBPPXPYAMC
F0HKOLKOHKIEOLEOHEILEIHUCRUSRRxDTxDIMRISRSCRLCCSSR


赤字は11pinコネクタ、青字は15pinコネクタ
Addressbit7bit6bit5bit4bit3bit2bit1bit0
KOH
(Key Output Buffer)
F1HKO15KO14KO13KO12KO11KO10KO9KO8
15pin14pin11pin4pin
EOL
(E-port Output Buffer)
F3HEO7EO6EO5EO4EO3EO2EO1EO0
4pin5pin8pin0pin
EOH
(E-port Output Buffer)
F4HEO15EO14EO13EO12EO11EO10EO9EO8
8pin5pin10pin11pin
EIL
(E-port Input Buffer)
F5HEI7EI6EI5EI4EI3EI2EI1EI0
9pin
EIH
(E-port Input Buffer)
F6HEI15EI14EI13EI12EI11EI10EI19EI18
8pin5pin10pin11pin
SCR
(System Control Register)
FDHISEBZ2BZ1BZ0VDDCSTSMTSDISC


CO、CI pinコントロール --- 直接コントロールするbitはなく、SCRレジスタのBZで指定する。
         BZ2  BZ1  BZ0   CO    CI
         0   0   0   Low    O(入力不可)
         0   0   1   High   O(入力不可)
         0   1   0   2KHz   O(入力不可)
         0   1   1   4KHz   O(入力不可)
         1   0   0   Low    I/O(入力可)
         1   0   1   High   I/O(入力可)
         1   1   X   CI    I/O(入力可)


※EO4 ( F3H,4 ) は必ずHighにしておく!LowにするとLCDが消灯します。

Basicからの使用例
F4H 番地に b'0000 1111' をセットする
poke &HF4,&HF (poke &F4,15) 5番8番10番11番pinから出力

1490UⅡ 日本語化

用意するもの
・RAM増設したPC-E500系ポケコン
・レベルコンバータ(自作)
・ポケコン用ソフトウェア
 (set、PLINKC、HMF、DEVICE、SCRNJPN、恵梨沙フォント、JFP)
・PC用ソフトウェア(APLINKS for Win32)
・USB-シリアル変換ケーブル(ELECOM UC-SGT)使用可能

RAM (E:)の確保が後々出来なくなるため、先に確保しておきます。
(64KB確保する場合)
   INIT "E:64K"


1.通信設定

[[ ポケコン側 ]] ノーマルクロックで設定
入力画面表示
通信設定確認OPEN$  
通信設定
※1
POKE &BFD35,0,255,0,80
OPEN "9600,,,,,,,X":CLOSE
  
受信待機LOAD
※1.baud rate 9600、フロー制御をXon/Xoff。
   通信エラーが起こる場合 baud rate を下げていく。

[[ PC側 ]]
ハイパーターミナル起動
新しい接続で適当な名前を付け、
   接続方法:COM?(レベルコンバータを接続したCOMポート番号)

[ファイル]→[プロパティ]
[ポートの設定]      [設定]          [ASCII設定]


[エンコード方法]
   Shift-JIS(S)

2.SET.BASのインストール

マシン語エリアを簡単に確保するプログラム

[ハイパーターミナル]→[転送]→[テキストファイルの送信]→"SET.BAS"
注)転送が終わってもポケコン側にプロンプト(">")が表示されないときは、
パソコンで[CTRL]+[Z](EOFコード)を入力する。

転送が終わったらポケコン側で
   RUN [RETURN]
16KB確保したいときは16Kと入力

3.PLINKとAPLINKS for Win32

ハイパーターミナルの転送ではマシン語ファイルの転送が行えない。
PLINKとAPLINKS for Win32を使えば、ポケコン側からPCのディスクを
"L:"ドライブとして扱える。

PLINKC.BASを転送(SET.BASを転送したのと同じ方法)
   RUN [RETURN]   →"S1:"に"PLINK.SYS"が作成される
   INIT "L:5"

[[ APLINKS for Win32 ]]
[設定]→[環境設定]
通信速度をポケコンの通信速度に合わせる

仮想ドライブ容量を512KBに設定


ポケコンから見たいディレクトリを開き、接続をクリック。ポケコンに
   FILES "L:"
と打ち込めば、仮想ドライブを見ることが出来る。

重要)切断するときは、必ず以下をポケコンで実行
   INIT "L:D"

4.HMFのインストール

HMFはファイラーです。

PCでAPLINKSを起動し、HMFのアーカイブの中身を仮想ドライブに
読み込んでおきます。ポケコンに
   LOADM "L:HMFINST"
   CALL &BF000
   COPY "L:HMFMDL.SYS" TO "S1:"
これでインストール終了。

起動は
   INIT "HMF:"

S1:にコピーした"HMFMDL.SYS"はHMFに付属のBLK2TOPでスロットの先頭に移動しておく。
   LOADM "L:BLK2TOP":CALL &BF800"S1:HMFMDL.SYS

[ PF5 ]キーへの登録
   KEY5,"INIT"+CHR$(&22)+"HMF:"+CHR$(&22)+CHR$13

5.SCRNJPNのインストール

PCでAPLINKSを起動し、DEVICE、SCRNJPN、恵梨沙フォントのアーカイブを仮想ドライブに読み込む。

HMFを起動し"L:"上の"DEVICE"の上でXキーを押す。
   (入力) DEVICE SCRNJPN.DVF

美咲フォントの導入
”MSKG13KU.FNT" をS1にコピーし "SCRNJPN.FNT" にリネーム
(※恵梨沙フォントを使う場合は "elisap10.fnt" をS1にコピーし "SCRNJPN.FNT" にリネーム)
"SCRNJPN.FNT" は "HMFMDL.SYS" と同様にはBLK2TOPでスロットの先頭に移動しておく。
   LOADM "L:BLK2TOP":CALL &BF800"S1:SCRNJPN.FNT

実行は
   INIT"SCRN:JS"
※文字化けの時も実行する。(所有機では頻繁に使います)
[ PF4 ]キーへの登録
   KEY4,"INIT"+CHR$(&22)+"SCRN:JS"+CHR$(&22)+CHR$13

6.JFPのインストール

PCでAPLINKSを起動し、JFPのアーカイブの中身を仮想ドライブに読み込んでおきます。ポケコンに
   POKE &BFE03,&1A,&FD,&B,0,&2C,0
   CALL &FFFD8
   LOADM "L:JFPINST"
   CALL &BD000
S1 に "JFP.SYS" というメモリ・ブロックが作成されていればインストール終了。

"JFP_TAN.DIC" と "JFP5K.DIC" の2つのファイルを S1 にコピーする。
"JFP5K.DIC" を "JFP.DIC" にリネームすると日本語が使えるようになる。

※表示がおかしいときは
   INIT"SCRN:JS"
を実行する。

------------------------------------------------------------------------------------
その他のプログラム
・SET.BAS    1838             機械語領域確保
・M-AREA.BAS  185             機械語領域のアドレス表示
   転送しただけではLOAD時にエラー(LOADはされている)がでるので、
   再保存する。
・カンイモニタ.BAS   1006        BASICによるモニタプログラム
・GMON.     1235 &BE000 - &BE4C2  銀行君モニタ ver1.03
・KTERM.      3480 &BD000 - &BDD87  日本語ターミナル ver3.01
・ASM.      4469 &BEA9B - &BFBFF  アセンブラ
   ASM.BASを読込、RUNで実行。その後 SAVE M "E:ASM",&HBEA9B,&HBFBFF,&HBEA9B

PC-1490UⅡ / PC-G80V 仕様

学生の時に強制的に買わされた1490UⅡとジャンクで買った850V。
共にSHARP製。

PC-1490UⅡPC-G850V
発売年1991年2002年
CPUSC-62015S1L50752F25N0(Z80)
クロック周波数2.3MHz8MHz
RAM64KB32KB
LCD240 x 32 dot
フルグラフィック
144 x 48 dot
フルグラフィック
ハイコントラスト
文字数40桁 x 4行24桁 x 6行
文字構成5 x 7 dot5 x 7 dot
言語BASICBASIC、C、CASL
Z80アセンブラ
PICアセンブラ
BEEP音255段階スピーカー無し
BASICで255段階サポート
大きさ(WxHxD)200 x 100 x 14 mm196 x 95 x 20 mm
重量265g(電池含む)260g(電池含む)
定格消費電力0.07W0.20W
RAM256化
クロック周波数(2.3⇔4.0MHz)切替式