作りたいものに妥協しないために、会社を興してまで完成させた作品です。うれろー、うれろー。

2014年09月07日

コレクション整理中、その5

みんな大好き、富士通FMシリーズ。

富士通 FM-11EX
Fujitsu_FM-11EX_front.jpg Fujitsu_FM-11EX_back.jpg Fujitsu_FM-11EX_keyboard.jpg

富士通 FM16βFD
Fujitsu_FM16BetaFD_front.jpg Fujitsu_FM16BetaFD_back.jpg Fujitsu_FM16BetaFD_keyboard.jpg

富士通 FM16π
Fujitsu_FM16Pi_front.jpg Fujitsu_FM16Pi_back.jpg Fujitsu_FM16Pi_keyboard.jpg

富士通 FMR-50HD
Fujitsu_FMR-50HD_front.jpg Fujitsu_FMR-50HD_back.jpg Fujitsu_FMR-50HD_keyboard.jpg

富士通 FMR-60HD
Fujitsu_FMR-60HD_front.jpg Fujitsu_FMR-60HD_back.jpg

富士通 FMR-60HX
Fujitsu_FMR-60HX_front.jpg Fujitsu_FMR-60HX_back.jpg

富士通 FMR-70HL3
Fujitsu_FMR-70HL3_front.jpg Fujitsu_FMR-70HL3_back.jpg Fujitsu_FMR-70HL3_keyboard.jpg

松下電器 Panacom M500HD
Panasonic_Panacom_M500HD_front.jpg Panasonic_Panacom_M500HD_back.jpg Panasonic_Panacom_M500HD_keyboard.jpg

富士通 FMR-10LT
Fujitsu_FMR-10LT_front.jpg Fujitsu_FMR-10LT_back.jpg Fujitsu_FMR-10LT_keyboard.jpg

富士通 FMR-30HD
Fujitsu_FMR-30HD_front.jpg Fujitsu_FMR-30HD_back.jpg Fujitsu_FMR-30HD_bottom.jpg Fujitsu_FMR-30HD_keyboard.jpg

富士通 FMR-30BX
Fujitsu_FMR-30BX_front.jpg Fujitsu_FMR-30BX_back.jpg Fujitsu_FMR-30BX_keyboard.jpg

富士通 FMR-30HX
Fujitsu_FMR-30HX_front.jpg Fujitsu_FMR-30HX_back.jpg Fujitsu_FMR-30HX_keyboard.jpg

富士通 FMR-50LT5
Fujitsu_FMR-50LT5_front.jpg Fujitsu_FMR-50LT5_back.jpg Fujitsu_FMR-50LT5_keyboard.jpg

富士通 FACOM 9450-II +8インチフロッピードライブ
Fujitsu_FACOM_9450-II_front.jpg Fujitsu_FACOM_9450-II_back.jpg

FMシリーズとは言ったけど、FM-7/77とは言ってませんよ?
(何機種かは確保してますけど)

以下、微妙系の残党。

沖電気 if800RX
OKI_if800RX_front.jpg OKI_if800RX_back.jpg
posted by 武田 at 23:03| Comment(1) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2014年09月03日

RFC: 内蔵デバッガの試作中

内蔵デバッガの試作中です。
仮に、MZ-700/800/1500/2500, X1シリーズ, PC-80/88シリーズに組み込んでみました。
現状仕様で問題ないか、改良点がないか、よろしければご意見お願いいたします。

http://homepage3.nifty.com/takeda-toshiya/00tmp/debugger.zip

140903-1.png 140903-2.png

使い方はSYMDEBと同じ感じです。
特定のメモリアドレスやI/Oポートへの読み書きでブレークを掛けることもできます。

メニューから、Control - Debug CPUを選択すると、コンソールが開きます。
?でコマンド一覧が表示されます。

デバッガを起動すると、CPUが停止した状態になります。
このとき、エミュレータのメインウィンドウは操作できません。
GでCPUが連続動作中か、Qでデバッガを終了すると、メインウィンドウを操作できます。

