=============================================================================== Ftune is SH7337/SH7355 CPG&BSC tuning utility for fx-9860G/Slim/GII series v1.20 copyright(c)2014/2015/2019 by sentaro21 e-mail sentaro21@pm.matrix.jp =============================================================================== CASIOのfx-9860GシリーズにはルネサスのSH7705に非常によく似たSH3カスタムチップが採用されています。 従来よりPLL倍率変更でのオーバークロックツールは存在していましたが、このツールではさらにメモリアクセスのウエイトもいじってみようという少々危険なツールです。 (ほぼ安全に動作すると考えられますが万が一ということはあり得ます) ・特徴  ウエイト値を削減することでさらにパフォーマンスアップできます。  ウエイトを削減する場合はメモリチェックします。  周波数/ウエイト設定をファンクションキーに保存できます。  設定をセーブしておけば次回起動時に自動的に読み込まれます。 ・欠点  速度アップに応じて消費電流が増えます。  十分にテストされてないので未知の不具合が起こっても不思議ではありません。 ========================== 注意!!! ============================================ このツールは安全に動作するように十分注意して作成されていますが、 あなたの電卓に重大なダメージを与える恐れがあります。 ツールの使用はバックアップをとった上であなたの責任においてお願いいたします。 作者はこのツールの使用の結果においていかなる責任も負わないものとさせていただきます。 =============================================================================== ------------------------------------------------------------------------------- CPG(クロックパルスジェネレータ) 参照元: SH7705 データシート ------------------------------------------------------------------------------- クロック動作モード5で動作していると思われます。 PLL(STC) PLL回路の逓倍率。 fx-9860Gシリーズでは14.7456MHzの原発振クリスタルが使われています。         発振回路はクリスタル出力を2倍にした29.4912MHzを生成します。 これがメモリバスクロックとなります。 それを逓倍して各種クロックの元になるクロックを生成します。 デフォルトは1倍に設定されています。 1倍〜4倍まで設定できます。 IFC 内部クロックの分周率。 PLLで生成されたクロックを分周して内部バスに供給するクロックを生成します。 00:1/1 01:1/2 10:1/3 11:1/4 デフォルトでは1/1に設定されています。 これはCPUクロックになります PFC 周辺クロックの分周率。 PLLで生成されたクロックを分周してI/Oに供給するクロックを生成します。(RS232C等) 00:1/1 01:1/2 10:1/3 11:1/4 デフォルトでは1/2に設定されていて14.75MHzで動作しています。 各分周比は整数比でないと動作しません。 このツールでは正常動作する範囲内に自動調整します。 ------------------------------------------------------------------------------- BSC(バスステートコントローラ) 参照元: SH7724 データシート ------------------------------------------------------------------------------- バスステートコントローラは各種ウエイト等の設定を行います。 レジスタの構成はSH7724と同じだと思われます。 CS0BCR, CS0WCR : FLASH ROM エリア CS2BCR, CS2WCR : メインRAM エリア CS5ABCR,CS5AWCR : LCDC その他のレジスタに使われ方は不明です。 ROM アクセスタイム70nsのNOR型フラッシュROMが採用されており OSやアドインの格納場所として使用されています。 ウエイト値を減らしすぎると動作異常が起きますが、そうならないよう設定が制限されます。 RAM アクセスタイム70ns〜80ns?のSRAMが採用されており、 メインメモリやアドインのワークエリアとして使用されます。 ウエイト値が低すぎる場合は読み書きエラーとなりメモリ内容が破壊されます。 このツールではそうならないようなウエイト値に制限されますが、 ウエイト値に余裕がない場合には誤動作する可能性があります。 ROMでのアクセスエラーに比べると電卓が壊れる可能性は低いです。 CSn空間バスコントロールレジスタ(CSnBCR) (n=0,2,3,4,5A,5B,6A,6B) IWW: ライト−リード/ライト−ライトサイクルアイドルサイクル指定。 00: アイドルサイクル無し 01: 1 アイドルサイクル挿入 10: 2 アイドルサイクル挿入 11: 4 アイドルサイクル挿入 デフォルトではアイドルサイクル無しなので変更する必要はありません。         画面キャプチャ等でエラーが出る場合は増やしてください。 IWRWD: 別空間リード−ライトサイクルアイドルサイクル指定。 00: 1 アイドルサイクル挿入 01: 2 アイドルサイクル挿入 10: 3 アイドルサイクル挿入 11: 4 アイドルサイクル挿入 デフォルトでは 2 アイドルサイクル挿入ですが、減らしても効果が確認できません。 IWRWS: 同一空間リード−ライトサイクルアイドルサイクル指定。 00: 1 アイドルサイクル挿入 01: 2 アイドルサイクル挿入 10: 3 アイドルサイクル挿入 11: 4 アイドルサイクル挿入 デフォルトでは 2 アイドルサイクル挿入ですが、減らしても効果が確認できません。 IWRRD: 別空間リード−リードサイクルアイドルサイクル指定。 00: 1 アイドルサイクル挿入 01: 2 アイドルサイクル挿入 10: 3 アイドルサイクル挿入 11: 4 アイドルサイクル挿入 デフォルトでは 2 アイドルサイクル挿入ですが、減らしても効果が確認できません。 IWRRS: 同一空間リード−リードサイクルアイドルサイクル指定。 00: アイドルサイクル無し 01: 1 アイドルサイクル挿入 10: 2 アイドルサイクル挿入 11: 4 アイドルサイクル挿入 デフォルトではアイドルサイクル無しなので変更する必要はありません。 CSn空間ウエイトコントロールレジスタ (CSnWCR) (n=0,2,3,4,5A,5B,6A,6B) WW: ライトアクセスウエイトサイクル数 000: リードアクセスウエイト(WR)と同じサイクル 001: 0 サイクル 010: 1 サイクル 011: 2 サイクル 100: 3 サイクル 101: 4 サイクル 110: 5 サイクル 111: 6 サイクル デフォルトではリードウエイトと同じ設定ですが、 ライトアクセスを独立で設定した方が速くなります。 WR: リードアクセスウエイトサイクル数 0000: 0 サイクル 1000: 10 サイクル 0001: 1 サイクル 1001: 12 サイクル 0010: 2 サイクル 1010: 14 サイクル 0011: 3 サイクル 1011: 18 サイクル 0100: 4 サイクル 1100: 24 サイクル 0101: 5 サイクル 0110: 6 サイクル 0111: 8 サイクル ウエイトを減らすと速度アップします。 ROMのデフォルトウエイト値 2 RAMのデフォルトウエイト値 2 SW: アドレス、CSnアサートRD→WEnアサート遅延サイクル数 00: 0.5サイクル 01: 1.5サイクル 10: 2.5サイクル 11: 3.5サイクル デフォルトは0.5サイクルです。 HW: アドレス、RD,WEnネゲート→アドレス、CSnネゲート遅延サイクル数 00: 0.5サイクル 01: 1.5サイクル 10: 2.5サイクル 11: 3.5サイクル デフォルトは0.5サイクルです。 ========================== 注意!!! ============================================ このツールは安全に動作するように十分注意して作成されていますが、 あなたの電卓に重大なダメージを与える恐れがあります。 ツールの使用はバックアップをとった上であなたの責任においてお願いいたします。 作者はこのツールの使用の結果においていかなる責任も負わないものとします。 =============================================================================== ------------------------------------------------------------------------------- メイン画面 ------------------------------------------------------------------------------- ---------------------------------- Ftune for SH3 v5.77(電池電圧表示) PLL:x1 * 29.49MHz IFC:1/1 CPU * 29.49MHz RoR 2 BFC:1/1 RaR 2 * 29.49MHz PFC:1/2 RaW =R * 14.75MHz messeage area / benchmark score [function key] ----------------------------------- RoR: ROMリードアクセスウエイトサイクル数 RaR: RAMリードアクセスウエイトサイクル数 RaW: RAMライトアクセスウエイトサイクル数 ------------------------------------------------------------------------------- 使用方法 ------------------------------------------------------------------------------- -[UP] どこをいじるか選択します。 (PLL,IFC,PFC) -[DOWN] -[LEFT] 一段階上げます。 -[RIGHT] 一段階下げます。 -[F1] 電卓リセット時のデフォルトに戻します。 CPU 29MHz, -[F2] F2キーに記憶させた設定を呼び出します。 初期設定=> CPU 59MHz, -[F3] F2キーに記憶させた設定を呼び出します。 初期設定=> CPU 88MHz, -[F4] F2キーに記憶させた設定を呼び出します。 初期設定=> CPU 118MHz, -[F5] F2キーに記憶させた設定を呼び出します。 初期設定=> CPU 118MHz, ウエイト削減 -[F6] 簡単なベンチマークを行います。 CPUのスコアはfx-9860Gのadd-in "UTIL"と同様のタイマー設定によるループ回数をカウントします。 このツールでは100ms間でのループ回数を1/100にした値です。 50ms間のメモリアクセス(ROM,RAM,I/O)の回数をカウントします。 切り替えでPutDsipDDを1秒間に何回呼び出せるかの回数を計測します。(fps) -[SHIFT] -[F1] メインメモリにセーブします。次回起動時に自動的に読み込まれます。 -[F2] 現在の設定をF2キーに記憶させます。 -[F3] 現在の設定をF3キーに記憶させます。 -[F4] 現在の設定をF4キーに記憶させます。 -[F5] 現在の設定をF5キーに記憶させます。 -[F6] メインメモリよりロードします。 -[VARS] -[F1] register display FRQCR -[F2] register display BCR/WCR 押すたびに切り替わります。 -[F3] (ROM)CS0BCR (RAM)CS2BCRのウエイト設定をします。 カーソルキーで選択 -[F1] + -[F2] - -[F4] ウエイト値の初期化します。 -[F4] (ROM)CS0WCR (RAM)CS2WCRのウエイト設定をします。 カーソルキーで選択 -[F1] + -[F2] - -[F4] ウエイト値を初期化します。 -[F5] CS5ABCR CS5BBCRのウエイト設定をします。 カーソルキーで選択 -[F1] + -[F2] - -[F4] ウエイト値の初期化します。 -[F6] CS5AWCR CS5BWCRのウエイト設定をします。 カーソルキーで選択 -[F1] + -[F2] - -[F4] ウエイト値を初期化します。 -[PRGM] -[F1] CS3BCR CS4BCRレジスタ設定をします。 -[F2] CS3WCR CS4WCRレジスタ設定をします。 -[F3] CS5ABCR CS5BBCRレジスタ設定をします。 -[F4] CS5AWCR CS4BWCRレジスタ設定をします。 -[F5] CS6ABCR CS6BBCRレジスタ設定をします。 -[F6] CS6AWCR CS6BWCRレジスタ設定をします。 -[EXIT] exit -[AC] 画面を初期化します。 -[EXE] ベンチマークが選択されている場合に再度実行します。 -[*] ROMのウエイト値を増やします。 -[/] ROMのウエイト値を減らします。 減らす場合は、メモリチェックが始まります。 エラーが出た場合はウエイト値は減らせません。 -[+] RAMのリードウエイト値を増やします。 -[-] RAMのリードウエイト値を減らします。 減らす場合は、メモリチェックが始まります。 エラーが出た場合はウエイト値は減らせません。 -[SHIFT]+[+] RAMのライトウエイト値WWを増やします。 "=R" リードウエイト値と同じです。 -[SHIFT]+[-] RAMのライトウエイト値WWを減らします  "=R" リードウエイト値と同じです。 -[SETUP] バージョン表示。 ------------------------------------------------------------------------------- ウエイト削減時のメモリチェック ------------------------------------------------------------------------------- ウエイトを削減しようと試みる場合にメモリ全域のリードチェックを行います。 同じアドレスの二度読みで値が違った場合にエラーとします。 エラーが出た場合はウエイト値の削減は出来ません。 ------------------------------------------------------------------------------- 注意 ------------------------------------------------------------------------------- 高クロックになるとUSB経由の画面キャプチャで画面が崩れることがあります。 RAMのIWWのウエイト値を増やしてください。 RS232CはI/Oクロックに依存します。通信する場合はI/Oクロックを同じにしてください。 ------------------------------------------------------------------------------- 謝辞 ------------------------------------------------------------------------------- このツールはUTIL(Mario Roy氏作成)ソースを元に拡張して、拙作Ftune2風にしたツールです。 CASIO公式SDK1.00にて作成されています。 fxReverse project documentation, SuperH-based fx calculators, Cemetech WikiPrizm, 先輩ユーザーの皆様の各種解析結果に感謝いたします。 このツールが皆様のお役に立てれば幸いです。 ------------------------------------------------------------------------------- ライセンス ------------------------------------------------------------------------------- このソフトウエアはフリーソフトウエアです。 ライセンスはGPLv2に準じます。 ------------------------------------------------------------------------------- v1.20 2019. 8.31 右上に電池電圧を表示するようにしました。 (SimonLothar氏のサンプルプログラムを使用しています。) v1.02 2015. 6.19 起動時にCPUチェックを行いSH4A機の場合は起動しないようにしました。 v1.01 2015. 2.28 ソースファイルを書き直しました。結果、若干ファイルサイズ削減しました。 機能的な変更はありません。 v1.00b 2014.12.21 エミュレータで動かなかったのでI/Oベンチマークのアドレスを変更しました。(0xA44C0014) v1.00a 2014.11.27   IFCがX2の場合、PLLをX2からX3にした時にフリーズするのを修正。 あとは、些細なスペル&記述ミスの修正のみです。(^^; v1.00 2014.11.14 初版