Gを実行すると、ブレークするまで次のコマンドを入力できません。
このとき、Control - Close Debuggerを選択すると、デバッガを終了できます。

数値の入力は基本ヘキサですが、お尻にDを付けるとデシマルになります。


(2014/9/4 15:15追記)
コメントありがとうございます。
対応できるところから実装してみました。

140904-1.png 140904-2.png

何も入力せずにリターンで、最後に実行した命令を再実行するようにしました。
一度トレース実行して、後はリターンを連打で先に進めることができます。

「次の命令にGo」は、次の命令のアドレスを各軸に取得できるか心配とか、
JMP命令のところで実行してしまうと面倒そう、ということで、
G <address>で、「指定したアドレスまでGo」できるようにしました。
全ブレークポイントを無効にして、指定アドレスにブレークポイントを仕掛けて、
Goしてブレークしたら、元のブレークポイントを復旧するようになっています。

PCからの逆アセンブルリストを常に表示するのは、現在のCLIでは難しそうなので、
GやTを実行した後は、せめて次に実行する1命令だけ逆アセンブルしたものを
表示するようにしました。

Eで複数データを同時書き込みをサポートしました。
EAで文字列も書き込めます。

Gの実行中、ESCキーで手動ブレークを掛けるようにしました。
Tについても正式リリース時までには対応します。

N/W/Lで、メモリダンプをファイルに入出力できるようにしました。
VRAMの保存など、アーキテクチャ依存のデータの扱いについては検討中です。


(2014/9/5 0:10追記)
140905-1.png

Gで連続実行中にESCキーで中断した後、CPUをブレークし忘れてたのを修正しました。
Tで大きいステップ数を指定した場合にも、ESCで中断できるようにしました。

i86/i286コアについてもデバッガをサポートしました。
また、古いi86コアを使用していた機種について、新しいi86コアに切り替えました。
古いi86コアは、当面はV30用に残しておくかと思います。

コマンドのパラメタとして、ANK文字を指定できるようにしました。
'A'で、Aの文字コードの0x41を指定することができます。
例えば、E 8000 'A' 'B' 'C'といった使い方をすることができます。

!コマンドを追加しました。主にバーチャルマシンに対する操作をここに入れる予定です。
現状サポートしているのは以下のコマンドです。

! RESET [CPU]
仮想マシンをリセットします。CPUを付けると、デバッグ中のCPUのみリセットします。

! KEY CODE [msec]
キーボードのキーを、msec間だけ押した状態にします。
CODEには、Windowsの仮想キーコードを指定してください。
文字コードと仮想キーコードが一致している場合、'A'のように指定することもできます。


(2014/9/5 2:40追記)
デバッガとは関係ないですが、PC-8801でプチ修正。
従来、DMA転送を一気に実行していましたが、画面の表示期間にあわせて1行分のデータずつ
CRTCに転送するようにしました。
また、DMA転送中にDMAのアドレスやカウンタレジスタの値を更新するようにしました。
バイナリは同じURLにアップしています。


(2014/9/6 0:50追記)
i386とV30について、デバッガをサポートしました。
MB8877が、他のデバイスが登録したイベントを勝手にキャンセルしてしまう問題を修正しました。
FMR-30で、カレンダクロックの更新が止まっていたのが修正されています。

そろそろ週末辺りにでも正式リリースします。
それまでには8084やuCOM87でもデバッガをサポートできるようにしたいですね。
8084は、データとプログラムでバスが分かれていて、ちょっと扱いが難しいです。


(2014/9/7 10:50追記)
8048とUPD7801でデバッガをサポートしましたので、ようやく正式リリースしました。
ご協力ありがとうございました。
X1やPC-6001のサブCPUもデバッグできますので、そちらの解析にもお役立てください。


(2014/10/11 4:00追記)
数値のお尻にDを付けて、デシマルと見做す仕様を一旦廃止しました。
posted by 武田 at 00:36| Comment(6) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする
まるくん、がんばれ、ちょうがんばれ